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
|
Scale to apply to image. More...
#include <fitsCompression.h>
Public Member Functions | |
ImageScale (int bitpix_, double bscale_, double bzero_) | |
Constructor. | |
template<typename T > | |
std::shared_ptr< detail::PixelArrayBase > | 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. | |
template<typename T > | |
ndarray::Array< T, 2, 2 > | fromFits (ndarray::Array< T, 2, 2 > const &image) const |
Convert to an array. | |
Public Attributes | |
int | bitpix |
Bits per pixel; negative means floating-point: 8,16,32,64,-32,-64. | |
double | bscale |
Scale to apply when reading from FITS. | |
double | bzero |
Zero-point to apply when reading from FITS. | |
long | blank |
Value for integer images indicating non-finite values. | |
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.
|
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.
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 494 of file fitsCompression.cc.
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.
[in] | image | Image to scale |
[in] | forceNonfiniteRemoval | Force 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] | fuzz | Add random values before quantising? |
[in] | tiles | Tile dimensions |
[in] | seed | Seed for random number generator |
Definition at line 417 of file fitsCompression.cc.
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.
long lsst::afw::fits::ImageScale::blank |
Value for integer images indicating non-finite values.
Definition at line 266 of file fitsCompression.h.
double lsst::afw::fits::ImageScale::bscale |
Scale to apply when reading from FITS.
Definition at line 264 of file fitsCompression.h.
double lsst::afw::fits::ImageScale::bzero |
Zero-point to apply when reading from FITS.
Definition at line 265 of file fitsCompression.h.