lsst.astshim gb04e0da5b2+ce83317b7e
Public Member Functions | Protected Member Functions | Friends | List of all members
ast::TimeFrame Class Reference

#include <TimeFrame.h>

Inheritance diagram for ast::TimeFrame:
ast::Frame ast::Mapping ast::Object

Public Member Functions

 TimeFrame (std::string const &options="")
 
virtual ~TimeFrame ()
 
 TimeFrame (TimeFrame const &)=default
 Copy constructor: make a deep copy. More...
 
 TimeFrame (TimeFrame &&)=default
 
TimeFrameoperator= (TimeFrame const &)=delete
 
TimeFrameoperator= (TimeFrame &&)=default
 
std::shared_ptr< TimeFramecopy () const
 Return a deep copy of this object. More...
 
double currentTime () const
 
std::string getAlignTimeScale () const
 Get AlignTimeScale: time scale in which to align TimeFrames. More...
 
double getLTOffset () const
 Get LTOffset: the offset of Local Time from UTC, in hours. More...
 
double getTimeOrigin () const
 Get TimeOrigin: the zero point for TimeFrame axis values. More...
 
std::string getTimeScale () const
 Get TimeScale: the timescale used by the TimeFrame. More...
 
void setAlignTimeScale (std::string const &scale)
 Set AlignTimeScale: time scale in which to align TimeFrames. More...
 
void setLTOffset (double offset)
 Set LTOffset: the offset of Local Time from UTC, in hours. More...
 
void setTimeOrigin (double origin)
 Set TimeOrigin: the zero point for TimeFrame axis values. More...
 
void setTimeScale (std::string const &scale)
 Set TimeScale: the timescale used by the TimeFrame. More...
 
- Public Member Functions inherited from ast::Frame
 Frame (int naxes, std::string const &options="")
 
virtual ~Frame ()
 
 Frame (Frame const &)=default
 Copy constructor: make a deep copy. More...
 
 Frame (Frame &&)=default
 
Frameoperator= (Frame const &)=delete
 
Frameoperator= (Frame &&)=default
 
std::shared_ptr< Framecopy () const
 Return a deep copy of this object. More...
 
double angle (PointD const &a, PointD const &b, PointD const &c) const
 
double axAngle (PointD const &a, PointD const &b, int axis) const
 
double axDistance (int axis, double v1, double v2) const
 
double axOffset (int axis, double v1, double dist) const
 
std::shared_ptr< FrameSetconvert (Frame const &to, std::string const &domainlist="")
 
double distance (PointD const &point1, PointD const &point2) const
 
std::shared_ptr< FrameSetfindFrame (Frame const &tmplt, std::string const &domainlist="")
 
std::string format (int axis, double value) const
 
bool getActiveUnit () const
 
std::string getAlignSystem () const
 
double getBottom (int axis) const
 
int getDigits () const
 
int getDigits (int axis) const
 
bool getDirection (int axis) const
 
std::string getDomain () const
 
double getDut1 () const
 
double getEpoch () const
 
std::string getFormat (int axis) const
 
std::string getInternalUnit (int axis) const
 
std::string getLabel (int axis) const
 
bool getMatchEnd () const
 
int getMaxAxes () const
 
int getMinAxes () const
 
int getNAxes () const
 
std::string getNormUnit (int axis) const
 
double getObsAlt () const
 
std::string getObsLat () const
 
std::string getObsLon () const
 
bool getPermute () const
 
bool getPreserveAxes () const
 
std::string getSymbol (int axis) const
 
std::string getSystem () const
 
std::string getTitle () const
 
double getTop (int axis) const
 
std::string getUnit (int axis) const
 
std::vector< double > intersect (std::vector< double > const &a1, std::vector< double > const &a2, std::vector< double > const &b1, std::vector< double > const &b2) const
 
std::vector< int > matchAxes (Frame const &other) const
 
CmpFrame under (Frame const &next) const
 
PointD norm (PointD value) const
 
PointD offset (PointD point1, PointD point2, double offset) const
 
DirectionPoint offset2 (PointD const &point1, double angle, double offset) const
 
void permAxes (std::vector< int > perm)
 
FrameMapping pickAxes (std::vector< int > const &axes) const
 
ResolvedPoint resolve (std::vector< double > const &point1, std::vector< double > const &point2, std::vector< double > const &point3) const
 
void setAlignSystem (std::string const &system)
 
void setBottom (int axis, double bottom)
 
void setDigits (int digits)
 
void setDigits (int axis, int digits)
 
void setDirection (bool direction, int axis)
 
virtual void setDomain (std::string const &domain)
 
void setDut1 (double dut1)
 
void setEpoch (double epoch)
 
void setEpoch (std::string const &epoch)
 
void setFormat (int axis, std::string const &format)
 
void setLabel (int axis, std::string const &label)
 
void setMatchEnd (bool match)
 
void setMaxAxes (int maxAxes)
 
void setMinAxes (int minAxes)
 
void setObsAlt (double alt)
 
void setObsLat (std::string const &lat)
 
void setObsLon (std::string const &lon)
 
void setActiveUnit (bool enable)
 
void setPermute (bool permute)
 
void setPreserveAxes (bool preserve)
 
void setSymbol (int axis, std::string const &symbol)
 
void setSystem (std::string const &system)
 
void setTitle (std::string const &title)
 
void setTop (int axis, double top)
 
void setUnit (int axis, std::string const &unit)
 
NReadValue unformat (int axis, std::string const &str) const
 
- Public Member Functions inherited from ast::Mapping
virtual ~Mapping ()
 
 Mapping (Mapping const &)=default
 Copy constructor: make a deep copy. More...
 
 Mapping (Mapping &&)=default
 
Mappingoperator= (Mapping const &)=delete
 
Mappingoperator= (Mapping &&)=default
 
std::shared_ptr< Mappingcopy () const
 Return a deep copy of this object. More...
 
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< Mappinginverted () 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< Mappingsimplified () 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
 
- Public Member Functions inherited from ast::Object
virtual ~Object ()
 
 Object (Object const &object)
 Copy constructor: make a deep copy. More...
 
 Object (Object &&)=default
 
Objectoperator= (Object const &)=delete
 
Objectoperator= (Object &&)=default
 
bool operator== (Object const &rhs) const
 
bool operator!= (Object const &rhs) const
 
std::shared_ptr< Objectcopy () const
 Return a deep copy of this object. More...
 
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. More...
 
std::string getIdent () const
 Get Ident: object identification string that is copied. More...
 
int getNObject () const
 
int getObjSize () const
 Get ObjSize: the in-memory size of the AST object in bytes. More...
 
int getRefCount () const
 
bool getUseDefs () const
 Get UseDefs: allow use of default values for Object attributes? More...
 
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. More...
 
void setIdent (std::string const &ident)
 Set Ident: object identification string that is copied. More...
 
void setUseDefs (bool usedefs)
 Set UseDefs: allow use of default values for Object attributes? More...
 
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< ObjectcopyPolymorphic () const override
 
 TimeFrame (AstTimeFrame *rawptr)
 Construct a TimeFrame from a raw AST pointer. More...
 
- Protected Member Functions inherited from ast::Frame
 Frame (AstFrame *rawPtr)
 
- Protected Member Functions inherited from ast::Mapping
 Mapping (AstMapping *rawMap)
 
template<typename Class >
std::shared_ptr< Class > decompose (int i, bool copy) const
 
- Protected Member Functions inherited from ast::Object
 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

- Public Types inherited from ast::Object
using ObjectPtr = std::unique_ptr< AstObject, Deleter >
 unique pointer holding an AST raw pointer More...
 
- Static Public Member Functions inherited from ast::Object
static std::shared_ptr< ObjectfromString (std::string const &str)
 
template<typename Class >
static std::shared_ptr< Class > fromAstObject (AstObject *rawObj, bool copy)
 
- Static Protected Member Functions inherited from ast::Object
template<typename ShimT , typename AstT >
static std::shared_ptr< ShimT > makeShim (AstObject *p)
 

Detailed Description

A TimeFrame is a specialised form of one-dimensional Frame which represents various coordinate systems used to describe positions in time.

A TimeFrame represents a moment in time as either an Modified Julian Date (MJD), a Julian Date (JD), a Besselian epoch or a Julian epoch, as determined by the System attribute. Optionally, a zero point can be specified (using attribute TimeOrigin) which results in the TimeFrame representing time offsets from the specified zero point.

Even though JD and MJD are defined as being in units of days, the TimeFrame class allows other units to be used (via the Unit attribute) on the basis of simple scalings (60 seconds = 1 minute, 60 minutes = 1 hour, 24 hours = 1 day, 365.25 days = 1 year). Likewise, Julian epochs can be described in units other than the usual years. Besselian epoch are always represented in units of (tropical) years.

The TimeScale attribute allows the time scale to be specified (that is, the physical process used to define the rate of flow of time). MJD, JD and Julian epoch can be used to represent a time in any supported time scale. However, Besselian epoch may only be used with the "TT" (Terrestrial Time) time scale. The list of supported time scales includes universal time and siderial time. Strictly, these represent angles rather than time scales, but are included in the list since they are in common use and are often thought of as time scales. When a time value is formatted it can be formated either as a simple floating point value, or as a Gregorian date (see the Format attribute).

Attributes

TimeFrame has the following attributes in addition to those provided by Frame, Mapping and Object

Several of the Frame attributes inherited by the TimeFrame class refer to a specific axis of the Frame (for instance Unit(axis), Label(axis), etc). Since a TimeFrame is strictly one-dimensional, it allows these attributes to be specified without an axis index. So for instance, "Unit" is allowed in place of "Unit(1)".

Constructor & Destructor Documentation

◆ TimeFrame() [1/4]

ast::TimeFrame::TimeFrame ( std::string const &  options = "")
inlineexplicit

Construct a TimeFrame

Parameters
[in]optionsComma-separated list of attribute assignments.

◆ ~TimeFrame()

virtual ast::TimeFrame::~TimeFrame ( )
inlinevirtual

◆ TimeFrame() [2/4]

ast::TimeFrame::TimeFrame ( TimeFrame const &  )
default

Copy constructor: make a deep copy.

◆ TimeFrame() [3/4]

ast::TimeFrame::TimeFrame ( TimeFrame &&  )
default

◆ TimeFrame() [4/4]

ast::TimeFrame::TimeFrame ( AstTimeFrame *  rawptr)
inlineexplicitprotected

Construct a TimeFrame from a raw AST pointer.

Member Function Documentation

◆ copy()

std::shared_ptr< TimeFrame > ast::TimeFrame::copy ( ) const
inline

Return a deep copy of this object.

◆ copyPolymorphic()

virtual std::shared_ptr< Object > ast::TimeFrame::copyPolymorphic ( ) const
inlineoverrideprotectedvirtual

Return a deep copy of this object. This is called by copy.

Each subclass must override this method. The standard implementation is:

return copyImpl<astshim_class, ast_class>();

for example Frame implements this as:

return copyImpl<Frame, AstFrame>();

Reimplemented from ast::Frame.

◆ currentTime()

double ast::TimeFrame::currentTime ( ) const
inline

Get the current system time

Returns
the current system time, as specified by the frame's attributes System, TimeOrigin, LTOffset, TimeScale, and Unit.
Exceptions
std::runtime_errorif the frame has a TimeScale value which cannot be converted to TAI (e.g. " angular" systems such as UT1, GMST, LMST and LAST).

Notes:

  • Resolution is one second.
  • This method assumes that the system time (returned by the C time() function) follows the POSIX standard, representing a continuous monotonic increasing count of SI seconds since the epoch 00:00:00 UTC 1 January 1970 AD (equivalent to TAI with a constant offset).
  • Any inaccuracy in the system clock will be reflected in the value returned by this function.

◆ getAlignTimeScale()

std::string ast::TimeFrame::getAlignTimeScale ( ) const
inline

Get AlignTimeScale: time scale in which to align TimeFrames.

◆ getLTOffset()

double ast::TimeFrame::getLTOffset ( ) const
inline

Get LTOffset: the offset of Local Time from UTC, in hours.

◆ getTimeOrigin()

double ast::TimeFrame::getTimeOrigin ( ) const
inline

Get TimeOrigin: the zero point for TimeFrame axis values.

◆ getTimeScale()

std::string ast::TimeFrame::getTimeScale ( ) const
inline

Get TimeScale: the timescale used by the TimeFrame.

◆ operator=() [1/2]

TimeFrame & ast::TimeFrame::operator= ( TimeFrame &&  )
default

◆ operator=() [2/2]

TimeFrame & ast::TimeFrame::operator= ( TimeFrame const &  )
delete

◆ setAlignTimeScale()

void ast::TimeFrame::setAlignTimeScale ( std::string const &  scale)
inline

Set AlignTimeScale: time scale in which to align TimeFrames.

◆ setLTOffset()

void ast::TimeFrame::setLTOffset ( double  offset)
inline

Set LTOffset: the offset of Local Time from UTC, in hours.

◆ setTimeOrigin()

void ast::TimeFrame::setTimeOrigin ( double  origin)
inline

Set TimeOrigin: the zero point for TimeFrame axis values.

◆ setTimeScale()

void ast::TimeFrame::setTimeScale ( std::string const &  scale)
inline

Set TimeScale: the timescale used by the TimeFrame.

Friends And Related Function Documentation

◆ Object

friend class Object
friend

The documentation for this class was generated from the following file: