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

Generating Climate Patterns from CMIP6 Models #2702

Draft
wants to merge 29 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
f4913d0
Initial commit: added working files to branch.
mo-gregmunday Mar 17, 2022
6eb3fa1
Adding all current working files
mo-gregmunday Mar 18, 2022
59d0c8f
Added anomaly calculations + plotting
mo-gregmunday Mar 21, 2022
51a2f81
Added anomaly dataset generation
mo-gregmunday Mar 28, 2022
e019692
small refactoring
mo-gregmunday Mar 28, 2022
c43d1e4
Added anomaly generation for full timeseries + plots
mo-gregmunday Mar 28, 2022
04d3aeb
Adding re-name file
mo-gregmunday Mar 28, 2022
17494f3
Added Energy Balance Model initial script, refactored all
mo-gregmunday Mar 31, 2022
d4b40e2
Recipe file re-factor for extracting sftlf variable.
mo-gregmunday Apr 4, 2022
3212ea0
Added other atmospheric parameter calculations in preparation for EMB…
mo-gregmunday Apr 5, 2022
3f22c4a
Added temporary checks with CMIP5 model(s) + EBM calibration.
mo-gregmunday Apr 13, 2022
a0d96bd
Added regression coefficient (climate pattern) calculations
mo-gregmunday Apr 19, 2022
0a1ad76
Added regression by grid-cell by month
mo-gregmunday Apr 20, 2022
424bfdf
Refactored, fixed regression function, updated metadata for use in IM…
mo-gregmunday Apr 21, 2022
4b4a793
Refactored scripts, enhanced plotting, forced coeff intercept through…
mo-gregmunday Apr 25, 2022
78fb90f
Refactored scripts, enhanced plotting Pt.2
mo-gregmunday May 6, 2022
b8cf3ad
added patterns timeseries, trying plotting with native grid
mo-gregmunday May 10, 2022
0f78a29
Scaled to run over 18 GCMs, outputting EBM params and patterns for ea…
mo-gregmunday May 23, 2022
5b02e9e
Parallellised ebm_parameters
mo-gregmunday May 25, 2022
dc10008
parallelise patterns script, + added top docstring, + added switches …
mo-gregmunday May 25, 2022
dd34413
added docstrings to EBM script, + added SSP126 EBM prediction test
mo-gregmunday May 26, 2022
e245af9
completed docstring additions
mo-gregmunday Jun 8, 2022
642b4a2
Refactoring, preparing for PR
mo-gregmunday Jun 23, 2022
77715a7
final cleanup + adding required PR docs
mo-gregmunday Jul 4, 2022
e910081
Γ‚removing overshoot check pre-PR
mo-gregmunday Jul 4, 2022
4d8ecaa
codacy docstring fixes
mo-gregmunday Jul 4, 2022
964567e
rename plotting file
mo-gregmunday Jul 4, 2022
4fa1393
TENTATIVE COMMIT (changing recipe_cmorizesrs.rst to fix codacy issue)
mo-gregmunday Jul 4, 2022
38dd458
updated recipe to generate patterns from 37 models
mo-gregmunday Sep 1, 2022
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
728 changes: 348 additions & 380 deletions .zenodo.json

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,10 @@ authors:
family-names: Mohr
given-names: Christian Wilhelm
orcid: "https://orcid.org/0000-0003-2656-1802"
-
affiliation: "Met Office, UK"
family-names: Munday
given-names: Gregory
-
affiliation: "University of Arizona, USA"
family-names: Amarjiit
Expand Down
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 @@ -13,6 +13,7 @@ Atmosphere

recipe_miles
recipe_clouds
recipe_climate_patterns
recipe_cmug_h2o
recipe_crem
recipe_combined_climate_extreme_index
Expand Down
165 changes: 165 additions & 0 deletions doc/sphinx/source/recipes/recipe_climate_patterns.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
.. _recipes_climate_patterns:

Generating Climate Patterns from CMIP6 Models
=============================================

Overview
--------

The recipe recipe_climate_patterns generates climate patterns from CMIP6 model
datasets. It also generates a set of parameters to tune the energy-balance
model in IMOGEN-JULES.

.. note::
The regrid setting in the recipe is set to a 2.5x3.75 grid. This is done to
match the current resolution in the IMOGEN-JULES framework, but can be
adjusted with no issues for a finer/coarser patterns grid.


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

Recipes are stored in esmvaltool/recipes/

* recipe_climate_patterns.yml

Diagnostics are stored in esmvaltool/diag_scripts/climate_patterns/

* climate_patterns.py: generates climate patterns from input datasets
* ebm_parameters.py: outputs a set of ebm parameters for IMOGEN-JULES
* rename_variables.py: renames variables depending on user specifications
* sub_functions.py: set of sub functions to assist with driving scripts
* plotting.py: contains all plotting functions for driving scripts


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

#. Script climate_patterns.py

*Required settings for script*

None

*Optional settings for script*

* grid: whether you want to remove Antarctic latitudes or not
* imogen_mode: output imogen-specific var names + .nc files
* output_r2_scores: output measures of pattern robustness (adds runtime)
* parallelise: parallelise over models or not
* parallel_threads: if you want to paralellise, how many threads you want

*Required settings for variables*

* short_name
* additional_datasets

*Optional settings for variables*

None

*Required settings for preprocessor*

* monthly_statistics: converts data to mean monthly data

*Optional settings for preprocessor*

* regrid: regrids data

#. Script ebm_parameters.py

*Required settings for script*

None

*Optional settings for script*

* include_params: includes input parameters if known
* parallelise: parallelise over models or not
* parallel_threads: if you want to paralellise, how many threads you want

*Required settings for variables*

* short_name
* mip (only for land_frac)
* project (only for land_frac)
* additional_datasets

*Optional settings for variables*

None

*Required settings for preprocessor*

* annual_statistics: converts data to mean annual data

*Optional settings for preprocessor*

None


Variables
---------

#. Script climate_patterns.py

* tasmax (atmos, monthly, longitude latitude time)
* tasmin (atmos, monthly, longitude latitude time)
* tas (atmos, monthly, longitude latitude time)
* hurs (atmos, monthly, longitude latitude time)
* huss (atmos, monthly, longitude latitude time)
* pr (atmos, monthly, longitude latitude time)
* sfcWind (atmos, monthly, longitude latitude time)
* ps (atmos, monthly, longitude latitude time)
* rsds (atmos, monthly, longitude latitude time)
* rlds (atmos, monthly, longitude latitude time)

#. Script ebm_parameters.py

* land_frac (land, longitude latitude)
* tas (atmos, annual, longitude latitude time)
* rlut (atmos, annual, longitude latitude time)
* rsut (atmos, annual, longitude latitude time)
* rsdt (atmos, annual, longitude latitude time)


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

None

References
----------

* Huntingford, C., Cox, P. An analogue model to derive additional climate
change scenarios from existing GCM simulations.
Climate Dynamics 16, 575–586 (2000). https://doi.org/10.1007/s003820000067

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

.. _fig_climate_patterns_1:
.. figure:: /recipes/figures/climate_patterns/ebm_plots.png
:align: center
:width: 80%

Linear regression between tas and rtmt for the 4x abrupt CO2 expriment (top),
derived model total radiative forcing SSP1-26 and SSP5-85 (middle), EBM's pediction
of global surface temperature vs model output. (bottom)

.. _fig_climate_patterns_2:
.. figure:: /recipes/figures/climate_patterns/patterns.png
:align: center
:width: 80%

Patterns generated for CMIP6 models, gridded view. Patterns are shown per
variable, for the month of January.

.. _fig_climate_patterns_3:
.. figure:: /recipes/figures/climate_patterns/score_timeseries.png
:align: center
:width: 80%

R2 scores of patterns fitting per variable. Diversity of scores sits in the
literatures' range: with temperature, specific humidity and longwave
downwelling radiation being the most robust fits.
2 changes: 1 addition & 1 deletion doc/sphinx/source/recipes/recipe_cmorizers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Overview
These are CMORizer recipes calling CMORizer diagnostic scripts.

ESMValCore supports ERA5 hourly and monthly datasets in their native
format, see :ref:`CMORization as a fix <esmvaltool:cmorization_as_fix>`
format, see :ref:`cmorization_as_fix`
and `ERA5 data documentation <https://confluence.ecmwf.int/display/CKB/ERA5%3A+data+documentation>`_.
It may be useful in some cases to create ERA5 daily CMORized data. This can be
achieved by using a CMORizer *recipe*,
Expand Down
4 changes: 4 additions & 0 deletions esmvaltool/config-references.yml
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,10 @@ authors:
name: Dalvi, Mohit
institute: MetOffice, UK
orcid: https://orcid.org/0000-0003-1669-0811
munday_gregory:
name: Munday, Gregory
institute: MetOffice, UK
orcid:
nikulin_grigory:
name: Nikulin, Grigory
institute: SMHI, Sweden
Expand Down
Loading