[ncl-talk] Regridding from OSGB spatial coordinate to Latitude-longitude in rotated pole coordinates

Dennis Shea shea at ucar.edu
Thu Feb 25 12:26:42 MST 2021


Obviously, not over the UK but ......

I think more information from you might be necessary.
"transverse_mercator" is not supported by NCL options.

You state: "The data is correctly displayed in Python but not in NCL."

Well, what does the plot look like via Python?

On Thu, Feb 25, 2021 at 12:19 PM Dennis Shea <shea at ucar.edu> wrote:

> I **speculate** that the attributes associated with the
> "transverse_mercator" variable must be used.
> ====================================================
> ;---Get the source lat/lon grid
> tas   = f->tasmax(0,0,:,:)
>
> lat2d = f->grid_latitude
> lon2d = f->grid_longitude
> printMinMax(lat2d,0)
> printMinMax(lon2d,0)
>
> itm   = f->transverse_mercator
>
> print(itm)
> print("itm at latitude_of_projection_origin
> ="+itm at latitude_of_projection_origin)
> print("itm at longitude_of_central_meridian
> ="+itm at longitude_of_central_meridian)
>
> ; clarity
>
> lat_shift = itm at latitude_of_projection_origin
> lon_shift = itm at longitude_of_central_meridian
>
> ; apply 'shift'
>
> lat2d = lat2d + lat_shift
> lon2d = lon2d + lon_shift
> printMinMax(lat2d,0)
> printMinMax(lon2d,0)
>
> tas at lat2d = lat2d             ; use 'shifted' coordinates
> tas at lon2d = lon2d
> ================
>
> See attached
>
>
> On Thu, Feb 25, 2021 at 12:00 PM Dave Allured - NOAA Affiliate via
> ncl-talk <ncl-talk at mailman.ucar.edu> wrote:
>
>> I see what's going on.  From your other e-mail, the data file contains
>> two different sets of coordinates.  There are the projection coordinates in
>> meters.  Those are not latitudes and longitudes, therefore not sufficient
>> for NCL.  But the geographic coordinates are also provided.  Double
>> coordinates are frequently encountered in GIS related applications.  Try
>> this:
>>
>>     tas at lat2d=f->grid_latitude
>>     tas at lon2d=f->grid_longitude
>>
>>
>> On Thu, Feb 25, 2021 at 11:42 AM S Br <sbr.climate at gmail.com> wrote:
>>
>>> If I print tas at lat2d and tas at lon2d, they give the following information.
>>>
>>> Variable: taslat
>>> Type: double
>>> Total Size: 896 bytes
>>>             112 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes: [112]
>>> Coordinates:
>>> (0) -102000
>>> (1) -90000
>>> (2) -78000
>>> (3) -66000
>>> (4) -54000
>>> (5) -42000
>>> (6) -30000
>>> (7) -18000
>>> (8) -6000
>>> (9) 6000
>>> (10) 18000
>>> (11) 30000
>>> (12) 42000
>>> (13) 54000
>>> (14) 66000
>>> (15) 78000
>>> (16) 90000
>>> (17) 102000
>>> (18) 114000
>>> (19) 126000
>>> (20) 138000
>>> (21) 150000
>>> (22) 162000
>>> (23) 174000
>>> (24) 186000
>>> (25) 198000
>>> (26) 210000
>>> (27) 222000
>>> (28) 234000
>>> (29) 246000
>>> (30) 258000
>>> (31) 270000
>>> (32) 282000
>>> (33) 294000
>>> (34) 306000
>>> (35) 318000
>>> (36) 330000
>>> (37) 342000
>>> (38) 354000
>>> (39) 366000
>>> (40) 378000
>>> (41) 390000
>>> (42) 402000
>>> (43) 414000
>>> (44) 426000
>>> (45) 438000
>>> (46) 450000
>>> (47) 462000
>>> (48) 474000
>>> (49) 486000
>>> (50) 498000
>>> (51) 510000
>>> (52) 522000
>>> (53) 534000
>>> (54) 546000
>>> (55) 558000
>>> (56) 570000
>>> (57) 582000
>>> (58) 594000
>>> (59) 606000
>>> (60) 618000
>>> (61) 630000
>>> (62) 642000
>>> (63) 654000
>>> (64) 666000
>>> (65) 678000
>>> (66) 690000
>>> (67) 702000
>>> (68) 714000
>>> (69) 726000
>>> (70) 738000
>>> (71) 750000
>>> (72) 762000
>>> (73) 774000
>>> (74) 786000
>>> (75) 798000
>>> (76) 810000
>>> (77) 822000
>>> (78) 834000
>>> (79) 846000
>>> (80) 858000
>>> (81) 870000
>>> (82) 882000
>>> (83) 894000
>>> (84) 906000
>>> (85) 918000
>>> (86) 930000
>>> (87) 942000
>>> (88) 954000
>>> (89) 966000
>>> (90) 978000
>>> (91) 990000
>>> (92) 1002000
>>> (93) 1014000
>>> (94) 1026000
>>> (95) 1038000
>>> (96) 1050000
>>> (97) 1062000
>>> (98) 1074000
>>> (99) 1086000
>>> (100) 1098000
>>> (101) 1110000
>>> (102) 1122000
>>> (103) 1134000
>>> (104) 1146000
>>> (105) 1158000
>>> (106) 1170000
>>> (107) 1182000
>>> (108) 1194000
>>> (109) 1206000
>>> (110) 1218000
>>> (111) 1230000
>>>
>>>
>>> Variable: taslon
>>> Type: double
>>> Total Size: 656 bytes
>>>             82 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes: [82]
>>> Coordinates:
>>> (0) -210000
>>> (1) -198000
>>> (2) -186000
>>> (3) -174000
>>> (4) -162000
>>> (5) -150000
>>> (6) -138000
>>> (7) -126000
>>> (8) -114000
>>> (9) -102000
>>> (10) -90000
>>> (11) -78000
>>> (12) -66000
>>> (13) -54000
>>> (14) -42000
>>> (15) -30000
>>> (16) -18000
>>> (17) -6000
>>> (18) 6000
>>> (19) 18000
>>> (20) 30000
>>> (21) 42000
>>> (22) 54000
>>> (23) 66000
>>> (24) 78000
>>> (25) 90000
>>> (26) 102000
>>> (27) 114000
>>> (28) 126000
>>> (29) 138000
>>> (30) 150000
>>> (31) 162000
>>> (32) 174000
>>> (33) 186000
>>> (34) 198000
>>> (35) 210000
>>> (36) 222000
>>> (37) 234000
>>> (38) 246000
>>> (39) 258000
>>> (40) 270000
>>> (41) 282000
>>> (42) 294000
>>> (43) 306000
>>> (44) 318000
>>> (45) 330000
>>> (46) 342000
>>> (47) 354000
>>> (48) 366000
>>> (49) 378000
>>> (50) 390000
>>> (51) 402000
>>> (52) 414000
>>> (53) 426000
>>> (54) 438000
>>> (55) 450000
>>> (56) 462000
>>> (57) 474000
>>> (58) 486000
>>> (59) 498000
>>> (60) 510000
>>> (61) 522000
>>> (62) 534000
>>> (63) 546000
>>> (64) 558000
>>> (65) 570000
>>> (66) 582000
>>> (67) 594000
>>> (68) 606000
>>> (69) 618000
>>> (70) 630000
>>> (71) 642000
>>> (72) 654000
>>> (73) 666000
>>> (74) 678000
>>> (75) 690000
>>> (76) 702000
>>> (77) 714000
>>> (78) 726000
>>> (79) 738000
>>> (80) 750000
>>> (81) 762000
>>>
>>> On Thu, Feb 25, 2021 at 6:26 PM Dave Allured - NOAA Affiliate <
>>> dave.allured at noaa.gov> wrote:
>>>
>>>> It is starting to look like there is an error in the attached
>>>> coordinates.  What are the min and max values of tas at lat2d and
>>>> tas at lon2d?
>>>>
>>>>
>>>> On Thu, Feb 25, 2021 at 10:45 AM S Br <sbr.climate at gmail.com> wrote:
>>>>
>>>>> Hi Dennis,
>>>>> The data draws on a wrong location and the map boundary is not
>>>>> aligning.
>>>>> It should plot over the UK which is about 50-60N.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> On Thu, Feb 25, 2021 at 5:41 PM Dennis Shea <shea at ucar.edu> wrote:
>>>>>
>>>>>> It helps to give NCL the correct lat/lon array information.
>>>>>>
>>>>>> See attached
>>>>>>
>>>>>> On Thu, Feb 25, 2021 at 10:23 AM Dave Allured - NOAA Affiliate via
>>>>>> ncl-talk <ncl-talk at mailman.ucar.edu> wrote:
>>>>>>
>>>>>>> That script looks pretty good.  You can see from the error messages
>>>>>>> that NCL is trying to understand @lat2d and @lon2d, but something is not
>>>>>>> quite right with them.  We need to see printVarSummary for tas, tas at lat2d,
>>>>>>> and tas at lon2d.  It is possible that dimensions are mismatched
>>>>>>> between data and coordinates, for some reason.
>>>>>>>
>>>>>>> There is also this note in that doc page:  "If your data variable is
>>>>>>> a two-dimensional (2D) array ordered lon x lat, you will need to reorder it
>>>>>>> to be lat x lon."  Please check and see if this is the problem.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Feb 25, 2021 at 10:00 AM S Br <sbr.climate at gmail.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> Hi Dave,
>>>>>>>> Many thanks for your reply. Sorry I missed to provide the details.
>>>>>>>> I have run the following NCL script  and came across the errors
>>>>>>>> given below.
>>>>>>>> You can see the attached plot that it draws value throughout the
>>>>>>>> globe. It is supposed to be drawn only over the UK.
>>>>>>>> Am I doing something wrong?
>>>>>>>>
>>>>>>>> ;********
>>>>>>>> srcFileName="tas_rcp85_land-rcm_uk_12km_01_mon_198012-208011.nc"
>>>>>>>>
>>>>>>>> ;---Read File
>>>>>>>> f=addfile(srcFileName,"r")
>>>>>>>> print(f)
>>>>>>>>
>>>>>>>> ;---Get the source lat/lon grid
>>>>>>>> tas=f->tas(0,0,:,:)
>>>>>>>> tas at lat2d=f->projection_y_coordinate
>>>>>>>> tas at lon2d=f->projection_x_coordinate
>>>>>>>>
>>>>>>>> ;---Plot data
>>>>>>>>   wks = gsn_open_wks("x11","map")
>>>>>>>>
>>>>>>>>   res              = True
>>>>>>>>   res at gsnMaximize  = True     ; maximize plot in frame
>>>>>>>>   res at cnFillOn     = True     ; turn on contour fill
>>>>>>>>   res at cnLinesOn    = False    ; turn off contour fill
>>>>>>>>   res at gsnAddCyclic     = False
>>>>>>>> ;   res at mpMinLatF    =  48.0             ; only plot 30S to 30N
>>>>>>>> ;   res at mpMaxLatF    =  60.0
>>>>>>>> ;  res at mpMinLonF    =  -15.0          ; only plot 30S to 30N
>>>>>>>> ;   res at mpMaxLonF    = 6.0
>>>>>>>>  res at mpDataBaseVersion = "MediumRes"
>>>>>>>>    res at mpLandFillColor = "white"
>>>>>>>>
>>>>>>>>   plot = gsn_csm_contour_map(wks,tas(:,:),res)
>>>>>>>>
>>>>>>>> ********************
>>>>>>>> (0) is_valid_latlon2d_attr: Warning: The 'lat2d' attribute must
>>>>>>>> either be
>>>>>>>> (0) the same dimension sizes as the data, or one element larger in
>>>>>>>> both directions.
>>>>>>>> (0) Your data will most likely not be overlaid on the map correctly.
>>>>>>>> (0) check_for_y_lat_coord: Warning: Data either does not contain
>>>>>>>> (0) a valid latitude coordinate array or doesn't contain one at all.
>>>>>>>> (0) A valid latitude coordinate array should have a 'units'
>>>>>>>> (0) attribute equal to one of the following values:
>>>>>>>> (0)    'degrees_north' 'degrees-north' 'degree_north' 'degrees
>>>>>>>> north' 'degrees_N' 'Degrees_north' 'degree_N' 'degreeN' 'degreesN' 'deg
>>>>>>>> north'
>>>>>>>> (0) is_valid_latlon2d_attr: Warning: The 'lon2d' attribute must
>>>>>>>> either be
>>>>>>>> (0) the same dimension sizes as the data, or one element larger in
>>>>>>>> both directions.
>>>>>>>> (0) Your data will most likely not be overlaid on the map correctly.
>>>>>>>> (0) check_for_lon_coord: Warning: Data either does not contain
>>>>>>>> (0) a valid longitude coordinate array or doesn't contain one at
>>>>>>>> all.
>>>>>>>> (0) A valid longitude coordinate array should have a 'units'
>>>>>>>> (0) attribute equal to one of the following values:
>>>>>>>> (0)    'degrees_east' 'degrees-east' 'degree_east' 'degrees east'
>>>>>>>> 'degrees_E' 'Degrees_east' 'degree_E' 'degreeE' 'degreesE' 'deg east'
>>>>>>>>
>>>>>>>> On Thu, Feb 25, 2021 at 4:17 PM Dave Allured - NOAA Affiliate <
>>>>>>>> dave.allured at noaa.gov> wrote:
>>>>>>>>
>>>>>>>>> Does your file contain its own lat and lon coordinate arrays?  You
>>>>>>>>> will need to check this yourself with ncdump or NCL plus print commands.
>>>>>>>>>
>>>>>>>>> If the file has its own coordinate arrays, then do not regrid or
>>>>>>>>> reproject.  Doing that will lose detail and reduce the quality of the
>>>>>>>>> plotted image.  NCL is quite capable of directly displaying any data with
>>>>>>>>> attached coordinate arrays, and it does not need to know anything about the
>>>>>>>>> projection of the data.  Please see documentation for "Plotting data on a
>>>>>>>>> map" for much more information about aligning data on a map plot.
>>>>>>>>>
>>>>>>>>>     https://www.ncl.ucar.edu/Applications/plot_data_on_map.shtml
>>>>>>>>>
>>>>>>>>> If the coordinate arrays in the file are two dimensional, then see
>>>>>>>>> example 3, "Curvilinear grid".  When you have 2-D coordinates, they must be
>>>>>>>>> passed to the NCL plot routine with special attributes *lat2d*
>>>>>>>>> and *lon2d*, or alternatively *sfXArray* and *sfYArray* attached
>>>>>>>>> to the plot resource variable.  Note that 1-D coordinates do not need this
>>>>>>>>> special treatment because they are normally attached directly to the data
>>>>>>>>> variable to plot.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Feb 25, 2021 at 8:24 AM S Br via ncl-talk <
>>>>>>>>> ncl-talk at mailman.ucar.edu> wrote:
>>>>>>>>>
>>>>>>>>>> Hi All,
>>>>>>>>>> I have a set of regional gridded data in the British National
>>>>>>>>>> Grid (OSGB) spatial coordinate system. I am looking to use this data in NCL
>>>>>>>>>> but the projection is not correctly displayed? Could it be possible to
>>>>>>>>>> regrid this data to Latitude-longitude in rotated pole coordinates or to a
>>>>>>>>>> regular lat/lon grid.
>>>>>>>>>>
>>>>>>>>>> I would like to mention that these data sets are generated using
>>>>>>>>>> the Iris package in Python. The data is correctly displayed in Python but
>>>>>>>>>> not in NCL.
>>>>>>>>>>
>>>>>>>>>> For your convenience I have attached here a sample NetCDF file.
>>>>>>>>>>
>>>>>>>>>> Thank you.
>>>>>>>>>> SBR
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>> ncl-talk mailing list
>> ncl-talk at mailman.ucar.edu
>> List instructions, subscriber options, unsubscribe:
>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210225/a07655d4/attachment.html>


More information about the ncl-talk mailing list