39 template <
typename CoaddPixelT,
typename WeightPixelT>
53 if (coadd.getBBox() != weightMap.
getBBox()) {
55 (boost::format(
"coadd and weightMap parent bboxes differ: %s != %s") %
56 coadd.getBBox() % weightMap.
getBBox()).str());
61 if (overlapBBox.isEmpty()) {
65 Coadd coaddView(coadd, overlapBBox, afwImage::PARENT,
false);
66 WeightMap weightMapView(weightMap, overlapBBox, afwImage::PARENT,
false);
67 Coadd imageView(image, overlapBBox, afwImage::PARENT,
false);
69 for (
int y = 0, endY = imageView.getHeight();
y != endY; ++
y) {
70 typename Coadd::const_x_iterator imageIter = imageView.row_begin(y);
71 typename Coadd::const_x_iterator
const imageEndIter = imageView.row_end(y);
72 typename Coadd::x_iterator coaddIter = coaddView.row_begin(y);
73 typename WeightMap::x_iterator weightMapIter = weightMapView.row_begin(y);
74 for (; imageIter != imageEndIter; ++imageIter, ++coaddIter, ++weightMapIter) {
75 if ((imageIter.mask() & badPixelMask) == 0) {
76 CoaddPixelT value = imageIter.image() * imageIter.image() / imageIter.variance();
77 coaddIter.image() += value;
78 coaddIter.mask() |= imageIter.mask();
79 *weightMapIter += weight;
90 #define MASKEDIMAGE(IMAGEPIXEL) afwImage::MaskedImage<IMAGEPIXEL, \ 91 afwImage::MaskPixel, afwImage::VariancePixel> 92 #define INSTANTIATE(COADDPIXEL, WEIGHTPIXEL) \ 93 template afwGeom::Box2I coaddChiSq::addToCoadd<COADDPIXEL, WEIGHTPIXEL>( \ 94 MASKEDIMAGE(COADDPIXEL) &coadd, \ 95 afwImage::Image<WEIGHTPIXEL> &weightMap, \ 96 MASKEDIMAGE(COADDPIXEL) const &image, \ 97 afwImage::MaskPixel const badPixelMask, \
geom::Box2I getBBox(ImageOrigin origin=PARENT) const
lsst::afw::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 and associated weight map using the chi squared algori...
#define INSTANTIATE(FROMSYS, TOSYS)
#define LSST_EXCEPT(type,...)
void clip(Box2I const &other)