lsst.afw g7876432fea+de8826df4f
Loading...
Searching...
No Matches
lsst::afw::fits Namespace Reference

Namespaces

namespace  _fitsContinued
 
namespace  _pickleFits
 
namespace  detail
 

Classes

struct  CompressionOptions
 Options controlling image compression with FITS. More...
 
class  Fits
 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...
 
class  FitsError
 An exception thrown when problems are found when reading or writing FITS files. More...
 
class  FitsTypeError
 An exception thrown when a FITS file has the wrong type. More...
 
class  HduMoveGuard
 RAII scoped guard for moving the HDU in a Fits object. More...
 
class  HeaderIterationFunctor
 Base class for polymorphic functors used to iterator over FITS key headers. More...
 
class  MemFileManager
 Lifetime-management for memory that goes into FITS memory files. More...
 
struct  QuantizationOptions
 Options controlling quantization for image compression with FITS. More...
 

Typedefs

using dafPlistPtr = std::shared_ptr<daf::base::PropertyList>
 

Enumerations

enum class  HduType : int { IMAGE = 0 , ASCII_TABLE = 1 , BIN_TABLE = 2 , ANY = -1 }
 an enum representing the various types of FITS HDU that are available in cfitsio library More...
 
enum class  CompressionAlgorithm { GZIP_1_ , GZIP_2_ , RICE_1_ }
 FITS compression algorithms. More...
 
enum class  DitherAlgorithm { NO_DITHER_ , SUBTRACTIVE_DITHER_1_ , SUBTRACTIVE_DITHER_2_ }
 FITS quantization algorithms. More...
 
enum class  ScalingAlgorithm { RANGE , STDEV_MASKED , STDEV_CFITSIO , MANUAL }
 Algorithms used to compute the scaling factor used in quantization. More...
 

Functions

std::string makeErrorMessage (std::string const &fileName="", int status=0, std::string const &msg="")
 Return an error message reflecting FITS I/O errors.
 
std::string makeErrorMessage (std::string const &fileName, int status, boost::format const &msg)
 
std::string makeErrorMessage (void *fptr, int status=0, std::string const &msg="")
 Return an error message reflecting FITS I/O errors.
 
std::string makeErrorMessage (void *fptr, int status, boost::format const &msg)
 
std::string makeLimitedFitsHeader (lsst::daf::base::PropertySet const &metadata, std::set< std::string > const &excludeNames={})
 Format a PropertySet into an FITS header string in a simplistic fashion.
 
template<typename T>
int getBitPix ()
 Return the cfitsio integer BITPIX code for the given data type.
 
template<typename T, int N, int C>
ndarray::Array< T const, N, N > const makeContiguousArray (ndarray::Array< T, N, C > const &array)
 Construct a contiguous ndarray.
 
std::shared_ptr< daf::base::PropertyListcombineMetadata (daf::base::PropertyList const &first, daf::base::PropertyList const &second)
 Combine two sets of metadata in a FITS-appropriate fashion.
 
std::shared_ptr< daf::base::PropertyListreadMetadata (std::string const &fileName, int hdu=DEFAULT_HDU, bool strip=false)
 Read FITS header.
 
std::shared_ptr< daf::base::PropertyListreadMetadata (std::string const &fileName, std::string const &hduname, HduType type=HduType::ANY, int hduver=0, bool strip=false)
 Read FITS header.
 
std::shared_ptr< daf::base::PropertyListreadMetadata (fits::MemFileManager &manager, int hdu=DEFAULT_HDU, bool strip=false)
 Read FITS header.
 
std::shared_ptr< daf::base::PropertyListreadMetadata (fits::MemFileManager &manager, std::string const &hduname, HduType type=HduType::ANY, int hduver=0, bool strip=false)
 Read FITS header.
 
std::shared_ptr< daf::base::PropertyListreadMetadata (fits::Fits &fitsfile, bool strip=false)
 Read FITS header.
 

Variables

const int DEFAULT_HDU = INT_MIN
 Specify that the default HDU should be read.
 

Typedef Documentation

◆ dafPlistPtr

Enumeration Type Documentation

◆ CompressionAlgorithm

FITS compression algorithms.

See the standard for details.

These have a trailing underscore to avoid conflict with CFITSIO's preprocessor macros (the trailing underscore is dropped in the Python bindings). Not all FITS compression algorithms are supported.

Enumerator
GZIP_1_ 
GZIP_2_ 
RICE_1_ 

Definition at line 28 of file fitsCompression.h.

◆ DitherAlgorithm

FITS quantization algorithms.

See the standard for details.

These have a trailing underscore to avoid conflict with CFITSIO's preprocessor macros (the trailing underscore is dropped in the Python bindings).

Enumerator
NO_DITHER_ 
SUBTRACTIVE_DITHER_1_ 
SUBTRACTIVE_DITHER_2_ 

Definition at line 41 of file fitsCompression.h.

◆ HduType

enum class lsst::afw::fits::HduType : int
strong

an enum representing the various types of FITS HDU that are available in cfitsio library

This is an int because the value it maps to in cfitsio is also an int.

Enumerator
IMAGE 
ASCII_TABLE 
BIN_TABLE 
ANY 

Definition at line 224 of file fits.h.

◆ ScalingAlgorithm

Algorithms used to compute the scaling factor used in quantization.

Enumerator
RANGE 

Scale to preserve dynamic range with bad pixels msasked out.

STDEV_MASKED 

Scale based on the standard deviation with bad pixels masked out.

STDEV_CFITSIO 

Let CFITSIO work out the scaling (per-tile; does not respect mask planes)

MANUAL 

Scale set manually.

Definition at line 48 of file fitsCompression.h.

Function Documentation

◆ combineMetadata()

std::shared_ptr< daf::base::PropertyList > lsst::afw::fits::combineMetadata ( daf::base::PropertyList const & first,
daf::base::PropertyList const & second )

Combine two sets of metadata in a FITS-appropriate fashion.

"COMMENT" and "HISTORY" entries:

  • If of type std::string then the values in second are appended to values in first
  • If not of type std::string then they are silently ignored

All other entries:

  • Values in second override values in first (regardless of type)
  • Only scalars are copied; if a vector is found, only the last value is copied
Parameters
[in]firstThe first set of metadata to combine
[in]secondThe second set of metadata to combine
Returns
The combined metadata. Item names have the following order:
  • names in first, omitting all names except "COMMENT" and "HISTORY" that appear in second
  • names in second, omitting "COMMENT" and "HISTORY" if valid versions appear in first

Definition at line 1796 of file fits.cc.

◆ getBitPix()

template<typename T>
int lsst::afw::fits::getBitPix ( )

Return the cfitsio integer BITPIX code for the given data type.

Definition at line 466 of file fits.cc.

◆ makeContiguousArray()

template<typename T, int N, int C>
ndarray::Array< T const, N, N > const lsst::afw::fits::makeContiguousArray ( ndarray::Array< T, N, C > const & array)

Construct a contiguous ndarray.

A deep copy is only performed if the array is not already contiguous.

Definition at line 213 of file fits.h.

◆ makeErrorMessage() [1/4]

std::string lsst::afw::fits::makeErrorMessage ( std::string const & fileName,
int status,
boost::format const & msg )
inline

Definition at line 66 of file fits.h.

◆ makeErrorMessage() [2/4]

std::string lsst::afw::fits::makeErrorMessage ( std::string const & fileName = "",
int status = 0,
std::string const & msg = "" )

Return an error message reflecting FITS I/O errors.

Parameters
[in]fileNameFITS filename to be included in the error message.
[in]statusThe last status value returned by the cfitsio library; if nonzero, the error message will include a description from cfitsio.
[in]msgAn additional custom message to include.

Definition at line 396 of file fits.cc.

◆ makeErrorMessage() [3/4]

std::string lsst::afw::fits::makeErrorMessage ( void * fptr,
int status,
boost::format const & msg )
inline

Definition at line 80 of file fits.h.

◆ makeErrorMessage() [4/4]

std::string lsst::afw::fits::makeErrorMessage ( void * fptr,
int status = 0,
std::string const & msg = "" )

Return an error message reflecting FITS I/O errors.

Parameters
[in]fptrA cfitsio fitsfile pointer to be inspected for a filename. Passed as void* to avoid including fitsio.h in the header file.
[in]statusThe last status value returned by the cfitsio library; if nonzero, the error message will include a description from cfitsio.
[in]msgAn additional custom message to include.

Definition at line 424 of file fits.cc.

◆ makeLimitedFitsHeader()

std::string lsst::afw::fits::makeLimitedFitsHeader ( lsst::daf::base::PropertySet const & metadata,
std::set< std::string > const & excludeNames = {} )

Format a PropertySet into an FITS header string in a simplistic fashion.

This function is designed to format data for creating a WCS. As such, it is quite limited:

  • It skips entries whose name is longer than 8 characters, since none are used for FITS-WCS
  • It skips string entries if the fully formatted string is longer than 80 characters
  • It skips entries with types it cannot handle (e.g. long, long long)
  • For entries that have array data, it only writes the final value, since that is the value that should be used by code that reads FITS headers.
  • It makes no attempt to insure that required entries, such as SIMPLE, are present.
Parameters
[in]metadataMetadata to format; if this is a PropertyList then the order of items is preserved
[in]excludeNamesNames of entries to exclude from the returned header string
Returns
a FITS header string (exactly 80 characters per entry, no line terminators)

Definition at line 433 of file fits.cc.

◆ readMetadata() [1/5]

std::shared_ptr< daf::base::PropertyList > lsst::afw::fits::readMetadata ( fits::Fits & fitsfile,
bool strip = false )

Read FITS header.

Includes support for the INHERIT convention: if 'INHERIT = T' is in the header, the PHU will be read as well, and nominated HDU will override any duplicated values.

Parameters
fitsfilethe file and HDU to be read
stripif true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored.

Definition at line 1855 of file fits.cc.

◆ readMetadata() [2/5]

dafPlistPtr lsst::afw::fits::readMetadata ( fits::MemFileManager & manager,
int hdu = DEFAULT_HDU,
bool strip = false )

Read FITS header.

Includes support for the INHERIT convention: if 'INHERIT = T' is in the header, the PHU will be read as well, and nominated HDU will override any duplicated values.

Parameters
managerthe in-memory file whose header will be read
hduthe HDU to read (0-indexed; 0 is the Primary HDU).
stripif true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored.

Definition at line 1846 of file fits.cc.

◆ readMetadata() [3/5]

dafPlistPtr lsst::afw::fits::readMetadata ( fits::MemFileManager & manager,
std::string const & hduname,
HduType type = HduType::ANY,
int hduver = 0,
bool strip = false )

Read FITS header.

Includes support for the INHERIT convention: if 'INHERIT = T' is in the header, the PHU will be read as well, and nominated HDU will override any duplicated values.

Parameters
managerthe in-memory file whose header will be read
hdunamethe name of the HDU to read
typetype of FITS header to match. Defaults to ANY_HDU
hduverversion of HDU header to match, defaults to 0 (version ignored)
stripif true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored.

Definition at line 1850 of file fits.cc.

◆ readMetadata() [4/5]

dafPlistPtr lsst::afw::fits::readMetadata ( std::string const & fileName,
int hdu = DEFAULT_HDU,
bool strip = false )

Read FITS header.

Includes support for the INHERIT convention: if 'INHERIT = T' is in the header, the PHU will be read as well, and nominated HDU will override any duplicated values.

Parameters
fileNamethe file whose header will be read
hduthe HDU to read (0-indexed; 0 is the Primary HDU).
stripif true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored.

Definition at line 1837 of file fits.cc.

◆ readMetadata() [5/5]

dafPlistPtr lsst::afw::fits::readMetadata ( std::string const & fileName,
std::string const & hduname,
HduType type = HduType::ANY,
int hduver = 0,
bool strip = false )

Read FITS header.

Includes support for the INHERIT convention: if 'INHERIT = T' is in the header, the PHU will be read as well, and nominated HDU will override any duplicated values.

Parameters
fileNamethe file whose header will be read
hdunamethe name of the HDU to read
typetype of FITS header to match. Defaults to ANY_HDU
hduverversion of HDU header to match, defaults to 0 (version ignored)
stripif true, common FITS keys that usually have non-metadata intepretations (e.g. NAXIS, BITPIX) will be ignored.

Definition at line 1841 of file fits.cc.

Variable Documentation

◆ DEFAULT_HDU

const int lsst::afw::fits::DEFAULT_HDU = INT_MIN

Specify that the default HDU should be read.

This special HDU number indicates that the first extension should be used if the primary HDU is empty (i.e., has NAXIS=0) and the Primary HDU is the current.

Definition at line 18 of file fitsDefaults.h.