ltl::FitsHeader Class Reference

Representation of a complete FITS header. Holds also header I/O methods. More...

Inherited by ltl::FitsIn, and ltl::FitsOut.

List of all members.

Public Member Functions

Adding new Cards



Shortcuts

Get (and set) values of mandatories and array keys via shortcuts.



Read Cards

Search the lists for card matching keyword and return requested instance.



Protected Member Functions

Parse Record string

The next 4 methods parse a complete 2880 char record into lists of ltl::FitsCards.



Parse Card String

These 2 functions parse a 80 char line card into an ltl::FitsCard.



Protected Attributes

Static Protected Attributes

Card Lists

Lists representing the FITS header structure.


Detailed Description

Representation of a complete FITS header. Holds also header I/O methods.


Member Typedef Documentation

typedef std::list<FitsCard *> ltl::FitsHeader::MandatoryList [protected]
typedef MandatoryList::iterator ltl::FitsHeader::MandatoryIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::NaxisList [protected]
typedef NaxisList::iterator ltl::FitsHeader::NaxisIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::ExtensionList [protected]
typedef ExtensionList::iterator ltl::FitsHeader::ExtensionIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::ObserveList [protected]
typedef ObserveList::iterator ltl::FitsHeader::ObserveIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::CommentList [protected]
typedef CommentList::iterator ltl::FitsHeader::CommentIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::HistoryList [protected]
typedef HistoryList::iterator ltl::FitsHeader::HistoryIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::BlankList [protected]
typedef BlankList::iterator ltl::FitsHeader::BlankIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::ArrayList [protected]
typedef ArrayList::iterator ltl::FitsHeader::ArrayIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::OtherList [protected]
typedef OtherList::iterator ltl::FitsHeader::OtherIter [protected]
typedef std::list<FitsCard *> ltl::FitsHeader::JunkList [protected]
typedef JunkList::iterator ltl::FitsHeader::JunkIter [protected]

Constructor & Destructor Documentation

ltl::FitsHeader::FitsHeader ( unsigned char *  inmemptr,
size_t  inmemlen,
const bool  quiet_please = false,
const bool  alljunk = false 
)

Construct from existing file.

ltl::FitsHeader::FitsHeader ( const std::string &  filename,
const bool  quiet_please = false,
const bool  alljunk = false 
)
ltl::FitsHeader::FitsHeader ( const FitsHeader other,
const bool  quiet_please = false,
const bool  alljunk = false 
)

Construct as copy from other.

virtual ltl::FitsHeader::~FitsHeader (  )  [virtual]

Destruct Object.

ltl::FitsHeader::FitsHeader (  )  [protected]

Empty constructor is protected!

ltl::FitsHeader::FitsHeader ( const std::string &  filename,
const bool  quiet_please,
const bool  alljunk,
const off_t  startoffset 
) [protected]

Construct extension from existing file.


Member Function Documentation

FitsHeader& ltl::FitsHeader::operator= ( const FitsHeader other  ) 

Copy values from other.

virtual void ltl::FitsHeader::describeSelf ( std::ostream &  os  )  [virtual]

Write Mandatories to os.

Reimplemented in ltl::FitsIn, and ltl::FitsOut.

std::string ltl::FitsHeader::adjustKeyword ( std::string  keyword  )  const

Return keyword trimmed (or expanded) to a width of 8 chars.

Trailing blanks are significant for FITS keywords. If you want to add missing trailing blanks or simply trim too long keywords you may want to use this method.

void ltl::FitsHeader::addCommentCard ( const std::string &  keyword,
const std::string &  comment 
)

Add a commentary card.

void ltl::FitsHeader::addHistory ( const std::string &  history  ) 

Add a history of arbitrary length.

void ltl::FitsHeader::addComment ( const std::string &  comment  ) 

Add a history of arbitrary length.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const std::string &  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add a string value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const char *  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add a char value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const bool  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add a boolean value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const int  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add an integer value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const long  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add an integer value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const float  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add a floating point value card.

void ltl::FitsHeader::addValueCard ( const std::string &  keyword,
const double  value,
const std::string  comment = "",
const bool  fixed = true 
)

Add a floating point value card.

int ltl::FitsHeader::eraseCard ( const std::string &  keyword  )  throw (FitsException)

Erase FITS card keyword.

Returns 0 on success, -1 on keyword not found.

Exceptions:
ltl::FitsException on forbidden erasures.
off_t ltl::FitsHeader::getDataOffset (  )  const

Return the byte offset within the file to the data segment.

int ltl::FitsHeader::getBitpix (  )  const

Return BITPIX setting.

int ltl::FitsHeader::getBytpix (  )  const

Return bytes per pixel, i.e. abs( bitpix_ ) / 8.

int ltl::FitsHeader::getNaxis (  )  const

Return NAXIS setting.

Referenced by ltl::getFitsMArray(), and ltl::insertFitsMArray().

int ltl::FitsHeader::getNaxis ( const int  i  )  const

Return width of i NAXIS.

double ltl::FitsHeader::getBscale (  )  const
double ltl::FitsHeader::getBzero (  )  const
void ltl::FitsHeader::setBscale ( const double  value  ) 

Set the BSCALE key to value.

void ltl::FitsHeader::setBzero ( const double  value  ) 

Set the BZERO key to value.

util::Region ltl::FitsHeader::getFullRegion (  )  const

Return a util::Region according to the NAXIS geometry.

Referenced by ltl::FitsIn::getDataArray(), ltl::FitsIn::readRegionArray(), and ltl::FitsOut::writeRegionArray().

off_t ltl::FitsHeader::getDataLength (  )  const

Return the size of the data segment in bytes.

Referenced by ltl::FitsIn::getDataArray(), ltl::FitsIn::readDataArray(), and ltl::FitsOut::writeDataArray().

std::string ltl::FitsHeader::getString ( const std::string &  keyword  )  const

Return string value of FITS key keyword.

bool ltl::FitsHeader::getBool ( const std::string &  keyword  )  const

Return boolean value of FITS key keyword.

long ltl::FitsHeader::getInt ( const std::string &  keyword  )  const

Return integer value of FITS key keyword.

double ltl::FitsHeader::getFloat ( const std::string &  keyword  )  const

Return floating point value of FITS key keyword.

bool ltl::FitsHeader::isFixed ( const std::string &  keyword  )  const

Indicate if value of FITS key keyword is of fixed type.

std::string ltl::FitsHeader::getComment ( const std::string &  keyword  )  const

Return comment of FITS key keyword.

std::string ltl::FitsHeader::getComment (  )  const

Return complete COMMENT.

std::string ltl::FitsHeader::getHistory (  )  const

Return complete HISTORY.

std::string ltl::FitsHeader::getValueAsString ( const std::string &  keyword  )  const

Return value of FITS key keyword as a string irrespective of its type.

std::string ltl::FitsHeader::writeHeader ( const bool  with_junk = false  ) 

Return a new valid FITS file format header.

void ltl::FitsHeader::readHeader ( const std::string &  filename,
const bool  alljunk = false,
unsigned char *  inmemptr = NULL,
size_t  inmemlen = 0 
) throw (FitsException) [protected]

Read and parse a FITS header from file.

std::string::size_type ltl::FitsHeader::parseRecord ( const std::string &  record,
const bool  alljunk = false 
) throw (FitsException) [protected]

Parse a FITS record and assign the cards to their proper lists.

Returns the length of the record or 0 if "END" was found.

Exceptions:
ltl::FitsException on error.
std::string::size_type ltl::FitsHeader::parseMandatory ( const std::string &  record  )  throw (FitsException) [protected]

Parse the mandatory keys of record.

Return offset to next non-mandatory card within record.

Exceptions:
ltl::FitsException on error.
std::string::size_type ltl::FitsHeader::parseNaxis ( const std::string &  record,
std::string::size_type  card_of_record = 0 
) [protected]

Parse cards until Naxis parameter is matched, returns card offset in record.

void ltl::FitsHeader::checkNaxis (  )  throw (FitsException) [protected]

Check the Naxis list, ltl::FitsException on error.

FitsCard* ltl::FitsHeader::parseCard ( const std::string &  card  )  const throw (FitsException) [protected]

Parse 80 char line into an ltl::FitsCard object.

std::string ltl::FitsHeader::getCardComment ( const std::string &  teststring  )  const throw (FitsException) [protected]

Return the comment of a 80 char line card remainder.

void ltl::FitsHeader::parseCommentToCardList ( const std::string &  keyword,
const std::string &  comment 
) [protected]

Parse and add a commentstring to its list.

Can be long, will be broken into lines)

void ltl::FitsHeader::addCommentCard ( FitsCard *  cardptr  )  throw (FitsException) [protected]

Add a commentary card to the correct list.

void ltl::FitsHeader::addJunkCard ( const std::string &  native_card  )  [protected]

Just split 80 char card into keyword + rest and push it on the junk list.

void ltl::FitsHeader::addJunkCard ( const std::string &  keyword,
const std::string &  comment 
) [protected]

Add a suitable trimmed junk card.

void ltl::FitsHeader::addJunkCard ( FitsCard *  cardptr  )  [protected]

Add a preexisting ltl::FitsCard to junk list.

void ltl::FitsHeader::addValueCard ( FitsCard *  cardptr  )  throw (FitsException) [protected]

Add a value holding card to its proper list.

If the card has a bad syntax it's put on the ltl::FitsHeader::junk_ list.

Exceptions:
ltl::FitsException on error.
void ltl::FitsHeader::clearCardList ( std::list< FitsCard * > &  the_list  )  [protected]

Clear a whole list of cards.

int ltl::FitsHeader::eraseCardFromList ( const std::string &  keyword,
std::list< FitsCard * > &  the_list 
) [protected]

Erase first ltl::FitsCard mathcing keyword from the_list.

Return -1 if keyword not found, otherwise 0.

int ltl::FitsHeader::eraseCardsFromJunkList ( const std::string &  keyword  )  [protected]

Erase all cards matching keyword from the ltl::FitsHeader::junk_ list.

Return the number of erased cards.

FitsCard * ltl::FitsHeader::findCardInList ( const std::string &  keyword,
const std::list< FitsCard * > &  the_list 
) const [protected]

Return pointer to card matching keyword in the_list.

Return NULL if no card is found.

Referenced by ltl::FitsBinTableIn::readColumn().

FitsCard * ltl::FitsHeader::getValueCard ( const std::string &  keyword  )  const throw (FitsException) [protected]

Return pointer to first card matching keyword on any non commentary list.

Exceptions:
ltl::FitsException on error, i.e. no matching card found.
std::string ltl::FitsHeader::writeCommentsOfList ( const std::list< FitsCard * > &  the_list  )  const [protected]

Return string holding new line broken comments of a whole list.

std::string ltl::FitsHeader::writeCardsOfList ( const std::list< FitsCard * > &  the_list  )  const [protected]

Return string holding FITS formatted cards of a list.

void ltl::FitsHeader::copy ( const FitsHeader other  )  [protected]

Copy header from other.

void ltl::FitsHeader::copyCardList ( std::list< FitsCard * > &  dest_list,
const std::list< FitsCard * > &  src_list 
) [protected]

Copy list of ltl::FitsCard.

void ltl::FitsHeader::testRegion ( const util::Region testreg  )  const throw (FitsException) [protected]

Test if region complies with FITS file geometry.


Member Data Documentation

bool ltl::FitsHeader::shutup_ [protected]

Boolean indicating if no error messages shall be written to stderr.

Pointer to array holding shortcuts to NAXIS keywords.

Referenced by ltl::FitsBinTableIn::readPColumn().

bool ltl::FitsHeader::extended_ [protected]

Shortcut indicating extension maybe present.

Shortcuts for calculating length of extension.

Shortcuts to FITS keywords BSCALE and BZERO.

Referenced by ltl::FitsIn::getNextPixel().

off_t ltl::FitsHeader::data_offset_ [protected]

Offset to first element of data segment,.

off_t ltl::FitsHeader::data_length_ [protected]

Length of data segment in bytes.

const FitsPhysical ltl::FitsHeader::PH_C [static, protected]

Structure holding physical FITS sizes.

const FitsKnownList ltl::FitsHeader::KNOWN [static, protected]

List of all known keywords and their types.

List holding all mandatory cards.

List holding all NAXIS# cards.

List holding EXTENSION cards.

Referenced by ltl::FitsBinTableIn::readColumn().

List holding reserved keywords cards which are not on other lists.

These are AUTHOR, BLOCKED, DATE, DATE-OBS, DATExxxx, EQUINOX, EPOCH, INSTRUME, OBJECT, OBSERVER, ORIGIN, REFERENC and TELESCOP. EPOCH will be copied to EQUINOX if EQUINOX not present.

List holding the COMMENT cards.

List holding the HISTORY cards.

List holding the blank cards.

List holding array keywords cards.

These are BSCALE, BZERO, BUNIT, BLANK, CTYPEn, CRPIXn, CRVALn, CRDELTn, CROTAn, DATAMIN and DATAMAX.

List holding all other cards.

List holding the cards not complying with FITS standard.


Generated on 19 Feb 2015 for LTL by  doxygen 1.6.1