[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