Re: EASE grid and esmf warning messages

From: Mary Haley <haley_at_nyahnyahspammersnyahnyah>
Date: Fri May 23 2014 - 15:22:18 MDT

Dave,

I looked into this in more detail, and the issue appears to be with the underlying code that is trying to calculate the grid corners, based on your lat2d/lon2d values.

If you don’t provide the grid corners, then NCL tries to calculate them for you using a pretty generic algorithm that takes an average of surrounding points to guess at corner values.

With this particular grid, you have several cases where all four points surrounding a particular point are missing, and hence “avg” complains that it can’t calculate the average.

I believe that you only need these corner values if you are doing a “conservative” regridding, so perhaps, as a work-around, you can provide some “dummy” corner arrays:

  Opt@GridCornerLat = new((/latlon_size,4/),typeof(lat2d))
  Opt@GridCornerLon = new((/latlon_size,4/),typeof(lon2d))

I tried this with your code and didn’t get any more errors, but I don’t really have a way to test this unless I have some data to regrid. Can you try this out yourself?

Note: if you decide to do “conserve” regridding, then you will need to provide these corner values yourself. For more information on these two arrays, see:

http://www.ncl.ucar.edu/Document/Functions/ESMF/ESMF_regrid.shtml

I will file a JIRA ticket on the corner issue with non conservative regridding.

—Mary

 
On May 23, 2014, at 2:04 PM, David B. Reusch <dreusch@ees.nmt.edu> wrote:

> Hi,
>
> I continue to have problems with this though it's now limited to just
> one input file.
>
> Backing up, this process starts with a 25-km EASE grid with 721 rows and
> columns. I've been creating 50, 75, 100 and 125 km subsets of this by
> using appropriate strides (2, 3, 4, 5) when creating the subset from the
> original. I'm having no problems creating ESMF grid description files
> with the subsets from a 25-km source where I've dropped the first/last
> row/col as described earlier. But I can't solve the warning message
> problem with the 25-km source even though it passes my "no missing
> cols/rows" test after dropping the first/last row/col. That is, there
> are NO columns or rows of just FillValues in the input.
>
> I've put an updated tar file with the 25 km data in ftp as
> esmf_def_curvi_2.tgz
>
> And I forgot to mention I'm doing all this on yellowstone so it's the
> latest NCL version.
>
> Lastly, I'm not yet using the 25 km grid (I'll be using a lower
> resolution version) so while it'd be great to learn what's going on,
> it's not keeping me from getting my downstream work done. (I just wish
> I could learn to ignore the warnings!)
>
> Thanks,
> Dave
>
> Mary Haley said the following on 5/22/2014 3:51 PM:
>> Dave,
>>
>> I would have expected the ESMF regridding code to work on this grid without having to convert it to an unstructured grid first. The "SrcMask2D" I thought was supposed to take care of this kind of thing. I agree that it's better to keep the original structure as much as possible.
>>
>> I also tried dropping the first and last rows, but still got the error. So, I'm glad it worked for you. :-) Maybe my indexing syntax wasn't quite right.
>>
>> --Mary
>>
>> On May 22, 2014, at 3:18 PM, "David B. Reusch" <dreusch@ees.nmt.edu> wrote:
>>
>>> Hi Mary,
>>>
>>> Yes, that was exactly it: this grid has missing values in the first/last rows/cols. Technically speaking, I did "see" this Tuesday when I was looking at my new ncfile in ncview, or at least I saw that there was a FillValue along the edge. Didn't think much of it other than briefly wondering why. Certainly didn't connect that with the ESMF warning messages.
>>>
>>> Rather than going unstructured (I really, really want to keep it curvilinear if I can) I first changed my ease_to_nc.ncl script to first look for totally empty missing cols/rows. Then after I confirmed the above situation, I changed it to drop the first/last row/col before proceeding. Not very flexible but it does the job for this file.
>>>
>>> I'm happy to share with the ESMF regridding page. My plan is to regrid CMIP5 GCMs to this EASE grid so any variable from any of those files should work as an example. I just created a 1981-2000 average of daily January tas from CCSM4 in /glade/scratch/dbr/tas_avg_1981-2000_01.nc. Haven't tried regridding it but have no reason to think it won't work.
>>>
>>> I really do try to follow Dennis' maxim of "know your data" but somehow didn't quite see this one. Thanks for doing the hunting down I should have done myself.
>>>
>>> Cheers,
>>> Dave
>>>
>>> Mary Haley said the following on 5/22/2014 2:47 PM:
>>>> Dave,
>>>>
>>>> I think the issue is that your lat/lon arrays contain missing values all along two rows and two columns. Even though you are setting the SrcMask array, it still has trouble because of the nature of the missing values.
>>>>
>>>> One possibility is to treat this as an unstructured grid, by throwing away all the missing points, and saving the valid points in 1D arrays for a call to unstructured_to_ESMF. See the attached script.
>>>>
>>>> This is a unique example that could be useful for our ESMF regridding page. If you could provide me with the variable you want to regrid, and what you are regridding to (or from), then I can try to come up with a complete example for this page.
>>>>
>>>> Thanks,
>>>>
>>>> --Mary
>>>>
>>>>
>>>>
>>>>
>>>> On May 22, 2014, at 9:21 AM, David B. Reusch <dreusch@ees.nmt.edu>
>>>> wrote:
>>>>
>>>>
>>>>> Hi,
>>>>>
>>>>> I am getting a huge number of warning messages when doing curvilinear_to_SCRIP for an EASE grid with lots of FillValues. I recognize they are *warning* mesages so possibly nothing to worry about, but I wanted to be sure.
>>>>>
>>>>> I'm using the southern hemisphere EASE grid from NSIDC so the square input array has a circle of valid data in the middle surrounded by FillValues. I seem to be getting two of the message below for each FillValue point:
>>>>> warning:avg: Entire input array contains missing values, can't compute average
>>>>>
>>>>> Assuming it would work, and as long as I'm not hiding a real problem, I'm willing to use the "how to suppress warnings" code (from the FAQ).
>>>>> err = NhlGetErrorObjectId()
>>>>> setvalues err
>>>>> "errLevel" : "Fatal" ; only report Fatal errors
>>>>> end setvalues
>>>>> I've put esmf_def_curvi.tgz in the incoming ftp. It has the ncl script (define_grid_curvilinear.ncl), input (EASE_125KM_lat_lon.nc) & output (EASE_125KM_esmf_grid_reg.nc) files and output messages (def_EASE125.out) from the script.
>>>>>
>>>>> Thanks,
>>>>> Dave
>>>>> --
>>>>> Associate Research Professor of Climatology
>>>>> Dept of Earth and Environmental Science
>>>>> MSEC 304; 801 Leroy Place
>>>>> New Mexico Tech
>>>>> Socorro, NM 87801
>>>>> _______________________________________________
>>>>> ncl-talk mailing list
>>>>> List instructions, subscriber options, unsubscribe:
>>>>>
>>>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>> --
>>> Associate Research Professor of Climatology
>>> Dept of Earth and Environmental Science
>>> MSEC 304; 801 Leroy Pl
>>> New Mexico Tech
>>> Socorro, NM 87801
>>>
>>
>
> --
> Associate Research Professor of Climatology
> Dept of Earth and Environmental Science
> MSEC 304; 801 Leroy Pl
> New Mexico Tech
> Socorro, NM 87801
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri May 23 15:22:29 2014

This archive was generated by hypermail 2.1.8 : Tue May 27 2014 - 15:45:08 MDT