LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
|
A simple struct that combines the two arguments that must be passed to most cfitsio routines and contains thin and/or templated wrappers around common cfitsio routines. More...
#include <fits.h>
Public Types | |
enum | BehaviorFlags { AUTO_CLOSE = 0x01, AUTO_CHECK = 0x02 } |
Public Member Functions | |
std::string | getFileName () const |
Return the file name associated with the FITS object or "<unknown>" if there is none. More... | |
int | getHdu () |
Return the current HDU (1-indexed; 1 is the Primary HDU). More... | |
void | setHdu (int hdu, bool relative=false) |
Set the current HDU. More... | |
int | countHdus () |
Return the number of HDUs in the file. More... | |
void | writeMetadata (daf::base::PropertySet const &metadata) |
Read a FITS header into a PropertySet or PropertyList. More... | |
void | readMetadata (daf::base::PropertySet &metadata, bool strip=false) |
Read a FITS header into a PropertySet or PropertyList. More... | |
template<typename T > | |
void | readKey (std::string const &key, T &value) |
Read a FITS header key into the given reference. More... | |
void | forEachKey (HeaderIterationFunctor &functor) |
Call a polymorphic functor for every key in the header. More... | |
void | createEmpty () |
Create an empty image HDU with NAXIS=0 at the end of the file. More... | |
template<typename PixelT , int N> | |
void | createImage (ndarray::Vector< int, N > const &shape) |
Create an image with pixel type provided by the given explicit PixelT template parameter and shape defined by an ndarray index. More... | |
template<typename PixelT > | |
void | createImage (long x, long y) |
Create a 2-d image with pixel type provided by the given explicit PixelT template parameter. More... | |
template<typename T , int N, int C> | |
void | writeImage (ndarray::Array< T const, N, C > const &array) |
Write an ndarray::Array to a FITS image HDU. More... | |
int | getImageDim () |
Return the number of dimensions in the current HDU. More... | |
template<int N> | |
ndarray::Vector< int, N > | getImageShape () |
Return the shape of the current (image) HDU. More... | |
template<typename T > | |
bool | checkImageType () |
Return true if the current HDU has the given pixel type.. More... | |
template<typename T , int N> | |
void | readImage (ndarray::Array< T, N, N > const &array, ndarray::Vector< int, N > const &offset) |
Read an array from a FITS image. More... | |
void | createTable () |
Create a new binary table extension. More... | |
template<typename T > | |
int | addColumn (std::string const &ttype, int size, std::string const &comment) |
Add a column to a table. More... | |
template<typename T > | |
int | addColumn (std::string const &ttype, int size) |
Add a column to a table. More... | |
std::size_t | addRows (std::size_t nRows) |
Append rows to a table, and return the index of the first new row. More... | |
std::size_t | countRows () |
Return the number of row in a table. More... | |
template<typename T > | |
void | writeTableArray (std::size_t row, int col, int nElements, T const *value) |
Write an array value to a binary table. More... | |
template<typename T > | |
void | writeTableScalar (std::size_t row, int col, T value) |
Write an scalar value to a binary table. More... | |
void | writeTableScalar (std::size_t row, int col, std::string const &value) |
Write a string to a binary table. More... | |
template<typename T > | |
void | readTableArray (std::size_t row, int col, int nElements, T *value) |
Read an array value from a binary table. More... | |
template<typename T > | |
void | readTableScalar (std::size_t row, int col, T &value) |
Read an array scalar from a binary table. More... | |
void | readTableScalar (std::size_t row, int col, std::string &value) |
Read a string from a binary table. More... | |
long | getTableArraySize (int col) |
Return the size of an array column. More... | |
long | getTableArraySize (std::size_t row, int col) |
Return the size of an variable-length array field. More... | |
Fits () | |
Default constructor; set all data members to 0. More... | |
Fits (std::string const &filename, std::string const &mode, int behavior) | |
Open or create a FITS file from disk. More... | |
Fits (MemFileManager &manager, std::string const &mode, int behavior) | |
Open or create a FITS file from an in-memory file. More... | |
void | closeFile () |
Close a FITS file. More... | |
~Fits () | |
template<typename T > | |
void | updateKey (std::string const &key, T const &value, std::string const &comment) |
Set a FITS header key, editing if it already exists and appending it if not. More... | |
void | updateKey (std::string const &key, char const *value, std::string const &comment) |
Set a FITS header key, editing if it already exists and appending it if not. More... | |
template<typename T > | |
void | updateKey (std::string const &key, T const &value) |
Set a FITS header key, editing if it already exists and appending it if not. More... | |
void | updateKey (std::string const &key, char const *value) |
Set a FITS header key, editing if it already exists and appending it if not. More... | |
template<typename T > | |
void | writeKey (std::string const &key, T const &value, std::string const &comment) |
Add a FITS header key to the bottom of the header. More... | |
void | writeKey (std::string const &key, char const *value, std::string const &comment) |
Add a FITS header key to the bottom of the header. More... | |
template<typename T > | |
void | writeKey (std::string const &key, T const &value) |
Add a FITS header key to the bottom of the header. More... | |
void | writeKey (std::string const &key, char const *value) |
Add a FITS header key to the bottom of the header. More... | |
template<typename T > | |
void | updateColumnKey (std::string const &prefix, int n, T const &value, std::string const &comment) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
void | updateColumnKey (std::string const &prefix, int n, char const *value, std::string const &comment) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
template<typename T > | |
void | updateColumnKey (std::string const &prefix, int n, T const &value) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
void | updateColumnKey (std::string const &prefix, int n, char const *value) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
template<typename T > | |
void | writeColumnKey (std::string const &prefix, int n, T const &value, std::string const &comment) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
void | writeColumnKey (std::string const &prefix, int n, char const *value, std::string const &comment) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
template<typename T > | |
void | writeColumnKey (std::string const &prefix, int n, T const &value) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
void | writeColumnKey (std::string const &prefix, int n, char const *value) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number. More... | |
Public Attributes | |
void * | fptr |
int | status |
int | behavior |
Private Member Functions | |
template<typename T > | |
void | createImageImpl (int nAxis, long *nAxes) |
template<typename T > | |
void | writeImageImpl (T const *data, int nElements) |
template<typename T > | |
void | readImageImpl (int nAxis, T *data, long *begin, long *end, long *increment) |
void | getImageShapeImpl (int nAxis, long *nAxes) |
A simple struct that combines the two arguments that must be passed to most cfitsio routines and contains thin and/or templated wrappers around common cfitsio routines.
This is NOT intended to be an object-oriented C++ wrapper around cfitsio; it's simply a thin layer that saves a lot of repetition, const/reinterpret casts, and replaces void pointer args and type codes with templates and overloads.
Like a cfitsio pointer, a Fits object always considers one HDU the "active" one, and most operations will be applied to that HDU.
All member functions are non-const because they may modify the 'status' data member.
Enumerator | |
---|---|
AUTO_CLOSE | |
AUTO_CHECK |
Definition at line 201 of file fits.h.
|
inline |
lsst.afw.fits::Fits::Fits | ( | std::string const & | filename, |
std::string const & | mode, | ||
int | behavior | ||
) |
Open or create a FITS file from disk.
lsst.afw.fits::Fits::Fits | ( | MemFileManager & | manager, |
std::string const & | mode, | ||
int | behavior | ||
) |
Open or create a FITS file from an in-memory file.
|
inline |
Definition at line 489 of file fits.h.
int lsst.afw.fits::Fits::addColumn | ( | std::string const & | ttype, |
int | size, | ||
std::string const & | comment | ||
) |
Add a column to a table.
If size <= 0, the field will be a variable length array, with max set by (-size), or left unknown if size == 0.
int lsst.afw.fits::Fits::addColumn | ( | std::string const & | ttype, |
int | size | ||
) |
Add a column to a table.
If size <= 0, the field will be a variable length array, with max set by (-size), or left unknown if size == 0.
std::size_t lsst.afw.fits::Fits::addRows | ( | std::size_t | nRows | ) |
Append rows to a table, and return the index of the first new row.
bool lsst.afw.fits::Fits::checkImageType | ( | ) |
Return true if the current HDU has the given pixel type..
This takes into account the BUNIT and BSCALE keywords, which can allow integer images to be interpreted as floating point.
void lsst.afw.fits::Fits::closeFile | ( | ) |
Close a FITS file.
int lsst.afw.fits::Fits::countHdus | ( | ) |
Return the number of HDUs in the file.
std::size_t lsst.afw.fits::Fits::countRows | ( | ) |
Return the number of row in a table.
void lsst.afw.fits::Fits::createEmpty | ( | ) |
Create an empty image HDU with NAXIS=0 at the end of the file.
This is primarily useful to force the first "real" HDU to be an extension HDU by creating an empty Primary HDU. The new HDU is set as the active one.
|
inline |
Create an image with pixel type provided by the given explicit PixelT template parameter and shape defined by an ndarray index.
The new image will be in a new HDU at the end of the file, which may be the Primary HDU if the FITS file is empty.
Definition at line 343 of file fits.h.
|
inline |
|
private |
void lsst.afw.fits::Fits::createTable | ( | ) |
Create a new binary table extension.
void lsst.afw.fits::Fits::forEachKey | ( | HeaderIterationFunctor & | functor | ) |
Call a polymorphic functor for every key in the header.
Each value is passed in as a string, and the single quotes that mark an actual string value are not removed (neither are extra spaces). However, long strings that make use of the CONTINUE keyword are concatenated to look as if they were on a single line.
std::string lsst.afw.fits::Fits::getFileName | ( | ) | const |
Return the file name associated with the FITS object or "<unknown>" if there is none.
int lsst.afw.fits::Fits::getHdu | ( | ) |
Return the current HDU (1-indexed; 1 is the Primary HDU).
int lsst.afw.fits::Fits::getImageDim | ( | ) |
Return the number of dimensions in the current HDU.
|
inline |
Return the shape of the current (image) HDU.
The order of dimensions is reversed from the FITS ordering, reflecting the usual (y,x) ndarray convention.
The template parameter must match the actual number of dimension in the image.
Definition at line 386 of file fits.h.
|
private |
long lsst.afw.fits::Fits::getTableArraySize | ( | int | col | ) |
Return the size of an array column.
long lsst.afw.fits::Fits::getTableArraySize | ( | std::size_t | row, |
int | col | ||
) |
Return the size of an variable-length array field.
|
inline |
Read an array from a FITS image.
[out] | array | Array to be filled. Must already be allocated to the desired shape. |
[in] | offset | Indices of the first pixel to be read from the image. |
Definition at line 410 of file fits.h.
|
private |
void lsst.afw.fits::Fits::readKey | ( | std::string const & | key, |
T & | value | ||
) |
Read a FITS header key into the given reference.
void lsst.afw.fits::Fits::readMetadata | ( | daf::base::PropertySet & | metadata, |
bool | strip = false |
||
) |
Read a FITS header into a PropertySet or PropertyList.
[in,out] | metadata | A PropertySet or PropertyList that FITS header items will be added to. |
[in] | strip | If true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored. |
Order will preserved if and only if the metadata object is actually a PropertyList.
void lsst.afw.fits::Fits::readTableArray | ( | std::size_t | row, |
int | col, | ||
int | nElements, | ||
T * | value | ||
) |
Read an array value from a binary table.
|
inline |
void lsst.afw.fits::Fits::readTableScalar | ( | std::size_t | row, |
int | col, | ||
std::string & | value | ||
) |
Read a string from a binary table.
void lsst.afw.fits::Fits::setHdu | ( | int | hdu, |
bool | relative = false |
||
) |
Set the current HDU.
[in] | hdu | The HDU to move to (1-indexed; 1 is the Primary HDU). The special value of 0 moves to the first extension if the Primary HDU is empty (has NAXIS==0) and the the Primary HDU is the current one. |
[in] | relative | If true, move relative to the current HDU. |
void lsst.afw.fits::Fits::updateColumnKey | ( | std::string const & | prefix, |
int | n, | ||
T const & | value, | ||
std::string const & | comment | ||
) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
|
inline |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
Definition at line 264 of file fits.h.
void lsst.afw.fits::Fits::updateColumnKey | ( | std::string const & | prefix, |
int | n, | ||
T const & | value | ||
) |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
|
inline |
Update a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
Definition at line 269 of file fits.h.
void lsst.afw.fits::Fits::updateKey | ( | std::string const & | key, |
T const & | value, | ||
std::string const & | comment | ||
) |
Set a FITS header key, editing if it already exists and appending it if not.
|
inline |
void lsst.afw.fits::Fits::updateKey | ( | std::string const & | key, |
T const & | value | ||
) |
Set a FITS header key, editing if it already exists and appending it if not.
|
inline |
void lsst.afw.fits::Fits::writeColumnKey | ( | std::string const & | prefix, |
int | n, | ||
T const & | value, | ||
std::string const & | comment | ||
) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
|
inline |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
Definition at line 278 of file fits.h.
void lsst.afw.fits::Fits::writeColumnKey | ( | std::string const & | prefix, |
int | n, | ||
T const & | value | ||
) |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
|
inline |
Write a key of the form XXXXXnnn, where XXXXX is the prefix and nnn is a column number.
Definition at line 283 of file fits.h.
|
inline |
Write an ndarray::Array to a FITS image HDU.
The HDU must already exist and have the correct bitpix.
An extra deep-copy may be necessary if the array is not fully contiguous.
Definition at line 368 of file fits.h.
|
private |
void lsst.afw.fits::Fits::writeKey | ( | std::string const & | key, |
T const & | value, | ||
std::string const & | comment | ||
) |
Add a FITS header key to the bottom of the header.
If the key is HISTORY or COMMENT and the value is a std::string or C-string, a special HISTORY or COMMENT key will be appended (and the comment argument will be ignored if present).
|
inline |
Add a FITS header key to the bottom of the header.
If the key is HISTORY or COMMENT and the value is a std::string or C-string, a special HISTORY or COMMENT key will be appended (and the comment argument will be ignored if present).
Definition at line 250 of file fits.h.
void lsst.afw.fits::Fits::writeKey | ( | std::string const & | key, |
T const & | value | ||
) |
Add a FITS header key to the bottom of the header.
If the key is HISTORY or COMMENT and the value is a std::string or C-string, a special HISTORY or COMMENT key will be appended (and the comment argument will be ignored if present).
|
inline |
Add a FITS header key to the bottom of the header.
If the key is HISTORY or COMMENT and the value is a std::string or C-string, a special HISTORY or COMMENT key will be appended (and the comment argument will be ignored if present).
Definition at line 255 of file fits.h.
void lsst.afw.fits::Fits::writeMetadata | ( | daf::base::PropertySet const & | metadata | ) |
Read a FITS header into a PropertySet or PropertyList.
[in] | metadata | A PropertySet or PropertyList whose items will be appended to the FITS header. |
All keys will be appended to the FITS header rather than used to update existing keys. Order of keys will be preserved if and only if the metadata object is actually a PropertyList.
void lsst.afw.fits::Fits::writeTableArray | ( | std::size_t | row, |
int | col, | ||
int | nElements, | ||
T const * | value | ||
) |
Write an array value to a binary table.
|
inline |
void lsst.afw.fits::Fits::writeTableScalar | ( | std::size_t | row, |
int | col, | ||
std::string const & | value | ||
) |
Write a string to a binary table.