LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+bd2ed33bd6,g1470d8bcf6+de7501a2e0,g14a832a312+ff425fae3c,g2079a07aa2+86d27d4dc4,g2305ad1205+91a32aca49,g295015adf3+762506a1ad,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+c34e8be1fa,g487adcacf7+5fae3daba8,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ea1711114f,g5a732f18d5+53520f316c,g64a986408d+bd2ed33bd6,g858d7b2824+bd2ed33bd6,g8a8a8dda67+585e252eca,g99cad8db69+016a06b37a,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+09e12c87ab,gc120e1dc64+bc2e06c061,gc28159a63d+0e5473021a,gcf0d15dbbd+c34e8be1fa,gdaeeff99f8+f9a426f77a,ge6526c86ff+508d0e0a30,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+8d59551888,gf1cff7945b+bd2ed33bd6,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
lsst::afw::fits::ImageWriteOptions Struct Reference

Options for writing an image to FITS. More...

#include <fits.h>

Public Member Functions

template<typename T >
 ImageWriteOptions (image::Image< T > const &image)
 Construct with default options for images.
 
template<typename T >
 ImageWriteOptions (image::Mask< T > const &mask)
 Construct with default options for masks.
 
 ImageWriteOptions (ImageCompressionOptions const &compression_=ImageCompressionOptions(ImageCompressionOptions::NONE), ImageScalingOptions const &scaling_=ImageScalingOptions())
 Construct with specific compression and scaling options.
 
 ImageWriteOptions (ImageScalingOptions const &scaling_)
 Construct with specific scaling options.
 
 ImageWriteOptions (daf::base::PropertySet const &config)
 Construct from a PropertySet.
 

Static Public Member Functions

static std::shared_ptr< daf::base::PropertySetvalidate (daf::base::PropertySet const &config)
 Validate a PropertySet.
 

Public Attributes

ImageCompressionOptions compression
 Options controlling compression.
 
ImageScalingOptions scaling
 Options controlling scaling.
 

Detailed Description

Options for writing an image to FITS.

An image being written to FITS may be scaled (quantised) and/or compressed. This struct is a container for options controlling each of those separately.

Definition at line 223 of file fits.h.

Constructor & Destructor Documentation

◆ ImageWriteOptions() [1/5]

template<typename T >
lsst::afw::fits::ImageWriteOptions::ImageWriteOptions ( image::Image< T > const & image)
inlineexplicit

Construct with default options for images.

Definition at line 229 of file fits.h.

229: compression(image) {}
ImageCompressionOptions compression
Options controlling compression.
Definition fits.h:224

◆ ImageWriteOptions() [2/5]

template<typename T >
lsst::afw::fits::ImageWriteOptions::ImageWriteOptions ( image::Mask< T > const & mask)
inlineexplicit

Construct with default options for masks.

Definition at line 233 of file fits.h.

233: compression(mask) {}
afw::table::Key< afw::table::Array< MaskPixelT > > mask

◆ ImageWriteOptions() [3/5]

lsst::afw::fits::ImageWriteOptions::ImageWriteOptions ( ImageCompressionOptions const & compression_ = ImageCompressionOptions(ImageCompressionOptions::NONE),
ImageScalingOptions const & scaling_ = ImageScalingOptions() )
inlineexplicit

Construct with specific compression and scaling options.

Definition at line 236 of file fits.h.

239 : compression(compression_), scaling(scaling_) {}
ImageScalingOptions scaling
Options controlling scaling.
Definition fits.h:225

◆ ImageWriteOptions() [4/5]

lsst::afw::fits::ImageWriteOptions::ImageWriteOptions ( ImageScalingOptions const & scaling_)
inlineexplicit

Construct with specific scaling options.

Definition at line 242 of file fits.h.

◆ ImageWriteOptions() [5/5]

lsst::afw::fits::ImageWriteOptions::ImageWriteOptions ( daf::base::PropertySet const & config)

Construct from a PropertySet.

The PropertySet should include the following elements:

  • compression.scheme (string): compression algorithm to use
  • compression.columns (int): number of columns per tile (0 = entire dimension)
  • compression.rows (int): number of rows per tile (0 = 1 row; that's what cfitsio does)
  • compression.quantizeLevel (float): cfitsio quantization level
  • scaling.scheme (string): scaling algorithm to use
  • scaling.bitpix (int): bits per pixel (0, 8,16,32,64,-32,-64)
  • scaling.fuzz (bool): fuzz the values when quantising floating-point values?
  • scaling.seed (long): seed for random number generator when fuzzing
  • scaling.maskPlanes (list of string): mask planes to ignore when doing statistics
  • scaling.quantizeLevel: divisor of the standard deviation for STDEV_* scaling
  • scaling.quantizePad: number of stdev to allow on the low side (for STDEV_POSITIVE/NEGATIVE)
  • scaling.bscale: manually specified BSCALE (for MANUAL scaling)
  • scaling.bzero: manually specified BSCALE (for MANUAL scaling)

Use the 'validate' method to set default values for the above.

'scaling.maskPlanes' is the only entry that is allowed to be missing (because PropertySet can't represent an empty array); when it is missing, it is interpreted as an empty array.

Parameters
[in]configConfiguration of image write options

Definition at line 1793 of file fits.cc.

1794 : compression(fits::compressionAlgorithmFromString(config.get<std::string>("compression.algorithm")),
1795 std::vector<long>{config.getAsInt64("compression.columns"),
1796 config.getAsInt64("compression.rows")},
1797 config.getAsDouble("compression.quantizeLevel")),
1798 scaling(fits::scalingAlgorithmFromString(config.get<std::string>("scaling.algorithm")),
1799 config.getAsInt("scaling.bitpix"),
1800 config.exists("scaling.maskPlanes") ? config.getArray<std::string>("scaling.maskPlanes")
1801 : std::vector<std::string>{},
1802 config.getAsInt("scaling.seed"), config.getAsDouble("scaling.quantizeLevel"),
1803 config.getAsDouble("scaling.quantizePad"), config.get<bool>("scaling.fuzz"),
1804 config.getAsDouble("scaling.bscale"), config.getAsDouble("scaling.bzero")) {}
ImageScalingOptions::ScalingAlgorithm scalingAlgorithmFromString(std::string const &name)
Interpret scaling algorithm expressed in string.
ImageCompressionOptions::CompressionAlgorithm compressionAlgorithmFromString(std::string const &name)
Interpret compression algorithm expressed in string.
STL namespace.

Member Function Documentation

◆ validate()

std::shared_ptr< daf::base::PropertySet > lsst::afw::fits::ImageWriteOptions::validate ( daf::base::PropertySet const & config)
static

Validate a PropertySet.

Returns a validated PropertySet with default values added, suitable for use with the constructor.

For details on what elements may be included in the input, see ImageWriteOptions::ImageWriteOptions(daf::base::PropertySet const&).

Parameters
[in]configConfiguration of image write options
Returns
validated configuration
Exceptions
lsst::pex::exceptions::RuntimeErrorif entry is not recognized.

Definition at line 1822 of file fits.cc.

1822 {
1823 auto validated = std::make_shared<daf::base::PropertySet>();
1824
1825 validateEntry(*validated, config, "compression.algorithm", std::string("NONE"));
1826 validateEntry(*validated, config, "compression.columns", 0);
1827 validateEntry(*validated, config, "compression.rows", 1);
1828 validateEntry(*validated, config, "compression.quantizeLevel", 0.0);
1829
1830 validateEntry(*validated, config, "scaling.algorithm", std::string("NONE"));
1831 validateEntry(*validated, config, "scaling.bitpix", 0);
1832 validateEntry(*validated, config, "scaling.maskPlanes", std::vector<std::string>{"NO_DATA"});
1833 validateEntry(*validated, config, "scaling.seed", 1);
1834 validateEntry(*validated, config, "scaling.quantizeLevel", 5.0);
1835 validateEntry(*validated, config, "scaling.quantizePad", 10.0);
1836 validateEntry(*validated, config, "scaling.fuzz", true);
1837 validateEntry(*validated, config, "scaling.bscale", 1.0);
1838 validateEntry(*validated, config, "scaling.bzero", 0.0);
1839
1840 // Check for additional entries that we don't support (e.g., from typos)
1841 for (auto const &name : config.names(false)) {
1842 if (!validated->exists(name)) {
1844 os << "Invalid image write option: " << name;
1845 throw LSST_EXCEPT(pex::exceptions::RuntimeError, os.str());
1846 }
1847 }
1848
1849 return validated;
1850}
table::Key< std::string > name
Definition Amplifier.cc:116
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
std::ostream * os
Definition Schema.cc:557

Member Data Documentation

◆ compression

ImageCompressionOptions lsst::afw::fits::ImageWriteOptions::compression

Options controlling compression.

Definition at line 224 of file fits.h.

◆ scaling

ImageScalingOptions lsst::afw::fits::ImageWriteOptions::scaling

Options controlling scaling.

Definition at line 225 of file fits.h.


The documentation for this struct was generated from the following files: