Skip to content
Merged
Show file tree
Hide file tree
Changes from 51 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
e725f43
first draft recipe
axel-lauer Apr 1, 2025
4c2b494
Allowed vlines in monitoring line plots
schlunma Apr 1, 2025
e542e02
added horizontal lines
axel-lauer Apr 1, 2025
f988228
Merge branch 'monitoring_vlines' into sanity_checks_basic
axel-lauer Apr 1, 2025
73f9d64
update recipe_monitor_sanity_checks.yml
axel-lauer Apr 1, 2025
f2a21a0
added first drafts of recipes to create range of reasonable values (C…
axel-lauer Apr 1, 2025
607de4a
update recipes
axel-lauer Apr 2, 2025
af33afc
added tas to sanity recipes
axel-lauer Apr 2, 2025
7f5fea0
bugfix precip units
axel-lauer Apr 2, 2025
6a10183
Merge remote-tracking branch 'public/main' into sanity_checks_basic
schlunma Apr 3, 2025
bcea918
pre-commit
schlunma Apr 3, 2025
1e68956
update recipe_monitor_sanity_checks.yml
axel-lauer Apr 3, 2025
9194024
Merge branch 'sanity_checks_basic' of github.com:ESMValGroup/ESMValTo…
axel-lauer Apr 3, 2025
ec8aac9
Add global mass checks (#3978)
LisaBock Apr 4, 2025
54ef2ab
Merge branch 'sanity_checks_basic' of github.com:ESMValGroup/ESMValTo…
axel-lauer Apr 4, 2025
7f009aa
Additional variables for sanity check and add Kirsten Schulze as auth…
kirsten-schulze Apr 4, 2025
89f63f4
Merge branch 'sanity_checks_basic' of github.com:ESMValGroup/ESMValTo…
axel-lauer Apr 4, 2025
af8a2a8
update recipe_monitor_sanity_checks.yml
axel-lauer Apr 4, 2025
fbc1b45
Add variables to sanity check recipe (#3979)
giuliacast Apr 4, 2025
f064d54
update recipe_monitor_sanity_checks.yml
axel-lauer Apr 4, 2025
cbca644
updated senity check docu
axel-lauer Apr 4, 2025
13f7195
Merge remote-tracking branch 'public/main' into sanity_checks_basic
LisaBock Jul 17, 2025
ec4a5c2
Merge remote-tracking branch 'public/main' into sanity_checks_basic
LisaBock Jul 21, 2025
c86c75e
enhance calculation of ranges
LisaBock Jul 21, 2025
49395b8
add renges from obs
LisaBock Jul 22, 2025
f3d9fae
automatic fixes
LisaBock Jul 22, 2025
1e205b8
seperate doc and recipe
LisaBock Jul 23, 2025
3639e10
small adjustments
LisaBock Jul 23, 2025
be8960d
automatic fixes
LisaBock Jul 23, 2025
5ed573b
rm cmip6 recipe
LisaBock Jul 23, 2025
589471b
small fixes
LisaBock Jul 23, 2025
40f20ed
fix docu
LisaBock Jul 23, 2025
ff3d28f
change recipe name
LisaBock Jul 24, 2025
3e897a1
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
79aeb77
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
442b9f3
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
1837f85
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
6eae0e1
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
427d283
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Jul 24, 2025
becc59f
add diagnostic to doc
LisaBock Jul 24, 2025
ca40afc
Merge branch 'sanity_checks_basic' of github.com:ESMValGroup/ESMValTo…
LisaBock Jul 24, 2025
44742dd
solve Axel's comments
LisaBock Jul 28, 2025
c29a18f
clean recipe
LisaBock Jul 29, 2025
00daf17
adding captions and cleaning
LisaBock Jul 29, 2025
a525203
modify multi-model pp
LisaBock Jul 29, 2025
571f011
automated fixes
LisaBock Jul 29, 2025
56b2b60
Update esmvaltool/recipes/sanity_checks/recipe_sanity_checks.yml
LisaBock Jul 29, 2025
504cf50
update figure caption
LisaBock Jul 30, 2025
c92e153
rm annual_mean_kwargs
LisaBock Jul 30, 2025
c6a8f44
Merge remote-tracking branch 'public/main' into sanity_checks_basic
LisaBock Jul 30, 2025
3948875
update captions
LisaBock Jul 30, 2025
d8f0eb9
Update esmvaltool/recipes/sanity_checks/recipe_create_ranges_obs.yml
LisaBock Aug 26, 2025
1fe6250
Update esmvaltool/recipes/sanity_checks/recipe_create_ranges_obs.yml
LisaBock Aug 26, 2025
2c80d93
Update doc/sphinx/source/recipes/recipe_sanity_checks.rst
LisaBock Aug 26, 2025
e8df4f4
Merge branch 'main' into sanity_checks_basic
LisaBock Aug 26, 2025
e027d05
automated fixes
LisaBock Aug 26, 2025
f594a78
Merge branch 'main' into sanity_checks_basic
jlenh Aug 28, 2025
e969ec3
Merge branch 'main' into sanity_checks_basic
jlenh Aug 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,11 @@
"affiliation": "University of Bremen, Germany",
"name": "Adeniyi, Kemisola"
},
{
"affiliation": "University of Bremen, Germany",
"name": "Castellani, Giulia",
"orcid": "0000-0001-6151-015X"
},
{
"affiliation": "ISAC-CNR, Italy",
"name": "Arnone, Enrico",
Expand Down Expand Up @@ -366,6 +371,10 @@
"affiliation": "DLR, Germany",
"name": "Sarauer, Ellen"
},
{
"affiliation": "University of Bremen, Germany",
"name": "Schulze, Kirsten"
},
{
"affiliation": "University of Reading, UK",
"name": "Roberts, Charles",
Expand Down
8 changes: 8 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,10 @@ authors:
affiliation: "University of Bremen, Germany"
family-names: Gier
given-names: Bettina
-
affiliation: "University of Bremen, Germany"
family-names: Castellani
given-names: Giulia
-
affiliation: "Met Office, UK"
family-names: Gillett
Expand Down Expand Up @@ -358,6 +362,10 @@ authors:
family-names: Weigel
given-names: Katja
orcid: "https://orcid.org/0000-0001-6133-7801"
-
affiliation: "University of Bremen, Germany"
family-names: Schulze
given-names: Kirsten
-
affiliation: "DLR, Germany"
family-names: Sarauer
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions doc/sphinx/source/recipes/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ large variety of input data.
recipe_model_evaluation
recipe_monitor
recipe_portrait
recipe_sanity_checks
recipe_seaborn
recipe_ref

Expand Down
81 changes: 81 additions & 0 deletions doc/sphinx/source/recipes/recipe_sanity_checks.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
.. _recipe_santiy_checks:

Sanity checks
=============

Overview
--------

The sanity check recipe (``recipe_sanity_checks.yml``) is intended to perform
some basic sanity checks for new simulations during model development. A subset of variables
is selected to check whether the model is performing in reasonable way. The recipe plots global
monthly means as well as maximum and minimum across all individual grid cells for each time step.
This can be used to check for example for negative mass concentrations occuring at any grid cell
at any time (minimum is less than zero) or whether individual grid cells exceed physically reasonalble
values (e.g. total cloud fraction greater than 100%).
The global monthly means can be compared to the minimum and maximum values found in reference
datasets (observations, reanalyses) across all months and all reference datasets. The "reasonable"
limits are shown as red lines. A good model simulations would be expected to not exceed these
limits at any time. The minimum and maximum global averages across all months and all reference
datasets is calculated with ``recipe_create_ranges_obs.yml``.

Available recipes and diagnostics
---------------------------------

Recipes are stored in `recipes/sanity_checks`

* recipe_sanity_checks.yml
* recipe_create_ranges_obs.yml

.. note::

The time frequency used in ``recipe_create_ranges_obs.yml`` (monthly, daily, etc. values) to
calculate "reasonable" minimum and maximum values must match the time frequency used in
the sanity check recipe (``recipe_sanity_checks.yml``).

Diagnostics are stored in `diag_scripts/monitor/`

* :ref:`multi_datasets.py
<api.esmvaltool.diag_scripts.monitor.multi_datasets>`:
Monitoring diagnostic to show multiple datasets in one plot (incl. biases).

Variables:
----------

* ps (air mass)
* qep (moisture flux)
* prw (water vapor mass)
* asr
* clivi
* clt
* hfls
* hfss
* lwcre
* lwp
* netcre
* pr
* prc
* prw
* rlds
* rlut
* rtnt
* rsds
* rsut
* swcre
* tas
* tauu
* tauv

Example plots
-------------

.. _fig_sanity_check_clt:
.. figure:: /recipes/figures/sanity_checks/timeseries_ambiguous_variable_group_MPI-ESM1-2-LR_Amon_historical_r1i1p1f1.png
:align: center
:width: 14cm

Time series of monthly global average (solid line) and minimum / maximum
(dashed lines) total cloud cover from MPI-ESM1-2-LR. The red horizontal lines
show the monthly minimum and maximum global average across multiple reference
dataset (here: ESACCI-CLOUD, CLARA-AVHRR, PATMOS-x, MODIS, ERA5) calculated
with recipe_create_ranges_obs.yml. Plot created with recipe_sanity_checks.yml.
11 changes: 11 additions & 0 deletions esmvaltool/config-references.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ authors:
email: [email protected]
github: diegokam
orcid:
castellani_giulia:
name: Castellani, Giulia
institute: University of Bremen
email: [email protected]
github: giuliacast
orcid: https://orcid.org/0000-0001-6151-015X
debeire_kevin:
name: Debeire, Kevin
institute: DLR, Germany
Expand Down Expand Up @@ -527,6 +533,11 @@ authors:
institute: DLR, Germany
orcid:
github: ellensarauer
schulze_kirsten:
name: Schulze, Kirsten
institute: Uni Bremen, Germany
orcid:
github: kirsy05
serva_federico:
name: Serva, Federico
institute: CNR, Italy
Expand Down
Loading