Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmarking recipes (Lauer et al.) #3598

Open
wants to merge 113 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 111 commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
94c826e
quick and dirty implementation of diurnal cycle
axel-lauer Jan 15, 2024
7c7a2e6
added diurnal cycle plot to monitor.py
axel-lauer Jan 16, 2024
8a73469
added diurnal cycle example to model_evaluation/recipe_model_evaluati…
axel-lauer Jan 17, 2024
2daf3a9
added docu examples diurnal cycle
axel-lauer Jan 17, 2024
244d8d8
fixed style issues in monitor/multi_datasets.py
axel-lauer Jan 18, 2024
f45b25d
fixed typo in docu example
axel-lauer Jan 18, 2024
530106e
draft version of first benchmarking recipe (maps)
axel-lauer Jan 25, 2024
c8aa55c
snapshot 2024-02-01
axel-lauer Feb 1, 2024
080b8f5
Merge branch 'main' into diurnal_cycle
diegokam Feb 2, 2024
40d9167
snapshot 2024-02-02
axel-lauer Feb 2, 2024
e707342
first working version
axel-lauer Feb 6, 2024
904b291
fixed some flake8 issues
axel-lauer Feb 6, 2024
a7ab4e4
adding benchmarking boxplot
LisaBock Feb 7, 2024
b9b0a40
Merge branch 'benchmarking_boxplot' into benchmarking_maps4monitoring
LisaBock Feb 7, 2024
b25b9c6
extract plotting function
LisaBock Feb 7, 2024
ec4b1c1
added draft of recipe_model_benchmarking_timeseries.yml
axel-lauer Feb 8, 2024
2438b26
fix filename
LisaBock Feb 8, 2024
83d972e
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
LisaBock Feb 8, 2024
30b8453
boxplots for more variables
LisaBock Feb 9, 2024
b864979
mv recipe
LisaBock Feb 9, 2024
dddc3a5
added zonal mean benchmarking plot
axel-lauer Feb 9, 2024
a8c5e1e
merged with lastest branch
axel-lauer Feb 9, 2024
d154eed
fixed some flake8 issues
axel-lauer Feb 12, 2024
128a77e
updated zonal mean benchmarking recipe
axel-lauer Feb 12, 2024
4ccc12c
addressing review comments
axel-lauer Feb 16, 2024
a99b522
Merge branch 'main' into diurnal_cycle
schlunma Feb 16, 2024
413cb61
clean recipe
LisaBock Feb 21, 2024
ed1e991
add var order and different distance metrics
LisaBock Feb 22, 2024
1241f20
first version of plot benchmarking_timeseries
axel-lauer Mar 4, 2024
dff982e
added benchmarking annual cycle plot
axel-lauer Mar 4, 2024
66a4bc5
added benchmarking diurnal cycle plot
axel-lauer Mar 6, 2024
50e498b
addressed some style issues
axel-lauer Mar 6, 2024
446b4ee
updated benchmarking recipes
axel-lauer Mar 7, 2024
b37e9b3
snapshot 2024-03-07
axel-lauer Mar 7, 2024
9455bf9
updated masking of bias data for benchmarking
axel-lauer Mar 19, 2024
2d92633
bugfix diag_scripts/clouds/clouds.ncl
axel-lauer Mar 20, 2024
ec23f76
remove unit if 1 from boxplots
LisaBock Mar 27, 2024
b3df631
change plotname for boxplots
LisaBock Mar 27, 2024
5001ac9
adjusting the recipes to use an EMAC simulation for benchmarking
hb326 Apr 5, 2024
d7653fc
adjusting so that EMAC can be used as model to be benchmarked
hb326 Apr 5, 2024
da794dc
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Apr 8, 2024
b616302
adding a preprocessor that filters EMAC's negative temperatures
hb326 Apr 8, 2024
7be6551
update recipe_model_benchmarking_diurnal_cycle.yml
axel-lauer Apr 9, 2024
013926a
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Apr 9, 2024
99b5d19
updates for EMAC comparison
axel-lauer Apr 11, 2024
d22c0e7
more updates for EMAC comparison
axel-lauer Apr 11, 2024
c71ef02
updates boxplots for EMAC comparison
axel-lauer Apr 13, 2024
e95e9e0
update recipe for boxplots
axel-lauer Apr 18, 2024
118d0a1
added default colorbar for sst
axel-lauer May 2, 2024
ff56640
preparing benchmarking recipes for PR
axel-lauer May 8, 2024
70012f9
added docu draft (no images)
axel-lauer May 8, 2024
ec9a1d9
merged with branch diurnal_cycle
axel-lauer May 8, 2024
69337fe
fixed merging conflicts
axel-lauer May 8, 2024
7f4dbdf
added example plots for benchmarking recipes
axel-lauer May 8, 2024
fc99b85
updated docu
axel-lauer May 15, 2024
d4a75e1
updated recipes
axel-lauer May 15, 2024
f807a0e
fixed some flake8 and pylint issues
axel-lauer May 15, 2024
be0f566
added zorder in _plot_benchmarking_boxplot
axel-lauer May 15, 2024
6592cc1
fixed style issue in cloud.ncl
axel-lauer May 16, 2024
13b5312
updated docu figures
axel-lauer May 16, 2024
6ac3bae
Merge branch 'main' into benchmarking_maps4monitoring
axel-lauer May 16, 2024
ffb8b8e
Update multi_datasets.py
axel-lauer May 28, 2024
d5c5375
Update recipe_benchmarking.rst
axel-lauer May 28, 2024
4723d44
Merge branch 'main' into benchmarking_maps4monitoring
axel-lauer May 29, 2024
eae63ca
Update recipe_benchmarking.rst
axel-lauer May 29, 2024
714b349
Merge branch 'main' into benchmarking_maps4monitoring
alistairsellar Jun 5, 2024
7a3c844
Update recipe_benchmarking.rst
axel-lauer Jun 7, 2024
1fbdf10
Update docu (recipe_benchmarking.rst)
axel-lauer Jun 11, 2024
5ec42a2
Merge branch 'main' into benchmarking_maps4monitoring
axel-lauer Dec 12, 2024
8d6a8d0
removed blank line
axel-lauer Dec 12, 2024
e03db0d
added Lukas Ruhe to config-references.yml
axel-lauer Dec 12, 2024
9db0c2c
add seaborn boxplot link
LisaBock Dec 20, 2024
8d6bb2d
Update esmvaltool/recipes/model_evaluation/recipe_model_benchmarking_…
axel-lauer Jan 20, 2025
6483f8d
Update esmvaltool/recipes/model_evaluation/recipe_model_benchmarking_…
axel-lauer Jan 20, 2025
4f247e8
Update esmvaltool/config-references.yml
axel-lauer Jan 20, 2025
f1c846b
changed author ruhe_lukas to lindenlaub_lukas
axel-lauer Jan 20, 2025
53c1451
renamed reference lauer24gmd to lauer25gmd
axel-lauer Jan 20, 2025
42c1989
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Jan 20, 2025
e39e12a
updated docu recipe_benchmarking.rst
axel-lauer Jan 20, 2025
9ee9cdd
updated with main
axel-lauer Jan 20, 2025
2cb194c
added more docu to multi_datasets.py
axel-lauer Jan 20, 2025
bce0f86
fixed some docu issues
axel-lauer Jan 21, 2025
b003117
Update doc/sphinx/source/recipes/recipe_benchmarking.rst
axel-lauer Jan 21, 2025
150011b
Update esmvaltool/diag_scripts/monitor/multi_datasets.py
axel-lauer Jan 21, 2025
b1c8985
removed unused default settings
axel-lauer Jan 21, 2025
fbd98d8
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Jan 21, 2025
146b0d0
removed commented out code from multi_datasets.py
axel-lauer Jan 21, 2025
295cb9a
fixed some flake8 issues in multi_datasets.py
axel-lauer Jan 21, 2025
0d5fcef
adjusted path to diag script for portrait diagram to match PR #3551
axel-lauer Jan 21, 2025
4a817e8
Remove unused options from benchmarking maps and zonal plots
schlunma Jan 22, 2025
da473da
Allow datasets w/o timerange for benchmarking diags (see #3528)
schlunma Jan 22, 2025
5f6c3e9
Fix contourf plots (see #3797 and #3789)
schlunma Jan 22, 2025
e647152
More flexible font sizes (see #3844)
schlunma Jan 22, 2025
2e9ef36
Make sure that boxplots are actually created
schlunma Jan 22, 2025
378c313
Properly format figure captions for model evaluation recipe doc
schlunma Jan 22, 2025
6c166a9
Delete superfluous ':'
schlunma Jan 22, 2025
5ff0d45
Use YAML syntax for YAML code
schlunma Jan 22, 2025
baa2096
Minor doc changes
schlunma Jan 22, 2025
2c44d27
Re-add default show_stats for zonal mean plot
schlunma Jan 22, 2025
51f9d1b
Do not use ERA5 in monitor recipe so it can be run with bot
schlunma Jan 22, 2025
2550c05
Fix doc build
schlunma Jan 22, 2025
4b8c65f
Merge branch 'main' into benchmarking_maps4monitoring
schlunma Jan 22, 2025
6414a7f
changed reference lauer25gmd to preprint version until article is pub…
axel-lauer Jan 23, 2025
d58b02a
update docs
axel-lauer Jan 23, 2025
0240bbb
Make portrait plot work
schlunma Jan 23, 2025
664417e
added info on benchmark_dataset: true to multi_datasets.py
axel-lauer Jan 23, 2025
92f09a9
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Jan 23, 2025
d230fd0
remove recipe_lauer25gmd_fig*.yml, now available at 10.5281/zenodo.11…
axel-lauer Jan 27, 2025
bfa5873
Fix flake8 issues
schlunma Jan 27, 2025
0d862a2
removed EMAC from recipes
axel-lauer Jan 27, 2025
78b6021
Merge branch 'benchmarking_maps4monitoring' of github.com:ESMValGroup…
axel-lauer Jan 27, 2025
8417240
removed commented out lines in recipe_model_evaluation_portraits.yml
axel-lauer Jan 28, 2025
a221dcb
removed recipe_model_evaluation_portraits.yml from this PR to avoid d…
axel-lauer Jan 28, 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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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 @@ -21,6 +21,7 @@ large variety of input data.
.. toctree::
:maxdepth: 1

recipe_benchmarking
recipe_model_evaluation
recipe_monitor
recipe_portrait
Expand Down
175 changes: 175 additions & 0 deletions doc/sphinx/source/recipes/recipe_benchmarking.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
.. _recipe_benchmarking:

Model Benchmarking
==================

Overview
--------

These recipes and diagnostics are based on :ref:`recipe_monitor <recipe_monitor>` that allow plotting arbitrary preprocessor output, i.e., arbitrary variables from arbitrary datasets. An extension of these diagnostics is used to benchmark a model simulation with other datasets (e.g. CMIP6). The benchmarking features are described in `Lauer et al.`_.

.. _`Lauer et al.`: https://doi.org/10.5194/egusphere-2024-1518

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

Recipes are stored in `recipes/model_evaluation`

* recipe_model_benchmarking_annual_cycle.yml
* recipe_model_benchmarking_boxplots.yml
* recipe_model_benchmarking_diurnal_cycle.yml
* recipe_model_benchmarking_maps.yml
* recipe_model_benchmarking_timeseries.yml
* recipe_model_benchmarking_zonal.yml
axel-lauer marked this conversation as resolved.
Show resolved Hide resolved

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).


Recipe settings
~~~~~~~~~~~~~~~

See :ref:`multi_datasets.py<api.esmvaltool.diag_scripts.monitor.multi_datasets>` for a list of all possible configuration options that can be specified in the recipe.

.. note::
axel-lauer marked this conversation as resolved.
Show resolved Hide resolved
Please note that exactly one dataset (the dataset to be benchmarked) needs to specify the facet ``benchmark_dataset: true`` in the dataset entry of the recipe. For line plots (i.e. annual cycle, diurnal cycle, time series), it is recommended, to specify a particular line color and line style in the ``scripts`` section of the recipe for the dataset to be benchmarked (``benchmark_dataset: true``) so that this dataset is easy to identify in the plot. In the example below, MIROC6 is the dataset to be benchmarked and ERA5 is used as a reference dataset.

.. code-block:: yaml

scripts:
allplots:
script: monitor/multi_datasets.py
plot_folder: '{plot_dir}'
plot_filename: '{plot_type}_{real_name}_{mip}'
group_variables_by: variable_group
facet_used_for_labels: alias
plots:
diurnal_cycle:
annual_mean_kwargs: false
legend_kwargs:
loc: upper right
plot_kwargs:
'MIROC6':
color: red
label: '{alias}'
linestyle: '-'
linewidth: 2
zorder: 4
ERA5:
color: black
label: '{dataset}'
linestyle: '-'
linewidth: 2
zorder: 3
MultiModelPercentile10:
color: gray
label: '{dataset}'
linestyle: '--'
linewidth: 1
zorder: 2
MultiModelPercentile90:
color: gray
label: '{dataset}'
linestyle: '--'
linewidth: 1
zorder: 2
default:
color: lightgray
label: null
linestyle: '-'
linewidth: 1
zorder: 1

Variables
---------

Any, but the variables' number of dimensions should match the ones expected by each plot.

References
----------

* Lauer, A., L. Bock, B. Hassler, P. Jöckel, L. Ruhe, and M. Schlund: Monitoring and benchmarking Earth
System Model simulations with ESMValTool v2.12.0, EGUsphere [preprint], https://doi.org/10.5194/egusphere-2024-1518, 2024.

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

.. _fig_benchmarking_annual_cycle:
.. figure:: /recipes/figures/benchmarking/annual_cycle.png
:align: center
:width: 16cm

(Left) Multi-year global mean (2000-2004) of the seasonal cycle of near-surface temperature
in K from a simulation of MIROC6 and the reference dataset HadCRUT5 (black). The thin gray
lines show individual CMIP6 models used for comparison, the dashed gray lines show the 10%
and 90% percentiles of these CMIP6 models. (Right) same as (left) but for area-weighted RMSE
of near-surface temperature. The light blue shading shows the range of the 10% to 90%
percentiles of RMSE values from the ensemble of CMIP6 models used for comparison. Created
with recipe_model_benchmarking_annual_cycle.yml.

.. _fig_benchmarking_boxplots:
.. figure:: /recipes/figures/benchmarking/boxplots.png
:align: center
:width: 16cm

(Left) Global area-weighted RMSE (smaller=better), (middle) weighted Pearson’s correlation
coefficient (higher=better) and (right) weighted Earth mover’s distance (smaller=better) of
the geographical pattern of 5-year means of different variables from a simulation of MIROC6
(red cross) in comparison to the CMIP6 ensemble (boxplot). Reference datasets for calculating
the three metrics are: near-surface temperature (tas): HadCRUT5, surface temperature (ts):
HadISST, precipitation (pr): GPCP-SG, air pressure at sea level (psl): ERA5, shortwave (rsut)
longwave (rlut) radiative fluxes at TOA and shortwave (swcre) and longwave (lwcre) cloud
radiative effects: CERES-EBAF. Each box indicates the range from the first quartile to the
third quartile, the vertical lines show the median, and the whiskers the minimum and maximum
values, excluding the outliers. Outliers are defined as being outside 1.5 times the
interquartile range. Created with recipe_model_benchmarking_boxplots.yml.

.. _fig_benchmarking_diurn_cycle:
.. figure:: /recipes/figures/benchmarking/diurnal_cycle.png
:align: center
:width: 10cm

Area-weighted RMSE of the annual mean diurnal cycle (year 2000) of precipitation averaged over
the tropical ocean (ocean grid cells in the latitude belt 30°S to 30°N) from a simulation of
MIROC6 averaged compared with ERA5 data (black). The light blue shading shows the range of the
10% to 90% percentiles of RMSE values from the ensemble of CMIP6 models used for comparison.
Created with recipe_benchmarking_diurnal_cycle.yml.

.. _fig_benchmarking_map:
.. figure:: /recipes/figures/benchmarking/map.png
:align: center
:width: 10cm

5-year annual mean (2000-2004) area-weighted RMSE of the precipitation rate in mm day-1 from a
simulation of MIROC6 compared with GPCP-SG data. The stippled areas mask grid cells where the
RMSE is smaller than the 90% percentile of RMSE values from an ensemble of CMIP6 models.
Created with recipe_model_benchmarking_maps.yml

.. _fig_benchmarking_timeseries:
.. figure:: /recipes/figures/benchmarking/timeseries.png
:align: center
:width: 16cm

(Left) Time series from 2000 through 2014 of global average monthly mean temperature anomalies
(reference period 2000-2009) of the near-surface temperature in K from a simulation of MIROC6
(red) and the reference dataset HadCRUT5 (black). The thin gray lines show individual CMIP6
models used for comparison, the dashed gray lines show the 10% and 90% percentiles of these
CMIP6 models. (Right) same as (left) but for area-weighted RMSE of the near-surface air
temperature. The light blue shading shows the range of the 10% to 90% percentiles of RMSE
values from the ensemble of CMIP6 models used for comparison. Created with
recipe_model_benchmarking_timeseries.yml.

.. _fig_benchmarking_zonal:
.. figure:: /recipes/figures/benchmarking/zonal.png
:align: center
:width: 10cm

5-year annual mean bias (2000-2004) of the zonally averaged temperature in K from a historical
simulation of MIROC6 compared with ERA5 reanalysis data. The stippled areas mask grid cells
where the absolute BIAS (:math:`|BIAS|`) is smaller than the maximum of the absolute 10%
(:math:`|p10|`) and the absolute 90% (:math:`|p90|`) percentiles from an ensemble of CMIP6
models, i.e. :math:`|BIAS| \geq max( |p10|, |p90|)`. Created with
recipe_model_benchmarking_zonal.yml.
21 changes: 11 additions & 10 deletions doc/sphinx/source/recipes/recipe_model_evaluation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -62,37 +62,38 @@ section).
Example plots
-------------

.. _fig_1:
.. figure:: /recipes/figures/model_evaluation/map_tas_MPI-ESM1-2-HR_Amon.jpg
:align: center
:width: 14cm

Global climatology of 2m near-surface air temperature.
Global climatology of 2m near-surface air temperature.

.. _fig_2:
.. figure:: /recipes/figures/model_evaluation/map_swcre_MPI-ESM1-2-HR_Amon.jpg
:align: center
:width: 14cm

Global climatology of the shortwave cloud radiative effect (SWCRE).
Global climatology of the shortwave cloud radiative effect (SWCRE).

.. _fig_3:
.. figure:: /recipes/figures/model_evaluation/timeseries_rtnt_ambiguous_dataset_Amon.jpg
:align: center
:width: 14cm

Time series of the global mean top-of-the-atmosphere net radiative flux.
Time series of the global mean top-of-the-atmosphere net radiative flux.

.. _fig_4:
.. figure:: /recipes/figures/model_evaluation/variable_vs_lat_pr_Amon.jpg
:align: center
:width: 14cm

Zonal mean precipitation.
Zonal mean precipitation.

.. _fig_5:
.. figure:: /recipes/figures/model_evaluation/annual_cycle_clt_southerocean_Amon.jpg
:align: center
:width: 14cm

Annual cycle of Southern Ocean total cloud cover.
Annual cycle of Southern Ocean total cloud cover.

.. figure:: /recipes/figures/model_evaluation/diurnal_cycle_clt_sepacific_3hr.png
:align: center
:width: 14cm

Diurnal cycle of Southeast Pacific total cloud cover.
40 changes: 27 additions & 13 deletions doc/sphinx/source/recipes/recipe_monitor.rst
Original file line number Diff line number Diff line change
Expand Up @@ -145,88 +145,102 @@ Example plots
:align: center
:width: 14cm

Global climatology of tas.
Global climatology of tas.

.. _fig_seasonclimglobal:
.. figure:: /recipes/figures/monitor/seasonclim.png
:align: center
:width: 14cm

Seasonal climatology of pr, with a custom colorbar.
Seasonal climatology of pr, with a custom colorbar.

.. _fig_monthlyclimglobal:
.. figure:: /recipes/figures/monitor/monclim.png
:align: center
:width: 14cm

Monthly climatology of sivol, only for March and September.
Monthly climatology of sivol, only for March and September.

.. _fig_timeseries:
.. figure:: /recipes/figures/monitor/timeseries.png
:align: center
:width: 14cm

Timeseries of Niño 3.4 index, computed directly with the preprocessor.
Timeseries of Niño 3.4 index, computed directly with the preprocessor.

.. _fig_annual_cycle:
.. figure:: /recipes/figures/monitor/annualcycle.png
:align: center
:width: 14cm

Annual cycle of tas.
Annual cycle of tas.

.. _fig_timeseries_with_ref:
.. figure:: /recipes/figures/monitor/timeseries_with_ref.png
:align: center
:width: 14cm

Timeseries of tas including a reference dataset.
Timeseries of tas including a reference dataset.

.. _fig_annual_cycle_with_ref:
.. figure:: /recipes/figures/monitor/annualcycle_with_ref.png
:align: center
:width: 14cm

Annual cycle of tas including a reference dataset.
Annual cycle of tas including a reference dataset.

.. _fig_diurnal_cycle:
.. figure:: /recipes/figures/monitor/diurnalcycle_pr_tropics_EC-Earth3_3hr_historical_r1i1p1f1.png
:align: center
:width: 14cm
axel-lauer marked this conversation as resolved.
Show resolved Hide resolved

Diurnal cycle of precipitation in the Tropics from EC-Earth3.

.. _fig_diurnal_cycle_with_ref:
.. figure:: /recipes/figures/monitor/diurnal_cycle_clt_tropics_3hr.png
:align: center
:width: 14cm

Diurnal cycle of clt including a reference dataset.

.. _fig_map_with_ref:
.. figure:: /recipes/figures/monitor/map_with_ref.png
:align: center
:width: 14cm

Global climatology of tas including a reference dataset.
Global climatology of tas including a reference dataset.

.. _fig_zonal_mean_profile_with_ref:
.. figure:: /recipes/figures/monitor/zonalmean_profile_with_ref.png
:align: center
:width: 14cm

Zonal mean profile of ta including a reference dataset.
Zonal mean profile of ta including a reference dataset.

.. _fig_1d_profile_with_ref:
.. figure:: /recipes/figures/monitor/1d_profile_with_ref.png
:align: center
:width: 14cm

1D profile of ta including a reference dataset.
1D profile of ta including a reference dataset.

.. _fig_variable_vs_lat_with_ref:
.. figure:: /recipes/figures/monitor/variable_vs_lat_with_ref.png
:align: center
:width: 14cm

Zonal mean pr including a reference dataset.
Zonal mean pr including a reference dataset.

.. _fig_hovmoeller_z_vs_time_with_ref:
.. figure:: /recipes/figures/monitor/hovmoeller_z_vs_time_with_ref.png
:align: center
:width: 14cm

Hovmoeller plot (pressure vs. time) of ta including a reference dataset.
Hovmoeller plot (pressure vs. time) of ta including a reference dataset.

.. _fig_hovmoeller_time_vs_lat_with_ref:
.. figure:: /recipes/figures/monitor/hovmoeller_time_vs_lat_with_ref.png
:align: center
:width: 14cm

Hovmoeller plot (time vs. latitude) of tas including a reference dataset
Hovmoeller plot (time vs. latitude) of tas including a reference dataset
4 changes: 1 addition & 3 deletions doc/sphinx/source/recipes/recipe_thermodyn_diagtool.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ in pressure levels, the daily fields of 2D near-surface temperature and horizont
required to perform a vertical interpolation, substituting data in pressure levels where surface pressure is
lower than the respective level and fields are not stored as an output of the analysed model.

The material entropy production is computed by using the indirect or the direct method (or both). The former
The material entropy production is computed by using the indirect or the direct method (or both). The former
method relies on the convergence of radiative heat in the atmosphere (cfr. Lucarini et al., 2011; Pascale et al., 2011),
the latter on all viscous and non-viscous dissipative processes occurring in the atmosphere
(namely the sensible heat fluxes, the hydrological cycle with its components and the kinetic energy dissipation).
Expand Down Expand Up @@ -139,12 +139,10 @@ References
Example plots
-------------

.. _fig_1:
.. figure:: /recipes/figures/thermodyn_diagtool/meridional_transp.png
:align: left
:width: 14cm

.. _fig_2:
.. figure:: /recipes/figures/thermodyn_diagtool/CanESM2_wmb_transp.png
:align: right
:width: 14cm
1 change: 1 addition & 0 deletions esmvaltool/config-references.yml
Original file line number Diff line number Diff line change
Expand Up @@ -810,6 +810,7 @@ projects:
crescendo: EU H2020 project CRESCENDO
dlrveu2: DLR project VEU2
dlrveu: DLR project VEU
dlrmabak: DLR project MABAK
embrace: EU FP7 project EMBRACE
esm2025: EU H2020 project ESM2025 - Earth system models for the future
esmval: DLR project ESMVal
Expand Down
7 changes: 6 additions & 1 deletion esmvaltool/diag_scripts/clouds/clouds.ncl
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,8 @@ begin

variables = metadata_att_as_array(variable_info, "short_name")
if (.not. any(variables .eq. var0)) then
errstr = "diagnostic " + diag + " requires the following variable: " + var0
errstr = "diagnostic " + DIAG_SCRIPT \
+ " requires the following variable: " + var0
error_msg("f", DIAG_SCRIPT, "", errstr)
end if

Expand Down Expand Up @@ -539,6 +540,10 @@ begin
res@cnLevels = ispan(0, 60, 5)
end if

if (var0.eq."ts") then
res@cnLevels = ispan(274, 304, 2)
end if

; res@lbLabelBarOn = False
res@gsnRightString = ""

Expand Down
Loading