Skip to content

Commit 40f9b22

Browse files
LisaBockaxel-lauerschlunmakirsten-schulzeKirsten Schulze
authored
Adding basic sanity checks (#4120)
Co-authored-by: Axel Lauer <axel.lauer@dlr.de> Co-authored-by: Manuel Schlund <manuel.schlund@dlr.de> Co-authored-by: kirsy05 <88324002+kirsy05@users.noreply.github.com> Co-authored-by: Kirsten Schulze <b309296@levante2.lvt.dkrz.de> Co-authored-by: giuliacast <166797075+giuliacast@users.noreply.github.com> Co-authored-by: Giulia Castellani <b383308@levante4.lvt.dkrz.de> Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com> Co-authored-by: Bettina Gier <gier@uni-bremen.de> Co-authored-by: Julien Lenhardt <45034763+jlenh@users.noreply.github.com>
1 parent fc881fb commit 40f9b22

8 files changed

Lines changed: 1678 additions & 0 deletions

File tree

.zenodo.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@
6666
"affiliation": "University of Bremen, Germany",
6767
"name": "Adeniyi, Kemisola"
6868
},
69+
{
70+
"affiliation": "University of Bremen, Germany",
71+
"name": "Castellani, Giulia",
72+
"orcid": "0000-0001-6151-015X"
73+
},
6974
{
7075
"affiliation": "ISAC-CNR, Italy",
7176
"name": "Arnone, Enrico",
@@ -366,6 +371,10 @@
366371
"affiliation": "DLR, Germany",
367372
"name": "Sarauer, Ellen"
368373
},
374+
{
375+
"affiliation": "University of Bremen, Germany",
376+
"name": "Schulze, Kirsten"
377+
},
369378
{
370379
"affiliation": "University of Reading, UK",
371380
"name": "Roberts, Charles",

CITATION.cff

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,10 @@ authors:
174174
affiliation: "University of Bremen, Germany"
175175
family-names: Gier
176176
given-names: Bettina
177+
-
178+
affiliation: "University of Bremen, Germany"
179+
family-names: Castellani
180+
given-names: Giulia
177181
-
178182
affiliation: "Met Office, UK"
179183
family-names: Gillett
@@ -358,6 +362,10 @@ authors:
358362
family-names: Weigel
359363
given-names: Katja
360364
orcid: "https://orcid.org/0000-0001-6133-7801"
365+
-
366+
affiliation: "University of Bremen, Germany"
367+
family-names: Schulze
368+
given-names: Kirsten
361369
-
362370
affiliation: "DLR, Germany"
363371
family-names: Sarauer
23.5 KB
Loading

doc/sphinx/source/recipes/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ large variety of input data.
2525
recipe_model_evaluation
2626
recipe_monitor
2727
recipe_portrait
28+
recipe_sanity_checks
2829
recipe_seaborn
2930
recipe_ref
3031

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
.. _recipe_santiy_checks:
2+
3+
Sanity checks
4+
=============
5+
6+
Overview
7+
--------
8+
9+
The sanity check recipe (``recipe_sanity_checks.yml``) is intended to perform
10+
some basic sanity checks for new simulations during model development. A subset of variables
11+
is selected to check whether the model is performing in reasonable way. The recipe plots global
12+
monthly means as well as maximum and minimum across all individual grid cells for each time step.
13+
This can be used to check for example for negative mass concentrations occuring at any grid cell
14+
at any time (minimum is less than zero) or whether individual grid cells exceed physically reasonable
15+
values (e.g. total cloud fraction greater than 100%).
16+
The global monthly means can be compared to the minimum and maximum values found in reference
17+
datasets (observations, reanalyses) across all months and all reference datasets. The "reasonable"
18+
limits are shown as red lines. A good model simulations would be expected to not exceed these
19+
limits at any time. The minimum and maximum global averages across all months and all reference
20+
datasets is calculated with ``recipe_create_ranges_obs.yml``.
21+
22+
Available recipes and diagnostics
23+
---------------------------------
24+
25+
Recipes are stored in `recipes/sanity_checks`
26+
27+
* recipe_sanity_checks.yml
28+
* recipe_create_ranges_obs.yml
29+
30+
.. note::
31+
32+
The time frequency used in ``recipe_create_ranges_obs.yml`` (monthly, daily, etc. values) to
33+
calculate "reasonable" minimum and maximum values must match the time frequency used in
34+
the sanity check recipe (``recipe_sanity_checks.yml``).
35+
36+
Diagnostics are stored in `diag_scripts/monitor/`
37+
38+
* :ref:`multi_datasets.py
39+
<api.esmvaltool.diag_scripts.monitor.multi_datasets>`:
40+
Monitoring diagnostic to show multiple datasets in one plot (incl. biases).
41+
42+
Variables:
43+
----------
44+
45+
* ps (air mass)
46+
* qep (moisture flux)
47+
* prw (water vapor mass)
48+
* asr
49+
* clivi
50+
* clt
51+
* hfls
52+
* hfss
53+
* lwcre
54+
* lwp
55+
* netcre
56+
* pr
57+
* prc
58+
* prw
59+
* rlds
60+
* rlut
61+
* rtnt
62+
* rsds
63+
* rsut
64+
* swcre
65+
* tas
66+
* tauu
67+
* tauv
68+
69+
Example plots
70+
-------------
71+
72+
.. _fig_sanity_check_clt:
73+
.. figure:: /recipes/figures/sanity_checks/timeseries_ambiguous_variable_group_MPI-ESM1-2-LR_Amon_historical_r1i1p1f1.png
74+
:align: center
75+
:width: 14cm
76+
77+
Time series of monthly global average (solid line) and minimum / maximum
78+
(dashed lines) total cloud cover from MPI-ESM1-2-LR. The red horizontal lines
79+
show the monthly minimum and maximum global average across multiple reference
80+
dataset (here: ESACCI-CLOUD, CLARA-AVHRR, PATMOS-x, MODIS, ERA5) calculated
81+
with recipe_create_ranges_obs.yml. Plot created with recipe_sanity_checks.yml.

esmvaltool/config-references.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ authors:
3030
email: diego.cammarano@dlr.de
3131
github: diegokam
3232
orcid:
33+
castellani_giulia:
34+
name: Castellani, Giulia
35+
institute: University of Bremen
36+
email: giulia.castellani@uni-bremen.de
37+
github: giuliacast
38+
orcid: https://orcid.org/0000-0001-6151-015X
3339
debeire_kevin:
3440
name: Debeire, Kevin
3541
institute: DLR, Germany
@@ -527,6 +533,11 @@ authors:
527533
institute: DLR, Germany
528534
orcid:
529535
github: ellensarauer
536+
schulze_kirsten:
537+
name: Schulze, Kirsten
538+
institute: Uni Bremen, Germany
539+
orcid:
540+
github: kirsy05
530541
serva_federico:
531542
name: Serva, Federico
532543
institute: CNR, Italy

0 commit comments

Comments
 (0)