gcm3d data-staging & validation scripts¶
These scripts stage the external datasets the framework/Mars 3-D GCM needs and evaluate its output. They are setup or experiment commands rather than runtime package imports. MOLA uses a pinned checksum; generated references and experiment bundles record their own provenance and hashes.
| Script | Purpose | Produces |
|---|---|---|
stage_mola.py |
Download the MGS MOLA MEGDR 4-px/° global topography (megt90n000cb.img) from the NASA PDS Geosciences Node; verify SHA-256 + size. |
data/mola/meg004/megt90n000cb.img (used as the dycore's lower boundary). |
stage_ames_co2_radiation.py |
Decode the bundled Ames 12-band Fortran CO₂ k-tables into a compact JAX .npz asset (nearly pure-CO₂ mixture, H₂O mass fraction 1e-7). |
package/src/framework/physics/ames_co2_12band.npz (bundled; consumed by ames_radiation.py). |
stage_tes_surface.py |
Stage independent MGS/TES albedo + thermal inertia to a 1° NetCDF. | Surface boundary file for run_maps(surface_properties_path=…). |
benchmark_mcd.py |
Fetch Mars Climate Database v6.1 maps (global diurnal mean; the MCD web service exposes two free dimensions) and compare a gcm3d MOLA-map NetCDF against them. |
Area-weighted bias / RMSE / correlation report (uses mcd.py). |
run_gcm3d_ablation.py |
Restartable Mars-year (668-sol) soil spin-up with incremental PBL/physics ablations — a climate experiment, not a short map. | Restart files (restart.py) + diagnostics. |
stage_ames_surface_reference.py |
Convert local Ames outputs into reference fields and separate visible/IR dust. | Ames reference NetCDF. |
stage_arco_macda.py |
Stream bounded archive subsets, handle gaps and regrid fields; requires the arco extra. |
Data and provenance. |
benchmark_ames.py, evaluate_arco_seasonal.py |
Independent-model and reanalysis seasonal comparisons. | Weighted diagnostic reports. |
evaluate_seasonal_convergence.py |
Check matched-phase year-to-year repeatability, including deep soil. | Convergence report. |
run_mars_paper_experiments.py |
Frozen calibration and paired ablation protocols. | Reports, source/input hashes and samples. |
run_differentiable_experiments.py, prepare_differentiable_windows.py |
Aligned windows, gradient checks, fitting and paired ablations. | Acceptance, skill and provenance. |
neural_temp_data.py, run_neural_temp.py, train_neural_temp.py |
Frozen native temperature-only postprocessing. | Forecast cache, models and gated test reports. |
Typical setup¶
rtk proxy .venv/bin/python scripts/stage_mola.py
rtk proxy .venv/bin/python scripts/stage_tes_surface.py
# ames_co2_12band.npz is committed; re-run stage_ames_co2_radiation.py only to regenerate it
Provenance and integrity constants (source URLs, SHA-256, size) live alongside the
loaders in topography.py and ames_radiation.py; see
the gcm3d implementation notes and
the physics-limitations ledger.
Run --help before staging: external archives, output paths and required local
inputs vary. A fresh checkout does not contain the existing outputs/ bundles.
MCD may need live network access; tform mars compare instead reads cached inputs.
Model-reference diagnostics do not establish independent observational accuracy.
See reference comparisons,
calibration,
temperature-only and
validation status for full workflows.