GEODETIC2GEO
Name
GEODETIC2GEO
Purpose
Convert from geodetic (or planetodetic) to geographic coordinates
Explanation
Converts from geodetic (latitude, longitude, altitude) to geographic
(latitude, longitude, altitude). In geographic coordinates, the
Earth is assumed a perfect sphere with a radius equal to its equatorial
radius. The geodetic (or ellipsoidal) coordinate system takes into
account the Earth's oblateness.
Geographic and geodetic longitudes are identical.
Geodetic latitude is the angle between local zenith and the equatorial
plane. Geographic and geodetic altitudes are both the closest distance
between the satellite and the ground.
The PLANET keyword allows a similar transformation for the other
planets (planetodetic to planetographic coordinates).
The EQUATORIAL_RADIUS and POLAR_RADIUS keywords allow the
transformation for any ellipsoid.
Latitudes and longitudes are expressed in degrees, altitudes in km.
REF: Stephen P. Keeler and Yves Nievergelt, "Computing geodetic
coordinates", SIAM Rev. Vol. 40, No. 2, pp. 300-309, June 1998
Planetary constants from "Allen's Astrophysical Quantities",
Fourth Ed., (2000)
Calling Sequence
gcoord = geodetic2geo(ecoord, [ PLANET= ] )
Input
ecoord = a 3-element array of geodetic [latitude,longitude,altitude],
or an array [3,n] of n such coordinates.
Optional Keyword Input
PLANET = keyword specifying planet (default is Earth). The planet
may be specified either as an integer (1-9) or as one of the
(case-independent) strings 'mercury','venus','earth','mars',
'jupiter','saturn','uranus','neptune', or 'pluto'
EQUATORIAL_RADIUS : Self-explanatory. In km. If not set, PLANET's value
is used. Numeric scalar
POLAR_RADIUS : Self-explanatory. In km. If not set, PLANET's value is
used. Numeric scalar
Output
a 3-element array of geographic [latitude,longitude,altitude], or an
array [3,n] of n such coordinates, double precision
The geographic and geodetic longitudes will be identical.
Common Blocks
None
Examples
IDL> geod=[90,0,0] ; North pole, altitude 0., in geodetic coordinates
IDL> geo=geodetic2geo(geod)
IDL> PRINT,geo
90.000000 0.0000000 -21.385000
As above, but the equivalent planetographic coordinates for Mars
IDL> geod=geodetic2geo(geod,PLANET='Mars');
IDL> PRINT,geod
90.000000 0.0000000 -18.235500
Modification History
Written by Pascal Saint-Hilaire (shilaire@astro.phys.ethz.ch),
May 2002
Generalized for all solar system planets by Robert L. Marcialis
(umpire@lpl.arizona.edu), May 2002
Modified 2002/05/18, PSH: added keywords EQUATORIAL_RADIUS and
POLAR_RADIUS