lsst.afw 22.0.1-48-g5c39d4753+955d02b84f
Public Member Functions | Public Attributes | List of all members
lsst::afw::fits::ImageScale Struct Reference

Scale to apply to image. More...

#include <fitsCompression.h>

Public Member Functions

 ImageScale (int bitpix_, double bscale_, double bzero_)
 Constructor. More...
 
template<typename T >
std::shared_ptr< detail::PixelArrayBasetoFits (ndarray::Array< T const, 2, 2 > const &image, bool forceNonfiniteRemoval, bool fuzz=true, ndarray::Array< long, 1 > const &tiles=ndarray::Array< long, 1, 1 >(), int seed=1) const
 Convert to an array of pixel values to write to FITS. More...
 
template<typename T >
ndarray::Array< T, 2, 2 > fromFits (ndarray::Array< T, 2, 2 > const &image) const
 Convert to an array. More...
 

Public Attributes

int bitpix
 Bits per pixel; negative means floating-point: 8,16,32,64,-32,-64. More...
 
double bscale
 Scale to apply when reading from FITS. More...
 
double bzero
 Zero-point to apply when reading from FITS. More...
 
long blank
 Value for integer images indicating non-finite values. More...
 

Detailed Description

Scale to apply to image.

Images are scaled to the type implied by the provided BITPIX using the provided scale and zero-point:

value in memory = BZERO + BSCALE * value in FITS

In addition to scaling, a random field of values distributed [0,1) may be added before quantisation ("fuzz"); this preserves the expectation value of the floating-point image, while increasing the variance by 1/12.

Definition at line 262 of file fitsCompression.h.

Constructor & Destructor Documentation

◆ ImageScale()

lsst::afw::fits::ImageScale::ImageScale ( int  bitpix_,
double  bscale_,
double  bzero_ 
)
inline

Constructor.

We make BZERO an integer multiple of BSCALE, because cfitsio notes: "This helps to ensure the same scaling will be performed if the file undergoes multiple fpack/funpack cycles".

The BLANK is 255 for BITPIX=8 since FITS specifies that uses unsigned char; otherwise it is set to the maximum int for the appropriate signed integer.

Definition at line 276 of file fitsCompression.h.

Member Function Documentation

◆ fromFits()

template<typename T >
ndarray::Array< T, 2, 2 > lsst::afw::fits::ImageScale::fromFits ( ndarray::Array< T, 2, 2 > const &  image) const

Convert to an array.

Use of this method is generally not necessary, since cfitsio automatically applies the scaling on read. However, it may be useful for applying novel scalings (e.g., logarithmic).

Definition at line 485 of file fitsCompression.cc.

◆ toFits()

template<typename T >
std::shared_ptr< detail::PixelArrayBase > lsst::afw::fits::ImageScale::toFits ( ndarray::Array< T const, 2, 2 > const &  image,
bool  forceNonfiniteRemoval,
bool  fuzz = true,
ndarray::Array< long, 1 > const &  tiles = ndarray::Array<long, 1, 1>(),
int  seed = 1 
) const

Convert to an array of pixel values to write to FITS.

Parameters
[in]imageImage to scale
[in]forceNonfiniteRemovalForce removal of non-finite values? This is useful for lossless compression, because cfitsio doesn't mask out non-finite values, and they end up contaminating the entire tile.
[in]fuzzAdd random values before quantising?
[in]tilesTile dimensions
[in]seedSeed for random number generator
Returns
Array of pixel values, appropriately scaled.

Definition at line 408 of file fitsCompression.cc.

Member Data Documentation

◆ bitpix

int lsst::afw::fits::ImageScale::bitpix

Bits per pixel; negative means floating-point: 8,16,32,64,-32,-64.

Definition at line 263 of file fitsCompression.h.

◆ blank

long lsst::afw::fits::ImageScale::blank

Value for integer images indicating non-finite values.

Definition at line 266 of file fitsCompression.h.

◆ bscale

double lsst::afw::fits::ImageScale::bscale

Scale to apply when reading from FITS.

Definition at line 264 of file fitsCompression.h.

◆ bzero

double lsst::afw::fits::ImageScale::bzero

Zero-point to apply when reading from FITS.

Definition at line 265 of file fitsCompression.h.


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