34     template <
typename PixelT>
 
   44              mi != detBadMaskPlanes.
end(); ++mi){
 
   48                 LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection",
 
   49                            "Cannot update bad bit mask with %s", (*mi).c_str());
 
   50                 LOGL_DEBUG(
"TRACE4.ip.diffim.KernelCandidateDetection",
 
   54         LOGL_DEBUG(
"TRACE2.ip.diffim.KernelCandidateDetection",
 
   55                    "Using bad bit mask %d", _badBitMask);
 
   78     template <
typename PixelT>
 
   85         int fpNpixMin                = _ps->getAsInt(
"fpNpixMin");
 
   86         int fpGrowPix                = _ps->getAsInt(
"fpGrowPix");
 
   88         bool detOnTemplate           = _ps->getAsBool(
"detOnTemplate");
 
   89         double detThreshold          = _ps->getAsDouble(
"detThreshold");
 
   90         std::string detThresholdType = _ps->getAsString(
"detThresholdType");
 
  102         if (detOnTemplate == 
true) {
 
  104                 *(templateMaskedImage),
 
  111             LOGL_DEBUG(
"TRACE2.ip.diffim.KernelCandidateDetection.apply",
 
  112                        "Found %d total footprints in template above %.3f %s",
 
  113                        footprintListInPtr->size(), detThreshold, detThresholdType.
c_str());
 
  117                 *(scienceMaskedImage),
 
  123             LOGL_DEBUG(
"TRACE2.ip.diffim.KernelCandidateDetection.apply",
 
  124                        "Found %d total footprints in science image above %.3f %s",
 
  125                        footprintListInPtr->size(), detThreshold, detThresholdType.
c_str());
 
  130              i != footprintListInPtr->end(); ++i) {
 
  132             growCandidate((*i), fpGrowPix, templateMaskedImage, scienceMaskedImage);
 
  135         if (_footprints.size() == 0) {
 
  137                               "Unable to find any footprints for Psf matching");
 
  140         LOGL_DEBUG(
"TRACE1.ip.diffim.KernelCandidateDetection.apply",
 
  141                    "Found %d clean footprints above threshold %.3f",
 
  142                    _footprints.size(), detThreshold);
 
  146     template <
typename PixelT>
 
  153         int fpNpixMax = _ps->getAsInt(
"fpNpixMax");
 
  170             LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection.apply",
 
  171                        "Footprint has too many pix: %d (max =%d)",
 
  181             return growCandidate(fpCore, fpGrowPix, templateMaskedImage, scienceMaskedImage);
 
  184         LOGL_DEBUG(
"TRACE5.ip.diffim.KernelCandidateDetection.apply",
 
  185                           "Original footprint in parent : %d,%d -> %d,%d -> %d,%d",
 
  210             fp->
getSpans()->dilated(fpGrowPix, afwGeom::Stencil::MANHATTAN)
 
  216         LOGL_DEBUG(
"TRACE5.ip.diffim.KernelCandidateDetection.apply",
 
  217                    "Grown footprint in parent : %d,%d -> %d,%d -> %d,%d",
 
  226         if (!(templateMaskedImage->getBBox().contains(fpGrowBBox))) {
 
  227             LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection.apply",
 
  228                        "Footprint grown off image");
 
  233         bool subimageHasFailed = 
false;
 
  240             if (fsb.
getBits() & _badBitMask) {
 
  241                 LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection.apply",
 
  242                            "Footprint has masked pix (vals=%d) in image to convolve",
 
  244                 subimageHasFailed = 
true;
 
  248             if (fsb.
getBits() & _badBitMask) {
 
  249                 LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection.apply",
 
  250                            "Footprint has masked pix (vals=%d) in image not to convolve",
 
  252                 subimageHasFailed = 
true;
 
  256             LOGL_DEBUG(
"TRACE3.ip.diffim.KernelCandidateDetection.apply",
 
  257                        "Exception caught extracting Footprint");
 
  258             LOGL_DEBUG(
"TRACE4.ip.diffim.KernelCandidateDetection.apply",
 
  260             subimageHasFailed = 
true;
 
  262         if (subimageHasFailed) {
 
  266             _footprints.push_back(fpGrow);
 
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
 
Image Subtraction helper functions.
 
Detect candidates for kernels within 2 images.
 
LSST DM logging module built on log4cxx.
 
#define LOGL_DEBUG(logger, message...)
Log a debug-level message using a varargs/printf style interface.
 
A Threshold is used to pass a threshold value to detection algorithms.
 
static MaskPixelT getPlaneBitMask(const std::vector< std::string > &names)
Return the bitmask corresponding to a vector of plane names OR'd together.
 
A class to manipulate images, masks, and variance as a single object.
 
MaskPtr getMask() const
Return a (shared_ptr to) the MaskedImage's mask.
 
Class for storing generic metadata.
 
An integer coordinate rectangle.
 
int getMinY() const noexcept
 
int getMinX() const noexcept
 
int getMaxX() const noexcept
 
int getMaxY() const noexcept
 
Class to accumulate Mask bits.
 
void apply(MaskT const &mask)
 
MaskT::Pixel getBits() const
 
Search through images for Footprints with no masked pixels.
 
bool growCandidate(std::shared_ptr< lsst::afw::detection::Footprint > fp, int fpGrowPix, MaskedImagePtr const &templateMaskedImage, MaskedImagePtr const &scienceMaskedImage)
 
KernelCandidateDetection(lsst::daf::base::PropertySet const &ps)
 
void apply(MaskedImagePtr const &templateMaskedImage, MaskedImagePtr const &scienceMaskedImage)
Runs Detection on a single image for significant peaks, and checks returned Footprints for Masked pix...
 
Provides consistent interface for LSST exceptions.
 
virtual char const  * what(void) const noexcept
Return a character string summarizing this exception.
 
Threshold createThreshold(const double value, const std::string type="value", const bool polarity=true)
Factory method for creating Threshold objects.
 
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
 
lsst::afw::detection::Footprint Footprint
 
A base class for image defects.