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

Land masked IFS variables require masked regridding #671

Closed
treerink opened this issue Nov 19, 2020 · 11 comments
Closed

Land masked IFS variables require masked regridding #671

treerink opened this issue Nov 19, 2020 · 11 comments

Comments

@treerink
Copy link
Collaborator

treerink commented Nov 19, 2020

See also ec-earth issue 922.

While working on #664 we discovered that land/soil IFS variables which (often or always) have a land mask, require masked regridding. The masked regridding for these variables is possible, but was not implemented in ece2cmor3 until now. This means that many or all coastal points for these variables have incorrect values, as partly sea points with improper values have been used in the interpolation.

In #664 (comment) the similar problem for the outside-cmor case of tos on the atmosphere grid case was encountered but with the sea mask.

An additional complication is that with the current ece2cmor3 code the addition of the masking of monthly or yearly variables causes the BUG that these variable get dismissed, when the used mask is an fx variable which is for the land masking the case with grib code 172.

We plan to improve this masking for a next ece2cmor3 release, as this simply gives clear better results.

We realize that this issue also concerns the cmorised and published CMIP6 data. How to cope with this and whether we want to create errata or even want to correct published data for this should be discussed on the ec-earth portal. Correcting the data might be a hard task, as we believe this is only possible with from raw data.

@treerink
Copy link
Collaborator Author

The list of ifspar.json variables which have a land mask:

 mrros
 mrrob

 snm
 snmIs
 snw
 lwsnl
 mrro
 mrroIs
 tslsi
 tsland
 tr

 mrso
 mrsow
 clayfrac
 siltfrac
 sandfrac
 mrfso
 mrsos
 tsl
 tsl4sl
 mrsol
 hfdsl
 hfmlt
 hfsbl
 esn
 slthick

@etiennesky
Copy link
Contributor

I think you are forgetting lai, this is quite important if you want to compute a global mean 0 values over the ocean will dillute the mean. Or maybe I misunderstand what you mean?

@treerink
Copy link
Collaborator Author

I checked that lai is provided by lpjg, so that is not part of this issue.

treerink added a commit that referenced this issue Nov 23, 2020
@treerink
Copy link
Collaborator Author

@treerink treerink mentioned this issue Dec 3, 2020
treerink added a commit that referenced this issue Dec 3, 2020
…solving #671 this is now correctly handled for each masked variable. With this the tosa expression could be removed at all, finalizing #664.
@klauswyser
Copy link
Collaborator

Sorry for coming in late in the discussion. I am a little bit puzzled about the "masked regridding" of IFS variables. The raw IFS output is on a reduced Gauss grid, and this is then mapped to a regular Gauss grid with cdo setgridtype,regular .... Where can you add the mask infromation in that cdo command?

@goord
Copy link
Collaborator

goord commented Dec 5, 2020

We divide the variable first by the mask expression , e.g. (var172 >= 0.5) which evaluates to 1 on land and 0 on sea points. This makes the sea points on the reduced grid truly masked for cdo, not zero. The regridding then discards these values, and we avoid artifacts along coast lines. So we alter the variable expression before applying regridding

@etiennesky
Copy link
Contributor

etiennesky commented Dec 6, 2020

Am I wrong in my understanding that all lpjg output is also affected by a similar bug, because the non-land points all have values of 0 and the "cdo remapycon" remapping produces wrong values over the coastline, since there is no masking done ?

@klauswyser
Copy link
Collaborator

Thanks @goord for the explanation. Pretty dangerous to divide by 0 to get missing values in my humble opinion. Another point: are we sure that setgridtype,regular works well along the coastline when some gridpoints of the regular grid fall between a land and an ocean point? Will all these points receive valid values because one of the neighbouring points on the reduced grids is valid? In that case the land area would become too large. If on the other hand all these gridpoints would be missing because one of the neighbours on the reduced grid is missing then we would have too little land. An easy way to check would be to compare the interpolated field with missing values against sftlof from IFS.

@etiennesky : LPJG output fields are not necessarily affected by the bug because they are saved on an unstructered grid that is not remapped with setgridtype,regular like the IFS output but a different remapping function (not sure which).

@treerink
Copy link
Collaborator Author

The division is what we found as cdo recommendation for masked regridding.

See updates -the diff figures- on the ec-earth issue 922.

@treerink
Copy link
Collaborator Author

If we fear a similar bug in the LPJG land masked regridding in the cmorisation, please open a separate issue for that.

Closing this one.

@treerink
Copy link
Collaborator Author

In 314d909 one varlist for the CMIP historical and one other for the ScenarioMIP ssp's (both AOGCM) are added with which the incorrect variables of #671 & #684 can be recmorised for those who still have the raw IFS EC-Earth3 data. In addition the fx variables are added in this varlist because of #667.

treerink added a commit that referenced this issue Mar 25, 2021
…resolutions the omit_mask for the BUG in the ifs land masked varaibales in ece2cmor3 versions < v1.7.0. See #691, #671, #686.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants