[ncl-talk] Extracting data for a given point from a model output
Dennis Shea
shea at ucar.edu
Thu Dec 31 08:33:47 MST 2020
The attached prints the values of grid points surrounding the 940.504
values.
(0) ==================
(0) n=2 m=2 LAT2D(n,m)=31.9429 LON2D(n,m)=51.921 EMFLX(n,m)=940.504
(0) ==================
(0) 116.882 267.648 93.284 13.129 0.019
(0) 406.997 579.607 570.014 403.070 34.221
(0) 0.000 724.817 *940.504* 1244.555 415.407
(0) 0.000 0.000 485.039 1189.545 1862.362
(0) 0.000 0.000 551.603 889.335 2226.263
as you can readily see, the flux is not 'smoothly varying' due to 0's. The
0s are treated a real values.
What should the plotted value be? The raster and cell use multiple values
for the plotted value.
If you want, try the following
The variable(s) have no _FillValue attribute,
emflx = f->emflx
emflx = where(emflx.eq.0.0, -999.0, emflx) ; change 0.0 to -999.0
emflx at _FillValue = -999.0 ; assign
_FillValue attribute
printVarSummary(emflx)
printMinMax(emflx,0)
Try this and plot the emflx
On Wed, Dec 30, 2020 at 11:39 AM Setareh Rahimi <setareh.rahimi at gmail.com>
wrote:
> That attached was 'dry deposition flux', please ignore that, and have a
> look at the attached file.
> Thanks,
>
> On Wed, Dec 30, 2020 at 10:01 PM Setareh Rahimi <setareh.rahimi at gmail.com>
> wrote:
>
>> Dear Dennis,
>> This is something weird to me, too.I attached a plot of output model for
>> the same date. Comparing the plot with the value for that lat/lon, results
>> do not match together. What is your idea?
>> Many thanks again,
>> Best wishes,
>>
>> On Wed, Dec 30, 2020 at 7:09 PM Dennis Shea <shea at ucar.edu> wrote:
>>
>>> ???? does not return the value of the emflx variable for the desired
>>> point (lat/lon)
>>>
>>> Well, what is the "correct value" ?
>>> ======
>>>
>>> lat = 32.0
>>> lon = 52.0
>>>
>>> (0) ==================
>>> (0) n=21 m=8 lat2d(n,m)=31.9429 lon2d(n,m)=51.921 *<====This is
>>> the closest grid point ... pretty close!!!*
>>> (0) ==================
>>>
>>> (5) 605628 ymdh=2019010212
>>> (6) 605634 ymdh=2019010218
>>> *(7)* 605640 ymdh=*2019010300 <=== NT=7*
>>> (8) 605646 ymdh=2019010306
>>> (9) 605652 ymdh=2019010312
>>>
>>> *YMDH = 2019010300 * ; user specified
>>> print("YMDH="+YMDH)
>>> NT = ind(ymdh .eq. YMDH)
>>> print("NT="+NT+" ymdh(NT)="+ymdh(NT) )
>>>
>>>
>>> *(0) YMDH=2019010300(0) NT=7 ymdh(NT)=2019010300*
>>> (0) ==================
>>>
>>> EMFLX = f->emflx
>>> emflx = EMFLX(NT,n,m) ; scalar
>>> print("==================")
>>> print( emflx ) ; ====
>>>
>>> (0) 940.5043
>>>
>>> On Wed, Dec 30, 2020 at 8:15 AM Setareh Rahimi <setareh.rahimi at gmail.com>
>>> wrote:
>>>
>>>> Dear Dennis,
>>>> Thanks again for your guide. However, after running the code I noticed
>>>> that Y = f->emflx(NT,n,m) does not return the value of the emflx
>>>> variable for the desired point (lat/lon).
>>>> May I ask you please to give me more advice in this regard?
>>>> Best wishes,
>>>>
>>>> On Tue, Dec 29, 2020 at 3:22 AM Dennis Shea <shea at ucar.edu> wrote:
>>>>
>>>>> I think we have been through this before. There are many *time/date
>>>>> functions.* <https://www.ncl.ucar.edu/Document/Functions/date.shtml>
>>>>>
>>>>> time = f->time ; hours since 1949-12-01 00:00:00 UTC"
>>>>> ; [1]
>>>>> TIME = *cd_calendar*
>>>>> <https://www.ncl.ucar.edu/Document/Functions/Built-in/cd_calendar.shtml>(time,
>>>>> 0) ; PLEASE read the documentation
>>>>> year = toint( TIME(:,0) ) ; toint strips meta
>>>>> data
>>>>> month = toint( TIME(:,1) )
>>>>> day = toint( TIME(:,2) ) ; day of month
>>>>> hour = toint( TIME(:,3) ) ; hour of day
>>>>> minute = toint( TIME(:,4) )
>>>>> second = toint( TIME(:,5) )
>>>>>
>>>>>
>>>>> ;[2]
>>>>> ymdh = *yyyymmddhh_time*
>>>>> <https://www.ncl.ucar.edu/Document/Functions/Contributed/yyyymmddhh_time.shtml>(time,
>>>>> -3) ; PLEASE read the documentation
>>>>>
>>>>> YMDH = 2019010300
>>>>> nt =* ind*
>>>>> <https://www.ncl.ucar.edu/Document/Functions/Built-in/ind.shtml>(ymdh
>>>>> .eq. YMDH)
>>>>> ================================================================
>>>>> A simple script is attached.
>>>>> ================================================================
>>>>>
>>>>> %> ncl setareh.ncl
>>>>>
>>>>> Please Look-at/READ the documentation of the functions used
>>>>>
>>>>> On Mon, Dec 28, 2020 at 3:04 PM Setareh Rahimi <
>>>>> setareh.rahimi at gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> Dear Dennis,
>>>>>> I am not looking for interpotation, temperature was just an example.
>>>>>> Emflx is one of the varibles in the file. I need to know for say
>>>>>> Jan-03-00:00UTC , what is the value of emflx for a specific point .
>>>>>> Best wishes,
>>>>>> On Tue, Dec 29, 2020 at 01:23 Dennis Shea <shea at ucar.edu> wrote:
>>>>>>
>>>>>>> As noted by Eshan, you want interpolation.
>>>>>>> Please read the documentation for *rcm2points_Wrap* <https://www.ncl.ucar.edu/Document/Functions/Contributed/rcm2points_Wrap.shtml>
>>>>>>>
>>>>>>> Note: Temperature is NOT in the file.
>>>>>>>
>>>>>>>
>>>>>>> f = *addfile* <https://www.ncl.ucar.edu/Document/Functions/Built-in/addfile.shtml>("Yazd-2019_DUST01.2019010100.nc" , "r")
>>>>>>> lat2d = f->xlat
>>>>>>> lon2d = f->xlon
>>>>>>>
>>>>>>> *printVarSummary* <https://www.ncl.ucar.edu/Document/Functions/Built-in/printVarSummary.shtml>(lat2d)
>>>>>>> *printMinMax* <https://www.ncl.ucar.edu/Document/Functions/Contributed/printMinMax.shtml>(lat2d, 0)
>>>>>>> *printMinMax* <https://www.ncl.ucar.edu/Document/Functions/Contributed/printMinMax.shtml>(lon2d, 0)
>>>>>>>
>>>>>>> stalat = 32.0 ;(/ 32.0 , 17.31, 24.05 /) ; user specified coordinate pairs
>>>>>>> stalon = 52.0 ; (/ 52.0 ,-101.00,-92.46 /)
>>>>>>>
>>>>>>> X = f->mixrat ; (time, kz, iy, jx)
>>>>>>> Y = d->ddflx ; (time, iy, jx)
>>>>>>>
>>>>>>> x = *rcm2points_Wrap* <https://www.ncl.ucar.edu/Document/Functions/Contributed/rcm2points_Wrap.shtml>(lat2d, lon2d, X, stalat, stalon, 0)
>>>>>>> y = *rcm2points_Wrap* <https://www.ncl.ucar.edu/Document/Functions/Contributed/rcm2points_Wrap.shtml>(lat2d, lon2d, Y, stalat, stalon, 0)
>>>>>>>
>>>>>>> print(x)
>>>>>>>
>>>>>>> print(y)
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Dec 28, 2020 at 12:10 PM Setareh Rahimi <
>>>>>>> setareh.rahimi at gmail.com> wrote:
>>>>>>>
>>>>>>>> Dear Dennis,
>>>>>>>> Many thanks for your response. What I exactly mean is how to
>>>>>>>> extract for example "Temperature variable" value for a specific lat/lon
>>>>>>>> from the output result. For example: what is temperature value for a point
>>>>>>>> at (lat=32, lon 52)?
>>>>>>>> Thanks again
>>>>>>>> Best wishes
>>>>>>>>
>>>>>>>> On Mon, Dec 28, 2020 at 10:17 PM Dennis Shea <shea at ucar.edu> wrote:
>>>>>>>>
>>>>>>>>> *getind_latlon2d *
>>>>>>>>> <https://www.ncl.ucar.edu/Document/Functions/Contributed/getind_latlon2d.shtml>
>>>>>>>>>
>>>>>>>>> A modification of Example 1
>>>>>>>>>
>>>>>>>>> f = *addfile* <https://www.ncl.ucar.edu/Document/Functions/Built-in/addfile.shtml>("Yazd-2019_DUST01.2019010100.nc" , "r")
>>>>>>>>> lat2d = f->xlat
>>>>>>>>> lon2d = f->xlon
>>>>>>>>>
>>>>>>>>> *printVarSummary* <https://www.ncl.ucar.edu/Document/Functions/Built-in/printVarSummary.shtml>(lat2d)
>>>>>>>>> *printMinMax* <https://www.ncl.ucar.edu/Document/Functions/Contributed/printMinMax.shtml>(lat2d, 0)
>>>>>>>>> *printMinMax* <https://www.ncl.ucar.edu/Document/Functions/Contributed/printMinMax.shtml>(lon2d, 0)
>>>>>>>>>
>>>>>>>>> lat = (/ 31.0 , 17.31, 24.05 /) ; user specified coordinate pairs
>>>>>>>>> lon = (/ -86.45,-101.00,-92.46 /)
>>>>>>>>> ; return 2d subscripts
>>>>>>>>> nm = *getind_latlon2d* (lat2d,lon2d, lat, lon)
>>>>>>>>>
>>>>>>>>> *print* <https://www.ncl.ucar.edu/Document/Functions/Built-in/print.shtml>(nm)
>>>>>>>>>
>>>>>>>>> X = f->mixrat ; (time, kz, iy, jx)
>>>>>>>>> Y = d->ddflx ; (time, iy, jx)
>>>>>>>>>
>>>>>>>>> nt = .... the index some specified time
>>>>>>>>>
>>>>>>>>> kl = ... index
>>>>>>>>>
>>>>>>>>> do k=0,*dimsizes* <https://www.ncl.ucar.edu/Document/Functions/Built-in/dimsizes.shtml>(lat)-1
>>>>>>>>> n = nm(k,0)
>>>>>>>>> m = nm(k,1)
>>>>>>>>>
>>>>>>>>> x = X(nt,kl,n,m)
>>>>>>>>> y = Y(nt,n,m)
>>>>>>>>>
>>>>>>>>> *print* <https://www.ncl.ucar.edu/Document/Functions/Built-in/print.shtml>(lat2d(n,m)+" "+lon2d(n,m)+" "+x+" "+y)
>>>>>>>>> end do
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Dec 28, 2020 at 10:16 AM Setareh Rahimi via ncl-talk <
>>>>>>>>> ncl-talk at mailman.ucar.edu> wrote:
>>>>>>>>>
>>>>>>>>>> Dear all,
>>>>>>>>>>
>>>>>>>>>> I need to extract data (it could be any variable like
>>>>>>>>>> temperature, wind ...) for a specific point (say synoptic stations) at a
>>>>>>>>>> specific day and time
>>>>>>>>>> Yazd-2019_DUST01.2019010100.nc
>>>>>>>>>> <https://drive.google.com/file/d/105vU4Hx2sRjvWlsmRBKOxa97kXp8Cx1_/view?usp=drive_web>
>>>>>>>>>> ( Jan-03- 00:00 UTC), from a model output (file attached). I
>>>>>>>>>> wonder how it could be achieved using NCL (any example...) .
>>>>>>>>>>
>>>>>>>>>> I appreciate any suggestion,
>>>>>>>>>> Best wishes,
>>>>>>>>>> --
>>>>>>>>>> S.Rahimi
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> ncl-talk mailing list
>>>>>>>>>> ncl-talk at mailman.ucar.edu
>>>>>>>>>> List instructions, subscriber options, unsubscribe:
>>>>>>>>>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> S.Rahimi
>>>>>>>>
>>>>>>>> --
>>>>>> S.Rahimi
>>>>>>
>>>>>>
>>>>
>>>> --
>>>> S.Rahimi
>>>>
>>>>
>>
>> --
>> S.Rahimi
>>
>>
>
> --
> S.Rahimi
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20201231/a68fb436/attachment.html>
More information about the ncl-talk
mailing list