Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Version2 emergent constraints #1011

Merged
merged 39 commits into from
Oct 29, 2019
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
f910adc
finished porting ecs_scatter.ncl to v2
axel-lauer Feb 26, 2019
860faa7
added recipe_ecs_scatter_cmip6.yml
axel-lauer Feb 27, 2019
d828489
added Sphinx docu for emergent_constraints
axel-lauer Mar 4, 2019
a1ce99f
Update recipe_emergent_constraints.rst
axel-lauer Mar 4, 2019
461382f
Update recipe_emergent_constraints.rst
axel-lauer Mar 4, 2019
ee21db3
pep8 fixes to ecs_scatter.ncl
axel-lauer Mar 5, 2019
c5b668c
Merge branch 'version2_emergent_constraints' of github.com:ESMValGrou…
axel-lauer Mar 5, 2019
9b405b6
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer Mar 5, 2019
c7c339d
cleaned recipe_ecs_scatter.yml, recipe_ecs_scatter_cmip6.yml + bugfix…
axel-lauer Mar 7, 2019
c54f641
further clean-up of recipe_ecs_scatter.yml
axel-lauer Mar 7, 2019
da6fbd8
added full path of ecsfile to provenance info
axel-lauer Mar 8, 2019
7e05890
added fix for BCC-CSM2-MR (CMIP6)
axel-lauer Mar 14, 2019
851b6b2
applied pep8 standard to new fix files
axel-lauer Mar 20, 2019
d30a6ec
attempt to pass unit tests for CMIP6 fix files
axel-lauer Mar 20, 2019
b3d07cb
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer Apr 3, 2019
8ddbe33
updated ecs_scatter recipes
axel-lauer Apr 3, 2019
974505e
added ecs_cmip.nc (file size: 2004 bytes) for convenience
axel-lauer Apr 5, 2019
6be9d9e
updated fix file ESACCI_GHG.py
axel-lauer Apr 5, 2019
1509c13
fixed some Codacy issues in ESACCI_GHG.py
axel-lauer Apr 5, 2019
bdc31e5
removed obsolete ESACCI_GHG.py
axel-lauer Apr 8, 2019
f782506
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer May 3, 2019
58904fa
added __init__.py to cmor/_fixes/CMIP6
axel-lauer May 3, 2019
88b8dca
beautifying + update ecs_cmip.*
axel-lauer May 13, 2019
7a1fad1
beautified recipe_ecs_scatter*.yml
axel-lauer May 13, 2019
a8c4a84
removed fix files for CMIP6 models
axel-lauer Jun 12, 2019
7f0aa8c
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer Sep 6, 2019
847b7d0
Update recipe_emergent_constraints.rst
axel-lauer Sep 9, 2019
0a2217a
Update recipe_emergent_constraints.rst
axel-lauer Sep 11, 2019
465ab15
Update recipe_emergent_constraints.rst
axel-lauer Sep 11, 2019
548c667
adapted ecs_scatter recipes to new references format
axel-lauer Sep 12, 2019
cc423da
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer Sep 12, 2019
9b28e1a
updated ecs_cmip.cdl
axel-lauer Sep 16, 2019
996c14d
Merge branch 'version2_development' into version2_emergent_constraints
mattiarighi Sep 19, 2019
bfd782a
Merge branch 'version2_emergent_constraints' of github.com:ESMValGrou…
axel-lauer Oct 9, 2019
c5596f7
updated precalculated CMIP6 ECS values
axel-lauer Oct 10, 2019
dee8a61
updated recipe_ecs_scatter_cmip6.yml
axel-lauer Oct 11, 2019
00ffca1
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer Oct 11, 2019
7704c45
merged latest development branch
axel-lauer Oct 24, 2019
e1d56c8
consolidated CMIP5 and CMIP 6 recipes for ecs_scatter diagnostics
axel-lauer Oct 29, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions doc/sphinx/source/recipes/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Recipes
recipe_crem
recipe_cvdp
recipe_diurnal_temperature_index
recipe_emergent_constraints
recipe_ecs
recipe_ensclus
recipe_extreme_events
Expand Down
147 changes: 147 additions & 0 deletions doc/sphinx/source/recipes/recipe_emergent_constraints.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
Emergent constraints for equilibrium climate sensitivity
========================================================

Overview
--------

Calculates equilibrium climate sensitivity (ECS) versus

1) southern ITCZ index, similar to fig. 2 from Tian (2015)
2) lower tropospheric mixing index (LTMI), similar to fig. 5 from Sherwood et al. (2014)
3) tropical mid-tropospheric humidity asymmetry index, similar to fig. 4 from Tian (2015)
4) covariance of shortwave cloud reflection (Brient and Schneider, 2016)
5) climatological Hadley cell extent (Lipat et al., 2017)

The results are displayed as scatterplots.

Note: this recipe requires pre-calulation of the equilibrium climate
sensitivites (ECS) for all models. The ECS values are calculated
with recipe_ecs.yml. The netcdf file containing the ECS values
(path and filename) is specified by diag_script_info@ecs_file.
Alternatively, the netcdf file containing the ECS values can be
generated with the cdl-script
$diag_scripts/emergent_constraints/ecs_cmip.cdl (recommended method):
1) save script given at the end of this namelist as ecs_cmip.cdl
2) run command: ncgen -o ecs_cmip.nc ecs_cmip.cdl
3) copy ecs_cmip.nc to directory given by diag_script_info@ecs_file (e.g. $diag_scripts/emergent_constraints/ecs_cmip.nc)


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

Recipes are stored in recipes/

* recipe_ecs_scatter.yml

Diagnostics are stored in diag_scripts/emergent_constraints/

* ecs_scatter.ncl: calculate emergent constraints for ECS


User settings in recipe
-----------------------

#. Script ecs_scatter.ncl

*Required settings (scripts)*

* diag: emergent constraint to calculate ("itczidx", "humidx", "ltmi",
"covrefl", "shhc")

*Optional settings (scripts)*

* calcmm: calculate multi-model mean (True, False)
* legend_outside: plot legend outside of scatterplots (True, False)
* predef_minmax: use predefined internal min/max values for axes
(True, False)
* styleset: "CMIP5" (if not set, diagnostic will create a color table
and symbols for plotting)
* suffix: string to add to output filenames (e.g."cmip3")

*Required settings (variables)*

* reference_dataset: name of reference data set

*Optional settings (variables)*

none

*Color tables*

none


Variables
---------

* pr (atmos, monthly mean, longitude latitude time)
* hur (atmos, monthly mean, longitude latitude level time)
* hus (atmos, monthly mean, longitude latitude level time)
* rsdt (atmos, monthly mean, longitude latitude time)
* rsut (atmos, monthly mean, longitude latitude time)
* rsutcs (atmos, monthly mean, longitude latitude time)
* ta (atmos, monthly mean, longitude latitude level time)
* ts (atmos, monthly mean, longitude latitude time)
* va (atmos, monthly mean, longitude latitude level time)
* wap (atmos, monthly mean, longitude latitude level time)


Observations and reformat scripts
---------------------------------

*Note: (1) obs4mips data can be used directly without any preprocessing;
(2) see headers of reformat scripts for non-obs4mips data for download
instructions.*

* AIRS (obs4mips): hus, husStderr
* CERES-EBAF (obs4mips): rsdt, rsut, rsutcs
* ERA-Interim (OBS): hur, ta, va, wap
* HadISST (OBS): ts
* TRMM-L3 (obs4mips): pr, prStderr


References
----------

* Brient, F., and T. Schneider, J. Climate, 29, 5821-5835, doi:10.1175/JCLIM-D-15-0897.1, 2016.
* Lipat et al., Geophys. Res. Lett., 44, 5739-5748, doi:10.1002/2017GL73151, 2017.
* Sherwood et al., nature, 505, 37-42, doi:10.1038/nature12829, 2014.
* Tian, Geophys. Res. Lett., 42, 4133-4141, doi:10.1002/2015GL064119, 2015.

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

.. _fig_ec_ecs_1:
.. figure:: /recipes/figures/emergent_constraints/ltmi.png
:align: center

Lower tropospheric mixing index (LTMI; Sherwood et al., 2014) vs.
equilibrium climate sensitivity from CMIP5 models.

.. _fig_ec_ecs_2:
.. figure:: /recipes/figures/emergent_constraints/shhc.png
:align: center

Climatological Hadley cell extent (Lipat et al., 2017) vs.
equilibrium climate sensitivity from CMIP5 models.

.. _fig_ec_ecs_3:
.. figure:: /recipes/figures/emergent_constraints/humidx.png
:align: center

Tropical mid-tropospheric humidity asymmetry index (Tian, 2015) vs.
equilibrium climate sensitivity from CMIP5 models.

.. _fig_ec_ecs_4:
.. figure:: /recipes/figures/emergent_constraints/itczidx.png
:align: center

Southern ITCZ index (Tian, 2015) vs.
equilibrium climate sensitivity from CMIP5 models.

.. _fig_ec_ecs_5:
.. figure:: /recipes/figures/emergent_constraints/covrefl.png
:align: center

Covariance of shortwave cloud reflection (Brient and Schneider, 2016) vs.
equilibrium climate sensitivity from CMIP5 models.
6 changes: 5 additions & 1 deletion esmvaltool/config-references.yml
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,7 @@ references:
bakker14essd: "Bakker, D. C. E. et al., Earth Syst. Sci. Data, 6, 69-90, doi:10.5194/essd-6-69-2014, 2014."
baldwin09qjrms: "Baldwin, D. P. et al., Q. J. R. Meteorol. Soc., 135, 1661-1672, doi:10.1002/qj.479, 2009"
bianchi12gbc: "Bianchi, D. et al., Global Biogeochem. Cy., 26, GB2009, doi:10.1029/2011GB004209, 2012."
brient16jclim: "Brient, F., and T. Schneider, J. Climate, 29, 5821-5835, doi:10.1175/JCLIM-D-15-0897.1, 2016."
cionni11acp: "Cionni et al., Atmos. Chem. Phys., 11, 11267-11292, doi:10.5194/acp-11-11267-2011, 2011."
clivar09jclim: "CLIVAR Madden-Julian Oscillation Working Group, J. Climate, 22, 3006-3030, doi:10.1175/2008JCLI2731.1, 2009."
collins13ipcc: "Collins, M. et al., Long-term climate change: Projections, Commitments, and Irreversibility, in: Climate Change 2013: the Physical Science Basis, contribution of Working Group I to the Fifth Assessment Report of the Intergovernmental Panel on Climate Change, edited by: Stocker, T. F., Qin, D., Plattner, G.-K., Tignor, M., Allen, S. K., Boschung, J., Nauels, A., Xia, Y., Bex, V., and Midgley, P. M., Cambridge University Press, Cambridge, UK and New York, NY, USA (2013)."
Expand Down Expand Up @@ -603,6 +604,7 @@ references:
li14jclim: "Li and Xie, J. Climate, 27, 1765-1780, doi:10.1175/JCLI-D-13-00337.1, 2014."
li17natcc: "Li, G., S.-P. Xie, C. He, and Z. Chen, Nat Clim Change, 7, 708, doi:10.1038/nclimate3387, 2017."
lin08jclim: "Lin, J-L. et al., J. Climate, 21, 4541-4567, doi: 10.1175/2008JCLI1816.1, 2008."
lipat17grl: "Lipat et al., Geophys. Res. Lett., 44, 5739-5748, doi:10.1002/2017GL73151, 2017."
lloyd-hughes02jclim: "Lloyd-Hughes, B. and Saunders, M. A., Int. J. Climatol., 22, 1571-1592, doi:10.1002/joc.846, 2002."
locarini10usgov: "Locarnini, R. A. et al., World Ocean Atlas 2009, Volume 1: Temperature. S. Levitus, Ed. NOAA Atlas NESDIS 68, U.S. Government Printing Office, Washington, D.C., 184 pp.,2010."
lucarini14revgeop: "Lucarini et al., Rev. Geophys., 52, 809-859, doi:https://doi.org/10.1002/2013RG000446"
Expand All @@ -618,14 +620,16 @@ references:
rk2008bams: "Reichler and Kim, Bull. Amer. Meteor. Soc., 89, 303-312, doi:10.1175/BAMS-89-3-303, 2008."
roedenbeck13os: "Roedenbeck, C. et al., Ocean Sci., 9, 193-216, doi:10.5194/os-9-193-2013, 2013."
roehrig13jclim: "Roehrig, R. et al., J. Climate, 26, 6471-6505, doi:10.1175/JCLI-D-12-00505.1, 2013."
sherwood14nat: "Sherwood et al., nature, 505, 37-42, doi:10.1038/nature12829, 2014."
sillman13jgr: "Sillmann et al., J. Geophys. Res., doi:10.1029/2012JD018390, 2013"
sperber12asl: "Sperber and Kim, Atmos. Sci. Lett., 13, 3, 187-193, doi:10.1002/asl.378, 2012."
straus07jcli: "Straus, D.M., S. Corti, and F. Molteni. J. Climate, 20, 2251-2272, doi:10.1175/JCLI4070.1, 2007"
stroeve07grl: "Stroeve, J. et al., Geophys. Res. Lett., 34, L09501, doi:10.1029/2007GL029703, 2007."
tibaldi90tel: "Tibaldi S. and Molteni F. Tellus A 42(3): 343-365, doi:10.1034/j.1600-0870.1990.t01-2-00003.x, 1990."
taylor12: "Taylor et al., Nature, 489, 423-426, doi:10.1038/nature11377, 2012."
terzago18nhess: "Terzago, S. et al., Nat. Hazards Earth Syst. Sci., 18, 2825-2840, doi:10.5194/nhess-18-2825-2018, 2018."
takahashi14marchem: "Takahashi et al., Mar. Chem., 164, 95-125, doi:10.1016/j.marchem.2014.06.004, 2014."
tian15grl: "Tian, Geophys. Res. Lett., 42, 4133-4141, doi:10.1002/2015GL064119, 2015."
tibaldi90tel: "Tibaldi S. and Molteni F. Tellus A 42(3): 343-365, doi:10.1034/j.1600-0870.1990.t01-2-00003.x, 1990."
vicente10jclim: "Vicente-Serrano, S. M. and Beguera, S. and Lopez-Moreno, J. I., Journal of climate, 23(7), 1696-1718, 10.1175/2009JCLI2909.1, 2010"
wang99bams: "Wang, B. and Z. Fan, Bull. Amer. Meteor. Soc., 80, 629-638, doi:10.1175/1520-0477(1999)080<0629:COSASM>2.0.CO;2, 1999."
wang11climdyn: "Wang, B. et al., Clim. Dyn., 39, 1123-1135, doi:10.1007/s00382-011-1266-z, 2011."
Expand Down
51 changes: 51 additions & 0 deletions esmvaltool/diag_scripts/emergent_constraints/ecs_cmip.cdl
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
netcdf ECS {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use yaml configuration files instead of cdl/netcdf, maybe this can simply go in the recipe? It seems to depend on the models you are using anyway, so would need changing if the model set changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not something that should to into a recipe as these numbers are either the result of another diagnostic or taken from literature (user choice). NetCDF is easy to process with NCL whereas yaml is not. The cdl script is provided so that an advanced user can add data easily if needed.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While this may be the easy solution for you as a programmer, I think it is not easy for users.


dimensions:

model = 66, mchar = 17 ;

variables:

float ecs(model);
char model(model, mchar);

// variable attributes

ecs:long_name = "Equilibrium Climate Sensitivity" ;
ecs:standard_name = "ECS" ;
ecs:units = "K" ;
ecs:_FillValue = -999. ;

model:named_coordinate = 1 ;

:reference1_cmip3 = "Sherwood, S. C., S. Bony, J.-L. Dufresne: Spread in model climate sensitivity traced to atmospheric convective mixing, Nature, 505, 37-42, doi:10.1038/nature12829, 2014" ;
: reference2_cmip3 = "IPCC AR4, table 8.2" ;
: reference_cmip5 = "IPCC AR5" ;
: reference_cmip6 = "ESMValTool v2.0a1 (recipe_ecs.yml)" ;

data:

model = "ACCESS1-0", "ACCESS1-3", "bcc-csm1-1", "bcc-csm1-1-m", "BNU-ESM", "CanESM2",
"CCSM4", "CESM1-BGC", "CESM1-CAM5", "CESM1-WACCM", "CMCC-CESM", "CMCC-CM",
"CMCC-CMS", "CNRM-CM5", "CSIRO-Mk3-6-0", "FGOALS-g2", "FIO-ESM", "GFDL-CM3",
"GFDL-ESM2G", "GFDL-ESM2M", "GISS-E2-H", "GISS-E2-R", "HadGEM2-AO",
"HadGEM2-CC", "HadGEM2-ES", "inmcm4", "IPSL-CM5A-LR", "IPSL-CM5A-MR",
"IPSL-CM5B-LR", "MIROC-ESM", "MIROC-ESM-CHEM", "MIROC5", "MPI-ESM-LR",
"MPI-ESM-MR", "MRI-CGCM3", "NorESM1-M", "NorESM1-ME",
"bccr_bcm2_0", "cccma_cgcm3_1", "cccma_cgcm3_1_t63", "cnrm_cm3",
"csiro_mk3_0", "csiro_mk3_5", "gfdl_cm2_0", "gfdl_cm2_1", "giss_aom",
"giss_model_e_h", "giss_model_e_r", "iap_fgoals1_0_g", "ingv_echam4",
"inmcm3_0", "ipsl_cm4", "miroc3_2_hires", "miroc3_2_medres",
"mpi_echam5", "mri_cgcm2_3_2a", "ncar_ccsm3_0", "ncar_pcm1",
"ukmo_hadcm3", "ukmo_hadgem1",
"BCC-CSM2-MR", "CNRM-CM6-1", "GISS-E2-1-G", "IPSL-CM6A-LR", "MIROC6",
"MRI-ESM2-0" ;

ecs = 3.8, -999., 2.8, 2.9, 4.1, 3.7, 2.9, -999., -999., -999., -999., -999., -999., 3.3,
4.1, -999., -999., 4, 2.4, 2.4, 2.3, 2.1, -999., -999., 4.6, 2.1, 4.1, -999., 2.6,
4.7, -999., 2.7, 3.6, -999., 2.6, 2.8, -999.,
-999., 3.4, 3.4, -999., 3.1, -999., 2.9, 3.4, -999., 2.7, 2.7, 2.3, -999., 2.1,
4.4, 4.3, 4.0, 3.4, 3.2, 2.7, 2.1, 3.3, 4.4,
3.04, 4.83, 2.72, 4.55, 2.61, 3.15 ;

}
Binary file not shown.
Loading