|
| | TimeMap (std::string const &options="") |
| | Construct a TimeMap.
|
| virtual | ~TimeMap () |
| | TimeMap (TimeMap const &)=default |
| | Copy constructor: make a deep copy.
|
| | TimeMap (TimeMap &&)=default |
| TimeMap & | operator= (TimeMap const &)=delete |
| TimeMap & | operator= (TimeMap &&)=default |
| std::shared_ptr< TimeMap > | copy () const |
| | Return a deep copy of this object.
|
| void | add (std::string const &cvt, std::vector< double > const &args) |
| | Add one of the standard time coordinate system conversions listed below.
|
| int | getNIn () const |
| | Get NIn: the number of input axes.
|
| int | getNOut () const |
| | Get NOut: the number of output axes.
|
| bool | getIsSimple () const |
| | Get IsSimple: has the mapping been simplified?
|
| bool | isInverted () const |
| | Is this an inverted mapping?
|
| bool | getIsLinear () const |
| | Get IsLinear: is the Mapping linear?
|
| bool | getReport () const |
| | Get Report: report transformed coordinates to stdout?
|
| bool | hasForward () const |
| | Is the forward transform available?
|
| bool | hasInverse () const |
| | Is the inverse transform available?
|
| std::shared_ptr< Mapping > | inverted () const |
| | Get an inverse mapping.
|
| Array2D | linearApprox (PointD const &lbnd, PointD const &ubnd, double tol) const |
| | Compute a linear approximation to the forward transformation.
|
| SeriesMap | then (Mapping const &next) const |
| | Return a series compound mapping this(first(input)) containing shallow copies of the original.
|
| ParallelMap | under (Mapping const &next) const |
| | Return a parallel compound mapping containing shallow copies of the original.
|
| double | rate (PointD const &at, int ax1, int ax2) const |
| | Evaluate the rate of change of the Mapping with respect to a specified input, at a specified position.
|
| void | setReport (bool report) |
| | Set Report: report transformed coordinates to stdout?
|
| std::shared_ptr< Mapping > | simplified () const |
| | Return a simplied version of the mapping (which may be a compound Mapping such as a CmpMap).
|
| void | applyForward (ConstArray2D const &from, Array2D const &to) const |
| | Perform a forward transformation on 2-D array, putting the results into a pre-allocated 2-D array.
|
| Array2D | applyForward (ConstArray2D const &from) const |
| | Perform a forward transformation on a 2-D array, returning the results as a new array.
|
| std::vector< double > | applyForward (std::vector< double > const &from) const |
| | Perform a forward transformation on a vector, returning the results as a new vector.
|
| void | applyInverse (ConstArray2D const &from, Array2D const &to) const |
| | Perform an inverse transformation on a 2-D array, putting the results into a pre-allocated 2-D array.
|
| Array2D | applyInverse (ConstArray2D const &from) const |
| | Perform an inverse transformation on a 2-D array, returning the results as a new 2-D array.
|
| std::vector< double > | applyInverse (std::vector< double > const &from) const |
| | Perform an inverse transformation on a vector, returning the results as a new vector.
|
| void | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
| | Transform a grid of points in the forward direction.
|
| Array2D | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
| | Transform a grid of points in the inverse direction, returning the results as a new Array2D.
|
| void | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
| | Transform a grid of points in the inverse direction.
|
| Array2D | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
| | Transform a grid of points in the inverse direction.
|
| bool | operator== (Object const &rhs) const |
| | Return True if this and rhs are the equal.
|
| bool | operator!= (Object const &rhs) const |
| | Return True if this and rhs are not equal.
|
| void | clear (std::string const &attrib) |
| | Clear the values of a specified set of attributes for an Object.
|
| bool | hasAttribute (std::string const &attrib) const |
| | Does this object have an attribute with the specified name?
|
| std::string | getClassName () const |
| | Get Class: the name of the class (e.g.
|
| std::string | getID () const |
| | Get ID: object identification string that is not copied.
|
| std::string | getIdent () const |
| | Get Ident: object identification string that is copied.
|
| int | getNObject () const |
| | Get NObject: number of AST objects in existence of the same type as the underlying AST class.
|
| int | getObjSize () const |
| | Get ObjSize: the in-memory size of the AST object in bytes.
|
| int | getRefCount () const |
| | Get RefCount: number of active pointers to the underlying AST object.
|
| bool | getUseDefs () const |
| | Get UseDefs: allow use of default values for Object attributes?
|
| void | lock (bool wait) |
| | Lock this object for exclusive use by the calling thread.
|
| bool | same (Object const &other) const |
| | Does this contain the same AST object as another?
|
| void | setID (std::string const &id) |
| | Set ID: object identification string that is not copied.
|
| void | setIdent (std::string const &ident) |
| | Set Ident: object identification string that is copied.
|
| void | setUseDefs (bool usedefs) |
| | Set UseDefs: allow use of default values for Object attributes?
|
| void | show (std::ostream &os, bool showComments=true) const |
| | Print a textual description the object to an ostream.
|
| std::string | show (bool showComments=true) const |
| | Return a textual description the object as a string.
|
| bool | test (std::string const &attrib) const |
| | Has this attribute been explicitly set (and not subsequently cleared)?
|
| void | unlock (bool report=false) |
| | Unlock this object previously locked using lock, so that other threads can use this object.
|
| AstObject const * | getRawPtr () const |
| | Get the raw AST pointer.
|
| AstObject * | getRawPtr () |
| | Get the raw AST pointer.
|
|
| virtual std::shared_ptr< Object > | copyPolymorphic () const override |
| | Return a deep copy of this object.
|
| | TimeMap (AstTimeMap *rawptr) |
| | Construct a TimeMap from a raw AST pointer.
|
| template<typename Class> |
| std::shared_ptr< Class > | decompose (int i, bool copy) const |
| | Return a deep copy of one of the two component mappings.
|
| template<typename T, typename AstT> |
| std::shared_ptr< T > | copyImpl () const |
| | Implementation of deep copy.
|
| bool | getB (std::string const &attrib) const |
| | Get the value of an attribute as a bool.
|
| std::string const | getC (std::string const &attrib) const |
| | Get the value of an attribute as a string.
|
| double | getD (std::string const &attrib) const |
| | Get the value of an attribute as a double.
|
| float | getF (std::string const &attrib) const |
| | Get the value of an attribute as a float.
|
| int | getI (std::string const &attrib) const |
| | Get the value of an attribute as an int.
|
| long int | getL (std::string const &attrib) const |
| | Get the value of an attribute as a long int.
|
| void | set (std::string const &setting) |
| | Assign a set of attribute values, over-riding any previous values.
|
| void | setB (std::string const &attrib, bool value) |
| | Set the value of an attribute as a bool.
|
| void | setC (std::string const &attrib, std::string const &value) |
| | Set the value of an attribute as a string.
|
| void | setD (std::string const &attrib, double value) |
| | Set the value of an attribute as a double.
|
| void | setF (std::string const &attrib, float value) |
| | Set the value of an attribute as a float.
|
| void | setI (std::string const &attrib, int value) |
| | Set the value of an attribute as an int.
|
| void | setL (std::string const &attrib, long int value) |
| | Set the value of an attribute as a long int.
|
A TimeMap is a specialised form of 1-dimensional Mapping which can be used to represent a sequence of conversions between standard time coordinate systems.
Definition at line 40 of file TimeMap.h.
Add one of the standard time coordinate system conversions listed below.
When a TimeMap is first created, it simply performs a unit (null) Mapping. By using add (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 add 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.
- Parameters
-
| [in] | cvt | String which identifies the time coordinate conversion to be added to the TimeMap. See "Available Conversions" for details of those available. |
| [in] | args | An array containing argument values for the time coordinate conversion. The number of arguments required, and hence the number of array elements used, depends on the conversion specified (see the "Available Conversions" section). This array is ignored and an empty vector may be provided if no arguments are needed. |
Attributes
TimeMap has no attributes beyond those provided by Mapping and Object.
Notes
- 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.
Available Conversions
The following strings (which are case-insensitive) may be supplied via the "cvt" parameter to indicate which time coordinate conversion is to be added to the TimeMap.
The cvt string is followed by the number of arguments required in the args array and the description of those arguments in parenthesis. 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 Mapping::applyForward function. The axis values supplied and returned by Mapping::applyForward 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.
- DUT1: The UT1-UTC value to use.
- LTOFF: The offset between Local Time and UTC (in hours, positive for time zones east of Greenwich).
Definition at line 183 of file TimeMap.h.