lsst.astshim
14.0-11-g0e62142+2
|
#include <TimeMap.h>
Public Member Functions | |
TimeMap (std::string const &options="") | |
TimeMap (TimeMap const &)=delete | |
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) |
![]() | |
Mapping (Mapping const &)=delete | |
Mapping (Mapping &&)=default | |
Mapping & | operator= (Mapping const &)=delete |
Mapping & | operator= (Mapping &&)=default |
std::shared_ptr< Mapping > | copy () const |
Return a deep copy of this object. | |
int | getNIn () const |
int | getNOut () const |
bool | getIsSimple () const |
bool | isInverted () const |
bool | getIsLinear () const |
bool | getReport () const |
bool | hasForward () const |
bool | hasInverse () const |
std::shared_ptr< Mapping > | getInverse () const |
Array2D | linearApprox (PointD const &lbnd, PointD const &ubnd, double tol) const |
SeriesMap | then (Mapping const &next) const |
ParallelMap | under (Mapping const &next) const |
double | rate (PointD const &at, int ax1, int ax2) const |
void | setReport (bool report) |
std::shared_ptr< Mapping > | simplify () const |
void | applyForward (ConstArray2D const &from, Array2D const &to) const |
Array2D | applyForward (ConstArray2D const &from) const |
std::vector< double > | applyForward (std::vector< double > const &from) const |
void | applyInverse (ConstArray2D const &from, Array2D const &to) const |
Array2D | applyInverse (ConstArray2D const &from) const |
std::vector< double > | applyInverse (std::vector< double > const &from) const |
void | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
Array2D | tranGridForward (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
void | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, Array2D const &to) const |
Array2D | tranGridInverse (PointI const &lbnd, PointI const &ubnd, double tol, int maxpix, int nPts) const |
![]() | |
Object (Object const &)=delete | |
Object (Object &&)=default | |
Object & | operator= (Object const &)=delete |
Object & | operator= (Object &&)=default |
bool | operator== (Object const &rhs) const |
bool | operator!= (Object const &rhs) const |
std::shared_ptr< Object > | copy () const |
Return a deep copy of this object. | |
void | clear (std::string const &attrib) |
bool | hasAttribute (std::string const &attrib) const |
std::string | getClassName () const |
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 |
int | getObjSize () const |
Get ObjSize: the in-memory size of the AST object in bytes. | |
int | getRefCount () const |
bool | getUseDefs () const |
Get UseDefs: allow use of default values for Object attributes? | |
void | lock (bool wait) |
bool | same (Object const &other) const |
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 |
std::string | show (bool showComments=true) const |
bool | test (std::string const &attrib) const |
void | unlock (bool report=false) |
AstObject const * | getRawPtr () const |
AstObject * | getRawPtr () |
Protected Member Functions | |
virtual std::shared_ptr< Object > | copyPolymorphic () const override |
TimeMap (AstTimeMap *rawptr) | |
Construct a TimeMap from a raw AST pointer. | |
![]() | |
Mapping (AstMapping *rawMap) | |
template<typename Class > | |
std::shared_ptr< Class > | decompose (int i, bool copy) const |
![]() | |
Object (AstObject *object) | |
template<typename T , typename AstT > | |
std::shared_ptr< T > | copyImpl () const |
bool | getB (std::string const &attrib) const |
std::string const | getC (std::string const &attrib) const |
double | getD (std::string const &attrib) const |
float | getF (std::string const &attrib) const |
int | getI (std::string const &attrib) const |
long int | getL (std::string const &attrib) const |
void | set (std::string const &setting) |
void | setB (std::string const &attrib, bool value) |
void | setC (std::string const &attrib, std::string const &value) |
void | setD (std::string const &attrib, double value) |
void | setF (std::string const &attrib, float value) |
void | setI (std::string const &attrib, int value) |
void | setL (std::string const &attrib, long int value) |
Friends | |
class | Object |
Additional Inherited Members | |
![]() | |
using | ObjectPtr = std::unique_ptr< AstObject, Deleter > |
unique pointer holding an AST raw pointer | |
![]() | |
static std::shared_ptr< Object > | fromString (std::string const &str) |
template<typename Class > | |
static std::shared_ptr< Class > | fromAstObject (AstObject *rawObj, bool copy) |
![]() | |
template<typename ShimT , typename AstT > | |
static std::shared_ptr< ShimT > | makeShim (AstObject *p) |
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.
|
inlineexplicit |
Construct a TimeMap
When a TimeMap is first created, it simply performs a unit (null) Mapping. Using the add method, a series of coordinate conversion steps may then be added. This allows multi-step conversions between a variety of time coordinate systems to be assembled out of a set of building blocks.
For details of the individual coordinate conversions available, see add.
[in] | options | Comma-separated list of attribute assignments. |
|
inline |
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.
[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. |
TimeMap has no attributes beyond those provided by Mapping and Object.
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.
The units for the values processed by the above conversions are as follows:
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).
|
inlineoverrideprotectedvirtual |
Return a deep copy of this object. This is called by copy.
Each subclass must override this method. The standard implementation is:
for example Frame implements this as:
Reimplemented from ast::Mapping.