[ncl-talk] understanding function gc_pnt2gc
Alan Brammer
abrammer at albany.edu
Thu Aug 10 09:55:12 MDT 2017
As another person who uses gc_latlon extensively but didn't know gc_pnt2gc
existed.
You could use gc_latlon to recreate gc_pnt2gc(). Definitely seems like
that function is doing some weird stuff.
Though this wouldn't be directional but that could be worked out relatively
easily.
p_lat = 41.6
p_lon = -76.84
lat = (/52.9921,55.3543/)
lon = (/-168.693,-160.346/)
dist = gc_pnt2gc(p_lat,p_lon,lat,lon)
line = gc_latlon( lat(0), lon(0), lat(1), lon(1), 1000, 2)
;; create the GC path
distances = gc_latlon(p_lat, p_lon, line at gclat, line at gclon, 0, 2) ;; find
distances to GC path
shortest = minind(distances)
print ("The gc_pnt2gc distance is: " + dist)
print ("The gc_latlon distance is: " + distances(shortest) )
; The gc_pnt2gc distance is: -0.105952
; The gc_latlon distance is: 53.5385
On Thu, Aug 10, 2017 at 10:46 AM, Joe Grim <grim at ucar.edu> wrote:
> Thank you, Dennis. Yes, I have used the gc_latlon function many times; it
> is very useful!
>
> But, I am hoping to use a function that finds the distance between a
> point, and where it is closest to a line. If I can't, I'll just have to
> write my own function in FORTRAN instead to do that.
>
> Hopefully someone else is familiar with the *gc_pnt2gc* function.
>
> Joe
>
> On Thu, Aug 10, 2017 at 8:12 AM, Dennis Shea <shea at ucar.edu> wrote:
>
>> Hi Joe,
>>
>> I have never used the '*gc_pnt2gc*' function. Hopefully, somebody will
>> address that function.
>>
>> There us an alternative:
>> https://www.ncl.ucar.edu/Document/Functions/Built-in/gc_latlon.shtml
>>
>> Try the following interactively
>>
>> %> ncl <return>
>> Then enter the following
>>
>> p_lat = 41.6
>> p_lon = -76.84
>> lat = (/52.9921,55.3543/)
>> lon = (/-168.693,-160.346/)
>> dist = gc_latlon(p_lat,p_lon,lat,lon,10,2)
>> print(dist)
>>
>> Variable: dist
>> Type: float
>> Total Size: 8 bytes
>> 2 values
>> Number of Dimensions: 1
>> Dimensions and sizes: [2]
>> Coordinates:
>> Number Of Attributes: 4
>> units : degrees
>> gclon : <ARRAY of 20 elements>
>> gclat : <ARRAY of 20 elements>
>> spacing : ( 6.551194, 5.948726 )
>>
>> (0) 58.96074
>> (1) 53.53853
>>
>> ===
>> Cheers
>> D
>>
>>
>> On Wed, Aug 9, 2017 at 1:21 PM, Joe Grim <grim at ucar.edu> wrote:
>>
>>> Hi,
>>>
>>> I have used the function gc_pnt2gc, but it doesn't appear to be doing
>>> what I think it should be doing. I assume this is because I am
>>> misunderstanding it. What I think it does is give the distance in degrees
>>> between a lat/lon point (p_lat, p_lon), and its closest approach to the
>>> great circle line between two other lat/lon pairs (lat[2], lon[2]: and I
>>> assume that this great circle line is the shortest greatest circle line
>>> between these lat/lon pairs.) Here is an example snippet of what I am
>>> trying to do:
>>>
>>> p_lat = 41.6
>>> p_lon = -76.84
>>> lat = (/52.9921,55.3543/)
>>> lon = (/-168.693,-160.346/)
>>> dist = gc_pnt2gc(p_lat,p_lon,lat,lon)
>>> print ("The distance is: " + dist)
>>>
>>> Here is the output:
>>> (0) The distance is: 0.105952
>>>
>>> I would expect the distance to be something around 53 degrees.
>>>
>>> Could someone please explain to me what I am misunderstanding about this
>>> function? And, do you know of another function that does what I am trying
>>> to do? (That is, find the shortest distance between a point and a line on
>>> the Earth.)
>>>
>>> Thank you!
>>>
>>> Joe Grim
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>>
>>>
>>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170810/77bd6feb/attachment.html
More information about the ncl-talk
mailing list