[ncl-talk] Plotting Composite radar data -- how to?
Dave Allured - NOAA Affiliate
dave.allured at noaa.gov
Fri Sep 23 08:44:25 MDT 2022
Barry, in NCL, 1-D coordinate variables are attached to the data variable,
not the plot resource. Also, the coordinate variable name must be an exact
match with the associated dimension name.
https://www.ncl.ucar.edu/Document/Language/cv.shtml
There is more than one way to do this. I prefer to fix up the coordinate
variables independently, before attaching them to the data variable. I
also suggest attaching early, before subsetting, in case you want to
extract other subsets later. You could just as easily attach directly to
"radar". Try this, untested:
lats at units = "degrees_north"
lons at units = "degrees_east"
lats!0 = "Lat" ; assign dim names to avoid warning
lons!0 = "Lon"
xf&Lat = lats ; attach to data var
xf&Lon = lons
radar = xf(5,:,:) ; attached coords will be copied
On Fri, Sep 23, 2022 at 8:17 AM Barry Lynn <barry.h.lynn at gmail.com> wrote:
> Hi:
>
> That was very helpful, thank you. I can now read the data and create
> lat/lon coordinates.
>
> I am still left with one error, though, which is quite vexing.* I need
> to give the radar variable coordinate *information so I can map it. The
> typical warning is shown in the last set of yellowed lines,
>
> The code reads as immediately below, and the error when I try to run it by
> adding coordinate variable information is specified in the last of the
> second set of yellowed lines, bolded).
>
> CODE!
>
> filename_b="20120415-080000.netcdf"
>
> b = addfile(filename_b,"r")
>
> print(b)
>
> xs = b->mrefl_mosaic
>
> xs at _FillValue = toshort(b at MissingData) ; MissingData is not standard
>
> xf = short2flt( xs )
>
> delete(xs)
>
> printVarSummary(xf)
>
> printMinMax(xf,False)
>
> radar = xf(5,:,:)
>
> printVarSummary(radar)
>
> lat_center = 40
>
> lon_center = -110
>
> lats = lat_center + todouble(ispan(-1000, 1000, 1)/100)
>
> lons = lon_center + todouble(ispan(-1000, 1000, 1)/100)
>
> *res = True*
>
> * res&lats at units = "degrees_north" ; GIVES "compilation" ERROR
> (Specified BELOW)*
>
> * res&lons at units = "degrees_east"*
>
> Here's the compilation error (bolded below).
>
> Variable: radar
>
> Type: float
>
> Total Size: 16016004 bytes
>
> 4004001 values
>
> Number of Dimensions: 2
>
> Dimensions and sizes: [Lat | 2001] x [Lon | 2001]
>
> Coordinates:
>
> Number Of Attributes: 3
>
> _FillValue : -999
>
> _FillValue_original : -999
>
> Units : dBZ
>
> *fatal:(lats) is not a named dimension in variable (res).*
>
> *fatal:["Execute.c":8575]:Execute: Error occurred at or near line 44 in
> file ./obs_radar.ncl*
>
> Without this coordinate information, I get:
>
>
> *fatal:(lats) is not a named dimension in variable (res).*
>
> (0) check_for_y_lat_coord: Warning: Data either does not contain a valid
> latitude coordinate array or doesn't contain one at all.
>
> (0) A valid latitude coordinate array should have a 'units' 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) check_for_lon_coord: Warning: Data either does not contain a valid
> longitude coordinate array or doesn't contain one at all.
>
> (0) A valid longitude coordinate array should have a 'units' attribute
> equal to one of the following values:
>
>
> On Fri, Sep 23, 2022 at 12:01 AM Dave Allured - NOAA Affiliate <
> dave.allured at noaa.gov> wrote:
>
>> Oops. The center grid point is at (1001, 1001), not (1000, 1000). But
>> those offset formulas are correct as shown.
>>
>>
>> On Thu, Sep 22, 2022 at 1:53 PM Dave Allured - NOAA Affiliate <
>> dave.allured at noaa.gov> wrote:
>>
>>> Barry, this file lacks the coordinate variables that are normally
>>> provided in most published Netcdf data sets. However, there appears to be
>>> almost enough information in the global attributes to construct grid
>>> coordinates. There are reference latitude and longitude, and the X and Y
>>> grid spacing.
>>>
>>> The reference coordinates are ambiguous. My guess is they are probably
>>> grid center coordinates, but not sure. With odd numbers for both X and Y
>>> dimensions, that suggests that the center grid point (1000, 1000) is right
>>> at (40N, 110W).
>>>
>>> So just calculate X and Y coordinate vectors centered on the reference
>>> coordinates, attach them to the data variable, then plot normally. To
>>> minimize precision loss, use *ispan* and divide by 100 as the final
>>> step, because 0.01 step size is not exactly representable in floating
>>> point. (Not very important.) E.g.:
>>>
>>> lats = lat_center + (double (ispan (-1000, 1000, 1)) / 100)
>>> lons = lon_center + (double (ispan (-1000, 1000, 1)) / 100)
>>>
>>>
>>> On Thu, Sep 22, 2022 at 11:28 AM Barry Lynn via ncl-talk <
>>> ncl-talk at mailman.ucar.edu> wrote:
>>>
>>>> Hello:
>>>>
>>>> I am wondering if there is a simple way to plot this radar data
>>>> correctly on a grid.
>>>>
>>>> I can extract the radar data, no problem, but am wondering how to
>>>> specify the lat/lon of the data. Can it be obtained from the radar data
>>>> itself?
>>>>
>>>> Thank you.
>>>>
>>>> Variable: b
>>>>
>>>> Type: file
>>>>
>>>> filename: 20120415-080000
>>>>
>>>> path: 20120415-080000.netcdf
>>>>
>>>> file global attributes:
>>>>
>>>> TypeName : mrefl_mosaic
>>>>
>>>> DataType : LatLonHeightGrid
>>>>
>>>> Time : 1334476800
>>>>
>>>> FractionalTime : 0
>>>>
>>>> MissingData : -999
>>>>
>>>> RangeFolded : -1000
>>>>
>>>> Latitude : 40
>>>>
>>>> Longitude : -110
>>>>
>>>> Height : 500
>>>>
>>>> LatGridSpacing : 0.01
>>>>
>>>> LonGridSpacing : 0.01
>>>>
>>>> attributes :
>>>>
>>>> dimensions:
>>>>
>>>> Ht = 31
>>>>
>>>> Lat = 2001
>>>>
>>>> Lon = 2001
>>>>
>>>> variables:
>>>>
>>>> short mrefl_mosaic ( Ht, Lat, Lon )
>>>>
>>>> Units : dBZ
>>>>
>>>> Scale : 10
>>>>
>>>>
>>>> float Height ( Ht )
>>>>
>>>> Units : Meters
>>>> --
>>>> Barry H. Lynn, Ph.D
>>>> Senior Scientist, Lecturer,
>>>> The Institute of Earth Sciences,
>>>> The Hebrew University of Jerusalem,
>>>> Givat Ram, Jerusalem 91904, Israel
>>>> Tel: 972 547 231 170
>>>> Fax: (972)-25662581
>>>>
>>>> Weather It Is, LTD
>>>> Weather and Climate Focus
>>>> https://weather-it-is.com <http://weather-it-is.com>
>>>> Jerusalem, Israel
>>>> Local: 02 930 9525
>>>> Cell: 054 7 231 170
>>>> Int-IS: x972 2 930 9525
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20220923/f3395e72/attachment.htm>
More information about the ncl-talk
mailing list