LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
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. More...
 
template<typename T >
 ImageWriteOptions (image::Mask< T > const &mask)
 Construct with default options for masks. More...
 
 ImageWriteOptions (ImageCompressionOptions const &compression_=ImageCompressionOptions(ImageCompressionOptions::NONE), ImageScalingOptions const &scaling_=ImageScalingOptions())
 Construct with specific compression and scaling options. More...
 
 ImageWriteOptions (ImageScalingOptions const &scaling_)
 Construct with specific scaling options. More...
 
 ImageWriteOptions (daf::base::PropertySet const &config)
 Construct from a PropertySet. More...
 

Static Public Member Functions

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

Public Attributes

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

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 219 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 225 of file fits.h.

225 : compression(image) {}
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
ImageCompressionOptions compression
Options controlling compression.
Definition: fits.h:220

◆ 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 229 of file fits.h.

229 : 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 232 of file fits.h.

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

◆ ImageWriteOptions() [4/5]

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

Construct with specific scaling options.

Definition at line 238 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 1752 of file fits.cc.

1753  : compression(fits::compressionAlgorithmFromString(config.get<std::string>("compression.algorithm")),
1754  std::vector<long>{config.getAsInt64("compression.columns"),
1755  config.getAsInt64("compression.rows")},
1756  config.getAsDouble("compression.quantizeLevel")),
1757  scaling(fits::scalingAlgorithmFromString(config.get<std::string>("scaling.algorithm")),
1758  config.getAsInt("scaling.bitpix"),
1759  config.exists("scaling.maskPlanes") ? config.getArray<std::string>("scaling.maskPlanes")
1761  config.getAsInt("scaling.seed"), config.getAsDouble("scaling.quantizeLevel"),
1762  config.getAsDouble("scaling.quantizePad"), config.get<bool>("scaling.fuzz"),
1763  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.

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 1781 of file fits.cc.

1781  {
1782  auto validated = std::make_shared<daf::base::PropertySet>();
1783 
1784  validateEntry(*validated, config, "compression.algorithm", std::string("NONE"));
1785  validateEntry(*validated, config, "compression.columns", 0);
1786  validateEntry(*validated, config, "compression.rows", 1);
1787  validateEntry(*validated, config, "compression.quantizeLevel", 0.0);
1788 
1789  validateEntry(*validated, config, "scaling.algorithm", std::string("NONE"));
1790  validateEntry(*validated, config, "scaling.bitpix", 0);
1791  validateEntry(*validated, config, "scaling.maskPlanes", std::vector<std::string>{"NO_DATA"});
1792  validateEntry(*validated, config, "scaling.seed", 1);
1793  validateEntry(*validated, config, "scaling.quantizeLevel", 5.0);
1794  validateEntry(*validated, config, "scaling.quantizePad", 10.0);
1795  validateEntry(*validated, config, "scaling.fuzz", true);
1796  validateEntry(*validated, config, "scaling.bscale", 1.0);
1797  validateEntry(*validated, config, "scaling.bzero", 0.0);
1798 
1799  // Check for additional entries that we don't support (e.g., from typos)
1800  for (auto const &name : config.names(false)) {
1801  if (!validated->exists(name)) {
1803  os << "Invalid image write option: " << name;
1804  throw LSST_EXCEPT(pex::exceptions::RuntimeError, os.str());
1805  }
1806  }
1807 
1808  return validated;
1809 }
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 220 of file fits.h.

◆ scaling

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

Options controlling scaling.

Definition at line 221 of file fits.h.


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