For each identified emission event, we sample with replacement 1000 times from the time steps in which both predictions and observations are in a spike. For each sample, we minimize a loss function over a range of emission rates between a stacked vector of simulation predictions at all sensor locations and a stacked vector of the corresponding background-corrected CMS observations. This optimization can be done using the simulation output from Section 2.2.2, as the Gaussian puff dispersion model is a linear function of emission rate. Hence, to compute simulation predictions at an arbitrary emission rate, q, we simply need to multiply the predictions simulated with a unitary rate by q. Four different loss functions were tested, with root-mean-square error (RMSE) having the best performance.