Skip to content

Data and Provenance

David Fillmore edited this page Oct 8, 2026 · 2 revisions

Data and Provenance

The global example is reconstructable from public provider data. The published machine-readable manifest records logical paths, byte sizes, SHA-256 digests, and selections for most of the inputs and prepared artifacts listed below.

Raw inputs

Input Selection Bytes SHA-256
MPAS x1.40962 static archive x1.40962.static.nc, graph 23,101,360 bbe83893c0cb347f3b6fae497c11cde7bef42e1cd0a6fc7db3a961ca3e4f9266
NOAA GFS 0.25-degree analysis 2024-07-01 00Z, f000 513,310,010 69d71c821486c6575591e8fb63471fd01af73e3a3f9480dd6bd2a892a3554676
GFS index matching object index 31,817 47894c8851b22073808ec257c62450811fe0e9b7c5fe5a75f9fca774535d8cd5
CAMS-GLOB-ANT v6.2 NOx July/August 2024, 13 sectors plus sum 95,931,202 2687ea4f95161119f3e7962f65a1026898a6c3730d509001ef30190fdd83b032
CAMS-GLOB-ANT v6.2 CO July/August 2024, retained sectors plus awb and sum 73,668,265 de5f26c721916bc2e35889fc487335d5b0800499ed50db1d38d5aea3664e15c6
FINNv2.5.1 NRT, 2024-07-01 direct CO, NO, NO2 4,651,521 43499864e7510f8b8bf8efdfda693c76372e7de3876043c005abb0fc68a66fbd
FINNv2.5.1 NRT, 2024-07-02 direct CO, NO, NO2 4,473,170 5a58945eed3afaf04023bb223561b984d47a3a4f44452b92fa844c8795b0da89
MERRA-2 M2IMNPASM 5.12.4 2024 monthly O3 and H at 3, 2, 1, 0.7, 0.5, 0.4, 0.3, 0.1 hPa 67,892,140 88c0786141712b3264fdd85687dbeecd69a5cea073adba4db851b81f8f187520

MERRA-2 downloads require NASA Earthdata authentication. CAMS-GLOB-ANT is described by DOI 10.24380/eets-qd81, MERRA-2 by 10.5067/2E096JV59PK7, and FINN availability by the official FINN page. The NOAA Open Data entry describes the GFS archive.

The CAMS subsets use time indices 294 and 295 on the complete global 0.1-degree grid. The MERRA subset concatenates the twelve 2024 monthly means in January-to-December order and retains only O3 and H at the eight declared pressure levels.

Prepared artifacts

These are the exact products used to prepare and run the example:

Artifact Bytes SHA-256
x1.40962.static.nc 94,766,584 cf1a47d4168327f06a8403555d6ed8b2fe1aff7f8b916bb7f6a754c34a10ac82
x1.40962.graph.info.part.8 81,924 f56e75e1f408b632fd5cd22ad05cc59fdbb54daf1e2f8f3d6298147a1e7f577b
WPS GFS intermediate 959,387,352 dde20db8efa58be94f791280aa54034aec3462292ddc36fd29b9c98e8cc71505
base GFS initial state 444,532,092 4178605ca4a813ceeb0ddbc5a6814c4d78ddd6c3be8ccc06a88fab58dd69728d
expanded GFS/chemistry initial state 572,335,744 7ccb0670cb49374de78187761cf410690a4b8fc4d4a27533a5ba97deed907e78
CAMS explicit-NOx inventory (not staged by these scenarios) 20,758,020 d213866000e8a633954d0c730ba5524f729f26a97d02cc5a13d8b405aa6c8e9c
harmonized CAMS NO/NO2/CO inventory 26,686,361 39ab42133bdc255a74c5082e8a20dd3111ad5bde6f67d270828123712c1670bf
FINN NO/NO2/CO inventory 5,271,798 dfb3eef24f5a76ec4b41a9cb1837454a52239f69d12514547992e5821364a8f1
MERRA-2 monthly prescribed O3 package 39,423,729 a6ecbb5b57fc72485d76ed8cb652666f58c26535bc1f3dbf443b9bc615938301

The x1.40962 mesh fingerprint is:

cdd75b787f487302df17b31c2dd7aaf7082a7cb265a711792ef0e5f3ceebda12

The exact eight-rank partition is also present in the official JW idealized archive.

Prepare the meteorology

Use WPS 4.6.0 at revision 335c76a111f84503e8b963abaf273ea8053645bb. The example directory provides namelist.wps and Vtable.GFS.CheMPAS.

  1. Stage the GFS GRIB2 file as GRIBFILE.AAA, the supplied WPS namelist as namelist.wps, and the supplied Vtable as Vtable.
  2. Run WPS ungrib.exe. The required intermediate filename is GFS:2024-07-01_00.
  3. Stage x1.40962.static.nc, the exact part.8 file, namelist.init_atmosphere, and streams.init_atmosphere from the example directory.
  4. Run init_atmosphere_model on eight ranks. It writes x1.40962.gfs-20240701T00Z.init.nc with 26 model levels, four soil levels, a 45 km top, specific humidity, and date-matched surface fields.

The supplied initialization files define every option used in this conversion.

Add the expanded chemistry background

Copy the base GFS state and add only the fifteen f8(Time,nCells,nVertLevels) chemistry fields. Preserve all source arrays and metadata bit-for-bit. Let z be layer-center altitude in km, zagl layer-center height above the local surface in km, and Mair = 0.02897 kg mol-1. Convert each declared VMR with MMR = VMR * Mspecies / Mair.

Species VMR profile
O2 0.2095
O3 30e-9 * exp(min(z,12)/12) + 6e-6 * exp(-0.5*((z-27)/5)^2)
total NOx 1e-9 * exp(-zagl/3) + 0.05e-9
NO / NO2 30% / 70% of total NOx
CO 50e-9 + 70e-9 * exp(-zagl/5)
CH4 1.9e-6
H2O2 1e-9 * exp(-zagl/5)
CH2O 0.3e-9 * exp(-zagl/4)
CH3OOH 0.1e-9 * exp(-zagl/4)
HNO3 0.1e-9 * exp(-zagl/6)
O, O1D, OH, HO2, CH3O2 zero

Use mechanism molar masses from global_cams_tropo_ch4nox.yaml. Do not add qH2O or qM: H2O binds to host qv, and M is computed from air density. Set the global description to identify the fields as an idealized, not assimilated or spun-up, chemistry background.

Build conservative remapping weights

Use ESMF 8.9.1 first-order conservative remapping with dstarea normalization and user-supplied physical areas.

  • The CAMS source SCRIP grid has 1800 x 3600 cells in latitude-major/longitude-fastest order. Latitude cell edges are midpoint bounds clipped at the poles; longitude is cyclic. Cell areas use exact small-circle latitude bands.
  • The destination SCRIP grid uses the MPAS cell centers, vertices, and authoritative areaCell values.
  • Require no unmapped destination cells or unrepresented source cells and verify global flux before and after remapping.

The CAMS weight file used by the example is 780,426,736 bytes with SHA-256 5fdf1f7e5f786449169a8f024edcfa7dd67dbb82af5a534e730b2aada1505712.

MERRA-2 uses a separate conservative weight file from its 0.625 x 0.5-degree grid. That file is 36,353,854 bytes with SHA-256 d9a862a11fb1c17c99baca5545400df7723c2b829255e08f7de2247e2a58e727.

Prepare CAMS

CAMS NOx is expressed as NO-equivalent mass. For each time and sector:

  1. conservatively remap the native nonnegative flux;
  2. request nominal 90% NO and 10% NO2 mass fractions;
  3. normalize those fractions for molecular mass so elemental nitrogen is unchanged:
d = 0.9 / M_NO + 0.1 / M_NO2
f_NO  = 0.9 * (1 / M_NO) / d
f_NO2 = 0.1 * (1 / M_NO) / d

with M_NO = 0.030 and M_NO2 = 0.046 kg mol-1. Store explicit no_anth_<sector> and no2_anth_<sector> fields in kg m-2 s-1.

Remap CO directly by sector. For the final harmonized package, sum all retained NO, NO2, and CO sectors but omit awb. Retained NOx sectors are agl, ags, com, ene, fef, ind, ref, res, shp, swd, tnr, tro; retained CO sectors are com, ene, fef, ind, ref, res, shp, swd, tnr, tro. Store July and August anchors and use linear runtime interpolation.

Package the result with Time, nCells, StrLen, Gregorian xtime, ascending indexToCellID, exact MPAS geometry, mesh fingerprint, and no_anth_sum, no2_anth_sum, and co_anth_sum.

Prepare FINN

For each provider record on 1 and 2 July:

  1. read latitude, longitude, and direct CO, NO, and NO2 totals in mol species day-1;
  2. assign the point to the nearest x1.40962 cell center on the unit sphere;
  3. sum point totals in each cell; and
  4. convert each cell to kg m-2 s-1 as mol_day * Mspecies / (86400 * areaCell).

Use timestamps 2024-07-01_12:00:00 and 2024-07-02_12:00:00. Duplicate the first field at 2024-07-01_00:00:00 so MIEM never extrapolates before the first noon anchor. Configure nearest interpolation; an exact midpoint tie selects the earlier record. This explicit timing approximation can displace fire-local daily totals by up to 12 hours with longitude.

Store fields no_fire, no2_fire, and co_fire; ignore NOXasNO. Verify that reconstructed daily moles and global mass match the provider totals.

Prepare prescribed upper O3

Convert each MERRA-2 O3 mixing-ratio layer to molecular column using log-midpoint pressure bounds, gravity 9.80665 m s-2, O3 molar mass 0.048 kg mol-1, and Avogadro's number. Conservatively remap those columns to x1.40962; remap MERRA height with the same area weights normalized by destination row sum.

Redistribute the remapped columns by height overlap onto eleven 5 km layers from 45 to 100 km. Fill only portions outside MERRA-2's vertical support using the log-linear AFGL mid-latitude-summer O3 values and USSA76 structural fields in the published upper-atmosphere CSV.

The NetCDF package contract is:

  • dimensions Time=12, nCells=40962, nUpperLevels=11, nUpperEdges=12, and nBounds=2;
  • Gregorian climatological month midpoints and bounds;
  • exact indexToCellID, areaCell, latCell, and lonCell;
  • upper_edge_height, layer heights/bounds, edge temperature, and edge air number density;
  • O3_layer_column in molecule cm-2 and O3_number_density in molecule cm-3;
  • chempas_schema_version = chempas-prescribed-field-package-v1, the mesh algorithm/fingerprint, source hashes, and remapping provenance;
  • global attributes Conventions = CF-1.10, missing_value_policy = fail; no fill, and negative_value_policy = fail; no clipping, plus non-empty source_product, source_version, horizontal_remapping, vertical_remapping, reference_atmosphere_completion, and temporal_semantics;
  • a Time coordinate in days since 2000-01-01 00:00:00 with climatology = climatology_bounds, plus climatology_bounds and climatology_month variables; and
  • latCell and lonCell in radians.

Interpret the twelve 2024 means as a cyclic climatology with linear interpolation at Gregorian month-bound midpoints. Missing, nonfinite, or negative values are fatal rather than filled or clipped.

Exact-grid identity

MIEM inventories carry chempas_mesh_fingerprint_algorithm = chempas-mesh-sha256-v1 and chempas_mesh_sha256; prescribed-field packages use the same algorithm with chempas_mesh_fingerprint. The fingerprint normalizes cells into ascending indexToCellID order and hashes the geometry class, cell count, sphere/periodic flags, sphere radius, units, areaCell, and available cell coordinates in canonical big-endian encodings. Retain the field-manifest metadata with any generated inventory.

Clone this wiki locally