lsst.astshim  21.0.0-2-g45278ab+64c1bc5aa5
Public Member Functions | Protected Member Functions | Friends | List of all members
ast::SkyFrame Class Reference

#include <SkyFrame.h>

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

Public Member Functions

 SkyFrame (std::string const &options="")
 
virtual ~SkyFrame ()
 
 SkyFrame (SkyFrame const &)=default
 Copy constructor: make a deep copy. More...
 
 SkyFrame (SkyFrame &&)=default
 
SkyFrameoperator= (SkyFrame const &)=delete
 
SkyFrameoperator= (SkyFrame &&)=default
 
std::shared_ptr< SkyFramecopy () const
 Return a deep copy of this object. More...
 
bool getAlignOffset () const
 Get AlignOffset: align SkyFrames using the offset coordinate system? More...
 
bool getAsTime (int axis) const
 Get AsTime(axis) for one axis: format celestial coordinates as times? More...
 
double getEquinox () const
 Get Equinox: epoch of the mean equinox. More...
 
bool getIsLatAxis (int axis) const
 Get IsLatAxis(axis) for one axis: is the specified axis the latitude axis? More...
 
bool getIsLonAxis (int axis) const
 Get IsLonAxis(axis) for one axis: is the specified axis the longitude axis? More...
 
int getLatAxis () const
 Get LatAxis: index of the latitude axis. More...
 
int getLonAxis () const
 Get LonAxis: index of the longitude axis. More...
 
bool getNegLon () const
 Get NegLon: display longitude values in the range [-pi,pi]? More...
 
std::string getProjection () const
 Get Projection: sky projection description. More...
 
std::vector< double > getSkyRef () const
 
std::string getSkyRefIs () const
 Get SkyRefIs: selects the nature of the offset coordinate system. More...
 
std::vector< double > getSkyRefP () const
 
double getSkyTol () const
 Get SkyTol: smallest significant shift in sky coordinates. More...
 
void setAlignOffset (bool alignOffset)
 Set AlignOffset: align SkyFrames using the offset coordinate system? More...
 
void setAsTime (int axis, bool asTime)
 Set AsTime(axis) for one axis: format celestial coordinates as times? More...
 
void setEquinox (double equinox)
 Set Equinox: epoch of the mean equinox. More...
 
void setNegLon (bool negLon)
 Set NegLon: display longitude values in the range [-pi,pi]? More...
 
void setProjection (std::string const &projection)
 Set Projection: sky projection description. More...
 
void setSkyRef (std::vector< double > const &skyRef)
 Set SkyRef: position defining location of the offset coordinate system. More...
 
void setSkyRefIs (std::string const &skyRefIs)
 Set SkyRefIs: selects the nature of the offset coordinate system. More...
 
void setSkyRefP (std::vector< double > const &skyRefP)
 Set SkyRefP: position defining orientation of the offset coordinate system. More...
 
void setSkyTol (double skyTol)
 Set SkyTol: smallest significant shift in sky coordinates. More...
 
std::shared_ptr< MappingskyOffsetMap ()
 
- 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
 
 SkyFrame (AstSkyFrame *rawptr)
 Construct a SkyFrame 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

SkyFrame is a specialised form of Frame which describes celestial longitude/latitude coordinate systems.

The particular celestial coordinate system to be represented is specified by setting the SkyFrame's System attribute (currently, the default is ICRS) qualified, as necessary, by a mean Equinox value and/or an Epoch.

For each of the supported celestial coordinate systems, a SkyFrame can apply an optional shift of origin to create a coordinate system representing offsets within the celestial coordinate system from some specified point. This offset coordinate system can also be rotated to define new longitude and latitude axes. See attributes SkyRef, SkyRefIs and SkyRefP.

All the coordinate values used by a SkyFrame are in radians. These may be formatted in more conventional ways for display by using format.

Attributes

SkyFrame provides the following attributes, in addition to those provided by Frame, Mapping and Object

Constructor & Destructor Documentation

◆ SkyFrame() [1/4]

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

Construct a SkyFrame

Parameters
[in]optionsString containing an optional comma-separated list of attribute assignments to be used for initialising the new SkyFrame. The syntax used is identical to that for set.

Examples

  • auto auto = astSkyFrame("")

    Creates a SkyFrame to describe the default ICRS celestial coordinate system.

  • auto auto = astSkyFrame("System = FK5, Equinox = J2005, Digits = 10")

    Creates a SkyFrame to describe the FK5 celestial coordinate system, with a mean Equinox oc Because especially accurate coordinates will be used, additional precision (10 digits) has been requested. This will be used when coordinate values are formatted for display.

  • auto auto = astSkyFrame("System = FK4, Equinox = 1955-sep-2")

    Creates a SkyFrame to describe the old FK4 celestial coordinate system. A default Epoch value (B1950.0) is used, but the mean Equinox value is given explicitly as "1955-sep-2".

  • auto auto = astSkyFrame("System = GAPPT, Epoch = J2000")

    Creates a SkyFrame to describe the Geocentric Apparent celestial coordinate system.

Notes

  • Currently, the default celestial coordinate system is ICRS. However, this default may change in future as new astrometric standards evolve. The intention is to track the most modern appropriate standard. For this reason, you should use the default only if this is what you intend (and can tolerate any associated slight change in behaviour with future versions of this function). If you intend to use the ICRS system indefinitely then you should specify it explicitly using an options value of System=ICRS.
  • Whichever celestial coordinate system is represented, it will have two axes. The first of these will be the longitude axis and the second will be the latitude axis. This order can be changed using permAxes if required.
  • When conversion between two SkyFrames is requested (as when supplying SkyFrames to convert), account will be taken of the nature of the celestial coordinate systems they represent, together with any qualifying mean Equinox or Epoch values, etc. The AlignSystem attribute will also be taken into account. The results will therefore fully reflect the relationship between positions on the sky measured in the two systems.

◆ ~SkyFrame()

virtual ast::SkyFrame::~SkyFrame ( )
inlinevirtual

◆ SkyFrame() [2/4]

ast::SkyFrame::SkyFrame ( SkyFrame const &  )
default

Copy constructor: make a deep copy.

◆ SkyFrame() [3/4]

ast::SkyFrame::SkyFrame ( SkyFrame &&  )
default

◆ SkyFrame() [4/4]

ast::SkyFrame::SkyFrame ( AstSkyFrame *  rawptr)
inlineexplicitprotected

Construct a SkyFrame from a raw AST pointer.

Member Function Documentation

◆ copy()

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

Return a deep copy of this object.

◆ copyPolymorphic()

virtual std::shared_ptr<Object> ast::SkyFrame::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.

◆ getAlignOffset()

bool ast::SkyFrame::getAlignOffset ( ) const
inline

Get AlignOffset: align SkyFrames using the offset coordinate system?

◆ getAsTime()

bool ast::SkyFrame::getAsTime ( int  axis) const
inline

Get AsTime(axis) for one axis: format celestial coordinates as times?

◆ getEquinox()

double ast::SkyFrame::getEquinox ( ) const
inline

Get Equinox: epoch of the mean equinox.

◆ getIsLatAxis()

bool ast::SkyFrame::getIsLatAxis ( int  axis) const
inline

Get IsLatAxis(axis) for one axis: is the specified axis the latitude axis?

◆ getIsLonAxis()

bool ast::SkyFrame::getIsLonAxis ( int  axis) const
inline

Get IsLonAxis(axis) for one axis: is the specified axis the longitude axis?

◆ getLatAxis()

int ast::SkyFrame::getLatAxis ( ) const
inline

Get LatAxis: index of the latitude axis.

◆ getLonAxis()

int ast::SkyFrame::getLonAxis ( ) const
inline

Get LonAxis: index of the longitude axis.

◆ getNegLon()

bool ast::SkyFrame::getNegLon ( ) const
inline

Get NegLon: display longitude values in the range [-pi,pi]?

◆ getProjection()

std::string ast::SkyFrame::getProjection ( ) const
inline

Get Projection: sky projection description.

◆ getSkyRef()

std::vector<double> ast::SkyFrame::getSkyRef ( ) const
inline

Get SkyRef for both axes: position defining location of the offset coordinate system.

◆ getSkyRefIs()

std::string ast::SkyFrame::getSkyRefIs ( ) const
inline

Get SkyRefIs: selects the nature of the offset coordinate system.

◆ getSkyRefP()

std::vector<double> ast::SkyFrame::getSkyRefP ( ) const
inline

Get SkyRefP for both axes: position defining orientation of the offset coordinate system.

◆ getSkyTol()

double ast::SkyFrame::getSkyTol ( ) const
inline

Get SkyTol: smallest significant shift in sky coordinates.

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ setAlignOffset()

void ast::SkyFrame::setAlignOffset ( bool  alignOffset)
inline

Set AlignOffset: align SkyFrames using the offset coordinate system?

◆ setAsTime()

void ast::SkyFrame::setAsTime ( int  axis,
bool  asTime 
)
inline

Set AsTime(axis) for one axis: format celestial coordinates as times?

◆ setEquinox()

void ast::SkyFrame::setEquinox ( double  equinox)
inline

Set Equinox: epoch of the mean equinox.

◆ setNegLon()

void ast::SkyFrame::setNegLon ( bool  negLon)
inline

Set NegLon: display longitude values in the range [-pi,pi]?

◆ setProjection()

void ast::SkyFrame::setProjection ( std::string const &  projection)
inline

Set Projection: sky projection description.

◆ setSkyRef()

void ast::SkyFrame::setSkyRef ( std::vector< double > const &  skyRef)
inline

Set SkyRef: position defining location of the offset coordinate system.

◆ setSkyRefIs()

void ast::SkyFrame::setSkyRefIs ( std::string const &  skyRefIs)
inline

Set SkyRefIs: selects the nature of the offset coordinate system.

◆ setSkyRefP()

void ast::SkyFrame::setSkyRefP ( std::vector< double > const &  skyRefP)
inline

Set SkyRefP: position defining orientation of the offset coordinate system.

◆ setSkyTol()

void ast::SkyFrame::setSkyTol ( double  skyTol)
inline

Set SkyTol: smallest significant shift in sky coordinates.

◆ skyOffsetMap()

std::shared_ptr<Mapping> ast::SkyFrame::skyOffsetMap ( )
inline

Get a sky offset map

Get a Mapping in which the forward transformation transforms a position in the coordinate system given by the System attribute of the supplied SkyFrame, into the offset coordinate system specified by the SkyRef, SkyRefP and SkyRefIs attributes of the sky frame. A UnitMap is returned if the sky frame does not define an offset coordinate system.

Friends And Related Function Documentation

◆ Object

friend class Object
friend

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