All notable changes to this project. This page mirrors the root
CHANGELOG.md, which Release Please
generates from Conventional Commit messages.
0.2.4 (2026-11-04)¶
Features¶
coupled: add masked-k multi-source handling across instruments (#236) (0507550)
les_fvm: add a per-cell surface flux control with a matern prior (#226) (67788e9)
les_fvm: add initial concentration and inflow scaling to the 4d-var control (#227) (a92f9a1)
les_fvm: add monin-obukhov and smagorinsky eddy diffusivity (#221) (efc6bf3), closes #94
les_fvm: route solve_4dvar through gauss-newton on vardax (#229) (1181678)
population: add multi-satellite pod union and hierarchical calibration prior (#233) (296e30d)
population: add persistency metrics for a fitted intensity (#222) (f3b129a), closes #112
population: add simulation-based calibration and prior-swap harnesses (#235) (c8fe472)
population: add total-emission estimator with missing-mass correction (#223) (228494e), closes #113
Bug Fixes¶
Performance Improvements¶
lagrangian: compile the footprint simulator once (#224) (c5dcf15)
lagrangian: hold the footprint dataset cache in memory (#216) (99605de)
0.2.3 (2026-11-04)¶
Features¶
coupled: nonlinear end-to-end inversion through the radiance operator, on vardax (#196) (9c780b8), closes #102
coupled: per-instrument quality-flag aggregator feeding R and the masks (#195) (beb35b9), closes #105
coupled: tier II and tier III transport backends for CoupledForward (#194) (a63b4ff), closes #101
gauss_plume: briggs plume rise for buoyant and momentum sources (#190) (8565b7e), closes #82
gauss_plume: masked-K multi-source inference (#191) (2a9cee9)
gauss_plume: pick the Pasquill–Gifford class from the Obukhov and roughness lengths (Golder 1972) (#211) (c0bd98a), closes #86
gauss_plume: student-t and heteroscedastic observation noise for Tier I inference (#189) (0d7b2cb), closes #84
lagrangian: footprint emulator with vardax calibration gates and emulator-based inversion (#202) (d3c2677)
population: importance-corrected TMTPP mark likelihood with ESS diagnostic and log-space quadrature (#201) (f0d46e6), closes #108
population: mark registry with lognormal, lognormal-Pareto and mixture families (#200) (99a18c1), closes #109
population: per-event posterior payload v2 from every tier (#199) (bb9fa86), closes #107
population: run the intensity and POD registries on xtremax point processes (#198) (6413d12), closes #106
Bug Fixes¶
lagrangian: match the stable and neutral Hanna profiles to Stohl et al. (2005) and FLEXPART (#210) (9ae3a22), closes #209
0.2.2 (2026-10-30)¶
Features¶
gauss_plume: one column + averaging-kernel observation shared by every tier (#179) (8ce7ebf), closes #83
geo: plumax.geo with the ten plume operators from geotoolz (#177) (68ea412)
geo: PlumeVetting, plume vetting on GeoTensors in plumax.geo (#178) (7974adb), closes #157
lagrangian: gridded C-grid wind sampled at each particle (#180) (654e9a5), closes #88
lagrangian: met-ensemble footprints and the inversion over them (#181) (84eb653), closes #89
0.2.1 (2026-10-28)¶
Features¶
inversion: run the Tier II and Tier III source inversions on vardax (#171) (da1c5ae)
vetting: add null_masks and null_pvalue, a per-scene null over the plume’s shape (#166) (2135084), closes #155
vetting: add select_seeds and background_pool, a candidate’s seeds and pool (#165) (a6bfcac)
vetting: add vet_candidate and VettingResult, one candidate on radtrax’s absorption-shape test (#167) (44b1142), closes #156
0.2.0 (2026-10-27)¶
⚠ BREAKING CHANGES¶
met: load_wrf needs
pip install 'plumax[io]', and an XTIME-only file now also needs the SIMULATION_START_DATE attribute (every wrfout carries Times).plumax.radtran, plumax.hapi_lut, plumax.assimilation and plumax.matched_filter raise ImportError, and the package root no longer exports radtran or hapi_lut. Use radtrax.slab (forward models, constants, nB-LUT), radtrax.instrument (SpectralResponseFunction, PointSpreadFunction, GroundSamplingDistance), radtrax.spectroscopy.hitran and radtrax.spectroscopy.tables (HITRAN tables, Beer-Lambert on a table; install radtrax[hitran]), radtrax.retrieval.var3d and radtrax.retrieval.matched_filter. The plumax[hapi] extra is gone.
radtran: plumax.radtran no longer exports trimmed_mean_spectrum, robust_lowrank_covariance, matched_filter_pixel/_image/_snr, their op variants, build_lowrank_covariance_operator or the target* constructors; use plumax.matched_filter (background, core, target) instead.
Features¶
coupled: plume-to-radiance through radtrax’s layered ForwardModel (#140) (919c995)
met: load ERA5 onto a LocalFrame-placed analysis grid (#148) (64defb7)
met: local UTM frame (LocalFrame), shared clock (TimeAxis), and WRF placement by lat/lon (#147) (dd233fc)
met: read wrfout through xrtoolz behind a plumax[io] extra (#146) (030c978), closes #69
met: surface-layer similarity (Monin–Obukhov), bulk-Richardson PBL height, Hanna factory (#149) (7d22111)
obs: ingest TROPOMI, EMIT and GHGSat L2 into coupled.Instrument (#150) (29af24c)
priors: inventory prior mean on the analysis grid, per-tile background (#151) (0c4b997)
Miscellaneous¶
radtran: retire radtran’s matched-filter half in favour of matched_filter.core (#137) (6e39aab)
remove radtran, hapi_lut, assimilation and matched_filter (moved to radtrax) (#139) (ebc9d75)
0.1.2 (2026-09-26)¶
Features¶
roadmap status refresh, pinned git dependencies, and the MetField wrfout loader (#116) (46fd747)
tier V.B: Intensity, POD, and paradox modules with theory & notebooks (#125) (7419a9e)
0.1.1 (2026-08-19)¶
Features¶
bootstrap plumax — scaffold, forward-model port, pipekit layer, and design docs (#7) (847b106)
coupled RTM observation operator — nonlinear + linearised (Beer–Lambert + SRF) (#13) (e4b56c8)
les_fvm: honor lateral BCs in horizontal advection & diffusion (#59) (61ff2c9)
tier II model-based source inversion (Gaussian + lognormal, Matérn-3/2 prior) (#8) (a318529)
tier III 4D-Var posterior covariance (Gauss-Newton Hessian via gaussx) (#12) (34f7e83)
tier IV coupled multi-instrument fusion (Tier I + averaging kernel, v1) (#10) (ec05a5f)
tier V population — cross-tier catalog adapter + size distribution + point process (#14) (a530486)
wire the tier III Eulerian 4D-Var loop end-to-end (#9) (2fce40a)
Bug Fixes¶
gauss_plume/puff: correct PG class-A σ_z, conserve puff mass, share wind solve (epic #20) (#62) (058df9e)
lagrangian/assimilation: footprint units + clock, DFS control space, Hanna adapter, config (epic #23) (#63) (69437e4)
les_fvm: boundary-condition docs, wind staggering, CFL guard, 4D-Var convergence (epic #19) (#58) (b940a22)
les_fvm: open-wall BC consistency — cell-Dirichlet inflow + periodic seams (#61) (99ab0fb)
radtran/matched_filter/hapi_lut: retrieval-stack robustness (epic #22) (#66) (fe569c5)