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
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
lsst::ip::diffim::ImageStatistics< PixelT > Class Template Reference

Class to calculate difference image statistics. More...

#include <ImageStatistics.h>

Public Types

typedef std::shared_ptr< ImageStatisticsPtr
 
typedef lsst::afw::image::MaskedImage< PixelT >::x_iterator x_iterator
 

Public Member Functions

 ImageStatistics (lsst::daf::base::PropertySet const &ps)
 
virtual ~ImageStatistics ()
 
void reset ()
 
void apply (lsst::afw::image::MaskedImage< PixelT > const &image)
 
void apply (lsst::afw::image::MaskedImage< PixelT > const &image, int core)
 
void setBpMask (lsst::afw::image::MaskPixel bpMask)
 
lsst::afw::image::MaskPixel getBpMask ()
 
double getMean () const
 
double getVariance () const
 
double getRms () const
 
int getNpix () const
 
bool evaluateQuality (lsst::daf::base::PropertySet const &ps)
 

Detailed Description

template<typename PixelT>
class lsst::ip::diffim::ImageStatistics< PixelT >

Class to calculate difference image statistics.

Note
Find mean and unbiased variance of pixel residuals in units of sqrt(variance)

Definition at line 59 of file ImageStatistics.h.

Member Typedef Documentation

◆ Ptr

Definition at line 61 of file ImageStatistics.h.

◆ x_iterator

template<typename PixelT >
typedef lsst::afw::image::MaskedImage<PixelT>::x_iterator lsst::ip::diffim::ImageStatistics< PixelT >::x_iterator

Definition at line 62 of file ImageStatistics.h.

Constructor & Destructor Documentation

◆ ImageStatistics()

template<typename PixelT >
lsst::ip::diffim::ImageStatistics< PixelT >::ImageStatistics ( lsst::daf::base::PropertySet const & ps)
inline

Definition at line 64 of file ImageStatistics.h.

64 :
65 _xsum(0.), _x2sum(0.), _npix(0), _bpMask(0) {
66
67 std::vector<std::string> detBadMaskPlanes = ps.getArray<std::string>("badMaskPlanes");
68 for (std::vector<std::string>::iterator mi = detBadMaskPlanes.begin();
69 mi != detBadMaskPlanes.end(); ++mi){
70
71 try {
73 } catch (pexExcept::Exception& e) {
74 LOGL_DEBUG("TRACE4.ip.diffim.ImageStatistics",
75 "Cannot update bad bit mask with %s", (*mi).c_str());
76 LOGL_DEBUG("TRACE5.ip.diffim.ImageStatistics",
77 e.what());
78 }
79 }
80 } ;
#define LOGL_DEBUG(logger, message...)
Log a debug-level message using a varargs/printf style interface.
Definition Log.h:515
T begin(T... args)
Represent a 2-dimensional array of bitmask pixels.
Definition Mask.h:81
Provides consistent interface for LSST exceptions.
Definition Exception.h:107
virtual char const * what(void) const noexcept
Return a character string summarizing this exception.
Definition Exception.cc:99
T end(T... args)

◆ ~ImageStatistics()

template<typename PixelT >
virtual lsst::ip::diffim::ImageStatistics< PixelT >::~ImageStatistics ( )
inlinevirtual

Definition at line 81 of file ImageStatistics.h.

81{} ;

Member Function Documentation

◆ apply() [1/2]

template<typename PixelT >
void lsst::ip::diffim::ImageStatistics< PixelT >::apply ( lsst::afw::image::MaskedImage< PixelT > const & image)
inline

Definition at line 87 of file ImageStatistics.h.

87 {
88 apply(image, -1);
89 }
void apply(lsst::afw::image::MaskedImage< PixelT > const &image)

◆ apply() [2/2]

template<typename PixelT >
void lsst::ip::diffim::ImageStatistics< PixelT >::apply ( lsst::afw::image::MaskedImage< PixelT > const & image,
int core )
inline

Definition at line 91 of file ImageStatistics.h.

91 {
92 reset();
93 int y0, y1, x0, x1;
94 if (core == -1) {
95 y0 = 0;
96 y1 = image.getHeight();
97 x0 = 0;
98 x1 = image.getWidth();
99 }
100 else {
101 y0 = std::max(0, image.getHeight()/2 - core);
102 y1 = std::min(image.getHeight(), image.getHeight()/2 + core + 1);
103 x0 = std::max(0, image.getWidth()/2 - core);
104 x1 = std::min(image.getWidth(), image.getWidth()/2 + core + 1);
105 }
106
107 for (int y = y0; y != y1; ++y) {
108 for (x_iterator ptr = image.x_at(x0, y), end = image.x_at(x1, y);
109 ptr != end; ++ptr) {
110 if (!((*ptr).mask() & _bpMask)) {
111 double const ivar = 1. / (*ptr).variance();
112 if (std::isfinite(ivar)) {
113 _xsum += (*ptr).image() * sqrt(ivar);
114 _x2sum += (*ptr).image() * (*ptr).image() * ivar;
115 _npix += 1;
116 }
117 }
118 }
119 }
120 if ((!std::isfinite(_xsum)) || (!std::isfinite(_x2sum))) {
122 "Nan/Inf in ImageStatistics.apply");
123 }
124 }
int end
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
std::uint64_t * ptr
Definition RangeSet.cc:95
int y
Definition SpanSet.cc:48
lsst::afw::image::MaskedImage< PixelT >::x_iterator x_iterator
T isfinite(T... args)
T max(T... args)
T min(T... args)

◆ evaluateQuality()

template<typename PixelT >
bool lsst::ip::diffim::ImageStatistics< PixelT >::evaluateQuality ( lsst::daf::base::PropertySet const & ps)
inline

Definition at line 146 of file ImageStatistics.h.

146 {
147 if ( fabs(getMean()) > ps.getAsDouble("maximumFootprintResidualMean") ) return false;
148 if ( getRms() > ps.getAsDouble("maximumFootprintResidualStd") ) return false;
149 return true;
150 }
T fabs(T... args)

◆ getBpMask()

template<typename PixelT >
lsst::afw::image::MaskPixel lsst::ip::diffim::ImageStatistics< PixelT >::getBpMask ( )
inline

Definition at line 127 of file ImageStatistics.h.

127{return _bpMask;}

◆ getMean()

template<typename PixelT >
double lsst::ip::diffim::ImageStatistics< PixelT >::getMean ( ) const
inline

Definition at line 130 of file ImageStatistics.h.

130 {
131 return (_npix > 0) ? _xsum/_npix : std::numeric_limits<double>::quiet_NaN();
132 }
T quiet_NaN(T... args)

◆ getNpix()

template<typename PixelT >
int lsst::ip::diffim::ImageStatistics< PixelT >::getNpix ( ) const
inline

Definition at line 143 of file ImageStatistics.h.

143{ return _npix; }

◆ getRms()

template<typename PixelT >
double lsst::ip::diffim::ImageStatistics< PixelT >::getRms ( ) const
inline

Definition at line 139 of file ImageStatistics.h.

139 {
140 return sqrt(getVariance());
141 }

◆ getVariance()

template<typename PixelT >
double lsst::ip::diffim::ImageStatistics< PixelT >::getVariance ( ) const
inline

Definition at line 134 of file ImageStatistics.h.

134 {
135 return (_npix > 1) ? (_x2sum/_npix - _xsum/_npix * _xsum/_npix) * _npix/(_npix-1.) :
137 }

◆ reset()

template<typename PixelT >
void lsst::ip::diffim::ImageStatistics< PixelT >::reset ( )
inline

Definition at line 84 of file ImageStatistics.h.

84{ _xsum = _x2sum = 0.; _npix = 0;}

◆ setBpMask()

template<typename PixelT >
void lsst::ip::diffim::ImageStatistics< PixelT >::setBpMask ( lsst::afw::image::MaskPixel bpMask)
inline

Definition at line 126 of file ImageStatistics.h.

126{_bpMask = bpMask;}

The documentation for this class was generated from the following file: