LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
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 1800 of file fits.cc.

1801 : compression(fits::compressionAlgorithmFromString(config.get<std::string>("compression.algorithm")),
1802 std::vector<long>{config.getAsInt64("compression.columns"),
1803 config.getAsInt64("compression.rows")},
1804 config.getAsDouble("compression.quantizeLevel")),
1805 scaling(fits::scalingAlgorithmFromString(config.get<std::string>("scaling.algorithm")),
1806 config.getAsInt("scaling.bitpix"),
1807 config.exists("scaling.maskPlanes") ? config.getArray<std::string>("scaling.maskPlanes")
1808 : std::vector<std::string>{},
1809 config.getAsInt("scaling.seed"), config.getAsDouble("scaling.quantizeLevel"),
1810 config.getAsDouble("scaling.quantizePad"), config.get<bool>("scaling.fuzz"),
1811 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 1829 of file fits.cc.

1829 {
1830 auto validated = std::make_shared<daf::base::PropertySet>();
1831
1832 validateEntry(*validated, config, "compression.algorithm", std::string("NONE"));
1833 validateEntry(*validated, config, "compression.columns", 0);
1834 validateEntry(*validated, config, "compression.rows", 1);
1835 validateEntry(*validated, config, "compression.quantizeLevel", 0.0);
1836
1837 validateEntry(*validated, config, "scaling.algorithm", std::string("NONE"));
1838 validateEntry(*validated, config, "scaling.bitpix", 0);
1839 validateEntry(*validated, config, "scaling.maskPlanes", std::vector<std::string>{"NO_DATA"});
1840 validateEntry(*validated, config, "scaling.seed", 1);
1841 validateEntry(*validated, config, "scaling.quantizeLevel", 5.0);
1842 validateEntry(*validated, config, "scaling.quantizePad", 10.0);
1843 validateEntry(*validated, config, "scaling.fuzz", true);
1844 validateEntry(*validated, config, "scaling.bscale", 1.0);
1845 validateEntry(*validated, config, "scaling.bzero", 0.0);
1846
1847 // Check for additional entries that we don't support (e.g., from typos)
1848 for (auto const &name : config.names(false)) {
1849 if (!validated->exists(name)) {
1851 os << "Invalid image write option: " << name;
1852 throw LSST_EXCEPT(pex::exceptions::RuntimeError, os.str());
1853 }
1854 }
1855
1856 return validated;
1857}
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: