[ncl-talk] Extracting data for a given point from a model output

Dennis Shea shea at ucar.edu
Thu Dec 31 10:01:01 MST 2020


Oops, it was pointed out that I did not attach the script.
Attached


On Thu, Dec 31, 2020 at 8:33 AM Dennis Shea <shea at ucar.edu> wrote:

> 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/04eed22b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: setereh.emflx_print.ncl
Type: application/octet-stream
Size: 2991 bytes
Desc: not available
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20201231/04eed22b/attachment.obj>


More information about the ncl-talk mailing list