Roadmap#
Note
PYSTILT is alpha software (the 0.1.0a series). The public API may
change between releases until v1.0.
Current status#
These parts are stable and covered by the test suite:
HYSPLIT trajectories and footprints
Footprints that match uataq/stilt (STILT-R) at
rtol=1e-7per cellRunning locally and on Slurm
Reruns that skip finished simulations, judged by which output files exist
Variants, which run the same receptors under several named settings in one project. Transport-error ensembles and extra footprints are variants too.
Helpers for column and satellite observations
Footprints can also be summed onto other geometries. A footprint is computed
on a rectangular grid and then summed onto a stilt.Grid, a
stilt.Mesh (from shapefiles, H3 hexagons, or windows around points),
or stilt.Zones (groups of cells), using cached overlap weights.
Grid.from_geometry picks a grid for a geometry, the geometry
footprint setting names one in YAML, and Trajectories.footprint makes new
footprints from saved particles.
Most new work is on column and slant-column workflows for satellite and ground-based instruments (see Future plans below). The execution and service code is maintained but not growing.
Execution and orchestration (from stiltctl)#
stiltctl runs STILT on
cloud infrastructure. PYSTILT uses the same call path. The CLI calls
Model, and Model hands the work to an execution backend.
Feature |
Status |
|---|---|
Pull-mode queue workers ( |
Implemented |
Long-lived streaming mode ( |
Implemented |
PostgreSQL-backed work queue for distributed coordination |
Implemented |
Thin CLI → |
Implemented |
Kubernetes worker deployment |
Partial |
Cloud object store outputs (GCS, S3) |
In scope |
Column and satellite science (from X-STILT)#
X-STILT extends STILT for column and slant-path satellite retrievals. PYSTILT ports X-STILT’s ideas for handling observations and weighting columns. It does not try to match every X-STILT feature.
Feature |
Status |
|---|---|
|
Implemented |
Column receptor support |
Implemented |
Averaging-kernel and pressure-weighting particle transforms |
Implemented |
First-order lifetime decay transform |
Implemented |
Declarative transforms in config YAML (default or per variant) |
Implemented |
Slant-column receptor support |
Implemented (see the Slant Columns guide) |
Slant altitudes from a retrieval’s pressure levels ( |
Implemented |
User-defined transforms via |
Implemented |
Per-sounding averaging kernels in batch runs ( |
Implemented |
Product readers (OCO-2/3, TROPOMI, TCCON) |
Implemented (see Reading Retrieval Products); other instruments as one module each |
Transport error on the modelled enhancement ( |
Implemented |
Modelled enhancement from a flux field ( |
Implemented |
Background from a mole-fraction field at the trajectory endpoints ( |
Implemented |
Satellite-derived plume background (forward trajectories) |
Implemented (see the Plume Background guide) |
Forward runs (positive |
Implemented (see the Plume Background guide) |
Emission-error propagation to the modelled enhancement |
A recipe on |
Inventory readers |
Out of scope; a flux field is an xarray array |
Future plans#
In priority order:
Readers for the instruments people bring, such as EM27/SUN and MethaneAIR/MethaneSAT. Which ones come first depends on who is using column receptors.
A YAML form for
stilt.Zones, so thegeometryfootprint setting can name groups of cells.