Class WarpingControl

Class Documentation

class WarpingControl

Parameters to control convolution

Note

padValue is not member of this class to avoid making this a templated class.

Public Functions

WarpingControl(std::string const &warpingKernelName, std::string const &maskWarpingKernelName = "", int cacheSize = 0, int interpLength = 0, lsst::afw::image::MaskPixel growFullMask = 0)

Parameters
  • warpingKernelName: name of warping kernel; used as the argument to makeWarpingKernel

  • maskWarpingKernelName: name of warping kernel used for the mask plane; if “” then the regular warping kernel is used. Intended so one can use a bilinear kernel or other compact kernel for the mask plane to avoid smearing mask bits too far. The theory is that bad pixels are already interpolated over, so we don’t need to worry about bad values spreading very far.

  • cacheSize: cache size for warping kernel; no cache if 0 (used as the argument to the warping kernels’ computeCache method)

  • interpLength: distance over which the WCS can be linearly interpolated

  • growFullMask: mask bits to grow to full width of image/variance kernel

Construct a WarpingControl object

Exceptions
  • pex::exceptions::InvalidParameterError: if the warping kernel is smaller than the mask warping kernel.

virtual ~WarpingControl()
int getCacheSize() const

get the cache size for the interpolation kernel(s)

void setCacheSize(int cacheSize)

Parameters
  • cacheSize: cache size

set the cache size for the interpolation kernel(s)

A value of 0 disables the cache for maximum accuracy. 10,000 typically results in a warping error of a fraction of a count. 100,000 typically results in a warping error of less than 0.01 count. Note the new cache is not computed until getWarpingKernel or getMaskWarpingKernel is called.

int getInterpLength() const

get the interpolation length (pixels)

void setInterpLength(int interpLength)

Parameters
  • interpLength: interpolation length (pixels)

set the interpolation length

Interpolation length is the distance over which the WCS can be linearly interpolated, in pixels:

  • 0 means no interpolation and uses an optimized branch of the code

  • 1 also performs no interpolation but it runs the interpolation code branch (and so is only intended for unit tests)

std::shared_ptr<SeparableKernel> getWarpingKernel() const

get the warping kernel

void setWarpingKernelName(std::string const &warpingKernelName)

Parameters
  • warpingKernelName: name of warping kernel

set the warping kernel by name

void setWarpingKernel(SeparableKernel const &warpingKernel)

Parameters
  • warpingKernel: warping kernel

set the warping kernel

Exceptions
  • lsst::pex::exceptions::InvalidParameterError: if new kernel pointer is empty.

std::shared_ptr<SeparableKernel> getMaskWarpingKernel() const

get the mask warping kernel

bool hasMaskWarpingKernel() const

return true if there is a mask kernel

void setMaskWarpingKernelName(std::string const &maskWarpingKernelName)

Parameters
  • maskWarpingKernelName: name of mask warping kernel; use “” to clear the kernel

set or clear the mask warping kernel by name

void setMaskWarpingKernel(SeparableKernel const &maskWarpingKernel)

Parameters
  • maskWarpingKernel: mask warping kernel

set the mask warping kernel

Note

To clear the mask warping kernel use setMaskWarpingKernelName(“”).

lsst::afw::image::MaskPixel getGrowFullMask() const

get mask bits to grow to full width of image/variance kernel

void setGrowFullMask(lsst::afw::image::MaskPixel growFullMask)

Parameters
  • growFullMask: mask bits to grow to full width of image/variance kernel

set mask bits to grow to full width of image/variance kernel