| unitim_c |
|
Table of contents
Procedure
unitim_c ( Uniform time scale transformation )
SpiceDouble unitim_c ( SpiceDouble epoch,
ConstSpiceChar * insys,
ConstSpiceChar * outsys )
AbstractTransform time from one uniform scale to another. The uniform time scales are TAI, GPS, TT, TDT, TDB, ET, JED, JDTDB, JDTDT. Required_ReadingTIME KeywordsCONVERSION TIME UTILITY Brief_I/OVARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- epoch I An epoch to be converted. insys I The time scale associated with the input epoch. outsys I The time scale associated with the function value. The function returns the d.p. in outsys that is equivalent to the epoch on the insys time scale. Detailed_Input
epoch is an epoch relative to the `insys' time scale.
insys is a time scale. Acceptable values are:
"TAI" International Atomic Time.
"TDB" Barycentric Dynamical Time.
"TDT" Terrestrial Dynamical Time.
"TT" Terrestrial Time, identical to TDT.
"ET" Ephemeris time (in the SPICE system, this is
equivalent to TDB).
"JDTDB" Julian Date relative to TDB.
"JDTDT" Julian Date relative to TDT.
"JED" Julian Ephemeris date (in the SPICE system
this is equivalent to JDTDB).
"GPS" Global Positioning System Time.
The routine is not sensitive to the case of the
characters in `insys'; "tai" "Tai" and "TAI" are all
equivalent from the point of view of this routine.
outsys is the time scale to which `epoch' should be converted.
Acceptable values are the same as for `insys'. The
routine is not sensitive to the case of `outsys'.
Detailed_OutputThe function returns the time in the system specified by `outsys' that is equivalent to the `epoch' in the `insys' time scale. ParametersNone. Exceptions
1) The kernel pool must contain the variables:
'DELTET/DELTA_T_A'
'DELTET/K'
'DELTET/EB'
'DELTET/M'
If these are not present, the error SPICE(MISSINGTIMEINFO) is
signaled by a routine in the call tree of this routine. (These
variables are typically inserted into the kernel pool by
loading a leapseconds kernel with the SPICE routine furnsh_c.)
2) If the names of either the input or output time types are
unrecognized, the error SPICE(BADTIMETYPE) is signaled by a
routine in the call tree of this routine.
3) If any of the `insys' or `outsys' input string pointers is
null, the error SPICE(NULLPOINTER) is signaled. The function
returns the value 0.0.
4) If any of the `insys' or `outsys' input strings has zero
length, the error SPICE(EMPTYSTRING) is signaled. The function
returns the value 0.0.
FilesNone. ParticularsWe use the term uniform time scale to refer to those representations of time that are numeric (each epoch is represented by a number) and additive. A numeric time system is additive if given the representations, `e1' and `e2', of any pair of successive epochs, the time elapsed between the epochs is given by e2 - e1. Given an epoch in one of the uniform time scales specified by `insys', the function returns the equivalent representation in the scale specified by `outsys'. A list of the recognized uniform time scales is given in the detailed input for `insys'. Examples
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 a calendar date in UTC string format to Julian Ephemeris
date.
Use the LSK kernel below to load the leap seconds and time
constants required for the conversions.
naif0012.tls
Example code begins here.
/.
Program unitim_ex1
./
#include <stdio.h>
#include "SpiceUsr.h"
int main( )
{
/.
Local constants.
./
#define UTCSTR "Dec 19 2003 16:48:00"
/.
Local variables.
./
SpiceDouble et;
SpiceDouble jed;
/.
Load the LSK file.
./
furnsh_c ( "naif0012.tls" );
/.
Convert input UTC string to Ephemeris Time.
./
str2et_c ( UTCSTR, &et );
printf ( "UTC time : %s\n", UTCSTR );
printf ( "Ephemeris time : %21.9f\n", et );
/.
Convert the Ephemeris Time to Julian ephemeris date, i.e.
Julian date relative to TDB time scale.
./
jed = unitim_c ( et, "ET", "JED" );
printf ( "Julian Ephemeris Date: %21.9f\n", jed );
return ( 0 );
}
When this program was executed on a Mac/Intel/cc/64-bit
platform, the output was:
UTC time : Dec 19 2003 16:48:00
Ephemeris time : 125124544.183560610
Julian Ephemeris Date: 2452993.200742865
Restrictions
1) The appropriate variable must be loaded into the SPICE kernel
pool (normally by loading a leapseconds kernel with furnsh_c)
prior to calling this routine.
Literature_ReferencesNone. Author_and_InstitutionN.J. Bachman (JPL) J. Diaz del Rio (ODC Space) H.A. Neilan (JPL) W.L. Taber (JPL) E.D. Wright (JPL) Version
-CSPICE Version 1.2.0, 05-AUG-2021 (EDW) (JDR)
Added time system name "TT" (Terrestrial Time) as alternate
assignment of "TDT" (Terrestrial Dynamical Time).
Included GPS time system mapping.
Edited the header to comply with NAIF standard. Added complete
code example.
-CSPICE Version 1.1.1, 14-AUG-2006 (EDW)
Replace mention of ldpool_c with furnsh_c.
-CSPICE Version 1.1.0, 08-FEB-1998 (NJB)
Re-implemented routine without dynamically allocated, temporary
strings.
-CSPICE Version 1.0.0, 25-OCT-1997 (EDW) (HAN) (WLT)
Index_EntriesTransform between two uniform numeric time systems Transform between two additive numeric time systems Convert one uniform numeric time system to another Convert one additive numeric time system to another |
Fri Dec 31 18:41:14 2021