22#ifndef ASTSHIM_SPECFRAME_H
23#define ASTSHIM_SPECFRAME_H
117 :
Frame(reinterpret_cast<AstFrame *>(astSpecFrame(
"%s",
options.c_str()))) {}
174 astGetRefPos(
getRawPtr(), NULL, &ret[0], &ret[1]);
275 return copyImpl<SpecFrame, AstSpecFrame>();
279 explicit SpecFrame(AstSpecFrame *rawptr) :
Frame(reinterpret_cast<AstFrame *>(rawptr)) {
282 os <<
"this is a " <<
getClassName() <<
", which is not a SpecFrame";
Frame is used to represent a coordinate system.
Abstract base class for all AST objects.
void setD(std::string const &attrib, double value)
Set the value of an attribute as a double.
double getD(std::string const &attrib) const
Get the value of an attribute as a double.
std::string const getC(std::string const &attrib) const
Get the value of an attribute as a string.
std::string getClassName() const
Get Class: the name of the class (e.g.
bool getB(std::string const &attrib) const
Get 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 setB(std::string const &attrib, bool value)
Set the value of an attribute as a bool.
AstObject const * getRawPtr() const
Get the raw AST pointer.
SkyFrame is a specialised form of Frame which describes celestial longitude/latitude coordinate syste...
A specialised form of one-dimensional Frame which represents various coordinate systems used to descr...
void setStdOfRest(std::string const &stdOfRest)
Set StdOfRest: standard of rest.
std::string getSourceVRF() const
Get SourceVRF: source velocity rest frame.
void setRefPos(double ra, double dec)
Set the reference position (RefRA and RefDec) from FK5 J2000 RA and Dec (radians).
bool getAlignSpecOffset() const
Get AlignSpecOffset: align SpecFrames using the offset coordinate system?
std::vector< double > getRefPos(SkyFrame const &frm) const
Get the reference position (specified by RefRA and RefDec) converted to the celestial coordinate syst...
std::string getRefRA() const
Get RefRA: right ascension of the source (FK5 J2000, "hh:mm:ss.s").
std::string getRefDec() const
Get RefDec: declination of the source (FK5 J2000, "dd:mm:ss.s").
SpecFrame & operator=(SpecFrame &&)=default
SpecFrame & operator=(SpecFrame const &)=delete
virtual std::shared_ptr< Object > copyPolymorphic() const override
Return a deep copy of this object.
SpecFrame(SpecFrame const &)=default
Copy constructor: make a deep copy.
double getRestFreq() const
Get RestFreq: rest frequency (GHz).
SpecFrame(SpecFrame &&)=default
void setSourceSys(std::string const &system)
Set SourceSys: source velocity spectral system.
void setSourceVel(double vel)
Set SourceVel: source velocity (in the system specified by SourceSys).
void setRefPos(SkyFrame const &frm, double lon, double lat)
Set the reference position (RefRA and RefDec) using axis values (in radians) supplied within the cele...
SpecFrame(std::string const &options="")
Construct a SpecFrame.
std::vector< double > getRefPos() const
Return the reference position (specified by RefRA and RefDec) as FK5 J2000 RA, Dec (radians).
void setAlignStdOfRest(std::string const &stdOfRest)
Set AlignStdOfRest: standard of rest in which to align SpecFrames.
double getSourceVel() const
Get SourceVel: source velocity (in the system specified by SourceSys).
void setRefRA(std::string const &refRA)
Set RefRA: right ascension of the source (FK5 J2000, "hh:mm:ss.s").
std::string getAlignStdOfRest() const
Get AlignStdOfRest: standard of rest in which to align SpecFrames.
std::string getStdOfRest() const
Get StdOfRest: standard of rest.
std::shared_ptr< SpecFrame > copy() const
Return a deep copy of this object.
void setRestFreq(double freq)
Set RestFreq: rest frequency in GHz.
void setSourceVRF(std::string const &vrf)
Set SourceVRF: source velocity rest frame.
SpecFrame(AstSpecFrame *rawptr)
Construct a SpecFrame from a raw AST pointer.
void setRefDec(std::string const &refDec)
Set RefDec: declination of the source (FK5 J2000, "dd:mm:ss.s").
double getSpecOrigin() const
Get SpecOrigin: the zero point for SpecFrame axis values.
void setSpecOrigin(double origin)
Set SpecOrigin: the zero point for SpecFrame axis values.
void setAlignSpecOffset(bool align)
Set AlignSpecOffset: align SpecFrames using the offset coordinate system?
std::string getSourceSys() const
Get SourceSys: source velocity spectral system.
void setRestFreq(std::string const &freq)
Set RestFreq: rest frequency in user-specified units.
void astBadToNan(std::vector< double > &p)
Replace AST__BAD with a quiet NaN in a vector.
AST wrapper classes and functions.
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Throw std::runtime_error if AST's state is bad.