LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
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) {}
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) {}
ImageCompressionOptions compression
Options controlling compression.
Definition: fits.h:220

◆ 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_) {}
ImageCompressionOptions compression
Options controlling compression.
Definition: fits.h:220
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.

ImageCompressionOptions compression
Options controlling compression.
Definition: fits.h:220
ImageScalingOptions scaling
Options controlling scaling.
Definition: fits.h:221

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

1736  : compression(fits::compressionAlgorithmFromString(config.get<std::string>("compression.algorithm")),
1737  std::vector<long>{config.getAsInt64("compression.columns"),
1738  config.getAsInt64("compression.rows")},
1739  config.getAsDouble("compression.quantizeLevel")),
1740  scaling(fits::scalingAlgorithmFromString(config.get<std::string>("scaling.algorithm")),
1741  config.getAsInt("scaling.bitpix"),
1742  config.exists("scaling.maskPlanes") ? config.getArray<std::string>("scaling.maskPlanes")
1744  config.getAsInt("scaling.seed"), config.getAsDouble("scaling.quantizeLevel"),
1745  config.getAsDouble("scaling.quantizePad"), config.get<bool>("scaling.fuzz"),
1746  config.getAsDouble("scaling.bscale"), config.getAsDouble("scaling.bzero")) {}
ImageCompressionOptions compression
Options controlling compression.
Definition: fits.h:220
STL class.
ImageCompressionOptions::CompressionAlgorithm compressionAlgorithmFromString(std::string const &name)
Interpret compression algorithm expressed in string.
STL class.
ImageScalingOptions scaling
Options controlling scaling.
Definition: fits.h:221
ImageScalingOptions::ScalingAlgorithm scalingAlgorithmFromString(std::string const &name)
Interpret scaling 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 1764 of file fits.cc.

1764  {
1765  auto validated = std::make_shared<daf::base::PropertySet>();
1766 
1767  validateEntry(*validated, config, "compression.algorithm", std::string("NONE"));
1768  validateEntry(*validated, config, "compression.columns", 0);
1769  validateEntry(*validated, config, "compression.rows", 1);
1770  validateEntry(*validated, config, "compression.quantizeLevel", 0.0);
1771 
1772  validateEntry(*validated, config, "scaling.algorithm", std::string("NONE"));
1773  validateEntry(*validated, config, "scaling.bitpix", 0);
1774  validateEntry(*validated, config, "scaling.maskPlanes", std::vector<std::string>{"NO_DATA"});
1775  validateEntry(*validated, config, "scaling.seed", 1);
1776  validateEntry(*validated, config, "scaling.quantizeLevel", 5.0);
1777  validateEntry(*validated, config, "scaling.quantizePad", 10.0);
1778  validateEntry(*validated, config, "scaling.fuzz", true);
1779  validateEntry(*validated, config, "scaling.bscale", 1.0);
1780  validateEntry(*validated, config, "scaling.bzero", 0.0);
1781 
1782  // Check for additional entries that we don't support (e.g., from typos)
1783  for (auto const &name : config.names(false)) {
1784  if (!validated->exists(name)) {
1786  os << "Invalid image write option: " << name;
1787  throw LSST_EXCEPT(pex::exceptions::RuntimeError, os.str());
1788  }
1789  }
1790 
1791  return validated;
1792 }
STL class.
T str(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
std::ostream * os
Definition: Schema.cc:746

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: