Skip to content

API Reference

Each forward model is its own sub-package, importable directly:

from plumax.gauss_plume import simulate_plume
from plumax.les_fvm import simulate_eulerian_dispersion

The pages follow the modelling tiers of the roadmap. NumPyro inference submodules are imported lazily, so importing a forward model never pulls in NumPyro. Radiative transfer, the matched filter and the 3D-Var retrieval are in radtrax.

Modules

Tier Module Contents
0 Meteorology MetField, load_wrf, load_era5, LocalFrame, TimeAxis, surface_layer_from_met, to_prescribed_wind
0 Observations load_tropomi_l2, load_emit_l2b, load_ghgsat_l2, ColumnObservation
0 Priors load_inventory, per_tile_background
I Gaussian plume steady-state plume + emission-rate inference
I Plume rise BriggsPlumeRise, briggs_plume_rise, effective_height: Briggs rise of buoyant and momentum sources
I Column observation ColumnObservation, the column + averaging-kernel observation shared by every tier
I Likelihoods GaussianNoise, StudentTNoise, HeteroscedasticNoise: the observation noise of the Tier I inference
I Multi-source MaskedSources, MultiSourcePosterior: masked-K source slots and their posterior (infer_multi_source)
I Gaussian puff time-resolved puffs, OU turbulence
II Lagrangian particle dispersion
II Gridded wind GriddedWind, gridded_wind_from_met, gridded_wind_from_prescribed: the C-grid wind at each particle
II Met ensemble ensemble_footprints, ensemble_inversion, transport_covariance: footprints per met member and the inversion over them
III Eulerian FV advection–diffusion on a C-grid
IV Coupled multi-instrument source inversion
V Population source populations and forecasting
— Plume vetting vet_candidate, select_seeds, background_pool, null_masks, null_pvalue on radtrax's absorption-shape test
— Plume operators (geo) PlumeMask, PlumeFootprint, IMEEstimate, CrossSectionalFlux, ColumnToMass and five more, and PlumeVetting, on GeoTensors, behind [geo]
— Operators · Adapters pipekit integration

Package overview

plumax — forward models for atmospheric plume dispersion.

Sub-packages

  • coupled : multi-instrument coupled source inversion that composes a transport tier with the observation operator (Tier IV).
  • gauss_plume : steady-state Gaussian plume (JAX + NumPyro).
  • gauss_puff : time-resolved Gaussian puff (JAX + diffrax + NumPyro), with optional Ornstein-Uhlenbeck sub-grid turbulence.
  • geo : plume operators on GeoTensors ported from geotoolz (masks, footprints, IME, cross-sectional flux), behind the [geo] extra; loaded on first use.
  • les_fvm : Eulerian 3-D advection-diffusion on an Arakawa C-grid (JAX + diffrax + finitevolX) for spatially-varying wind fields and K-theory eddy diffusivity.
  • lagrangian : Markov-1 Langevin particle dispersion with forward concentrations, backward footprints and the Gaussian / lognormal source inversions (Tier II).
  • met : gridded meteorology (MetField) on the les_fvm analysis grid, with a wrfout loader and the adapter that feeds it to the Eulerian solver as wind.
  • obs : satellite L2 methane products (TROPOMI, EMIT, GHGSat) as coupled.Instruments with observed enhancements.
  • population : source-population products assembled from per-event posteriors: catalogs, point processes, size distributions (Tier V).
  • priors : inventory prior mean on the analysis grid and the per-tile observation background.
  • vetting : plume-candidate vetting on arrays (seeds, background pool, scene null) on radtrax's absorption-shape test.

The operators and adapters modules expose the forward models as pipekit operators and pipekit_cycle protocol adapters respectively.

Additional dispersion models (resolved-flow LES, etc.) may be added as sibling sub-packages in future ports.