[ncl-talk] Getting location and dates of a point(s) that satisfy certain conditions

Dennis Shea shea at ucar.edu
Fri Apr 16 12:52:40 MDT 2021


[1] The following has an error

  dpdx_region=dpdx(:,{latS:latN},{lonL:lonR})
  *dpdx_region*=dpdy(:,{latS:latN},{lonL:lonR})   ;   should be *dpdy_region
<=====*
  px2py2_region=px2py2(:,{latS:latN},{lonL:lonR})

[2] I don't see the need for your use of *dim_num_n*
<http://www.ncl.ucar.edu/Document/Functions/Built-in/dim_num_n.shtml>

[4]  *ind_resolve*
<http://www.ncl.ucar.edu/Document/Functions/Built-in/ind_resolve.shtml> is
what you should use. Arrays must be made 1D.
      **** LOOK AT THE EXAMPLES****

     dpdx_region_1d = *ndtooned*(dpdx_region)
     dpdy_region_1d = *ndtooned*(dpdy_region)
     px2py2_region_1d = *ndtooned*(px2py2_region)

[5]    It is *highly* unlikely that the derivatives will be exactly 0.0 but
....

  n_col  = ind_resolve(ind(dpdx_region_1d.eq. 0) .and. ind(dpdy_region_1d
.eq. 0) .and. ind(px2py2_region_1d.eq. 0) )

  printVarSummary(n_col)


I'll stop there!






On Fri, Apr 16, 2021 at 2:38 AM Lyndz via ncl-talk <
ncl-talk at mailman.ucar.edu> wrote:

> Dear NCL-experts,
>
> *[1] Details*
> I have three variables dpdx, dpdy, and px2py2 with the following
> dimensions and sizes:
> *Dimensions and sizes: [time | 124] x [lat | 73] x [lon | 144]*
> These variables were derived using spherical harmonics.
>
> *[2] Problem and what I have done so far*
>
> (a) I want to get the dates when any gridpoint in a specified domain
> satisfies the following conditions:
> dpdx = 0 *.and.* dpdy = 0 *.and. *px2py2 *.lt.* 0
>
> (b) get the coordinates of these points, if possible.
>
> I have the following lines in my script:
>
>   latS = 5.0
>
>   latN = 30.0
>
>   lonL = 120.0
>
>   lonR = 160.0
>
>   dpdx_region=dpdx(:,{latS:latN},{lonL:lonR})
>
>   dpdx_region=dpdy(:,{latS:latN},{lonL:lonR})
>
>   px2py2_region=px2py2(:,{latS:latN},{lonL:lonR})
>
> I am stuck here. I dont know what index I should use to get the dates and
> how to get their coordinates.
>
>   dpdx_thres  = dim_num_n((dpdx_region .eq. 0),(/1,2/))
>
>   dpdy_thres  = dim_num_n((dpdy_region .eq. 0),(/1,2/))
>
>   px2py2_thres  = dim_num_n((px2py2_region .lt. 0),(/1,2/))
>
>   n_thres  = ind(dpdx_thres .gt. 0 .and. dpdy_thres .gt. 0 .and.
> px2py2_thres .gt. 0 ) ;time indices but i'm not sure if this is correct!
>
>
>   print(n_thres)
>
>   print("=====")
>
>
>   if(ismissing(nt_thres(0))) then
>
>      print("++++++++++++++")
>
>      print(" NO values exceed threshold="+threshold)
>
>      print("++++++++++++++")
>
>   exit
>
>   end if
>
>
>
> I am attaching my script.
>
>
> I'll appreciate any help on this!
>
>
> Sincerely,
>
> *Lyndz*
>
>
> _______________________________________________
> 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/20210416/c8de1116/attachment.html>


More information about the ncl-talk mailing list