Cold-Point Tropopause (CTP) diagnostic and sample recipe - #4565
Cold-Point Tropopause (CTP) diagnostic and sample recipe#4565aoifemcquaid wants to merge 3 commits into
Conversation
…-ML. Longitude hovmoeller plot with CPT P, T, q and RH_i. RH_i derived from other variables.
- Replace the hard-coded local-path-only ICON recipe with ERA5 (native6) and CMIP6 (MPI-ESM1-2-LR), and preserve the original ICON local-path setup as a separate copy outside the repo. - Split each dataset's single 3-panel figure into standalone, self-contained per-variable plots (temperature, specific humidity, RH over ice), so more compatible with ICONEval as plots can be produced independently - Add a parallel time-vs-latitude Hovmoeller view (restricted to -20°/+20°) alongside the existing time-vs-longitude view for every variable/dataset, doubling figure count with a consistent _lon/_lat filename suffix. - Fix main() so preprocessed datasets (ERA5/CMIP6) and a raw ICON block can both run in the same invocation rather than ICON short-circuiting dataset processing, without altering the underlying CTP calculation logic.
|
|
schlunma
left a comment
There was a problem hiding this comment.
Thanks @aoifemcquaid, looks great already! Just a couple of comments to make the code simpler.
Please remove all special treatment of ICON data, it should be possible to read this without any special treatment in the diagnostic. If you need the ICON data to be on a regular grid with a regular pressure level Z coordinate, you can use the following preprocessors in the recipe:
preprocessors:
preprocess_icon:
custom_order: true
extract_levels:
levels: {cmor_table: CMIP6, coordinate: plev19}
scheme: linear
coordinate: air_pressure
regrid:
target_grid: 2x2
scheme: area_weightedIt would be great if you could also add documentation to the recipe/diagnostic (e.g., like done in #3155).
If you want, you can also add your name to the CITATION.cff and .zenodo.json to become an official contributor.
Thanks 🚀
| - weigel_katja | ||
| - schlund_manuel |
There was a problem hiding this comment.
| - weigel_katja | |
| - schlund_manuel | |
| - mcquaid_aoife |
| - weigel_katja | ||
| - schlund_manuel | ||
| maintainer: | ||
| - unmaintained |
There was a problem hiding this comment.
| - unmaintained | |
| - schlund_manuel |
Summary
This PR adds a new tropical cold-point tropopause (CTP) Hovmoeller diagnostic to ESMValTool. It identifies the CTP as the minimum-temperature level in a configurable pressure range and produces longitude-time and latitude-time Hovmoeller plots of CTP temperature, specific humidity, and relative humidity w.r.t. ice, with CTP pressure shown as filled contours. The recipe runs the diagnostic against ERA5 and CMIP6 data.
Files added/changed
CTP diagnostic workflow
an optional raw-ICON input pathway (file-pattel preprocessing) that can run alongside preprocessed datasets in the same invocation, used for local ICON testing (see below) but not part of this recipe.
Data included
The recipe uses only ERA5 (project: native6) and CMIP6 (MPI-ESM1-2-LR, historical, r1i1p1f1, gn) — both standard ESMValTool-accessible sources. No local or absolute file paths are included in this recipe. A separate ICON-inclusive variant of this recipe (adding a local-path ICON dataset block) exists outside this repository for local development use only and is not part of this PR.
Testing
Run locally end-to-end with ESMValTool via the repo’s pixi environment (project.toml, pixi.lock; ESMValCore dependency pinned to >=2.14.0, ESMValTool dev version v2.14.0-74-g9ea83ca94 per git describe). The recipe completed successfully and produced all expected output plots for every dataset/variable/plot-type combination (12 PNGs: ERA5 and CMIP6, 3 variables each, lon and lat views). No further validation (e.g. against reference/published CTP climatologies) has been performed.
Before you get started
Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.
New or updated recipe/diagnostic
To help with the number of pull requests: