diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-14.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-14.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-14.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-14.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-2.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-2.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-2.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-2.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-26.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-26.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-26.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-26.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-27.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-27.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-27.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-27.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-3.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-3.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-3.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-3.png diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38-pr.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38-pr.png new file mode 100644 index 0000000000..157779d269 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38-pr.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38.png new file mode 100644 index 0000000000..2caa4b53e4 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38_regions.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38_regions.png new file mode 100644 index 0000000000..4bb2549bea Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-38_regions.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39-pr.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39-pr.png new file mode 100644 index 0000000000..1f256232ff Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39-pr.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39.png new file mode 100644 index 0000000000..05e6318493 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39_regions.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39_regions.png new file mode 100644 index 0000000000..58fd4541af Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-39_regions.png differ diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-4.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-4.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-4.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-4.png diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40-pr.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40-pr.png new file mode 100644 index 0000000000..39afa9670c Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40-pr.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40.png new file mode 100644 index 0000000000..d62dc66213 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40_regions.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40_regions.png new file mode 100644 index 0000000000..cecc7fdb3f Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-40_regions.png differ diff --git a/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-41b.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-41b.png new file mode 100644 index 0000000000..c2ea620059 Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-41b.png differ diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-42a.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-42a.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-42a.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-42a.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-42b.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-42b.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-42b.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-42b.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-45a.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-45a.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-45a.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-45a.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-5.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-5.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-5.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-5.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-6.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-6.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-6.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-6.png diff --git a/doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-8.png b/doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-8.png similarity index 100% rename from doc/sphinx/source/recipes/figures/flato13ipcc/fig-9-8.png rename to doc/sphinx/source/recipes/figures/ipccwg1ar5ch9/fig-9-8.png diff --git a/doc/sphinx/source/recipes/index.rst b/doc/sphinx/source/recipes/index.rst index 601b706758..23b4f55dc0 100644 --- a/doc/sphinx/source/recipes/index.rst +++ b/doc/sphinx/source/recipes/index.rst @@ -78,7 +78,7 @@ IPCC :maxdepth: 1 recipe_ipccwg1ar6ch3 - recipe_flato13ipcc + recipe_ipccwg1ar5ch9 recipe_collins13ipcc Land diff --git a/doc/sphinx/source/recipes/recipe_flato13ipcc.rst b/doc/sphinx/source/recipes/recipe_ipccwg1ar5ch9.rst similarity index 60% rename from doc/sphinx/source/recipes/recipe_flato13ipcc.rst rename to doc/sphinx/source/recipes/recipe_ipccwg1ar5ch9.rst index 472ce03bb3..a52d682a78 100644 --- a/doc/sphinx/source/recipes/recipe_flato13ipcc.rst +++ b/doc/sphinx/source/recipes/recipe_ipccwg1ar5ch9.rst @@ -1,4 +1,4 @@ -.. _recipes_flato13ipcc: +.. _recipes_ipccwg1ar5ch9: IPCC AR5 Chapter 9 (selected figures) ===================================== @@ -12,6 +12,12 @@ versions. In this way we can next time start with what was available in the previous round and can focus on developing more innovative methods of analysis rather than constantly having to "re-invent the wheel". +.. note:: + + Please note that most recipes have been modified to include only models that are + (still) readily available via ESGF. Plots produced may therefore look different + than the original figures from IPCC AR5. + The plots are produced collecting the diagnostics from individual recipes. The following figures from Flato et al. (2013) can currently be reproduced: @@ -33,7 +39,7 @@ following figures from Flato et al. (2013) can currently be reproduced: CMIP5 multi-model mean and the climatology from the Global Precipitation Climatology Project (Adler et al., 2003), c) multi-model mean absolute error with respect to observations, and d) multi-model mean error - relative to the multi-model mean precipitation ifself. + relative to the multi-model mean precipitation itself. * Figure 9.5: Climatological (1985-2005) annual-mean cloud radiative effects in Wm-2 for the CMIP5 models against CERES EBAF (2001-2011) in @@ -43,7 +49,7 @@ following figures from Flato et al. (2013) can currently be reproduced: averages from CERES EBAF 2.6 (black), the individual CMIP5 models (thin gray lines), and the multi-model mean (thick red line). - * Figure 9.6: Centred pattern correlations between models and observations + * Figure 9.6: Centered pattern correlations between models and observations for the annual mean climatology over the period 1980–1999. Results are shown for individual CMIP3 (black) and CMIP5 (blue) models as thin dashes, along with the corresponding ensemble average (thick dash) and @@ -89,6 +95,21 @@ following figures from Flato et al. (2013) can currently be reproduced: calculated as the standard deviation of the annual means over the period 1986–2005. + * Figure 9.38: Seasonal cycle for the surface temperature or precipitation + over land within defined regions multi-model mean and difference to + reference dataset or absolute annual cycle can be chosen. + + * Figure 9.39: Seasonal bias box and whiskers plot + for surface temperature or precipitation within + SREX (IPCC Special Report on Managing the Risks of Extreme Events and + Disasters to Advance Climate Change Adaptation) regions. + + * Figure 9.40: Seasonal bias box and whiskers plot for surface + temperature or precipitation within defined polar and ocean regions. + + * Figure 9.41b: Comparison between observations and models for variable + values within defined regions. + * Figure 9.42a: Equilibrium climate sensitivity (ECS) against the global mean surface air temperature, both for the period 1961-1990 and for the pre-industrial control runs. @@ -103,9 +124,19 @@ following figures from Flato et al. (2013) can currently be reproduced: Available recipes and diagnostics --------------------------------- -Recipes are stored in esmvaltool/recipes/ +Recipes are stored in esmvaltool/recipes/recipe_ipccwg1ar5ch9 - * recipe_flato13ipcc.yml + * recipe_flato13ipcc_figures_92_95.yml: Figures 9.2, 9.3, 9.4, 9.5 + * recipe_flato13ipcc_figure_96.yml: Figure 9.6 + * recipe_flato13ipcc_figure_98.yml: Figure 9.8 + * recipe_flato13ipcc_figure_914.yml: Figure 9.14 + * recipe_flato13ipcc_figure_924.yml: Figure 9.24 + * recipe_flato13ipcc_figures_926_927.yml: Figures 9.26 and 9.27 + * recipe_flato13ipcc_figure_942.yml: Figure 9.42 + * recipe_flato13ipcc_figure_945a.yml: Figure 9.45a + * recipe_flato13ipcc_figures_938_941_cmip3.yml: Figures 9.38, 9.39, 9.40, and 9.41 + * recipe_flato13ipcc_figures_938_941_cmip6.yml: Figures 9.38, 9.39, 9.40, and 9.41 CMIP6 instead of CMIP3 + * recipe_weigel21gmd_figures_13_16.yml: ESMValTool paper version (Weigel et al., 2021) of Figures 9.38, 9.39, 9.40, and 9.41, only CMIP5 Diagnostics are stored in esmvaltool/diag_scripts/ @@ -113,7 +144,7 @@ Diagnostics are stored in esmvaltool/diag_scripts/ * climate_metrics/ecs.py: See :ref:`here`. * clouds/clouds_bias.ncl: global maps of the multi-model mean and the multi-model mean bias (Fig. 9.2, 9.4) - * clouds/clouds_isccp: global maps of multi-model mean minus observations + zonal + * clouds/clouds_ipcc.ncl: global maps of multi-model mean minus observations + zonal averages of individual models, multi-model mean and observations (Fig. 9.5) * ipcc_ar5/ch09_fig09_3.ncl: multi-model mean seasonality of near-surface temperature (Fig. 9.3) @@ -125,6 +156,10 @@ Diagnostics are stored in esmvaltool/diag_scripts/ * ipcc_ar5/ch09_fig09_14.py: Zonally averaged and equatorial SST (Fig. 9.14) * seaice/seaice_tsline.ncl: Time series of sea ice extent (Fig. 9.24a/b) * seaice/seaice_trends.ncl: Trend distributions of sea ice extent (Fig 9.24c/d) + * regional_downscaling/Figure9_38.ncl (Fig 9.38a (variable tas) and Fig 9.38b (variable pr)) + * regional_downscaling/Figure9_39.ncl (Fig 9.39a/c/e (variable tas) and Fig 9.39b/d/f (variable pr)) + * regional_downscaling/Figure9_40.ncl (Fig 9.40a/c/e (variable tas) and Fig 9.40b/d/f (variable pr)) + * regional_downscaling/Figure9_41.ncl (Fig 9.41b) * ipcc_ar5/ch09_fig09_42a.py: ECS vs. surface air temperature (Fig. 9.42a) * ipcc_ar5/ch09_fig09_42b.py: TCR vs. ECS (Fig. 9.42b) * emergent_constraints/snowalbedo.ncl: snow-albedo effect (Fig. 9.45a) @@ -142,8 +177,6 @@ User settings in recipe #. Script clouds/clouds_bias.ncl -#. Script clouds_bias.ncl - *Required settings (scripts)* none @@ -158,7 +191,7 @@ User settings in recipe * Required settings (variables)* - * reference_dataset: name of reference datatset + * reference_dataset: name of reference dataset *Optional settings (variables)* @@ -310,6 +343,100 @@ User settings in recipe * EMs_in_lg: create a legend label for individual ensemble members (default: False) * fill_pole_hole: fill polar hole (typically in satellite data) with sic = 1 (default: False) +#. Script regional_downscaling/Figure9.38.ncl + + *Required settings for script* + + none + + *Optional settings (scripts)* + + * styleset: for plot_type cycle (e.g. CMIP5, CMIP6), default "CMIP5" + * fig938_region_label: Labels for regions, which should be included + (["WNA", "ENA", "CAM", "TSA", "SSA", "EUM", "NAF","CAF", "SAF", "NAS", + "CAS", "EAS", "SAS", "SEA", "AUS"]), default "WNA" + * fig938_project_MMM: projects to average, default "CMIP5" + * fig938_experiment_MMM: experiments to average, default "historical" + * fig938_mip_MMM: mip to average, default "Amon" + * fig938_names_MMM: names in legend i.e. (["CMIP5","CMIP3"]), default fig938_project_MMM + * fig938_colors_MMM: Color for multi-model mean (e.g. ["red"]), default "red" + * If set fig938_mip_MMM, fig938_experiment_MMM, fig938_project_MMM, fig938_names_MMM, and fig938_colors_MMM must + have the same number of elements + + * fig938_refModel: Reference data set for differences default "ERA-Interim" + * fig938_MMM: Plot multi-model mean (true/false), default "true" + * fig938_YMin: minimum Y Axis + * fig938_YMax: maximum Y Axis + * fig938_diff: Difference to reference data (true) or absolute annual cycle (false), default "true" + +#. Script regional_downscaling/Figure9.39.ncl + + *Required settings (scripts)* + + * reference_dataset: reference dataset name (set of variables) + + *Optional settings (scripts)* + + * styleset: for plot_type cycle (e.g. CMIP5, CMIP6), default "CMIP5" + * fig939_season: seasons i.e. (["DJF","JJA","ANN"]), default "DJF" + * fig939_region_label: Labels for regions, which should be included + (["ALAs","CGIs","WNAs","CNAs","ENAs","CAMs","AMZs","NEBs","WSAs","SSAs", + "NEUs","CEUs","MEDs","SAHs","WAFs","EAFs","SAFs","NASs","WASs","CASs", + "TIBs","EASs","SASs","SEAs","NAUs","SAUs"]), default "ALAs" + * fig939_project_MMM: projects to average, default "CMIP5" + * fig939_experiment_MMM: experiments to average, default "historical" + * fig939_mip_MMM: mip to average, default "Amon" + * fig939_MMM: Plot multi-model mean (true/false) + * fig939_names_MMM: names in legend i.e. (["CMIP5","CMIP3"]) + * fig939_YMin: minimum Y Axis + * fig939_YMax: maximum Y Axis + * fig939_vert_line_pos: i.e. ([6,10,13,17,24,26]) + * fig939_vert_line_label: labels of vertical lines, i.e. (["North America", + "South America","Europe","Africa","Asia","Australia"]) + * fig939_mode: True= cumulative mode + +#. Script regional_downscaling/Figure9.40.ncl + + *Required settings (scripts)* + + * reference_dataset: reference dataset name (set of variables) + + *Optional settings (scripts)* + + * styleset: for plot_type cycle (e.g. CMIP5, CMIP6), default "CMIP5" + * fig940_season: seasons i.e. (["DJF","JJA","ANN"]), default "DJF" + * fig940_region_label: Labels for regions, which should be included + (["Arctic_land","Arctic_sea","Antarctic_land","Antarctic_sea", + "Caribbean","WesternIndianOcean","NorthernIndianOcean", + "NorthernTropicalPacific","EquatorialTropicalPacific", + "SouthernTropicalPacific","World_land","World_sea","World"]), + default "Arctic_land" + * fig940_project_MMM: projects to average, default "CMIP5" + * fig940_experiment_MMM: experiments to average, default "historical" + * fig940_mip_MMM: mip to average, default "Amon" + * fig940_MMM: Plot multi-model mean (true/false) + * fig940_names_MMM: names in legend i.e. (["CMIP5","CMIP3"]) + * fig940_YMin: minimum Y Axis + * fig940_YMax: maximum Y Axis + * fig940_vert_line_pos: i.e. ([6,10,13,17,24,26]) + * fig940_vert_line_label: labels of vertical lines, i.e. (["North America", + "South America","Europe","Africa","Asia","Australia"]) + * fig940_mode: True= cumulative mode + +#. Script regional_downscaling/Figure9.41.ncl + + *Required settings (scripts)* + + * reference_dataset: reference dataset name (set of variables) + + *Optional settings (scripts)* + + * styleset: for plot_type cycle (e.g. CMIP5, CMIP6), default "CMIP5" + * fig941_region_label: Labels for regions, which should be included + (["ALAs","CGIs","WNAs","CNAs","ENAs","CAMs","AMZs","NEBs","WSAs","SSAs", + "NEUs","CEUs","MEDs","SAHs","WAFs","EAFs","SAFs","NASs","WASs","CASs", + "TIBs","EASs","SASs","SEAs","NAUs","SAUs"]), default "MEDs" + #. Script ipcc_ar5/ch09_fig09_42a.py *Required settings for script* @@ -434,11 +561,31 @@ References variations to anthropogenic and natural causes using CMIP5 simulations. Journal of Geophysical Research: Atmosphere, 118, 4001-4024, doi:10.1002/jgrd.50239. +* Seneviratne, S. I., Nicholls, N., Easterling, D., Goodess, C. M., Kanae, S., + Kossin, J., Luo, Y., Marengo, J., McInnes, K., Rahimi, M., Reichstein, M., + Sorteberg, A., Vera, C., and Zhang, X., 2012: + Changes in climate extremes and their impacts on the naturalphysical + environment. , in: Managing the Risks of Extreme Events and Disasters to + Advance Climate Change Adaptation. A Special Report of Working Groups I and + II of the Intergovernmental Panel on ClimateChange (IPCC), edited by: + Field, C. B., Barros, V., Stocker, T. F., Qin, D., Dokken, D. J., + Ebi, K. L., Mastrandrea, M. D., Mach, K. J., Plattner, G.-K., Allen, S. K., + Tignor, M., and Midgley, P. M., Cambridge University Press, Cambridge, UK, + and New York, NY, USA, 109-230. + +* Weigel, K., Bock, L., Gier, B. K., Lauer, A., Righi, M., Schlund, M., Adeniyi, K., + Andela, B., Arnone, E., Berg, P., Caron, L.-P., Cionni, I., Corti, S., Drost, N., + Hunter, A., Lledó, L., Mohr, C. W., Paçal, A., Pérez-Zanón, N., Predoi, V., Sandstad, + M., Sillmann, J., Sterl, A., Vegas-Regidor, J., von Hardenberg, J., and Eyring, V.: + Earth System Model Evaluation Tool (ESMValTool) v2.0 - diagnostics for extreme events, + regional and impact evaluation, and analysis of Earth system models in CMIP, + Geosci. Model Dev., 14, 3159-3184, https://doi.org/10.5194/gmd-14-3159-2021, 2021. + Example plots ------------- -.. figure:: /recipes/figures/flato13ipcc/fig-9-2.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-2.png :align: center Figure 9.2 a,b,c: Annual-mean surface air temperature for the period @@ -447,7 +594,7 @@ Example plots (Dee et al., 2011), c) mean absolute model error with respect to the climatology from ERA-Interim. -.. figure:: /recipes/figures/flato13ipcc/fig-9-3.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-3.png :align: center Figure 9.3: Multi model values for seasonality of near-surface temperature, @@ -455,7 +602,7 @@ Example plots in seasonality, mean bias in absolute seasonality. Reference dataset: ERA-Interim. -.. figure:: /recipes/figures/flato13ipcc/fig-9-4.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-4.png :align: center Figure 9.4: Annual-mean precipitation rate (mm day-1) for the period @@ -463,9 +610,9 @@ Example plots CMIP5 multi-model mean and the climatology from the Global Precipitation Climatology Project (Adler et al., 2003), c) multi-model mean absolute error with respect to observations, and d) multi-model mean error - relative to the multi-model mean precipitation ifself. + relative to the multi-model mean precipitation itself. -.. figure:: /recipes/figures/flato13ipcc/fig-9-5.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-5.png :align: center Figure 9.5: Climatological (1985-2005) annual-mean cloud radiative @@ -476,10 +623,10 @@ Example plots averages from CERES EBAF 2.6 (black), the individual CMIP5 models (thin gray lines), and the multi-model mean (thick red line). -.. figure:: /recipes/figures/flato13ipcc/fig-9-6.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-6.png :align: center - Figure 9.6: Centred pattern correlations between models and observations + Figure 9.6: Centered pattern correlations between models and observations for the annual mean climatology over the period 1980–1999. Results are shown for individual CMIP3 (black) and CMIP5 (blue) models as thin dashes, along with the corresponding ensemble average (thick dash) and @@ -489,7 +636,7 @@ Example plots effect (SW CRE). The correlations between the reference and alternate observations are also shown (solid green circles). -.. figure:: /recipes/figures/flato13ipcc/fig-9-8.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-8.png :align: center Figure 9.8: Observed and simulated time series of the anomalies in annual @@ -501,7 +648,7 @@ Example plots different observations (thick black lines). Dataset pre-processing like described in Jones et al., 2013. -.. figure:: /recipes/figures/flato13ipcc/fig-9-14.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-14.png :align: center Figure 9.14: (a) Zonally averaged sea surface temperature (SST) error @@ -529,7 +676,7 @@ Example plots Figure 9.24a: Time series of total sea ice area and extent (accumulated) for the Arctic in September including multi-model mean and standard deviation. -.. figure:: /recipes/figures/flato13ipcc/fig-9-26.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-26.png :align: center Figure 9.26 (bottom): Ensemble-mean global land carbon uptake in the CMIP5 @@ -540,7 +687,7 @@ Example plots grey areas show the range of annual mean fluxes simulated across the model ensemble. -.. figure:: /recipes/figures/flato13ipcc/fig-9-27.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-27.png :align: center Figure 9.27 (top): Simulation of global mean atmosphere–ocean CO2 fluxes @@ -550,20 +697,138 @@ Example plots variability in the fluxes, calculated as the standard deviation of the annual means over the period 1986–2005. -.. figure:: /recipes/figures/flato13ipcc/fig-9-42a.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-38.png + :align: center + + Figure 9.38tas: Mean seasonal cycle for surface temperature (tas) + as multi model mean of 38 CMIP5 and 22 CMIP6 models as well as + CRU and ERA-Interim reanalysis data averaged + for 1980-2005 over land in different regions: + Western North America (WNA), Eastern North America (ENA), + Central America (CAM), Tropical South America (TSA), + Southern South America (SSA), Europe and Mediterranean (EUM), + North Africa (NAF), Central Africa (CAF), South Africa (SAF), + North Asia (NAS), Central Asia (CAS), East Asia (EAS), + South Asia (SAS), Southeast Asia (SEA), and Australia (AUS). + Similar to Fig. 9.38a from Flato et al. (2013), CMIP6 instead of CMIP3 and + set of CMIP5 models used different. + + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-38-pr.png + :align: center + + Figure 9.38pr: Mean seasonal cycle for precipitation (pr) + as multi model mean of 38 CMIP5 and 22 CMIP6 models as well as + CRU and ERA-Interim reanalysis data averaged + for 1980-1999 over land in different regions: + Western North America (WNA), Eastern North America (ENA), + Central America (CAM), Tropical South America (TSA), + Southern South America (SSA), Europe and Mediterranean (EUM), + North Africa (NAF), Central Africa (CAF), South Africa (SAF), + North Asia (NAS), Central Asia (CAS), East Asia (EAS), + South Asia (SAS), Southeast Asia (SEA), and Australia (AUS). + Similar to Fig. 9.38b from Flato et al. (2013), CMIP6 instead of CMIP3 and + set of CMIP5 models used different. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-38_regions.png + :align: center + + Figure 9.38reg: Positions of the regions used in Figure 9.38. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-39.png + :align: center + + Figure 9.39tas: Box and whisker plots showing the 5th, 25th, 50th, 75th + and 95th percentiles of the seasonal- and annual mean biases for + surface temperature (tas) for 1980-2005 between 38 CMIP5 models + (box and whiskers) or 22 CMIP6 models (crosses) and CRU data. + The regions are: Alaska/NW Canada (ALAs), + Eastern Canada/Greenland/Iceland (CGIs), Western North America(WNAs), + Central North America (CNAs), Eastern North America (ENAs), + Central America/Mexico (CAMs), Amazon (AMZs), NE Brazil (NEBs), + West Coast South America (WSAs), South-Eastern South America (SSAs), + Northern Europe (NEUs), Central Europe (CEUs), + Southern Europe/the Mediterranean (MEDs), Sahara (SAHs), + Western Africa (WAFs), Eastern Africa (EAFs), Southern Africa (SAFs), + Northern Asia (NASs), Western Asia (WASs), Central Asia (CASs), + Tibetan Plateau (TIBs), Eastern Asia (EASs), Southern Asia (SASs), + Southeast Asia (SEAs), Northern Australia (NASs) and + Southern Australia/New Zealand (SAUs). + The positions of these regions are defined following + (Seneviratne et al., 2012) and differ from the ones in Fig. 9.38. + Similar to Fig. 9.39 a,c,e from Flato et al. (2013), CMIP6 instead of CMIP3 and + set of CMIP5 models used different. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-39-pr.png + :align: center + + Figure 9.39pr: Box and whisker plots showing the 5th, 25th, 50th, 75th + and 95th percentiles of the seasonal- and annual mean biases for + precipitation (pr) for 1980-2005 between 38 CMIP5 models + (box and whiskers) or 22 CMIP6 models (crosses) and CRU data. + The regions are: Alaska/NW Canada (ALAs), + Eastern Canada/Greenland/Iceland (CGIs), Western North America(WNAs), + Central North America (CNAs), Eastern North America (ENAs), + Central America/Mexico (CAMs), Amazon (AMZs), NE Brazil (NEBs), + West Coast South America (WSAs), South-Eastern South America (SSAs), + Northern Europe (NEUs), Central Europe (CEUs), + Southern Europe/the Mediterranean (MEDs), Sahara (SAHs), + Western Africa (WAFs), Eastern Africa (EAFs), Southern Africa (SAFs), + Northern Asia (NASs), Western Asia (WASs), Central Asia (CASs), + Tibetan Plateau (TIBs), Eastern Asia (EASs), Southern Asia (SASs), + Southeast Asia (SEAs), Northern Australia (NASs) and + Southern Australia/New Zealand (SAUs). + The positions of these regions are defined following + (Seneviratne et al., 2012) and differ from the ones in Fig. 9.38. + Similar to Fig. 9.39 b,d,f from Flato et al. (2013), CMIP6 instead of CMIP3 and + set of CMIP5 models used different. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-39_regions.png + :align: center + + Figure 9.39reg: Positions of the regions used in Figure 9.39. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-40.png + :align: center + + Figure 9.40tas: Box and whisker plots showing the 5th, 25th, 50th, 75th + and 95th percentiles of the seasonal- and annual mean biases for + surface temperature (tas) for oceanic and polar regions between 38 CMIP5 (box and whiskers) or 22 CMIP6 (crosses) + models and ERA-Interim data for 1980–2005. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-40-pr.png + :align: center + + Figure 9.40pr: Box and whisker plots showing the 5th, 25th, 50th, 75th + and 95th percentiles of the seasonal- and annual mean biases for + precipitation (pr) for oceanic and polar regions between 38 CMIP5 (box and whiskers) or 22 CMIP6 (crosses) + models and Global Precipitation Climatology Project - Satellite-Gauge (GPCP-SG) data for 1980–2005. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-40_regions.png + :align: center + + Figure 9.40reg: Positions of the regions used in Figure 9.40. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-41b.png + :align: center + + Figure 9.41b: Ranked modelled versus ERA-Interim mean temperature for + 38 CMIP5 models in the Mediterranean region for 1961–2000. + +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-42a.png :align: center Figure 9.42a: Equilibrium climate sensitivity (ECS) against the global mean surface air temperature of CMIP5 models, both for the period 1961-1990 (larger symbols) and for the pre-industrial control runs (smaller symbols). -.. figure:: /recipes/figures/flato13ipcc/fig-9-42b.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-42b.png :align: center Figure 9.42b: Transient climate response (TCR) against equilibrium climate sensitivity (ECS) for CMIP5 models. -.. figure:: /recipes/figures/flato13ipcc/fig-9-45a.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-45a.png :align: center Figure 9.45a: Scatterplot of springtime snow-albedo effect values in climate diff --git a/doc/sphinx/source/recipes/recipe_snowalbedo.rst b/doc/sphinx/source/recipes/recipe_snowalbedo.rst index 22bde3bbba..5f3e5ae158 100644 --- a/doc/sphinx/source/recipes/recipe_snowalbedo.rst +++ b/doc/sphinx/source/recipes/recipe_snowalbedo.rst @@ -122,7 +122,7 @@ References Example plots ------------- -.. figure:: /recipes/figures/flato13ipcc/fig-9-45a.png +.. figure:: /recipes/figures/ipccwg1ar5ch9/fig-9-45a.png :align: center Scatterplot of springtime snow-albedo effect values in climate diff --git a/esmvaltool/diag_scripts/regional_downscaling/Figure9.38.ncl b/esmvaltool/diag_scripts/regional_downscaling/Figure9.38.ncl new file mode 100644 index 0000000000..e8844107e2 --- /dev/null +++ b/esmvaltool/diag_scripts/regional_downscaling/Figure9.38.ncl @@ -0,0 +1,822 @@ +; ########### ############################################################### +; # ANNUAL CYCLE CONTOUR PLOTS OF REGIONAL MEANS # +; ############################################################################# +; # Author: Irene Cionni(ENEA, Italy) # +; # CRESCENDO project +; ############################################################################# +; # +; # Description +; # * Creates annual cycle regional plots for individual models and +; # multi model over the selected project&experiment&mip +; # - Read regions +; # - select the regions +; # - calculate annual cycle for each model +; # - evaluate the MMM over selected project&experiment&mip +; # - plot the individual models annual cycle +; # - plot the MMMs annual cycle and standard deviations +; # +; # Optional diag_script_info attributes: +; # +; # * styleset, default "CMIP5" +; # * fig938_region_label: +; # (/"WNA","ENA","CAM","TSA","SSA","EUM","NAF","CAF","SAF", +; # "NAS","CAS","EAS","SAS","SEA","AUS"/) +; # these reagions are defined in function select_region +; # (./diag_scripts/regional_downscaling/regional_function.ncl) +; # according to a personal comunication of Sin Chan Chou, default "WNA" +; # * fig938_project_MMM: projects to average, default "CMIP5" +; # * fig938_experiment_MMM: experiments to average, default "historical" +; # * fig938_mip_MMM: mip to average, default "Amon" +; # * fig938_names_MMM: names in legend, default "CMIP5" +; # * fig938_colors_MMM: colors, default "red" +; # * fig938_YMin : minimum Y Axis +; # * fig938_YMax : maximum Y Axis +; # * fig938_diff: difference to reference data (true) or +; # absolute annual cycle (false), default: true +; # +; # fig938_mip_MMM, fig938_experiment_MMM, fig938_project_MMM, +; # fig938_names_MMM, and fig938_colors_MMM +; # must have the same number of elements i.e. +; # fig938_project_MMM=(/"CMIP5", "CMIP3"/) +; # fig938_experiment_MMM=(/"historical", "historical"/) +; # fig938_mip_MMM=(/"Amon", "Amon"/) +; # fig938_names_MMM=(/"CMIP5","CMIP3"/) +; # fig938_colors_MMM:=(/"red","blue"/) +; # +; # +; # +; # Caveats: +; # +; # Comments: +; # Regions borders are polygons defined in function select_region_938 +; # in regional_function.ncl +; # +; # Modification history: +; # 20230127-weigel_katja: Update for absolute annual cycle including +; # new fig938_diff attribute +; # and bug fixes in index of data sets/models and +; # color for regions +; # 20221026-weigel_katja: header updated +; # 20220314-weigel_katja: header updated +; # original file anncycplot.ncl +; # # +; ############################################################### +load "$diag_scripts/../interface_scripts/interface.ncl" + +load "$diag_scripts/shared/statistics.ncl" +load "$diag_scripts/shared/scaling.ncl" +load "$diag_scripts/shared/plot/aux_plotting.ncl" +load "$diag_scripts/shared/plot/style.ncl" +load "$diag_scripts/regional_downscaling/regional_function.ncl" + + +begin + enter_msg(DIAG_SCRIPT, "") + var0 = variable_info[0]@short_name + units = variable_info[0]@units + info0 = select_metadata_by_name(input_file_info, var0) + dim_MOD1 = ListCount(info0) + names = metadata_att_as_array(info0, "dataset") + projects = metadata_att_as_array(info0, "project") + exps = metadata_att_as_array(info0, "exp") + ensembles = metadata_att_as_array(info0, "ensemble") + mips = metadata_att_as_array(info0, "mip") + y1 = metadata_att_as_array(info0, "start_year") + y2 = metadata_att_as_array(info0, "end_year") + long_name = variable_info[0]@long_name + if (isatt(variable_info[0], "reference_dataset")) then + refname = variable_info[0]@reference_dataset + do imod = 0, dimsizes(names) - 1 + if (names(imod) .eq. refname) then + iref = imod + end if + end do + else + error_msg("f", DIAG_SCRIPT, "", "no reference dataset " + \ + "(variable_info[0]@reference_dataset) needs to be defined.") + end if + if(isatt(variable_info, "units")) then + units = variable_info@units + else + units = "K" + end if + if(isatt(variable_info, "long_name")) then + LONG_NAME = variable_info@long_name + else + LONG_NAME = var0 + end if + + log_info("++++++++++++++++++++++++++++++++++++++++++") + log_info(DIAG_SCRIPT + " (var: " + var0 + ")") + log_info("++++++++++++++++++++++++++++++++++++++++++") + + ; Set default values for optional diag_script_info attributes + + set_default_att(diag_script_info, "fig938_region_label", "WNA") + set_default_att(diag_script_info, "styleset", "CMIP5") + set_default_att(diag_script_info, "fig938_MMM", "True") + set_default_att(diag_script_info, "fig938_project_MMM", "CMIP5") + set_default_att(diag_script_info, "fig938_experiment_MMM", "historical") + set_default_att(diag_script_info, "fig938_mip_MMM", "Amon") + set_default_att(diag_script_info, "fig938_names_MMM", \ + diag_script_info@fig938_project_MMM) + set_default_att(diag_script_info, "fig938_colors_MMM", "red") + set_default_att(diag_script_info, "refModel", "ERA-Interim") + set_default_att(diag_script_info, "fig938_diff", "True") + colors = project_style(info0, diag_script_info, "colors") + dashes = project_style(info0, diag_script_info, "dashes") + thicks = tofloat(project_style(info0, diag_script_info, "thicks")) + markers = project_style(info0, diag_script_info, "markers") + lin_mar_mod = new((/dimsizes(colors)/), "string") + lin_mar_mod = (/"Lines"/) + + if (isatt(diag_script_info, "refModel")) then + idx_ref = ind(names .eq. diag_script_info@refModel) + if (all(ismissing(idx_ref))) then + error_msg("f", diag_script, "", "refModel is not included in " + \ + "model list (namelist)") + end if + p_ref = "ref_" + else + idx_ref = -1 + p_ref = "" + end if + region_label = tostring(diag_script_info@fig938_region_label) + dim_reg = dimsizes(region_label) + latrange = new((/dimsizes(region_label), 2/), "double") + lonrange = new((/dimsizes(region_label), 2/), "double") + do ir = 0, dimsizes(region_label) - 1 + region = select_region1(region_label(ir)) + latrange(ir, :) = region(0:1) + lonrange(ir, :) = region(2:3) + end do + flag_mod = where(projects.ne."OBS" .and.projects.ne."OBS6"\ + .and. projects.ne."obs4mips", 1, 0) + index_mod = ind(flag_mod.gt.0) + index_obs = ind(flag_mod.eq.0) + dim_MOD = dimsizes(index_mod) + dim_OBS = 0 + + if (.not.all(ismissing(index_obs))) then + dim_OBS = dimsizes(index_obs) + list_obs_mod = names(index_obs) + end if + ; make sure path for (mandatory) netcdf output exists + + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + +end +begin + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_38_" + var0) + wks_r = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_38_regions_" + var0) + wks_l = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_38_legend_" + var0) + if (diag_script_info@fig938_MMM.eq."True") + wks_MMM = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_38_MMM_" + var0) + end if + ; ****************************************************************** + ; common resources for plots + pan = True + res = True + res@gsnDraw = False + res@gsnFrame = False + res@vpHeightF = 0.6 + res@vpWidthF = 0.8 + ; res@txFontHeightF = 0.018 + months = ispan(0, 12, 1) + + res@tiMainFontHeightF = 0.022 + res@tmXBMode = "Explicit" + res@tmXBValues = ispan(0, 12, 1) + res@tmXBLabels = (/"J", "F", "M", "A", "M", "J", "J", "A", "S", \ + "O", "N", "D", "J"/) + res@tmXBLabelFontHeightF = 0.035 + res@tmYLLabelFontHeightF = 0.035 + res@tiXAxisString = " " + res@tiYAxisString = " " + res@xyLineDashSegLenF = 0.5 +; ------------res1-------------------------------------------------- + + pan1 = True + res1 = True + res1@gsnDraw = False + res1@gsnFrame = False + ; res1@txFontHeightF = 0.02 + res1@tiMainFontHeightF = 0.02 + res1@tmXBMode = "Explicit" + res1@tmXBValues = ispan(0, 12, 1) + res1@tmXBLabels = (/"J", "F", "M", "A", "M", "J", "J", "A", "S", \ + "O", "N", "D", "J"/) + res1@vpHeightF = 0.6 + res1@vpWidthF = 0.8 + res1@tmXBLabelFontHeightF = 0.035 + res1@tmYLLabelFontHeightF = 0.035 + res1@tiXAxisString = " " + res1@tiYAxisString = " " + res1@xyLineDashSegLenF = 0.5 + ; ************************select MMM********************* + dim_MMM = 1 + if (diag_script_info@fig938_MMM.eq."True") + if (dimsizes(diag_script_info@fig938_project_MMM).eq.\ + dimsizes(diag_script_info@fig938_experiment_MMM).eq.\ + dimsizes(diag_script_info@fig938_mip_MMM)) then + dim_MMM = dimsizes(diag_script_info@fig938_project_MMM) + indic_s = new((/dimsizes(diag_script_info@fig938_project_MMM),\ + dimsizes(names)/), "integer") + indic_not_s = new((/dimsizes(diag_script_info@fig938_project_MMM),\ + dimsizes(names)/), "integer") + do ik = 0, dimsizes(diag_script_info@fig938_project_MMM) - 1 + ii_s = ind((projects.eq.diag_script_info@fig938_project_MMM(ik)).and.\ + (exps.eq.diag_script_info@fig938_experiment_MMM(ik)).and.\ + (mips.eq.diag_script_info@fig938_mip_MMM(ik))) + indic_s(ik, :dimsizes(ii_s) - 1) = ii_s + delete(ii_s) + + ii_not_s = \ + ind((projects.ne.diag_script_info@fig938_project_MMM(ik))\ + .or.(exps.ne.diag_script_info@fig938_experiment_MMM(ik))\ + .or.(mips.ne.diag_script_info@fig938_mip_MMM(ik))) + indic_not_s(ik, :dimsizes(ii_not_s)-1) = ii_not_s + delete(ii_not_s) + end do + else + error_msg("f", diag_script, "", "diag_script_info@fig938_project_MMM" + \ + "diag_script_info@fig938_experiment_MMM and" + \ + " diag_script_info@fig938_experiment_MMM" + \ + " must have the same dimension") + end if + end if + if (dimsizes(diag_script_info@fig938_project_MMM).gt.1) then + indic_not_sela = get_unique_difference(indic_s, indic_not_s) + else + ndim = ndtooned(indic_not_s) + ise = ind(.not.ismissing(ndim)) + indic_not_sela = ndim(ise) + delete(ise) + delete(ndim) + end if + plot = new(dim_reg, "graphic") + plot_MMM = new(dim_reg, "graphic") + plot_STD = new((/dim_reg, dim_MMM/), "graphic") + + ; map = new(dimsizes(region_label), "graphic") + map_r = new(1, "graphic") + mres_r = True + mres_r@gsnDraw = False + mres_r@gsnFrame = False + mres_r@lbLabelBarOn = False + mres_r@cnLevelSelectionMode = "ManualLevels" + mres_r@cnMinLevelValF = 0. + mres_r@cnMaxLevelValF = 200.0 + mres_r@cnMaxLevelCount = 42.0 + mres_r@cnLevelSpacingF = max((/5.0, 200.0/tofloat(dim_reg + 2.0)/)) + mres_r@cnInfoLabelOn = False + mres_r@cnLineLabelsOn = False + mres_r@cnFillOn = True + mres_r@cnFillOpacityF = 0.5 + cmap_r = read_colormap_file("GMT_wysiwygcont") + mres_r@cnFillPalette = cmap_r(::-1, :) + mres_r@mpFillOn = True + txres = True + txres@txFontHeightF = 0.015 + txres@txFont = 22 + txres@txJust = "CenterLeft" + + random_setallseed(36484749, 9494848) + unf = random_uniform(0, 1, (/dim_reg + 2/)) + ip = dim_pqsort(unf, 1) + + do ir = 0, dim_reg - 1 + case1 = region_label(ir) + if(idx_ref.ne.-1) then + if (diag_script_info@fig938_MMM.eq."True") + if ((diag_script_info@fig938_diff.eq."True").and.(idx_ref.ne.-1)) then + indic_s = where(indic_s.eq.idx_ref, indic_s@_FillValue, indic_s) + indic_not_sel = where(indic_not_sela.eq.idx_ref,\ + indic_not_sela@_FillValue, indic_not_sela) + if(.not.(any(ismissing(indic_not_sel)))) then + indic_not_sel1 = indic_not_sel(ind(.not.ismissing(indic_not_sel))) + delete(indic_not_sel) + indic_not_sel = indic_not_sel1 + delete(indic_not_sel1) + end if + else + indic_not_sel = indic_not_sela + end if + end if + + if (diag_script_info@fig938_diff.eq."True") then + pan@txString = LONG_NAME + " bias vs. " + names(idx_ref) + else + pan@txString = LONG_NAME + end if + D = new((/dim_MOD1, 13/), "double") + models = new((/dim_MOD1/), "string") + C = new((/dim_MOD1 - 1, 13/), "double") + models1 = new((/dim_MOD1 - 1/), "string") + colors1 = new((/dim_MOD1 - 1/), typeof(colors)) + dashes1 = new((/dim_MOD1 - 1/), typeof(dashes)) + thicks1 = new((/dim_MOD1 - 1/), typeof(thicks)) + markers1 = new((/dim_MOD1 - 1/), typeof(markers)) + lin_mar_mod1 = new((/dim_MOD1 - 1/), "string") + ; (b) difference of each model from 'reference' + ; CASE 1 + A0 = read_data(info0[idx_ref]) + ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + ; Get infos for map plot + lsdata = A0(0, :, :) + cell_fill = (/select_region_938(region_label(ir), lsdata)/) + cell_fill!0 = "lat" + cell_fill!1 = "lon" + cell_fill&lat = lsdata&lat + cell_fill&lon = lsdata&lon + irc = (ip(ir + 1)) * 200.0/tofloat(dim_reg + 2) + + if (ir.eq.0) then + cell_fill2 = where(ismissing(cell_fill), -1., irc) + cell_fill2!0 = "lat" + cell_fill2!1 = "lon" + cell_fill2&lat = lsdata&lat + cell_fill2&lon = lsdata&lon + else + cell_fill2 = where(ismissing(cell_fill), cell_fill2, irc) + end if + ; ***************************************************************** + Atmp1 = A0 + Atmp = area_operations(Atmp1, latrange(ir, 0), latrange(ir, 1), \ + lonrange(ir, 0), lonrange(ir, 1), "average",\ + True) + delete(A0) + if (Atmp@units.eq."K") then + A = convert_units(Atmp, "degC") ; get Celsius + UNITS = "~S~o~N~C" + else + if (Atmp@units.eq."kg m-2 s-1") then + A = convert_units(Atmp, "mm/day") + UNITS = "mm/day" + else + A = (/Atmp/) + UNITS = units + end if + end if + ; end if + delete(Atmp) + delete(Atmp1) + + jmod = 0 + do imod = 0, dim_MOD1 - 1 + models(imod) = names(imod) + if (imod .ne. idx_ref) then + B0 = read_data(info0[imod]) + Btmp1 = B0 + Btmp = area_operations(Btmp1, latrange(ir, 0), latrange(ir, 1), \ + lonrange(ir, 0), lonrange(ir, 1), "average",\ + True) + delete(B0) + if (Btmp@units.eq."K") then + B = convert_units(Btmp, "degC") ; get Celsius + UNITS = "~S~o~N~C" + else + if (Btmp@units.eq."kg m-2 s-1") then + B = convert_units(Btmp, "mm/day") + UNITS = "mm/day" + else + B = (/Btmp/) + UNITS = units + end if + end if + delete(Btmp) + delete(Btmp1) + + ; --------------------------------------------------------- + ; difference plot of time(x) vs. latitude(y) + + if (diag_script_info@fig938_diff.eq."True") then + C(jmod, 0:11) = (/A - B/) ; get diff values + C(jmod, 12) = (/A(0) - B(0)/) + D(imod, 0:11) = (/A - B/) + D(imod, 12) = (/A(0) - B(0)/) + else + C(jmod, 0:11) = (/B/) + C(jmod, 12) = (/B(0)/) + D(imod, 0:11) = (/B/) + D(imod, 12) = (/B(0)/) + end if + + delete(B) + colors1(jmod) = colors(imod) + dashes1(jmod) = dashes(imod) + thicks1(jmod) = thicks(imod) + markers1(jmod) = markers(imod) + models1(jmod) = names(imod) + lin_mar_mod1(jmod) = "Lines" + jmod = jmod + 1 + end if + end do ; imod + else + if (diag_script_info@fig938_MMM.eq."True") + if ((diag_script_info@fig938_diff.eq."True").and.(idx_ref.ne.-1)) then + indic_s = where(indic_s.eq.idx_ref, indic_s@_FillValue, indic_s) + indic_not_sel = where(indic_not_sela.eq.idx_ref,\ + indic_not_sela@_FillValue, indic_not_sela) + if(.not.(any(ismissing(indic_not_sel)))) then + indic_not_sel1 = indic_not_sel(ind(.not.ismissing(indic_not_sel))) + delete(indic_not_sel) + indic_not_sel = indic_not_sel1 + delete(indic_not_sel1) + end if + else + indic_not_sel = indic_not_sela + end if + end if + lin_mar_mod1 = lin_mar_mod + C = new((/dim_MOD1, 13/), "double") + do imod = 0, dim_MOD1 - 1 + ; CASE 1 + pan@txString = LONG_NAME + A0 = read_data(info0[imod]) + Atmp1 = A0 + Atmp = area_operations(Atmp1, latrange(ir, 0), latrange(ir, 1), \ + lonrange(ir, 0), lonrange(ir, 1), "average",\ + True) + delete(A0) + if (Atmp@units.eq."K") then + A = convert_units(Atmp, "degC") ; get Celsius + UNITS = "~S~o~N~C" + else + if (Atmp@units.eq."kg m-2 s-1") then + A = convert_units(Atmp, "mm/day") + UNITS = "mm/day" + else + A = (/Atmp/) + UNITS = units + end if + end if + delete(Atmp) + delete(Atmp1) + C(imod, 0:11) = A + C(imod, 12) = A(0) + lin_mar_mod1(imod) = "Lines" + end do + + colors1 = colors + dashes1 = dashes + thicks1 = thicks + markers1 = markers + models1 = names + end if + + ; case contour plots of time(x) vs. latitude(y) + + ; res@tiMainString =variable_info@long_name + if (diag_script_info@fig938_diff.eq."True") then + E = C + else + E = D + E(idx_ref, 0:11) = (/A/) + E(idx_ref, 12) = (/A(0)/) + end if + if (diag_script_info@fig938_diff.eq."True") then + Ehlp = reshape(E, (/13*(dim_MOD1 - 1)/)) + else + Ehlp = reshape(E, (/13*dim_MOD1/)) + end if + if (any(.not.ismissing(Ehlp))) then + min1 = min(Ehlp(ind(.not.ismissing(Ehlp)))) + max1 = max(Ehlp(ind(.not.ismissing(Ehlp)))) + else + min1 = 0.0 + max1 = 1.0 + end if + if (isatt(diag_script_info, "fig938_YMin")) then + res@trYMinF = diag_script_info@Figure_938_YMin + else + res@trYMinF = min1 + end if + if (isatt(diag_script_info, "fig938_YMax")) then + res@trYMaxF = diag_script_info@Figure_938_YMax + else + res@trYMaxF = max1 + end if + if (diag_script_info@fig938_diff.eq."True") then + res@xyLineColors = colors1 ; line colors + res@xyLineThicknesses = thicks1 ; line thicknesses + res@xyDashPatterns = dashes1 ; line patterns + else + res@xyLineColors = colors ; line colors + res@xyLineThicknesses = thicks ; line thicknesses + res@xyDashPatterns = dashes ; line patterns + end if + + res@gsnLeftString = case1 + res@gsnLeftStringFontHeightF = 0.04 + res@gsnRightString = UNITS + res@gsnRightStringFontHeightF = 0.04 + res@tfPolyDrawOrder = "Draw" + + plot(ir) = gsn_csm_xy(wks, months, E, res) + + ; ******************single region output file************************** + + nc_filename = work_dir + "fig938_" + var0 + ".nc" + E@var = var0 + "_" + case1 + E@diag_script = "fig938" + E!0 = "line" + E!1 = "month" + month_n = (/"J", "F", "M", "A", "M", "J", "J", "A", "S", \ + "O", "N", "D", "J"/) + + if (diag_script_info@fig938_diff.eq."True") then + E&line = models1 + else + E&line = models + end if + E&month = month_n + + if (ir .eq. 0) then + E@existing = "overwrite" + else + E@existing = "append" + end if + + nc_outfile = ncdf_write(E, nc_filename) + + ; ******************single region output file************************** + + if (diag_script_info@fig938_MMM.eq."True") + if ((diag_script_info@fig938_diff.ne."True").and.(idx_ref .ne. -1)) then + if(.not.all(ismissing(indic_not_sel))) then + if (any(indic_not_sel.eq.idx_ref)) then + dim_extr = dimsizes(indic_not_sel) + else + dim_extr = dimsizes(indic_not_sel) + 1 + end if + else + dim_extr = 1 + end if + else + if(.not.all(ismissing(indic_not_sel))) then + dim_extr = dimsizes(indic_not_sel) + else + dim_extr = 0 + end if + end if + + MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) +\ + dim_extr, 13/), typeof(C)) + STD = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr, 13/), typeof(C)) + names_MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr/), "string") + colors_MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr/), typeof(colors)) + thicks_MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr/), typeof(thicks)) + dashes_MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr/), typeof(dashes)) + lin_mar_mod_MMM = new((/dimsizes(diag_script_info@fig938_project_MMM) + \ + dim_extr/), typeof(lin_mar_mod1)) + colori_def = (/"red", "blue", "green", "magenta", "yellow"/) + do iin = 0, dimsizes(diag_script_info@fig938_project_MMM) - 1 + aa = indic_s(iin, ind(.not.ismissing(indic_s(iin, :)))) + if (idx_ref .ne. -1) + D!0 = "case" + MMM(iin, :) = dim_avg_n_Wrap(D(aa, :), 0) + STD(iin, :) = dim_stddev_n_Wrap(D(aa, :), 0) + else + C!0 = "case" + MMM(iin, :) = dim_avg_n_Wrap(C(aa, :), 0) + STD(iin, :) = dim_stddev_n_Wrap(C(aa, :), 0) + end if + delete(aa) + if(isatt(diag_script_info, "fig938_colors_MMM")) then + colors_MMM(iin) = diag_script_info@fig938_colors_MMM(iin) + else + colors_MMM(iin) = colori_def(iin) + end if + thicks_MMM(iin) = 3. + dashes_MMM(iin) = 0 + lin_mar_mod_MMM(iin) = "Lines" + if(isatt(diag_script_info, "fig938_names_MMM")) then + names_MMM(iin) = diag_script_info@fig938_names_MMM(iin) + else + names_MMM(iin) = diag_script_info@fig938_project_MMM(iin) + " " + \ + diag_script_info@fig938_experiment_MMM(iin) + \ + " " + diag_script_info@fig938_mip_MMM(iin) + end if + end do + if(.not.all(ismissing(indic_not_sel))) then + if (idx_ref .ne. -1) + MMM(dimsizes(diag_script_info@fig938_project_MMM):, :) = \ + (/E(indic_not_sel(ind(.not.ismissing(indic_not_sel))), :)/) + colors_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + colors(indic_not_sel(ind(.not.ismissing(indic_not_sel)))) + thicks_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = 3. + dashes_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + dashes(indic_not_sel(ind(.not.ismissing(indic_not_sel)))) + lin_mar_mod_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + lin_mar_mod(indic_not_sel(ind(.not.ismissing(indic_not_sel)))) + names_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + models(indic_not_sel(ind(.not.ismissing(indic_not_sel)))) + else + MMM(dimsizes(diag_script_info@fig938_project_MMM):, :) = \ + (/C(indic_not_sel, :)/) + colors_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + colors1(indic_not_sel) + thicks_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = 3. + dashes_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + dashes1(indic_not_sel) + lin_mar_mod_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + lin_mar_mod1(indic_not_sel) + names_MMM(dimsizes(diag_script_info@fig938_project_MMM):) = \ + models1(indic_not_sel) + end if + end if + end if + if(isatt(diag_script_info, "fig938_YMin")) then + res1@trYMinF = diag_script_info@fig938_YMin + else + res1@trYMinF = min1 + end if + + if(isatt(diag_script_info, "fig938_YMax")) then + res1@trYMaxF = diag_script_info@fig938_YMax + else + res1@trYMaxF = max1 + end if + + res1@xyLineColors = colors_MMM ; line colors + res1@xyLineThicknesses = thicks_MMM ; line thicknesses + res1@xyDashPatterns = dashes_MMM ; line patterns + res1@gsnLeftString = case1 + res1@gsnRightString = UNITS + res1@gsnLeftStringFontHeightF = 0.04 + res1@gsnRightStringFontHeightF = 0.04 + res1@tfPolyDrawOrder = "Draw" + plot_MMM(ir) = gsn_csm_xy(wks_MMM, months, MMM, res1) + xp = new((/2 * 13/), typeof(MMM)) + yp = new((/2 * 13, dimsizes(diag_script_info@fig938_project_MMM)/), \ + typeof(MMM)) + do k = 0, 12 + yp(k, :) = MMM(:dimsizes(diag_script_info@fig938_project_MMM) - 1, k) + \ + STD(:dimsizes(diag_script_info@fig938_project_MMM) - 1, k) + xp(k) = months(k) + xp(2 * 13 - 1 - k) = months(k) + yp(2 * 13 - 1 - k, :) = \ + MMM(:dimsizes(diag_script_info@fig938_project_MMM) - 1, k) \ + - STD(:dimsizes(diag_script_info@fig938_project_MMM) - 1, k) + end do + do iin = 0, dimsizes(diag_script_info@fig938_project_MMM) - 1 + gsres = True + gsres@gsFillColor = colors_MMM(iin) + gsres@gsFillOpacityF = 0.3 + plot_STD(ir, iin) = gsn_add_polygon(wks_MMM, plot_MMM(ir), xp,\ + yp(:, iin), gsres) + end do + + ; ******************single region output file************************** + + nc_filename_MMM = work_dir + "fig938_" + var0 + "_MMM.nc" + MMM@var = var0 + "_" + case1 + MMM@diag_script = "fig938" + month_n = (/"J", "F", "M", "A", "M", "J", "J", "A", "S", \ + "O", "N", "D", "J"/) + MMM!0 = "line" + MMM!1 = "month" + MMM&line = names_MMM + MMM&month = month_n + + if (ir .eq. 0) then + MMM@existing = "overwrite" + else + MMM@existing = "append" + end if + + nc_outfile = ncdf_write(MMM, nc_filename_MMM) + + ; ******************single region output file************************** + + nc_filename_STD = work_dir + "fig938_" + var0 + "_STD.nc" + STD@var = var0 + "_" + case1 + STD@diag_script = "fig938" + month_n = (/"J", "F", "M", "A", "M", "J", "J", "A", "S", \ + "O", "N", "D", "J"/) + STD!0 = "line" + STD!1 = "month" + STD&line = names_MMM + STD&month = month_n + + if (ir .eq. 0) then + STD@existing = "overwrite" + else + STD@existing = "append" + end if + + nc_outfile = ncdf_write(STD, nc_filename_STD) + + ; ******************single region output file************************** + + delete(min1) + delete(max1) + delete(C) + delete(MMM) + delete(STD) + delete(xp) + delete(yp) + delete(indic_not_sel) + delete(A) + delete(E) + delete(Ehlp) + end do ; region + + ; Panel plots + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + n_p = dimsizes(plot) / 5 + if (mod(dimsizes(plot), 5) .ne. 0) then + n_p = n_p + 1 + end if + gsn_panel(wks, plot, (/n_p, 5/), pan) + frame(wks) + + ; ***********add legend**************************** + if (diag_script_info@fig938_diff.eq."True") then + add_legenda_page(wks_l, models1, colors1, dashes1, lin_mar_mod1,\ + thicks1, "0.9") + else + add_legenda_page(wks_l, models, colors, dashes, lin_mar_mod,\ + thicks, "0.9") + end if + frame(wks_l) + + if (diag_script_info@fig938_MMM.eq."True") + pan1 = True + pan1@gsnMaximize = True + pan1@gsnFrame = False + pan1@gsnPaperOrientation = "portrait" + n_p = dimsizes(plot_MMM) / 5 + if (mod(dimsizes(plot_MMM), 5) .ne. 0) then + n_p = n_p + 1 + end if + gsn_panel(wks_MMM, plot_MMM, (/n_p, 5/), pan1) + add_legend(wks_MMM, names_MMM, colors_MMM,\ + dashes_MMM, lin_mar_mod_MMM, thicks_MMM, "0.2") + ; end if + end if + frame(wks_MMM) + delete(plot_MMM) + delete(res1) + delete(pan1) + + map_r = gsn_csm_contour_map(wks_r, cell_fill2, mres_r) + + do ir = 0, dim_reg - 1 + txres@txFontColor = "black" + region_array_hlp = select_region1(region_label(ir)) + dum = gsn_add_text(wks_r, map_r, region_label(ir),\ + region_array_hlp(2) + 5.0, region_array_hlp(0) + 15.0,\ + txres) + delete(region_array_hlp) + end do + draw(map_r) + frame(wks_r) + + ; ------------------------------------------------------------- + ; Add provenance + ; ------------------------------------------------------------- + + caption = "Mean seasonal cycle for " + var0 + " over " + \ + "land in different regions" + + log_provenance(nc_filename, \ + wks@fullname, \ + caption, \ + (/"clim"/), \ + (/"reg"/), \ + "seas", \ + (/"cionni_irene"/), \ + (/"flato13ipcc"/), \ + metadata_att_as_array(info0, "filename")) + + if (diag_script_info@fig938_MMM .eq. "True") + + log_provenance(nc_filename_MMM, \ + wks_MMM@fullname, \ + caption, \ + (/"clim"/), \ + (/"reg"/), \ + "seas", \ + (/"cionni_irene"/), \ + (/"flato13ipcc"/), \ + metadata_att_as_array(info0, "filename")) + + end if + + +end diff --git a/esmvaltool/diag_scripts/regional_downscaling/Figure9.39.ncl b/esmvaltool/diag_scripts/regional_downscaling/Figure9.39.ncl new file mode 100644 index 0000000000..96ebeb27d7 --- /dev/null +++ b/esmvaltool/diag_scripts/regional_downscaling/Figure9.39.ncl @@ -0,0 +1,782 @@ +; ############################################################################# +; # SEASONAL OR ANNUAL BIAS # +; ############################################################################# +; # Author: Irene Cionni(ENEA, Italy) # +; # CRESCENDO project +; ############################################################################# +; +; # Description: # +; # * Create seasonal or annual bias box plots at selected regions # +; # - Read regions +; # -create mask map using region poligons +; # - for all the models calculate the bias reference_dataset +; # - sort biases for each selected project&experiment&mip +; # - evaluate percentiles (5th 25th 50th 75th 95th) +; # - plot the first selected project&experiment&mip as box-and-whisker +; # - plot the others selected projects&experiment&mip as markers +; # - compare the root-mean-square error of first project&experiment&mip +; # with the second if exist labeled with red for the regions where +; # the first error is larger than the second. +; # +; # Required variable_info attributes (variable specific): +; # +; # * reference_dataset: reference dataset name +; # +; # Optional diag_script_info attributes: +; # +; # * styleset, default "CMIP5" +; # * fig939_season : seasons i.e. (/"DJF","JJA","ANN"/) +; # * fig939_region_label : +; # (/"ALA","CGI","WNA","CNA","ENA","CAM","AMZ","NEB","WSA","SSA","NEU", +; # "CEU","MED","SAH","WAF","EAF","SAF","NAS","WAS","CAS","TIB","EAS", +; # "SAS","SEA","NAU","SAU"/) +; # these region are defined in Seneviratne et al., 2012: Appendix 3.A +; # Notes and technical details on Chapter 3 figures. +; # In: Managing the Risks of Extreme Events and Disasters to Advance +; # Climate Change Adaptation(IPCC). . +; # * fig939_MMM, default: True +; # * fig939_project_MMM: projects to average +; # * fig939_experiment_MMM: experiments to average +; # * fig939_mip_MMM: mip to average +; # * Dimensions of fig939_project_MMM, fig939_experiment_MMM and +; # fig939_mip_MMM must have the number of elements i.e. +; # fig939_project_MMM=(/"CMIP5", "CMIP3"/) +; # fig939_experiment_MMM=(/"historical", "historical"/) +; # fig939_mip_MMM=(/"Amon", "Amon"/) +; # +; # * Names for legend +; # fig939_names_MMM :names in legend i.e. (/"CMIP5","CMIP3"/ +; # * Vertical lines divide groups of region +; # fig939_vert_line_pos +; # i.e. (/6,10,13,17,24,26/) +; # * labels of vertical lines +; # fig939_vert_line_label +; # e.g. (/"North America","South America","Europe","Africa", +; # "Asia","Australia"/) +; # fig939_mode : True= cumulative mode +; # fig939_YMin : minimum Y Axis +; # fig939_YMax : maximum Y Axis +; # fig939_percentage : default: False +; # Caveats: +; # This script requires NCL version 6.40 +; # +; # Comments: +; # Regions borders are polygons defined in function select_region_srex +; # in regional_function.ncl +; # +; # Modification history: +; # 20230110-weigel_katja: fixed calendar, calendar starting point needs to +; # including time: "months since 1-1-1 00:00:00" +; # and converting month number to time Axis +; # with -1.0 +; # 20230111-weigel_katja: added option for percentage difference +; # 20230110-weigel_katja: fixed calendar, calendar starting point needs to +; # including time: "months since 1-1-1 00:00:00" +; # and converting month number to time Axis +; # with -1.0 +; # 20221026-weigel_katja: header updated +; # 20221026-weigel_katja: fixed calendar, time_operations expects +; # "gregorian" instead of "Gregorian" +; # 20221026-weigel_katja: removed unused variable fig939_colors_MMM +; # 20221026-weigel_katja: removed unused variable refModel +; # (reference_dataset instead) +; # 20220314-weigel_katja: header updated +; ############################################################### +load "$diag_scripts/../interface_scripts/interface.ncl" + +load "$diag_scripts/shared/statistics.ncl" +load "$diag_scripts/shared/plot/aux_plotting.ncl" +load "$diag_scripts/shared/plot/style.ncl" +load "$diag_scripts/regional_downscaling/regional_function.ncl" + + +begin + enter_msg(DIAG_SCRIPT, "") + var0 = variable_info[0]@short_name + UNITS = variable_info[0]@units + info0 = select_metadata_by_name(input_file_info, var0) + dim_MOD1 = ListCount(info0) + names = metadata_att_as_array(info0, "dataset") + projects = metadata_att_as_array(info0, "project") + exps = metadata_att_as_array(info0, "exp") + ensembles = metadata_att_as_array(info0, "ensemble") + mips = metadata_att_as_array(info0, "mip") + y1 = metadata_att_as_array(info0, "start_year") + y2 = metadata_att_as_array(info0, "end_year") + long_name = variable_info[0]@long_name + if (isatt(variable_info[0], "reference_dataset")) then + refname = variable_info[0]@reference_dataset + do imod = 0, dimsizes(names) - 1 + if (names(imod) .eq. refname) then + idx_ref = imod + end if + end do + else + error_msg("f", DIAG_SCRIPT, "", "no reference dataset " + \ + "(variable_info[0]@reference_dataset) needs to be defined.") + end if + if(isatt(variable_info, "long_name")) then + LONG_NAME = variable_info@long_name + else + LONG_NAME = var0 + end if + + log_info("++++++++++++++++++++++++++++++++++++++++++") + log_info(DIAG_SCRIPT + " (var: " + var0 + ")") + log_info("++++++++++++++++++++++++++++++++++++++++++") + + ; Set default values for optional diag_script_info attributes + + set_default_att(diag_script_info, "fig939_region_label", "ALAs") + set_default_att(diag_script_info, "styleset", "CMIP5") + set_default_att(diag_script_info, "fig939_MMM", "True") + set_default_att(diag_script_info, "fig939_project_MMM", "CMIP5") + set_default_att(diag_script_info, "fig939_experiment_MMM", "historical") + set_default_att(diag_script_info, "fig939_mip_MMM", "Amon") + ; set_default_att(diag_script_info, "fig939_colors_MMM", "red") + set_default_att(diag_script_info, "fig939_names_MMM", \ + diag_script_info@fig939_project_MMM) + set_default_att(diag_script_info, "fig939_season", "DJF") + set_default_att(diag_script_info, "fig939_percentage", "False") + + colors = project_style(info0, diag_script_info, "colors") + dashes = project_style(info0, diag_script_info, "dashes") + thicks = tofloat(project_style(info0, diag_script_info, "thicks")) + markers = project_style(info0, diag_script_info, "markers") + lin_mar_mod = new((/dimsizes(colors)/), "string") + lin_mar_mod = (/"Lines"/) + season = diag_script_info@fig939_season + mode = new(1, logical) + if(isatt(diag_script_info, "fig939_mode")) then + mode = True + else + mode = False + end if + region_label = tostring(diag_script_info@fig939_region_label) + dim_reg = dimsizes(region_label) + dim_seas = dimsizes(season) + + flag_mod = where(projects.ne."OBS" .and.projects.ne."OBS6"\ + .and. projects.ne."obs4mips", 1, 0) + index_mod = ind(flag_mod.gt.0) + index_obs = ind(flag_mod.eq.0) + dim_MOD = dimsizes(index_mod) + dim_OBS = 0 + + if (.not.all(ismissing(index_obs))) then + dim_OBS = dimsizes(index_obs) + list_obs_mod = names(index_obs) + end if + ; make sure path for (mandatory) netcdf output exists + + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + +end +begin + dim_MMM = 1 + + project_MMM = diag_script_info@fig939_project_MMM + exp_MMM = diag_script_info@fig939_experiment_MMM + mip_MMM = diag_script_info@fig939_mip_MMM + if (diag_script_info@fig939_MMM.eq."True") + if (dimsizes(project_MMM).eq.dimsizes(exp_MMM).eq.dimsizes(mip_MMM)) then + dim_MMM = dimsizes(project_MMM) + indic_s = new((/dimsizes(project_MMM),\ + dimsizes(names)/), "integer") + indic_not_s = new((/dimsizes(project_MMM),\ + dimsizes(names)/), "integer") + do ik = 0, dimsizes(diag_script_info@fig939_project_MMM) - 1 + ii_s = ind((projects.eq.project_MMM(ik))\ + .and.(exps.eq.exp_MMM(ik))\ + .and.(mips.eq.mip_MMM(ik))) + indic_s(ik, :dimsizes(ii_s) - 1) = ii_s + delete(ii_s) + ii_not_s = ind((projects.ne.project_MMM(ik)).or.(exps.ne.exp_MMM(ik))\ + .or.(mips.ne.mip_MMM(ik))) + indic_not_s(ik, :dimsizes(ii_not_s) - 1) = ii_not_s + delete(ii_not_s) + end do + else + error_msg("f", diag_script, "", "diag_script_info@fig939_project_MMM" + \ + "diag_script_info@fig939_experiment_MMM and" + \ + " diag_script_info@fig939_experiment_MMM" + \ + " must have the same dimension") + end if + end if + + if (dimsizes(project_MMM).gt.1) then + indic_not_sela = get_unique_difference(indic_s, indic_not_s) + else + ndim = ndtooned(indic_not_s) + ise = ind(.not.ismissing(ndim)) + indic_not_sela = ndim(ise) + delete(ise) + delete(ndim) + end if + MMM = new((/dim_seas, dim_reg, dimsizes(project_MMM) +\ + dimsizes(indic_not_sela), 6/), "double") + names_MMM = new((/dimsizes(project_MMM)/), "string") + MMM_rmse = new((/dim_seas, dim_reg, dimsizes(project_MMM)/), "double") + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_39_" + var0) + wks_r = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_39_regions_" + var0) + wks_l = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_39_legend_" + var0) + ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Amask = read_data(info0[idx_ref]) + lsdata = Amask(0, :, :) + lsdata = where(ismissing(lsdata), 1., lsdata) + ; ***************************************************************** + map_r = new(1, "graphic") + plot = new(dim_seas, "graphic") + dum_ref = new(dim_seas, "graphic") + dum1 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum2 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum3 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum4 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum5 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum_lines = new((/dim_seas, 30/), "graphic") + dum_txt = new((/dim_seas, 30/), "graphic") + mres_r = True + mres_r@gsnDraw = False + mres_r@gsnFrame = False + mres_r@lbLabelBarOn = False + mres_r@cnLevelSelectionMode = "ManualLevels" + mres_r@cnMinLevelValF = 0. + mres_r@cnMaxLevelValF = 200.0 + mres_r@cnMaxLevelCount = 42.0 + mres_r@cnLevelSpacingF = max((/5.0, 200.0/tofloat(dim_reg + 2.0)/)) + mres_r@cnInfoLabelOn = False + mres_r@cnLineLabelsOn = False + mres_r@cnFillOn = True + mres_r@cnFillOpacityF = 0.5 + cmap_r = read_colormap_file("GMT_wysiwygcont") + mres_r@cnFillPalette = cmap_r(::-1, :) + mres_r@mpFillOn = True + gsres = True + gsres@gsFillOpacityF = 0.7 + txres = True + txres@txFontHeightF = 0.012 + txres@txFont = 22 + txres@txJust = "CenterLeft" + + random_setallseed(36484749, 9494848) + unf = random_uniform(0, 1, (/dim_reg + 2/)) + ip = dim_pqsort(unf, 1) + + do iseas = 0, dim_seas - 1 + do ir = 0, dim_reg - 1 + case1 = region_label(ir) + cell_fill = (/select_region_srex(region_label(ir), lsdata)/) + cell_fill!0 = "lat" + cell_fill!1 = "lon" + cell_fill&lat = lsdata&lat + cell_fill&lon = lsdata&lon + + if (iseas.eq.0) then + irc = (ip(ir + 1)) * 200.0/tofloat(dim_reg + 2.0) + + if (ir.eq.0) then + cell_fill2 = where(ismissing(cell_fill), -1., irc) + cell_fill2!0 = "lat" + cell_fill2!1 = "lon" + cell_fill2&lat = lsdata&lat + cell_fill2&lon = lsdata&lon + else + cell_fill2 = where(ismissing(cell_fill), cell_fill2, irc) + end if + end if + cell_fill = where(ismissing(cell_fill), -1., 1.) + if (diag_script_info@fig939_MMM.eq."True") + indic_s = where(indic_s.eq.idx_ref, indic_s@_FillValue, indic_s) + indic_not_sel = where(indic_not_sela.eq.idx_ref,\ + indic_not_sela@_FillValue, indic_not_sela) + if(.not.ismissing(all(indic_not_sel))) then + indic_not_sel1 = indic_not_sel(ind(.not.ismissing(indic_not_sel))) + delete(indic_not_sel) + indic_not_sel = indic_not_sel1 + delete(indic_not_sel1) + end if + end if + D = new((/dim_MOD+1/), "double") + C = new((/dim_MOD/), "double") + models1 = new((/dim_MOD/), "string") + colors1 = new((/dim_MOD/), typeof(colors)) + dashes1 = new((/dim_MOD/), typeof(dashes)) + thicks1 = new((/dim_MOD/), typeof(thicks)) + markers1 = new((/dim_MOD/), typeof(markers)) + lin_mar_mod1 = new((/dim_MOD/), "string") + ; (b) difference of each model from 'reference' + ; CASE 1 In this plot only case1 exsist!!!!! + ; case1 = models@name(idx_ref) + " " + models@case_name(idx_ref) + A0 = read_data(info0[idx_ref]) + if (season(iseas).ne."ANN") then + if (mode) then + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + delete(time1) + Atmp3 = time_operations(A0, -1, -1, "extract", season(iseas), True) + date3 = cd_calendar(Atmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Atmp4 = Atmp3 + Atmp4 = (/Atmp3 * conform(Atmp3, weights3, 0)/) + Atmp1 = dim_sum_n_Wrap(Atmp4, 0) + delete(Atmp3) + delete(Atmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_yea + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp1 = time_operations(A0, -1, -1, "average", season(iseas), True) + end if + else + if (mode) then + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp3 = A0 + date3 = cd_calendar(Atmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Atmp4 = Atmp3 + Atmp4 = (/Atmp3 * conform(Atmp3, weights3, 0)/) + Atmp1 = dim_sum_n_Wrap(Atmp4, 0) + delete(Atmp3) + delete(Atmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp1 = time_operations(A0, -1, -1, "average", "annualclim", True) + end if + end if + ; ******************mask region********************* + Atmp1 = mask(Atmp1, cell_fill.eq.-1, False) + ; ************************************************** + Atmp = area_operations(Atmp1, -90., 90., 0., 360., "average", True) + delete(A0) + A = Atmp + delete(Atmp) + delete(Atmp1) + jmod = 0 + do imod = 0, dim_MOD - 1 + if (imod .ne. idx_ref) then + B0 = read_data(info0[imod]) + if (season(iseas).ne."ANN") then + if (mode) then + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys = input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp3 = time_operations(B0, -1, -1, "extract",\ + season(iseas), True) + + date3 = cd_calendar(Btmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Btmp4 = Btmp3 + Btmp4 = (/Btmp3 * conform(Btmp3, weights3, 0)/) + Btmp1 = dim_sum_n_Wrap(Btmp4, 0) + delete(Btmp3) + delete(Btmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp1 = time_operations(B0, -1, -1, "average",\ + season(iseas), True) + end if + else + if (mode) then + Btmp3 = B0 + Btmp3!0 = "time" + time1 = todouble(Btmp3&time - 1.0) + time1!0 = "time" + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(Btmp3&time) + Btmp3&time = time1 + date3 = cd_calendar(Btmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Btmp4 = Btmp3 + Btmp4 = (/Btmp3 * conform(Btmp3, weights3, 0)/) + Btmp1 = dim_sum_n_Wrap(Btmp4, 0) + delete(Btmp3) + delete(Btmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys = input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp1 = time_operations(B0, -1, -1, "average", "annualclim",\ + True) + end if + end if + ; ******************mask region********************** + Btmp1 = mask(Btmp1, cell_fill.eq.-1, False) + ; ************************************************** + Btmp = area_operations(Btmp1, -90., 90., 0., 360., "average", True) + delete(B0) + B = Btmp + delete(Btmp) + delete(Btmp1) + ; -------------------------------------------------------- + ; Bias + if (mode) then + print("cumulative mode") + C(jmod) = (/ 100 * (avg(B) - avg(A)) / avg(A)/) + D(imod) = (/100 * (avg(B) - avg(A)) / avg(A)/) + else + C(jmod) = (/avg(B) - avg(A)/) ; get diff values + D(imod) = (/avg(B) - avg(A)/) + end if + + if (UNITS.eq."K") then + UNITS = "~S~o~N~C" + else + if (mode) then + UNITS = "%" + else + UNITS = variable_info[0]@units + end if + end if + + delete(B) + colors1(jmod) = colors(imod) + dashes1(jmod) = dashes(imod) + thicks1(jmod) = thicks(imod) + markers1(jmod) = markers(imod) + models1(jmod) = names(imod) + lin_mar_mod1(jmod) = "Lines" + jmod = jmod + 1 + end if + end do ; imod + delete(A) + if (diag_script_info@fig939_MMM.eq."True") + colori_def = (/"red", "orange", "green", "blue", "purple"/) + scatters_def = (/0, 5, 16, 4, 7, 8, 12/) + do iin = 0, dimsizes(diag_script_info@fig939_project_MMM) - 1 + if (.not.all(ismissing(indic_s(iin, :)))) then + aa = indic_s(iin, ind(.not.ismissing(indic_s(iin, :)))) + end if + F = D(aa) + qsort(F) + dimt = dimsizes(F) + x5 = round(.05 * dimt, 3) - 1 + x25 = round(.25 * dimt, 3) - 1 + x50 = round(.50 * dimt, 3) - 1 + x75 = round(.75 * dimt, 3) - 1 + x95 = round(.95 * dimt, 3) - 1 + x5 = where(x5.lt.0, 0, x5) + x25 = where(x25.lt.0, 0, x25) + x50 = where(x50.lt.0, 0, x50) + x75 = where(x75.lt.0, 0, x75) + x95 = where(x95.lt.0, 0, x95) + MMM_rmse(iseas, ir, iin) = (sum(F ^ 2) / dimt) ^ 0.5 + MMM(iseas, ir, iin, :) = (/F(x5), F(x25), F(x50),\ + F(x75), F(x95), stddev(F)/) + delete(aa) + delete(F) + delete(dimt) + + ; if(isatt(diag_script_info, "fig939_markers_MMM")) then + ; markers_MMM(iin) = diag_script_info@fig939_markers_MMM(iin) + ; else + ; markers_MMM(iin) = scatters_def(iin) + ; end if + + ; markers_MMM(iin) = 0 + + if(isatt(diag_script_info, "fig939_names_MMM")) then + names_MMM(iin) = diag_script_info@fig939_names_MMM(iin) + else + names_MMM(iin) = diag_script_info@fig939_project_MMM(iin) + " " +\ + diag_script_info@fig939_experiment_MMM(iin) +\ + " " + diag_script_info@fig939_mip_MMM(iin) + end if + end do + if (.not.ismissing(all(indic_not_sela))) then + MMM(iseas, ir, dimsizes(diag_script_info@fig939_project_MMM):, 0) =\ + (/D(indic_not_sela)/) + end if + end if + delete(C) + delete(D) + end do + res = True ; plot mods desired + ; add * if first project root mean square error is larger than the second + region_label1 = region_label + colors_reg = new(dimsizes(region_label), "string") + do irg = 0, dimsizes(region_label) - 1 + if (dim_MMM.gt.1) then + if (MMM_rmse(iseas, irg, 0).gt.MMM_rmse(iseas, irg, 1)) then + region_label1(irg) = region_label(irg) + "*" + colors_reg(irg) = "red" + else + region_label1(irg) = region_label(irg) + colors_reg(irg) = "blue" + end if + else + colors_reg(irg) = "blue" + end if + end do + + ind_blue = ind(colors_reg.eq."blue") + ind_red = ind(colors_reg.eq."red") + res@ind_blue = ind_blue + res@ind_red = ind_red + res@tmXBLabels = region_label1 + res@tmXBLabelFontHeightF = 0.017 + res@tiMainString = "bias, " + long_name + \ + " ("+UNITS+"), " + season(iseas) + if(isatt(diag_script_info, "fig939_YMin")) then + res@trYMinF = diag_script_info@fig939_YMin + else + res@trYMinF = min(MMM) - min(MMM) / 5 + end if + + if (isatt(diag_script_info, "fig939_YMax")) then + res@trYMaxF = diag_script_info@fig939_YMax + else + res@trYMaxF = max(MMM) + max(MMM) / 5 + end if + res@tmXBLabelAngleF = 90. + res@vpHeightF = 0.5 + res@vpWidthF = 0.9 + ; res@gsnYRefLine=0.0 + ; res@gsnYRefLineColor="gray11" + ; res@gsnYRefLineDashPattern=1. + plot(iseas) = box_plot_cr(wks, ispan(1, dim_reg, 1),\ + MMM(iseas, :, 0, :), False, res, False) + if (isatt(diag_script_info, "fig939_vert_line_pos")) then + lines_x = diag_script_info@fig939_vert_line_pos + do ilin = 0, dimsizes(lines_x) - 1 + dres = True + dres@gsLineColor = "gray11" + dres@gsLineDashPattern = 2. + dum_lines(iseas, ilin) = gsn_add_polyline(wks, plot(iseas),\ + (/lines_x(ilin) + 0.5,\ + lines_x(ilin) + 0.5/),\ + (/min(MMM) - avg(MMM) / 10,\ + max(MMM) + \ + avg(MMM) / 10/),\ + dres) + end do + if (isatt(diag_script_info, "fig939_vert_line_label")) then + lab_x = diag_script_info@fig939_vert_line_label + + do itxt = 0, dimsizes(lab_x) - 1 + txres = True + txres@txFontHeightF = 0.02 + txres@txAngleF = 90. + txres@txJust = "BottomRight" + dum_txt(iseas, itxt) = gsn_add_text(wks, plot(iseas), lab_x(itxt),\ + lines_x(itxt) + 0.4,\ + min(MMM) - min(MMM) / 4,\ + txres) + end do + end if + end if + rres = True + rres@gsLineColor = "gray11" + rres@gsLineDashPattern = 1. + dum_ref(iseas) = gsn_add_polyline(wks, plot(iseas), (/0., 100./),\ + (/0., 0./), rres) + do iin = 1, dimsizes(diag_script_info@fig939_project_MMM) - 1 + mres = True ; marker mods desired + mres@gsMarkerIndex = scatters_def(iin) ; polymarker style + mres@gsMarkerSizeF = 0.008 * 26 / dim_reg + mres@gsMarkerThicknessF = 2. + mres@gsMarkerColor = "purple" ; polymarker color + dum1(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 0), mres) + mres@gsMarkerColor = "blue" ; polymarker color + dum2(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 1),\ + mres) + mres@gsMarkerColor = "green" ; polymarker color + dum3(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1), \ + MMM(iseas, :, iin, 2), \ + mres) + mres@gsMarkerColor = "orange" ; polymarker color + dum4(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 3),\ + mres) + mres@gsMarkerColor = "red" ; polymarker color + dum5(iseas, iin) = gsn_add_polymarker(wks, plot(iseas), \ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 4), mres) + end do + delete(ind_blue) + delete(ind_red) + delete(res@ind_blue) + delete(res@ind_red) + end do + + ; ******************single region output file************************** + + print(work_dir) + nc_filename_MMM = work_dir + "fig939_" + var0 + "_MMM.nc" + MMM@var = var0 + MMM@diag_script = "fig939" + MMM!0 = "season" + MMM!1 = "region" + MMM!2 = "line" + MMM!3 = "stat" + dsizes_x = dimsizes(MMM) + nline = dsizes_x(2) + MMM&line = new((/nline/), "string") ; (/"None", "None", "None"/) + MMM&season = season + MMM®ion = region_label + MMM&stat = (/"x5", "x25", "x50", "x75", "x95", "stddev"/) + nc_outfile = ncdf_write(MMM, nc_filename_MMM) + + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + n_p = dimsizes(plot) / 3 + if (mod(dimsizes(plot), 3) .ne. 0) then + n_p = n_p + 1 + end if + gsn_panel(wks, plot, (/3, n_p/), pan) + frame(wks) + res1 = True ; plot mods desired + res1@tmXTLabels = names_MMM + res1@tmXTValues = ispan(1, dimsizes(diag_script_info@fig939_project_MMM)\ + + 1, 1) + res1@vpHeightF = 0.5 + res1@vpWidthF = 0.5 + lg_y = new((/1, 6/), "float") + lg_y(0, 0:4) = (/5., 25., 50., 75., 95./) + plot_lg = box_plot_lg(wks_l, 1, lg_y, False, res1, False) + duml1 = new(dimsizes(project_MMM), "graphic") + duml2 = new(dimsizes(project_MMM), "graphic") + duml3 = new(dimsizes(project_MMM), "graphic") + duml4 = new(dimsizes(project_MMM), "graphic") + duml5 = new(dimsizes(project_MMM), "graphic") + do iin = 1, dimsizes(project_MMM) - 1 + mresl = True ; marker mods desired + mresl@gsMarkerIndex = scatters_def(iin) ; polymarker style + ; mresl@gsMarkerSizeF = 60./dim_reg ; polymarker size + mresl@gsMarkerSizeF = 0.025 * 26 / dim_reg + mresl@gsMarkerThicknessF = 3. + mresl@gsMarkerColor = "purple" ; polymarker color + duml1(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 0), mresl) + mresl@gsMarkerColor = "blue" ; polymarker color + duml2(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 1), mresl) + mresl@gsMarkerColor = "green" ; polymarker color + duml3(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 2), mresl) + mresl@gsMarkerColor = "orange" ; polymarker color + duml4(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 3), mresl) + mresl@gsMarkerColor = "red" ; polymarker color + duml5(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 4), mresl) + end do + draw(plot_lg) + delete(pan) + delete(n_p) + frame(wks_l) + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + map_r = gsn_csm_contour_map(wks_r, cell_fill2, mres_r) + + do ir = 0, dim_reg - 1 + txres@txFontColor = "black" + cregion_array = (/select_region_srex_poly(region_label(ir))/) + dum = gsn_add_text(wks_r, map_r, region_label(ir),\ + cregion_array(0), cregion_array(1), txres) + delete(cregion_array) + end do + draw(map_r) + frame(wks_r) +; info_output("wrote " + output_dir + output_filename, verbosity, 1) +; info_output(">>>>>>>> Leaving " + diag_script, verbosity, 4) + + ; ------------------------------------------------------------- + ; Add provenance + ; ------------------------------------------------------------- + + caption = "Seasonal- and annual mean biases of " + var0 + " over " + \ + "land in different regions" + + log_provenance(nc_filename_MMM, \ + wks@fullname, \ + caption, \ + (/"diff", "mean", "perc"/), \ + (/"reg"/), \ + "box", \ + (/"cionni_irene"/), \ + (/"flato13ipcc", "seneviratne12ipcc"/), \ + metadata_att_as_array(info0, "filename")) + +end diff --git a/esmvaltool/diag_scripts/regional_downscaling/Figure9.40.ncl b/esmvaltool/diag_scripts/regional_downscaling/Figure9.40.ncl new file mode 100644 index 0000000000..744e3d7b66 --- /dev/null +++ b/esmvaltool/diag_scripts/regional_downscaling/Figure9.40.ncl @@ -0,0 +1,830 @@ +; ########### ############################################################### +; # SEASONAL OR ANNUAL BIAS # +; ############################################################################# +; # Author: Irene Cionni(ENEA, Italy) # +; # CRESCENDO project +; ############################################################################# +; +; # Description: +; # * Create seasonal or annual bias box plots at selected regions +; # - Read regions +; # -create mask map using region poligons +; # - for all the models calculate the bias respect reference_dataset +; # - sort biases for each selected project&experiment&mip +; # - evaluate percentiles (5th 25th 50th 75th 95th) +; # - plot the first selected project&experiment&mip as box-and-whisker +; # - plot the others selected projects&experiment&mip as markers +; # - compare the root-mean-square error of first project&experiment&mip +; # with the second if exist labeled with red for the regions where +; # the first error is larger than the second. +; # +; # Required variable_info attributes (variable specific): +; # +; # * reference_dataset: reference dataset name +; # +; # Optional diag_script_info attributes +; # +; # *styleset, default "CMIP5" +; # * fig940_season : seasons i.e. (/"DJF","JJA","ANN"/), default "DJF" +; # * fig940_region_label :(/(/"Arctic_land","Arctic_sea",\ +; # "Antarctic_land",\ +; # "Antarctic_sea","Caribbean",\ +; # "WesternIndianOcean",\ +; # "NorthernIndianOcean","NorthernTropicalPacific",\ +; # "EquatorialTropicalPacific",\ +; # "SouthernTropicalPacific",\ +; # "World_land","World_sea","World"/) +; # these region are defined in Seneviratne et al., 2012: Appendix 3.A +; # Notes and technical details on Chapter 3 figures. +; # In: Managing the Risks of Extreme Events and Disasters to Advance +; # Climate Change Adaptation(IPCC). . +; # default "Arctic_land" +; # * fig940_MMM, default True +; # * fig940_project_MMM: projects to average, deafault "CMIP5" +; # * fig940_experiment_MMM: experiments to average, default "historical" +; # * fig940_mip_MMM: mip to average +; # * Dimensions of fig940_project_MMM, fig940_experiment_MMM and +; # fig940_mip_MMM must be the same i.e. +; # fig940_project_MMM=(/"CMIP5", "CMIP3"/) +; # fig940_experiment_MMM=(/"historical", "historical"/) +; # fig940_mip_MMM=(/"Amon", "Amon"/), default "Amon" +; # * fig940_names_MMM:names in legend i.e. (/"CMIP5","CMIP3"/) +; # default fig940_project_MMM +; # * Vertical lines divide groups of region +; # fig940_vert_line_pos +; # i.e. (/6,10,13,17,24,26/) +; # * labels of vertical lines +; # fig940_vert_line_label +; # e.g.(/"North America", "South America", "Europe", "Africa", +; # "Asia", "Australia"/) +; # * fig940_mode : True= cumulative mode +; # * fig940_YMin : minimum Y Axis +; # * fig940_YMax : maximum Y Axis +; # +; # Caveats: +; # This script requires NCL version 6.40 +; # +; # Comments: +; # Regions borders are polygons defined in function select_region_srex +; # in regional_function.ncl +; # +; # Modification history: +; # 20230110-weigel_katja: fixed calendar, calendar starting point needs to +; # including time: "months since 1-1-1 00:00:00" +; # and converting month number to time Axis +; # with -1.0 +; # 20221026-weigel_katja: header updated +; # 20221026-weigel_katja: fixed calendar, time_operations expects +; # "gregorian" instead of "Gregorian" +; # 20221026-weigel_katja: removed unused variable fig940_colors_MMM +; # 20221026-weigel_katja: removed unused variable refModel +; # (reference_dataset instead) +; # 20221024-weigel_katja: Figure9_40_regions fixed +; # 20220314-weigel_katja: header updated +; # +; # # +; ############################################################### +load "$diag_scripts/../interface_scripts/interface.ncl" + +load "$diag_scripts/shared/statistics.ncl" +load "$diag_scripts/shared/plot/aux_plotting.ncl" +load "$diag_scripts/shared/plot/style.ncl" +load "$diag_scripts/regional_downscaling/regional_function.ncl" + + +begin + enter_msg(DIAG_SCRIPT, "") + var0 = variable_info[0]@short_name + UNITS = variable_info[0]@units + info0 = select_metadata_by_name(input_file_info, var0) + dim_MOD1 = ListCount(info0) + names = metadata_att_as_array(info0, "dataset") + projects = metadata_att_as_array(info0, "project") + exps = metadata_att_as_array(info0, "exp") + ensembles = metadata_att_as_array(info0, "ensemble") + mips = metadata_att_as_array(info0, "mip") + y1 = metadata_att_as_array(info0, "start_year") + y2 = metadata_att_as_array(info0, "end_year") + long_name = variable_info[0]@long_name + if (isatt(variable_info[0], "reference_dataset")) then + refname = variable_info[0]@reference_dataset + do imod = 0, dimsizes(names) - 1 + if (names(imod) .eq. refname) then + idx_ref = imod + end if + end do + else + error_msg("f", DIAG_SCRIPT, "", "no reference dataset " + \ + "(variable_info[0]@reference_dataset) needs to be defined.") + end if + if(isatt(variable_info, "long_name")) then + LONG_NAME = variable_info@long_name + else + LONG_NAME = var0 + end if + + log_info("++++++++++++++++++++++++++++++++++++++++++") + log_info(DIAG_SCRIPT + " (var: " + var0 + ")") + log_info("++++++++++++++++++++++++++++++++++++++++++") + + ; Set default values for optional diag_script_info attributes + + set_default_att(diag_script_info, "fig940_region_label", "Arctic_land") + set_default_att(diag_script_info, "styleset", "CMIP5") + set_default_att(diag_script_info, "fig940_MMM", "True") + set_default_att(diag_script_info, "fig940_project_MMM", "CMIP5") + set_default_att(diag_script_info, "fig940_experiment_MMM", "historical") + set_default_att(diag_script_info, "fig940_mip_MMM", "Amon") + set_default_att(diag_script_info, "fig940_names_MMM", \ + diag_script_info@fig940_project_MMM) + set_default_att(diag_script_info, "fig940_season", "DJF") + + colors = project_style(info0, diag_script_info, "colors") + dashes = project_style(info0, diag_script_info, "dashes") + thicks = tofloat(project_style(info0, diag_script_info, "thicks")) + markers = project_style(info0, diag_script_info, "markers") + lin_mar_mod = new((/dimsizes(colors)/), "string") + lin_mar_mod = (/"Lines"/) + season = diag_script_info@fig940_season + mode = new(1, logical) + if(isatt(diag_script_info, "fig940_mode")) then + mode = True + else + mode = False + end if + region_label = tostring(diag_script_info@fig940_region_label) + dim_reg = dimsizes(region_label) + dim_seas = dimsizes(season) + flag_mod = where(projects.ne."OBS" .and.projects.ne."OBS6"\ + .and. projects.ne."obs4mips", 1, 0) + index_mod = ind(flag_mod.gt.0) + index_obs = ind(flag_mod.eq.0) + dim_MOD = dimsizes(index_mod) + dim_OBS = 0 + + if (.not.all(ismissing(index_obs))) then + dim_OBS = dimsizes(index_obs) + list_obs_mod = names(index_obs) + end if + ; make sure path for (mandatory) netcdf output exists + + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + +end +begin + dim_MMM = 1 + + project_MMM = diag_script_info@fig940_project_MMM + exp_MMM = diag_script_info@fig940_experiment_MMM + mip_MMM = diag_script_info@fig940_mip_MMM + if (diag_script_info@fig940_MMM.eq."True") + if (dimsizes(project_MMM).eq.dimsizes(exp_MMM).eq.dimsizes(mip_MMM)) then + dim_MMM = dimsizes(project_MMM) + indic_s = new((/dimsizes(project_MMM),\ + dimsizes(names)/), "integer") + indic_not_s = new((/dimsizes(project_MMM),\ + dimsizes(names)/), "integer") + do ik = 0, dimsizes(diag_script_info@fig940_project_MMM) - 1 + ii_s = ind((projects.eq.project_MMM(ik))\ + .and.(exps.eq.exp_MMM(ik))\ + .and.(mips.eq.mip_MMM(ik))) + indic_s(ik, :dimsizes(ii_s) - 1) = ii_s + delete(ii_s) + ii_not_s = ind((projects.ne.project_MMM(ik)).or.(exps.ne.exp_MMM(ik))\ + .or.(mips.ne.mip_MMM(ik))) + indic_not_s(ik, :dimsizes(ii_not_s) - 1) = ii_not_s + delete(ii_not_s) + end do + else + error_msg("f", diag_script, "", "diag_script_info@fig940_project_MMM" + \ + "diag_script_info@fig940_experiment_MMM and" + \ + " diag_script_info@fig940_experiment_MMM" + \ + " must have the same dimension") + end if + end if + + if (dimsizes(project_MMM).gt.1) then + indic_not_sela = get_unique_difference(indic_s, indic_not_s) + else + ndim = ndtooned(indic_not_s) + ise = ind(.not.ismissing(ndim)) + indic_not_sela = ndim(ise) + delete(ise) + delete(ndim) + end if + MMM = new((/dim_seas, dim_reg, dimsizes(project_MMM) +\ + dimsizes(indic_not_sela), 6/), "double") + names_MMM = new((/dimsizes(project_MMM)/), "string") + MMM_rmse = new((/dim_seas, dim_reg, dimsizes(project_MMM)/), "double") + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_40_" + var0) + wks_r = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_40_regions_" + var0) + wks_l = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_40_legend_" + var0) + + ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Amask = read_data(info0[idx_ref]) + lsdata = Amask(0, :, :) + a = addfile("$NCARG_ROOT/lib/ncarg/data/cdf/landsea.nc", "r") + lsdata1 = a->LSMASK + lsm = landsea_mask(lsdata1, lsdata&lat, lsdata&lon) + ; ***************************************************************** + + map_r = new(1, "graphic") + plot = new(dim_seas, "graphic") + dum_ref = new(dim_seas, "graphic") + dum1 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum2 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum3 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum4 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum5 = new((/dim_seas, dimsizes(project_MMM)/),\ + "graphic") + dum_lines = new((/dim_seas, 30/), "graphic") + dum_txt = new((/dim_seas, 30/), "graphic") + mres_r = True + mres_r@gsnDraw = False + mres_r@gsnFrame = False + mres_r@lbLabelBarOn = False + mres_r@cnLevelSelectionMode = "ManualLevels" + mres_r@cnMinLevelValF = 0. + mres_r@cnMaxLevelValF = 200.0 + ; mres_r@cnLevelSpacingF = 0.1 * 200.0/tofloat(dim_reg) + mres_r@cnLevelSpacingF = max((/5.0, 200.0/tofloat(dim_reg + 2.0)/)) + mres_r@cnInfoLabelOn = False + mres_r@cnLineLabelsOn = False + mres_r@cnFillOn = True + mres_r@cnFillOpacityF = 0.5 + cmap_r = read_colormap_file("GMT_wysiwygcont") + mres_r@cnFillPalette = cmap_r(::-1, :) + mres_r@mpFillOn = True + gsres = True + gsres@gsFillOpacityF = 0.7 + txres = True + txres@txFontHeightF = 0.012 + txres@txFont = 22 + txres@txJust = "CenterLeft" + + random_setallseed(36484749, 9494848) + unf = random_uniform(0, 1, (/dim_reg + 2/)) + ip = dim_pqsort(unf, 1) + + do iseas = 0, dim_seas - 1 + do ir = 0, dim_reg - 1 + + case1 = region_label(ir) + region_lab = str_get_field(case1, 1, "_") + region_ch = str_get_field(case1, 2, "_") + cell_fill = (/select_region_srex(region_lab, lsdata)/) + cell_fill!0 = "lat" + cell_fill!1 = "lon" + cell_fill&lat = lsdata&lat + cell_fill&lon = lsdata&lon + if(region_ch.eq."land") then + cell_fill = mask(cell_fill, lsm.eq.0, False) ; 0 = Ocean + cell_fill = mask(cell_fill, lsm.eq.2, False) ; 2 = Lake + ; cell_fill = mask(cell_fill,lsdata.eq.4,False) ; 4 = Ice Shelf + end if + if(region_ch.eq."sea") then + cell_fill = mask(cell_fill, lsm.eq.1, False) ; 1 = Land + cell_fill = mask(cell_fill, lsm.eq.3, False) ; 3 = Small Island + end if + if (iseas.eq.0) then + irc = (ip(ir + 1)) * 200.0/tofloat(dim_reg) + if (ir.eq.0) then + cell_fill2 = where(ismissing(cell_fill), -1., irc) + cell_fill2!0 = "lat" + cell_fill2!1 = "lon" + cell_fill2&lat = lsdata&lat + cell_fill2&lon = lsdata&lon + else + plot_on = True + if (region_label(ir).eq."World") then + plot_on = False + end if + if (region_label(ir).eq."World_land") then + plot_on = False + end if + if (region_label(ir).eq."World_sea") then + plot_on = False + end if + if (plot_on) then + cell_fill2 = where(ismissing(cell_fill), cell_fill2, irc) + end if + end if + end if + cell_fill = where(ismissing(cell_fill), -1., 1.) + mres_r@tiMainString = region_label(ir) + if (iseas.eq.0) then + mres_r@tiMainString = region_label(ir) + ; map(ir) = gsn_csm_contour_map(wks_r, cell_fill, mres) + end if + if (diag_script_info@fig940_MMM.eq."True") + indic_s = where(indic_s.eq.idx_ref, indic_s@_FillValue, indic_s) + indic_not_sel = where(indic_not_sela.eq.idx_ref,\ + indic_not_sela@_FillValue, indic_not_sela) + if(.not.ismissing(all(indic_not_sel))) then + indic_not_sel1 = indic_not_sel(ind(.not.ismissing(indic_not_sel))) + delete(indic_not_sel) + indic_not_sel = indic_not_sel1 + delete(indic_not_sel1) + end if + end if + D = new((/dim_MOD+1/), "double") + C = new((/dim_MOD/), "double") + models1 = new((/dim_MOD/), "string") + colors1 = new((/dim_MOD/), typeof(colors)) + dashes1 = new((/dim_MOD/), typeof(dashes)) + thicks1 = new((/dim_MOD/), typeof(thicks)) + markers1 = new((/dim_MOD/), typeof(markers)) + lin_mar_mod1 = new((/dim_MOD/), "string") + + A0 = read_data(info0[idx_ref]) + if (season(iseas).ne."ANN") then + if (mode) then + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + delete(time1) + Atmp3 = time_operations(A0, -1, -1, "extract", season(iseas), True) + date3 = cd_calendar(Atmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Atmp4 = Atmp3 + Atmp4 = (/Atmp3 * conform(Atmp3, weights3, 0)/) + Atmp1 = dim_sum_n_Wrap(Atmp4, 0) + delete(Atmp3) + delete(Atmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_yea + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp1 = time_operations(A0, -1, -1, "average", season(iseas), True) + end if + else + if (mode) then + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp3 = A0 + date3 = cd_calendar(Atmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Atmp4 = Atmp3 + Atmp4 = (/Atmp3 * conform(Atmp3, weights3, 0)/) + Atmp1 = dim_sum_n_Wrap(Atmp4, 0) + delete(Atmp3) + delete(Atmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + A0!0 = "time" + time1 = todouble(A0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(A0&time) + A0&time = time1 + Atmp1 = time_operations(A0, -1, -1, "average", "annualclim", True) + end if + end if + ; ******************mask region********************* + Atmp1 = mask(Atmp1, cell_fill.eq.-1, False) + ; ************************************************** + Atmp = area_operations(Atmp1, -90., 90., 0., 360., "average", True) + delete(A0) + A = Atmp + delete(Atmp) + delete(Atmp1) + jmod = 0 + do imod = 0, dim_MOD - 1 + if (imod .ne. idx_ref) then + B0 = read_data(info0[imod]) + if (season(iseas).ne."ANN") then + if (mode) then + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys = input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp3 = time_operations(B0, -1, -1, "extract",\ + season(iseas), True) + date3 = cd_calendar(Btmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Btmp4 = Btmp3 + Btmp4 = (/Btmp3 * conform(Btmp3, weights3, 0)/) + Btmp1 = dim_sum_n_Wrap(Btmp4, 0) + delete(Btmp3) + delete(Btmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys=input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp1 = time_operations(B0, -1, -1, "average",\ + season(iseas), True) + end if + else + if (mode) then + Btmp3 = B0 + Btmp3!0 = "time" + time1 = todouble(Btmp3&time - 1.0) + time1!0 = "time" + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(Btmp3&time) + Btmp3&time = time1 + date3 = cd_calendar(Btmp3&time, 0) + year3 = date3(:, 0) + month3 = date3(:, 1) + weights3 = days_in_month(toint(year3), toint(month3)) + Btmp4 = Btmp3 + Btmp4 = (/Btmp3 * conform(Btmp3, weights3, 0)/) + Btmp1 = dim_sum_n_Wrap(Btmp4, 0) + delete(Btmp3) + delete(Btmp4) + delete(date3) + delete(year3) + delete(month3) + delete(weights3) + else + B0!0 = "time" + time1 = todouble(B0&time - 1.0) + time1!0 = "time" + ; ys = input_file_info[idx_ref]@start_year + time1@units = "months since 1-1-1 00:00:00" + time1@calendar = "gregorian" + delete(B0&time) + B0&time = time1 + Btmp1 = time_operations(B0, -1, -1, "average", "annualclim",\ + True) + end if + end if + ; ******************mask region********************** + Btmp1 = mask(Btmp1, cell_fill.eq.-1, False) + ; ************************************************** + Btmp = area_operations(Btmp1, -90., 90., 0., 360., "average", True) + delete(B0) + B = Btmp + delete(Btmp) + delete(Btmp1) + ; -------------------------------------------------------- + ; Bias + if (mode) then + print("cumulative mode") + C(jmod) = (/ 100 * (avg(B) - avg(A)) / avg(A)/) + D(imod) = (/100 * (avg(B) - avg(A)) / avg(A)/) + UNITS = "%" + else + C(jmod) = (/avg(B) - avg(A)/) ; get diff values + D(imod) = (/avg(B) - avg(A)/) + end if + + if (UNITS.eq."K") then + UNITS = "~S~o~N~C" + else + if (mode) then + UNITS = "%" + else + UNITS = variable_info[0]@units + end if + end if + + delete(B) + colors1(jmod) = colors(imod) + dashes1(jmod) = dashes(imod) + thicks1(jmod) = thicks(imod) + markers1(jmod) = markers(imod) + models1(jmod) = names(imod) + lin_mar_mod1(jmod) = "Lines" + jmod = jmod + 1 + end if + end do ; imod + delete(A) + if (diag_script_info@fig940_MMM.eq."True") + colori_def = (/"red", "orange", "green", "blue", "purple"/) + scatters_def = (/0, 5, 16, 4, 7, 8, 12/) + do iin = 0, dimsizes(diag_script_info@fig940_project_MMM) - 1 + if (.not.all(ismissing(indic_s(iin, :)))) then + aa = indic_s(iin, ind(.not.ismissing(indic_s(iin, :)))) + end if + F = D(aa) + qsort(F) + dimt = dimsizes(F) + x5 = round(.05 * dimt, 3) - 1 + x25 = round(.25 * dimt, 3) - 1 + x50 = round(.50 * dimt, 3) - 1 + x75 = round(.75 * dimt, 3) - 1 + x95 = round(.95 * dimt, 3) - 1 + x5 = where(x5.lt.0, 0, x5) + x25 = where(x25.lt.0, 0, x25) + x50 = where(x50.lt.0, 0, x50) + x75 = where(x75.lt.0, 0, x75) + x95 = where(x95.lt.0, 0, x95) + MMM_rmse(iseas, ir, iin) = (sum(F ^ 2) / dimt) ^ 0.5 + MMM(iseas, ir, iin, :) = (/F(x5), F(x25), F(x50),\ + F(x75), F(x95), stddev(F)/) + delete(aa) + delete(F) + delete(dimt) + + if(isatt(diag_script_info, "fig940_names_MMM")) then + names_MMM(iin) = diag_script_info@fig940_names_MMM(iin) + else + names_MMM(iin) = diag_script_info@fig940_project_MMM(iin) + " " +\ + diag_script_info@fig940_experiment_MMM(iin) +\ + " " + diag_script_info@fig940_mip_MMM(iin) + end if + end do + if (.not.ismissing(all(indic_not_sela))) then + MMM(iseas, ir, dimsizes(diag_script_info@fig940_project_MMM):, 0) =\ + (/D(indic_not_sela)/) + end if + end if + delete(C) + delete(D) + end do + res = True ; plot mods desired + ; add * if first project root mean square error is larger than the second + region_label1 = region_label + colors_reg = new(dimsizes(region_label), "string") + do irg = 0, dimsizes(region_label) - 1 + if (dim_MMM.gt.1) then + if (MMM_rmse(iseas, irg, 0).gt.MMM_rmse(iseas, irg, 1)) then + region_label1(irg) = region_label(irg) + "*" + colors_reg(irg) = "red" + else + region_label1(irg) = region_label(irg) + colors_reg(irg) = "blue" + end if + else + colors_reg(irg) = "blue" + end if + end do + + ind_blue = ind(colors_reg.eq."blue") + ind_red = ind(colors_reg.eq."red") + res@ind_blue = ind_blue + res@ind_red = ind_red + res@tmXBLabels = region_label1 + res@tmXBLabelFontHeightF = 0.017 + res@tiMainString = "bias, " + long_name + \ + " ("+UNITS+"), " + season(iseas) + if(isatt(diag_script_info, "fig940_YMin")) then + res@trYMinF = diag_script_info@fig940_YMin + else + res@trYMinF = min(MMM) - min(MMM) / 5 + end if + + if (isatt(diag_script_info, "fig940_YMax")) then + res@trYMaxF = diag_script_info@fig940_YMax + else + res@trYMaxF = max(MMM) + max(MMM) / 5 + end if + res@tmXBLabelAngleF = 90. + res@vpHeightF = 0.5 + res@vpWidthF = 0.9 + plot(iseas) = box_plot_cr(wks, ispan(1, dim_reg, 1),\ + MMM(iseas, :, 0, :), False, res, False) + if (isatt(diag_script_info, "fig940_vert_line_pos")) then + lines_x = diag_script_info@fig940_vert_line_pos + do ilin = 0, dimsizes(lines_x) - 1 + dres = True + dres@gsLineColor = "gray11" + dres@gsLineDashPattern = 2. + dum_lines(iseas, ilin) = gsn_add_polyline(wks, plot(iseas),\ + (/lines_x(ilin) + 0.5,\ + lines_x(ilin) + 0.5/),\ + (/min(MMM) - avg(MMM) / 10,\ + max(MMM) + \ + avg(MMM) / 10/),\ + dres) + end do + if (isatt(diag_script_info, "fig940_vert_line_label")) then + lab_x = diag_script_info@fig940_vert_line_label + + do itxt = 0, dimsizes(lab_x) - 1 + txres = True + txres@txFontHeightF = 0.02 + txres@txAngleF = 90. + txres@txJust = "BottomRight" + dum_txt(iseas, itxt) = gsn_add_text(wks, plot(iseas), lab_x(itxt),\ + lines_x(itxt) + 0.4,\ + min(MMM) - min(MMM) / 4,\ + txres) + end do + end if + end if + rres = True + rres@gsLineColor = "gray11" + rres@gsLineDashPattern = 1. + dum_ref(iseas) = gsn_add_polyline(wks, plot(iseas), (/0., 100./),\ + (/0., 0./), rres) + do iin = 1, dimsizes(diag_script_info@fig940_project_MMM) - 1 + mres = True ; marker mods desired + mres@gsMarkerIndex = scatters_def(iin) ; polymarker style + mres@gsMarkerSizeF = 0.008 * 26 / dim_reg + mres@gsMarkerThicknessF = 2. + mres@gsMarkerColor = "purple" ; polymarker color + dum1(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 0), mres) + mres@gsMarkerColor = "blue" ; polymarker color + dum2(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 1),\ + mres) + mres@gsMarkerColor = "green" ; polymarker color + dum3(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1), \ + MMM(iseas, :, iin, 2), \ + mres) + mres@gsMarkerColor = "orange" ; polymarker color + dum4(iseas, iin) = gsn_add_polymarker(wks, plot(iseas),\ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 3),\ + mres) + mres@gsMarkerColor = "red" ; polymarker color + dum5(iseas, iin) = gsn_add_polymarker(wks, plot(iseas), \ + ispan(1, dim_reg, 1),\ + MMM(iseas, :, iin, 4), mres) + end do + delete(ind_blue) + delete(ind_red) + delete(res@ind_blue) + delete(res@ind_red) + end do + + ; ******************single region output file************************** + + nc_filename_MMM = work_dir + "fig940_" + var0 + "_MMM.nc" + MMM@var = var0 + MMM@diag_script = "fig940" + MMM!0 = "season" + MMM!1 = "region" + MMM!2 = "line" + MMM!3 = "stat" + dsizes_x = dimsizes(MMM) + nline = dsizes_x(2) + MMM&line = new((/nline/), "string") ; (/"None", "None", "None"/) + MMM&season = season + MMM®ion = region_label + MMM&stat = (/"x5", "x25", "x50", "x75", "x95", "stddev"/) + nc_outfile = ncdf_write(MMM, nc_filename_MMM) + + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + n_p = dimsizes(plot) / 3 + if (mod(dimsizes(plot), 3) .ne. 0) then + n_p = n_p + 1 + end if + gsn_panel(wks, plot, (/3, n_p/), pan) + frame(wks) + res1 = True ; plot mods desired + res1@tmXTLabels = names_MMM + res1@tmXTValues = ispan(1, dimsizes(diag_script_info@fig940_project_MMM)\ + + 1, 1) + res1@vpHeightF = 0.5 + res1@vpWidthF = 0.5 + lg_y = new((/1, 6/), "float") + lg_y(0, 0:4) = (/5., 25., 50., 75., 95./) + plot_lg = box_plot_lg(wks_l, 1, lg_y, False, res1, False) + duml1 = new(dimsizes(project_MMM), "graphic") + duml2 = new(dimsizes(project_MMM), "graphic") + duml3 = new(dimsizes(project_MMM), "graphic") + duml4 = new(dimsizes(project_MMM), "graphic") + duml5 = new(dimsizes(project_MMM), "graphic") + do iin = 1, dimsizes(project_MMM) - 1 + mresl = True ; marker mods desired + mresl@gsMarkerIndex = scatters_def(iin) ; polymarker style + ; mresl@gsMarkerSizeF = 60./dim_reg ; polymarker size + mresl@gsMarkerSizeF = 0.025 * 26 / dim_reg + mresl@gsMarkerThicknessF = 3. + mresl@gsMarkerColor = "purple" ; polymarker color + duml1(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 0), mresl) + mresl@gsMarkerColor = "blue" ; polymarker color + duml2(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 1), mresl) + mresl@gsMarkerColor = "green" ; polymarker color + duml3(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 2), mresl) + mresl@gsMarkerColor = "orange" ; polymarker color + duml4(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 3), mresl) + mresl@gsMarkerColor = "red" ; polymarker color + duml5(iin) = gsn_add_polymarker(wks_l, plot_lg, iin + 1, lg_y(0, 4), mresl) + end do + draw(plot_lg) + delete(pan) + delete(n_p) + frame(wks_l) + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + map_r = gsn_csm_contour_map(wks_r, cell_fill2, mres_r) + + do ir = 0, dim_reg - 1 + txres@txFontColor = "black" + region = region_label(ir) + add_r = 0.0 + add_y = 0.0 + plot_on = True + if (region_label(ir).eq."Arctic_land") then + region = "Arctic" + add_r = 5.0 + end if + if (region_label(ir).eq."Arctic_sea") then + region = "Arctic" + add_r = 60.0 + end if + if (region_label(ir).eq."Antarctic_land") then + region = "Antarctic" + add_r = 110.0 + end if + if (region_label(ir).eq."Antarctic_sea") then + region = "Antarctic" + add_y = 15.0 + end if + if (region_label(ir).eq."NorthernTropicalPacific") then + add_r = 10.0 + end if + if (region_label(ir).eq."World") then + plot_on = False + end if + if (region_label(ir).eq."World_land") then + plot_on = False + end if + if (region_label(ir).eq."World_sea") then + plot_on = False + end if + if (plot_on) then + cregion_array = (/select_region_srex_poly(region)/) + dum = gsn_add_text(wks_r, map_r, region_label(ir),\ + cregion_array(0) + add_r, \ + cregion_array(1) + add_y, txres) + delete(cregion_array) + end if + end do + draw(map_r) + frame(wks_r) + ; ------------------------------------------------------------- + ; Add provenance + ; ------------------------------------------------------------- + + caption = "Seasonal- and annual mean biases of " + var0 + " over " + \ + "land in different regions" + + log_provenance(nc_filename_MMM, \ + wks@fullname, \ + caption, \ + (/"diff", "mean", "perc"/), \ + (/"reg"/), \ + "box", \ + (/"cionni_irene"/), \ + (/"flato13ipcc"/), \ + metadata_att_as_array(info0, "filename")) + +end diff --git a/esmvaltool/diag_scripts/regional_downscaling/Figure9.41.ncl b/esmvaltool/diag_scripts/regional_downscaling/Figure9.41.ncl new file mode 100644 index 0000000000..6e714ab8a4 --- /dev/null +++ b/esmvaltool/diag_scripts/regional_downscaling/Figure9.41.ncl @@ -0,0 +1,286 @@ +; ############################################################################# +; ############################################################################# +; # Author: Irene Cionni (ENEA, Italy) # +; # ESMVal project +; ############################################################################# +; # * Creates plot ranked monthly data of observations vs models. # +; # 3 pages are created: +; # 1st page Centred (data are adjusted to get a zero mean in model data with +; # respect to the diagonal) +; # 2nd page Uncentred (data not adjusted) +; # 3th page Full models legend +; # +; # Required variable_info attributes (variable specific): +; # *Reference Dataset +; # variable_info[0]@reference_dataset +; # Optional diag_script_info attributes (diagnostics specific): +; # *Region Label +; # diag_script_info@fig941_region_label, default "MEDs" +; # *styleset, default "CMIP5" +; # +; #Optional diag_script_info attributes +; # # +; # # +; # Caveats: # +; # # +; # Modification history: +; # 20221026-weigel_katja: header updated +; # 20220314-weigel_katja: header updated +; ############################################################################# +; ############################################################################# +load "$diag_scripts/../interface_scripts/interface.ncl" +load "$diag_scripts/shared/statistics.ncl" +load "$diag_scripts/shared/plot/aux_plotting.ncl" +load "$diag_scripts/shared/plot/style.ncl" +load "$diag_scripts/regional_downscaling/regional_function.ncl" + +begin + enter_msg(DIAG_SCRIPT, "") + var0 = variable_info[0]@short_name + UNITS = variable_info[0]@units + info0 = select_metadata_by_name(input_file_info, var0) + dim_MOD1 = ListCount(info0) + names = metadata_att_as_array(info0, "dataset") + projects = metadata_att_as_array(info0, "project") + exps = metadata_att_as_array(info0, "exp") + ensembles = metadata_att_as_array(info0, "ensemble") + mips = metadata_att_as_array(info0, "mip") + y1 = metadata_att_as_array(info0, "start_year") + y2 = metadata_att_as_array(info0, "end_year") + long_name = variable_info[0]@long_name + if (isatt(variable_info[0], "reference_dataset")) then + refname = variable_info[0]@reference_dataset + do imod = 0, dimsizes(names) - 1 + if (names(imod) .eq. refname) then + idx_ref = imod + end if + end do + else + error_msg("f", DIAG_SCRIPT, "", "no reference dataset " + \ + "(variable_info[0]@reference_dataset) needs to be defined.") + end if + if(isatt(variable_info, "long_name")) then + LONG_NAME = variable_info@long_name + else + LONG_NAME = var0 + end if + + log_info("++++++++++++++++++++++++++++++++++++++++++") + log_info(DIAG_SCRIPT + " (var: " + var0 + ")") + log_info("++++++++++++++++++++++++++++++++++++++++++") + + ; Set default values for optional diag_script_info attributes + + set_default_att(diag_script_info, "fig941_region_label", "MEDs") + set_default_att(diag_script_info, "styleset", "CMIP5") + colors = project_style(info0, diag_script_info, "colors") + dashes = project_style(info0, diag_script_info, "dashes") + thicks = tofloat(project_style(info0, diag_script_info, "thicks")) + markers = project_style(info0, diag_script_info, "markers") + lin_mar_mod = new((/dimsizes(colors)/), "string") + lin_mar_mod = (/"Lines"/) + region_label = tostring(diag_script_info@fig941_region_label) + dim_reg = dimsizes(region_label) + flag_mod = where(projects.ne."OBS" .and.projects.ne."OBS6"\ + .and. projects.ne."obs4mips", 1, 0) + index_mod = ind(flag_mod.gt.0) + index_obs = ind(flag_mod.eq.0) + dim_MOD = dimsizes(index_mod) + dim_OBS = 0 + + if (.not.all(ismissing(index_obs))) then + dim_OBS = dimsizes(index_obs) + list_obs_mod = names(index_obs) + end if + ; make sure path for (mandatory) netcdf output exists + + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + +end +begin + work_dir = config_user_info@work_dir + "/" + ; Create work dir + system("mkdir -p " + work_dir) + wks = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_41_" + var0) + wks_r = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_41_raw_" + var0) + wks_l = get_wks("dummy_for_wks", DIAG_SCRIPT, "Figure9_41_legend_" + var0) + ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Amask = read_data(info0[idx_ref]) + lsdata = Amask(0, :, :) + ; ***************************************************************** + plot = new(dimsizes(region_label), "graphic") + plot1 = new(dimsizes(region_label), "graphic") + dum_diag = new(dimsizes(region_label), "graphic") + dum_diag1 = new(dimsizes(region_label), "graphic") + do ir = 0, dim_reg - 1 + case1 = region_label(ir) + cell_fill = (/select_region_srex(region_label(ir), lsdata)/) + cell_fill!0 = "lat" + cell_fill!1 = "lon" + cell_fill&lat = lsdata&lat + cell_fill&lon = lsdata&lon + cell_fill = where(ismissing(cell_fill), -1., 1.) + models1 = new((/dim_MOD/), "string") + colors1 = new((/dim_MOD/), typeof(colors)) + dashes1 = new((/dim_MOD/), typeof(dashes)) + thicks1 = new((/dim_MOD/), typeof(thicks)) + markers1 = new((/dim_MOD/), typeof(markers)) + lin_mar_mod1 = new((/dim_MOD/), "string") + A0 = read_data(info0[idx_ref]) + time = A0&time + Atmp1 = A0 + ; ******************mask region********************* + Atmp1 = (/ mask(A0, cell_fill.eq.-1, False)/) + ; ************************************************** + + Atmp = area_operations(Atmp1, -90., 90., 0., 360., "average", True) + delete(A0) + A = Atmp + delete(Atmp) + qsort(A) ; rank the observation in ascending order + + ; ----------------------------------------------------------- + ; netcdf output file + + nc_filename = work_dir + "fig941_" + var0 + "_" + \ + region_label(ir) + "_obs.nc" + A@var = var0 + A@diag_script = "fig941" + nc_outfile = ncdf_write(A, nc_filename) + + D = new((/dim_MOD, dimsizes(time)/), "double") + C = new((/dim_MOD, dimsizes(time)/), "double") + + jmod = 0 + do imod = 0, dim_MOD - 1 + if (imod .ne. idx_ref) then + B0 = read_data(info0[imod]) + B0&time = time + ; ******************mask region********************** + Btmp1 = B0 + Btmp1 = (/mask(B0, cell_fill.eq.-1, False)/) + ; ************************************************** + Btmp = area_operations(Btmp1, -90., 90., 0., 360., "average", True) + delete(B0) + B = Btmp + qsort(B) + delete(Btmp) + delete(Btmp1) + ; -------------------------------------------------------- + ; Bias + C(jmod, :) = B + D(jmod, :) = B - avg(B) + avg(A) + delete(B) + colors1(jmod) = colors(imod) + dashes1(jmod) = dashes(imod) + thicks1(jmod) = thicks(imod)+1 + markers1(jmod) = markers(imod) + models1(jmod) = names(imod) + lin_mar_mod1(jmod) = "Lines" + jmod = jmod + 1 + end if + end do ; imod + + UNITS = variable_info[0]@units + if (UNITS.eq."K") then + UNITS = "~S~o~N~C" + C = C - 273.15 + D = D - 273.15 + A = A - 273.15 + end if + + ; ----------------------------------------------------------- + ; netcdf output file + nc_filename = work_dir + "fig941_" + var0 + "_" \ + + region_label(ir) + "_models.nc" + D!0 = "models" + D!1 = "time" + D&models = models1 + D&time = A&time + D@var = var0 + D@diag_script = "fig941" + D@existing = "overwrite" + nc_outfile = ncdf_write(D, nc_filename) + + ; ----------------------------------------------------------- + ; plots of time(x) vs. latitude(y) + min1 = min(C) + max1 = max(C) + res = True + res@gsnDraw = False ; don't draw + res@gsnFrame = False ; don't advance frame + ; res@tiMainString =variable_info@long_name + res@tiYAxisString = "RAW MODELS" + res@tiXAxisString = "OBS" + res@trYMinF = min1 + res@trYMaxF = max1 + res@trXMinF = min1 + res@trXMaxF = max1 + res@xyLineColors = colors1 ; line colors + res@xyLineThicknesses = thicks1 ; line thicknesses + res@xyDashPatterns = dashes1 ; line patterns + res@gsnLeftString = case1 + res@gsnRightString = UNITS + res@vpHeightF = 0.4 + res@vpWidthF = 0.8 + res@tiMainFontHeightF = 0.02 + res@txFontHeightF = 0.02 + res@tmXBLabelFontHeightF = 0.02 + res@tmYLLabelFontHeightF = 0.02 + ; res@tfPolyDrawOrder = "Draw" + plot(ir) = gsn_csm_xy(wks_r, A, C, res) + lnres = True + dum_diag(ir) = gsn_add_polyline(wks_r, plot(ir), (/min1, max1/), \ + (/min1, max1/), lnres) + res@tiYAxisString = "MODELS" + res@tiXAxisString = "OBS" + plot1(ir) = gsn_csm_xy(wks, A, D, res) + dum_diag1(ir) = gsn_add_polyline(wks, plot1(ir), (/min1, max1/), \ + (/min1, max1/), lnres) + delete(C) + delete(A) + delete(D) + end do + + ; Panel plots + pan = True + pan@gsnMaximize = True + pan@gsnFrame = False + pan@gsnPaperOrientation = "portrait" + n_p = dimsizes(plot) / 3 + if (mod(dimsizes(plot), 3) .ne. 0) then + n_p = n_p + 1 + end if + pan@txString = "Centered " + LONG_NAME + " bias vs. " + \ + names(idx_ref) + gsn_panel(wks, plot1, (/3, n_p/), pan) + + ; ***********add legend**************************** + frame(wks) + pan@txString = "Uncentered " + LONG_NAME + " bias vs. " + \ + names(idx_ref) + gsn_panel(wks_r, plot, (/3, n_p/), pan) + frame(wks_r) + add_legenda_page(wks_l, models1, colors1, dashes1, lin_mar_mod1,\ + thicks1, "0.99") + frame(wks_l) + + ; ------------------------------------------------------------- + ; Add provenance + ; ------------------------------------------------------------- + + caption = "Modelled versus observed monthly mean temperature" + + log_provenance(nc_filename, \ + wks@fullname, \ + caption, \ + (/"corr"/), \ + (/"reg"/), \ + "line", \ + (/"cionni_irene"/), \ + (/"flato13ipcc"/), \ + metadata_att_as_array(info0, "filename")) + +end diff --git a/esmvaltool/diag_scripts/regional_downscaling/regional_function.ncl b/esmvaltool/diag_scripts/regional_downscaling/regional_function.ncl new file mode 100644 index 0000000000..c2a00ad2fd --- /dev/null +++ b/esmvaltool/diag_scripts/regional_downscaling/regional_function.ncl @@ -0,0 +1,1428 @@ +; ************************************************************************** +; This library contains functions in support of regional_downscaling +; the functions included are: +; * function: +; select_region1(region:string) +; * function: +; box_plot_cr(wks:graphic, x[* ]:numeric, y[* ][* ]:numeric, \ +; boxOpts:logical, plotres:logical, lineres:logical) +; * function: +; * box_plot_lg(wks:graphic, x[* ]:numeric, y[* ][* ]:numeric, \ +; boxOpts:logical, plotres:logical, lineres:logical) +; * function: +; select_region_938(region:string, lsdata:numeric) +; * function +; select_region_srex_poly(region:string) +; * function: +; select_region_srex(region:string, lsdata:numeric) +; * function: +; get_unique_intersection( a, b ) +; * function: +; get_unique_difference( a, b ) +; * procedure: +; add_legenda_page(wks, MODEL:string, colors:string, dashs:numeric,\ +; scatters:string, ticknesses:numeric, place:string) +; # Caveats: # +; # # +; # Modification history: +; 20220314-weigel_katja: get_unique_intersection and get_unique_difference +; (ESMValTool v1 functions to allow labelling of +; multiple projects) +; 2021????-weigel_katja: replaces select_region_939 and select_region_940 +; with select_region_srex, added select_region_srex_poly +; ************************************************************************** +undef("select_region1") +function select_region1(region:string) +; +; Arguments +; region: a string specifying the region to be selected. +; +; Return value +; An array with the region boundary as (latmin, latmax, lonmin, lonmax) +; with the name of the region as a string attribute @name. +; +; Description +; Translates a region specification into lat/lon boundaries and a region +; name as an attribute. +; +; Modification history +; 20141205 -A_gott_kl: adjusted names to Righi et al. (2015). +; 20140410 -A_fran_fr: extended to midlat, equatorial and polar regions. +; 20140129 -A_fran_fr: written. +; +local funcname, scriptname, verbosity, region +begin + + funcname = "select_region1" + scriptname = "diag_scripts/lib/ncl/latlon.ncl" + verbosity = stringtointeger(getenv("ESMValTool_verbosity")) + ; enter_msg(scriptname, funcname, 10) + + if (region.eq."Global") then + region_array = (/ -90., 90., 0., 360./) + region_array@name = "Glob" + return(region_array) + end if + if (region.eq."Tropics") then + region_array = (/ -20., 20., 0., 360./) + region_array@name = "Trop" + return(region_array) + end if + if (region.eq."NH extratropics") then + region_array = (/20., 90., 0., 360./) + region_array@name = "NHext" + return(region_array) + end if + if (region.eq."SH extratropics") then + region_array = (/ -90., -20., 0., 360./) + region_array@name = "SHext" + return(region_array) + end if + if (region.eq."NH equatorial") then + region_array = (/0., 30., 0., 360./) + region_array@name = "NHtrop" + return(region_array) + end if + if (region.eq."SH equatorial") then + region_array = (/ -30., 0., 0., 360./) + region_array@name = "SHtrop" + return(region_array) + end if + if (region.eq."Northern Hemisphere") then + region_array = (/20., 90., 0., 360./) + region_array@name = "NH" + return(region_array) + end if + if (region.eq."Southern Hemisphere") then + region_array = (/ -90., -20., 0., 360./) + region_array@name = "SH" + return(region_array) + end if + if (region.eq."NH midlatitudes") then + region_array = (/35., 60., 0., 360./) + region_array@name = "NHmidlat" + return(region_array) + end if + if (region.eq."SH midlatitudes") then + region_array = (/ -60., -35., 0., 360./) + region_array@name = "SHmidlat" + return(region_array) + end if + if (region.eq."Arctic") then + region_array = (/60., 90., 0., 360./) + region_array@name = "NHpolar" + return(region_array) + end if + if (region.eq."Antarctic") then + region_array = (/ -90., -60., 0., 360./) + region_array@name = "SHpolar" + return(region_array) + end if + if (region.eq."Equatorial") then + region_array = (/ -10., 10., 0., 360./) + region_array@name = "EQ" + return(region_array) + end if + ; Region latitudes and longitudes following Figure 9.38 Chapter 9 AR5 + ; (as Comunication from Chou Sin Chan) + ; 1 - ENA Eastern North America + ; Lon = 250 to 350 + ; Lat = 30 to 67 + + if (region.eq."ENA") then + region_array = (/30., 67., 250., 350./) + region_array@name = "ENA" + return(region_array) + end if + ; 2 - WNA Western North America + ; Lon = 190 to 250 + ; Lat = 30 to 67 + if (region.eq."WNA") then + region_array = (/30., 67., 190., 250./) + region_array@name = "WNA" + return(region_array) + end if + ; 3 - CAM Central America + ; Lon = 240 to 300 + ; Lat = 10 to 30 + if (region.eq."CAM") then + region_array = (/10., 30., 240., 300./) + region_array@name = "CAM" + return(region_array) + end if + ; 4 - AMZ Amazon + ; Lon = 277 to 329 + ; Lat = -20 to 10 + if (region.eq."TSA") then + region_array = (/ -20., 10., 277., 329./) + region_array@name = "TSA" + return(region_array) + end if + ; 5 - SSA Southern South America + ; Lon = 277 to 329 + ; Lat = -56 to -20 + if (region.eq."SSA") then + region_array = (/ -56., -20., 277., 329./) + region_array@name = "SSA" + return(region_array) + end if + ; 6 - EUM Europe and Mediterranean + ; Lon = 350 to 40 + ; Lat = 30 to 67 + if (region.eq."EUM") then + region_array = (/30., 67., 350., 40./) + region_array@name = "ENA" + return(region_array) + end if + ; 7 - NAF Northern Africa + ; Lon = 342 to 65 + ; Lat = 16 to 30 + if (region.eq."NAF") then + region_array = (/16., 30., 342., 65./) + region_array@name = "NAF" + return(region_array) + end if + ; 8 - SAF South Africa + ; Lon = 10 to 51 + ; Lat = -35 to -10 + if (region.eq."SAF") then + region_array = (/ -35., -10., 10., 51./) + region_array@name = "SAF" + return(region_array) + end if + ; 9 - CAF central Africa + ; Lon = 342 to 60 + ; Lat = -10 to 16 + if (region.eq."CAF") then + region_array = (/ -10., 16., 342., 60./) + region_array@name = "CAF" + return(region_array) + end if + ; 10 - NAS Nothern Asia + ; Lon = 40 to 167 + ; Lat = 48 to 67 + if (region.eq."NAS") then + region_array = (/48., 67., 40., 167./) + region_array@name = "NAS" + return(region_array) + end if + ; 11 - EAS Eastern Asia + ; Lon = 100 to 167 + ; Lat = 20 to 48 + if (region.eq."EAS") then + region_array = (/20., 48., 100., 167./) + region_array@name = "EAS" + return(region_array) + end if + ; 12 - CAS Central Asia + ; Lon = 40 to 100 + ; Lat = 30 to 48 + if (region.eq."CAS") then + region_array = (/30., 48., 40., 100./) + region_array@name = "CAS" + return(region_array) + end if + ; 13 - SEA Southeast Asia + ; Lon = 95 to 151 + ; Lat = -11 to 20 + if (region.eq."SEA") then + region_array = (/ - 11., 20., 95., 151./) + region_array@name = "SEA" + return(region_array) + end if + ; 14 - SAS South Asia + ; Lon = 65 to 95 + ; Lat = 5 to 30 + if (region.eq."SAS") then + region_array = (/5., 30., 65., 95./) + region_array@name = "SAS" + return(region_array) + end if + ; 15 - AUS Oceania + ; Lon = 112 to 180 + ; Lat = -48 to -11 + if (region.eq."AUS") then + region_array = (/ - 48., - 11., 112., 180./) + region_array@name = "AUS" + return(region_array) + end if + if (region.eq."Arctic") then + region_array = (/67.5, 90., 0., 360./) + region_array@name = "Arctic" + return(region_array) + end if +end +; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +undef("box_plot_cr") +function box_plot_cr(wks:graphic, x[*]:numeric, y[*][*]:numeric, \ + boxOpts:logical, plotres:logical, lineres:logical) + +begin + dimquery = dimsizes(y) + numbox = dimquery(0) + boxWidths = new((/numbox/), float) + if (numbox.ne.dimsizes(x)) then + print("boxplot: Fatal: X must be one - dimensional and both X and Y" + \ + "have the same rightmost dimension") + exit + end if + if (any(ismissing(x))) then + print("boxplot: Fatal: X array cannot contain missing data, exiting") + exit + end if +; Developing x -axis + xAxis = new(numbox + 2, typeof(x)) + xAxis(1:numbox) = x + if (numbox.ne.1) then + dx = x(1) - x(0) + xAxis(0) = x(0) - dx + xAxis(numbox + 1) = x(numbox - 1) + dx + else + dx = 1 + xAxis(0) = x - dx + xAxis(2) = x + dx + end if + if (boxOpts) then + if (isatt(boxOpts, "boxWidth")) then + if (dimsizes(boxOpts@boxWidth).ne.1.and.dimsizes(boxOpts@boxWidth)\ + .ne.numbox) then + print("boxplot: Number of input box widths must either equal 1 or" +\ + "the number of boxes (" + numbox + "). Using first specified" +\ + "box width only.") + boxWidths(:) = boxOpts@boxWidth(0) + else + boxWidths = boxOpts@boxWidth + end if + else + boxWidths(:) = dx * .4 + end if + else + boxWidths(:) = dx * .4 + end if + labarr = new(numbox + 2, "string") ; Prepare actual X -axis labels... + labarr(0) = "" + labarr(numbox + 1) = "" + labarr(1:numbox) = xAxis(1:numbox) + + ; Whether to maximize plot in frame. + maximize = get_res_value(plotres, "gsnMaximize", False) + + if (plotres) then + ; print("Plot resources detected, accepting") + fsatts = getvaratts(plotres) + do ty = 0, dimsizes(fsatts) - 1 + if (fsatts(ty).eq."tmXBLabels") then ; XBLabels + if (dimsizes(plotres@tmXBLabels).ne.numbox) then + print("boxplot: Fatal:Number of XB Labels does not match number" + \ + "of boxes, exiting") + exit + else + labarr(1:numbox) = plotres@$fsatts(ty)$ + end if + xblab = plotres@tmXBLabels + delete(plotres@tmXBLabels) ; Delete so tmXBLabels is not used + end if ; atts are assigned below... + end do + delete(fsatts) + end if + ind_blue = plotres@ind_blue + ind_red = plotres@ind_red + ind_blue = ind_blue + 1 + ind_red = ind_red + 1 + plot = create "plot" logLinPlotClass wks + "trYMinF" : min(y) - 2 + "trYMaxF" : max(y) + 2 + "trXMinF" : min(xAxis) + "trXMaxF" : max(xAxis) + "pmTickMarkDisplayMode" : "Always" + "tmXBMode" : "Explicit" + "tmXBValues" : xAxis(ind_blue) + "tmXBLabels" : labarr(ind_blue) + "tmXBLabelFontHeightF" : 0.014 + "tmXBLabelAngleF" : 90. + "tmXBLabelJust" : "TopRight" + "tmXBLabelFontColor" : "blue" + "tmYROn" : False + "tmXTOn" : False + "tmYRBorderOn" : True + "tmXTBorderOn" : True + "pmTitleDisplayMode": "Always" + "tiMainOn" : True + "tiMainString" : "" + end create + if (.not.all(ismissing(plotres@ind_red))) then + plot1 = create "plot" logLinPlotClass wks + "trYMinF" : min(y) - 2 + "trYMaxF" : max(y) + 2 + "trXMinF" : min(xAxis) + "trXMaxF" : max(xAxis) + "pmTickMarkDisplayMode" : "Always" + "tmXBMode" : "Explicit" + "tmXBValues" : xAxis(ind_red) + "tmXBLabels" : labarr(ind_red) + "tmXBLabelFontHeightF" : 0.0105 + "tmXBLabelAngleF" : 90. + "tmXBLabelFontColor" : "red" + "tmXBLabelJust" : "TopRight" + "tmYROn" : False + "tmXTOn" : False + "tmYRBorderOn" : True + "tmXTBorderOn" : True + "pmTitleDisplayMode": "Always" ; allow titles + "tiMainOn" : True + "tiMainString" : "" + end create + overlay(plot, plot1) + end if + + if (plotres) then + attsetvalues(plot, plotres) + end if + + polyres = True ; Set up defaults + polyres@gsLineColor = "black" ; color of lines + polyres@gsLineThicknessF = 1.5 ; thickness of lines + polyres@gsLineDashPattern = 0 + if (lineres) then + fsatts = getvaratts(lineres) + do ty = 0, dimsizes(fsatts) - 1 + polyres@$fsatts(ty)$ = lineres@$fsatts(ty)$ + end do + end if + + if (boxOpts) then + if (isatt(boxOpts, "boxColors")) then + boxcolor = boxOpts@boxColors + if (dimsizes(boxcolor).eq.1.or.dimsizes(boxcolor).ne.numbox) then + if (dimsizes(boxcolor).ne.numbox) then + print("boxplot: warning: Number of input colors must either " + \ + "equal 1 or the number of boxes (" + numbox + ")." + \ + "Using first specified color only.") + end if + polyres@gsLineColor = boxcolor(0) + cflag = 1 + else + cflag = 2 + end if + else + cflag = 1 + end if + else + cflag = 1 + end if + + dum = new((/numbox, 9/), graphic) + do gg = 0, numbox - 1 + ff = xAxis(gg + 1) + if (cflag.eq.2) then + polyres@gsLineColor = boxcolor(gg) + end if + yy = (/y(gg, 4), y(gg, 4)/) + xx = (/(ff - (boxWidths(gg) / 8.)), (ff + (boxWidths(gg) / 8.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 0) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 3), y(gg, 4)/) + xx = (/ff, ff/) + polyres@gsLineDashPattern = 0 + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 1) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + polyres@gsLineDashPattern = 0 + + yy = (/y(gg, 3), y(gg, 3)/) + xx = (/(ff - (boxWidths(gg) / 2.)), (ff + (boxWidths(gg) / 2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 2) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 3)/) + xx = (/(ff - (boxWidths(gg) / 2.)), (ff - (boxWidths(gg) / 2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 3) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 2), y(gg, 2)/) + xx = (/(ff - (boxWidths(gg) / 2.)), (ff + (boxWidths(gg) / 2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 4) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 3)/) + xx = (/(ff + (boxWidths(gg) / 2.)), (ff + (boxWidths(gg) / 2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 5) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 1)/) + xx = (/(ff - (boxWidths(gg) / 2.)), (ff + (boxWidths(gg) / 2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 6) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 0), y(gg, 1)/) + xx = (/ff, ff/) + polyres@gsLineDashPattern = 0 + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 7) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + polyres@gsLineDashPattern = 0 + + yy = (/y(gg, 0), y(gg, 0)/) + xx = (/(ff - (boxWidths(gg) / 8.)), (ff + (boxWidths(gg) / 8.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 8) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + end do + + dumname = unique_string("dum") + plot@$dumname$ = dum + if (isvar("xblab").eq."True") then + plotres@tmXBLabels = xblab ; reassign XBLabels for possible future plots + end if + if (maximize) then + mres = True + mres@gsnDraw = False + mres@gsnFrame = False + maximize_output(wks, mres) + end if + return(plot) +end +; ------------------------------------- +; Adam Phillips +; +undef("box_plot_lg") +function box_plot_lg(wks:graphic, x[*]:numeric, y[*][*]:numeric, \ + boxOpts:logical, plotres:logical, lineres:logical) +begin + dimquery = dimsizes(y) + numbox = dimquery(0) + boxWidths = new((/numbox/), float) + if (numbox.ne.dimsizes(x)) then + print("boxplot: Fatal: X must be one -dimensional and both X and Y " + \ + "must have the same rightmost dimension") + exit + end if + if (any(ismissing(x))) then + print("boxplot: Fatal: X array cannot contain missing data, exiting") + exit + end if + + ; Developing x -axis + xAxis = new(numbox + 2, typeof(x)) + xAxis(1:numbox) = x + if (numbox.ne.1) then + dx = x(1) - x(0) + xAxis(0) = x(0) - dx + xAxis(numbox + 1) = x(numbox - 1) + dx + else + dx = 1 + xAxis(0) = x - dx + xAxis(2) = x + dx + end if + + if (boxOpts) then + if (isatt(boxOpts, "boxWidth")) then + if (dimsizes(boxOpts@boxWidth).ne.1.and.(dimsizes(boxOpts@boxWidth).ne.\ + numbox)) then + print("boxplot: Number of input box widths must either equal 1 " + \ + "or the number of boxes (" + numbox + "). Using first " + \ + "specified box width only.") + boxWidths(:) = boxOpts@boxWidth(0) + else + boxWidths = boxOpts@boxWidth + end if + else + boxWidths(:) = dx * .4 + end if + else + boxWidths(:) = dx * .4 + end if + + labarr = new(numbox + 2, "string") + labarr(0) = "" + labarr(numbox + 1) = "" + labarr(1:numbox) = xAxis(1:numbox) + +; Whether to maximize plot in frame. + maximize = get_res_value(plotres, "gsnMaximize", False) + + if (plotres) then + print("Plot resources detected, accepting") + fsatts = getvaratts(plotres) + do ty = 0, dimsizes(fsatts) - 1 + if (fsatts(ty).eq."tmXTLabels") then + print(plotres@tmXTLabels) + if (dimsizes(plotres@tmXTLabels).ne.numbox) then + delete(labarr) + labarr = new(dimsizes(plotres@tmXTLabels) + 2, "string") + labarr(0) = "" + labarr(dimsizes(plotres@tmXTLabels) + 1) = "" + labarr(1:dimsizes(plotres@tmXTLabels)) = plotres@$fsatts(ty)$ + else + labarr(1:numbox) = plotres@$fsatts(ty)$ + end if + xblab = plotres@tmXTLabels + delete(plotres@tmXTLabels) + end if + end do + delete(fsatts) + end if + plot = create "plot" logLinPlotClass wks + "trYMinF" : - 25 + "trYMaxF" : 125 + "trXMinF" : 0.5 + "trXMaxF" : dimsizes(labarr) + 0.5 + "pmTickMarkDisplayMode" : "Always" + "tmXTMode" : "Explicit" + "tmXTValues" : ispan(0, dimsizes(labarr) - 2, 1) + "tmXTLabels" : labarr(1:) + "tmYLMode" : "Explicit" + "tmYLValues" : (/5, 25, 50, 75, 95/) + "tmYLLabels" : (/"5%", "25%", "50%", "75%", "95%"/) + "tmXTLabelFontColor" : "black" + "tmYLOn" : True + "tmXBOn" : False + "tmXTOn" : True + "tmXBLabelsOn": False + "tmXTLabelsOn": True + "tmXTMinorOn" :False + "tmXBMinorOn" :False + "tmYLMinorOn" :False + "tmXUseBottom": False + "tmYRBorderOn" : False + "tmXTBorderOn" : False + "tmYLBorderOn" : False + "tmXBBorderOn" : False + "tmXTMajorLineColor" : "Transparent" + "tmYLMajorLineColor" : "Transparent" + "tmYLLabelFontHeightF" : 0.02 + "tmXTLabelFontHeightF" : 0.02 + "pmTitleDisplayMode": "Always" + "tiMainOn" : True + "tiMainString" : "" + end create + + if (plotres) then + attsetvalues(plot, plotres) + end if + polyres = True + polyres@gsLineColor = "black" + polyres@gsLineThicknessF = 3. + polyres@gsLineDashPattern = 0 + if (lineres) then + fsatts = getvaratts(lineres) + do ty = 0, dimsizes(fsatts) - 1 + polyres@$fsatts(ty)$ = lineres@$fsatts(ty)$ + end do + end if + + if (boxOpts) then + if (isatt(boxOpts, "boxColors")) then + boxcolor = boxOpts@boxColors + if (dimsizes(boxcolor).eq.1.or.dimsizes(boxcolor).ne.numbox) then + if (dimsizes(boxcolor).ne.numbox) then + print("boxplot: warning: Number of input colors must either" + \ + "equal 1 or the number of boxes (" + numbox + ")." + \ + "Using first specified color only.") + end if + polyres@gsLineColor = boxcolor(0) + cflag = 1 + else + cflag = 2 + end if + else + cflag = 1 + end if + else + cflag = 1 + end if + dum = new((/numbox, 9/), graphic) + do gg = 0, numbox - 1 + ff = xAxis(gg + 1) + if (cflag.eq.2) then + polyres@gsLineColor = boxcolor(gg) + end if + yy = (/y(gg, 4), y(gg, 4)/) + xx = (/(ff - (boxWidths(gg)/8.)), (ff + (boxWidths(gg)/8.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 0) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 3), y(gg, 4)/) + xx = (/ff, ff/) + polyres@gsLineDashPattern = 0 + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 1) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + polyres@gsLineDashPattern = 0 + + yy = (/y(gg, 3), y(gg, 3)/) + xx = (/(ff - (boxWidths(gg)/2.)), (ff + (boxWidths(gg)/2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 2) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 3)/) + xx = (/(ff - (boxWidths(gg)/2.)), (ff - (boxWidths(gg)/2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 3) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 2), y(gg, 2)/) + xx = (/(ff - (boxWidths(gg)/2.)), (ff + (boxWidths(gg)/2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 4) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 3)/) + xx = (/(ff + (boxWidths(gg)/2.)), (ff + (boxWidths(gg)/2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 5) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 1), y(gg, 1)/) + xx = (/(ff - (boxWidths(gg)/2.)), (ff + (boxWidths(gg)/2.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 6) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + + yy = (/y(gg, 0), y(gg, 1)/) + xx = (/ff, ff/) + polyres@gsLineDashPattern = 0 + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 7) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + polyres@gsLineDashPattern = 0 + + yy = (/y(gg, 0), y(gg, 0)/) + xx = (/(ff - (boxWidths(gg)/8.)), (ff + (boxWidths(gg)/8.))/) + if (.not.(any(ismissing(xx).or.ismissing(yy)))) then + dum(gg, 8) = gsn_add_polyline(wks, plot, xx, yy, polyres) + end if + end do + + dumname = unique_string("dum") + plot@$dumname$ = dum + if (isvar("xblab").eq."True") then + ; plotres@tmXBLabels = + plotres@tmXBLabels = xblab + end if + if (maximize) then + mres = True + mres@gsnDraw = False + mres@gsnFrame = False + maximize_output(wks, mres) + end if + return(plot) +end +; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +; ##################################################################### +undef("select_region_938") +function select_region_938(region:string, lsdata:numeric) +; Arguments +; region: a string specifying the region to be selected. +; +; Return value +; An array with the region boundary as (lon1, lat1, lon2,\ +; lat2, lon3, lat3, lon4, lat4 ect) based on the borders +; given through select_region1 +; with the name of the region as a string attribute @name. +; +; Description +; Translates a region specification into lat/lon boundaries and a region +; name as an attribute for non SREX regions +; +; Modification history +begin + + funcname = "select_region_938" + scriptname = "diag_scripts/lib/ncl/latlon.ncl" + verbosity = stringtointeger(getenv("ESMValTool_verbosity")) + + region_array_hlp = select_region1(region) + region_array = (/(/region_array_hlp(2), region_array_hlp(0)/), \ + (/region_array_hlp(2), region_array_hlp(1)/), \ + (/region_array_hlp(3), region_array_hlp(1)/), \ + (/region_array_hlp(3), region_array_hlp(0)/)/) + + lat = lsdata&lat + lon = lsdata&lon + inout = new((/dimsizes(lsdata)/), "float") + in = 0 + inn = 0 + do ilat = 0, dimsizes(lat) - 1 + do ilon = 0, dimsizes(lon) - 1 + if (dimsizes(region_array(:, 0)).le.2) then + if ((lat(ilat).ge.region_array(0, 1)).and.(lat(ilat)\ + .lt.region_array(1, 1)).and.(lon(ilon).ge.region_array(0, 0))\ + .and.(lon(ilon).lt.region_array(1, 0))) then + inou = "True" + if (inou.eq."True") then + inout(ilat, ilon) = 1. + in = in + 1 + end if + delete(inou) + inn = inn + 1 + end if + else + inou = gc_inout(lat(ilat), lon(ilon), region_array(:, 1),\ + region_array(:, 0)) + + if(inou.eq."True") then + inout(ilat, ilon) = 1. + in = in + 1 + delete(inou) + end if + inn = inn + 1 + end if + end do + end do + + return(inout) +end +; °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° +; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +; ##################################################################### +undef("select_region_srex_poly") +function select_region_srex_poly(region:string) +; +; Arguments +; region: a string specifying the region to be selected. +; +; Return value +; An array with the position for the string in the region boundary as +; (lon, lat) +; +; Description +; Position for the name of the region on a map. +; +; Modification history +begin + + funcname = "select_region_srex_poly" + scriptname = "diag_scripts/lib/ncl/latlon.ncl" + verbosity = stringtointeger(getenv("ESMValTool_verbosity")) + + if (region.eq."ALAs") then + region_array = (/200.000, 68.000/) + end if + if (region.eq."AMZs") then + region_array = (/285., 0.000/) + end if + if (region.eq."CAMs") then + region_array = (/265., 15./) + end if + if (region.eq."CASs") then + region_array = (/62.000, 40.000/) + end if + if (region.eq."CEUs") then + region_array = (/ 15.000, 52.000/) + end if + if (region.eq."CGIs") then + region_array = (/265.000, 65.000/) + end if + if (region.eq."CNAs") then + region_array = (/255.000, 40.000/) + end if + if (region.eq."EAFs") then + region_array = (/30.000, -5.0/) + end if + if (region.eq."EASs") then + region_array = (/110.000, 30.000/) + end if + if (region.eq."ENAs") then + region_array = (/280.000, 30.000/) + end if + if (region.eq."MEDs") then + region_array = (/355.000, 38.000/) + end if + if (region.eq."NASs") then + region_array = (/50.000, 72.000/) + end if + if (region.eq."NAUs") then + region_array = (/120.000, -20.000/) + end if + if (region.eq."NEBs") then + region_array = (/315.000, -6.000/) + end if + if (region.eq."NEUs") then + region_array = (/355.000, 65.000/) + end if + if (region.eq."SAFs") then + region_array = (/320.000, -20.000/) + end if + if (region.eq."SAHs") then + region_array = (/350.000, 22.000/) + end if + if (region.eq."SASs") then + region_array = (/70.000, 10.000/) + end if + if (region.eq."SAUs") then + region_array = (/120.000, -42.000/) + end if + if (region.eq."SSAs") then + region_array = (/295.0, -40.000/) + end if + if (region.eq."SEAs") then + region_array = (/105.000, -0.000/) + end if + if (region.eq."TIBs") then + region_array = (/85.000, 40.000/) + end if + if (region.eq."WAFs") then + region_array = (/350.000, 0.0/) + end if + if (region.eq."WASs") then + region_array = (/45.000, 25.000/) + end if + if (region.eq."WSAs") then + region_array = (/280.0, -30.0/) + end if + if (region.eq."WNAs") then + region_array = (/233.000, 35.0/) + end if + if (region.eq."Arctic") then + region_array = (/300.000, 75.000/) + end if + if (region.eq."Antarctic") then + region_array = (/300.000, -75.000/) + end if + if (region.eq."Caribbean") then + region_array = (/290.0, 15.0/) + end if + if (region.eq."WesternIndianOcean") then + region_array = (/60.000, -20.000/) + end if + if (region.eq."NorthernIndianOcean") then + region_array = (/70.000, 10.000/) + end if + if (region.eq."NorthernTropicalPacific") then + region_array = (/175.000, 10.000/) + end if + if (region.eq."EquatorialTropicalPacific") then + region_array = (/185.000, 0.000/) + end if + if (region.eq."SouthernTropicalPacific") then + region_array = (/195.000, -10.000/) + end if + if (region.eq."World") then + region_array = (/300.000, 0.000/) + end if + + return(region_array) + +end + +; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +undef("select_region_srex") +function select_region_srex(region:string, lsdata:numeric) +; Arguments +; region: a string specifying the region to be selected. +; +; Return value +; An array with the region boundary as (lon1, lat1, lon2,\ +; lat2, lon3, lat3, lon4, lat4 ect) +; with the name of the region as a string attribute @name. +; +; Description +; Translates a region specification into lat/lon boundaries and a region +; name as an attribute. +; +; Modification history +begin + + funcname = "select_region_srex" + scriptname = "diag_scripts/lib/ncl/latlon.ncl" + verbosity = stringtointeger(getenv("ESMValTool_verbosity")) + + if (region.eq."ALAs") then + region_array = (/(/255.000, 60.000/), \ + (/191.978, 60.000/), \ + (/191.978, 72.554/), \ + (/255.000, 72.554/)/) + end if + if (region.eq."AMZs") then + region_array = (/(/293.623, - 20.000/), \ + (/280.271, - 1.239/), \ + (/291.2, 11.439/), \ + (/310.00, 11.439/), \ + (/310.00, - 20.00/)/) + end if + if (region.eq."CAMs") then + region_array = (/(/291.2, 11.439/), \ + (/280.271, -1.239/), \ + (/241.677, 28.566/), \ + (/269.685, 28.566/)/) + end if + if (region.eq."CASs") then + region_array = (/(/60.000, 30.000/), \ + (/60.000, 50.000/), \ + (/75.000, 50.000/), \ + (/75.000, 30.000/)/) + end if + if (region.eq."CEUs") then + region_array = (/(/ -10.000, 45.000/), \ + (/ -10.000, 48.000/), \ + (/ 40.000, 61.320/), \ + (/ 40.000, 45.000/)/) + end if + if (region.eq."CGIs") then + region_array = (/(/350.000, 50.000/), \ + (/255.000, 50.000/), \ + (/255.000, 85.000/), \ + (/350.000, 85.000/)/) + end if + if (region.eq."CNAs") then + region_array = (/(/275.000, 50.000/), \ + (/275.000, 28.566/), \ + (/255.000, 28.566/), \ + (/255.000, 50.000/)/) + end if + if (region.eq."EAFs") then + region_array = (/(/25.000, -11.365/), \ + (/25.000, 15.000/), \ + (/51.990, 15.000/), \ + (/51.990, -11.365/)/) + end if + if (region.eq."EASs") then + region_array = (/(/100.000, 20.000/), \ + (/100.000, 50.000/), \ + (/145.000, 50.000/), \ + (/145.000, 20.000/)/) + end if + if (region.eq."ENAs") then + region_array = (/(/300.000, 25.000/), \ + (/275.000, 25.000/), \ + (/275.000, 50.000/), \ + (/300.000, 50.000/)/) + end if + if (region.eq."MEDs") then + region_array = (/(/350.000, 30.000/), \ + (/350.000, 45.000/), \ + (/40.000, 45.000/), \ + (/40.000, 30.000/)/) + end if + if (region.eq."NASs") then + region_array = (/(/40.000, 50.000/), \ + (/40.000, 70.000/), \ + (/180.000, 70.000/), \ + (/180.000, 50.000/)/) + end if + if (region.eq."NAUs") then + region_array = (/(/110.000, -30.000/), \ + (/110.000, -10.000/), \ + (/155.000, -10.000/), \ + (/155.000, -30.000/)/) + end if + if (region.eq."NEBs") then + region_array = (/(/326.000, -20.000/), \ + (/310.000, -20.000/), \ + (/310.000, 0.000/), \ + (/326.000, 0.000/)/) + end if + if (region.eq."NEUs") then + region_array = (/(/350.000, 48.000/), \ + (/350.000, 75.000/), \ + (/40.000, 75.000/), \ + (/40.000, 61.320/)/) + end if + if (region.eq."SAFs") then + region_array = (/(/350.000, -35.000/), \ + (/350.000, -11.365/), \ + (/308.01, -11.365/), \ + (/308.01, -35.000/)/) + end if + if (region.eq."SAHs") then + region_array = (/(/340.000, 15.000/), \ + (/340.000, 30.000/), \ + (/ 40.000, 30.000/), \ + (/ 40.000, 15.000/)/) + end if + if (region.eq."SASs") then + region_array = (/(/60.000, 5.000/), \ + (/60.000, 30.000/), \ + (/100.000, 30.000/), \ + (/100.000, 20.000/), \ + (/95.000, 20.000/), \ + (/95.000, 5.000/)/) + end if + if (region.eq."SAUs") then + region_array = (/(/110.000, -50.000/), \ + (/110.000, -30.000/), \ + (/180.000, -30.000/), \ + (/180.000, -50.000/)/) + end if + if (region.eq."SSAs") then + region_array = (/(/320.624, -20.000/), \ + (/320.624, -56.704/), \ + (/292.652, -56.704/), \ + (/287.859, -50.000/), \ + (/293.623, -20.000/)/) + end if + if (region.eq."SEAs") then + region_array = (/(/95.000, -10.000/), \ + (/95.000, 20.000/), \ + (/155.000, 20.000/), \ + (/155.000, -10.000/)/) + end if + if (region.eq."TIBs") then + region_array = (/(/75.000, 30.000/), \ + (/75.000, 50.000/), \ + (/100.000, 50.000/), \ + (/100.000, 30.000/)/) + end if + if (region.eq."WAFs") then + region_array = (/(/340.000, -11.365/), \ + (/340.000, 15.000/), \ + (/25.000, 15.000/), \ + (/25.000, -11.365/)/) + end if + if (region.eq."WASs") then + region_array = (/(/40.000, 15.000/), \ + (/40.000, 50.000/), \ + (/60.000, 50.000/), \ + (/60.000, 15.000/)/) + end if + if (region.eq."WSAs") then + region_array = (/(/280.271, -1.239/), \ + (/293.623, -20.000/), \ + (/287.859, -50.000/), \ + (/292.652, -56.704/), \ + (/277.978, -56.704/), \ + (/277.978, 0.530/)/) + end if + + if (region.eq."WNAs") then + region_array = (/(/255.000, 28.566/), \ + (/230.000, 28.566/), \ + (/230.000, 60.000/), \ + (/255.000, 60.000/)/) + end if + + if (region.eq."Arctic") then + region_array = (/(/0.000, 67.500/), \ + (/360.000, 90.000/)/) + + end if + if (region.eq."Antarctic") then + region_array = (/(/0.000, -90.000/), \ + (/360.000, -50.000/)/) + end if + if (region.eq."Caribbean") then + region_array = (/(/291.200, 11.400/), \ + (/274.200, 25.000/), \ + (/300.000, 25.000/), \ + (/300.000, 11.400/)/) + end if + if (region.eq."WesternIndianOcean") then + region_array = (/(/52.000, -25.000/), \ + (/75.000, 5.000/)/) + end if + if (region.eq."NorthernIndianOcean") then + region_array = (/(/60.000, 5.000/), \ + (/95.000, 30.000/)/) + end if + if (region.eq."NorthernTropicalPacific") then + region_array = (/(/155.000, 5.000/), \ + (/210.000, 25.000/)/) + end if + if (region.eq."EquatorialTropicalPacific") then + region_array = (/(/155.000, -5.000/), \ + (/230.000, 5.000/)/) + end if + if (region.eq."SouthernTropicalPacific") then + region_array = (/(/155.000, -25.000/), \ + (/230.000, -5.000/)/) + end if + if (region.eq."World") then + region_array = (/(/0.000, -90.000/), \ + (/360.000, 90.000/)/) + end if + + lat = lsdata&lat + lon = lsdata&lon + inout = new((/dimsizes(lsdata)/), "float") + in = 0 + inn = 0 + do ilat = 0, dimsizes(lat) - 1 + do ilon = 0, dimsizes(lon) - 1 + if (dimsizes(region_array(:, 0)).le.2) then + if ((lat(ilat).ge.region_array(0, 1)).and.(lat(ilat)\ + .lt.region_array(1, 1)).and.(lon(ilon).ge.region_array(0, 0))\ + .and.(lon(ilon).lt.region_array(1, 0))) then + inou = "True" + if (inou.eq."True") then + inout(ilat, ilon) = 1. + in = in + 1 + end if + delete(inou) + inn = inn + 1 + end if + else + inou = gc_inout(lat(ilat), lon(ilon), region_array(:, 1),\ + region_array(:, 0)) + + if(inou.eq."True") then + inout(ilat, ilon) = 1. + in = in + 1 + delete(inou) + end if + inn = inn + 1 + end if + end do + end do + + return(inout) +end +; °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° +undef("add_legenda_page") +procedure add_legenda_page(wks, MODEL:string, colors:string, dashs:numeric,\ + scatters:string, ticknesses:numeric, place:string) +local MODEL, dim_mod, colors, dashs, edge_x, edge_y, edge_res, tx1res, \ + dim_lb, xleg, xl, yleg, yl, xtxt, ytxt, place, dim_lines,\ + space_lines, lin_sp, scatters, ticknesses +begin +; * * * Create Legend * * * * * * * * * * * * * * * * * * * * * * * * + dim_mod = dimsizes(MODEL) + dim_lines = floattoint(dim_mod/3) + 1 + if ((mod(dim_mod, 3)).eq.0) then + dim_lines = floattoint(dim_mod/3) + 1 + else + dim_lines = floattoint(dim_mod/3) + 2 + end if + lin_sp = 0.025 + space_lines = (dim_lines + 1) * lin_sp + + if (place.eq."bottom") + top_line = 0.20 + end if + if (place.eq."middle") + top_line = 0.42 + end if + if (place.eq."top") + top_line = 0.99 + end if + if ((place.ne."bottom").and.(place.ne."middle").and.(place.ne."top")) then + top_line = tofloat(place) + end if + bot_line = top_line - space_lines + ; edge_x = (/ 0.12, 0.92, 0.92, 0.12, 0.12/) + + edge_x = (/ 0.22, 0.76, 0.76, 0.22, 0.22/) + edge_y = (/space_lines + bot_line, space_lines + bot_line,\ + bot_line, bot_line, space_lines + bot_line/) + edge_res = True ; Indicate you want to set some resources. + edge_res@gsLineColor = "white" + gsn_polyline_ndc(wks, edge_x, edge_y, edge_res) + +; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + + dim_lb = dimsizes(MODEL) + + gs1res = True + tx1res = True + tx1res@txFontHeightF = lin_sp / 5 * 2 + + xleg = new((/3 * dim_lines, 4/), "float") + xl = new((/3, 4/), "float") + + do i = 0, 2 + xl(0, :) = fspan((edge_x(0) + 0.02), (edge_x(0) + 0.07), 4) + xl(1, :) = fspan(((edge_x(2) + edge_x(0))/2 - 0.09),\ + ((edge_x(2) + edge_x(0))/2 - 0.04), 4) + xl(2, :) = fspan((edge_x(2) - 0.20), (edge_x(2) - 0.15), 4) + end do + + nt = 0 + do j = 0, dim_lines - 1 + do i = 0, 2 + xleg(nt, :) = (/xl(i, :)/) + nt = nt + 1 + end do + end do + + yleg = new((/3 * dim_lines, 4/), "float") + yl = new(dim_lines, "float") + + do i = 0, dim_lines - 1 + yl(dim_lines - 1 - i) = edge_y(3) + (((edge_y(0) - \ + (edge_y(3)))/dim_lines) * \ + (i + 1)) - (lin_sp) + end do + + nt = 0 + do j = 0, dim_lines - 1 + do i = 0, 2 + yleg(nt, :) = (/yl(j)/) + nt = nt + 1 + end do + end do + + xtxt = new((/dim_lines * 3/), "float") + ytxt = new((/dim_lines * 3/), "float") + + nt = 0 + do j = 0, dim_lines - 1 + do i = 0, 2 + xtxt(nt) = xl(i, 3) + lin_sp/5. + nt = nt + 1 + end do + end do + nt = 0 + do i = 0, dim_lines - 1 + do j = 0, 2 + ytxt(nt) = (/yl(i)/) + nt = nt + 1 + end do + end do + + do i = 0, (dimsizes(MODEL) - 1) + gs1res@gsLineColor = colors(i) + gs1res@gsLineDashPattern = dashs(i) + gs1res@gsLineThicknessF = ticknesses(i) + tx1res@txFontColor = colors(i) + tx1res@txJust = "CenterLeft" ; change justification + if (scatters(i).eq."Markers") + gs1res@gsMarkerColor = colors(i) + gs1res@gsMarkerIndex = dashs(i) + gs1res@gsMarkerSizeF = 0.01 + gs1res@gsMarkerThicknessF = 1.5 + gsn_polymarker_ndc(wks, xleg(i, 2), yleg(i, 2), gs1res) + else + + gsn_polyline_ndc(wks, xleg(i, :), yleg(i, :), gs1res) + end if + + gsn_text_ndc(wks, MODEL(i), xtxt(i), ytxt(i), tx1res) + end do + +end + +; --------------------------------------------------------------------- +; The INTERSECTION of two sets is the set of elements which are in both sets. +; For example: let A = (1,2,3) and B = (3,4,5). +; The INTERSECTION of A and B, written A intersection B = (3). +; --------------------------------------------------------------------- +undef("get_unique_intersection") +function get_unique_intersection(a, b) +local atype, btype, au, bu, nau, nbu, abi, k, n, m +begin + atype = typeof(a) + btype = typeof(b) + if (atype.ne.btype) then + print("get_unique_intersection: arguments a and b must be the same type") + print(" typeof(a)="+atype) + print(" typeof(b)="+btype) + exit + end if + ; 'get_unique_values' sorts the elements + ; and returns a one-dimensional arry + au = get_unique_values(a) ; avoid duplicate 'a' entries + bu = get_unique_values(b) ; avoid duplicate 'b' entries + + nau = dimsizes(au) + nbu = dimsizes(bu) + ; reserve space + abi = new(min((/nau, nbu/)), typeof(a), default_fillvalue(atype)) + k = -1 + + na = 0 ; MH suggested loop + nb = 0 + do while(na.lt.nau.and.nb.lt.nbu) + if (bu(nb).gt.au(na)) then + na = na + 1 + else + if (au(na).gt.bu(nb)) then + nb = nb + 1 + else ; they are equal + k = k+1 + abi(k) = au(na) + nb = nb + 1 + na = na + 1 + end if + end if + end do + + if (k.eq.-1) then + abi := new(1, typeof(a), default_fillvalue(atype)) + abi@tag = "get_unique_intersection; NULL set; no intersection pairs" + return(abi) + end if + + abi@tag = "NCL: get_unique_intersection has created the result" + return(abi(0:k)) +end + +; --------------------------------------------------------------------- +; The DIFFERENCE of two sets is the set of elements, +; which are unique to each set. +; For example: let A = (1,2,3) and B = (3,4,5). +; The DIFFERENCE of A and B, written A difference B = (1,2,4,5). +; --------------------------------------------------------------------- +undef("get_unique_difference") +function get_unique_difference(a, b) +local atype, btype, abi, nabi, au, bu, abd, AB, nAB, n +begin + atype = typeof(a) + btype = typeof(b) + if (atype.ne.btype) then + print("get_unique_difference: arguments a and b must be the same type") + print(" typeof(a)=" + atype) + print(" typeof(b)=" + btype) + exit + end if + ; 'get_unique_values' sorts the elements + ; and returns a one-dimensional arry + abi = get_unique_intersection(a, b) ; intersect (common) values + if (ismissing(abi(0))) then ; NO intersect + ; 'get_unique_values' sorts the elements + au = get_unique_values(a) ; unique 'a' [au] + bu = get_unique_values(b) ; unique 'b' [bu] + ; all unique valuesl [d] difference + abd = array_append_record(au, bu, 0) + delete([/au, bu /]) + ; must sort again cuz 'ab' may not be in order + if (atype.eq."string") then + sqsort(abd) + else + qsort(abd) + end if + abd@tag = "NCL: get_unique_difference; arrays are DISJOINT; " + \ + "no intersection" + return(abd) + end if + nabi = dimsizes(abi) + + au = get_unique_values(a) ; 'a' [u]nique entries + bu = get_unique_values(b) ; 'b' [u]nique entries + nau = dimsizes(au) + nbu = dimsizes(bu) + ; reserve space + abd = new(nau + nbu, typeof(a), default_fillvalue(atype)) + ABu = array_append_record(au, bu, 0) ; unique AB + delete([/au, bu /]) + nABu = dimsizes(ABu) + + abd = new(nABu, typeof(a), default_fillvalue(atype)) + k = -1 + do n = 0, nABu - 1 + if (.not.any(abi.eq.ABu(n))) then + k = k+1 + abd(k) = ABu(n) + end if + end do + ; must sort again cuz 'ab' may not be in order + if (atype.eq."string") then + sqsort(abd(0:k)) + else + qsort(abd(0:k)) + end if + abd@tag = "NCL: get_unique_difference has created the result" + return(abd(0:k)) +end + +; ###################################################################### diff --git a/esmvaltool/diag_scripts/shared/plot/styles/cmip356.style b/esmvaltool/diag_scripts/shared/plot/styles/cmip356.style new file mode 100644 index 0000000000..e64e3d71e3 --- /dev/null +++ b/esmvaltool/diag_scripts/shared/plot/styles/cmip356.style @@ -0,0 +1,205 @@ +############################################################################### +# CMIP3+5+6 STYLES +############################################################################### +# This file defines the plot attributes for the CMIP6 models. +# +# MODEL NAME: must be the same as given in the main recipe. +# COLOR: can be either an NCL named color, a RGB code (size 3) on a 0-255 scale +# or a RGBA code (size 4) with the last element indicating the opacity +# on a 0-1 scale (0 = transparent, 1 = full), see +# http://www.ncl.ucar.edu/Applications/Scripts/rgb.txt +# https://www.ncl.ucar.edu/Document/glossary.shtml#RGB +# https://www.ncl.ucar.edu/Document/glossary.shtml#RGBA +# https://www.ncl.ucar.edu/Document/Graphics/create_color_table.shtml +# DASH: the dash pattern index lines, see +# https://www.ncl.ucar.edu/Document/Graphics/Images/dashpatterns.png +# THICK: the line thickness (NCL default is 1) +# MARK: marker index for markers, see +# https://www.ncl.ucar.edu/Document/Graphics/Images/markers.png +# AVG-STD: 0 = takes part in the calculation of mean and stddev +# 1 = does not take part in the calculation of mean and stddev +# (usually 0 for models, 1 for observations/reanalysis) +# +# Mind the formatting: columns are separated by the | symbol , colors given +# as RGB/RGBA must be comma-separated. +############################################################################### +MODEL NAME # COLOR # DASH # THICK # MARK # AVG-STD +############################################################################### +bccr_bcm2_0 | 148, 25, 30 | 0 | 2 | 4 | 0 +cccma_cgcm3_1 | 255, 255, 0 | 0 | 2 | 4 | 0 +cccma_cgcm3_1_t63 | 255, 255, 0 | 1 | 2 | 4 | 0 +csiro_mk3_0 | 30, 76, 36 | 0 | 2 | 4 | 0 +gfdl_cm2_0 | 35, 54, 109 | 0 | 2 | 4 | 0 +gfdl_cm2_1 | 35, 54, 109 | 1 | 2 | 4 | 0 +giss_aom | 119, 29, 123 | 0 | 2 | 4 | 0 +giss_model_e_h | 119, 29, 123 | 1 | 2 | 4 | 0 +giss_model_e_r | 119, 29, 123 | 2 | 2 | 4 | 0 +iap_fgoals1_0_g | 145, 214, 126 | 0 | 2 | 4 | 0 +ingv_echam4 | 255, 204, 0 | 0 | 2 | 4 | 0 +inmcm3_0 | 161, 37, 44 | 0 | 2 | 4 | 0 +ipsl_cm4 | 91, 83, 174 | 0 | 2 | 4 | 0 +ipsl_cm4A-LR | 91, 83, 174 | 1 | 2 | 4 | 0 +miroc3_2_hires | 184, 95, 182 | 0 | 2 | 4 | 0 +miroc3_2_medres | 184, 95, 182 | 1 | 2 | 4 | 0 +mpi_echam5 | 93, 161, 162 | 0 | 2 | 4 | 0 +mpi_echam5-HR | 93, 161, 162 | 1 | 2 | 4 | 0 +mri_cgcm2_3_2a | 173, 255, 47 | 0 | 2 | 4 | 0 +ncar_ccsm3_0 | 174, 170, 170 | 0 | 2 | 4 | 0 +ncar_pcm1 | 174, 170, 170 | 1 | 2 | 4 | 0 +ukmo_hadcm3 | 122, 139, 38 | 0 | 2 | 4 | 0 +ukmo_hadgem1 | 122, 139, 38 | 1 | 2 | 4 | 0 +ACCESS1-0 | 91, 142, 210 | 0 | 1 | 4 | 0 +ACCESS1-3 | 91, 142, 210 | 1 | 1 | 6 | 0 +bcc-csm1-1 | 148, 25, 30 | 0 | 1 | 4 | 0 +bcc-csm1-1-m | 148, 25, 30 | 1 | 1 | 6 | 0 +BNU-ESM | 196, 121, 0 | 0 | 1 | 4 | 0 +CanCM4 | 30, 76, 36 | 0 | 1 | 4 | 0 +CanESM2 | 30, 76, 36 | 1 | 1 | 6 | 0 +CNRM-AM-PRE6 | 30, 76, 36 | 1 | 1 | 6 | 0 +CCSM4 | 67, 178, 216 | 0 | 1 | 4 | 0 +CESM1-BGC | 67, 178, 216 | 1 | 1 | 6 | 0 +CESM1-CAM5 | 67, 178, 216 | 2 | 1 | 7 | 0 +CESM1-CAM5-1-FV2 | 67, 178, 216 | 2 | 1 | 7 | 0 +CESM1-FASTCHEM | 67, 178, 216 | 3 | 1 | 5 | 0 +CESM1-WACCM | 67, 178, 216 | 4 | 1 | 2 | 0 +CMCC-CESM | 232, 32, 35 | 0 | 1 | 4 | 0 +CMCC-CM | 232, 32, 35 | 1 | 1 | 6 | 0 +CMCC-CMS | 232, 32, 35 | 2 | 1 | 7 | 0 +CNRM-CM5 | 145, 214, 126 | 0 | 1 | 4 | 0 +CSIRO-Mk3-6-0 | 241, 75, 32 | 0 | 1 | 4 | 0 +EC-EARTH | 124, 99, 184 | 0 | 1 | 4 | 0 +FGOALS-g2 | 248, 154, 28 | 0 | 1 | 4 | 0 +FIO-ESM | 77, 187, 55 | 0 | 1 | 4 | 0 +GFDL-CM2p1 | 35, 54, 109 | 0 | 1 | 4 | 0 +GFDL-CM3 | 35, 54, 109 | 1 | 1 | 6 | 0 +GFDL-ESM2G | 35, 54, 109 | 2 | 1 | 7 | 0 +MPIESM-1-1 | 35, 54, 109 | 2 | 1 | 7 | 0 +GFDL-ESM2M | 35, 54, 109 | 3 | 1 | 5 | 0 +GISS-E2-H | 119, 29, 123 | 0 | 1 | 4 | 0 +GISS-E2-H-CC | 119, 29, 123 | 1 | 1 | 6 | 0 +GISS-E2-R | 119, 29, 123 | 2 | 1 | 7 | 0 +GISS-E2-R-CC | 119, 29, 123 | 3 | 1 | 5 | 0 +HadCM3 | 122, 139, 38 | 0 | 1 | 4 | 0 +HadGEM2-AO | 122, 139, 38 | 1 | 1 | 6 | 0 +HadGEM2-A | 122, 139, 38 | 1 | 1 | 6 | 0 +HadGEM2-CC | 122, 139, 38 | 2 | 1 | 7 | 0 +HadGEM2-ES | 122, 139, 38 | 3 | 1 | 5 | 0 +inmcm4 | 161, 37, 44 | 0 | 1 | 4 | 0 +INMCM4 | 161, 37, 44 | 0 | 1 | 4 | 0 +IPSL-CM5A-LR | 91, 83, 174 | 0 | 1 | 4 | 0 +IPSL-CM5A-MR | 91, 83, 174 | 1 | 1 | 6 | 0 +IPSL-CM5B-LR | 91, 83, 174 | 2 | 1 | 7 | 0 +MIROC4h | 184, 95, 182 | 0 | 1 | 4 | 0 +MIROC5 | 184, 95, 182 | 1 | 1 | 6 | 0 +MIROC-ESM | 184, 95, 182 | 2 | 1 | 7 | 0 +MIROC-ESM-CHEM | 184, 95, 182 | 3 | 1 | 5 | 0 +MPI-ESM-LR | 93, 161, 162 | 0 | 1 | 4 | 0 +MPI-ESM-MR | 93, 161, 162 | 1 | 1 | 6 | 0 +MPI-ESM-P | 93, 161, 162 | 2 | 1 | 7 | 0 +MRI-CGCM3 | 173, 255, 47 | 0 | 1 | 4 | 0 +MRI-ESM1 | 173, 255, 47 | 1 | 1 | 7 | 0 +NorESM1-M | 241, 58, 167 | 0 | 1 | 4 | 0 +NorESM1-ME | 241, 58, 167 | 1 | 1 | 7 | 0 +ACCESS-CM2 | 0, 176, 80 | 0 | 2 | 4 | 0 +ACCESS-ESM1-5 | 0, 176, 80 | 1 | 2 | 4 | 0 +AWI-CM-1-1-MR | 153, 0, 255 | 0 | 2 | 4 | 0 +AWI-ESM-1-1-LR | 153, 0, 255 | 1 | 2 | 4 | 0 +BCC-CSM2-MR | 148, 25, 30 | 0 | 2 | 4 | 0 +BCC-ESM1 | 148, 25, 30 | 1 | 2 | 6 | 0 +CAMS-CSM1-0 | 255, 255, 0 | 0 | 2 | 4 | 0 +CanESM5 | 30, 76, 36 | 0 | 2 | 4 | 0 +CanESM5-CanOE | 30, 76, 36 | 1 | 2 | 4 | 0 +CAS-ESM2-0 | 255, 102, 0 | 0 | 2 | 4 | 0 +CESM2 | 67, 178, 216 | 0 | 2 | 4 | 0 +CESM2-FV2 | 67, 178, 216 | 1 | 2 | 4 | 0 +CESM2-WACCM | 67, 178, 216 | 2 | 2 | 6 | 0 +CESM2-WACCM-FV2 | 67, 178, 216 | 3 | 2 | 6 | 0 +CIESM | 68, 113, 212 | 0 | 2 | 4 | 0 +CMCC-CM2-HR4 | 255, 153, 51 | 0 | 2 | 4 | 0 +CMCC-CM2-SR5 | 255, 153, 51 | 1 | 2 | 4 | 0 +CMCC-ESM2 | 255, 153, 51 | 2 | 2 | 4 | 0 +CNRM-CM6-1 | 145, 214, 126 | 0 | 2 | 4 | 0 +CNRM-CM6-1-HR | 145, 214, 126 | 1 | 2 | 4 | 0 +CNRM-ESM2-1 | 145, 214, 126 | 2 | 2 | 4 | 0 +E3SM-1-0 | 255, 204, 0 | 0 | 2 | 4 | 0 +E3SM-1-1 | 255, 204, 0 | 1 | 2 | 4 | 0 +E3SM-1-1-ECA | 255, 204, 0 | 2 | 2 | 4 | 0 +EC-Earth3 | 124, 99, 184 | 0 | 2 | 4 | 0 +EC-Earth3-AerChem | 124, 99, 184 | 1 | 2 | 4 | 0 +EC-Earth3-CC | 124, 99, 184 | 2 | 2 | 4 | 0 +EC-Earth3-LR | 124, 99, 184 | 3 | 2 | 4 | 0 +EC-Earth3-Veg | 124, 99, 184 | 4 | 2 | 6 | 0 +EC-Earth3-Veg-LR | 124, 99, 184 | 5 | 2 | 6 | 0 +FGOALS-f3-L | 248, 154, 28 | 0 | 2 | 4 | 0 +FGOALS-g3 | 248, 154, 28 | 1 | 2 | 4 | 0 +FIO-ESM-2-0 | 77, 187, 55 | 0 | 2 | 4 | 0 +GFDL-CM4 | 35, 54, 109 | 0 | 2 | 4 | 0 +GFDL-ESM4 | 35, 54, 109 | 1 | 2 | 6 | 0 +GISS-E2-1-G | 119, 29, 123 | 0 | 2 | 4 | 0 +GISS-E2-1-G-CC | 119, 29, 123 | 1 | 2 | 4 | 0 +GISS-E2-1-H | 119, 29, 123 | 2 | 2 | 6 | 0 +GISS-E2-2-G | 119, 29, 123 | 3 | 2 | 4 | 0 +HadGEM3-GC31-LL | 122, 139, 38 | 0 | 2 | 4 | 0 +HadGEM3-GC31-MM | 122, 139, 38 | 1 | 2 | 4 | 0 +IITM-ESM | 0, 51, 204 | 0 | 2 | 4 | 0 +INM-CM4-8 | 161, 37, 44 | 0 | 2 | 4 | 0 +INM-CM5-0 | 161, 37, 44 | 1 | 2 | 6 | 0 +IPSL-CM5A2-INCA | 91, 83, 174 | 0 | 2 | 4 | 0 +IPSL-CM6A-LR | 91, 83, 174 | 1 | 2 | 4 | 0 +KACE-1-0-G | 231, 23, 157 | 0 | 2 | 6 | 0 +KIOST-ESM | 119, 29, 123 | 0 | 2 | 6 | 0 +MCM-UA-1-0 | 197, 90, 17 | 1 | 2 | 4 | 0 +MIROC6 | 184, 95, 182 | 0 | 2 | 4 | 0 +MIROC-ES2L | 184, 95, 182 | 1 | 2 | 4 | 0 +MPI-ESM1-2-HR | 93, 161, 162 | 0 | 2 | 4 | 0 +MPI-ESM1-2-LR | 93, 161, 162 | 1 | 2 | 4 | 0 +MPI-ESM-1-2-HAM | 93, 161, 162 | 2 | 2 | 4 | 0 +MRI-ESM2-0 | 173, 255, 47 | 0 | 2 | 4 | 0 +NESM3 | 174, 170, 170 | 0 | 2 | 4 | 0 +NorCPM1 | 241, 58, 167 | 0 | 2 | 4 | 0 +NorESM1-F | 241, 58, 167 | 1 | 2 | 4 | 0 +NorESM2-LM | 241, 58, 167 | 2 | 2 | 4 | 0 +NorESM2-MM | 241, 58, 167 | 3 | 2 | 4 | 0 +SAM0-UNICON | 11, 247, 200 | 0 | 2 | 4 | 0 +TaiESM1 | 174, 170, 170 | 0 | 2 | 4 | 0 +UKESM1-0-LL | 164, 60, 112 | 0 | 2 | 4 | 0 +MultiModelMean | 255, 0, 0 | 0 | 4 | 12 | 1 +MultiModelMedian | 0, 0, 255 | 0 | 3 | 12 | 1 +multi-model mean | 255, 0, 0 | 0 | 3 | 12 | 1 +AMSRE | 0, 0, 0 | 2 | 3 | 16 | 1 +BDBP | 0, 0, 0 | 1 | 3 | 4 | 1 +BerkeleyEarth | 0, 0, 0 | 1 | 4 | 0 | 0 +CDS-XCO2 | 0, 0, 0 | 0 | 3 | 16 | 1 +CERES-SYN1deg | 0, 0, 0 | 0 | 1 | 16 | 0 +CLARA-A2 | 0, 255, 255 | 0 | 3 | 0 | 0 +CMAP | 0, 0, 0 | 6 | 3 | 16 | 1 +CowtanWay | 0, 0, 0 | 5 | 4 | 0 | 0 +ERAINT | 0, 0, 0 | 3 | 3 | 16 | 1 +ERA-Interim | 255, 200, 0 | 0 | 3 | 0 | 0 +ESACCI-AEROSOL | 0, 0, 0 | 0 | 3 | 16 | 1 +ESACCI-AMSR | 0, 0, 0 | 1 | 4 | 0 | 0 +ESACCI-CLOUD | 255, 0, 0 | 0 | 3 | 0 | 0 +ESACCI-SSMI | 0, 0, 0 | 0 | 4 | 0 | 0 +GHCN | 0, 0, 0 | 0 | 3 | 0 | 0 +GISTEMP | 0, 0, 0 | 4 | 4 | 0 | 0 +GPCP-1DD-V12 | 0, 0, 0 | 7 | 3 | 16 | 1 +HadCRUT4 | 0, 0, 0 | 4 | 4 | 0 | 0 +HadCRUT5 | 0, 0, 0 | 0 | 4 | 0 | 0 +HadISST | 0, 0, 0 | 1 | 3 | 16 | 1 +IGAG/SPARC | 248, 154, 28 | 0 | 3 | 16 | 0 +Kadow | 0, 0, 0 | 3 | 4 | 0 | 0 +MERRA | 0, 0, 0 | 8 | 3 | 16 | 1 +MODIS | 0, 255, 0 | 0 | 3 | 16 | 1 +MOHC-HadISST | 0, 0, 0 | 1 | 3 | 16 | 1 +NCEP | 0, 0, 0 | 4 | 3 | 16 | 1 +NIWA | 0, 0, 0 | 1 | 3 | 8 | 1 +NIWA-BS | 0, 0, 0 | 1 | 3 | 8 | 1 +NOAAGlobalTemp-Interim| 0, 0, 0 | 2 | 4 | 0 | 0 +NSIDC | 0, 0, 0 | 0 | 3 | 16 | 1 +NSIDC-BT | 0, 0, 0 | 12 | 3 | 0 | 0 +NSIDC-NT | 0, 0, 0 | 2 | 3 | 0 | 0 +PATMOS | 0, 0, 255 | 0 | 3 | 0 | 0 +PATMOS-x | 0, 0, 255 | 0 | 3 | 0 | 0 +TRMM-3B43-v7-0.25deg | 0, 0, 0 | 5 | 3 | 16 | 1 +TRMM-L3 | 0, 0, 0 | 5 | 3 | 16 | 1 +default | 0, 0, 0 | 0 | 1 | 16 | 0 diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_914.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_914.yml new file mode 100644 index 0000000000..e0f0baab64 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_914.yml @@ -0,0 +1,134 @@ +# ESMValTool +# recipe_flato13ipcc_figure_914.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.14 + + description: | + Reproducing Fig. 9.14 from IPCC AR5, chap. 9 (Flato et al., 2013). + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +preprocessors: + + zonal_mean: + custom_order: true + climate_statistics: + regrid: + target_grid: 1x1 + scheme: linear + zonal_statistics: + operator: mean + convert_units: + units: degC + + equatorial: + custom_order: true + climate_statistics: + regrid: + target_grid: 1x1 + scheme: linear + extract_region: + start_longitude: 0. + end_longitude: 360. + start_latitude: -5. + end_latitude: 5. + meridional_statistics: + operator: mean + convert_units: + units: degC + +diagnostics: + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.14 + # ********************************************************************** + # SST zonal mean and equatorial, multi model mean + # ********************************************************************** + + fig09-14: + title: Fig. 9.14 (SST) + description: | + IPCC AR5 Ch. 9, Fig. 9.14 (sst error, zonal mean and equatorial) + themes: + - phys + realms: + - ocean + variables: + tos_zm: &fig09_14_settings + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Omon + short_name: tos + preprocessor: zonal_mean + reference_dataset: HadISST + start_year: 1979 + end_year: 1999 + tos_eq: + <<: *fig09_14_settings + preprocessor: equatorial + additional_datasets: + - {dataset: HadISST, project: OBS, type: reanaly, version: 1, tier: 2} + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: CanCM4} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5-1-FV2} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + - {dataset: CNRM-CM5} + - {dataset: CSIRO-Mk3-6-0} + - {dataset: EC-EARTH} + - {dataset: FGOALS-g2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-R} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + scripts: + fig09-14: + script: ipcc_ar5/ch09_fig09_14.py diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_924.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_924.yml new file mode 100644 index 0000000000..27fcff1af3 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_924.yml @@ -0,0 +1,136 @@ +# ESMValTool +# recipe_flato13ipcc_figure_924.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.24 + + description: | + Reproducing Fig. 9.24 from IPCC AR5, chap. 9 (Flato et al., 2013). + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +diagnostics: + + # *********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.24 + # *********************************************************************** + # 9.24a/b: time series of Arctic and Antarctic sea ice extent + # 9.24c/d: trend distribution of September/February Arctic/Antarctic + # sea ice extent + # *********************************************************************** + + fig09-24: + title: Fig. 9.24 (sea ice) + description: timeseries and trend distributions of sea ice extent + themes: + - seaIce + realms: + - seaIce + variables: + sic: + mip: OImon + project: CMIP5 + exp: historical + ensemble: r1i1p1 + start_year: 1960 + end_year: 2005 + additional_datasets: + - {dataset: HadISST, project: OBS, type: reanaly, version: 1, tier: 2} + areacello: + mip: fx + project: CMIP5 + exp: historical + ensemble: r0i0p0 + start_year: 1960 + end_year: 2005 + additional_datasets: + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-CAM5} + - {dataset: CNRM-CM5} + - {dataset: CSIRO-Mk3-6-0} + - {dataset: FGOALS-g2} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + # - {dataset: MIROC5} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + scripts: + fig09-24a: + script: seaice/seaice_tsline.ncl + # "Arctic" or "Antarctic"; entire hemisphere will be evaluated + region: "Arctic" + # A = annual mean, 3 = March, 9 = September + month: "9" + # "CMIP5", "DEFAULT" + styleset: "CMIP5" + # Plot multi-model mean & std dev + multi_model_mean: true + # Create legend label for each individual ensemble member + EMs_in_lg: false + # Fill polar hole in data with sic = 1. + fill_pole_hole: true + fig09-24b: + script: seaice/seaice_tsline.ncl + # "Arctic" or "Antarctic"; entire hemisphere will be evaluated + region: "Antarctic" + # A = annual mean, 3 = March, 9 = September + month: "2" + # "CMIP5", "DEFAULT" + styleset: "CMIP5" + # Plot multi-model mean & std dev + multi_model_mean: true + # Create legend label for each individual ensemble member + EMs_in_lg: false + # Fill polar hole in data with sic = 1. + fill_pole_hole: false + fig09-24c: + script: seaice/seaice_trends.ncl + # "Arctic" or "Antarctic"; entire hemisphere will be evaluated + region: "Arctic" + # A = annual mean, 3 = March, 9 = September + month: "9" + # Fill polar hole in data with sic = 1. + fill_pole_hole: true + fig09-24d: + script: seaice/seaice_trends.ncl + # "Arctic" or "Antarctic"; entire hemisphere will be evaluated + region: "Antarctic" + # A = annual mean, 3 = March, 9 = September + month: "2" diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_942.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_942.yml new file mode 100644 index 0000000000..20e0d7bd82 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_942.yml @@ -0,0 +1,550 @@ +# ESMValTool +# recipe_flato13ipcc_figure_942.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.42 + + description: | + Reproducing Fig. 9.42 from IPCC AR5, chap. 9 (Flato et al., 2013). + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +preprocessors: + + spatial_mean: + area_statistics: + operator: mean + + +diagnostics: + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.42 + # ********************************************************************** + # + # ********************************************************************** + + ecs_cmip5: + description: Calculate ECS for CMIP5 models. + themes: + - phys + realms: + - atmos + variables: + tas_rtnt: &ecs_settings + short_name: tas + preprocessor: spatial_mean + project: CMIP5 + ensemble: r1i1p1 + mip: Amon + additional_datasets: &datasets_cmip5_rtnt + - {dataset: ACCESS1-0, exp: piControl, start_year: 300, end_year: 449} + - {dataset: ACCESS1-0, exp: abrupt4xCO2, start_year: 300, end_year: 449} + - {dataset: bcc-csm1-1, exp: piControl, start_year: 160, end_year: 309} + - {dataset: bcc-csm1-1, exp: abrupt4xCO2, start_year: 160, end_year: 309} + # - {dataset: bcc-csm1-1-m, exp: piControl, start_year: 240, end_year: 389} + # - {dataset: bcc-csm1-1-m, exp: abrupt4xCO2, start_year: 240, end_year: 389} + - {dataset: CanESM2, exp: piControl, start_year: 2321, end_year: 2470} + - {dataset: CanESM2, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + # Wrong start year for piControl? (branch_time = 2.) + - {dataset: CCSM4, exp: piControl, start_year: 250, end_year: 399} + - {dataset: CCSM4, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + - {dataset: CNRM-CM5, exp: piControl, start_year: 1850, end_year: 1999} + - {dataset: CNRM-CM5, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + - {dataset: CSIRO-Mk3-6-0, exp: piControl, start_year: 104, end_year: 253} + - {dataset: CSIRO-Mk3-6-0, exp: abrupt4xCO2, start_year: 1, end_year: 150} + - {dataset: GFDL-CM3, exp: piControl, start_year: 1, end_year: 150} + - {dataset: GFDL-CM3, exp: abrupt4xCO2, start_year: 1, end_year: 150} + # - {dataset: GFDL-ESM2G, exp: piControl, start_year: 1, end_year: 150} + # - {dataset: GFDL-ESM2G, exp: abrupt4xCO2, start_year: 1, end_year: 150} + # - {dataset: GFDL-ESM2M, exp: piControl, start_year: 1, end_year: 150} + # - {dataset: GFDL-ESM2M, exp: abrupt4xCO2, start_year: 1, end_year: 150} + - {dataset: GISS-E2-H, exp: piControl, start_year: 2660, end_year: 2809} + - {dataset: GISS-E2-H, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + - {dataset: GISS-E2-R, exp: piControl, start_year: 4200, end_year: 4349} + - {dataset: GISS-E2-R, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + # Experiments start at 1859-12-01 + # - {dataset: HadGEM2-ES, exp: piControl, start_year: 1860, end_year: 2009} + # - {dataset: HadGEM2-ES, exp: abrupt4xCO2, start_year: 1860, end_year: 2009} + # - {dataset: inmcm4, exp: piControl, start_year: 2090, end_year: 2239} + # - {dataset: inmcm4, exp: abrupt4xCO2, start_year: 2090, end_year: 2239} + - {dataset: IPSL-CM5B-LR, exp: piControl, start_year: 1850, end_year: 1999} + - {dataset: IPSL-CM5B-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + - {dataset: MIROC5, exp: piControl, start_year: 2100, end_year: 2249} + - {dataset: MIROC5, exp: abrupt4xCO2, start_year: 2100, end_year: 2249} + - {dataset: MIROC-ESM, exp: piControl, start_year: 1880, end_year: 2029} + - {dataset: MIROC-ESM, exp: abrupt4xCO2, start_year: 1, end_year: 150} + - {dataset: MPI-ESM-LR, exp: piControl, start_year: 1880, end_year: 2029} + - {dataset: MPI-ESM-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + - {dataset: MPI-ESM-P, exp: piControl, start_year: 1866, end_year: 2015} + - {dataset: MPI-ESM-P, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + # - {dataset: MRI-CGCM3, exp: piControl, start_year: 1891, end_year: 2040} + # - {dataset: MRI-CGCM3, exp: abrupt4xCO2, start_year: 1851, end_year: 2000} + - {dataset: NorESM1-M, exp: piControl, start_year: 700, end_year: 849} + - {dataset: NorESM1-M, exp: abrupt4xCO2, start_year: 1, end_year: 150} + tas_rtmt: + <<: *ecs_settings + # additional_datasets: &datasets_cmip5_rtmt + # - {dataset: IPSL-CM5A-LR, exp: piControl, start_year: 1850, end_year: 1999} + # - {dataset: IPSL-CM5A-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} + rtnt: + <<: *ecs_settings + short_name: rtnt + derive: true + additional_datasets: *datasets_cmip5_rtnt + rtmt: + <<: *ecs_settings + short_name: rtmt + # additional_datasets: *datasets_cmip5_rtmt + scripts: + ecs: &ecs_script + script: climate_metrics/ecs.py + + tcr_cmip5: + description: Calculate TCR for CMIP5 models. + themes: + - phys + realms: + - atmos + variables: + 1pctCO2: &tcr_settings + short_name: tas + preprocessor: spatial_mean + project: CMIP5 + ensemble: r1i1p1 + exp: 1pctCO2 + mip: Amon + additional_datasets: + - {dataset: ACCESS1-0, start_year: 300, end_year: 439} + - {dataset: bcc-csm1-1, start_year: 160, end_year: 299} + # - {dataset: bcc-csm1-1-m, start_year: 240, end_year: 379} + - {dataset: CanESM2, start_year: 1850, end_year: 1989} + - {dataset: CCSM4, start_year: 1850, end_year: 1989} + - {dataset: CNRM-CM5, start_year: 1850, end_year: 1989} + - {dataset: CSIRO-Mk3-6-0, start_year: 1, end_year: 140} + - {dataset: GFDL-CM3, start_year: 1, end_year: 140} + - {dataset: GFDL-ESM2G, start_year: 1, end_year: 140} + - {dataset: GFDL-ESM2M, start_year: 1, end_year: 140} + - {dataset: GISS-E2-H, start_year: 1850, end_year: 1989} + - {dataset: GISS-E2-R, start_year: 1850, end_year: 1989} + # Experiments starts at 1859-12-01 + - {dataset: HadGEM2-ES, start_year: 1860, end_year: 1999} + # - {dataset: inmcm4, start_year: 2090, end_year: 2229} + - {dataset: IPSL-CM5A-LR, start_year: 1850, end_year: 1989} + - {dataset: IPSL-CM5B-LR, start_year: 1850, end_year: 1989} + - {dataset: MIROC5, start_year: 2200, end_year: 2339} + - {dataset: MIROC-ESM, start_year: 1, end_year: 140} + - {dataset: MPI-ESM-LR, start_year: 1850, end_year: 1989} + - {dataset: MPI-ESM-P, start_year: 1850, end_year: 1989} + - {dataset: MRI-CGCM3, start_year: 1851, end_year: 1990} + - {dataset: NorESM1-M, start_year: 1, end_year: 140} + piControl: + <<: *tcr_settings + exp: piControl + additional_datasets: + - {dataset: ACCESS1-0, start_year: 300, end_year: 439} + - {dataset: bcc-csm1-1, start_year: 160, end_year: 299} + # - {dataset: bcc-csm1-1-m, start_year: 240, end_year: 379} + - {dataset: CanESM2, start_year: 2321, end_year: 2460} + - {dataset: CCSM4, start_year: 251, end_year: 390} + - {dataset: CNRM-CM5, start_year: 1850, end_year: 1989} + - {dataset: CSIRO-Mk3-6-0, start_year: 104, end_year: 243} + - {dataset: GFDL-CM3, start_year: 1, end_year: 140} + - {dataset: GFDL-ESM2G, start_year: 1, end_year: 140} + - {dataset: GFDL-ESM2M, start_year: 1, end_year: 140} + - {dataset: GISS-E2-H, start_year: 2410, end_year: 2549} + - {dataset: GISS-E2-R, start_year: 3981, end_year: 4120} + # Experiments starts at 1859-12-01 + - {dataset: HadGEM2-ES, start_year: 1860, end_year: 1999} + # - {dataset: inmcm4, start_year: 2090, end_year: 2229} + - {dataset: IPSL-CM5A-LR, start_year: 1850, end_year: 1989} + - {dataset: IPSL-CM5B-LR, start_year: 1850, end_year: 1989} + - {dataset: MIROC5, start_year: 2200, end_year: 2339} + - {dataset: MIROC-ESM, start_year: 1880, end_year: 2019} + - {dataset: MPI-ESM-LR, start_year: 1880, end_year: 2019} + - {dataset: MPI-ESM-P, start_year: 1866, end_year: 2005} + - {dataset: MRI-CGCM3, start_year: 1891, end_year: 2030} + - {dataset: NorESM1-M, start_year: 700, end_year: 839} + scripts: + tcr: &tcr_script + script: climate_metrics/tcr.py + + fig09-42a_cmip5: + title: Fig. 9.42a CMIP5 (ECS vs. GMSAT) + description: Plot ECS vs. GMSAT for CMIP5 models. + themes: + - phys + realms: + - atmos + variables: + tas: + <<: *ecs_settings + additional_datasets: + - {dataset: ACCESS1-0, exp: piControl, start_year: 300, end_year: 449} + - {dataset: ACCESS1-0, exp: historical, start_year: 1961, end_year: 1990} + # Wrong start year for piControl (must be 407) + - {dataset: bcc-csm1-1, exp: piControl, start_year: 160, end_year: 299} + - {dataset: bcc-csm1-1, exp: historical, start_year: 1961, end_year: 1990} + # Wrong start year for piControl (must be 344) + # - {dataset: bcc-csm1-1-m, exp: piControl, start_year: 240, end_year: 379} + # - {dataset: bcc-csm1-1-m, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: CanESM2, exp: piControl, start_year: 2321, end_year: 2470} + - {dataset: CanESM2, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: CCSM4, exp: piControl, start_year: 937, end_year: 1086} + - {dataset: CCSM4, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: CNRM-CM5, exp: piControl, start_year: 2250, end_year: 2399} + - {dataset: CNRM-CM5, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: CSIRO-Mk3-6-0, exp: piControl, start_year: 81, end_year: 230} + - {dataset: CSIRO-Mk3-6-0, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: GFDL-CM3, exp: piControl, start_year: 1, end_year: 150} + - {dataset: GFDL-CM3, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: GFDL-ESM2G, exp: piControl, start_year: 162, end_year: 311} + # - {dataset: GFDL-ESM2G, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: GFDL-ESM2M, exp: piControl, start_year: 162, end_year: 311} + # - {dataset: GFDL-ESM2M, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: GISS-E2-H, exp: piControl, start_year: 2410, end_year: 2559} + - {dataset: GISS-E2-H, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: GISS-E2-R, exp: piControl, start_year: 3981, end_year: 4130} + - {dataset: GISS-E2-R, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: HadGEM2-ES, exp: piControl, start_year: 1860, end_year: 2009} + # - {dataset: HadGEM2-ES, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: inmcm4, exp: piControl, start_year: 1850, end_year: 1999} + # - {dataset: inmcm4, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: IPSL-CM5A-LR, exp: piControl, start_year: 1850, end_year: 1999} + # - {dataset: IPSL-CM5A-LR, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: IPSL-CM5B-LR, exp: piControl, start_year: 1850, end_year: 1999} + - {dataset: IPSL-CM5B-LR, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: MIROC5, exp: piControl, start_year: 2411, end_year: 2560} + - {dataset: MIROC5, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: MIROC-ESM, exp: piControl, start_year: 1880, end_year: 2029} + - {dataset: MIROC-ESM, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: MPI-ESM-LR, exp: piControl, start_year: 1880, end_year: 2029} + - {dataset: MPI-ESM-LR, exp: historical, start_year: 1961, end_year: 1990} + # Parent experiment of historical is NOT piControl, but past1000 + - {dataset: MPI-ESM-P, exp: piControl, start_year: 2850, end_year: 2999} + - {dataset: MPI-ESM-P, exp: historical, start_year: 1961, end_year: 1990} + # - {dataset: MRI-CGCM3, exp: piControl, start_year: 1950, end_year: 2099} + # - {dataset: MRI-CGCM3, exp: historical, start_year: 1961, end_year: 1990} + - {dataset: NorESM1-M, exp: piControl, start_year: 700, end_year: 849} + - {dataset: NorESM1-M, exp: historical, start_year: 1961, end_year: 1990} + scripts: + fig09-42a: &fig09_42a_script + script: ipcc_ar5/ch09_fig09_42a.py + ancestors: ['tas', 'ecs_cmip5/ecs'] + tas_units: celsius + save: + bbox_inches: tight + orientation: landscape + axes_functions: &axes_functions + set_title: GMSAT vs. ECS for CMIP5 models + set_xlabel: ECS / °C + set_ylabel: GMSAT / °C + set_xlim: [1.5, 6.0] + legend: + kwargs: + loc: center left + bbox_to_anchor: [1.05, 0.5] + borderaxespad: 0.0 + ncol: 2 + + fig09-42b_cmip5: + title: Fig. 9.42b CMIP5 (TCR vs. ECS) + description: Plot TCR vs. ECS for CMIP5 models. + themes: + - phys + realms: + - atmos + scripts: + fig09-42b: &fig09_42b_script + script: ipcc_ar5/ch09_fig09_42b.py + ancestors: ['ecs_cmip5/ecs', 'tcr_cmip5/tcr'] + + ecs_cmip6: + description: Calculate ECS for CMIP6 models. + themes: + - phys + realms: + - atmos + variables: + tas_rtnt: + <<: *ecs_settings + project: CMIP6 + additional_datasets: &datasets_cmip6_rtnt + # No monthly data (parent_time_units not correct) + # - {dataset: AWI-CM-1-1-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 2650, end_year: 2799, mip: day} + # - {dataset: AWI-CM-1-1-MR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999, mip: day} + - {dataset: BCC-CSM2-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: BCC-CSM2-MR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: BCC-ESM1, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: BCC-ESM1, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: CAMS-CSM1-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3179} + - {dataset: CAMS-CSM1-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3179} + - {dataset: CESM2, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} + - {dataset: CESM2, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} + - {dataset: CESM2-WACCM, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} + - {dataset: CESM2-WACCM, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} + - {dataset: CNRM-CM6-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: CNRM-CM6-1, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: CNRM-ESM2-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: CNRM-ESM2-1, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: E3SM-1-0, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 250} + - {dataset: E3SM-1-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1, end_year: 150} + # No abrupt-4xCO2 + # - {dataset: EC-Earth3, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + # - {dataset: EC-Earth3, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: EC-Earth3-Veg, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: EC-Earth3-Veg, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + # Only mixed ensemble members available, parent_time_units messed up + # - {dataset: FGOALS-f3-L, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} + # - {dataset: FGOALS-f3-L, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} + # Wrong start year for piControl (must be 101) + - {dataset: GFDL-CM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} + - {dataset: GFDL-CM4, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} + - {dataset: GFDL-ESM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 250} + - {dataset: GFDL-ESM4, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} + - {dataset: GISS-E2-1-G, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4299} + - {dataset: GISS-E2-1-G, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: GISS-E2-1-H, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3329} + - {dataset: GISS-E2-1-H, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: HadGEM3-GC31-LL, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: HadGEM3-GC31-LL, exp: abrupt-4xCO2, ensemble: r1i1p1f3, grid: gn, start_year: 1850, end_year: 1999} + # Wrong start year for piControl (must be 2099), data withdrawn + # - {dataset: INM-CM5-0, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 2499, end_year: 2648} + # - {dataset: INM-CM5-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1999} + # Not enough years for piControl run, data withdrawn + # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2096} + # - {dataset: INM-CM4-8, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1999} + - {dataset: IPSL-CM6A-LR, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1870, end_year: 2019} + - {dataset: IPSL-CM6A-LR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: MIROC6, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} + - {dataset: MIROC6, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} + - {dataset: MIROC-ES2L, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MIROC-ES2L, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MPI-ESM1-2-HR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MPI-ESM1-2-HR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MRI-ESM2-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MRI-ESM2-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + # parent_time_units not correct + - {dataset: NESM3, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 699} + - {dataset: NESM3, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + # Issue #286 (manual copying was necessary) + - {dataset: SAM0-UNICON, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 423} + - {dataset: SAM0-UNICON, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + tas_rtmt: + <<: *ecs_settings + project: CMIP6 + additional_datasets: &datasets_cmip6_rtmt + - {dataset: CanESM5, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5350} + - {dataset: CanESM5, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + # No 'piControl' data available for 'rtnt' of 'UKESM1-0-LL' + # - {dataset: UKESM1-0-LL, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1960, end_year: 2109} + # - {dataset: UKESM1-0-LL, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} + rtnt: + <<: *ecs_settings + short_name: rtnt + project: CMIP6 + derive: true + additional_datasets: *datasets_cmip6_rtnt + rtmt: + <<: *ecs_settings + short_name: rtmt + project: CMIP6 + additional_datasets: *datasets_cmip6_rtmt + scripts: + ecs: + <<: *ecs_script + + tcr_cmip6: + description: Calculate TCR for all CMIP6 models. + variables: + 1pctCO2: + <<: *tcr_settings + project: CMIP6 + additional_datasets: + # No monthly data (parent_time_units not correct) + # - {dataset: AWI-CM-1-1-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989, mip: day} + - {dataset: BCC-CSM2-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + # Model fix would be needed for BCC-ESM1 1pctCO2: + # esmvalcore.cmor.check.CMORCheckError: There were errors in variable areacello: + # There are multiple coordinates with standard_name "latitude": ['lat', 'latitude'] + # There are multiple coordinates with standard_name "longitude": ['lon', 'longitude'] + # areacello: does not match coordinate rank + # - {dataset: BCC-ESM1, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: CAMS-CSM1-0, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3169} + - {dataset: CanESM5, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: CESM2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 140} + - {dataset: CESM2-WACCM, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 140, institute: NCAR} + - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: E3SM-1-0, ensemble: r1i1p1f1, grid: gr, start_year: 1, end_year: 140} + # No 1pctCO2 available + # - {dataset: EC-Earth3, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: EC-Earth3-Veg, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} + # Only mixed ensemble members available, parent_time_units messed up + # - {dataset: FGOALS-f3-L, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} + - {dataset: GFDL-CM4, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} + - {dataset: GFDL-ESM4, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} + - {dataset: GISS-E2-1-G, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: GISS-E2-1-H, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: HadGEM3-GC31-LL, ensemble: r1i1p1f3, grid: gn, start_year: 1850, end_year: 1989} + # Data withdrawn + # - {dataset: INM-CM4-8, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1989} + - {dataset: IPSL-CM6A-LR, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: MIROC6, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3339} + - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: MPI-ESM1-2-HR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: MRI-ESM2-0, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + # parent_time_units not correct, incorrect start year for piControl + - {dataset: NESM3, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: SAM0-UNICON, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1989} + piControl: + <<: *tcr_settings + project: CMIP6 + exp: piControl + additional_datasets: + # No monthly data (parent_time_units not correct) + # - {dataset: AWI-CM-1-1-MR, ensemble: r1i1p1f1, grid: gn, start_year: 2650, end_year: 2789, mip: day} + - {dataset: BCC-CSM2-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + # - {dataset: BCC-ESM1, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: CAMS-CSM1-0, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3169} + - {dataset: CanESM5, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5340} + - {dataset: CESM2, ensemble: r1i1p1f1, grid: gn, start_year: 501, end_year: 640} + - {dataset: CESM2-WACCM, ensemble: r1i1p1f1, grid: gn, start_year: 70, end_year: 209, institute: NCAR} + - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: E3SM-1-0, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 240} + # No 1pctCO2 available + # - {dataset: EC-Earth3, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} + - {dataset: EC-Earth3-Veg, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} + # Only mixed ensemble members available, parent_time_units messed up + # - {dataset: FGOALS-f3-L, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} + # Wrong start year (must be 101) + - {dataset: GFDL-CM4, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 290} + - {dataset: GFDL-ESM4, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 240} + - {dataset: GISS-E2-1-G, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4289} + - {dataset: GISS-E2-1-H, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3319} + - {dataset: HadGEM3-GC31-LL, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + # Data withdrawn + # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2086} + - {dataset: IPSL-CM6A-LR, ensemble: r1i1p1f1, grid: gr, start_year: 1870, end_year: 2009} + - {dataset: MIROC6, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3339} + - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: MPI-ESM1-2-HR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + - {dataset: MRI-ESM2-0, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} + # parent_time_units not correct, incorrect start year for piControl + - {dataset: NESM3, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 689} + - {dataset: SAM0-UNICON, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 413} + - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, start_year: 1960, end_year: 2099} + scripts: + tcr: + <<: *tcr_script + + fig09-42a_cmip6: + title: Fig. 9.42a CMIP6 (ECS vs. GMSAT) + description: Plot ECS vs. GMSAT for CMIP6 models. + themes: + - phys + realms: + - atmos + variables: + tas: + <<: *ecs_settings + project: CMIP6 + additional_datasets: + - {dataset: BCC-CSM2-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: BCC-CSM2-MR, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: BCC-ESM1, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 2110, end_year: 2259} + - {dataset: BCC-ESM1, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: CAMS-CSM1-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3025, end_year: 3174} + - {dataset: CAMS-CSM1-0, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: CanESM5, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5350} + - {dataset: CanESM5, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: CESM2, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} + - {dataset: CESM2, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: CESM2-WACCM, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} + - {dataset: CESM2-WACCM, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990, institute: NCAR} + - {dataset: CNRM-CM6-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: CNRM-CM6-1, exp: historical, ensemble: r1i1p1f2, grid: gr, start_year: 1961, end_year: 1990} + - {dataset: CNRM-ESM2-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: CNRM-ESM2-1, exp: historical, ensemble: r1i1p1f2, grid: gr, start_year: 1961, end_year: 1990} + - {dataset: E3SM-1-0, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 250} + - {dataset: E3SM-1-0, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} + - {dataset: EC-Earth3-Veg, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 2030, end_year: 2179} + - {dataset: EC-Earth3-Veg, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} + # Wrong start year (must be 101) + - {dataset: GFDL-CM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} + - {dataset: GFDL-CM4, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} + - {dataset: GFDL-ESM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 250} + - {dataset: GFDL-ESM4, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} + - {dataset: GISS-E2-1-G, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4299} + - {dataset: GISS-E2-1-G, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: GISS-E2-1-H, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3329} + - {dataset: GISS-E2-1-H, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: HadGEM3-GC31-LL, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: HadGEM3-GC31-LL, exp: historical, ensemble: r1i1p1f3, grid: gn, start_year: 1961, end_year: 1990} + # Wrong start year for piControl (must be 2099), data withdrawn + # - {dataset: INM-CM5-0, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 2499, end_year: 2648} + # - {dataset: INM-CM5-0, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} + # Not enough years for piControl run + # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2096} + # - {dataset: INM-CM4-8, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} + - {dataset: IPSL-CM6A-LR, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} + - {dataset: IPSL-CM6A-LR, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} + - {dataset: MIROC6, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} + - {dataset: MIROC6, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: MIROC-ES2L, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MIROC-ES2L, exp: historical, ensemble: r1i1p1f2, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: MPI-ESM1-2-HR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MPI-ESM1-2-HR, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: MRI-ESM2-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} + - {dataset: MRI-ESM2-0, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + # parent_time_units not correct (must start in 1300) + - {dataset: NESM3, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 699} + - {dataset: NESM3, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + - {dataset: SAM0-UNICON, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 423} + - {dataset: SAM0-UNICON, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} + # - {dataset: UKESM1-0-LL, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 2250, end_year: 2399} + # - {dataset: UKESM1-0-LL, exp: historical, ensemble: r1i1p1f2, grid: gn, start_year: 1961, end_year: 1990} + scripts: + fig09-42a: + <<: *fig09_42a_script + ancestors: ['tas', 'ecs_cmip6/ecs'] + axes_functions: + <<: *axes_functions + set_title: GMSAT vs. ECS for CMIP6 models + dataset_style: cmip6 + + fig09-42b_cmip6: + title: Fig. 9.42b CMIP6 (TCR vs. ECS) + description: Plot TCR vs. ECS for CMIP6 models. + themes: + - phys + realms: + - atmos + scripts: + fig09-42b: + <<: *fig09_42b_script + ancestors: ['ecs_cmip6/ecs', 'tcr_cmip6/tcr'] + dataset_style: cmip6 diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_945a.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_945a.yml new file mode 100644 index 0000000000..98a1b3365d --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_945a.yml @@ -0,0 +1,108 @@ +# ESMValTool +# recipe_flato13ipcc_figure945a.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.45a + + description: | + Reproducing selected Figure 9.45a from IPCC AR5, chap. 9 (Flato et al., 2013). + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +diagnostics: + + # *********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.45a + # *********************************************************************** + # Scatterplot of springtime snow-albedo effect values in climate + # change vs. springtime d(alpha_s)/d(T_s) values in the seasonal + # cycle in transient climate change experiments. + # *********************************************************************** + + fig09-45a: + title: Fig. 9.45a (snow-albedo feedback) + description: springtime snow-albedo feedback values vs. seasonal cycle + themes: + - EC + realms: + - atmos + variables: + alb: + mip: Amon + project: CMIP5 + ensemble: r1i1p1 + reference_dataset: ISCCP-FH + derive: true + additional_datasets: + - {dataset: ISCCP-FH, project: OBS, type: sat, version: v0, start_year: 1984, end_year: 2000, tier: 2} + tas: + mip: Amon + project: CMIP5 + ensemble: r1i1p1 + reference_dataset: ERA-Interim + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, start_year: 1984, end_year: 2000, tier: 3} + rsdt: + mip: Amon + project: CMIP5 + ensemble: r1i1p1 + reference_dataset: ISCCP-FH + additional_datasets: + - {dataset: ISCCP-FH, project: OBS, type: sat, version: v0, start_year: 1984, end_year: 2000, tier: 2} + additional_datasets: + - {dataset: bcc-csm1-1, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: bcc-csm1-1, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: CanESM2, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: CanESM2, exp: rcp45, start_year: 2101, end_year: 2200} + # - {dataset: CCSM4, exp: historical, start_year: 1901, end_year: 2000} + # - {dataset: CCSM4, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: CNRM-CM5, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: CNRM-CM5, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: CSIRO-Mk3-6-0, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: CSIRO-Mk3-6-0, exp: rcp45, start_year: 2101, end_year: 2200} + # - {dataset: GFDL-CM3, exp: historical, start_year: 1901, end_year: 2000} + # - {dataset: GFDL-CM3, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: GISS-E2-H, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: GISS-E2-H, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: GISS-E2-R, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: GISS-E2-R, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: IPSL-CM5A-LR, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: IPSL-CM5A-LR, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: MIROC-ESM, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: MIROC-ESM, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: MPI-ESM-LR, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: MPI-ESM-LR, exp: rcp45, start_year: 2101, end_year: 2200} + - {dataset: NorESM1-M, exp: historical, start_year: 1901, end_year: 2000} + - {dataset: NorESM1-M, exp: rcp45, start_year: 2101, end_year: 2200} + scripts: + fig09_45a: + script: emergent_constraints/snowalbedo.ncl + exp_presentday: historical + exp_future: rcp45 + legend_outside: false + xmin: -1.7 + xmax: -0.3 + ymin: -1.7 + ymax: -0.3 + styleset: "CMIP5" diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_96.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_96.yml new file mode 100644 index 0000000000..2c473b17cb --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_96.yml @@ -0,0 +1,397 @@ +# ESMValTool +# recipe_flato13ipcc_figure_96.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.6 + + description: | + Reproducing Fig. 9.6 from IPCC AR5, chap. 9 (Flato et al., 2013). + Processing of CMIP3 models currently works only in serial mode, due to + an issue in the input data still under investigation. CMIP3 models + are used in diagnostics for Fig. 9.6 in this recipe. + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + +preprocessors: + + regrid_4_5: + regrid: + target_grid: 4x5 + scheme: linear + +diagnostics: + + # *************************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.6 + # *************************************************************************** + # Centred pattern correlations between models and observations for + # the annual mean climatology over the period 1980-1999. + # *************************************************************************** + + fig09-6_tas: + title: Fig. 9.6 (near-surface temperature) + description: Calculate pattern correlation for tas + variables: + tas: + preprocessor: regrid_4_5 + reference_dataset: ERA-Interim + alternative_dataset: NCEP-NCAR-R1 + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Amon + field: T2Ms + start_year: 1980 + end_year: 1999 + additional_datasets: + - &cmip3 {dataset: bccr_bcm2_0, institute: BCCR, project: CMIP3, mip: A1, modeling_realm: atm, exp: 20c3m, frequency: mo, ensemble: run1} + - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} + - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} + - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} + - {<<: *cmip3, dataset: giss_aom, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} + - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} + - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} + - {<<: *cmip3, dataset: inmcm3_0, institute: INM} + - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} + - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} + - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} + - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} + - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} + - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} + - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} + - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} + + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + - {dataset: CanCM4} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + - {dataset: CNRM-CM5} + - {dataset: CNRM-CM5-2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R} + - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MIROC4h} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + - {dataset: NCEP-NCAR-R1, project: OBS6, type: reanaly, version: 1, tier: 2} + scripts: + fig09-6_pattern_cor: &fig09_6_pattern_cor + script: ipcc_ar5/ch09_fig09_6.ncl + + fig09-6_rlut: + title: Fig. 9.6 (TOA longwave radiation) + description: Calculate pattern correlation for all-sky longwave radiation + variables: + rlut: + preprocessor: regrid_4_5 + reference_dataset: CERES-EBAF + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Amon + field: T2Ms + start_year: 1980 + end_year: 1999 + additional_datasets: + - {<<: *cmip3, dataset: bccr_bcm2_0, institute: BCCR} + - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} + - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} + - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} + - {<<: *cmip3, dataset: giss_aom, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} + - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} + - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} + - {<<: *cmip3, dataset: inmcm3_0, institute: INM} + - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} + - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} + - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} + - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} + - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} + - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} + - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} + - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} + + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + # - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + - {dataset: CanCM4} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + - {dataset: CNRM-CM5} + - {dataset: CNRM-CM5-2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R} + - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MIROC4h} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2003, end_year: 2011} + scripts: + fig09-6_pattern_cor: + <<: *fig09_6_pattern_cor + + fig09-6_pr: + title: Fig. 9.6 (precipitation) + description: Calculate pattern correlation for precipitation + variables: + pr: + preprocessor: regrid_4_5 + reference_dataset: GPCP-SG + alternative_dataset: GHCN + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Amon + field: T2Ms + start_year: 1980 + end_year: 1999 + additional_datasets: + - {<<: *cmip3, dataset: bccr_bcm2_0, institute: BCCR} + - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} + - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} + - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} + - {<<: *cmip3, dataset: giss_aom, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} + - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} + - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} + - {<<: *cmip3, dataset: inmcm3_0, institute: INM} + - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} + - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} + - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} + - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} + - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} + - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} + - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} + - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} + + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + - {dataset: CanCM4} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + - {dataset: CNRM-CM5} + - {dataset: CNRM-CM5-2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R} + - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MIROC4h} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + + - {dataset: GPCP-SG, project: obs4MIPs, level: L3, version: v2.2, tier: 1} + - {dataset: GHCN, project: OBS, type: ground, version: 1, tier: 2} + scripts: + fig09-6_pattern_cor: + <<: *fig09_6_pattern_cor + + fig09-6_swcre: + title: Fig. 9.6 (shortwave CRE) + description: Calculate pattern correlation for shortwave cloud radiative effect + variables: + swcre: + preprocessor: regrid_4_5 + reference_dataset: CERES-EBAF + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Amon + field: T2Ms + start_year: 1980 + end_year: 1999 + derive: true + force_derivation: false + additional_datasets: + - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} + - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} + - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} + - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} + - {<<: *cmip3, dataset: inmcm3_0, institute: INM} + - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} + - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} + - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} + - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} + - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} + - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} + - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} + - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} + + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CNRM-CM5} + - {dataset: CNRM-CM5-2} + - {dataset: FGOALS-g2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R} + - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MIROC4h} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2003, end_year: 2011} + scripts: + fig09-6_pattern_cor: + <<: *fig09_6_pattern_cor + + ### COLLECT CORRELATIONS AND PLOT ########################################### + fig09-6_cor_collect: + description: Wrapper to collect and plot previously calculated correlations + scripts: + fig09-6_cor_collect: + script: ipcc_ar5/ch09_fig09_6_collect.ncl + ancestors: ['*/fig09-6_pattern_cor'] + diag_order: ['fig09-6_tas', 'fig09-6_rlut', 'fig09-6_pr'] diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_98.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_98.yml new file mode 100644 index 0000000000..7390d12d36 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figure_98.yml @@ -0,0 +1,151 @@ +# ESMValTool +# recipe_flato13ipcc_figure_98.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.8 + + description: | + Reproducing selected Fig. 9.8 from IPCC AR5, chap. 9 (Flato et al., 2013). + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +preprocessors: + + clim_ref: + regrid: + target_grid: reference_dataset + scheme: linear + multi_model_statistics: + span: overlap + statistics: [mean] + exclude: [reference_dataset] + + +diagnostics: + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.8 + # ********************************************************************** + # Time series of anomalies of annual and global surface temperature + # ********************************************************************** + + fig09-8: + title: Fig. 9.8 (near-surface temperature) + description: IPCC AR5 Ch. 9, Fig. 9.8 (near-surface temperature) + themes: + - phys + realms: + - atmos + variables: + tas: + preprocessor: clim_ref + reference_dataset: HadCRUT4 + mip: Amon + project: CMIP5 + exp: [historical, rcp45] + ensemble: r1i1p1 + start_year: 1870 + end_year: 2017 + additional_datasets: + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) + # - {dataset: bcc-csm1-1} + # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + # - {dataset: CanCM4} + # - {dataset: CanESM2} + # rcp starts with year 2005 - not 2006 + # - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + # - {dataset: CESM1-CAM5-1-FV2} + # no rcp45 at DKRZ + # - {dataset: CESM1-FASTCHEM} + # no historival and rcp45 from the same exp + # - {dataset: CESM1-WACCM} + # no rcp45 at DKRZ + # - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + # no rcp45 at DKRZ + # - {dataset: CNRM-CM5} + # no rcp45 at DKRZ + # - {dataset: CNRM-CM5-2} + - {dataset: CSIRO-Mk3-6-0} + # - {dataset: EC-EARTH, ensemble: r6i1p1} + # - {dataset: FGOALS-g2} + # - {dataset: FGOALS-s2} + - {dataset: FIO-ESM} + # Historical data end year is 2040, not 2005 (overlaps with RCP4.5) + # - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H, ensemble: r1i1p2} + # Historical data end year is 2010, not 2005 (overlaps with RCP4.5) + # - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R, ensemble: r1i1p2} + # Historical data end year is 2010, not 2005 (overlaps with RCP4.5) + # - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + # dataset ends November 2005 + # - {dataset: HadGEM2-CC} + # dataset ends November 2005 + # - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + # - {dataset: MIROC4h} + # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) + # - {dataset: MIROC5} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + # no rcp45 at DKRZ + # - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + # no rcp45 at DKRZ + # - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + - {dataset: HadCRUT4, project: OBS, type: ground, version: 1, + start_year: 1870, end_year: 2017, tier: 2} + scripts: + fig09-8: + script: ipcc_ar5/tsline.ncl + time_avg: "yearly" + ts_anomaly: "anom" + ref_start: 1961 + ref_end: 1990 + ref_mask: True + plot_units: "degC" + y_min: -1.2 + y_max: 1.5 + volcanoes: True + styleset: CMIP5 # Plot style diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_926_927.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_926_927.yml new file mode 100644 index 0000000000..a44bca6644 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_926_927.yml @@ -0,0 +1,186 @@ +# ESMValTool +# recipe_flato13ipcc_figures_926_927.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics for 9.26 and 9.27 + + description: | + Reproducing selected figures from IPCC AR5, chap. 9 (Flato et al., 2013) + 9.26, 9.27. + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +preprocessors: + + land_fraction_weighting: + weighting_landsea_fraction: &weighting_options + area_type: land + exclude: [ + # 'bcc-csm1-1-m', + 'GCP2018', + # 'inmcm4', + 'JMA-TRANSCOM', + ] + + sea_fraction_weighting: + weighting_landsea_fraction: + <<: *weighting_options + area_type: sea + regrid: + target_grid: 2x2 + scheme: linear + + +diagnostics: + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.26 + # ********************************************************************** + # Ensemble-mean global ocean carbon uptake (top) and global land + # carbon uptake (bottom) in the CMIP5 ESMs for the historical period + # 1901-2005. + # ********************************************************************** + + fig09-26top: + title: Fig. 9.26a (carbon uptake) + variables: + fgco2: &fgco2_settings + preprocessor: sea_fraction_weighting + project: CMIP5 + mip: Omon + exp: historical + ensemble: r1i1p1 + start_year: 1901 + end_year: 2005 + reference_dataset: JMA-TRANSCOM + plot_units: PgC y-1 + additional_datasets: + - {dataset: JMA-TRANSCOM, project: OBS, type: reanaly, version: 2018, tier: 3, start_year: 1986, end_year: 2005} + # - {dataset: CanESM2} + # - {dataset: CESM1-BGC} + # - {dataset: GFDL-ESM2G} + # - {dataset: GFDL-ESM2M} + # - {dataset: HadGEM2-CC} + # - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + # - {dataset: IPSL-CM5A-LR} + # - {dataset: IPSL-CM5A-MR} + # - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM, supplementary_variables: [{short_name: sftlf, mip: fx, ensemble: r0i0p0}, {short_name: sftof, skip: true}]} + - {dataset: MIROC-ESM-CHEM, supplementary_variables: [{short_name: sftlf, mip: fx, ensemble: r0i0p0}, {short_name: sftof, skip: true}]} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: NorESM1-ME} + fgco2_GCP2018: + <<: *fgco2_settings + preprocessor: default + short_name: fgco2 + additional_datasets: + - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1959, end_year: 2005, frequency: yr} + scripts: + main_global: &fig09_26_settings + script: carbon_cycle/main.ncl + styleset: CMIP5 + region: global + legend_year_outside: false + legend_outside: false + sort: true + anav_month: true + seasonal_cycle_plot: false + errorbar_plot: false + mean_IAV_plot: false + evolution_plot: true + evolution_plot_volcanoes: false + evolution_plot_anomaly: false + evolution_plot_ref_dataset: GCP2018 + + fig09-26bottom: + title: Fig. 9.26b (carbon uptake) + variables: + nbp: + <<: *fgco2_settings + preprocessor: land_fraction_weighting + mip: Lmon + additional_datasets: &nbp_datasets + - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1959, end_year: 2005, frequency: yr} + - {dataset: JMA-TRANSCOM, project: OBS, type: reanaly, version: 2018, tier: 3, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM} + - {dataset: CanESM2} + - {dataset: CESM1-BGC} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: NorESM1-ME} + scripts: + main_global: + <<: *fig09_26_settings + + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.27 + # ********************************************************************** + # Simulation of global mean (a) atmosphere-ocean CO2 fluxes (fgCO2) + # and (b) net atmosphere-land CO2 fluxes (NBP), by ESMs for the + # period 1986-2005. + # ********************************************************************** + + fig09-27top: + title: Fig. 9.27a (CO2 fluxes) + variables: + fgco2: + <<: *fgco2_settings + start_year: 1986 + fgco2_GCP2018: + <<: *fgco2_settings + preprocessor: default + short_name: fgco2 + additional_datasets: + - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1986, end_year: 2005, frequency: yr} + scripts: + main_global: &fig09_27_settings + <<: *fig09_26_settings + errorbar_plot: true + evolution_plot: false + + fig09-27bottom: + variables: + nbp: + <<: *fgco2_settings + preprocessor: default + mip: Lmon + start_year: 1986 + additional_datasets: *nbp_datasets + scripts: + main_global: + <<: *fig09_27_settings diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_92_95.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_92_95.yml new file mode 100644 index 0000000000..298b2bbc07 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_92_95.yml @@ -0,0 +1,688 @@ +# ESMValTool +# recipe_flato13ipcc_figures_92_95.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics 9.2-9.5 + + description: | + Reproducing selected figures from IPCC AR5, chap. 9 (Flato et al., 2013) + 9.2, 9.3, 9.4, 9.5. + Data sets taken out were part of the original publication but are + currently not available on ESGF. + + authors: + - bock_lisa + - gier_bettina + - lauer_axel + - schlund_manuel + - senftleben_daniel + - zimmermann_klaus + + maintainer: + - lauer_axel + + references: + - flato13ipcc + + projects: + - embrace + - esmval + - crescendo + + +preprocessors: + + clim: + regrid: + target_grid: 2x2 + scheme: linear + mask_fillvalues: + threshold_fraction: 0.95 + multi_model_statistics: + span: overlap + statistics: [mean] + exclude: [reference_dataset] + + clim_ref_9-3: + regrid: + target_grid: reference_dataset + scheme: linear + mask_fillvalues: + threshold_fraction: 0.95 + multi_model_statistics: + span: overlap + statistics: [mean] + exclude: [reference_dataset] + convert_units: + units: degC + +diagnostics: + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.2 a/b/c + # ********************************************************************** + # Multi model mean, multi model mean bias, and mean absolute error + # (geographical distributions) + # ********************************************************************** + + fig09-2: + title: Fig. 9.2 (near-surface temperature) + description: IPCC AR5 Ch. 9, Fig. 9.2 (near-surface temperature) + themes: + - phys + realms: + - atmos + variables: + tas: + preprocessor: clim + reference_dataset: ERA-Interim + mip: Amon + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, + start_year: 1986, end_year: 2005, tier: 3} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + scripts: + fig09-2: &fig-9-2_and_9-4_settings + script: clouds/clouds_bias.ncl + projection: Robinson + timemean: annualclim + plot_abs_diff: true + plot_rel_diff: false + + # *************************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.3 + # *************************************************************************** + # Multi model mean seasonality, mean absolute seasonality, mean bias + # in seasonality, and mean bias in absolute seasonality + # *************************************************************************** + + fig09-3: + title: Fig. 9.3 (near-surface temperature) + description: Calculate seasonality of multi-model mean for tas + themes: + - phys + realms: + - atmos + variables: + tas: + preprocessor: clim_ref_9-3 + reference_dataset: ERA-Interim + project: CMIP5 + exp: historical + ensemble: r1i1p1 + mip: Amon + start_year: 1980 + end_year: 2005 + additional_datasets: + - {dataset: ACCESS1-0} + - {dataset: ACCESS1-3} + - {dataset: bcc-csm1-1} + # - {dataset: bcc-csm1-1-m} + - {dataset: BNU-ESM} + - {dataset: CanCM4} + - {dataset: CanESM2} + - {dataset: CCSM4} + - {dataset: CESM1-BGC} + - {dataset: CESM1-CAM5} + - {dataset: CESM1-FASTCHEM} + - {dataset: CESM1-WACCM} + - {dataset: CMCC-CESM} + - {dataset: CMCC-CM} + - {dataset: CMCC-CMS} + - {dataset: CNRM-CM5} + - {dataset: CNRM-CM5-2} + - {dataset: FIO-ESM} + - {dataset: GFDL-CM2p1} + - {dataset: GFDL-CM3} + - {dataset: GFDL-ESM2G} + - {dataset: GFDL-ESM2M} + - {dataset: GISS-E2-H} + - {dataset: GISS-E2-H-CC} + - {dataset: GISS-E2-R} + - {dataset: GISS-E2-R-CC} + - {dataset: HadCM3} + - {dataset: HadGEM2-AO} + - {dataset: HadGEM2-CC} + - {dataset: HadGEM2-ES} + # - {dataset: inmcm4} + - {dataset: IPSL-CM5A-LR} + - {dataset: IPSL-CM5A-MR} + - {dataset: IPSL-CM5B-LR} + - {dataset: MIROC-ESM} + - {dataset: MIROC-ESM-CHEM} + - {dataset: MIROC4h} + - {dataset: MIROC5} + - {dataset: MPI-ESM-LR} + - {dataset: MPI-ESM-MR} + - {dataset: MPI-ESM-P} + - {dataset: MRI-CGCM3} + - {dataset: MRI-ESM1} + - {dataset: NorESM1-M} + - {dataset: NorESM1-ME} + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + scripts: + fig09-3: + script: ipcc_ar5/ch09_fig09_3.ncl + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.4 + # ********************************************************************** + # Multi model mean, multi model mean bias, mean absolute error, and + # mean relative error (geographical ditributions) + # ********************************************************************** + + fig09-4: + title: Fig. 9.4 (precipitation) + description: IPCC AR5 Ch. 9, Fig. 9.4 (precipitation) + themes: + - clouds + realms: + - atmos + variables: + pr: + preprocessor: clim + reference_dataset: GPCP-SG + mip: Amon + additional_datasets: + - {dataset: GPCP-SG, project: obs4MIPs, level: L3, version: v2.2, + start_year: 1986, end_year: 2005, tier: 1} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + scripts: + fig09-4: + <<: *fig-9-2_and_9-4_settings + plot_abs_diff: true + plot_rel_diff: true + + # ********************************************************************** + # Flato et al. (2013) - IPCC AR5, chap. 9 + # similar to fig. 9.5 + # ********************************************************************** + # Difference of multi-model mean and reference data set (geographical + # distribution, annual mean) + zonal averages of individual models + # and multi-model mean (annual means). + # ********************************************************************** + + fig09-5a: + title: Fig. 9.5a (shortwave CRE) + description: differences of multi-model mean and reference dataset + themes: + - clouds + realms: + - atmos + variables: + swcre: + preprocessor: clim + reference_dataset: CERES-EBAF + mip: Amon + derive: true + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, + start_year: 2001, end_year: 2010, tier: 1} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + scripts: + fig09-5a: &fig-9-5_settings + script: clouds/clouds_ipcc.ncl + projection: Robinson + colormap: WhiteBlueGreenYellowRed + timemean: annualclim + + fig09-5b: + title: Fig. 9.5b (longwave CRE) + description: differences of multi-model mean and reference dataset + themes: + - clouds + realms: + - atmos + variables: + lwcre: + preprocessor: clim + reference_dataset: CERES-EBAF + mip: Amon + derive: true + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, + start_year: 2001, end_year: 2010, tier: 1} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + scripts: + fig09-5b: + <<: *fig-9-5_settings + + fig09-5c: + title: Fig. 9.5c (net CRE) + description: differences of multi-model mean and reference dataset + themes: + - clouds + realms: + - atmos + variables: + netcre: + preprocessor: clim + reference_dataset: CERES-EBAF + mip: Amon + derive: true + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, + start_year: 2001, end_year: 2010, tier: 1} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, + # ensemble: r1i1p1, start_year: 1986, end_year: 2005} + # - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, + # start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, + ensemble: r1i1p1, start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, + start_year: 1986, end_year: 2005} + scripts: + fig09-5c: + <<: *fig-9-5_settings + diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip3.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip3.yml new file mode 100644 index 0000000000..87749ce222 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip3.yml @@ -0,0 +1,367 @@ +# ESMValTool +# recipe_flato13ipcc_figures_938_941_cmip3.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics to reproduce regional figures 9.38-9.41 + description: | + Reproducing selected figures from IPCC AR5, chap. 9 (Flato et al., 2013) + 9.38, 9.39, 9.40, 9.41. + Differences to the IPCC version: + - No CMIP3 A1B runs included, therefore the time series stops in 1999 + - CRU data version 4.02 instead of 3.10 + - Not exactly the same CMIP3 and CMIP5 models and version. + Processing of CMIP3 models currently works only in serial mode, due to + an issue in the input data still under investigation. + Data sets comented out are currently not available on DKRZ. + + authors: + - cionni_irene + + maintainer: + - weigel_katja + + references: + - flato13ipcc + - seneviratne12ipcc + + projects: + - crescendo + +datasets: + - &cmip3 {dataset: bccr_bcm2_0, institute: BCCR, project: CMIP3, mip: A1, modeling_realm: atm, exp: 20c3m, frequency: mo, ensemble: run1} + - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} + - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} + - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} + - {<<: *cmip3, dataset: giss_aom, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} + - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} + - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} + - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} + - {<<: *cmip3, dataset: inmcm3_0, institute: INM} + - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} + - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} + - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} + - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} + - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} + - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} + - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} + - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: FGOALS-g2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1} + + +preprocessors: + annual_cycle: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_landsea: + fx_variables: null + mask_out: sea + mask_fillvalues: + threshold_fraction: 0.95 + annual_cycle_pr: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_landsea: + fx_variables: null + mask_out: sea + mask_fillvalues: + threshold_fraction: 0.66 + + clima_nomask: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_fillvalues: + threshold_fraction: 0.95 + clima_nomask_pr: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_fillvalues: + threshold_fraction: 0.66 + regr: + regrid: + target_grid: reference_dataset + scheme: linear + +diagnostics: + + # ========================================================================== + # Chapter 9 - Figure938 + # ========================================================================== + regional_downscaling_Fig938tas: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig938_settings + script: regional_downscaling/Figure9.38.ncl + styleset: CMIP356 + fig938_region_label: ["WNA", "ENA", "CAM", "TSA", "SSA", "EUM", "NAF", + "CAF", "SAF", "NAS", "CAS", "EAS", "SAS", "SEA", + "AUS"] + fig938_project_MMM: ["CMIP5", "CMIP3"] + fig938_experiment_MMM: ["historical", "20c3m"] + fig938_mip_MMM: ["Amon", "A1"] + fig938_colors_MMM: ["red", "blue"] + fig938_refModel: ERA-Interim + fig938_MMM: true + fig938_diff: false + regional_downscaling_Fig938pr: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: annual_cycle_pr + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: + <<: *Fig938_settings + + # ========================================================================== + # Chapter 9 - Figure939 + # ========================================================================== + regional_downscaling_Fig939tas: + description: Creates seasonal or annual bias box plots at selected + regions over the selected project&experiemnt&mip over + the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1986 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + + scripts: + clim: &Fig939_settings + script: regional_downscaling/Figure9.39.ncl + styleset: CMIP356 + fig939_season: ["DJF", "JJA", "ANN"] + fig939_region_label: ["ALAs", "CGIs", "WNAs", "CNAs", "ENAs", "CAMs", + "AMZs", "NEBs", "WSAs", "SSAs", "NEUs", "CEUs", + "MEDs", "SAHs", "WAFs", "EAFs", "SAFs", "NASs", + "WASs", "CASs", "TIBs", "EASs", "SASs", "SEAs", + "NAUs", "SAUs"] + fig939_project_MMM: ["CMIP5", "CMIP3"] + fig939_experiment_MMM: ["historical", "20c3m"] + fig939_mip_MMM: ["Amon", "A1"] + fig939_MMM: true + fig939_YMin: -11 + fig939_YMax: 8 + + regional_downscaling_Fig939pr: + description: Creates seasonal or annual bias box plots at selected + regions over the selected project&experiemnt&mip over + the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: annual_cycle_pr + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1986 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + + scripts: + clim: + script: regional_downscaling/Figure9.39.ncl + styleset: CMIP356 + fig939_season: ["ONDJFM", "AMJJAS", "ANN"] + fig939_region_label: ["ALAs", "CGIs", "WNAs", "CNAs", "ENAs", "CAMs", + "AMZs", "NEBs", "WSAs", "SSAs", "NEUs", "CEUs", + "MEDs", "SAHs", "WAFs", "EAFs", "SAFs", "NASs", + "WASs", "CASs", "TIBs", "EASs", "SASs", "SEAs", + "NAUs", "SAUs"] + fig939_project_MMM: ["CMIP5", "CMIP3"] + fig939_experiment_MMM: ["historical", "20c3m"] + fig939_mip_MMM: ["Amon", "A1"] + fig939_MMM: true + fig939_mode: true + fig939_YMin: -100 + fig939_YMax: 300 + + + # ========================================================================== + # Chapter 9 - Figure940 + # ========================================================================== + regional_downscaling_Fig940tas: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: clima_nomask + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1986 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig940_settings + script: regional_downscaling/Figure9.40.ncl + styleset: CMIP356 + fig940_season: ["DJF", "JJA", "ANN"] + fig940_region_label: ["Arctic_land", "Arctic_sea", "Antarctic_land", + "Antarctic_sea", "Caribbean", + "WesternIndianOcean", + "NorthernIndianOcean", "NorthernTropicalPacific", + "EquatorialTropicalPacific", + "SouthernTropicalPacific", "World_land", + "World_sea", "World"] + fig940_project_MMM: ["CMIP5", "CMIP3"] + fig940_experiment_MMM: ["historical", "20c3m"] + fig940_mip_MMM: ["Amon", "A1"] + fig940_MMM: true + fig940_YMin: -12 + fig940_YMax: 6 + + regional_downscaling_Fig940pr: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: clima_nomask_pr + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1986 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: + <<: *Fig940_settings + fig940_mode: true + fig940_season: ["ONDJFM", "AMJJAS", "ANN"] + fig940_YMin: -100 + fig940_YMax: 150 + + + + # ========================================================================== + # Chapter 9 - Figure941 + # ========================================================================== + regional_downscaling_Fig941: + description: + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: regr + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1961 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig941_settings + script: regional_downscaling/Figure9.41.ncl + fig941_region_label: ["MEDs"] + styleset: CMIP356 diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip6.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip6.yml new file mode 100644 index 0000000000..f679af0a8c --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_flato13ipcc_figures_938_941_cmip6.yml @@ -0,0 +1,367 @@ +# ESMValTool +# recipe_flato13ipcc_figures_938_941_cmip6.yml +--- +documentation: + title: IPCC AR5, chap. 9 diagnostics to reproduce regional figures 9.38-9.41 + unsing CMIP6 data + description: | + Reproducing selected figures from IPCC AR5, chap. 9 (Flato et al., 2013) + 9.38, 9.39, 9.40, 9.41. + Differences to the IPCC version: + - CMIP6 instead of CMIP3 data + - CRU data version 4.02 instead of 3.10 + - Not exactly the same CMIP5 models and version. + + authors: + - cionni_irene + + maintainer: + - weigel_katja + + references: + - flato13ipcc + - seneviratne12ipcc + + projects: + - crescendo + +datasets: + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: FGOALS-g2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: BCC-CSM2-MR, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: BCC-ESM1, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: CAMS-CSM1-0, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: CanESM5, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: CESM2, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: CESM2-WACCM, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn, institute: NCAR} + - {dataset: CNRM-CM6-1, project: CMIP6, exp: historical, ensemble: r1i1p1f2, grid: gr} + - {dataset: CNRM-ESM2-1, project: CMIP6, exp: historical, ensemble: r1i1p1f2, grid: gr} + - {dataset: E3SM-1-0, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gr} + - {dataset: EC-Earth3-Veg, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gr} + - {dataset: GFDL-CM4, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gr1} + - {dataset: GFDL-ESM4, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gr1} + - {dataset: GISS-E2-1-G, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: GISS-E2-1-H, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: historical, ensemble: r1i1p1f3, grid: gn} + - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gr} + - {dataset: MIROC6, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: MIROC-ES2L, project: CMIP6, exp: historical, ensemble: r1i1p1f2, grid: gn} + - {dataset: MPI-ESM1-2-HR, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: MRI-ESM2-0, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: NESM3, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + - {dataset: SAM0-UNICON, project: CMIP6, exp: historical, ensemble: r1i1p1f1, grid: gn} + + +preprocessors: + annual_cycle: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_landsea: + fx_variables: null + mask_out: sea + mask_fillvalues: + threshold_fraction: 0.95 + annual_cycle_pr: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_landsea: + fx_variables: null + mask_out: sea + mask_fillvalues: + threshold_fraction: 0.66 + + clima_nomask: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_fillvalues: + threshold_fraction: 0.95 + clima_nomask_pr: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_fillvalues: + threshold_fraction: 0.66 + regr: + regrid: + target_grid: reference_dataset + scheme: linear + +diagnostics: + + # ========================================================================== + # Chapter 9 - Figure938 + # ========================================================================== + regional_downscaling_Fig938tas: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig938_settings + script: regional_downscaling/Figure9.38.ncl + styleset: CMIP356 + fig938_region_label: ["WNA", "ENA", "CAM", "TSA", "SSA", "EUM", "NAF", + "CAF", "SAF", "NAS", "CAS", "EAS", "SAS", "SEA", + "AUS"] + fig938_project_MMM: ["CMIP5", "CMIP6"] + fig938_experiment_MMM: ["historical", "historical"] + fig938_mip_MMM: ["Amon", "Amon"] + fig938_colors_MMM: ["red", "blue"] + fig938_refModel: ERA-Interim + fig938_MMM: true + fig938_diff: false + + + regional_downscaling_Fig938pr: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: annual_cycle_pr + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: + <<: *Fig938_settings + + # ========================================================================== + # Chapter 9 - Figure939 + # ========================================================================== + regional_downscaling_Fig939tas: + description: Creates seasonal or annual bias box plots at selected + regions over the selected project&experiemnt&mip over + the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 2005 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + + scripts: + clim: &Fig939_settings + script: regional_downscaling/Figure9.39.ncl + styleset: CMIP356 + fig939_season: ["DJF", "JJA", "ANN"] + fig939_region_label: ["ALAs", "CGIs", "WNAs", "CNAs", "ENAs", "CAMs", + "AMZs", "NEBs", "WSAs", "SSAs", "NEUs", "CEUs", + "MEDs", "SAHs", "WAFs", "EAFs", "SAFs", "NASs", + "WASs", "CASs", "TIBs", "EASs", "SASs", "SEAs", + "NAUs", "SAUs"] + fig939_project_MMM: ["CMIP5", "CMIP6"] + fig939_experiment_MMM: ["historical", "historical"] + fig939_mip_MMM: ["Amon", "Amon"] + fig939_MMM: true + fig939_YMin: -11 + fig939_YMax: 8 + + regional_downscaling_Fig939pr: + description: Creates seasonal or annual bias box plots at selected + regions over the selected project&experiemnt&mip over + the selected project&experiemnt&mip + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: annual_cycle_pr + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 2005 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + + scripts: + clim: + script: regional_downscaling/Figure9.39.ncl + styleset: CMIP356 + fig939_season: ["ONDJFM", "AMJJAS", "ANN"] + fig939_region_label: ["ALAs", "CGIs", "WNAs", "CNAs", "ENAs", "CAMs", + "AMZs", "NEBs", "WSAs", "SSAs", "NEUs", "CEUs", + "MEDs", "SAHs", "WAFs", "EAFs", "SAFs", "NASs", + "WASs", "CASs", "TIBs", "EASs", "SASs", "SEAs", + "NAUs", "SAUs"] + fig939_project_MMM: ["CMIP5", "CMIP6"] + fig939_experiment_MMM: ["historical", "historical"] + fig939_mip_MMM: ["Amon", "Amon"] + fig939_MMM: true + fig939_mode: true + fig939_YMin: -100 + fig939_YMax: 300 + + # ========================================================================== + # Chapter 9 - Figure940 + # ========================================================================== + regional_downscaling_Fig940tas: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: clima_nomask + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 2005 + additional_datasets: + # - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} + scripts: + clim: &Fig940_settings + script: regional_downscaling/Figure9.40.ncl + styleset: CMIP356 + fig940_season: ["DJF", "JJA", "ANN"] + fig940_region_label: ["Arctic_land", "Arctic_sea", "Antarctic_land", + "Antarctic_sea", "Caribbean", + "WesternIndianOcean", + "NorthernIndianOcean", "NorthernTropicalPacific", + "EquatorialTropicalPacific", + "SouthernTropicalPacific", "World_land", + "World_sea", "World"] + fig940_project_MMM: ["CMIP5", "CMIP6"] + fig940_experiment_MMM: ["historical", "historical"] + fig940_mip_MMM: ["Amon", "Amon"] + fig940_MMM: true + fig940_YMin: -12 + fig940_YMax: 6 + + regional_downscaling_Fig940pr: + description: Creates annual cycle regional plots for individual models + and mumltimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: clima_nomask_pr + reference_dataset: GPCP-SG + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 2005 + additional_datasets: + - {dataset: GPCP-SG, project: OBS, project: obs4MIPs, level: L3, version: v2.2, tier: 1} + # - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: + <<: *Fig940_settings + fig940_mode: true + fig940_season: ["ONDJFM", "AMJJAS", "ANN"] + fig940_YMin: -100 + fig940_YMax: 150 + + + # ========================================================================== + # Chapter 9 - Figure941 + # ========================================================================== + regional_downscaling_Fig941: + description: + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: regr + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1961 + end_year: 2000 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig941_settings + script: regional_downscaling/Figure9.41.ncl + fig941_region_label: ["MEDs"] + styleset: CMIP356 diff --git a/esmvaltool/recipes/ipccwg1ar5ch9/recipe_weigel21gmd_figures_13_16.yml b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_weigel21gmd_figures_13_16.yml new file mode 100644 index 0000000000..f8500b5547 --- /dev/null +++ b/esmvaltool/recipes/ipccwg1ar5ch9/recipe_weigel21gmd_figures_13_16.yml @@ -0,0 +1,240 @@ +# ESMValTool +# recipe_weigel21gmd_figures_13_16.yml +--- +documentation: + title: Figures from Weigel et al. (2021), + similar but reduces version of IPCC AR5, chap. 9 + regional figures 9.38-9.41 only containing CMIP5 data. + + description: | + Reproducing figures from Weigel et al. (2021) based on + the analysis shown in IPCC AR5, chap. 9 (Flato et al., 2013) + 9.38, 9.39, 9.40, 9.41. + Data sets comented out were part of the original publication but are + currently not available on ESGF. + + authors: + - cionni_irene + + maintainer: + - weigel_katja + + references: + - flato13ipcc + - seneviratne12ipcc + - weigel2021gmd + + projects: + - crescendo + +datasets: + - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical} + - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical} + - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: FGOALS-g2, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-H, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, ensemble: r1i1p1} + # - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical} + - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1} + - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1} + + +preprocessors: + annual_cycle: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_landsea: + fx_variables: null + mask_out: sea + mask_fillvalues: + threshold_fraction: 0.95 + + clima_nomask: + regrid: + target_grid: reference_dataset + scheme: linear + climate_statistics: + operator: mean + period: month + mask_fillvalues: + threshold_fraction: 0.95 + regr: + regrid: + target_grid: reference_dataset + scheme: linear + +diagnostics: + + # ========================================================================== + # Chapter 9 - Figure938 + # ========================================================================== + regional_downscaling_Fig938: + description: Creates annual cycle regional plots for individual models + and multimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, + tier: 3} + scripts: + clim: &Fig938_settings + script: regional_downscaling/Figure9.38.ncl + styleset: CMIP5 + fig938_region_label: ["WNA", "ENA", "CAM", "TSA", "SSA", "EUM", "NAF", + "CAF", "SAF", "NAS", "CAS", "EAS", "SAS", "SEA", + "AUS"] + fig938_project_MMM: ["CMIP5"] + fig938_experiment_MMM: ["historical"] + fig938_mip_MMM: ["Amon"] + fig938_colors_MMM: ["red"] + fig938_refModel: ERA-Interim + fig938_MMM: true + fig938_diff: true + + # ========================================================================== + # Chapter 9 - Figure939 + # ========================================================================== + regional_downscaling_Fig939: + description: Creates seasonal or annual bias box plots at selected + regions over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: annual_cycle + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, + tier: 3} + + scripts: + clim: &Fig939_settings + script: regional_downscaling/Figure9.39.ncl + styleset: CMIP5 + fig939_season: ["DJF", "JJA", "ANN"] + fig939_region_label: ["ALAs", "CGIs", "WNAs", "CNAs", "ENAs", "CAMs", + "AMZs", "NEBs", "WSAs", "SSAs", "NEUs", "CEUs", + "MEDs", "SAHs", "WAFs", "EAFs", "SAFs", "NASs", + "WASs", "CASs", "TIBs", "EASs", "SASs", "SEAs", + "NAUs", "SAUs"] + fig939_project_MMM: ["CMIP5"] + fig939_experiment_MMM: ["historical"] + fig939_mip_MMM: ["Amon"] + fig939_MMM: true + + # ========================================================================== + # Chapter 9 - Figure940 + # ========================================================================== + regional_downscaling_Fig940: + description: Creates annual cycle regional plots for individual models + and multimodel over the selected project&experiemnt&mip. + themes: + - chem + realms: + - atmos + variables: + pr: + preprocessor: clima_nomask + reference_dataset: CRU + mip: Amon + ensemble: r1i1p1 + start_year: 1980 + end_year: 1999 + additional_datasets: + - {dataset: CRU, project: OBS, type: reanaly, version: TS4.02, tier: 2} + scripts: + clim: &Fig940_settings + script: regional_downscaling/Figure9.40.ncl + styleset: CMIP5 + fig940_season: ["DJF", "JJA", "ANN"] + fig940_region_label: ["Arctic_land", "Arctic_sea", "Antarctic_land", + "Antarctic_sea", "Caribbean", + "WesternIndianOcean", + "NorthernIndianOcean", "NorthernTropicalPacific", + "EquatorialTropicalPacific", + "SouthernTropicalPacific", "World_land", + "World_sea", "World"] + fig940_project_MMM: ["CMIP5"] + fig940_experiment_MMM: ["historical"] + fig940_mip_MMM: ["Amon"] + fig940_MMM: true + + # ========================================================================== + # Chapter 9 - Figure941 + # ========================================================================== + regional_downscaling_Fig941: + description: Creates ranked modelled versus reference data set + regional mean temperature plots. + themes: + - chem + realms: + - atmos + variables: + tas: + preprocessor: regr + reference_dataset: ERA-Interim + mip: Amon + ensemble: r1i1p1 + start_year: 1979 + end_year: 2000 + additional_datasets: + - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, + tier: 3} + scripts: + clim: &Fig941_settings + script: regional_downscaling/Figure9.41.ncl + fig941_region_label: ["MEDs"] + styleset: CMIP5 diff --git a/esmvaltool/recipes/recipe_flato13ipcc.yml b/esmvaltool/recipes/recipe_flato13ipcc.yml deleted file mode 100644 index 09796b3df9..0000000000 --- a/esmvaltool/recipes/recipe_flato13ipcc.yml +++ /dev/null @@ -1,2108 +0,0 @@ -# ESMValTool -# recipe_flato13ipcc.yml ---- -documentation: - title: IPCC AR5, chap. 9 diagnostics - - description: | - Reproducing selected figures from IPCC AR5, chap. 9 (Flato et al., 2013) - 9.2, 9.3, 9.4, 9.5, 9.6, 9.8, 9.14, 9.24, 9.26, 9.27, 9.42, 9.45a. - Processing of CMIP3 models currently works only in serial mode, due to - an issue in the input data still under investigation. This affects the - diagnostics for Fig. 9.6 in this recipe. - - authors: - - bock_lisa - - gier_bettina - - lauer_axel - - schlund_manuel - - senftleben_daniel - - zimmermann_klaus - - maintainer: - - lauer_axel - - references: - - flato13ipcc - - projects: - - embrace - - esmval - - crescendo - - -preprocessors: - - clim: - regrid: - target_grid: 2x2 - scheme: linear - mask_fillvalues: - threshold_fraction: 0.95 - multi_model_statistics: - span: overlap - statistics: [mean] - exclude: [reference_dataset] - - land_fraction_weighting: - weighting_landsea_fraction: &weighting_options - area_type: land - exclude: [ - 'bcc-csm1-1-m', - 'GCP2018', - 'inmcm4', - 'JMA-TRANSCOM', - ] - - sea_fraction_weighting: - weighting_landsea_fraction: - <<: *weighting_options - area_type: sea - regrid: - target_grid: 2x2 - scheme: linear - - spatial_mean: - area_statistics: - operator: mean - - clim_ref: - regrid: - target_grid: reference_dataset - scheme: linear - multi_model_statistics: - span: overlap - statistics: [mean] - exclude: [reference_dataset] - - clim_ref_9-3: - regrid: - target_grid: reference_dataset - scheme: linear - mask_fillvalues: - threshold_fraction: 0.95 - multi_model_statistics: - span: overlap - statistics: [mean] - exclude: [reference_dataset] - convert_units: - units: degC - - regrid_4_5: - regrid: - target_grid: 4x5 - scheme: linear - - zonal_mean: - custom_order: true - climate_statistics: - regrid: - target_grid: 1x1 - scheme: linear - zonal_statistics: - operator: mean - convert_units: - units: degC - - equatorial: - custom_order: true - climate_statistics: - regrid: - target_grid: 1x1 - scheme: linear - extract_region: - start_longitude: 0. - end_longitude: 360. - start_latitude: -5. - end_latitude: 5. - meridional_statistics: - operator: mean - convert_units: - units: degC - -diagnostics: - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.2 a/b/c - # ********************************************************************** - # Multi model mean, multi model mean bias, and mean absolute error - # (geographical distributions) - # ********************************************************************** - - fig09-2: - title: Fig. 9.2 (near-surface temperature) - description: IPCC AR5 Ch. 9, Fig. 9.2 (near-surface temperature) - themes: - - phys - realms: - - atmos - variables: - tas: - preprocessor: clim - reference_dataset: ERA-Interim - mip: Amon - additional_datasets: - - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, - start_year: 1986, end_year: 2005, tier: 3} - - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - scripts: - fig09-2: &fig-9-2_and_9-4_settings - script: clouds/clouds_bias.ncl - projection: Robinson - timemean: annualclim - plot_abs_diff: true - plot_rel_diff: false - - # *************************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.3 - # *************************************************************************** - # Multi model mean seasonality, mean absolute seasonality, mean bias - # in seasonality, and mean bias in absolute seasonality - # *************************************************************************** - - fig09-3: - title: Fig. 9.3 (near-surface temperature) - description: Calculate seasonality of multi-model mean for tas - themes: - - phys - realms: - - atmos - variables: - tas: - preprocessor: clim_ref_9-3 - reference_dataset: ERA-Interim - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Amon - start_year: 1980 - end_year: 2005 - additional_datasets: - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - - {dataset: CanCM4} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - - {dataset: CNRM-CM5} - - {dataset: CNRM-CM5-2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R} - - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MIROC4h} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} - scripts: - fig09-3: - script: ipcc_ar5/ch09_fig09_3.ncl - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.4 - # ********************************************************************** - # Multi model mean, multi model mean bias, mean absolute error, and - # mean relative error (geographical ditributions) - # ********************************************************************** - - fig09-4: - title: Fig. 9.4 (precipitation) - description: IPCC AR5 Ch. 9, Fig. 9.4 (precipitation) - themes: - - clouds - realms: - - atmos - variables: - pr: - preprocessor: clim - reference_dataset: GPCP-SG - mip: Amon - additional_datasets: - - {dataset: GPCP-SG, project: obs4MIPs, level: L3, version: v2.2, - start_year: 1986, end_year: 2005, tier: 1} - - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - scripts: - fig09-4: - <<: *fig-9-2_and_9-4_settings - plot_abs_diff: true - plot_rel_diff: true - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.5 - # ********************************************************************** - # Difference of multi-model mean and reference data set (geographical - # distribution, annual mean) + zonal averages of individual models - # and multi-model mean (annual means). - # ********************************************************************** - - fig09-5a: - title: Fig. 9.5a (shortwave CRE) - description: differences of multi-model mean and reference dataset - themes: - - clouds - realms: - - atmos - variables: - swcre: - preprocessor: clim - reference_dataset: CERES-EBAF - mip: Amon - derive: true - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, - start_year: 2001, end_year: 2010, tier: 1} - - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - scripts: - fig09-5a: &fig-9-5_settings - script: clouds/clouds_ipcc.ncl - projection: Robinson - colormap: WhiteBlueGreenYellowRed - timemean: annualclim - - fig09-5b: - title: Fig. 9.5b (longwave CRE) - description: differences of multi-model mean and reference dataset - themes: - - clouds - realms: - - atmos - variables: - lwcre: - preprocessor: clim - reference_dataset: CERES-EBAF - mip: Amon - derive: true - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, - start_year: 2001, end_year: 2010, tier: 1} - - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - scripts: - fig09-5b: - <<: *fig-9-5_settings - - fig09-5c: - title: Fig. 9.5c (net CRE) - description: differences of multi-model mean and reference dataset - themes: - - clouds - realms: - - atmos - variables: - netcre: - preprocessor: clim - reference_dataset: CERES-EBAF - mip: Amon - derive: true - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, - start_year: 2001, end_year: 2010, tier: 1} - - {dataset: ACCESS1-0, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: ACCESS1-3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: bcc-csm1-1-m, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CanESM2, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CCSM4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-BGC, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CESM1-CAM5-1-FV, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-CAM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CESM1-FASTCHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CESM1-WACCM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CMCC-CESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CM, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CMCC-CMS, project: CMIP5, exp: historical, ensemble: r1i1p1, - # start_year: 1986, end_year: 2005} - # - {dataset: CNRM-CM5-2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: CNRM-CM5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: CSIRO-Mk3-6-0, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: FGOALS-g2, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GFDL-CM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2G, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GFDL-ESM2M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-H-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: GISS-E2-H, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R-CC, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: GISS-E2-R, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-CC, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - # - {dataset: HadGEM2-ES, project: CMIP5, exp: historical, - # ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: inmcm4, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5A-MR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: IPSL-CM5B-LR, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MIROC4h, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC5, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MIROC-ESM-CHEM, project: CMIP5, exp: historical, - ensemble: r1i1p1, start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-LR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-MR, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MPI-ESM-P, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: MRI-CGCM3, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-M, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - - {dataset: NorESM1-ME, project: CMIP5, exp: historical, ensemble: r1i1p1, - start_year: 1986, end_year: 2005} - scripts: - fig09-5c: - <<: *fig-9-5_settings - - - # *************************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.6 - # *************************************************************************** - # Centred pattern correlations between models and observations for - # the annual mean climatology over the period 1980-1999. - # *************************************************************************** - - fig09-6_tas: - title: Fig. 9.6 (near-surface temperature) - description: Calculate pattern correlation for tas - variables: - tas: - preprocessor: regrid_4_5 - reference_dataset: ERA-Interim - alternative_dataset: NCEP-NCAR-R1 - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Amon - field: T2Ms - start_year: 1980 - end_year: 1999 - additional_datasets: - - &cmip3 {dataset: bccr_bcm2_0, institute: BCCR, project: CMIP3, mip: A1, modeling_realm: atm, exp: 20c3m, frequency: mo, ensemble: run1} - - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} - - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} - - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} - - {<<: *cmip3, dataset: giss_aom, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} - - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} - - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} - - {<<: *cmip3, dataset: inmcm3_0, institute: INM} - - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} - - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} - - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} - - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} - - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} - - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} - - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} - - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} - - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - - {dataset: CanCM4} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - - {dataset: CNRM-CM5} - - {dataset: CNRM-CM5-2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R} - - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MIROC4h} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, tier: 3} - - {dataset: NCEP-NCAR-R1, project: OBS6, type: reanaly, version: 1, tier: 2} - scripts: - fig09-6_pattern_cor: &fig09_6_pattern_cor - script: ipcc_ar5/ch09_fig09_6.ncl - - fig09-6_rlut: - title: Fig. 9.6 (TOA longwave radiation) - description: Calculate pattern correlation for all-sky longwave radiation - variables: - rlut: - preprocessor: regrid_4_5 - reference_dataset: CERES-EBAF - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Amon - field: T2Ms - start_year: 1980 - end_year: 1999 - additional_datasets: - - {<<: *cmip3, dataset: bccr_bcm2_0, institute: BCCR} - - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} - - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} - - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} - - {<<: *cmip3, dataset: giss_aom, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} - - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} - - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} - - {<<: *cmip3, dataset: inmcm3_0, institute: INM} - - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} - - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} - - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} - - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} - - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} - - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} - - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} - - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} - - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - - {dataset: CanCM4} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - - {dataset: CNRM-CM5} - - {dataset: CNRM-CM5-2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R} - - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MIROC4h} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2003, end_year: 2011} - scripts: - fig09-6_pattern_cor: - <<: *fig09_6_pattern_cor - - fig09-6_pr: - title: Fig. 9.6 (precipitation) - description: Calculate pattern correlation for precipitation - variables: - pr: - preprocessor: regrid_4_5 - reference_dataset: GPCP-SG - alternative_dataset: GHCN - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Amon - field: T2Ms - start_year: 1980 - end_year: 1999 - additional_datasets: - - {<<: *cmip3, dataset: bccr_bcm2_0, institute: BCCR} - - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} - - {<<: *cmip3, dataset: cccma_cgcm3_1_t63, institute: CCCMA} - - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} - - {<<: *cmip3, dataset: giss_aom, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} - - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} - - {<<: *cmip3, dataset: ingv_echam4, institute: INGV} - - {<<: *cmip3, dataset: inmcm3_0, institute: INM} - - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} - - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} - - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} - - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} - - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} - - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} - - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} - - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} - - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - - {dataset: CanCM4} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - - {dataset: CNRM-CM5} - - {dataset: CNRM-CM5-2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R} - - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MIROC4h} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - - {dataset: GPCP-SG, project: obs4MIPs, level: L3, version: v2.2, tier: 1} - - {dataset: GHCN, project: OBS, type: ground, version: 1, tier: 2} - scripts: - fig09-6_pattern_cor: - <<: *fig09_6_pattern_cor - - fig09-6_swcre: - title: Fig. 9.6 (shortwave CRE) - description: Calculate pattern correlation for shortwave cloud radiative effect - variables: - swcre: - preprocessor: regrid_4_5 - reference_dataset: CERES-EBAF - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Amon - field: T2Ms - start_year: 1980 - end_year: 1999 - derive: true - force_derivation: false - additional_datasets: - - {<<: *cmip3, dataset: cccma_cgcm3_1, institute: CCCMA} - - {<<: *cmip3, dataset: csiro_mk3_0, institute: CSIRO} - - {<<: *cmip3, dataset: giss_model_e_h, institute: NASA} - - {<<: *cmip3, dataset: giss_model_e_r, institute: NASA} - - {<<: *cmip3, dataset: iap_fgoals1_0_g, institute: LASG} - - {<<: *cmip3, dataset: inmcm3_0, institute: INM} - - {<<: *cmip3, dataset: ipsl_cm4, institute: IPSL} - - {<<: *cmip3, dataset: miroc3_2_hires, institute: NIES} - - {<<: *cmip3, dataset: miroc3_2_medres, institute: NIES} - - {<<: *cmip3, dataset: mpi_echam5, institute: MPIM} - - {<<: *cmip3, dataset: ncar_ccsm3_0, institute: NCAR} - - {<<: *cmip3, dataset: ncar_pcm1, institute: NCAR} - - {<<: *cmip3, dataset: ukmo_hadcm3, institute: UKMO} - - {<<: *cmip3, dataset: ukmo_hadgem1, institute: UKMO} - - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CNRM-CM5} - - {dataset: CNRM-CM5-2} - - {dataset: FGOALS-g2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R} - - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MIROC4h} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2003, end_year: 2011} - scripts: - fig09-6_pattern_cor: - <<: *fig09_6_pattern_cor - - ### COLLECT CORRELATIONS AND PLOT ########################################### - fig09-6_cor_collect: - description: Wrapper to collect and plot previously calculated correlations - scripts: - fig09-6_cor_collect: - script: ipcc_ar5/ch09_fig09_6_collect.ncl - ancestors: ['*/fig09-6_pattern_cor'] - diag_order: ['fig09-6_tas', 'fig09-6_rlut', 'fig09-6_pr'] - - - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.8 - # ********************************************************************** - # Time series of anomalies of annual and global surface temperature - # ********************************************************************** - - fig09-8: - title: Fig. 9.8 (near-surface temperature) - description: IPCC AR5 Ch. 9, Fig. 9.8 (near-surface temperature) - themes: - - phys - realms: - - atmos - variables: - tas: - preprocessor: clim_ref - reference_dataset: HadCRUT4 - mip: Amon - project: CMIP5 - exp: [historical, rcp45] - ensemble: r1i1p1 - start_year: 1870 - end_year: 2017 - additional_datasets: - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) - # - {dataset: bcc-csm1-1} - # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) - # - {dataset: bcc-csm1-1-m} - - {dataset: BNU-ESM} - # - {dataset: CanCM4} - # - {dataset: CanESM2} - # rcp starts with year 2005 - not 2006 - # - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5} - # - {dataset: CESM1-CAM5-1-FV2} - # no rcp45 at DKRZ - # - {dataset: CESM1-FASTCHEM} - # no historival and rcp45 from the same exp - # - {dataset: CESM1-WACCM} - # no rcp45 at DKRZ - # - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - # no rcp45 at DKRZ - # - {dataset: CNRM-CM5} - # no rcp45 at DKRZ - # - {dataset: CNRM-CM5-2} - - {dataset: CSIRO-Mk3-6-0} - # - {dataset: EC-EARTH, ensemble: r6i1p1} - # - {dataset: FGOALS-g2} - # - {dataset: FGOALS-s2} - - {dataset: FIO-ESM} - # Historical data end year is 2040, not 2005 (overlaps with RCP4.5) - # - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H, ensemble: r1i1p2} - # Historical data end year is 2010, not 2005 (overlaps with RCP4.5) - # - {dataset: GISS-E2-H-CC} - - {dataset: GISS-E2-R, ensemble: r1i1p2} - # Historical data end year is 2010, not 2005 (overlaps with RCP4.5) - # - {dataset: GISS-E2-R-CC} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - # dataset ends November 2005 - # - {dataset: HadGEM2-CC} - # dataset ends November 2005 - # - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - # - {dataset: MIROC4h} - # Historical data end year is 2012, not 2005 (overlaps with RCP4.5) - # - {dataset: MIROC5} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - # no rcp45 at DKRZ - # - {dataset: MPI-ESM-P} - - {dataset: MRI-CGCM3} - # no rcp45 at DKRZ - # - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - - {dataset: HadCRUT4, project: OBS, type: ground, version: 1, - start_year: 1870, end_year: 2017, tier: 2} - scripts: - fig09-8: - script: ipcc_ar5/tsline.ncl - time_avg: "yearly" - ts_anomaly: "anom" - ref_start: 1961 - ref_end: 1990 - ref_mask: True - plot_units: "degC" - y_min: -1.2 - y_max: 1.5 - volcanoes: True - styleset: CMIP5 # Plot style - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.14 - # ********************************************************************** - # SST zonal mean and equatorial, multi model mean - # ********************************************************************** - - fig09-14: - title: Fig. 9.14 (SST) - description: | - IPCC AR5 Ch. 9, Fig. 9.14 (sst error, zonal mean and equatorial) - themes: - - phys - realms: - - ocean - variables: - tos_zm: &fig09_14_settings - project: CMIP5 - exp: historical - ensemble: r1i1p1 - mip: Omon - short_name: tos - preprocessor: zonal_mean - reference_dataset: HadISST - start_year: 1979 - end_year: 1999 - tos_eq: - <<: *fig09_14_settings - preprocessor: equatorial - additional_datasets: - - {dataset: HadISST, project: OBS, type: reanaly, version: 1, tier: 2} - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: CanCM4} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-BGC} - - {dataset: CESM1-CAM5-1-FV2} - - {dataset: CESM1-FASTCHEM} - - {dataset: CESM1-WACCM} - - {dataset: CMCC-CESM} - - {dataset: CMCC-CM} - - {dataset: CMCC-CMS} - - {dataset: CNRM-CM5} - - {dataset: CSIRO-Mk3-6-0} - - {dataset: EC-EARTH} - - {dataset: FGOALS-g2} - - {dataset: FIO-ESM} - - {dataset: GFDL-CM2p1} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: GISS-E2-H} - - {dataset: GISS-E2-R} - - {dataset: HadCM3} - - {dataset: HadGEM2-AO} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC5} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MPI-ESM-P} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - scripts: - fig09-14: - script: ipcc_ar5/ch09_fig09_14.py - - # *********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.24 - # *********************************************************************** - # 9.24a/b: time series of Arctic and Antarctic sea ice extent - # 9.24c/d: trend distribution of September/February Arctic/Antarctic - # sea ice extent - # *********************************************************************** - - fig09-24: - title: Fig. 9.24 (sea ice) - description: timeseries and trend distributions of sea ice extent - themes: - - seaIce - realms: - - seaIce - variables: - sic: - mip: OImon - project: CMIP5 - exp: historical - ensemble: r1i1p1 - start_year: 1960 - end_year: 2005 - additional_datasets: - - {dataset: HadISST, project: OBS, type: reanaly, version: 1, tier: 2} - areacello: - mip: fx - project: CMIP5 - exp: historical - ensemble: r0i0p0 - start_year: 1960 - end_year: 2005 - additional_datasets: - - {dataset: ACCESS1-0} - - {dataset: ACCESS1-3} - - {dataset: bcc-csm1-1} - - {dataset: bcc-csm1-1-m} - - {dataset: CanESM2} - - {dataset: CCSM4} - - {dataset: CESM1-CAM5} - - {dataset: CNRM-CM5} - - {dataset: CSIRO-Mk3-6-0} - - {dataset: FGOALS-g2} - - {dataset: GFDL-CM3} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC5} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: MRI-CGCM3} - - {dataset: MRI-ESM1} - - {dataset: NorESM1-M} - - {dataset: NorESM1-ME} - scripts: - fig09-24a: - script: seaice/seaice_tsline.ncl - # "Arctic" or "Antarctic"; entire hemisphere will be evaluated - region: "Arctic" - # A = annual mean, 3 = March, 9 = September - month: "9" - # "CMIP5", "DEFAULT" - styleset: "CMIP5" - # Plot multi-model mean & std dev - multi_model_mean: true - # Create legend label for each individual ensemble member - EMs_in_lg: false - # Fill polar hole in data with sic = 1. - fill_pole_hole: true - fig09-24b: - script: seaice/seaice_tsline.ncl - # "Arctic" or "Antarctic"; entire hemisphere will be evaluated - region: "Antarctic" - # A = annual mean, 3 = March, 9 = September - month: "3" - # "CMIP5", "DEFAULT" - styleset: "CMIP5" - # Plot multi-model mean & std dev - multi_model_mean: true - # Create legend label for each individual ensemble member - EMs_in_lg: false - # Fill polar hole in data with sic = 1. - fill_pole_hole: false - fig09-24c: - script: seaice/seaice_trends.ncl - # "Arctic" or "Antarctic"; entire hemisphere will be evaluated - region: "Arctic" - # A = annual mean, 3 = March, 9 = September - month: "9" - # Fill polar hole in data with sic = 1. - fill_pole_hole: true - fig09-24d: - script: seaice/seaice_trends.ncl - # "Arctic" or "Antarctic"; entire hemisphere will be evaluated - region: "Antarctic" - # A = annual mean, 3 = March, 9 = September - month: "2" - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.26 - # ********************************************************************** - # Ensemble-mean global ocean carbon uptake (top) and global land - # carbon uptake (bottom) in the CMIP5 ESMs for the historical period - # 1901-2005. - # ********************************************************************** - - fig09-26top: - title: Fig. 9.26a (carbon uptake) - variables: - fgco2: &fgco2_settings - preprocessor: sea_fraction_weighting - project: CMIP5 - mip: Omon - exp: historical - ensemble: r1i1p1 - start_year: 1901 - end_year: 2005 - reference_dataset: JMA-TRANSCOM - plot_units: PgC y-1 - additional_datasets: - # - {dataset: JMA-TRANSCOM, project: OBS, type: reanaly, version: 2018, tier: 3, start_year: 1986, end_year: 2005} - - {dataset: CanESM2} - - {dataset: CESM1-BGC} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: NorESM1-ME} - fgco2_GCP2018: - <<: *fgco2_settings - preprocessor: default - short_name: fgco2 - additional_datasets: - - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1959, end_year: 2005, frequency: yr} - scripts: - main_global: &fig09_26_settings - script: carbon_cycle/main.ncl - styleset: CMIP5 - region: global - legend_year_outside: false - legend_outside: false - sort: true - anav_month: true - seasonal_cycle_plot: false - errorbar_plot: false - mean_IAV_plot: false - evolution_plot: true - evolution_plot_volcanoes: false - evolution_plot_anomaly: false - evolution_plot_ref_dataset: GCP2018 - - fig09-26bottom: - title: Fig. 9.26b (carbon uptake) - variables: - nbp: - <<: *fgco2_settings - preprocessor: land_fraction_weighting - mip: Lmon - additional_datasets: &nbp_datasets - - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1959, end_year: 2005, frequency: yr} - - {dataset: JMA-TRANSCOM, project: OBS, type: reanaly, version: 2018, tier: 3, start_year: 1986, end_year: 2005} - - {dataset: BNU-ESM} - - {dataset: CanESM2} - - {dataset: CESM1-BGC} - - {dataset: GFDL-ESM2G} - - {dataset: GFDL-ESM2M} - - {dataset: HadGEM2-CC} - - {dataset: HadGEM2-ES} - - {dataset: inmcm4} - - {dataset: IPSL-CM5A-LR} - - {dataset: IPSL-CM5A-MR} - - {dataset: IPSL-CM5B-LR} - - {dataset: MIROC-ESM} - - {dataset: MIROC-ESM-CHEM} - - {dataset: MPI-ESM-LR} - - {dataset: MPI-ESM-MR} - - {dataset: NorESM1-ME} - scripts: - main_global: - <<: *fig09_26_settings - - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.27 - # ********************************************************************** - # Simulation of global mean (a) atmosphere-ocean CO2 fluxes (fgCO2) - # and (b) net atmosphere-land CO2 fluxes (NBP), by ESMs for the - # period 1986-2005. - # ********************************************************************** - - fig09-27top: - title: Fig. 9.27a (CO2 fluxes) - variables: - fgco2: - <<: *fgco2_settings - start_year: 1986 - fgco2_GCP2018: - <<: *fgco2_settings - preprocessor: default - short_name: fgco2 - additional_datasets: - - {dataset: GCP2018, project: OBS, type: reanaly, version: '1.0', tier: 2, start_year: 1986, end_year: 2005, frequency: yr} - scripts: - main_global: &fig09_27_settings - <<: *fig09_26_settings - errorbar_plot: true - evolution_plot: false - - fig09-27bottom: - variables: - nbp: - <<: *fgco2_settings - preprocessor: default - mip: Lmon - start_year: 1986 - additional_datasets: *nbp_datasets - scripts: - main_global: - <<: *fig09_27_settings - - - # ********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.42 - # ********************************************************************** - # - # ********************************************************************** - - ecs_cmip5: - description: Calculate ECS for CMIP5 models. - themes: - - phys - realms: - - atmos - variables: - tas_rtnt: &ecs_settings - short_name: tas - preprocessor: spatial_mean - project: CMIP5 - ensemble: r1i1p1 - mip: Amon - additional_datasets: &datasets_cmip5_rtnt - - {dataset: ACCESS1-0, exp: piControl, start_year: 300, end_year: 449} - - {dataset: ACCESS1-0, exp: abrupt4xCO2, start_year: 300, end_year: 449} - - {dataset: bcc-csm1-1, exp: piControl, start_year: 160, end_year: 309} - - {dataset: bcc-csm1-1, exp: abrupt4xCO2, start_year: 160, end_year: 309} - - {dataset: bcc-csm1-1-m, exp: piControl, start_year: 240, end_year: 389} - - {dataset: bcc-csm1-1-m, exp: abrupt4xCO2, start_year: 240, end_year: 389} - - {dataset: CanESM2, exp: piControl, start_year: 2321, end_year: 2470} - - {dataset: CanESM2, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - # Wrong start year for piControl? (branch_time = 2.) - - {dataset: CCSM4, exp: piControl, start_year: 250, end_year: 399} - - {dataset: CCSM4, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: CNRM-CM5, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: CNRM-CM5, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: CSIRO-Mk3-6-0, exp: piControl, start_year: 104, end_year: 253} - - {dataset: CSIRO-Mk3-6-0, exp: abrupt4xCO2, start_year: 1, end_year: 150} - - {dataset: GFDL-CM3, exp: piControl, start_year: 1, end_year: 150} - - {dataset: GFDL-CM3, exp: abrupt4xCO2, start_year: 1, end_year: 150} - - {dataset: GFDL-ESM2G, exp: piControl, start_year: 1, end_year: 150} - - {dataset: GFDL-ESM2G, exp: abrupt4xCO2, start_year: 1, end_year: 150} - - {dataset: GFDL-ESM2M, exp: piControl, start_year: 1, end_year: 150} - - {dataset: GFDL-ESM2M, exp: abrupt4xCO2, start_year: 1, end_year: 150} - - {dataset: GISS-E2-H, exp: piControl, start_year: 2660, end_year: 2809} - - {dataset: GISS-E2-H, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: GISS-E2-R, exp: piControl, start_year: 4200, end_year: 4349} - - {dataset: GISS-E2-R, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - # Experiments start at 1859-12-01 - - {dataset: HadGEM2-ES, exp: piControl, start_year: 1860, end_year: 2009} - - {dataset: HadGEM2-ES, exp: abrupt4xCO2, start_year: 1860, end_year: 2009} - - {dataset: inmcm4, exp: piControl, start_year: 2090, end_year: 2239} - - {dataset: inmcm4, exp: abrupt4xCO2, start_year: 2090, end_year: 2239} - - {dataset: IPSL-CM5B-LR, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM5B-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: MIROC5, exp: piControl, start_year: 2100, end_year: 2249} - - {dataset: MIROC5, exp: abrupt4xCO2, start_year: 2100, end_year: 2249} - - {dataset: MIROC-ESM, exp: piControl, start_year: 1880, end_year: 2029} - - {dataset: MIROC-ESM, exp: abrupt4xCO2, start_year: 1, end_year: 150} - - {dataset: MPI-ESM-LR, exp: piControl, start_year: 1880, end_year: 2029} - - {dataset: MPI-ESM-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM-P, exp: piControl, start_year: 1866, end_year: 2015} - - {dataset: MPI-ESM-P, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - - {dataset: MRI-CGCM3, exp: piControl, start_year: 1891, end_year: 2040} - - {dataset: MRI-CGCM3, exp: abrupt4xCO2, start_year: 1851, end_year: 2000} - - {dataset: NorESM1-M, exp: piControl, start_year: 700, end_year: 849} - - {dataset: NorESM1-M, exp: abrupt4xCO2, start_year: 1, end_year: 150} - tas_rtmt: - <<: *ecs_settings - additional_datasets: &datasets_cmip5_rtmt - - {dataset: IPSL-CM5A-LR, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM5A-LR, exp: abrupt4xCO2, start_year: 1850, end_year: 1999} - rtnt: - <<: *ecs_settings - short_name: rtnt - derive: true - additional_datasets: *datasets_cmip5_rtnt - rtmt: - <<: *ecs_settings - short_name: rtmt - additional_datasets: *datasets_cmip5_rtmt - scripts: - ecs: &ecs_script - script: climate_metrics/ecs.py - - tcr_cmip5: - description: Calculate TCR for CMIP5 models. - themes: - - phys - realms: - - atmos - variables: - 1pctCO2: &tcr_settings - short_name: tas - preprocessor: spatial_mean - project: CMIP5 - ensemble: r1i1p1 - exp: 1pctCO2 - mip: Amon - additional_datasets: - - {dataset: ACCESS1-0, start_year: 300, end_year: 439} - - {dataset: bcc-csm1-1, start_year: 160, end_year: 299} - - {dataset: bcc-csm1-1-m, start_year: 240, end_year: 379} - - {dataset: CanESM2, start_year: 1850, end_year: 1989} - - {dataset: CCSM4, start_year: 1850, end_year: 1989} - - {dataset: CNRM-CM5, start_year: 1850, end_year: 1989} - - {dataset: CSIRO-Mk3-6-0, start_year: 1, end_year: 140} - - {dataset: GFDL-CM3, start_year: 1, end_year: 140} - - {dataset: GFDL-ESM2G, start_year: 1, end_year: 140} - - {dataset: GFDL-ESM2M, start_year: 1, end_year: 140} - - {dataset: GISS-E2-H, start_year: 1850, end_year: 1989} - - {dataset: GISS-E2-R, start_year: 1850, end_year: 1989} - # Experiments starts at 1859-12-01 - - {dataset: HadGEM2-ES, start_year: 1860, end_year: 1999} - - {dataset: inmcm4, start_year: 2090, end_year: 2229} - - {dataset: IPSL-CM5A-LR, start_year: 1850, end_year: 1989} - - {dataset: IPSL-CM5B-LR, start_year: 1850, end_year: 1989} - - {dataset: MIROC5, start_year: 2200, end_year: 2339} - - {dataset: MIROC-ESM, start_year: 1, end_year: 140} - - {dataset: MPI-ESM-LR, start_year: 1850, end_year: 1989} - - {dataset: MPI-ESM-P, start_year: 1850, end_year: 1989} - - {dataset: MRI-CGCM3, start_year: 1851, end_year: 1990} - - {dataset: NorESM1-M, start_year: 1, end_year: 140} - piControl: - <<: *tcr_settings - exp: piControl - additional_datasets: - - {dataset: ACCESS1-0, start_year: 300, end_year: 439} - - {dataset: bcc-csm1-1, start_year: 160, end_year: 299} - - {dataset: bcc-csm1-1-m, start_year: 240, end_year: 379} - - {dataset: CanESM2, start_year: 2321, end_year: 2460} - - {dataset: CCSM4, start_year: 251, end_year: 390} - - {dataset: CNRM-CM5, start_year: 1850, end_year: 1989} - - {dataset: CSIRO-Mk3-6-0, start_year: 104, end_year: 243} - - {dataset: GFDL-CM3, start_year: 1, end_year: 140} - - {dataset: GFDL-ESM2G, start_year: 1, end_year: 140} - - {dataset: GFDL-ESM2M, start_year: 1, end_year: 140} - - {dataset: GISS-E2-H, start_year: 2410, end_year: 2549} - - {dataset: GISS-E2-R, start_year: 3981, end_year: 4120} - # Experiments starts at 1859-12-01 - - {dataset: HadGEM2-ES, start_year: 1860, end_year: 1999} - - {dataset: inmcm4, start_year: 2090, end_year: 2229} - - {dataset: IPSL-CM5A-LR, start_year: 1850, end_year: 1989} - - {dataset: IPSL-CM5B-LR, start_year: 1850, end_year: 1989} - - {dataset: MIROC5, start_year: 2200, end_year: 2339} - - {dataset: MIROC-ESM, start_year: 1880, end_year: 2019} - - {dataset: MPI-ESM-LR, start_year: 1880, end_year: 2019} - - {dataset: MPI-ESM-P, start_year: 1866, end_year: 2005} - - {dataset: MRI-CGCM3, start_year: 1891, end_year: 2030} - - {dataset: NorESM1-M, start_year: 700, end_year: 839} - scripts: - tcr: &tcr_script - script: climate_metrics/tcr.py - - fig09-42a_cmip5: - title: Fig. 9.42a CMIP5 (ECS vs. GMSAT) - description: Plot ECS vs. GMSAT for CMIP5 models. - themes: - - phys - realms: - - atmos - variables: - tas: - <<: *ecs_settings - additional_datasets: - - {dataset: ACCESS1-0, exp: piControl, start_year: 300, end_year: 449} - - {dataset: ACCESS1-0, exp: historical, start_year: 1961, end_year: 1990} - # Wrong start year for piControl (must be 407) - - {dataset: bcc-csm1-1, exp: piControl, start_year: 160, end_year: 299} - - {dataset: bcc-csm1-1, exp: historical, start_year: 1961, end_year: 1990} - # Wrong start year for piControl (must be 344) - - {dataset: bcc-csm1-1-m, exp: piControl, start_year: 240, end_year: 379} - - {dataset: bcc-csm1-1-m, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: CanESM2, exp: piControl, start_year: 2321, end_year: 2470} - - {dataset: CanESM2, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: CCSM4, exp: piControl, start_year: 937, end_year: 1086} - - {dataset: CCSM4, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: CNRM-CM5, exp: piControl, start_year: 2250, end_year: 2399} - - {dataset: CNRM-CM5, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: CSIRO-Mk3-6-0, exp: piControl, start_year: 81, end_year: 230} - - {dataset: CSIRO-Mk3-6-0, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: GFDL-CM3, exp: piControl, start_year: 1, end_year: 150} - - {dataset: GFDL-CM3, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: GFDL-ESM2G, exp: piControl, start_year: 162, end_year: 311} - - {dataset: GFDL-ESM2G, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: GFDL-ESM2M, exp: piControl, start_year: 162, end_year: 311} - - {dataset: GFDL-ESM2M, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: GISS-E2-H, exp: piControl, start_year: 2410, end_year: 2559} - - {dataset: GISS-E2-H, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: GISS-E2-R, exp: piControl, start_year: 3981, end_year: 4130} - - {dataset: GISS-E2-R, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: HadGEM2-ES, exp: piControl, start_year: 1860, end_year: 2009} - - {dataset: HadGEM2-ES, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: inmcm4, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: inmcm4, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: IPSL-CM5A-LR, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM5A-LR, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: IPSL-CM5B-LR, exp: piControl, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM5B-LR, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: MIROC5, exp: piControl, start_year: 2411, end_year: 2560} - - {dataset: MIROC5, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: MIROC-ESM, exp: piControl, start_year: 1880, end_year: 2029} - - {dataset: MIROC-ESM, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: MPI-ESM-LR, exp: piControl, start_year: 1880, end_year: 2029} - - {dataset: MPI-ESM-LR, exp: historical, start_year: 1961, end_year: 1990} - # Parent experiment of historical is NOT piControl, but past1000 - - {dataset: MPI-ESM-P, exp: piControl, start_year: 2850, end_year: 2999} - - {dataset: MPI-ESM-P, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: MRI-CGCM3, exp: piControl, start_year: 1950, end_year: 2099} - - {dataset: MRI-CGCM3, exp: historical, start_year: 1961, end_year: 1990} - - {dataset: NorESM1-M, exp: piControl, start_year: 700, end_year: 849} - - {dataset: NorESM1-M, exp: historical, start_year: 1961, end_year: 1990} - scripts: - fig09-42a: &fig09_42a_script - script: ipcc_ar5/ch09_fig09_42a.py - ancestors: ['tas', 'ecs_cmip5/ecs'] - tas_units: celsius - save: - bbox_inches: tight - orientation: landscape - axes_functions: &axes_functions - set_title: GMSAT vs. ECS for CMIP5 models - set_xlabel: ECS / °C - set_ylabel: GMSAT / °C - set_xlim: [1.5, 6.0] - legend: - kwargs: - loc: center left - bbox_to_anchor: [1.05, 0.5] - borderaxespad: 0.0 - ncol: 2 - - fig09-42b_cmip5: - title: Fig. 9.42b CMIP5 (TCR vs. ECS) - description: Plot TCR vs. ECS for CMIP5 models. - themes: - - phys - realms: - - atmos - scripts: - fig09-42b: &fig09_42b_script - script: ipcc_ar5/ch09_fig09_42b.py - ancestors: ['ecs_cmip5/ecs', 'tcr_cmip5/tcr'] - - ecs_cmip6: - description: Calculate ECS for CMIP6 models. - themes: - - phys - realms: - - atmos - variables: - tas_rtnt: - <<: *ecs_settings - project: CMIP6 - additional_datasets: &datasets_cmip6_rtnt - # No monthly data (parent_time_units not correct) - # - {dataset: AWI-CM-1-1-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 2650, end_year: 2799, mip: day} - # - {dataset: AWI-CM-1-1-MR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999, mip: day} - - {dataset: BCC-CSM2-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: BCC-CSM2-MR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: BCC-ESM1, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: BCC-ESM1, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: CAMS-CSM1-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3179} - - {dataset: CAMS-CSM1-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3179} - - {dataset: CESM2, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} - - {dataset: CESM2, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} - - {dataset: CESM2-WACCM, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} - - {dataset: CESM2-WACCM, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} - - {dataset: CNRM-CM6-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: CNRM-CM6-1, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: CNRM-ESM2-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: CNRM-ESM2-1, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: E3SM-1-0, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 250} - - {dataset: E3SM-1-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1, end_year: 150} - # No abrupt-4xCO2 - # - {dataset: EC-Earth3, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - # - {dataset: EC-Earth3, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: EC-Earth3-Veg, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: EC-Earth3-Veg, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - # Only mixed ensemble members available, parent_time_units messed up - # - {dataset: FGOALS-f3-L, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} - # - {dataset: FGOALS-f3-L, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} - # Wrong start year for piControl (must be 101) - - {dataset: GFDL-CM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} - - {dataset: GFDL-CM4, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} - - {dataset: GFDL-ESM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 250} - - {dataset: GFDL-ESM4, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 150} - - {dataset: GISS-E2-1-G, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4299} - - {dataset: GISS-E2-1-G, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: GISS-E2-1-H, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3329} - - {dataset: GISS-E2-1-H, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: HadGEM3-GC31-LL, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: HadGEM3-GC31-LL, exp: abrupt-4xCO2, ensemble: r1i1p1f3, grid: gn, start_year: 1850, end_year: 1999} - # Wrong start year for piControl (must be 2099), data withdrawn - # - {dataset: INM-CM5-0, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 2499, end_year: 2648} - # - {dataset: INM-CM5-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1999} - # Not enough years for piControl run, data withdrawn - # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2096} - # - {dataset: INM-CM4-8, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM6A-LR, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1870, end_year: 2019} - - {dataset: IPSL-CM6A-LR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: MIROC6, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} - - {dataset: MIROC6, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} - - {dataset: MIROC-ES2L, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MIROC-ES2L, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM1-2-HR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM1-2-HR, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MRI-ESM2-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MRI-ESM2-0, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - # parent_time_units not correct - - {dataset: NESM3, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 699} - - {dataset: NESM3, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - # Issue #286 (manual copying was necessary) - - {dataset: SAM0-UNICON, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 423} - - {dataset: SAM0-UNICON, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - tas_rtmt: - <<: *ecs_settings - project: CMIP6 - additional_datasets: &datasets_cmip6_rtmt - - {dataset: CanESM5, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5350} - - {dataset: CanESM5, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: UKESM1-0-LL, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1960, end_year: 2109} - - {dataset: UKESM1-0-LL, exp: abrupt-4xCO2, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - rtnt: - <<: *ecs_settings - short_name: rtnt - project: CMIP6 - derive: true - additional_datasets: *datasets_cmip6_rtnt - rtmt: - <<: *ecs_settings - short_name: rtmt - project: CMIP6 - additional_datasets: *datasets_cmip6_rtmt - scripts: - ecs: - <<: *ecs_script - - tcr_cmip6: - description: Calculate TCR for all CMIP6 models. - variables: - 1pctCO2: - <<: *tcr_settings - project: CMIP6 - additional_datasets: - # No monthly data (parent_time_units not correct) - # - {dataset: AWI-CM-1-1-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989, mip: day} - - {dataset: BCC-CSM2-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: BCC-ESM1, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: CAMS-CSM1-0, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3169} - - {dataset: CanESM5, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: CESM2, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 140} - - {dataset: CESM2-WACCM, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 140, institute: NCAR} - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: E3SM-1-0, ensemble: r1i1p1f1, grid: gr, start_year: 1, end_year: 140} - # No 1pctCO2 available - # - {dataset: EC-Earth3, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: EC-Earth3-Veg, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} - # Only mixed ensemble members available, parent_time_units messed up - # - {dataset: FGOALS-f3-L, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} - - {dataset: GFDL-CM4, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} - - {dataset: GFDL-ESM4, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} - - {dataset: GISS-E2-1-G, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: GISS-E2-1-H, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: HadGEM3-GC31-LL, ensemble: r1i1p1f3, grid: gn, start_year: 1850, end_year: 1989} - # Data withdrawn - # - {dataset: INM-CM4-8, exp: abrupt-4xCO2, ensemble: r1i1p1f1, grid: gr1, start_year: 1850, end_year: 1989} - - {dataset: IPSL-CM6A-LR, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: MIROC6, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3339} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM1-2-HR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: MRI-ESM2-0, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - # parent_time_units not correct, incorrect start year for piControl - - {dataset: NESM3, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: SAM0-UNICON, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1989} - piControl: - <<: *tcr_settings - project: CMIP6 - exp: piControl - additional_datasets: - # No monthly data (parent_time_units not correct) - # - {dataset: AWI-CM-1-1-MR, ensemble: r1i1p1f1, grid: gn, start_year: 2650, end_year: 2789, mip: day} - - {dataset: BCC-CSM2-MR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: BCC-ESM1, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: CAMS-CSM1-0, ensemble: r1i1p1f1, grid: gn, start_year: 3030, end_year: 3169} - - {dataset: CanESM5, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5340} - - {dataset: CESM2, ensemble: r1i1p1f1, grid: gn, start_year: 501, end_year: 640} - - {dataset: CESM2-WACCM, ensemble: r1i1p1f1, grid: gn, start_year: 70, end_year: 209, institute: NCAR} - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: E3SM-1-0, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 240} - # No 1pctCO2 available - # - {dataset: EC-Earth3, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1989} - - {dataset: EC-Earth3-Veg, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1989} - # Only mixed ensemble members available, parent_time_units messed up - # - {dataset: FGOALS-f3-L, ensemble: r1i1p1f1, grid: gr1, start_year: 1, end_year: 140} - # Wrong start year (must be 101) - - {dataset: GFDL-CM4, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 290} - - {dataset: GFDL-ESM4, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 240} - - {dataset: GISS-E2-1-G, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4289} - - {dataset: GISS-E2-1-H, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3319} - - {dataset: HadGEM3-GC31-LL, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - # Data withdrawn - # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2086} - - {dataset: IPSL-CM6A-LR, ensemble: r1i1p1f1, grid: gr, start_year: 1870, end_year: 2009} - - {dataset: MIROC6, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3339} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM1-2-HR, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - - {dataset: MRI-ESM2-0, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1989} - # parent_time_units not correct, incorrect start year for piControl - - {dataset: NESM3, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 689} - - {dataset: SAM0-UNICON, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 413} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, start_year: 1960, end_year: 2099} - scripts: - tcr: - <<: *tcr_script - - fig09-42a_cmip6: - title: Fig. 9.42a CMIP6 (ECS vs. GMSAT) - description: Plot ECS vs. GMSAT for CMIP6 models. - themes: - - phys - realms: - - atmos - variables: - tas: - <<: *ecs_settings - project: CMIP6 - additional_datasets: - - {dataset: BCC-CSM2-MR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: BCC-CSM2-MR, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: BCC-ESM1, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 2110, end_year: 2259} - - {dataset: BCC-ESM1, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: CAMS-CSM1-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3025, end_year: 3174} - - {dataset: CAMS-CSM1-0, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: CanESM5, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 5201, end_year: 5350} - - {dataset: CanESM5, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: CESM2, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150} - - {dataset: CESM2, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: CESM2-WACCM, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1, end_year: 150, institute: NCAR} - - {dataset: CESM2-WACCM, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990, institute: NCAR} - - {dataset: CNRM-CM6-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: CNRM-CM6-1, exp: historical, ensemble: r1i1p1f2, grid: gr, start_year: 1961, end_year: 1990} - - {dataset: CNRM-ESM2-1, exp: piControl, ensemble: r1i1p1f2, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: CNRM-ESM2-1, exp: historical, ensemble: r1i1p1f2, grid: gr, start_year: 1961, end_year: 1990} - - {dataset: E3SM-1-0, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 101, end_year: 250} - - {dataset: E3SM-1-0, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} - - {dataset: EC-Earth3-Veg, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 2030, end_year: 2179} - - {dataset: EC-Earth3-Veg, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} - # Wrong start year (must be 101) - - {dataset: GFDL-CM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 151, end_year: 300} - - {dataset: GFDL-CM4, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} - - {dataset: GFDL-ESM4, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 101, end_year: 250} - - {dataset: GFDL-ESM4, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} - - {dataset: GISS-E2-1-G, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 4150, end_year: 4299} - - {dataset: GISS-E2-1-G, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: GISS-E2-1-H, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3180, end_year: 3329} - - {dataset: GISS-E2-1-H, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: HadGEM3-GC31-LL, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: HadGEM3-GC31-LL, exp: historical, ensemble: r1i1p1f3, grid: gn, start_year: 1961, end_year: 1990} - # Wrong start year for piControl (must be 2099), data withdrawn - # - {dataset: INM-CM5-0, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 2499, end_year: 2648} - # - {dataset: INM-CM5-0, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} - # Not enough years for piControl run - # - {dataset: INM-CM4-8, exp: piControl, ensemble: r1i1p1f1, grid: gr1, start_year: 1947, end_year: 2096} - # - {dataset: INM-CM4-8, exp: historical, ensemble: r1i1p1f1, grid: gr1, start_year: 1961, end_year: 1990} - - {dataset: IPSL-CM6A-LR, exp: piControl, ensemble: r1i1p1f1, grid: gr, start_year: 1850, end_year: 1999} - - {dataset: IPSL-CM6A-LR, exp: historical, ensemble: r1i1p1f1, grid: gr, start_year: 1961, end_year: 1990} - - {dataset: MIROC6, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 3200, end_year: 3349} - - {dataset: MIROC6, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: MIROC-ES2L, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MIROC-ES2L, exp: historical, ensemble: r1i1p1f2, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: MPI-ESM1-2-HR, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MPI-ESM1-2-HR, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: MRI-ESM2-0, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 1850, end_year: 1999} - - {dataset: MRI-ESM2-0, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - # parent_time_units not correct (must start in 1300) - - {dataset: NESM3, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 550, end_year: 699} - - {dataset: NESM3, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: SAM0-UNICON, exp: piControl, ensemble: r1i1p1f1, grid: gn, start_year: 274, end_year: 423} - - {dataset: SAM0-UNICON, exp: historical, ensemble: r1i1p1f1, grid: gn, start_year: 1961, end_year: 1990} - - {dataset: UKESM1-0-LL, exp: piControl, ensemble: r1i1p1f2, grid: gn, start_year: 2250, end_year: 2399} - - {dataset: UKESM1-0-LL, exp: historical, ensemble: r1i1p1f2, grid: gn, start_year: 1961, end_year: 1990} - scripts: - fig09-42a: - <<: *fig09_42a_script - ancestors: ['tas', 'ecs_cmip6/ecs'] - axes_functions: - <<: *axes_functions - set_title: GMSAT vs. ECS for CMIP6 models - dataset_style: cmip6 - - fig09-42b_cmip6: - title: Fig. 9.42b CMIP6 (TCR vs. ECS) - description: Plot TCR vs. ECS for CMIP6 models. - themes: - - phys - realms: - - atmos - scripts: - fig09-42b: - <<: *fig09_42b_script - ancestors: ['ecs_cmip6/ecs', 'tcr_cmip6/tcr'] - dataset_style: cmip6 - - # *********************************************************************** - # Flato et al. (2013) - IPCC AR5, chap. 9 - # similar to fig. 9.45a - # *********************************************************************** - # Scatterplot of springtime snow-albedo effect values in climate - # change vs. springtime d(alpha_s)/d(T_s) values in the seasonal - # cycle in transient climate change experiments. - # *********************************************************************** - - fig09-45a: - title: Fig. 9.45a (snow-albedo feedback) - description: springtime snow-albedo feedback values vs. seasonal cycle - themes: - - EC - realms: - - atmos - variables: - alb: - mip: Amon - project: CMIP5 - ensemble: r1i1p1 - reference_dataset: ISCCP-FH - derive: true - additional_datasets: - - {dataset: ISCCP-FH, project: OBS, type: sat, version: v0, start_year: 1984, end_year: 2000, tier: 2} - tas: - mip: Amon - project: CMIP5 - ensemble: r1i1p1 - reference_dataset: ERA-Interim - additional_datasets: - - {dataset: ERA-Interim, project: OBS6, type: reanaly, version: 1, start_year: 1984, end_year: 2000, tier: 3} - rsdt: - mip: Amon - project: CMIP5 - ensemble: r1i1p1 - reference_dataset: ISCCP-FH - additional_datasets: - - {dataset: ISCCP-FH, project: OBS, type: sat, version: v0, start_year: 1984, end_year: 2000, tier: 2} - additional_datasets: - - {dataset: bcc-csm1-1, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: bcc-csm1-1, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: CanESM2, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: CanESM2, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: CCSM4, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: CCSM4, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: CNRM-CM5, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: CNRM-CM5, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: CSIRO-Mk3-6-0, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: CSIRO-Mk3-6-0, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: GFDL-CM3, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: GFDL-CM3, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: GISS-E2-H, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: GISS-E2-H, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: GISS-E2-R, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: GISS-E2-R, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: IPSL-CM5A-LR, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: IPSL-CM5A-LR, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: MIROC-ESM, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: MIROC-ESM, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: MPI-ESM-LR, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: MPI-ESM-LR, exp: rcp45, start_year: 2101, end_year: 2200} - - {dataset: NorESM1-M, exp: historical, start_year: 1901, end_year: 2000} - - {dataset: NorESM1-M, exp: rcp45, start_year: 2101, end_year: 2200} - scripts: - fig09_45a: - script: emergent_constraints/snowalbedo.ncl - exp_presentday: historical - exp_future: rcp45 - legend_outside: false - xmin: -1.7 - xmax: -0.3 - ymin: -1.7 - ymax: -0.3 - styleset: "CMIP5" diff --git a/esmvaltool/references/seneviratne12ipcc.bibtex b/esmvaltool/references/seneviratne12ipcc.bibtex new file mode 100644 index 0000000000..66be640fa5 --- /dev/null +++ b/esmvaltool/references/seneviratne12ipcc.bibtex @@ -0,0 +1,53 @@ +@incollection{ WOS:000519741300006, +Author = {Seneviratne, Sonia I. and Nicholls, Neville and Easterling, David and + Goodess, Clare M. and Kanae, Shinjiro and Kossin, James and Luo, Yali + and Marengo, Jose and McInnes, Kathleen and Rahimi, Mohammad and + Reichstein, Markus and Sorteberg, Asgeir and Vera, Carolina and Zhang, + Xuebin and Rusticucci, Matilde and Semenov, Vladimir and Alexander, Lisa + V. and Allen, Simon and Benito, Gerardo and Cavazos, Tereza and Clague, + John and Conway, Declan and Della-Marta, Paul M. and Gerber, Markus and + Gong, Sunling and Goswami, B. N. and Hemer, Mark and Huggel, Christian + and van den Hurk, Bart and Kharin, Viatcheslav V. and Kitoh, Akio and + Tank, Albert M. G. Klein and Li, Guilong and Mason, Simon and McGuire, + William and van Oldenborgh, Geert Jan and Orlowsky, Boris and Smith, + Sharon and Thiaw, Wassila and Velegrakis, Adonis and Yiou, Pascal and + Zhang, Tingjun and Zhou, Tianjun and Zwiers, Francis W.}, +Editor = {{Field, CB and Barros, V and Stocker, TF and Dahe, Q and Dokken, DJ and Ebi, KL and Mastrandrea, MD and Mach, KJ and Plattner, GK and Allen, SK and Tignor, M and Midgley, PM}}, +Book-Group-Author = {{Intergov Panel Clim Chg}}, +Title = {Changes in Climate Extremes and their Impacts on the Natural Physical + Environment}, +Booktitle = {MANAGING THE RISKS OF EXTREME EVENTS AND DISASTERS TO ADVANCE CLIMATE + CHANGE ADAPTATION}, +Year = {{2012}}, +Pages = {{109-230}}, +ISBN = {{978-1-107-02506-6; 978-1-107-60780-4}}, +ResearcherID-Numbers = {{Sorteberg, Asgeir/N-8576-2015 + McInnes, Kathleen L/A-7787-2012 + Cavazos, Tereza/AAF-2253-2020 + Alexander, Lisa V/A-8477-2011 + Zhang, Xuebin/ABD-7511-2021 + van den Hurk, Bart/ABI-1654-2020 + Kanae, Shinjiro/E-5606-2010 + ZHANG, TINGJUN/AAX-3662-2020 + Benito, Gerardo/E-5456-2013 + Rusticucci, Matilde/K-5249-2017 + Hemer, Mark/M-1905-2013 + Seneviratne, Sonia/G-8761-2011 + }}, +ORCID-Numbers = {{Sorteberg, Asgeir/0000-0001-6003-9618 + McInnes, Kathleen L/0000-0002-1810-7215 + Cavazos, Tereza/0000-0003-3097-9021 + Alexander, Lisa V/0000-0002-5635-2457 + van den Hurk, Bart/0000-0003-3726-7086 + Kanae, Shinjiro/0000-0002-3176-4957 + Benito, Gerardo/0000-0003-0724-1790 + Rusticucci, Matilde/0000-0003-2588-6234 + Hemer, Mark/0000-0002-7725-3474 + Vera, Carolina/0000-0003-4032-5232 + Nicholls, Neville/0000-0002-1298-4356 + Conway, Declan/0000-0002-4590-6733 + Allen, Simon/0000-0002-4809-649X + Seneviratne, Sonia/0000-0001-9528-2917 + Goodess, Clare/0000-0002-7462-4479}}, +Unique-ID = {{WOS:000519741300006}}, +}