Table of contents
convrt_c ( Convert Units )
void convrt_c ( SpiceDouble x,
ConstSpiceChar * in,
ConstSpiceChar * out,
SpiceDouble * y )
Take a measurement X, the units associated with
X, and units to which X should be converted; return Y ---
the value of the measurement in the output units.
VARIABLE I/O DESCRIPTION
-------- --- -------------------------------------------------
x I Number representing a measurement in some units.
in I The units in which x is measured.
out I Desired units for the measurement.
y O The measurement in the desired units.
x is a number representing a measurement in the units
specified by in.
in represents the units associated with a measurement x.
Acceptable units are:
Metric Distances: "METERS"
English Distances: "FEET"
Astrometric Distances: "AU"
"LIGHTYEARS" julian lightyears
"YEARS" (same as julian years)
The case of the string in is not significant.
out represents the units desired for the measurement x.
See the description of in.
The case of the string out is not significant.
y is the input measurement converted to the desired units.
1) If the input units, output units, or both input and output
units are not recognized, the error SPICE(UNITSNOTREC) is
signaled by a routine in the call tree of this routine.
2) If the units being converted between are incompatible, the
error SPICE(INCOMPATIBLEUNITS) is signaled by a routine in the
call tree of this routine.
3) If any of the `in' or `out' input string pointers is null, the
error SPICE(NULLPOINTER) is signaled.
4) If any of the `in' or `out' input strings has zero length, the
error SPICE(EMPTYSTRING) is signaled.
This routine converts a measurement x given in units specified by
in to the equivalent value y in units specified by out.
If a unit is not recognized, an error message is produced that
indicates which one was not recognized.
If input and output units are incompatible (for example angle
and distance units) and error message will be produced stating
the requested units and associated types.
The numerical results shown for this example may differ across
platforms. The results depend on the SPICE kernels used as
input, the compiler and supporting libraries, and the machine
specific arithmetic implementation.
1) Convert 300 miles (statute miles) to kilometers and determine
the number of lightyears in a parsec.
Example code begins here.
int main( )
Convert 300 miles (statute miles) to kilometers.
distsm = 300.0;
convrt_c ( distsm, "statute_miles", "km", &result );
printf ( "300 miles in km : %16.6f\n", result );
Determine the number of lightyears in a parsec.
onpars = 1.0;
convrt_c ( onpars, "PARSECS", "LIGHTYEARS", &result );
printf ( "Lightyears/parsec: %16.6f\n", result );
return ( 0 );
When this program was executed on a Mac/Intel/cc/64-bit
platform, the output was:
300 miles in km : 482.803200
1) This routine does not do any checking for overflow. The caller
is required to make sure that the units used for the
measurement are such that no floating point overflow will
occur when the conversion is performed.
2) Some of the units are not "defined" quantities. In such a case
a best estimate is provided as of the date of the current
version of this routine. Those estimated quantities are:
AU The astronomical unit. The value was taken
from the JPL ephemeris DE125. This value
is an approximation and should not be used
for high-accuracy work. It agrees with the
value used in the JPL planetary ephemeris
DE430 (149597870.700 km) at the 100m
TROPICAL_YEARS The tropical year is the time from equinox
to equinox. This varies slightly with
PARSECS The parsec is the distance to an object
whose parallax angle is one arcsecond. Its
value is dependent upon the value of the
N.J. Bachman (JPL)
C.A. Curzon (JPL)
J. Diaz del Rio (ODC Space)
H.A. Neilan (JPL)
W.M. Owen (JPL)
W.L. Taber (JPL)
I.M. Underwood (JPL)
-CSPICE Version 2.0.1, 13-AUG-2021 (JDR)
Edited the header to comply with NAIF standard. Added
complete code example.
-CSPICE Version 2.0.0, 13-MAY-2016 (NJB)
Updated to support expanded names of metric distance
units, as well as to support the abbreviation "M"
-CSPICE Version 1.0.0, 17-MAY-1999 (NJB) (CAC) (HAN) (WMO) (WLT) (IMU)