LSST Applications g070148d5b3+33e5256705,g0d53e28543+25c8b88941,g0da5cf3356+2dd1178308,g1081da9e2a+62d12e78cb,g17e5ecfddb+7e422d6136,g1c76d35bf8+ede3a706f7,g295839609d+225697d880,g2e2c1a68ba+cc1f6f037e,g2ffcdf413f+853cd4dcde,g38293774b4+62d12e78cb,g3b44f30a73+d953f1ac34,g48ccf36440+885b902d19,g4b2f1765b6+7dedbde6d2,g5320a0a9f6+0c5d6105b6,g56b687f8c9+ede3a706f7,g5c4744a4d9+ef6ac23297,g5ffd174ac0+0c5d6105b6,g6075d09f38+66af417445,g667d525e37+2ced63db88,g670421136f+2ced63db88,g71f27ac40c+2ced63db88,g774830318a+463cbe8d1f,g7876bc68e5+1d137996f1,g7985c39107+62d12e78cb,g7fdac2220c+0fd8241c05,g96f01af41f+368e6903a7,g9ca82378b8+2ced63db88,g9d27549199+ef6ac23297,gabe93b2c52+e3573e3735,gb065e2a02a+3dfbe639da,gbc3249ced9+0c5d6105b6,gbec6a3398f+0c5d6105b6,gc9534b9d65+35b9f25267,gd01420fc67+0c5d6105b6,geee7ff78d7+a14128c129,gf63283c776+ede3a706f7,gfed783d017+0c5d6105b6,w.2022.47
LSST Data Management Base Package
Loading...
Searching...
No Matches
Namespaces | Functions
lsst::coadd::utils Namespace Reference

Namespaces

namespace  version
 

Functions

template<typename CoaddPixelT , typename WeightPixelT >
lsst::geom::Box2I addToCoadd (lsst::afw::image::Image< CoaddPixelT > &coadd, lsst::afw::image::Image< WeightPixelT > &weightMap, lsst::afw::image::Image< CoaddPixelT > const &image, WeightPixelT weight)
 add good pixels from an image to a coadd and associated weight map More...
 
template<typename CoaddPixelT , typename WeightPixelT >
lsst::geom::Box2I addToCoadd (lsst::afw::image::MaskedImage< CoaddPixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > &coadd, lsst::afw::image::Image< WeightPixelT > &weightMap, lsst::afw::image::MaskedImage< CoaddPixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > const &maskedImage, lsst::afw::image::MaskPixel const badPixelMask, WeightPixelT weight)
 add good pixels from a masked image to a coadd image and associated weight map More...
 
template<typename ImagePixelT >
int copyGoodPixels (lsst::afw::image::Image< ImagePixelT > &destImage, lsst::afw::image::Image< ImagePixelT > const &srcImage)
 copy good pixels from one image to another More...
 
template<typename ImagePixelT >
int copyGoodPixels (lsst::afw::image::MaskedImage< ImagePixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > &destImage, lsst::afw::image::MaskedImage< ImagePixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > const &srcImage, lsst::afw::image::MaskPixel const badPixelMask)
 copy good pixels from one masked image to another More...
 
template<typename WeightPixelT >
void setCoaddEdgeBits (lsst::afw::image::Mask< lsst::afw::image::MaskPixel > &coaddMask, lsst::afw::image::Image< WeightPixelT > const &weightMap)
 set edge bits of coadd mask based on weight map More...
 
 PYBIND11_MODULE (addToCoadd, mod)
 
 PYBIND11_MODULE (copyGoodPixels, mod)
 
 PYBIND11_MODULE (setCoaddEdgeBits, mod)
 

Function Documentation

◆ addToCoadd() [1/2]

template<typename CoaddPixelT , typename WeightPixelT >
lsst::geom::Box2I lsst::coadd::utils::addToCoadd ( lsst::afw::image::Image< CoaddPixelT > &  coadd,
lsst::afw::image::Image< WeightPixelT > &  weightMap,
lsst::afw::image::Image< CoaddPixelT > const &  image,
WeightPixelT  weight 
)

add good pixels from an image to a coadd and associated weight map

The images are assumed to be registered to the same wcs and parent origin, thus: coadd[i+coadd.x0, j+coadd.y0] += image[i+image.x0, j+image.y0] weightMap[i+weightMap.x0, j+weightMap.y0] += weight for all good image pixels that overlap a coadd pixel. Good pixels are those that are not NaN (thus they do include +/- inf).

Returns
overlapBBox: overlapping bounding box, relative to parent image (hence xy0 is taken into account)
Exceptions
pexExcept::InvalidParameterErrorif coadd and weightMap dimensions or xy0 do not match.
Parameters
[in,out]coaddcoadd to be modified
[in,out]weightMapweight map to be modified; this is the sum of weights of all images contributing each pixel of the coadd
imageimage to add to coadd
weightrelative weight of this image

Definition at line 127 of file addToCoadd.cc.

133 {
135 return addToCoaddImpl<Image, WeightPixelT, CheckKnownValue>(coadd, weightMap, image, 0x0, weight);
136}
A class to represent a 2-dimensional array of pixels.
Definition: Image.h:51
afw::table::Key< double > weight

◆ addToCoadd() [2/2]

template<typename CoaddPixelT , typename WeightPixelT >
lsst::geom::Box2I lsst::coadd::utils::addToCoadd ( lsst::afw::image::MaskedImage< CoaddPixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > &  coadd,
lsst::afw::image::Image< WeightPixelT > &  weightMap,
lsst::afw::image::MaskedImage< CoaddPixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > const &  maskedImage,
lsst::afw::image::MaskPixel const  badPixelMask,
WeightPixelT  weight 
)

add good pixels from a masked image to a coadd image and associated weight map

The images are assumed to be registered to the same wcs and parent origin, thus: coadd[i+coadd.x0, j+coadd.y0] += image[i+image.x0, j+image.y0] weightMap[i+weightMap.x0, j+weightMap.y0] += weight for all good image pixels that overlap a coadd pixel. Good pixels are those for which mask & badPixelMask == 0.

Returns
overlapBBox: overlapping bounding box, relative to parent image (hence xy0 is taken into account)
Exceptions
pexExcept::InvalidParameterErrorif coadd and weightMap dimensions or xy0 do not match.
Parameters
[in,out]coaddcoadd to be modified
[in,out]weightMapweight map to be modified; this is the sum of weights of all images contributing each pixel of the coadd
maskedImagemasked image to add to coadd
badPixelMaskskip input pixel if input mask & badPixelMask !=0
weightrelative weight of this image

Definition at line 139 of file addToCoadd.cc.

148 {
150 return addToCoaddImpl<Image,WeightPixelT,CheckMask>(coadd, weightMap, maskedImage, badPixelMask, weight);
151}
A class to manipulate images, masks, and variance as a single object.
Definition: MaskedImage.h:74

◆ copyGoodPixels() [1/2]

template<typename ImagePixelT >
int lsst::coadd::utils::copyGoodPixels ( lsst::afw::image::Image< ImagePixelT > &  destImage,
lsst::afw::image::Image< ImagePixelT > const &  srcImage 
)

copy good pixels from one image to another

Good pixels are those that are not NaN (thus they do include +/- inf).

Only the overlapping pixels (relative to the parent) are copied; thus the images do not have to be the same size.

Returns
number of pixels copied
Parameters
[in,out]destImageimage to be modified
srcImageimage to copy

Definition at line 116 of file copyGoodPixels.cc.

120 {
122 return copyGoodPixelsImpl<Image, CheckKnownValue>(destImage, srcImage, 0x0);
123}

◆ copyGoodPixels() [2/2]

template<typename ImagePixelT >
int lsst::coadd::utils::copyGoodPixels ( lsst::afw::image::MaskedImage< ImagePixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > &  destImage,
lsst::afw::image::MaskedImage< ImagePixelT, lsst::afw::image::MaskPixel, lsst::afw::image::VariancePixel > const &  srcImage,
lsst::afw::image::MaskPixel const  badPixelMask 
)

copy good pixels from one masked image to another

Good pixels are those for which mask & badPixelMask == 0.

Only the overlapping pixels (relative to the parent) are copied; thus the images do not have to be the same size.

Returns
number of pixels copied
Parameters
[in,out]destImageimage to be modified
srcImageimage to copy
badPixelMaskskip input pixel if src mask & badPixelMask != 0

Definition at line 126 of file copyGoodPixels.cc.

133 {
135 return copyGoodPixelsImpl<Image, CheckMask>(destImage, srcImage, badPixelMask);
136}

◆ PYBIND11_MODULE() [1/3]

lsst::coadd::utils::PYBIND11_MODULE ( addToCoadd  ,
mod   
)

Definition at line 56 of file addToCoadd.cc.

56 {
57 py::module::import("lsst.afw.geom");
58 py::module::import("lsst.afw.image");
59
60 declareAddToCoadd<double, double>(mod);
61 declareAddToCoadd<double, float>(mod);
62 declareAddToCoadd<double, int>(mod);
63 declareAddToCoadd<double, std::uint16_t>(mod);
64 declareAddToCoadd<float, double>(mod);
65 declareAddToCoadd<float, float>(mod);
66 declareAddToCoadd<float, int>(mod);
67 declareAddToCoadd<float, std::uint16_t>(mod);
68}

◆ PYBIND11_MODULE() [2/3]

lsst::coadd::utils::PYBIND11_MODULE ( copyGoodPixels  ,
mod   
)

Definition at line 52 of file copyGoodPixels.cc.

52 {
53 py::module::import("lsst.afw.image");
54
55 declareCopyGoodPixels<double>(mod);
56 declareCopyGoodPixels<float>(mod);
57 declareCopyGoodPixels<int>(mod);
58 declareCopyGoodPixels<std::uint16_t>(mod);
59}

◆ PYBIND11_MODULE() [3/3]

lsst::coadd::utils::PYBIND11_MODULE ( setCoaddEdgeBits  ,
mod   
)

Definition at line 48 of file setCoaddEdgeBits.cc.

48 {
49 py::module::import("lsst.afw.image");
50
51 declareSetCoaddEdgeBits<double>(mod);
52 declareSetCoaddEdgeBits<float>(mod);
53 declareSetCoaddEdgeBits<int>(mod);
54 declareSetCoaddEdgeBits<std::uint16_t>(mod);
55}

◆ setCoaddEdgeBits()

template<typename WeightPixelT >
void lsst::coadd::utils::setCoaddEdgeBits ( lsst::afw::image::Mask< lsst::afw::image::MaskPixel > &  coaddMask,
lsst::afw::image::Image< WeightPixelT > const &  weightMap 
)

set edge bits of coadd mask based on weight map

Set pixels in the image to the edge pixel when the corresponding pixel in the weight map is zero. The edge pixel is image=nan, variance=inf, mask=NO_DATA for masked images and image=nan for plain images.

Exceptions
pexExcept::InvalidParameterErrorif the dimensions of coaddMask and weightMap do not match.
Parameters
[in,out]coaddMaskmask of coadd
weightMapweight map

Definition at line 42 of file setCoaddEdgeBits.cc.

46 {
48 typedef typename afwImage::Image<WeightPixelT>::const_x_iterator WeightMapConstXIter;
49
50 if (coaddMask.getDimensions() != weightMap.getDimensions()) {
52 (boost::format("coaddMask and weightMap dimensions differ: %dx%d != %dx%d") %
53 coaddMask.getWidth() % coaddMask.getHeight() % weightMap.getWidth() % weightMap.getHeight()
54 ).str());
55 }
56
58
59 // Set the pixels row by row, to avoid repeated checks for end-of-row
60 for (int y = 0, endY = weightMap.getHeight(); y != endY; ++y) {
61 WeightMapConstXIter weightMapPtr = weightMap.row_begin(y);
62 WeightMapConstXIter const weightMapEndPtr = weightMap.row_end(y);
63 MaskXIter coaddMaskPtr = coaddMask.row_begin(y);
64 for (; weightMapPtr != weightMapEndPtr; ++weightMapPtr, ++coaddMaskPtr) {
65 if (*weightMapPtr == 0) {
66 (*coaddMaskPtr) = (*coaddMaskPtr) | edgeMask;
67 }
68 }
69 }
70}
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int y
Definition: SpanSet.cc:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:294
lsst::geom::Extent2I getDimensions() const
Return the image's size; useful for passing to constructors.
Definition: ImageBase.h:356
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:296
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y'th row.
Definition: ImageBase.h:401
x_iterator row_end(int y) const
Return an x_iterator to the end of the y'th row.
Definition: ImageBase.h:404
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:77
Reports invalid arguments.
Definition: Runtime.h:66