LTL  2.0.x
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ltl::FitsBinTableIn Class Reference

Class to read binary table from FITS extensions. More...

Inherits ltl::BinTable, and ltl::FitsIn.

Public Member Functions

 FitsBinTableIn (const FitsIn &other)
 
template<class T , int N>
MArray< T, N > readColumn (const string &ttype, const int startrow=1, const int endrow=0)
 
template<class T , int N>
MArray< T, N > readColumn (const int colno, const int startrow=1, const int endrow=0)
 
template<class T , int N, int BITPIX>
MArray< T, N > readColumn (const int colno, const int startrow=1, int endrow=0)
 
template<class T , int N, int BITPIX>
MArray< T, N > readPColumn (const int colno, const int rowno=1)
 
int getTfields (const int colno) const
 
char getTformt (const int colno) const
 
size_t getTformr (const int colno) const
 

Protected Attributes

int tfields_
 
char * tformT_
 
size_t * tformr_
 
off_t * tcoloff_
 
vector< string > tforma_
 
doubletscal_
 
doubletzero_
 
off_t theap_
 

Private Member Functions

void freeData ()
 Unmap data segment, free address space. More...
 
virtual void describeSelf (std::ostream &os)
 Write FITS file geometry and class interna to out stream. More...
 
FitsHeader getHeader () const
 Return copy of FITS header. More...
 
virtual FitsIn getNextExtension ()
 Return input object for next FITS extension when present. More...
 
template<class T >
FitsInoperator>> (FitsIn &fitsfile, T &a)
 
template<class T , int N>
FitsInoperator>> (FitsIn &fitsfile, MArray< T, N > &a)
 
template<>
FitsInoperator>> (FitsIn &infile, FitsOut &outfile)
 
std::string adjustKeyword (std::string keyword) const
 Return keyword trimmed (or expanded) to a width of 8 chars. More...
 
void addCommentCard (FitsCard *cardptr) throw (FitsException)
 Add a commentary card to the correct list. More...
 
void addValueCard (FitsCard *cardptr) throw (FitsException)
 Add a value holding card to its proper list. More...
 
int eraseCard (const std::string &keyword) throw (FitsException)
 Erase FITS card keyword. More...
 
off_t getDataOffset () const
 Return the byte offset within the file to the data segment. More...
 
off_t getDataLength () const
 Return the size of the data segment in bytes. More...
 
std::string writeHeader (const bool with_junk=false)
 Return a new valid FITS file format header. More...
 
void readHeader (const std::string &filename, const bool alljunk=false, unsigned char *inmemptr=NULL, size_t inmemlen=0) throw (FitsException)
 Read and parse a FITS header from file. More...
 
void parseCommentToCardList (const std::string &keyword, const std::string &comment)
 Parse and add a commentstring to its list. More...
 
void addJunkCard (const std::string &native_card)
 Just split 80 char card into keyword + rest and push it on the junk list. More...
 
void addJunkCard (const std::string &keyword, const std::string &comment)
 Add a suitable trimmed junk card. More...
 
void addJunkCard (FitsCard *cardptr)
 Add a preexisting ltl::FitsCard to junk list. More...
 
void clearCardList (std::list< FitsCard * > &the_list)
 Clear a whole list of cards. More...
 
int eraseCardFromList (const std::string &keyword, std::list< FitsCard * > &the_list)
 Erase first ltl::FitsCard mathcing keyword from the_list. More...
 
int eraseCardsFromJunkList (const std::string &keyword)
 Erase all cards matching keyword from the ltl::FitsHeader::junk_ list. More...
 
FitsCard * findCardInList (const std::string &keyword, const std::list< FitsCard * > &the_list) const
 Return pointer to card matching keyword in the_list. More...
 
FitsCard * getValueCard (const std::string &keyword) const throw (FitsException)
 Return pointer to first card matching keyword on any non commentary list. More...
 
std::string writeCommentsOfList (const std::list< FitsCard * > &the_list) const
 Return string holding new line broken comments of a whole list. More...
 
std::string writeCardsOfList (const std::list< FitsCard * > &the_list) const
 Return string holding FITS formatted cards of a list. More...
 
void copy (const FitsHeader &other)
 Copy header from other. More...
 
void copyCardList (std::list< FitsCard * > &dest_list, const std::list< FitsCard * > &src_list)
 Copy list of ltl::FitsCard. More...
 
void testRegion (const util::Region &testreg) const throw (FitsException)
 Test if region complies with FITS file geometry. More...
 
string getFilename () const
 Return ltl::FitsIO::filename_ . More...
 
unsigned char * streampos () const
 Return ltl::FitsIO::fitsstreamptr_ . More...
 
FitsOutoperator<< (FitsOut &outfile, FitsIn &infile)
 
FitsOutoperator<< (FitsOut &outfile, FitsExtensionIn &infile)
 
FitsExtensionOutoperator<< (FitsExtensionOut &outfile, const emptyData_ &)
 
FitsExtensionOutoperator<< (FitsExtensionOut &outfile, FitsIn &infile)
 
unsigned char * begin ()
 
unsigned char * end ()
 
void resetPosition ()
 
void setPosition (off_t offset)
 
ptrdiff_t getPosition ()
 
void setRegion (const util::Region &fregion) throw (FitsException)
 Select region of interest in data segment. More...
 
void resetRegion ()
 Reset region of interest in data segment to full region. More...
 
template<class T >
T * getRegionArray (const util::Region &reg)
 Return array holding preselected region of data segment. More...
 
template<class T >
void readRegionArray (T &i, const util::Region &reg)
 Fill container via iterator i with region reg of data segment. More...
 
template<class T >
void readRegionArray (T &i)
 Fill container via iterator i with preselected region of data segment. More...
 
template<class T >
void readDataArray (T &i)
 Fill container via iterator i with data segment. More...
 
template<class T >
T * getDataArray (const T)
 Return array holding data segment. More...
 
template<class T >
getNextPixel (const T)
 Read next pixel of datasegment with per pixel read. More...
 
Adding new Cards
void addCommentCard (const std::string &keyword, const std::string &comment)
 Add a commentary card. More...
 
void addHistory (const std::string &history)
 Add a history of arbitrary length. More...
 
void addComment (const std::string &comment)
 Add a history of arbitrary length. More...
 
void addValueCard (const std::string &keyword, const std::string &value, const std::string comment="", const bool fixed=true)
 Add a string value card. More...
 
void addValueCard (const std::string &keyword, const char *value, const std::string comment="", const bool fixed=true)
 Add a char value card. More...
 
void addValueCard (const std::string &keyword, const bool value, const std::string comment="", const bool fixed=true)
 Add a boolean value card. More...
 
void addValueCard (const std::string &keyword, const int value, const std::string comment="", const bool fixed=true)
 Add an integer value card. More...
 
void addValueCard (const std::string &keyword, const long value, const std::string comment="", const bool fixed=true)
 Add an integer value card. More...
 
void addValueCard (const std::string &keyword, const float value, const std::string comment="", const bool fixed=true)
 Add a floating point value card. More...
 
void addValueCard (const std::string &keyword, const double value, const std::string comment="", const bool fixed=true)
 Add a floating point value card. More...
 
Shortcuts

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

int getBitpix () const
 Return BITPIX setting. More...
 
int getBytpix () const
 Return bytes per pixel, i.e. abs( bitpix_ ) / 8. More...
 
int getNaxis () const
 Return NAXIS setting. More...
 
int getNaxis (const int i) const
 Return width of i NAXIS. More...
 
double getBscale () const
 Return BSCALE setting. More...
 
double getBzero () const
 Return BZERO setting. More...
 
void setBscale (const double value)
 Set the BSCALE key to value. More...
 
void setBzero (const double value)
 Set the BZERO key to value. More...
 
util::Region getFullRegion () const
 Return a util::Region according to the NAXIS geometry. More...
 
Read Cards

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

std::string getString (const std::string &keyword) const
 Return string value of FITS key keyword. More...
 
bool getBool (const std::string &keyword) const
 Return boolean value of FITS key keyword. More...
 
long getInt (const std::string &keyword) const
 Return integer value of FITS key keyword. More...
 
double getFloat (const std::string &keyword) const
 Return floating point value of FITS key keyword. More...
 
bool isFixed (const std::string &keyword) const
 Indicate if value of FITS key keyword is of fixed type. More...
 
std::string getComment (const std::string &keyword) const
 Return comment of FITS key keyword. More...
 
std::string getComment () const
 Return complete COMMENT. More...
 
std::string getHistory () const
 Return complete HISTORY. More...
 
std::string getValueAsString (const std::string &keyword) const
 Return value of FITS key keyword as a string irrespective of its type. More...
 
Parse Record string

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

std::string::size_type parseRecord (const std::string &record, const bool alljunk=false) throw (FitsException)
 Parse a FITS record and assign the cards to their proper lists. More...
 
std::string::size_type parseMandatory (const std::string &record) throw (FitsException)
 Parse the mandatory keys of record. More...
 
std::string::size_type parseNaxis (const std::string &record, std::string::size_type card_of_record=0)
 Parse cards until Naxis parameter is matched, returns card offset in record. More...
 
void checkNaxis () throw (FitsException)
 Check the Naxis list, ltl::FitsException on error. More...
 
Parse Card String

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

FitsCard * parseCard (const std::string &card) const throw (FitsException)
 Parse 80 char line into an ltl::FitsCard object. More...
 
std::string getCardComment (const std::string &teststring) const throw (FitsException)
 Return the comment of a 80 char line card remainder. More...
 
size_t getRegionLength () const
 Get number of pixels in selected region. More...
 
size_t getRegionLength (const size_t dim) const
 Get length along dimension dim of selected region in pixels. More...
 
int getRegionStart (const size_t dim) const
 Get start pixel coordinate in dimension dim of selected region. More...
 
int getRegionEnd (const size_t dim) const
 Get end pixel coordinate in dimension dim of selected region. More...
 
util::Region getRegion () const
 Return copy of selected region. More...
 

Private Attributes

bool ignore_hd_
 Boolean indicating if header is not parsed. More...
 
bool bint_
 Boolean indicating BSCALE and BZERO being integer. More...
 
bool shutup_
 Boolean indicating if no error messages shall be written to stderr. More...
 
int bitpix_
 Shortcuts to FITS keywords BITPIX, abs(BITPIX)/8 and NAXIS. More...
 
int bytpix_
 
int naxis_
 
intnaxis_array_
 Pointer to array holding shortcuts to NAXIS keywords. More...
 
bool extended_
 Shortcut indicating extension maybe present. More...
 
int pcount_
 Shortcuts for calculating length of extension. More...
 
int gcount_
 
double bscale_
 Shortcuts to FITS keywords BSCALE and BZERO. More...
 
double bzero_
 
off_t data_offset_
 Offset to first element of data segment,. More...
 
off_t data_length_
 Length of data segment in bytes. More...
 
string filename_
 Filename associated with FitsIn/Out object. More...
 
unsigned char * fitsinmemptr_
 Pointer to in-memory fits file image. More...
 
size_t fitsinmemlength_
 Length of in-memory fits file. More...
 
unsigned char ** ptrfitsinmemptr_
 In-memory fits file image allocation data. More...
 
size_t * ptrfitsinmemlength_
 
unsigned char * fitsdataptr_
 Pointer to data segment map. More...
 
unsigned char * fitsstreamptr_
 Pointer to actual byte in data segment for per pixel I/O. More...
 
size_t fitsmaplength_
 Length of data segment map, multiple of page size. More...
 
util::Regionregionptr_
 Pointer to Region (if set). More...
 
off_t fitsregionoffset_
 Offset to determine first pixel of selected region. More...
 

Static Private Attributes

static const FitsPhysical PH_C
 Structure holding physical FITS sizes. More...
 
static const FitsKnownList KNOWN
 List of all known keywords and their types. More...
 

Card Lists

Lists representing the FITS header structure.

MandatoryList mandatory_
 List holding all mandatory cards. More...
 
NaxisList naxis_i_
 List holding all NAXIS# cards. More...
 
ExtensionList extension_
 List holding EXTENSION cards. More...
 
ObserveList observe_
 List holding reserved keywords cards which are not on other lists. More...
 
CommentList comment_
 List holding the COMMENT cards. More...
 
HistoryList history_
 List holding the HISTORY cards. More...
 
BlankList blank_
 List holding the blank cards. More...
 
ArrayList array_
 List holding array keywords cards. More...
 
OtherList otherkeys_
 List holding all other cards. More...
 
JunkList junk_
 List holding the cards not complying with FITS standard. More...
 
typedef std::list< FitsCard * > MandatoryList
 
typedef MandatoryList::iterator MandatoryIter
 
typedef std::list< FitsCard * > NaxisList
 
typedef NaxisList::iterator NaxisIter
 
typedef std::list< FitsCard * > ExtensionList
 
typedef ExtensionList::iterator ExtensionIter
 
typedef std::list< FitsCard * > ObserveList
 
typedef ObserveList::iterator ObserveIter
 
typedef std::list< FitsCard * > CommentList
 
typedef CommentList::iterator CommentIter
 
typedef std::list< FitsCard * > HistoryList
 
typedef HistoryList::iterator HistoryIter
 
typedef std::list< FitsCard * > BlankList
 
typedef BlankList::iterator BlankIter
 
typedef std::list< FitsCard * > ArrayList
 
typedef ArrayList::iterator ArrayIter
 
typedef std::list< FitsCard * > OtherList
 
typedef OtherList::iterator OtherIter
 
typedef std::list< FitsCard * > JunkList
 
typedef JunkList::iterator JunkIter
 

Detailed Description

Class to read binary table from FITS extensions.

Constructor & Destructor Documentation

ltl::FitsBinTableIn::FitsBinTableIn ( const FitsIn other)

Member Function Documentation

template<class T , int N>
MArray< T, N > ltl::FitsBinTableIn::readColumn ( const string &  ttype,
const int  startrow = 1,
const int  endrow = 0 
)
template<class T , int N>
MArray< T, N > ltl::FitsBinTableIn::readColumn ( const int  colno,
const int  startrow = 1,
const int  endrow = 0 
)
template<class T , int N, int BITPIX>
MArray< T, N > ltl::FitsBinTableIn::readColumn ( const int  colno,
const int  startrow = 1,
int  endrow = 0 
)
template<class T , int N, int BITPIX>
MArray< T, N > ltl::FitsBinTableIn::readPColumn ( const int  colno,
const int  rowno = 1 
)
int ltl::BinTable::getTfields ( const int  colno) const
inherited
char ltl::BinTable::getTformt ( const int  colno) const
inherited
size_t ltl::BinTable::getTformr ( const int  colno) const
inherited

Member Data Documentation

int ltl::BinTable::tfields_
protectedinherited

Referenced by readColumn().

char* ltl::BinTable::tformT_
protectedinherited

Referenced by readColumn().

size_t* ltl::BinTable::tformr_
protectedinherited

Referenced by readColumn().

off_t* ltl::BinTable::tcoloff_
protectedinherited

Referenced by readColumn(), and readPColumn().

vector<string> ltl::BinTable::tforma_
protectedinherited

Referenced by readColumn().

double* ltl::BinTable::tscal_
protectedinherited

Referenced by readColumn(), and readPColumn().

double* ltl::BinTable::tzero_
protectedinherited

Referenced by readColumn(), and readPColumn().

off_t ltl::BinTable::theap_
protectedinherited

Referenced by readPColumn().