-
Notifications
You must be signed in to change notification settings - Fork 1
Plan Model
Date: 2026-02-04 Owner: TBD
Build a statistical representation of atmospheric constituents over ASIA-AQ (O3, NOx, CO, aerosol) and refine prior distributions using observations. The output should provide posterior mean fields and uncertainty (variance/credible intervals) in space and time.
Start with campaign-mean vertical profiles per species computed from all flights, then adjust those profiles to match column and/or surface observations. Use optimal interpolation between surface sites to create a simple horizontal dependence. Then enforce photochemical consistency using a simple box-model chemistry mechanism with a photolysis rate model. Use the existing DAVINCI pairing/geometry tools as the observation operator. Begin with independent species and add cross-species coupling later once the pipeline is stable.
- Spatial domain: ASIA-AQ region on a fixed grid (match model grid initially).
- Temporal domain: configurable window (daily or hourly fields).
- Species: O3, NOx (NO + NO2 or NO2-only depending on obs), CO, aerosol (AOD or PM2.5).
- Vertical representation: surface + 3D (lat/lon/time/lev).
-
Outputs:
- Posterior mean concentration fields.
- Posterior uncertainty (variance/credible interval).
- Bias-corrected fields relative to priors.
- Diagnostics by observation type and platform.
Use existing DAVINCI ingestion and pairing:
-
Prior profiles: campaign-mean vertical profiles per species derived from aircraft data.
- Fallback: AFGL standard profiles if aircraft coverage is sparse or missing for a species.
-
Manual provision: AFGL tables will be fetched manually and stored as CSVs in
data/afgl/. - Expected layout: one CSV per reference atmosphere, plus a short
data/afgl/README.mdwith provenance.
-
Observations:
- Surface: AirNow (PM2.5/O3), AERONET (AOD)
- Aircraft: DC-8 (O3, NO2, CO)
- Pandora (NO2 column)
- Satellites deferred to later phase (TROPOMI, MODIS, MOPITT)
Primary prior source:
- Campaign-mean aircraft profiles for each species (DC-8), binned by altitude/pressure.
Fallback sources:
- AFGL constituent profiles (Anderson et al., 1986) for trace gas VMR profiles (includes O3, NO, NO2, CO).
- U.S. Standard Atmosphere 1976 for baseline pressure/temperature/density and minor constituent tables (useful for conversions).
Optional refinements by species:
- O3: MLS + sonde climatology (monthly, latitude-banded profiles).
- Aerosol: OPAC aerosol models with standard mixtures and exponential vertical profiles.
Notes:
- AFGL profiles are climatological and not photochemically consistent across species; they are intended as practical standard profiles.
- We will not auto-download these tables; they will be added manually and versioned in-repo.
References (for selection):
- Anderson et al., 1986, AFGL-TR-86-0110 (trace gas vertical profiles)
- NOAA/NASA/USAF, 1976, U.S. Standard Atmosphere (NASA TM-X-74335)
- McPeters & Labow, 2012, MLS + sonde ozone climatology (GSFC.JA.6143.2012)
- Hess, Koepke & Schult, 1998, OPAC aerosol model (BAMS 79:831–844)
- Compute mean vertical profiles from all aircraft data (DC-8) per species.
- Standardize to common vertical coordinate (pressure or altitude).
- Store as baseline profiles with uncertainty from flight-to-flight variability.
- For each species, compute a scale factor or smooth correction so the profile integrates to match column observations (e.g., Pandora NO2).
- Apply surface constraints by anchoring the lowest-level value to surface observations (e.g., AirNow O3, PM2.5).
- Resolve conflicts by weighted least squares using instrument error estimates.
- Use surface sites as control points and perform optimal interpolation (OI) on the lowest model layer.
- Extrapolate OI-adjusted surface field to full vertical profile using the adjusted vertical shape.
- Use a simple covariance model (e.g., isotropic exponential) with tunable length scale.
- Run a simple box-model chemistry mechanism to adjust the multi-species profiles toward photochemical balance.
- Use a photolysis rate model to compute J-values (e.g., clear-sky approximations initially).
- Apply this step after profile adjustment and OI, as a consistency correction.
- Phase 1: independent species (separate profiles and OI fields).
- Phase 2: optional cross-species coupling (shared spatial covariance or ratio constraints).
-
Data pipeline:
- Use
load_observationsand pairing geometry to map the latent grid to obs locations. - Optionally use
load_modelsonly for grid metadata (no model priors required). - Store paired data to a training-ready format (Parquet/Zarr).
- Use
-
ML module: new package
davinci_monet/ml/with:-
data.py(feature assembly) -
priors.py(prior construction) -
likelihoods.py(obs models) -
updates.py(profile adjustment + optimal interpolation) -
outputs.py(posterior fields + uncertainty)
-
-
Config: add
mlsection in YAML to control species, priors, windows, inference.
- Hold-out by platform: fit with aircraft + surface, validate on columns or withheld sites.
- Time-split: fit on early weeks, validate on later weeks.
- Metrics: RMSE, bias, correlation, column closure error, uncertainty coverage (if applicable).
- Confirm species list, obs sources, spatial/temporal resolution.
- Choose representation (low-rank basis vs full grid).
- Confirm surface + 3D targets, and Mac-friendly defaults.
- Generate standardized paired datasets for each species.
- Build a simple prior-profile library (per species, per altitude, optional seasonal variants).
- Ingest AFGL tables into
data/afgl/as CSVs (manual fetch). - Save to a versioned training dataset (Zarr recommended).
- Implement campaign-mean profile construction.
- Implement column/surface adjustment for one species (O3) on a week window.
- Implement OI horizontal interpolation for surface sites.
- Produce updated fields and uncertainty estimates (if applicable).
- Keep defaults Mac-safe (limited workers, chunking).
- Add NO2, CO, aerosol.
- Add optional cross-species coupling.
- Extend from surface-only to 3D fields if not already in Phase 2.
- Add a simple box-model mechanism and photolysis rate calculation.
- Apply chemical consistency corrections across the adjusted profiles.
- Add CLI command
davinci-monet ml-fit .... - Add evaluation reports and regression tests.
- Document workflow in the Architecture and Performance wiki pages.
- Add satellite ingestion to a later phase (post-Phase 4) when stable.
- Which vertical coordinate should be canonical (pressure vs altitude) for profile averaging?
- How to weight aircraft vs surface vs column constraints when adjusting profiles?
- What horizontal length scale should OI use per species and season?
- Which box-model mechanism and photolysis scheme to use for consistency?
- How to treat NOx (NO + NO2) given available observations?
- O3 only, one-week window.
- Prior from campaign-mean DC-8 profile.
- Surface anchoring via AirNow; optional column check if available.
- OI horizontal interpolation across surface sites.
- MVP (Minimum Viable Product): the smallest end-to-end version that runs reliably and yields useful outputs before adding complexity.
If you confirm the open questions above, I can refine this into a concrete implementation plan (config schema, data formats, and first tasks).
- Implementation Plan
- Code Review
- Tech Debt
- TODO
- Derecho
- Plotting Alternatives
- Plans
- Design Docs
- Paper (internal)