22#ifndef ASTSHIM_FITSCHAN_H
23#define ASTSHIM_FITSCHAN_H
214 explicit FitsChan(
Stream &stream, std::string
const &options =
"");
366 std::complex<double> defval = {0, 0})
const;
387 FoundValue<std::string>
getFitsCN(std::string
const &name =
"", std::string defval =
"")
const;
406 FoundValue<double>
getFitsF(std::string
const &name =
"",
double defval = 0)
const;
425 FoundValue<int>
getFitsI(std::string
const &name =
"",
int defval = 0)
const;
444 FoundValue<bool>
getFitsL(std::string
const &name =
"",
bool defval =
false)
const;
467 FoundValue<std::string>
getFitsS(std::string
const &name =
"", std::string defval =
"")
const;
644 void putFits(std::string
const &card,
bool overwrite) {
645 astPutFits(
getRawPtr(), card.c_str(), overwrite);
696 void setFitsCF(std::string
const &name, std::complex<double> value, std::string
const &comment =
"",
697 bool overwrite =
false) {
699 astSetFitsCF(
getRawPtr(), name.c_str(),
reinterpret_cast<double(&)[2]
>(value), comment.c_str(),
725 void setFitsCM(std::string
const &comment,
bool overwrite =
false) {
726 astSetFitsCM(
getRawPtr(), comment.c_str(), overwrite);
756 void setFitsCN(std::string
const &name, std::string value, std::string
const &comment =
"",
757 bool overwrite =
false) {
758 astSetFitsCN(
getRawPtr(), name.c_str(), value.c_str(), comment.c_str(), overwrite);
786 void setFitsF(std::string
const &name,
double value, std::string
const &comment =
"",
787 bool overwrite =
false) {
788 astSetFitsF(
getRawPtr(), name.c_str(), value, comment.c_str(), overwrite);
816 void setFitsI(std::string
const &name,
int value, std::string
const &comment =
"",
817 bool overwrite =
false) {
818 astSetFitsI(
getRawPtr(), name.c_str(), value, comment.c_str(), overwrite);
846 void setFitsL(std::string
const &name,
bool value, std::string
const &comment =
"",
847 bool overwrite =
false) {
848 astSetFitsL(
getRawPtr(), name.c_str(), value, comment.c_str(), overwrite);
884 void setFitsS(std::string
const &name, std::string value, std::string
const &comment =
"",
885 bool overwrite =
false) {
886 astSetFitsS(
getRawPtr(), name.c_str(), value.c_str(), comment.c_str(), overwrite);
915 void setFitsU(std::string
const &name, std::string
const &comment =
"",
bool overwrite =
false) {
916 astSetFitsU(
getRawPtr(), name.c_str(), comment.c_str(), overwrite);
1039 auto *rawKeyMap =
reinterpret_cast<AstObject *
>(astGetTables(
getRawPtr()));
1042 throw std::runtime_error(
"getTables failed (returned a null keymap)");
1044 return Object::fromAstObject<KeyMap>(rawKeyMap,
true);
1051 explicit FitsChan(AstFitsChan *rawFitsChan) :
Channel(reinterpret_cast<AstChannel *>(rawFitsChan)) {
1053 std::ostringstream os;
1054 os <<
"this is a " <<
getClassName() <<
", which is not a FitsChan";
1055 throw std::invalid_argument(os.str());
KeyMap warnings() const
Definition: Channel.cc:67
Definition: FitsChan.h:202
bool getDefB1950() const
Definition: FitsChan.h:522
int getNKey() const
Definition: FitsChan.h:560
bool getCDMatrix() const
Definition: FitsChan.h:512
std::shared_ptr< KeyMap > getTables() const
Definition: FitsChan.h:1038
std::string getCardComm() const
Definition: FitsChan.h:491
FitsChan(FitsChan const &)=delete
void setFitsF(std::string const &name, double value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:786
void setIwc(bool iwcs)
Definition: FitsChan.h:967
FitsChan & operator=(FitsChan &&)=default
std::string getWarnings() const
Definition: FitsChan.h:588
void setFitsDigits(int digits)
Definition: FitsChan.h:957
FitsChan(FitsChan &&)=default
FitsKeyState testFits(std::string const &name="") const
Definition: FitsChan.cc:132
std::vector< std::string > getAllCardNames()
Definition: FitsChan.cc:106
int getPolyTan() const
Definition: FitsChan.h:582
FoundValue< std::string > findFits(std::string const &name, bool inc)
Definition: FitsChan.cc:124
FoundValue< std::string > getFitsS(std::string const &name="", std::string defval="") const
Definition: FitsChan.cc:98
void retainFits()
Definition: FitsChan.h:674
std::string getEncoding() const
Definition: FitsChan.h:528
void setFitsS(std::string const &name, std::string value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:884
void setFitsI(std::string const &name, int value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:816
virtual ~FitsChan()
Definition: FitsChan.cc:51
void setCard(int ind)
Definition: FitsChan.h:1036
void putFits(std::string const &card, bool overwrite)
Definition: FitsChan.h:644
FoundValue< bool > getFitsL(std::string const &name="", bool defval=false) const
Definition: FitsChan.cc:91
void purgeWcs()
Definition: FitsChan.h:595
std::string getFitsAxisOrder() const
Definition: FitsChan.h:534
int getCard() const
Definition: FitsChan.h:486
void showFits() const
Definition: FitsChan.h:1000
void clearCard()
Rewind the card index to the beginning.
Definition: FitsChan.h:1031
void setCarLin(bool cdMatrix)
Definition: FitsChan.h:923
void setFitsAxisOrder(std::string const &order)
Definition: FitsChan.h:951
std::string getAllWarnings() const
Definition: FitsChan.h:481
void setClean(bool clean)
Definition: FitsChan.h:934
bool getSipOK() const
Definition: FitsChan.h:565
bool getSipReplace() const
Definition: FitsChan.h:571
std::string getCardName() const
Definition: FitsChan.h:496
void readFits()
Definition: FitsChan.h:661
void putCards(std::string const &cards)
Definition: FitsChan.h:616
FitsChan(Stream &stream, std::string const &options="")
Definition: FitsChan.cc:44
void setFitsCN(std::string const &name, std::string value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:756
void setPolyTan(int polytan)
Definition: FitsChan.h:989
FoundValue< int > getFitsI(std::string const &name="", int defval=0) const
Definition: FitsChan.cc:84
void setFitsCM(std::string const &comment, bool overwrite=false)
Definition: FitsChan.h:725
CardType getCardType() const
Definition: FitsChan.h:501
bool getCarLin() const
Definition: FitsChan.h:506
int getTabOK() const
Definition: FitsChan.h:576
void setFitsTol(double tol)
Definition: FitsChan.h:962
bool getIwc() const
Definition: FitsChan.h:550
FitsChan & operator=(FitsChan const &)=delete
FitsChan(AstFitsChan *rawFitsChan)
Definition: FitsChan.h:1051
void setWarnings(std::string const &warnings)
Definition: FitsChan.h:995
void writeFits()
Definition: FitsChan.h:1025
int getNCard() const
Definition: FitsChan.h:555
int getFitsDigits() const
Definition: FitsChan.h:540
FoundValue< std::complex< double > > getFitsCF(std::string const &name="", std::complex< double > defval={0, 0}) const
Definition: FitsChan.cc:59
void setTabOK(int tabOK)
Definition: FitsChan.h:983
FoundValue< double > getFitsF(std::string const &name="", double defval=0) const
Definition: FitsChan.cc:77
void setSipReplace(bool replace)
Definition: FitsChan.h:978
void setFitsU(std::string const &name, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:915
bool getClean() const
Definition: FitsChan.h:517
void emptyFits()
Definition: FitsChan.h:244
void setFitsL(std::string const &name, bool value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:846
void setSipOK(bool sipOK)
Definition: FitsChan.h:972
FoundValue< std::string > getFitsCN(std::string const &name="", std::string defval="") const
Definition: FitsChan.cc:69
void setEncoding(std::string const &encoding)
Definition: FitsChan.h:945
void setCDMatrix(bool cdMatrix)
Definition: FitsChan.h:929
void delFits()
Definition: FitsChan.h:230
double getFitsTol() const
Definition: FitsChan.h:545
void setFitsCF(std::string const &name, std::complex< double > value, std::string const &comment="", bool overwrite=false)
Definition: FitsChan.h:696
void setDefB1950(bool defB1950)
Definition: FitsChan.h:939
Definition: FitsChan.h:69
FoundValue()
Default constructor: found false, value is default-constructed.
Definition: FitsChan.h:80
T value
The found value; ignore if found is false.
Definition: FitsChan.h:82
FoundValue(bool found, T const &value)
Definition: FitsChan.h:77
bool found
Was the value found?
Definition: FitsChan.h:81
void setD(std::string const &attrib, double value)
Definition: Object.h:476
double getD(std::string const &attrib) const
Definition: Object.h:374
std::string const getC(std::string const &attrib) const
Definition: Object.h:361
std::string getClassName() const
Definition: Object.h:139
void setI(std::string const &attrib, int value)
Definition: Object.h:500
bool getB(std::string const &attrib) const
Definition: Object.h:348
void clear(std::string const &attrib)
Definition: Object.h:119
int getI(std::string const &attrib) const
Definition: Object.h:400
void setC(std::string const &attrib, std::string const &value)
Definition: Object.h:464
void setB(std::string const &attrib, bool value)
Definition: Object.h:452
AstObject const * getRawPtr() const
Definition: Object.h:292
AST wrapper classes and functions.
Definition: attributes_channel.dox:1
CardType
Definition: FitsChan.h:49
@ NOTYPE
card does not exist (card number invalid)
@ COMPLEXI
complex integer
@ COMPLEXF
complex floating point
@ COMMENT
card is a comment-style card with no "=" (COMMENT, HISTORY, ...)
void assertOK(AstObject *rawPtr1=nullptr, AstObject *rawPtr2=nullptr)
Definition: base.cc:49
FitsKeyState
Definition: FitsChan.h:40
@ NOVALUE
keyword is present, but has no value
@ PRESENT
keyword is present and has a value
@ ABSENT
keyword is not present