[ncl-talk] Fw: lintint2_points

Dennis Shea shea at ucar.edu
Tue Feb 6 21:12:21 MST 2018


Inadvertently, I used the 6.5 0 version of NCL to perform the ESMF
interpolation.
As you indicated offline, the 6.4.0 ESMF interpolation was not successful.
-----
(0)     ESMF_regrid_gen_weights: 'ESMF_RegridWeightGen' was not successful.
-----

Likely there were some changes to the underlying ESMF software.

-----
Perhaps, the NCL developers can make a beta version of NCL 6.5.0 available.

Please send ncl-talk at ucar.edu the output from:

%> uname -a
%> gcc --version

----



On Mon, Feb 5, 2018 at 8:49 PM, Dennis Shea <shea at ucar.edu> wrote:

> The script you sent had numerous issues. It looks like you copy-and-pasted
> parts of scripts. Please be more careful.
>
> Please
>
> [1] Carefully read the documentation of any function.
> [2] Always use printVarSummary(...) and look at the varuable overview. It
> is your responsibility to examine the output.
> [3] Carefully examine any error messages. Think about what is be
> communicated. For example, your previous email had:
>
> fatal:(lat2d) is not a named dimension in variable (var).
> fatal:["Execute.c":8640]:Execute: Error occurred at or near line .......
> Well, did you see any dimension named 'lat2d'? There was a variable named
> that but not a named dimension.
>
>
> For your benefit, I suggest that you spend some time examining the NCL
> User Guide (NUG).
> The NUG was created by Karin Meier-Fleischer and Michael Böttinger of DKRZ
> <https://www.dkrz.de/> (Deutsches Klimarechenzentrum).
>
>
>
> *https://www.ncl.ucar.edu/Document/Manuals/NCL_User_Guide/
> <https://www.ncl.ucar.edu/Document/Manuals/NCL_User_Guide/>*===
> Attached is a modification of the script you sent. It has many print
> statements. See [2] above.
> It contains the interpolated values where possible. As noted in the
> 'linint2_points documentation:
>
> "if missing values are present, then *linint2_points* will perform the
> piecewise linear interpolation at all points possible, but will return
> missing values at coordinates which could not be used. If one or more of
> the four closest grid points to a particular (*xo*,*yo*) coordinate pair
> are missing, then the return value for this coordinate pair will be
> missing."
>
> It looks like there are ?bogus? or island values of soil moisture in ocean
> areas.
> Interpolation is not performed across adjacent swaths.
>
> A sample of the interpolated points:
>
> (0)     >>> yyyymmdd: 20170401 after ESMF Regrid <<<
> (0)     ************************************************
> (0)      35.70   50.06  -9999.00
> (1)      36.67   46.73    0.11
> (2)      34.75   46.15    0.22
> (3)      34.77   50.86  -9999.00   < not surrounded by 4 non-missing
> avlues.
> (4)      35.67   51.02  -9999.00
> (5)      35.20   48.69  -9999.00
> (6)      37.32   49.62  -9999.00
> (7)      35.25   47.01    0.22
> (8)      36.02   50.54  -9999.00
> (9)      36.54   50.21  -9999.00
> (10)     38.42   44.97    0.19
> (11)     36.65   49.19  -9999.00
> (12)     34.87   48.53  -9999.00
> (13)     36.66   48.52  -9999.00
> (14)     37.48   49.46  -9999.00
> (15)     37.97   46.03    0.16
> (16)     37.50   45.85    0.18
> (17)     38.22   48.33    0.16
> (18)     38.93   45.60    0.15
> (19)     37.66   45.06    0.19
> (20)     34.35   47.15    0.29
> [SNIP]
>
>
>
>
>
>
> On Mon, Feb 5, 2018 at 8:57 AM, Mary Haley <haley at ucar.edu> wrote:
>
>> You are treating "lat2d" and "lon2d" like coordinate arrays with the
>> following call:
>>
>>     curvilinear_to_SCRIP(srcGridName,var&lat2d,var&lon2d,Opt)
>>
>> ​These two variables are NOT attached to var, and they couldn't be
>> anyway, because they violate the rule that coordinate arrays be
>> one-dimensional.
>>
>> lat2d and lon2d are standalone variables that you read off a file earlier
>> in your script, so you simply want:
>>
>> ​    curvilinear_to_SCRIP(srcGridName,lat2d,lon2d,Opt)
>>
>> --Mary
>>
>>
>>
>>
>>
>>
>> On Mon, Feb 5, 2018 at 5:05 AM, Ehsan Taghizadeh <
>> ehsantaghizadeh at yahoo.com> wrote:
>>
>>> Dear NCL users,
>>> I've modified the script and I have some problems with it, yet.
>>> New outputs and errors are:
>>>
>>> Variable: lat2d
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 2
>>>   long_name :   Latitude of the center of the Earth based grid cell.
>>>   units :       degrees_north
>>>
>>> Variable: lon2d
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 2
>>>   long_name :   Longitude of the center of the Earth based grid cell.
>>>   units :       degrees_east
>>>
>>> Variable: var
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 6
>>>   _FillValue :  -9999
>>>   coordinates : /Soil_Moisture_Retrieval_Data_AM/latitude
>>> /Soil_Moisture_Retrieval_Data_AM/longitude
>>>   long_name :   Representative soil moisture measurement for the Earth
>>> based grid cell.
>>>   units :       cm**3/cm**3
>>>   valid_max :   0.5
>>>   valid_min :   0.02
>>> fatal:(lat2d) is not a named dimension in variable (var).
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 101 in
>>> file 2_SPL3SMP_E_Interpolating1.ncl
>>>
>>> I'll be thankful if I could have your help.
>>>
>>> *Sincerely*
>>> *Ehsan Taghizadeh*
>>> On Sunday, February 4, 2018, 3:32:14 PM GMT+3:30, Ehsan Taghizadeh <
>>> ehsantaghizadeh at yahoo.com> wrote:
>>>
>>>
>>> Dear Dennis
>>> Thank you so much for you help.
>>> I've changed my script to attached one by adding lines 79-91, however it
>>> seems to have some basic problems! Could I ask help me about them, please?
>>> I faced following errors:
>>>
>>> fatal:syntax error: line 87 in file 2_SPL3SMP_E_Interpolating1.ncl
>>> before or near \n
>>>     curvilinear_to_SCRIP(src_file,var&LAT,var&LON,Opt)
>>> -------------------------------------------------------^
>>>
>>> fatal:syntax error: possibly an undefined procedure
>>> fatal:syntax error: line 88 in file 2_SPL3SMP_E_Interpolating1.ncl
>>> before or near \n
>>>         latlon_to_SCRIP(dstGridName,"5x5",Opt)
>>> ----------------------------------------^
>>>
>>> fatal:syntax error: possibly an undefined procedure
>>> fatal:syntax error: line 89 in file 2_SPL3SMP_E_Interpolating1.ncl
>>> before or near \n
>>>         ESMF_regrid_gen_weights(src_file,dstGridName,wgtFileName,Opt)
>>> ---------------------------------------------------------------^
>>>
>>> fatal:syntax error: possibly an undefined procedure
>>> fatal:Syntax Error in block, block not executed
>>> fatal:error at line 126 in file 2_SPL3SMP_E_Interpolating1.ncl
>>>
>>>
>>> Sincerely
>>> Ehsan
>>>
>>> On Tuesday, January 30, 2018, 7:34:40 AM GMT+3:30, Dennis Shea <
>>> shea at ucar.edu> wrote:
>>>
>>>
>>> [1] As noted in the documentation, linint2_points Interpolates from a
>>> *rectilinear grid* to a user specified set of points using bilinear
>>> interpolation.
>>>
>>>      http://www.ncl.ucar.edu/Document/Functions/Built-in/linint2_
>>> points.shtml
>>>
>>> [2] The SMAP data are on a *curvilinear* grid: [DIM_000 | 406] x
>>> [DIM_001 | 964] . Hence, 'linint2_points'  will not work.
>>>
>>> [3] I suggest that you
>>>      (a) use ESMF regridding to interpolate from the curvilinear grid to
>>> a rectilinear grid of approximately the same resolution.
>>>      (b) then use linint2_points on (3a)
>>>
>>> ===
>>> See the NARR Example 5. NARR uses a curvilinear grid. Create an SMAP
>>> ESMF weight file [eg: ESMF eamaple 30) ; Use the weight file to generate a
>>> rectilinear grid; use linint2_points.
>>>
>>>  http://www.ncl.ucar.edu/Applications/narr.shtml
>>>
>>> Good luck
>>>
>>>
>>>
>>> On Mon, Jan 29, 2018 at 9:23 AM, Ehsan Taghizadeh via ncl-talk <
>>> ncl-talk at ucar.edu> wrote:
>>>
>>> Hi,
>>> I want to interpolate soil moisture data from SMAP (Soil Moisture
>>> Ative/Passive) to some specified locations (in stations_NW.csv attached
>>> file). Some information of data are as belows.
>>>
>>> printVarSummary(lat2d)
>>> Variable: lat2d
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 2
>>>   long_name :   Latitude of the center of the Earth based grid cell.
>>>   units :       degrees_north
>>>
>>> printVarSummary(lon2d)
>>> Variable: lon2d
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 2
>>>   long_name :   Longitude of the center of the Earth based grid cell.
>>>   units :       degrees_east
>>>
>>> printVarSummary(var):
>>> Variable: var
>>> Type: float
>>> Total Size: 1565536 bytes
>>>             391384 values
>>> Number of Dimensions: 2
>>> Dimensions and sizes:   [DIM_000 | 406] x [DIM_001 | 964]
>>> Coordinates:
>>> Number Of Attributes: 6
>>>   _FillValue :  -9999
>>>   coordinates : /Soil_Moisture_Retrieval_Data_ AM/latitude
>>> /Soil_Moisture_Retrieval_Data_ AM/longitude
>>>   long_name :   Representative soil moisture measurement for the Earth
>>> based grid cell.
>>>   units :       cm**3/cm**3
>>>   valid_max :   0.5
>>>   valid_min :   0.02
>>>
>>> However I've faced below error:
>>> fatal:(lon) is not a dimension name in variable (var), could not
>>> determine dimension number
>>>
>>> I searched in google and I found may be "There is no 'lon' dimension
>>> name. In fact, there are no latitude/longitude coordinates on the file
>>> at all."
>>> So I used following line:
>>>     SMAP_fo = linint2_points(lon2d,lat2d, var(DIM_000 | :, DIM_001 | :),
>>> False , lon_NW, lat_NW, 0)
>>>
>>> instead of:
>>>     SMAP_fo = linint2_points(lon2d,lat2d, var(lat | :, lon | :), False
>>> , lon_NW, lat_NW, 0)
>>>
>>> and after that I faced following error:
>>> fatal:linint2_points: If xi is not one-dimensional, then it must have
>>> one less dimension than fi
>>>
>>> After that I added following lines to the script:
>>>     lat1d = ndtooned(lat2d)
>>>     lon1d = ndtooned(lon2d)
>>>
>>> Again I had following error:
>>> fatal:linint2_points: The rightmost dimensions of fi must be nyi x nxi,
>>> where nyi and nxi are the lengths of yi and xi respectively
>>>
>>> And here I'm not sure about what I've done.
>>> I've attached the script, stations_NW.csv (input for unstructured
>>> points) and links.txt (which contains links for downloading SMAP data.
>>> Sorry about that but I couldn't attach SMAP files, because of their sizes.
>>> However to download them it is necessary to have earthdata user name!).
>>> I'll be thankful if I could have your help, again.
>>>
>>> Sincerely
>>> Ehsan
>>>
>>> ______________________________ _________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/ mailman/listinfo/ncl-talk
>>> <http://mailman.ucar.edu/mailman/listinfo/ncl-talk>
>>>
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180206/0b534a2f/attachment.html>


More information about the ncl-talk mailing list