slv.inversion.mdm.multiplicative_scale#
- slv.inversion.mdm.multiplicative_scale(obs, scale_on, *, prior, jacobian, constant)[source]#
Per-obs scale [ppm] for a multiplicative MDM term.
scale_on="obs"gives|obs - background|, the observed enhancement: the actual signal, so extreme shallow-PBL days the prior under-predicts still get a large error.scale_on="prior"gives|H x_prior|, the prior-modeled enhancement; it under-scales where the EPA prior is low, exactly the over-leveraged days. Obs lacking the needed term get 0 (floor-only error).scale_on="footprint"gives|H| * mean(x_prior), the footprint strength in enhancement units. It down-weights extreme shallow-PBL days by how much air they integrate, independent of the obs (no circularity) or the EPA pattern, so it eases both the low-obs winter dips and the high-obs spikes, which share an extreme|H|.- Parameters:
obs (pd.Series) – The obs, indexed by
(obs_location, obs_time).scale_on ({"footprint", "obs", "prior"}) – The scale.
prior (pd.Series) – The flux prior, as
get_prior()gives it.jacobian (Operator) – The flux Jacobian, as
get_flux_jacobian()gives it (rows: receptors; columns: cells and times).constant (pd.Series) – The background of each obs, as
get_constant()gives it.
- Return type: