georec_c

 Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input Detailed_Output Parameters Exceptions Files Particulars Examples Restrictions Literature_References Author_and_Institution Version Index_Entries

#### Procedure

```   void georec_c ( SpiceDouble lon,
SpiceDouble lat,
SpiceDouble alt,
SpiceDouble re,
SpiceDouble f,
SpiceDouble rectan )

```

#### Abstract

```   Convert geodetic coordinates to rectangular coordinates.
```

```   None.
```

#### Keywords

```   CONVERSION,  COORDINATES

```

#### Brief_I/O

```   VARIABLE  I/O  DESCRIPTION
--------  ---  --------------------------------------------------
lon        I   Geodetic longitude of point (radians).
lat        I   Geodetic latitude  of point (radians).
alt        I   Altitude of point above the reference spheroid.
re         I   Equatorial radius of the reference spheroid.
f          I   Flattening coefficient.
rectan     O   Rectangular coordinates of point.
```

#### Detailed_Input

```   lon        Geodetic longitude of the input point.  This is the
angle between the prime meridian and the meridian
containing `rectan'.  The direction of increasing
longitude is from the +X axis towards the +Y axis.

Longitude is measured in radians.  On input, the
range of longitude is unrestricted.

lat        Geodetic latitude of the input point.  For a point P on
the reference spheroid, this is the angle between the XY
plane and the outward normal vector at P. For a point P
not on the reference spheroid, the geodetic latitude is
that of the closest point to P on the spheroid.

Latitude is measured in radians.  On input, the
range of latitude is unrestricted.

alt        Altitude of point above the reference spheroid.
`alt' must be in the same units as `re'.

re         Equatorial radius of a reference spheroid.  This spheroid
is a volume of revolution:  its horizontal cross sections
are circular.  The shape of the spheroid is defined by
must be in the same units as `alt'.

f          Flattening coefficient = (re-rp) / re,  where `rp' is
the polar radius of the spheroid.
```

#### Detailed_Output

```   rectan     Rectangular coordinates of the input point.

The units associated with `rectan' are those associated
with the inputs `alt' and `re'.
```

#### Parameters

```   None.
```

#### Exceptions

```   1) If the equatorial radius is less than or equal to zero,
the error SPICE(VALUEOUTOFRANGE) is signaled.

2) If the flattening coefficient is greater than or equal to
one, the error SPICE(VALUEOUTOFRANGE) is signaled.
```

#### Files

```   None.
```

#### Particulars

```   Given the geodetic coordinates of a point, and the constants
describing the reference spheroid,  this routine returns the
bodyfixed rectangular coordinates of the point.  The bodyfixed
rectangular frame is that having the x-axis pass through the 0
degree latitude 0 degree longitude point.  The y-axis passes through
the 0 degree latitude 90 degree longitude.  The z-axis passes
through the 90 degree latitude point.  For some bodies this
coordinate system may not be a right-handed coordinate system.
```

#### Examples

```   This routine can be used to convert body fixed geodetic
coordinates (such as the used for United States Geological
Survey topographic maps) to bodyfixed rectangular coordinates
such as the Satellite Tracking and Data Network of 1973.

The code would look something like this

/.
Using the equatorial radius of the Clark66 spheroid
(CLARKR = 6378.2064 km) and the Clark 66 flattening
factor (CLARKF = 1.0 / 294.9787 ) convert to
body fixed rectangular coordinates.
./

georec_c ( lon, lat, alt, CLARKR, CLARKF, x );

/.
Add the North American Datum of 1927 to STDN 73 center
offset
./

vadd_c  ( x, offset, stdnx );

Below are two tables.

Listed in the first table (under lon, lat, and alt ) are
geodetic coordinate triples that approximately represent points
whose rectangular coordinates are taken from the set {-1, 0, 1}.
(Angular quantities are given in degrees.)

The results of the code fragment

/.
Convert the angular quantities to degrees
./
lat = lat * rpd_c();
lon = lon * rpd_c();

georec_c ( lon, lat, alt, CLARKR, CLARKF, x );

are listed in the second parallel table under x, x and x.

lon       lat        alt            x       x     x
------------------------------      --------------------------
0.0000    90.0000   -6356.5838      0.0000     0.0000   0.0000
0.0000     0.0000   -6377.2063      1.0000     0.0000   0.0000
90.0000     0.0000   -6377.2063      0.0000     1.0000   0.0000
0.0000    90.0000   -6355.5838      0.0000     0.0000   1.0000
180.0000     0.0000   -6377.2063     -1.0000     0.0000   0.0000
-90.0000     0.0000   -6377.2063      0.0000    -1.0000   0.0000
0.0000   -90.0000   -6355.5838      0.0000     0.0000  -1.0000
45.0000     0.0000   -6376.7921      1.0000     1.0000   0.0000
0.0000    88.7070   -6355.5725      1.0000     0.0000   1.0000
90.0000    88.7070   -6355.5725      0.0000     1.0000   1.0000
45.0000    88.1713   -6355.5612      1.0000     1.0000   1.0000
```

#### Restrictions

```   None.
```

#### Literature_References

```   See FUNDAMENTALS OF ASTRODYNAMICS, Bate, Mueller, White
```

#### Author_and_Institution

```   C.H. Acton      (JPL)
N.J. Bachman    (JPL)
H.A. Neilan     (JPL)
W.L. Taber      (JPL)
E.D. Wright     (JPL)
```

#### Version

```   -CSPICE Version 1.0.3, 26-JUL-2016 (BVS)

-CSPICE Version 1.0.2, 30-JUL-2003 (NJB)

```   geodetic to rectangular coordinates
`Wed Apr  5 17:54:35 2017`