-
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
Fix derivation for sea ice extent (siextent) #2648
base: main
Are you sure you want to change the base?
Conversation
@@ -48,16 +49,19 @@ def calculate(cubes): | |||
sic = cubes.extract_cube(Constraint(name="sic")) | |||
except iris.exceptions.ConstraintMismatchError: | |||
try: | |||
sic = cubes.extract_cube(Constraint(name="siconca")) |
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.
If I remember correctly, siconca
was added because some models were missing siconc
, but I am not sure if that is still the case.
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.
That is right. In any case, I think it does not hurt to also try "siconca", so I would prefer to keep this here if that's fine.
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.
Well in that case, it looks like it needs to be re-added because tests are failing due to siconca not being required anymore.
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.
I justed updated that part a bit: 0c8beb9
I cannot get this preprocessor working for CMIP5 data, though, when adding {"short_name": "siconca", "optional": "true"},
. Alternatively, I can remove the "siconca" part. Any advice would be highly appreciated...
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.
I tested with the latest commit 1eaa6f0 loading CMIP5 sic data, CMIP6 sic data and CMIP6 data that only has siconca available and it worked finding the data that is needed for each project:
datasets:
- {dataset: GISS-E2-1-H, grid: gr} # CMIP6 sic data
- {dataset: GISS-E2-1-H, exp: piControl, grid: gn, timerange: '3180/3180'} # CMIP6 siconca data
- {dataset: GISS-E2-H-CC, project: CMIP5, ensemble: r1i1p1, mip: OImon} # CMIP5 sic data
diagnostics:
test:
variables:
siextent:
project: CMIP6
mip: SImon
timerange: '2000/2000'
derive: true
exp: historical
ensemble: r1i1p1f1
scripts: null
Let me know if it works for you
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 looking into this, @sloosvel! I tried this and I don't think we found the optimum solution yet. If I add a CMIP6 dataset that provides both, siconc
and siconca
(e.g. MPI-ESM1-2-LR
), I run into a shape error, e.g.
ValueError: Chunks do not add up to shape. Got chunks=((96,), (192,)), shape=(220, 256)
Also, our current solution does not support to process any observationally-based data (e.g. projects OBS
, OBS6
, ana4mips
, obs4MIPs
, native5
, etc.). Here are some examples for observationally-based datasets that I tried:
- {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-NH,
supplementary_variables: [{short_name: areacello, mip: Ofx}]}
- {dataset: HadISST, project: OBS, tier: 2, type: reanaly, version: '1', mip: OImon}
- {dataset: CFSR, project: ana4mips, tier: 1, type: reanalysis, mip: OImon}
So maybe checking for if project == 'CMIP6' or project == 'OBS6'
is enough and a plain else
for all other cases in the required
function? But then, there is still the shape problem.
Do you have an idea what we could do? I didn't expect this to be so complicated...
Description
The PR fixes some small issues with the derivation script for sea ice extent, i.e.
This fix is required for calculating and plotting a correct seasonal cycle of Arctic/Antarctic sea ice extent for REF: ESMValGroup/ESMValTool#3891