LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Private Attributes | List of all members
lsst::afw::table::io::FitsSchemaInputMapper Class Reference

#include <FitsSchemaInputMapper.h>

Public Types

typedef FitsSchemaItem Item
 

Public Member Functions

 FitsSchemaInputMapper (daf::base::PropertyList &metadata, bool stripMetadata)
 Construct a mapper from a PropertyList of FITS header values, stripping recognized keys if desired. More...
 
void setArchive (boost::shared_ptr< InputArchive > archive)
 
bool readArchive (afw::fits::Fits &fits)
 
bool hasArchive () const
 Return true if the mapper has an InputArchive. More...
 
Item const * find (std::string const &ttype) const
 
Item const * find (int column) const
 
void erase (Item const *item)
 
void erase (std::string const &ttype)
 
void erase (int column)
 
void customize (std::unique_ptr< FitsColumnReader > reader)
 
Schema finalize ()
 
void readRecord (BaseRecord &record, afw::fits::Fits &fits, std::size_t row)
 

Private Attributes

boost::shared_ptr< Impl > _impl
 

Detailed Description

A class that describes a mapping from a FITS binary table to an afw::table Schema.

A FitsSchemaInputMapper is created every time a FITS binary table is read into an afw::table catalog, allowing limited customization of the mapping between on-disk FITS table columns an in-memory fields by subclasses of BaseTable.

The object is constructed from a daf::base::PropertyList that represents the FITS header, which is used to populate a custom container of FitsSchemaItems. These can then be retrieved by name or column number via the find() methods, allowing the user to create custom readers for columns or groups of columns via addColumnReader(). They can also be removed from the "regular" fields via the erase() method. Those regular fields are filled in by the finalize() method, which automatically generates mappings for any FitsSchemaItems that have not been removed by calls to erase(). Once finalize() has been called, readRecord() may be called repeatedly to read FITS rows into record objects according to the mapping that has been defined.

Definition at line 67 of file FitsSchemaInputMapper.h.

Member Typedef Documentation

Definition at line 70 of file FitsSchemaInputMapper.h.

Constructor & Destructor Documentation

lsst::afw::table::io::FitsSchemaInputMapper::FitsSchemaInputMapper ( daf::base::PropertyList metadata,
bool  stripMetadata 
)

Construct a mapper from a PropertyList of FITS header values, stripping recognized keys if desired.

Member Function Documentation

void lsst::afw::table::io::FitsSchemaInputMapper::customize ( std::unique_ptr< FitsColumnReader reader)

Customize a mapping by providing a FitsColumnReader instance that will be invoked by readRecords().

void lsst::afw::table::io::FitsSchemaInputMapper::erase ( Item const *  item)

Remove the given item (which should have been retrieved via find()) from the mapping, preventing it from being included in the regular fields added by finalize().

void lsst::afw::table::io::FitsSchemaInputMapper::erase ( std::string const &  ttype)

Remove the item with the given column name (ttype) from the mapping, preventing it from being included in the regular fields added by finalize().

void lsst::afw::table::io::FitsSchemaInputMapper::erase ( int  column)

Remove the item at the given column position from the mapping, preventing it from being included in the regular fields added by finalize().

Schema lsst::afw::table::io::FitsSchemaInputMapper::finalize ( )

Map any remaining items into regular Schema items, and return the final Schema.

This method must be called before any calls to readRecords().

Item const* lsst::afw::table::io::FitsSchemaInputMapper::find ( std::string const &  ttype) const

Find an item with the given column name (ttype), returning nullptr if no such column exists.

The returned pointer is owned by the mapper object, and should not be deleted. It is invalidated by calls to either erase() or finalize().

Item const* lsst::afw::table::io::FitsSchemaInputMapper::find ( int  column) const

Find an item with the given column number, returning nullptr if no such column exists.

The returned pointer is owned by the mapper object, and should not be deleted. It is invalidated by calls to either erase() or finalize().

bool lsst::afw::table::io::FitsSchemaInputMapper::hasArchive ( ) const

Return true if the mapper has an InputArchive.

bool lsst::afw::table::io::FitsSchemaInputMapper::readArchive ( afw::fits::Fits fits)

Set the Archive by reading from the HDU specified by the AR_HDU header entry.

Returns true on success, false if there is no AR_HDU entry.

void lsst::afw::table::io::FitsSchemaInputMapper::readRecord ( BaseRecord record,
afw::fits::Fits fits,
std::size_t  row 
)

Fill a record from a FITS binary table row.

void lsst::afw::table::io::FitsSchemaInputMapper::setArchive ( boost::shared_ptr< InputArchive archive)

Set the Archive to an externally-provided one, overriding any that may have been read.

Member Data Documentation

boost::shared_ptr< Impl > lsst::afw::table::io::FitsSchemaInputMapper::_impl
private

Definition at line 146 of file FitsSchemaInputMapper.h.


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