[ncl-talk] Fw: lintint2_points

Dennis Shea shea at ucar.edu
Mon Feb 5 20:49:03 MST 2018


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/20180205/3481734b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2_SPL3SMP_E_Interpolating3.ncl
Type: application/octet-stream
Size: 8498 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180205/3481734b/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PLOT.bilinear_to_1x1.SMAP_L3_SM_P_20170401_R14010_001.h5.png
Type: image/png
Size: 299380 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180205/3481734b/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: out.2_SPL3SMP_E_Interpolating3.bilinear_to_1x1
Type: application/octet-stream
Size: 14256 bytes
Desc: not available
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20180205/3481734b/attachment-0003.obj>


More information about the ncl-talk mailing list