Add a time coordinate conversion to a TimeMap
When a TimeMap is first created (using astTimeMap), it simply performs a unit (null) Mapping. By using astTimeAdd (repeatedly if necessary), one or more coordinate conversion steps may then be added, which the TimeMap will perform in sequence. This allows multi-step conversions between a variety of time coordinate systems to be assembled out of the building blocks provided by this class.
Normally, if a TimeMap’
s Invert attribute is zero (the default), then its forward
transformation is performed by carrying out each of the individual coordinate
conversions specified by astTimeAdd in the order given (i.e. with the most recently
added conversion applied last).
This order is reversed if the TimeMap’
s Invert attribute is non-zero (or if the
inverse transformation is requested by any other means) and each individual coordinate
conversion is also replaced by its own inverse. This process inverts the overall effect
of the TimeMap. In this case, the first conversion to be applied would be the
inverse of the one most recently added.
"
Available Conversions"
section for details of those
available. "
args"
array. "
Available Conversions"
section). This array is
ignored and a NULL pointer may be supplied if no arguments are needed. When assembling a multi-stage conversion, it can sometimes be difficult to determine the most economical conversion path. A solution to this is to include all the steps which are (logically) necessary, but then to use astSimplify to simplify the resulting TimeMap. The simplification process will eliminate any steps which turn out not to be needed.
This function does not check to ensure that the sequence of coordinate conversions added to a TimeMap is physically meaningful.
"
cvt"
parameter to
indicate which time coordinate conversion is to be added to the TimeMap. Where
arguments are needed by the conversion, they are listed in parentheses. Values for
these arguments should be given, via the "
args"
array, in the order indicated. Units
and argument names are described at the end of the list of conversions, and "
MJD"
means Modified Julian Date.
"
MJDTOMJD"
(MJDOFF1,MJDOFF2): Convert MJD from one offset to another.
"
MJDTOJD"
(MJDOFF,JDOFF): Convert MJD to Julian Date.
"
JDTOMJD"
(JDOFF,MJDOFF): Convert Julian Date to MJD.
"
MJDTOBEP"
(MJDOFF,BEPOFF): Convert MJD to Besselian epoch.
"
BEPTOMJD"
(BEPOFF,MJDOFF): Convert Besselian epoch to MJD.
"
MJDTOJEP"
(MJDOFF,JEPOFF): Convert MJD to Julian epoch.
"
JEPTOMJD"
(JEPOFF,MJDOFF): Convert Julian epoch to MJD.
"
TAITOUTC"
(MJDOFF,DTAI): Convert a TAI MJD to a UTC MJD.
"
UTCTOTAI"
(MJDOFF,DTAI): Convert a UTC MJD to a TAI MJD.
"
TAITOTT"
(MJDOFF): Convert a TAI MJD to a TT MJD.
"
TTTOTAI"
(MJDOFF): Convert a TT MJD to a TAI MJD.
"
TTTOTDB"
(MJDOFF,OBSLON,OBSLAT,OBSALT,DTAI): Convert a TT MJD to a TDB MJD.
"
TDBTOTT"
(MJDOFF,OBSLON,OBSLAT,OBSALT,DTAI): Convert a TDB MJD to a TT MJD.
"
TTTOTCG"
(MJDOFF): Convert a TT MJD to a TCG MJD.
"
TCGTOTT"
(MJDOFF): Convert a TCG MJD to a TT MJD.
"
TDBTOTCB"
(MJDOFF): Convert a TDB MJD to a TCB MJD.
"
TCBTOTDB"
(MJDOFF): Convert a TCB MJD to a TDB MJD.
"
UTTOGMST"
(MJDOFF): Convert a UT MJD to a GMST MJD.
"
GMSTTOUT"
(MJDOFF): Convert a GMST MJD to a UT MJD.
"
GMSTTOLMST"
(MJDOFF,OBSLON,OBSLAT): Convert a GMST MJD to a LMST MJD.
"
LMSTTOGMST"
(MJDOFF,OBSLON,OBSLAT): Convert a LMST MJD to a GMST MJD.
"
LASTTOLMST"
(MJDOFF,OBSLON,OBSLAT): Convert a GMST MJD to a LMST MJD.
"
LMSTTOLAST"
(MJDOFF,OBSLON,OBSLAT): Convert a LMST MJD to a GMST MJD.
"
UTTOUTC"
(DUT1): Convert a UT1 MJD to a UTC MJD.
"
UTCTOUT"
(DUT1): Convert a UTC MJD to a UT1 MJD.
"
LTTOUTC"
(LTOFF): Convert a Local Time MJD to a UTC MJD.
"
UTCTOLT"
(LTOFF): Convert a UTC MJD to a Local Time MJD.
The units for the values processed by the above conversions are as follows:
Julian epochs and offsets: Julian years
Besselian epochs and offsets: Tropical years
Modified Julian Dates and offsets: days
Julian Dates and offsets: days
The arguments used in the above conversions are the zero-points used by the astTransform function. The axis values supplied and returned by astTransform are offsets away from these zero-points:
MJDOFF: The zero-point being used with MJD values.
JDOFF: The zero-point being used with Julian Date values.
BEPOFF: The zero-point being used with Besselian epoch values.
JEPOFF: The zero-point being used with Julian epoch values.
OBSLON: Observer longitude in radians ($+$ve westwards).
OBSLAT: Observer geodetic latitude (IAU 1975) in radians ($+$ve northwards).
OBSALT: Observer geodetic altitude (IAU 1975) in metres.
DTAI: The value of TAI-UTC (the value returned by astDat is used if DTAI is AST__BAD).
DUT1: The UT1-UTC value to use.
LTOFF: The offset between Local Time and UTC (in hours, positive for time zones east of Greenwich).