[ncl-talk] Regridding from OSGB spatial coordinate to Latitude-longitude in rotated pole coordinates
S Br
sbr.climate at gmail.com
Thu Feb 25 13:19:58 MST 2021
Hi Dave,
Please see the attached plot, this is how it looks like if we use the above
statements.
It obviously doesn't plot over the UK.
On Thu, Feb 25, 2021 at 6:59 PM Dave Allured - NOAA Affiliate <
dave.allured at noaa.gov> 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
>>>>>>>>>
>>>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210225/3fe482ad/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Figure_RCM2.png
Type: image/png
Size: 139704 bytes
Desc: not available
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210225/3fe482ad/attachment-0001.png>
More information about the ncl-talk
mailing list