diff --git a/.zenodo.json b/.zenodo.json index faa0e63c73..b22b130c41 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -338,6 +338,10 @@ "affiliation": "DLR, Germany", "name": "Sarauer, Ellen" }, + { + "affiliation": "University of Bremen, Germany", + "name": "Schulze, Kirsten" + }, { "affiliation": "University of Reading, UK", "name": "Roberts, Charles", diff --git a/CITATION.cff b/CITATION.cff index 645565d4d7..217dcc1626 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -344,6 +344,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 diff --git a/esmvaltool/config-references.yml b/esmvaltool/config-references.yml index adc6ff23ba..a9b6b31af8 100644 --- a/esmvaltool/config-references.yml +++ b/esmvaltool/config-references.yml @@ -509,6 +509,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 diff --git a/esmvaltool/recipes/monitor/recipe_monitor_sanity_checks.yml b/esmvaltool/recipes/monitor/recipe_monitor_sanity_checks.yml index 23c3210a7c..db19271ce8 100644 --- a/esmvaltool/recipes/monitor/recipe_monitor_sanity_checks.yml +++ b/esmvaltool/recipes/monitor/recipe_monitor_sanity_checks.yml @@ -7,11 +7,12 @@ documentation: authors: - bock_lisa - lauer_axel + - schulze_kirsten maintainer: - lauer_axel -# Note: The following models are just examples +# Note: The following model is just an example datasets: - {dataset: MPI-ESM1-2-LR, grid: gn, mip: Amon, project: CMIP6, exp: historical, ensemble: r1i1p1f1} @@ -22,16 +23,12 @@ timerange_for_models: &time_period preprocessors: globalmean_pr: -# annual_statistics: -# operator: mean area_statistics: operator: mean convert_units: units: mm day-1 globalmean: -# annual_statistics: -# operator: mean area_statistics: operator: mean @@ -64,10 +61,11 @@ preprocessors: end_day: 31 - diagnostics: + # *************************** # *** global min/max/mean *** + # *************************** clt: description: time series of global min/max/mean including "reasonable" ranges @@ -119,6 +117,265 @@ diagnostics: linestyle: '--' linewidth: 1 + hfls: + description: time series of global min/max/mean including "reasonable" ranges + variables: + hfls_mean: + <<: *time_period + short_name: hfls + legend_label: 'global mean' + preprocessor: globalmean + hfls_min: + <<: *time_period + short_name: hfls + legend_label: 'global min' + preprocessor: globalmin + hfls_max: + <<: *time_period + short_name: hfls + legend_label: 'global max' + preprocessor: globalmax + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: 0 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + + hfss: + description: time series of global min/max/mean including "reasonable" ranges + variables: + hfss_mean: + <<: *time_period + short_name: hfss + legend_label: 'global mean' + preprocessor: globalmean + hfss_min: + <<: *time_period + short_name: hfss + legend_label: 'global min' + preprocessor: globalmin + hfss_max: + <<: *time_period + short_name: hfss + legend_label: 'global max' + preprocessor: globalmax + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: 0 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + + lwcre: + description: time series of global min/max/mean including "reasonable" ranges + variables: + lwcre_mean: + <<: *time_period + short_name: lwcre + legend_label: 'global mean' + preprocessor: globalmean + derive: true + lwcre_min: + <<: *time_period + short_name: lwcre + legend_label: 'global min' + preprocessor: globalmin + derive: true + lwcre_max: + <<: *time_period + short_name: lwcre + legend_label: 'global max' + preprocessor: globalmax + derive: true + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: 300 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + + lwp: + description: time series of global min/max/mean including "reasonable" ranges + variables: + lwp_mean: + <<: *time_period + short_name: lwp + legend_label: 'global mean' + preprocessor: globalmean + derive: true + lwp_min: + <<: *time_period + short_name: lwp + legend_label: 'global min' + preprocessor: globalmin + derive: true + lwp_max: + <<: *time_period + short_name: lwp + legend_label: 'global max' + preprocessor: globalmax + derive: true + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: 0.5 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + + netcre: + description: time series of global min/max/mean including "reasonable" ranges + variables: + netcre_mean: + <<: *time_period + short_name: netcre + legend_label: 'global mean' + preprocessor: globalmean + derive: true + netcre_min: + <<: *time_period + short_name: netcre + legend_label: 'global min' + preprocessor: globalmin + derive: true + netcre_max: + <<: *time_period + short_name: netcre + legend_label: 'global max' + preprocessor: globalmax + derive: true + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: -50 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + pr: description: time series of global min/max/mean including "reasonable" ranges variables: @@ -127,6 +384,11 @@ diagnostics: short_name: pr legend_label: 'global mean' preprocessor: globalmean_pr + pr_max: + <<: *time_period + short_name: pr + legend_label: 'global max' + preprocessor: globalmax_pr scripts: timeseries: script: monitor/multi_datasets.py @@ -162,6 +424,56 @@ diagnostics: linewidth: 1 zorder: 3 + prc: + description: time series of global min/max/mean including "reasonable" ranges + variables: + prc_mean: + <<: *time_period + short_name: prc + legend_label: 'global mean' + preprocessor: globalmean_pr + prc_min: + <<: *time_period + short_name: prc + legend_label: 'global min' + preprocessor: globalmin_pr + prc_max: + <<: *time_period + short_name: prc + legend_label: 'global max' + preprocessor: globalmax_pr + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: 10 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + rlut: description: time series of global min/max/mean including "reasonable" ranges variables: @@ -215,6 +527,112 @@ diagnostics: linewidth: 1 zorder: 3 + rtnt: + description: time series of global min/max/mean including "reasonable" ranges + variables: + rtnt_mean: + <<: *time_period + short_name: rtnt + legend_label: 'global mean' + preprocessor: globalmean + derive: true + rtnt_min: + <<: *time_period + short_name: rtnt + legend_label: 'global min' + preprocessor: globalmin + derive: true + rtnt_max: + <<: *time_period + short_name: rtnt + legend_label: 'global max' + preprocessor: globalmax + derive: true + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: -2 # placeholder + color: red + - y: 2 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + + swcre: + description: time series of global min/max/mean including "reasonable" ranges + variables: + swcre_mean: + <<: *time_period + short_name: swcre + legend_label: 'global mean' + preprocessor: globalmean + derive: true + swcre_min: + <<: *time_period + short_name: swcre + legend_label: 'global min' + preprocessor: globalmin + derive: true + swcre_max: + <<: *time_period + short_name: swcre + legend_label: 'global max' + preprocessor: globalmax + derive: true + scripts: + timeseries: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: short_name + facet_used_for_labels: legend_label + plots: + timeseries: + annual_mean_kwargs: false + hlines: + - y: 0 # placeholder + color: red + - y: -250 # placeholder + color: red + plot_kwargs: + 'global mean': + color: blue + label: null + linestyle: '-' + linewidth: 2 + label: '{dataset}' + 'global min': + color: blue + label: null + linestyle: '--' + linewidth: 1 + 'global max': + color: blue + label: null + linestyle: '--' + linewidth: 1 + tas: description: time series of global min/max/mean including "reasonable" ranges variables: @@ -268,16 +686,16 @@ diagnostics: linewidth: 1 zorder: 3 + # ******************* + # *** global sums *** + # ******************* - # *** global sum *** - - prw_mass: - description: time series of global water vapour mass + air_mass: + description: time series of global air mass anomaly variables: - prw_sum: + ps: <<: *time_period - short_name: prw - preprocessor: global_sum + preprocessor: global_sum_air_anom legend_label: 'global sum' scripts: timeseries: @@ -289,13 +707,10 @@ diagnostics: timeseries: annual_mean_kwargs: false pyplot_kwargs: - title: "Global sum of water vapour" + title: "Anomaly of global air mass" hlines: - - y: 14206879936806912. - color: red - linewidth: 2 - - y: 10902071180001280. - color: red + - y: 0. + color: black linewidth: 2 plot_kwargs: 'global sum': @@ -306,13 +721,13 @@ diagnostics: label: '{dataset}' zorder: 3 - - air_mass: - description: time series of global air mass anomaly +moisture_flux: + description: time series of moisture flux into the atmosphere variables: - ps: + qep: <<: *time_period - preprocessor: global_sum_air_anom + derive: true + preprocessor: global_sum legend_label: 'global sum' scripts: timeseries: @@ -324,7 +739,7 @@ diagnostics: timeseries: annual_mean_kwargs: false pyplot_kwargs: - title: "Anomaly of global air mass" + title: "Anomaly of global moisture flux into the atmosphere" hlines: - y: 0. color: black @@ -338,13 +753,12 @@ diagnostics: label: '{dataset}' zorder: 3 - - moisture_flux: - description: time series of moisture flux into the atmosphere + prw_mass: + description: time series of global water vapour mass variables: - qep: + prw_sum: <<: *time_period - derive: true + short_name: prw preprocessor: global_sum legend_label: 'global sum' scripts: @@ -357,10 +771,13 @@ diagnostics: timeseries: annual_mean_kwargs: false pyplot_kwargs: - title: "Anomaly of global moisture flux into the atmosphere" + title: "Global sum of water vapour" hlines: - - y: 0. - color: black + - y: 14206879936806912. + color: red + linewidth: 2 + - y: 10902071180001280. + color: red linewidth: 2 plot_kwargs: 'global sum': @@ -369,4 +786,4 @@ diagnostics: linestyle: '-' linewidth: 2 label: '{dataset}' - zorder: 3 + zorder: 3 \ No newline at end of file