Open JSAnandEOS opened 3 months ago
Sadly, I don't think there's an easy solution to your problem. I suggest you open an issue at the ESMF repo as the error seems to come from ESMpy and not xESMF.
As for the question about creating a curvilinear grid. The best would be to get the grid from an existing file. Are you planning to include some CORDEX output in your analysis, you could use thsat grid ? Otherwise, the py-cordex package should be able to help.
Thank you. I left a post on their discussion forum, so hopefully I get a response from them soon.
I tried producing a netCDF file in py-cordex including the grid cell boundaries, but ESMF failed to read it in, claiming that information about the bounds was missing. If it's not too much trouble, would you mind testing for yourself whether a file produced from py-cordex is compatible with ESMF_Regrid and get back to me?
For visibility here, I want to note that we have a fix for this issue that we plan to get into the upcoming ESMF 8.7 release: See https://github.com/orgs/esmf-org/discussions/263#discussioncomment-10131509 and https://github.com/esmf-org/esmf/pull/267. The issue was that we were casting a size to a 32-bit integer when we should have been using a 64-bit integer on 64-bit architectures; this change will support the creation of large Arrays.
Thanks, @JSAnandEOS for reporting this!
@billsacks thanks for implementing a fix for this issue! Is there an estimated timeline for the ESMF 8.7 release?
Is there an estimated timeline for the ESMF 8.7 release?
It should be out soon - within the next couple of weeks. We're just doing final testing and documentation of the release candidate.
I'm trying to regrid rectilinear data from Sentinel-3 (~300 m resolution) to the EURO-CORDEX grid (~12 km resolution) using conservative regridding. Because CORDEX is curvilinear, I don't know how to define the grid in ESMF as I can't find any examples online. When I try using xESMF I get the following error:
My problem is that The rectilinear dataset is too large: 17875 latitude x 39212 longitude points. It seems like any attempt to make a big array in ESMPy fails in the same way e.g.
What can I do here? I can't reduce my input dataset any further, as it already covers roughly the same region as the CORDEX target grid. Is it possible to run this Regridder somehow in MPI/etc.? Failing that, how can one create a curvilinear grid netCDF file that ESMF can recognise?