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

data_override support for masked and fractional regridding using conservative interpolation #1409

Open
StevePny opened this issue Nov 14, 2023 · 1 comment
Labels
enhancement Issue/PR for a modification that increases performance, improves syntax, or adds functionality.

Comments

@StevePny
Copy link

StevePny commented Nov 14, 2023

Is your feature request related to a problem? Please describe.
When running fv3-shield and reading in ECMWF SST data using data_override, there are anomalies that show up near the coast lines. We need a method to ensure that SST fields from external sources (e.g. ECMWF, Navy, etc.) are appropriately mapped to the ocean grid used by fv3-shield and ideally are conservatively remapped. Similarly for skin temperature, which is defined everywhere (over sea,land,ice) but can have sharp gradients between land and ocean, needs to be mapped so that ocean points map to ocean points with the appropriate fractional weighting.

I assume that this feature is not currently available, because I see that the current interpolation options in data_override are bilinear and bicubic, e.g.:

//'its value should be "default", "bicubic", "bilinear" or "none" ')

Describe the solution you'd like
It would be useful if fractional regridding is supported, where the ocean/land/ice fractions are used to ensure that ocean points are mapped to ocean points, sea ice points to sea ice points, and land point to land points, with the appropriate area-weighted integrals (this follows the spirit of issue #1399, which requests support for providing input regridding weights). Ideally, the regridding weights could still be pre-computed while the fractional weighting and land/sea/ice masks are applied within the model using fractions/masks in the input file and already defined within the model, as these can change over time.

Describe alternatives you've considered
We have attempted to pre-compute regridding of external SSTs and skin temperature fields to the mosaic-defined multi-tile cubed sphere grid, with the intent to turn off interpolation in the data_override routine. This has not been successful yet, but we will continue to develop it as an option.

Additional context

Differences in 2m temperature in FV3-SHiELD between using NOAA SST ICs and ECMWF forecasted skin temp after 1 hour, showing artifacts near the coast:
image

@StevePny StevePny added the enhancement Issue/PR for a modification that increases performance, improves syntax, or adds functionality. label Nov 14, 2023
@lharris4
Copy link
Contributor

lharris4 commented Dec 6, 2023

@StevePny Sorry again for the delay.

I don't believe that data_override is intended to be this sophisticated. if you wish to use skin temperature for both LST and SST, a better approach would be to first create separate land surface and sea surface temperature fields derived from skin temperature and using the input dataset's land-sea mask, and using some sort of extrapolation or filling technique to fill appropriate data over the ocean (for LST) or over land (for SST). You can then safely regrid these separate datasets onto the model grid in data_override without worrying about these big artifacts near the coastline.

Please let me know if this makes sense. I know this adds an extra step to the preprocessing (I believe chgres_cube does something similar) but is the simplest solution to this issue.

Thanks
Lucas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Issue/PR for a modification that increases performance, improves syntax, or adds functionality.
Projects
None yet
Development

No branches or pull requests

2 participants