-
Notifications
You must be signed in to change notification settings - Fork 129
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
axel-lauer
merged 39 commits into
version2_development
from
version2_emergent_constraints
Oct 29, 2019
Merged
Changes from all 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 860faa7
added recipe_ecs_scatter_cmip6.yml
axel-lauer d828489
added Sphinx docu for emergent_constraints
axel-lauer a1ce99f
Update recipe_emergent_constraints.rst
axel-lauer 461382f
Update recipe_emergent_constraints.rst
axel-lauer ee21db3
pep8 fixes to ecs_scatter.ncl
axel-lauer c5b668c
Merge branch 'version2_emergent_constraints' of github.com:ESMValGrou…
axel-lauer 9b405b6
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer c7c339d
cleaned recipe_ecs_scatter.yml, recipe_ecs_scatter_cmip6.yml + bugfix…
axel-lauer c54f641
further clean-up of recipe_ecs_scatter.yml
axel-lauer da6fbd8
added full path of ecsfile to provenance info
axel-lauer 7e05890
added fix for BCC-CSM2-MR (CMIP6)
axel-lauer 851b6b2
applied pep8 standard to new fix files
axel-lauer d30a6ec
attempt to pass unit tests for CMIP6 fix files
axel-lauer b3d07cb
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer 8ddbe33
updated ecs_scatter recipes
axel-lauer 974505e
added ecs_cmip.nc (file size: 2004 bytes) for convenience
axel-lauer 6be9d9e
updated fix file ESACCI_GHG.py
axel-lauer 1509c13
fixed some Codacy issues in ESACCI_GHG.py
axel-lauer bdc31e5
removed obsolete ESACCI_GHG.py
axel-lauer f782506
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer 58904fa
added __init__.py to cmor/_fixes/CMIP6
axel-lauer 88b8dca
beautifying + update ecs_cmip.*
axel-lauer 7a1fad1
beautified recipe_ecs_scatter*.yml
axel-lauer a8c4a84
removed fix files for CMIP6 models
axel-lauer 7f0aa8c
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer 847b7d0
Update recipe_emergent_constraints.rst
axel-lauer 0a2217a
Update recipe_emergent_constraints.rst
axel-lauer 465ab15
Update recipe_emergent_constraints.rst
axel-lauer 548c667
adapted ecs_scatter recipes to new references format
axel-lauer cc423da
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer 9b28e1a
updated ecs_cmip.cdl
axel-lauer 996c14d
Merge branch 'version2_development' into version2_emergent_constraints
mattiarighi bfd782a
Merge branch 'version2_emergent_constraints' of github.com:ESMValGrou…
axel-lauer c5596f7
updated precalculated CMIP6 ECS values
axel-lauer dee8a61
updated recipe_ecs_scatter_cmip6.yml
axel-lauer 00ffca1
Merge branch 'version2_development' into version2_emergent_constraints
axel-lauer 7704c45
merged latest development branch
axel-lauer e1d56c8
consolidated CMIP5 and CMIP 6 recipes for ecs_scatter diagnostics
axel-lauer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
150 changes: 150 additions & 0 deletions
150
doc/sphinx/source/recipes/recipe_emergent_constraints.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,150 @@ | ||
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 recipe 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") | ||
* ecs_file: path and filename of netCDF containing precalculated | ||
ECS values (see note above) | ||
|
||
*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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
netcdf ECS { | ||
|
||
dimensions: | ||
|
||
model = 74, 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.0.0b2 (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", "BCC-ESM1", "CAMS-CSM1-0", "CESM2", "CESM2-WACCM", "CNRM-CM6-1", | ||
"CNRM-ESM2-1", "GFDL-CM4", "GISS-E2-1-G", "GISS-E2-1-H", "IPSL-CM6A-LR", | ||
"MIROC6", "MPI-ESM1-2-HR", "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, 3.26, 2.31, 6.29, 4.75, 4.83, 4.76, 3.87, 2.72, 3.11, 4.55, 2.61, 2.98, 3.15 ; | ||
} |
Binary file not shown.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.