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 | Static Public Member Functions | List of all members
lsst::afw::detection::Threshold Class Referencefinal

A Threshold is used to pass a threshold value to detection algorithms. More...

#include <Threshold.h>

Public Types

enum  ThresholdType {
  VALUE , BITMASK , STDEV , VARIANCE ,
  PIXEL_STDEV
}
 Types of threshold: More...
 

Public Member Functions

 Threshold (double const value, ThresholdType const type=VALUE, bool const polarity=true, double const includeMultiplier=1.0)
 Threshold constructor.
 
 ~Threshold () noexcept=default
 
 Threshold (Threshold const &) noexcept=default
 
 Threshold (Threshold &&) noexcept=default
 
Thresholdoperator= (Threshold const &) noexcept=default
 
Thresholdoperator= (Threshold &&) noexcept=default
 
ThresholdType getType () const noexcept
 return type of threshold
 
double getValue (const double param=-1) const
 return value of threshold, to be interpreted via type
 
template<typename ImageT >
double getValue (ImageT const &image) const
 return value of threshold by interrogating the image, if required
 
bool getPolarity () const noexcept
 return Threshold's polarity
 
void setPolarity (bool const polarity) noexcept
 set Threshold's polarity
 
double getIncludeMultiplier () const noexcept
 return includeMultiplier
 
void setIncludeMultiplier (double const includeMultiplier)
 set includeMultiplier
 

Static Public Member Functions

static ThresholdType parseTypeString (std::string const &typeStr)
 
static std::string getTypeString (ThresholdType const &type)
 

Detailed Description

A Threshold is used to pass a threshold value to detection algorithms.

The threshold may be a simple value (type == VALUE), or in units of the image standard deviation. Alternatively you may specify that you'll provide the standard deviation (type == STDEV) or variance (type == VARIANCE)

Note that the constructor is not declared explicit, so you may pass a bare threshold, and it'll be interpreted as a VALUE.

Definition at line 43 of file Threshold.h.

Member Enumeration Documentation

◆ ThresholdType

Types of threshold:

Enumerator
VALUE 

Use pixel value.

BITMASK 

Use (pixels & (given mask))

STDEV 

Use number of sigma given s.d.

VARIANCE 

Use number of sigma given variance.

PIXEL_STDEV 

Use number of sigma given per-pixel s.d.

Definition at line 46 of file Threshold.h.

46 {
47 VALUE,
48 BITMASK,
49 STDEV,
50 VARIANCE,
52 };
@ VARIANCE
Use number of sigma given variance.
Definition Threshold.h:50
@ PIXEL_STDEV
Use number of sigma given per-pixel s.d.
Definition Threshold.h:51
@ STDEV
Use number of sigma given s.d.
Definition Threshold.h:49
@ BITMASK
Use (pixels & (given mask))
Definition Threshold.h:48

Constructor & Destructor Documentation

◆ Threshold() [1/3]

lsst::afw::detection::Threshold::Threshold ( double const value,
ThresholdType const type = VALUE,
bool const polarity = true,
double const includeMultiplier = 1.0 )
inline

Threshold constructor.

Parameters
valuedesired threshold value
typeinterpretation of type
polaritysearch pixel above threshold? (useful for -ve thresholds)
includeMultiplierthreshold multiplier for inclusion in FootprintSet

Definition at line 57 of file Threshold.h.

62 : _value(value), _type(type), _polarity(polarity), _includeMultiplier(includeMultiplier) {}

◆ ~Threshold()

lsst::afw::detection::Threshold::~Threshold ( )
defaultnoexcept

◆ Threshold() [2/3]

lsst::afw::detection::Threshold::Threshold ( Threshold const & )
defaultnoexcept

◆ Threshold() [3/3]

lsst::afw::detection::Threshold::Threshold ( Threshold && )
defaultnoexcept

Member Function Documentation

◆ getIncludeMultiplier()

double lsst::afw::detection::Threshold::getIncludeMultiplier ( ) const
inlinenoexcept

return includeMultiplier

Definition at line 100 of file Threshold.h.

100{ return _includeMultiplier; }

◆ getPolarity()

bool lsst::afw::detection::Threshold::getPolarity ( ) const
inlinenoexcept

return Threshold's polarity

Definition at line 92 of file Threshold.h.

92{ return _polarity; }

◆ getType()

ThresholdType lsst::afw::detection::Threshold::getType ( ) const
inlinenoexcept

return type of threshold

Definition at line 71 of file Threshold.h.

71{ return _type; }

◆ getTypeString()

std::string lsst::afw::detection::Threshold::getTypeString ( ThresholdType const & type)
static

Definition at line 54 of file Threshold.cc.

54 {
55 if (type == VALUE) {
56 return "value";
57 } else if (type == STDEV) {
58 return "stdev";
59 } else if (type == VARIANCE) {
60 return "variance";
61 } else {
63 (boost::format("Unsopported Threshold type: %d") % type).str());
64 }
65}
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
Reports invalid arguments.
Definition Runtime.h:66

◆ getValue() [1/2]

double lsst::afw::detection::Threshold::getValue ( const double param = -1) const

return value of threshold, to be interpreted via type

Parameters
paramvalue of variance/stdev if needed
Returns
value of threshold

Definition at line 67 of file Threshold.cc.

67 {
68 switch (_type) {
69 case STDEV:
70 if (param <= 0) {
72 (boost::format("St. dev. must be > 0: %g") % param).str());
73 }
74 return _value * param;
75 case VALUE:
76 case BITMASK:
77 case PIXEL_STDEV:
78 return _value;
79 case VARIANCE:
80 if (param <= 0) {
82 (boost::format("Variance must be > 0: %g") % param).str());
83 }
84 return _value * std::sqrt(param);
85 default:
87 (boost::format("Unsupported type: %d") % _type).str());
88 }
89}
T sqrt(T... args)

◆ getValue() [2/2]

template<typename ImageT >
double lsst::afw::detection::Threshold::getValue ( ImageT const & image) const

return value of threshold by interrogating the image, if required

Parameters
imageImage to interrogate, if threshold type demands
Returns
value of threshold

Definition at line 92 of file Threshold.cc.

92 {
93 double param = -1; // Parameter for getValue()
94 if (_type == STDEV || _type == VARIANCE) {
95 math::Statistics stats = math::makeStatistics(image, math::STDEVCLIP);
96 double const sd = stats.getValue(math::STDEVCLIP);
97
98 LOGL_DEBUG("lsst.afw.detection.threshold", "St. Dev = %g", sd);
99
100 if (_type == VARIANCE) {
101 param = sd * sd;
102 } else {
103 param = sd;
104 }
105 }
106 return getValue(param);
107}
#define LOGL_DEBUG(logger, message...)
Log a debug-level message using a varargs/printf style interface.
Definition Log.h:515
double getValue(const double param=-1) const
return value of threshold, to be interpreted via type
Definition Threshold.cc:67
Statistics makeStatistics(lsst::afw::image::Image< Pixel > const &img, lsst::afw::image::Mask< image::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl=StatisticsControl())
Handle a watered-down front-end to the constructor (no variance)
Definition Statistics.h:361
@ STDEVCLIP
estimate sample N-sigma clipped stdev (N set in StatisticsControl, default=3)
Definition Statistics.h:63

◆ operator=() [1/2]

Threshold & lsst::afw::detection::Threshold::operator= ( Threshold && )
defaultnoexcept

◆ operator=() [2/2]

Threshold & lsst::afw::detection::Threshold::operator= ( Threshold const & )
defaultnoexcept

◆ parseTypeString()

Threshold::ThresholdType lsst::afw::detection::Threshold::parseTypeString ( std::string const & typeStr)
static

Definition at line 37 of file Threshold.cc.

37 {
38 if (typeStr.compare("bitmask") == 0) {
39 return Threshold::BITMASK;
40 } else if (typeStr.compare("value") == 0) {
41 return Threshold::VALUE;
42 } else if (typeStr.compare("stdev") == 0) {
43 return Threshold::STDEV;
44 } else if (typeStr.compare("variance") == 0) {
46 } else if (typeStr.compare("pixel_stdev") == 0) {
48 } else {
50 (boost::format("Unsupported Threshold type: %s") % typeStr).str());
51 }
52}

◆ setIncludeMultiplier()

void lsst::afw::detection::Threshold::setIncludeMultiplier ( double const includeMultiplier)
inline

set includeMultiplier

Parameters
includeMultiplierdesired multiplier

Definition at line 102 of file Threshold.h.

103 {
104 _includeMultiplier = includeMultiplier;
105 }

◆ setPolarity()

void lsst::afw::detection::Threshold::setPolarity ( bool const polarity)
inlinenoexcept

set Threshold's polarity

Parameters
polaritydesired polarity

Definition at line 94 of file Threshold.h.

95 {
96 _polarity = polarity;
97 }

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