diff --git a/doc/sphinx/source/recipes/figures/ref/timeseries_tas_ambiguous_dataset_Amon_historical_r1i1p1f1.png b/doc/sphinx/source/recipes/figures/ref/timeseries_tas_ambiguous_dataset_Amon_historical_r1i1p1f1.png new file mode 100755 index 0000000000..b4f88d0130 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ref/timeseries_tas_ambiguous_dataset_Amon_historical_r1i1p1f1.png differ diff --git a/doc/sphinx/source/recipes/recipe_ref.rst b/doc/sphinx/source/recipes/recipe_ref.rst index 9e354ff270..83d4e9d11b 100644 --- a/doc/sphinx/source/recipes/recipe_ref.rst +++ b/doc/sphinx/source/recipes/recipe_ref.rst @@ -13,7 +13,7 @@ Here ESMValTool recipes are collected which will be used in the CMIP Available recipes ----------------- -Recipes are stored in recipes +Recipes are stored in `recipes/` * :ref:`recipe_ecs.yml `: Calculate equilibrium climate sensitivity (ECS) @@ -23,6 +23,12 @@ Recipes are stored in recipes Calculate transient climate response to cumulative CO2 emissions (TCRE) * ref/recipe_ref_cre.yml: Maps and zonal means of longwave and shortwave cloud radiative effect +* ref/recipe_ref_timeseries_region.yml: + Time series in comparison with reference data for a selected IPCC region defined through a shape file, based on :ref:`recipe_ref_timeseries.yml ` +* ref/recipe_ref_annual_cycle_region.yml: + Annual cycle in comparison with reference data for a selected IPCC region defined through a shape file, based on :ref:`recipe_ref_annual_cycle.yml ` +* ref/recipe_ref_trend_regions.yml: + Linear Trends for all IPCC land regions compared with reference data, based on :ref:`recipe_ref_trend_regions.yml ` * ref/recipe_ref_scatterplot.yml: 2D histograms with focus on clouds * ref/recipe_ref_sea_ice_area_basic.yml: @@ -82,3 +88,11 @@ Example plots: Zonal mean vertically resolved ozone climatology from CNRM-ESM2-1 compared with ESACCI-OZONE for the years 1990 to 2000. Created with recipe_ref_ozone.yml. + +.. _fig_ref_7: +.. figure:: /recipes/figures/ref/timeseries_tas_ambiguous_dataset_Amon_historical_r1i1p1f1.png + :align: center + :width: 8cm + + Time series of near-surface air temperature anomalies from MIROC6 compared with HadCRUT5 + for N.Europe for the years 1980 to 2014 (reference period 1980 to 2009). Created with recipe_ref_timeseries_region.yml. diff --git a/esmvaltool/recipes/ref/recipe_ref_annual_cycle_region.yml b/esmvaltool/recipes/ref/recipe_ref_annual_cycle_region.yml new file mode 100644 index 0000000000..9ba5594b39 --- /dev/null +++ b/esmvaltool/recipes/ref/recipe_ref_annual_cycle_region.yml @@ -0,0 +1,149 @@ +# ESMValTool +--- +documentation: + title: Benchmarking of a single model for a region through extract_shape. + description: > + Benchmarking: annual cycle. + authors: + - lauer_axel + - bock_lisa + - hassler_birgit + - lindenlaub_lukas + - schlund_manuel + - weigel_katja + maintainer: + - lauer_axel + references: + - lauer25gmd + projects: + - dlrmabak + + +datasets: + # Dataset to be benchmarked + - {dataset: MIROC6, grid: gn, benchmark_dataset: true, plot_label: 'MIROC6'} + +preprocessors: + pp_abs: + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + climate_statistics: + period: monthly + area_statistics: + operator: mean + + pp_abs_200: + extract_levels: + levels: 20000 + scheme: linear + coordinate: air_pressure + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + climate_statistics: + period: monthly + area_statistics: + operator: mean + + +diagnostics: + anncyc: + description: Plot global mean mean annual cycle for the given period including a reference dataset. + variables: + tas: &var_default_abs + start_year: 1980 + end_year: 2009 + preprocessor: pp_abs + project: CMIP6 + mip: Amon + exp: historical + ensemble: r1i1p1f1 + grid: gr + reference_dataset: HadCRUT5 + additional_datasets: + - {dataset: HadCRUT5, project: OBS, type: ground, version: 5.0.1.0-analysis, + tier: 2, reference_for_metric: true'} + pr: + <<: *var_default_abs + reference_dataset: GPCP-V2.3 + additional_datasets: + - {dataset: GPCP-V2.3, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + psl: + <<: *var_default_abs + reference_dataset: ERA-5 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + hus_200: + <<: *var_default_abs + short_name: hus + reference_dataset: ERA5 + preprocessor: pp_abs_200 + additional_datasets: + - {dataset: ERA5, project: native6, type: reanaly, version: v1, + tier: 3, reference_for_metric: true'} + ua_200: + <<: *var_default_abs + short_name: ua + reference_dataset: ERA-5 + preprocessor: pp_abs_200 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + scripts: + allplots: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: variable_group + plots: + annual_cycle: + annual_mean_kwargs: False + plot_kwargs: + default: + color: red + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 4 + HadCRUT5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA-5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + GPCP-V2.3: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + pyplot_kwargs: + title: '{long_name} N.Europe' diff --git a/esmvaltool/recipes/ref/recipe_ref_timeseries_region.yml b/esmvaltool/recipes/ref/recipe_ref_timeseries_region.yml new file mode 100644 index 0000000000..ed2b01ddf6 --- /dev/null +++ b/esmvaltool/recipes/ref/recipe_ref_timeseries_region.yml @@ -0,0 +1,283 @@ +# ESMValTool +--- +documentation: + title: Benchmarking of a single model for a region through extract_shape. + description: > + Benchmarking: time series. + authors: + - lauer_axel + - bock_lisa + - hassler_birgit + - lindenlaub_lukas + - schlund_manuel + - weigel_katja + maintainer: + - lauer_axel + references: + - lauer25gmd + projects: + - dlrmabak + + +datasets: + # Dataset to be benchmarked + - {dataset: MIROC6, grid: gn, benchmark_dataset: true} + +preprocessors: + pp_abs: + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + area_statistics: + operator: mean + + pp_abs_200: + extract_levels: + levels: 20000 + scheme: linear + coordinate: air_pressure + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + area_statistics: + operator: mean + + pp: + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + anomalies: + period: month + reference: + start_year: 1980 + start_month: 1 + start_day: 1 + end_year: 2009 + end_month: 12 + end_day: 31 + area_statistics: + operator: mean + + pp_200: + extract_levels: + levels: 20000 + scheme: linear + coordinate: air_pressure + regrid: + target_grid: 1x1 + scheme: linear + extract_shape: + shapefile: ar6 + crop: true + decomposed: true + ids: + Name: + - N.Europe + anomalies: + period: month + reference: + start_year: 1980 + start_month: 1 + start_day: 1 + end_year: 2009 + end_month: 12 + end_day: 31 + area_statistics: + operator: mean + + +diagnostics: + + timeseries: + description: Plot "classical" time series of global mean anomalies including a reference dataset. + variables: + tas: &var_default + start_year: 1980 + end_year: 2014 + preprocessor: pp + project: CMIP6 + mip: Amon + exp: historical + ensemble: r1i1p1f1 + grid: gr + reference_dataset: HadCRUT5 + additional_datasets: + - {dataset: HadCRUT5, project: OBS, type: ground, + version: 5.0.1.0-analysis, tier: 2, + reference_for_metric: true} + pr: + <<: *var_default + reference_dataset: GPCP-V2.3 + additional_datasets: + - {dataset: GPCP-V2.3, project: obs4MIPs, tier: 1, + reference_for_metric: true} + psl: + <<: *var_default + reference_dataset: ERA-5 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + hus_200: + <<: *var_default + short_name: hus + reference_dataset: ERA5 + preprocessor: pp_200 + additional_datasets: + - {dataset: ERA5, project: native6, type: reanaly, version: v1, + tier: 3, reference_for_metric: true} + ua_200: + <<: *var_default + short_name: ua + reference_dataset: ERA-5 + preprocessor: pp_200 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + scripts: + allplots: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: variable_group + plots: + timeseries: + annual_mean_kwargs: False + plot_kwargs: + default: + color: red + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 4 + HadCRUT5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA-5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + GPCP-V2.3: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + pyplot_kwargs: + title: '{long_name} Anomalies N.Europe' + + timeseries_abs: + description: Plot "classical" time series of global mean including a reference dataset. + variables: + tas: &var_default_abs + start_year: 1980 + end_year: 2014 + preprocessor: pp_abs + project: CMIP6 + mip: Amon + exp: historical + ensemble: r1i1p1f1 + grid: gr + reference_dataset: HadCRUT5 + additional_datasets: + - {dataset: HadCRUT5, project: OBS, type: ground, version: 5.0.1.0-analysis, + tier: 2, reference_for_metric: true} + pr: + <<: *var_default_abs + reference_dataset: GPCP-V2.3 + additional_datasets: + - {dataset: GPCP-V2.3, project: obs4MIPs, tier: 1, + reference_for_metric: true} + psl: + <<: *var_default_abs + reference_dataset: ERA-5 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + hus_200: + <<: *var_default_abs + short_name: hus + reference_dataset: ERA5 + preprocessor: pp_abs_200 + additional_datasets: + - {dataset: ERA5, project: native6, type: reanaly, version: v1, + tier: 3, reference_for_metric: true} + ua_200: + <<: *var_default_abs + short_name: ua + reference_dataset: ERA-5 + preprocessor: pp_abs_200 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + scripts: + allplots: + script: monitor/multi_datasets.py + plot_folder: '{plot_dir}' + group_variables_by: variable_group + plots: + timeseries: + annual_mean_kwargs: False + plot_kwargs: + default: + color: red + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 4 + HadCRUT5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + ERA-5: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + GPCP-V2.3: + color: black + label: '{dataset}' + linestyle: '-' + linewidth: 2 + zorder: 3 + pyplot_kwargs: + title: '{long_name} N.Europe' diff --git a/esmvaltool/recipes/ref/recipe_ref_trend_regions.yml b/esmvaltool/recipes/ref/recipe_ref_trend_regions.yml new file mode 100644 index 0000000000..b2e8c7bd49 --- /dev/null +++ b/esmvaltool/recipes/ref/recipe_ref_trend_regions.yml @@ -0,0 +1,311 @@ +# ESMValTool +--- +documentation: + description: + Box plot, linear trends for + the 46 IPCC AR6 reference regions for land (Iturbide et al., 2020). + The diagnostic called in this recipe uses the seaborn.boxplot function. + See seaborn manual for detailed information + (https://seaborn.pydata.org/generated/seaborn.boxplot.html). + + authors: + - schlund_manuel + - weigel_katja + maintainer: + - weigel_katja + title: Linear trends. + +datasets: + - {dataset: MIROC6, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + +preprocessors: + trend_tas: &trend + custom_order: true + extract_shape: + shapefile: ar6 + decomposed: true + ids: + Acronym: + - 'NWN' + - 'NEN' + - 'GIC' + - 'WNA' + - 'CNA' + - 'ENA' + - 'NCA' + - 'SCA' + - 'CAR' + - 'NWS' + - 'NSA' + - 'NES' + - 'SAM' + - 'SWS' + - 'SES' + - 'SSA' + - 'NEU' + - 'WCE' + - 'EEU' + - 'MED' + - 'SAH' + - 'WAF' + - 'CAF' + - 'NEAF' + - 'SEAF' + - 'WSAF' + - 'ESAF' + - 'MDG' + - 'RAR' + - 'WSB' + - 'ESB' + - 'RFE' + - 'WCA' + - 'ECA' + - 'TIB' + - 'EAS' + - 'ARP' + - 'SAS' + - 'SEA' + - 'NAU' + - 'CAU' + - 'EAU' + - 'SAU' + - 'NZ' + - 'WAN' + - 'EAN' + area_statistics: + operator: mean + linear_trend: + convert_units: + units: K yr-1 + + trend_pr: + <<: *trend + convert_units: + units: mm kg m-3 day-1 yr-1 + + trend_psl: + <<: *trend + convert_units: + units: m-1 kg s-2 yr-1 + + + trend_ua200: &trend200 + custom_order: true + extract_levels: + levels: 20000 + scheme: linear + coordinate: air_pressure + extract_shape: + shapefile: ar6 + decomposed: true + ids: + Acronym: + - 'NWN' + - 'NEN' + - 'GIC' + - 'WNA' + - 'CNA' + - 'ENA' + - 'NCA' + - 'SCA' + - 'CAR' + - 'NWS' + - 'NSA' + - 'NES' + - 'SAM' + - 'SWS' + - 'SES' + - 'SSA' + - 'NEU' + - 'WCE' + - 'EEU' + - 'MED' + - 'SAH' + - 'WAF' + - 'CAF' + - 'NEAF' + - 'SEAF' + - 'WSAF' + - 'ESAF' + - 'MDG' + - 'RAR' + - 'WSB' + - 'ESB' + - 'RFE' + - 'WCA' + - 'ECA' + - 'TIB' + - 'EAS' + - 'ARP' + - 'SAS' + - 'SEA' + - 'NAU' + - 'CAU' + - 'EAU' + - 'SAU' + - 'NZ' + - 'WAN' + - 'EAN' + area_statistics: + operator: mean + linear_trend: + convert_units: + units: m s-1 yr-1 + + trend_hus200: + <<: *trend200 + convert_units: + units: year-1 + + +diagnostics: + tas_trends: + variables: + tas: + preprocessor: trend_tas + mip: Amon + timerange: 1980/2009 + additional_datasets: + - {dataset: HadCRUT5, project: OBS, type: ground, + version: 5.0.1.0-analysis, tier: 2} + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + reference_for_metric: true'} + scripts: + plot: + script: seaborn_diag.py + seaborn_func: barplot + seaborn_kwargs: + x: shape_id + y: tas + hue: dataset + add_aux_coords: true + facets_as_columns: [dataset] + legend_title: Data + plot_object_methods: + set_xlabel: region + set_ylabel: tas trend [K/yr] + seaborn_settings: + style: ticks + rc: + figure.figsize: [28, 6] + suptitle: Trend in Near-Surface Air Temperature + + pr_trends: + variables: + pr: + preprocessor: trend_pr + mip: Amon + timerange: 1980/2009 + additional_datasets: + - {dataset: GPCP-V2.3, project: obs4MIPs, tier: 1, + reference_for_metric: true} + - {dataset: ERA5, project: native6, type: reanaly, version: v1, + tier: 3, reference_for_metric: true} + scripts: + plot: + script: seaborn_diag.py + seaborn_func: barplot + seaborn_kwargs: + x: shape_id + y: pr + hue: dataset + add_aux_coords: true + facets_as_columns: [dataset] + legend_title: Data + plot_object_methods: + set_xlabel: region + set_ylabel: pr trend [mm kg m-3 day-1 yr-1] + seaborn_settings: + style: ticks + rc: + figure.figsize: [28, 6] + suptitle: Trend in Precipitation + + + psl_trends: + variables: + psl: + preprocessor: trend_psl + mip: Amon + timerange: 1980/2009 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + + reference_for_metric: true'} + scripts: + plot: + script: seaborn_diag.py + seaborn_func: barplot + seaborn_kwargs: + x: shape_id + y: psl + hue: dataset + add_aux_coords: true + facets_as_columns: [dataset] + legend_title: Data + plot_object_methods: + set_xlabel: region + set_ylabel: psl trend [m-1 kg s-2 yr-1] + seaborn_settings: + style: ticks + rc: + figure.figsize: [28, 6] + suptitle: Trend in Sea Level Pressure + + ua200_trends: + variables: + ua: + preprocessor: trend_ua200 + mip: Amon + timerange: 1980/2009 + additional_datasets: + - {dataset: ERA-5, project: obs4MIPs, tier: 1, + + reference_for_metric: true'} + scripts: + plot: + script: seaborn_diag.py + seaborn_func: barplot + seaborn_kwargs: + x: shape_id + y: ua + hue: dataset + add_aux_coords: true + facets_as_columns: [dataset] + plot_object_methods: + set_xlabel: region + set_ylabel: ua trend [m s-1 yr-1] + seaborn_settings: + style: ticks + rc: + figure.figsize: [28, 6] + suptitle: Trend in Zonal Wind at 200 hPa + + + hus200_trends: + variables: + hus: + preprocessor: trend_hus200 + mip: Amon + timerange: 1980/2009 + additional_datasets: + - {dataset: ERA5, project: native6, type: reanaly, version: v1, + tier: 3, reference_for_metric: true} + scripts: + plot: + script: seaborn_diag.py + seaborn_func: barplot + seaborn_kwargs: + x: shape_id + y: hus + hue: dataset + add_aux_coords: true + facets_as_columns: [dataset] + plot_object_methods: + set_xlabel: region + set_ylabel: hus trend [yr-1] + seaborn_settings: + style: ticks + rc: + figure.figsize: [28, 6] + suptitle: Trend in Specific Humidity at 200 hPa