Re: Finding coordinates on the circumference of a circle [message #44824 is a reply to message #44822] |
Tue, 19 July 2005 10:10   |
James Kuyper
Messages: 425 Registered: March 2000
|
Senior Member |
|
|
guillaume.drolet.1@ulaval.ca wrote:
> Hello group-
>
> I am preparing flight lines over a CO2 flux tower in Canada. I need to
> find the geographic coordinates of several points located on the
> circumference of a circle defined around the tower. The points are
> equally spaced (10 degrees), starting at 0 degrees (north) and
> incrementing clockwise. I want to do this for circles of different
> radii (10 km, 13 km, etc.). I need these coordinates in either WGS84 or
> NAD83.
>
> I found 'compass.pro' and 'findrng.pro', routines that find ranges and
> azimuths for given points (lat/lon) around a center location. I would
> like the opposite: find locations around a central point from arrays of
> azimuths and ranges.
The approach that involves calling LL_ARC_DISTANCE has a number of
difficulties, including the fact that it can only calculate one
position at a time, and it's not clear what datum is being used. Here's
an approach that allows you to do an entire circle at one time, and to
specify the DATUM to be used. You have to use the azimuthal equidistant
projection for this to work properly:
tower_latitude=75.0
tower_longitude=-90.0
proj = MAP_PROJ_INIT('Azimuthal Equidistant',
CENTER_LONGITUDE=tower_longitude, $
CENTER_LATITUDE=tower_latitude, DATUM=8)
radius = 15000.0; 15 kilometers
angles = !DTOR*10.0*FINDGEN(36)
x = radius*COS(angles)
y = radius*SIN(angles)
circle = MAP_PROJ_INVERSE(x,y,MAP_STRUCTURE=proj)
I checked the reasonableness of the results using
MAP_SET,tower_latitude,tower_longitude,/AZIMUTHAL,/GRID,/HIR ES, $
/LABEL,SCALE=1e6
oplot,circle[0,*],circle[1,*],psym=2
|
|
|