-
Notifications
You must be signed in to change notification settings - Fork 39
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
Make derivation of total column ozone (toz
) more flexible and add derivation of stratospheric and tropospheric column ozone
#2509
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2509 +/- ##
==========================================
+ Coverage 94.77% 94.83% +0.05%
==========================================
Files 249 251 +2
Lines 14095 14191 +96
==========================================
+ Hits 13359 13458 +99
+ Misses 736 733 -3 ☔ View full report in Codecov by Sentry. |
This can be tested with the following recipe: # ESMValTool
---
documentation:
title: test
description: test
authors:
- schlund_manuel
maintainer:
- schlund_manuel
preprocessors:
du:
convert_units:
units: DU
diagnostics:
test:
variables:
toz:
derive: true
force_derivation: true
exp: historical
start_year: 2013
end_year: 2014
preprocessor: du
additional_datasets:
- {project: CMIP6, dataset: CESM2-WACCM, ensemble: 'r1i1p1f1', grid: gn, mip: Amon}
- {project: CMIP6, dataset: GISS-E2-1-G, ensemble: 'r1i1p3f1', grid: gn, mip: AERmon}
troz:
derive: true
force_derivation: true
exp: historical
start_year: 2013
end_year: 2014
preprocessor: du
additional_datasets:
- {project: CMIP6, dataset: CESM2-WACCM, ensemble: 'r1i1p1f1', grid: gn, mip: Amon}
- {project: CMIP6, dataset: GISS-E2-1-G, ensemble: 'r1i1p3f1', grid: gn, mip: AERmon}
soz:
derive: true
force_derivation: true
exp: historical
start_year: 2013
end_year: 2014
preprocessor: du
additional_datasets:
- {project: CMIP6, dataset: CESM2-WACCM, ensemble: 'r1i1p1f1', grid: gn, mip: Amon}
- {project: CMIP6, dataset: GISS-E2-1-G, ensemble: 'r1i1p3f1', grid: gn, mip: AERmon}
scripts:
null |
Not all of them, but Google Maps certainly can 😄 |
Hey @schlunma, thank you for taking care of this. I made my own attempt to build troz.py (see below), by basically calculating troz as troz = toz - soz. This reduces the doubling of code, but introduces dependencies from troz on soz. What do you think about that?
|
I successfully tested the given recipe as well as applied it to the diagnostics to plot |
The map plots of the climatology 2013 - 2014 of |
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.
Thank you for sharing this optional of ozone variables. I am impressed by the comprehensive testing.
I first had it that way and it produced exactly the same results. However, you trade simpler code for speed in this case, as this would mean that the (potential) interpolation needs to be done twice, which can be very expensive. I think avoiding this is better than saving ~20 lines of code.
Ah, nice to see that time averaging helps! I also think that there's nothing we can really do about it... Thanks for reviewing 🎉 |
@valeriupredoi since you already commented on this PR, would you do us the honor of performing a technical review? Thanks 🍻 |
on it right now, bud 🍺 |
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 looks very good, many thanks! My only (more) serious concern is with those plev points that should be loaded straight from the CMOR table, but all else looks good, cheers 🍺
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.
Many thanks for addressing the review comments, Manu 🍺
Description
This PR makes the derivation of total column ozone (
toz
) more flexible by allowing its derivation fromo3
from the AERmon table)o3
from the AERmonZ table)In addition, this PR adds two derived variables:
soz
), where the "stratosphere" is defined as the region where the O3 mole fraction exceeds 125 ppbtroz
), where the "stratosphere" is defined as the region where the O3 mole fraction is lower than 125 ppbBackwards-incompatible change
This PR also changes the units of
toz
in our custom table from DU to m. This is done to make it consistent with the CMIP6 definition. Otherwise, this will lead to various problems when directly comparing CMIP6 output with CMIP5 output (or another project that uses the custom table).To restore the old behavior, a preprocessor can be added in the recipe to convert m to DU:
Checklist
It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the 🛠 Technical or 🧪 Scientific review.
Changes are backward compatible(see above)To help with the number pull requests: