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

Implied heat transport new diagnostic #3177

Merged
merged 67 commits into from
Nov 2, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
41d3ba5
Adding all the files for calculating the full column and ocean heat t…
mo-fpearce May 20, 2022
b136984
"#2472: Update authors list and move recipy."
alejandrobodas Oct 20, 2022
54aa22f
#2472: Update authors list and move recipy.
alejandrobodas Oct 20, 2022
6c3675c
#2472: merge changes from 2.6.0.
alejandrobodas Oct 20, 2022
02f3618
#2472: fix directory structure.
alejandrobodas Oct 20, 2022
e177bbc
#2472: rename recipe and reduce number of years.
alejandrobodas Oct 21, 2022
014d660
#2472: tidy up recipe.
alejandrobodas Oct 21, 2022
44c14b1
#2472: optimise with numba.
alejandrobodas Oct 21, 2022
a576767
#2472: add numba package.
alejandrobodas Oct 21, 2022
2d3517e
Comment numba directives.
alejandrobodas Jan 11, 2023
584919d
Outputs Figures 1 to 5.
alejandrobodas Jan 14, 2023
67d3f53
Fix plot file names and improve style of plots.
alejandrobodas Jan 16, 2023
1b5717b
Test flake8 fix and CERES dataset (#2472).
alejandrobodas Jan 17, 2023
f1c4f1d
Change sign option introduced. Nicer spacing of arrows in plots (#2472).
alejandrobodas Jan 17, 2023
f9d9101
Initial attempt at symmetry metrics.
alejandrobodas Mar 9, 2023
d510552
Symmetry metrics and tidy up.
alejandrobodas May 12, 2023
f71f5d2
Remove multi-model and OHT code.
alejandrobodas May 16, 2023
6dd9a65
Merge branch 'main' into implied_heat_transport_new_diagnostic
mo-abodas May 16, 2023
5f42465
#2472: add missing docstrings.
alejandrobodas May 16, 2023
1ab7bcf
#2472: Fix flake errors.
alejandrobodas May 16, 2023
f3d6e75
#2472: code style fixes.
alejandrobodas May 18, 2023
b7de5f7
#2472: create solver class to address style errors.
alejandrobodas May 19, 2023
caae067
#2472: checkpoint of style changes.
alejandrobodas May 19, 2023
0c830f1
#2472: fix prospector style errors.
alejandrobodas May 22, 2023
95054c5
Fix codacy error.
mo-abodas May 22, 2023
849195f
Update poisson_solver.py
mo-abodas May 22, 2023
074c232
Update single_model_diagnostics.py
mo-abodas May 22, 2023
d453a95
Merge branch 'main' into implied_heat_transport_new_diagnostic
mo-abodas May 22, 2023
60086d5
#2472: tidy up, documentation and figures.
alejandrobodas May 23, 2023
f049b2a
#2472: import jit.
alejandrobodas May 23, 2023
cdb269e
#2472: add @jit decorator.
alejandrobodas May 23, 2023
98e8d6d
Merge branch 'main' into implied_heat_transport_new_diagnostic
mo-abodas May 23, 2023
454dbb3
Leave only one model dataset as example.
alejandrobodas Jun 6, 2023
dca370b
Expand comments on preconditioning.
alejandrobodas Jun 6, 2023
a53652a
Remove implicit assumption of uniform grid for symmetry metric.
alejandrobodas Jun 6, 2023
d3d3694
Merge changes made through web browser.
alejandrobodas Jun 6, 2023
e1a3d9c
#2472: style changes and dynamy references to figures in documentation.
alejandrobodas Jun 7, 2023
325699f
Merge branch 'main' into implied_heat_transport_new_diagnostic to avo…
alejandrobodas Jun 7, 2023
662244f
Fix style error.
alejandrobodas Jun 7, 2023
449e2e9
#3177 review. Replace print statements by calls to logger.
alejandrobodas Oct 11, 2023
2f54ae3
#3177 review. usReplace backlashes with implied line continuation ins…
alejandrobodas Oct 11, 2023
f4f8c58
#3177 review. Avoid touching cube data when possible.
alejandrobodas Oct 11, 2023
40b6081
#3177 review. Use of convert_units to avoid magic numbers
alejandrobodas Oct 12, 2023
015eec3
#3177 review. Avoid use of magic numbers.
alejandrobodas Oct 12, 2023
000206c
#3177 review. Avoid more magic numbers.
alejandrobodas Oct 13, 2023
9c64e8e
#3177 review. Avoid .copy statements.
alejandrobodas Oct 13, 2023
c16c4b2
#3177 review. Replace calls to var_name_constraint.
alejandrobodas Oct 13, 2023
278dad6
#3177 review. Fix some style errors.
alejandrobodas Oct 13, 2023
3a56318
#3177 review. Meaningful variable names in solver file.
alejandrobodas Oct 18, 2023
ee0a670
#3177 review. Meaningful variable names in diagnostics file.
alejandrobodas Oct 19, 2023
6306ff2
#3177 review. More meaningful variable names in diagnostics file.
alejandrobodas Oct 19, 2023
4b44c60
#3177 review. Expand docstrings.
alejandrobodas Oct 19, 2023
417f0a4
#3177 review. Expand docstrings.
alejandrobodas Oct 20, 2023
46ccc17
#3177 review. EBAF version and .rst fixes.
alejandrobodas Oct 20, 2023
855ce44
#3177 review. Simplify provenance function.
alejandrobodas Oct 26, 2023
53e7b08
#3177 review. Copyright; magic number; error handling; logger path na…
alejandrobodas Oct 26, 2023
4dab610
#3177 review. Fix of pylint errors.
alejandrobodas Oct 27, 2023
f4803b5
#3177 review. Fix of pycodestyle errors.
alejandrobodas Oct 27, 2023
de84d04
#3177 review. Fix jit warnings.
alejandrobodas Oct 27, 2023
b46c792
#3177 review. Fix provenance records and figure captions.
alejandrobodas Oct 27, 2023
b44104f
#3177 review. Fix codacy errors.
alejandrobodas Oct 27, 2023
ee97245
Merge branch 'main' into implied_heat_transport_new_diagnostic
mo-abodas Oct 27, 2023
94ecbe2
#3177 review. Fix indentation and add author.
alejandrobodas Oct 27, 2023
aec22df
#3177 review. Delete EBAF level and version; add paper reference.
alejandrobodas Oct 31, 2023
fb54090
Update doc/sphinx/source/recipes/recipe_iht_toa.rst
mo-abodas Nov 1, 2023
397cc44
#3177 review. Fix author position and docstring; delete print statement.
alejandrobodas Nov 1, 2023
944a9c0
Merge branch 'main' into implied_heat_transport_new_diagnostic
mo-abodas Nov 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
797 changes: 390 additions & 407 deletions .zenodo.json

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,11 @@ authors:
family-names: Bock
given-names: Lisa
orcid: "https://orcid.org/0000-0001-7058-5938"
-
affiliation: "MetOffice, UK"
family-names: Bodas-Salcedo
given-names: Alejandro
orcid: "https://orcid.org/0000-0002-7890-2536"
-
affiliation: "BSC, Spain"
family-names: Caron
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
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 @@ -45,6 +45,7 @@ Atmosphere
recipe_gier20bg
recipe_heatwaves_coldwaves
recipe_hyint
recipe_iht_toa
recipe_impact
recipe_modes_of_variability
recipe_mpqb_xch4
Expand Down
123 changes: 123 additions & 0 deletions doc/sphinx/source/recipes/recipe_iht_toa.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
.. _recipes_iht_toa:

Implied heat transport from Top of Atmosphere fluxes
====================================================

Overview
--------

This recipe calculates the implied horizontal heat transport (IHT) due to the
spatial anomalies of radiative fluxes at the top of the atmosphere (TOA).
The regional patterns of implied heat transport for different components of
the TOA fluxes are calculated by solving the Poisson equation with the flux
components as source terms.
It reproduces the plots in `Pearce and Bodas-Salcedo (2023)`_ when the input
data is CERES EBAF.


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

Recipes are stored in esmvaltool/recipes/

* recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes:

* Total net, SW net, LW net (Figure 2).
* Total CRE, SW CRE, LW CRE (Figure 4).
* All-sky and clear-sky reflected SW (Figure 5).
* The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3).

Diagnostics are stored in esmvaltool/diag_scripts/iht_toa/

* single_model_diagnostics.py: driver script that produces the plots.
* poisson_solver.py: solver that calculates the IHTs.

.. _`Pearce and Bodas-Salcedo (2023)`: https://doi.org/10.1175/JCLI-D-22-0149.1

User settings in recipe
-----------------------
There are no user settings in this recipe.

Variables
---------

* rlut (atmos, monthly, longitude latitude time)
* rlutcs (atmos, monthly, longitude latitude time)
* rsutcs (atmos, monthly, longitude latitude time)
* rsut (atmos, monthly, longitude latitude time)
* rsdt (atmos, monthly, longitude latitude time)

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

* CERES-EBAF

References
----------

* Pearce, F. A., and A. Bodas-Salcedo, 2023: Implied Heat Transport from CERES
Data: Direct Radiative Effect of Clouds on Regional Patterns and Hemispheric
Symmetry. J. Climate, 36, 4019–4030, doi: 10.1175/JCLI-D-22-0149.1.

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

.. _fig_iht_toa_1:
.. figure:: /recipes/figures/iht_toa/figure1_CERES-EBAF_CERES-EBAF.png
:align: center

The implied heat transport due to the total net flux (blue), split into
the contributions from the SW (orange) and LW (green).

.. _fig_iht_toa_2:
.. figure:: /recipes/figures/iht_toa/figure2_CERES-EBAF_CERES-EBAF.png
:align: center

The energy flux potentials for (a) TOT, (c) SW, and (e) LW fluxes,
alongside maps of the spatial anomalies of the fluxes [(b),(d),(f)
flux minus global average flux, respectively].
The implied heat transport is calculated as the gradient of the energy
flux potential, shown by the white vector arrows for a subset of points
to give the overall transport pattern.
Heat is directed from the blue minima of the potential field to
yellow maxima, with the magnitude implied by the density of contours.
All maps of the same type share the same color bar at the bottom
of the column.

.. _fig_iht_toa_3:
.. figure:: /recipes/figures/iht_toa/figure3_CERES-EBAF_CERES-EBAF.png
:align: center

Direct radiative effects of clouds on the meridional heat transport.
(a) Contributions from TOT CRE (blue), SW CRE (orange), and LW CRE (green)
fluxes. (b) Contributions from all-sky and clear-sky OSR.
In (b), both curves have been multiplied by βˆ’1 such that positive heat
transport is northward.

.. _fig_iht_toa_4:
.. figure:: /recipes/figures/iht_toa/figure4_CERES-EBAF_CERES-EBAF.png
:align: center

As in :numref:`fig_iht_toa_2`, but for the implied heat transport associated with
(a),(b) TOT CRE, (c),(d) SW CRE, and (e),(f) LW CRE fluxes.

.. _fig_iht_toa_5:
.. figure:: /recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png
:align: center

As in :numref:`fig_iht_toa_2`, but for (a), (b) clear-sky and (c), (d) all-sky reflected
SW flux.

.. _fig_iht_toa_6:
.. figure:: /recipes/figures/iht_toa/figure6_CERES-EBAF_CERES-EBAF.png
:align: center

A measure of the symmetry between heat transport in the Northern and
Southern Hemispheres, calculated for the 12-month running mean of TOT MHT
in the regions: (a) the full hemisphere, (b) from the equator to 30Β°, and
(c) 30Β° to 90Β°.
Symmetry values obtained when including (blue) and excluding (orange)
the effect of clouds. The climatological symmetry values for the two cases
are shown as the black lines in each subplot, dashed and dotted,
respectively.
The standard deviations of the time series are shown in each plot.
1 change: 1 addition & 0 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ dependencies:
- natsort
- nc-time-axis
- netCDF4
- numba
zklaus marked this conversation as resolved.
Show resolved Hide resolved
- numpy !=1.24.3 # severe masking bug
- packaging
- openpyxl
Expand Down
8 changes: 8 additions & 0 deletions esmvaltool/config-references.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,10 @@ authors:
institute: DLR, Germany
orcid: https://orcid.org/0000-0001-7058-5938
github: LisaBock
bodas-salcedo_alejandro:
name: Bodas-Salcedo, Alejandro
institute: MetOffice, UK
orcid:
bojovic_dragana:
name: Bojovic, Dragana
institute: BSC, Spain
Expand Down Expand Up @@ -411,6 +415,10 @@ authors:
name: Pandde, Amarjiit
institute: Univ. of Arizona, USA
orcid:
pearce_francesca:
name: Pearce, Francesca
institute: MetOffice, UK
orcid:
perez-zanon_nuria:
name: Perez-Zanon, Nuria
institute: BSC, Spain
Expand Down