How noaa-gfdl/mdtf-diagnostics works
MDTF-diagnostics is a framework for running independent process-oriented weather and climate diagnostics (PODs) on model data and producing figures viewable as HTML. The principal workflow starts with a user-supplied runtime configuration, prepares PODs and input data, executes eligible diagnostics, then organizes their outputs. The graph also preserves documented diagnostic capabilities and central framework utilities. Relationships are limited to calls or references visible in excerpts and the source index; unsampled diagnostic internals and runtime wiring are not inferred.
Main entry points: mdtf_framework.py Framework entry · preprocessor.py Preprocessor · stc_qbo_enso.py QBO and ENSO · data_sources.py Data sources
Components 27
Framework execution
- Framework entry
mdtf_framework.py - CLI
src/cli.py - POD setup
src/pod_setup.py
Data preparation
- Data sources
src/data_sources.py - Preprocessor
src/preprocessor.py - Variable translation
src/translation.py - Variable lists
src/varlist_util.py - Xarray parser
src/xr_parser.py - Units
src/units.py
Runtime support
- Environment manager
src/environment_manager.py - Core utilities
src/util/basic.py - Date labels
src/util/datelabel.py - Data classes
src/util/dataclass.py - JSON utilities
src/util/json_utils.py - Logging
src/util/logs.py
Scientific diagnostics
- Independent PODs
diagnostics - QBO and ENSO
diagnostics/stc_qbo_enso/stc_qbo_enso.py - ENSO plotting
diagnostics/stc_qbo_enso/stc_qbo_enso_plottingcodeenso.py - QBO plotting
diagnostics/stc_qbo_enso/stc_qbo_enso_plottingcodeqbo.py - Polar vortex extremes
diagnostics/stc_spv_extremes/stc_spv_extremes.py - Vortex definitions
diagnostics/stc_spv_extremes/stc_spv_extremes_defs.py - Wave coupling
diagnostics/stc_vert_wave_coupling/stc_vert_wave_coupling.py - Wave calculations
diagnostics/stc_vert_wave_coupling/stc_vert_wave_coupling_calc.py - MJO diagnostics
diagnostics/MJO_suite/MJO_suite.py - Ocean flux
diagnostics/ocn_surf_flux_diag/ocn_surf_flux_diag.py
Output handling
- HTML output manager
src/output_manager.py
Other components
- Climate analyst
Connections 19
- Climate analyst → Framework entry: provides configuration
mdtf_framework.py - Framework entry → Environment manager: runs eligible PODs
mdtf_framework.py - Framework entry → HTML output manager: creates HTML output
mdtf_framework.py - Framework entry → CLI: imports CLI
mdtf_framework.py - Framework entry → POD setup: imports setup
mdtf_framework.py - Framework entry → Preprocessor: imports preprocessing
mdtf_framework.py - Framework entry → Variable translation: imports translation
mdtf_framework.py - Framework entry → Data sources: imports sources
mdtf_framework.py - Environment manager → Independent PODs: executes POD code
src/environment_manager.py - Preprocessor → Variable translation: imports translation
src/preprocessor.py - Preprocessor → Xarray parser: imports parser
src/preprocessor.py - Preprocessor → Variable lists: imports variable lists
src/preprocessor.py - Preprocessor → Units: imports units
src/preprocessor.py - Preprocessor → Date labels: uses date labels
src/preprocessor.py - Data sources → Variable lists: imports variable lists
src/data_sources.py - QBO and ENSO → ENSO plotting: uses plotting code
diagnostics/stc_qbo_enso/stc_qbo_enso.py - QBO and ENSO → QBO plotting: uses plotting code
diagnostics/stc_qbo_enso/stc_qbo_enso.py - Polar vortex extremes → Vortex definitions: uses definitions
diagnostics/stc_spv_extremes/stc_spv_extremes.py - Wave coupling → Wave calculations: uses calculations
diagnostics/stc_vert_wave_coupling/stc_vert_wave_coupling.py