LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
lsst::ip::diffim::DipoleFluxAlgorithm Class Referenceabstract

Intermediate base class for algorithms that compute a flux. More...

#include <DipoleAlgorithms.h>

Inheritance diagram for lsst::ip::diffim::DipoleFluxAlgorithm:
lsst::meas::base::SimpleAlgorithm lsst::meas::base::SingleFrameAlgorithm lsst::meas::base::ForcedAlgorithm lsst::meas::base::BaseAlgorithm lsst::meas::base::BaseAlgorithm lsst::ip::diffim::NaiveDipoleFlux lsst::ip::diffim::PsfDipoleFlux

Public Types

typedef DipoleFluxControl Control
 A typedef to the Control object for this algorithm, defined above. More...
 
typedef meas::base::FluxResultKey ResultKey
 

Public Member Functions

 DipoleFluxAlgorithm (Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &doc)
 
ResultKey const & getPositiveKeys () const
 Return the standard flux keys registered by this algorithm. More...
 
ResultKey const & getNegativeKeys () const
 
virtual void measureForced (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure, afw::table::SourceRecord const &refRecord, afw::geom::SkyWcs const &refWcs) const
 Called to measure a single child source in an image. More...
 
virtual void measureNForced (afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure, afw::table::SourceCatalog const &refRecord, afw::geom::SkyWcs const &refWcs) const
 Called to simultaneously measure all children in a deblend family, in a single image. More...
 
virtual void measure (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const =0
 Called to measure a single child source in an image. More...
 
virtual void measureN (afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure) const
 Called to simultaneously measure all children in a deblend family, in a single image. More...
 
virtual void fail (afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const =0
 Handle an exception thrown by the current algorithm by setting flags in the given record. More...
 
std::string getLogName () const
 

Static Public Member Functions

static meas::base::FlagDefinitionList const & getFlagDefinitions ()
 

Static Public Attributes

static meas::base::FlagDefinition const FAILURE = dipoleFluxFlagDefinitions.addFailureFlag("general failure flag, set if anything went wrong")
 
static meas::base::FlagDefinition const POS_FLAG = dipoleFluxFlagDefinitions.add("pos_flag", "failure flag for positive, set if anything went wrong")
 
static meas::base::FlagDefinition const NEG_FLAG = dipoleFluxFlagDefinitions.add("neg_flag", "failure flag for negative, set if anything went wrong")
 

Protected Member Functions

 DipoleFluxAlgorithm (Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &doc, ResultKey const &positiveKeys, ResultKey const &negativeKeys)
 Initialize with a manually-constructed result key. More...
 

Protected Attributes

Control _ctrl
 
meas::base::FluxResultKey _fluxResultKey
 
meas::base::FlagHandler _flagHandler
 
ResultKey _positiveKeys
 
ResultKey _negativeKeys
 
std::string _logName
 

Detailed Description

Intermediate base class for algorithms that compute a flux.

Definition at line 115 of file DipoleAlgorithms.h.

Member Typedef Documentation

◆ Control

A typedef to the Control object for this algorithm, defined above.

The control object contains the configuration parameters for this algorithm.

Definition at line 125 of file DipoleAlgorithms.h.

◆ ResultKey

Definition at line 131 of file DipoleAlgorithms.h.

Constructor & Destructor Documentation

◆ DipoleFluxAlgorithm() [1/2]

lsst::ip::diffim::DipoleFluxAlgorithm::DipoleFluxAlgorithm ( Control const &  ctrl,
std::string const &  name,
afw::table::Schema schema,
std::string const &  doc 
)
inline

Definition at line 194 of file DipoleAlgorithms.h.

197  :
198  _ctrl(ctrl)
199 {
201  meas::base::FluxResultKey::addFields(schema, name+"_pos", doc+": positive lobe");
202  meas::base::FluxResultKey::addFields(schema, name+"_neg", doc+": negative lobe");
203  _positiveKeys = ResultKey(schema[name+"_pos"]);
204  _negativeKeys = ResultKey(schema[name+"_neg"]);
205 }
table::Key< std::string > name
Definition: Amplifier.cc:116
table::Schema schema
Definition: python.h:134
meas::base::FluxResultKey ResultKey
static meas::base::FlagDefinitionList const & getFlagDefinitions()
static FlagHandler addFields(afw::table::Schema &schema, std::string const &prefix, FlagDefinitionList const &flagDefs, FlagDefinitionList const &exclDefs=FlagDefinitionList::getEmptyList())
Add Flag fields to a schema, creating a FlagHandler object to manage them.
Definition: FlagHandler.cc:37
static FluxResultKey addFields(afw::table::Schema &schema, std::string const &name, std::string const &doc)
Add a pair of _instFlux, _instFluxErr fields to a Schema, and return a FluxResultKey that points to t...

◆ DipoleFluxAlgorithm() [2/2]

lsst::ip::diffim::DipoleFluxAlgorithm::DipoleFluxAlgorithm ( Control const &  ctrl,
std::string const &  name,
afw::table::Schema schema,
std::string const &  doc,
ResultKey const &  positiveKeys,
ResultKey const &  negativeKeys 
)
inlineprotected

Initialize with a manually-constructed result key.

Definition at line 181 of file DipoleAlgorithms.h.

184  :
185  _ctrl(ctrl)
186 {
188  meas::base::FluxResultKey::addFields(schema, name+"_pos", doc+": positive lobe");
189  meas::base::FluxResultKey::addFields(schema, name+"_neg", doc+": negative lobe");
190  _positiveKeys = ResultKey(positiveKeys);
191  _negativeKeys = ResultKey(negativeKeys);
192 }

Member Function Documentation

◆ fail()

virtual void lsst::meas::base::BaseAlgorithm::fail ( afw::table::SourceRecord measRecord,
MeasurementError error = nullptr 
) const
pure virtualinherited

Handle an exception thrown by the current algorithm by setting flags in the given record.

fail() is called by the measurement framework when an exception is allowed to propagate out of one the algorithm's measure() methods. It should generally set both a general failure flag for the algorithm as well as a specific flag indicating the error condition, if possible. To aid in this, if the exception was an instance of MeasurementError, it will be passed in, carrying information about what flag to set.

An algorithm can also to chose to set flags within its own measure() methods, and then just return, rather than throw an exception. However, fail() should be implemented even when all known failure modes do not throw exceptions, to ensure that unexpected exceptions thrown in lower-level code are properly handled.

Implemented in lsst::meas::base::ScaledApertureFluxAlgorithm, lsst::meas::base::SdssShapeAlgorithm, lsst::meas::base::SdssCentroidAlgorithm, lsst::meas::base::PsfFluxAlgorithm, lsst::meas::base::PixelFlagsAlgorithm, lsst::meas::base::PeakLikelihoodFluxAlgorithm, lsst::meas::base::NaiveCentroidAlgorithm, lsst::meas::base::LocalBackgroundAlgorithm, lsst::meas::base::GaussianFluxAlgorithm, lsst::meas::base::BlendednessAlgorithm, lsst::meas::base::ApertureFluxAlgorithm, lsst::meas::extensions::photometryKron::KronFluxAlgorithm, lsst::ip::diffim::PsfDipoleFlux, lsst::ip::diffim::NaiveDipoleCentroid, lsst::ip::diffim::NaiveDipoleFlux, lsst::meas::modelfit::DoubleShapeletPsfApproxAlgorithm, and lsst::meas::extensions::simpleShape::SimpleShape.

◆ getFlagDefinitions()

meas::base::FlagDefinitionList const & lsst::ip::diffim::DipoleFluxAlgorithm::getFlagDefinitions ( )
static

Definition at line 65 of file DipoleAlgorithms.cc.

65  {
66  return dipoleFluxFlagDefinitions;
67 }

◆ getLogName()

std::string lsst::meas::base::BaseAlgorithm::getLogName ( ) const
inlineinherited

Definition at line 66 of file Algorithm.h.

66 { return _logName; }

◆ getNegativeKeys()

ResultKey const& lsst::ip::diffim::DipoleFluxAlgorithm::getNegativeKeys ( ) const
inline

Definition at line 134 of file DipoleAlgorithms.h.

134 { return _negativeKeys; }

◆ getPositiveKeys()

ResultKey const& lsst::ip::diffim::DipoleFluxAlgorithm::getPositiveKeys ( ) const
inline

Return the standard flux keys registered by this algorithm.

Definition at line 133 of file DipoleAlgorithms.h.

133 { return _positiveKeys; }

◆ measure()

virtual void lsst::meas::base::SingleFrameAlgorithm::measure ( afw::table::SourceRecord measRecord,
afw::image::Exposure< float > const &  exposure 
) const
pure virtualinherited

◆ measureForced()

virtual void lsst::meas::base::SimpleAlgorithm::measureForced ( afw::table::SourceRecord measRecord,
afw::image::Exposure< float > const &  exposure,
afw::table::SourceRecord const &  refRecord,
afw::geom::SkyWcs const &  refWcs 
) const
inlinevirtualinherited

Called to measure a single child source in an image.

Before this method is called, all neighbors will be replaced with noise, using the outputs of the deblender. Outputs should be saved in the given SourceRecord, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

Implements lsst::meas::base::ForcedAlgorithm.

Reimplemented in lsst::meas::extensions::photometryKron::KronFluxAlgorithm.

Definition at line 172 of file Algorithm.h.

175  {
176  measure(measRecord, exposure);
177  }
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const =0
Called to measure a single child source in an image.

◆ measureN()

void lsst::meas::base::SingleFrameAlgorithm::measureN ( afw::table::SourceCatalog const &  measCat,
afw::image::Exposure< float > const &  exposure 
) const
virtualinherited

Called to simultaneously measure all children in a deblend family, in a single image.

Outputs should be saved in the given SourceCatalog, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

The default implementation simply throws an exception, indicating that simultaneous measurement is not supported.

Definition at line 31 of file Algorithm.cc.

32  {
33  throw LSST_EXCEPT(pex::exceptions::LogicError, "measureN not implemented for this algorithm");
34 }
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ measureNForced()

virtual void lsst::meas::base::SimpleAlgorithm::measureNForced ( afw::table::SourceCatalog const &  measCat,
afw::image::Exposure< float > const &  exposure,
afw::table::SourceCatalog const &  refRecord,
afw::geom::SkyWcs const &  refWcs 
) const
inlinevirtualinherited

Called to simultaneously measure all children in a deblend family, in a single image.

Outputs should be saved in the given SourceCatalog, which can also be used to obtain centroid (see SafeCentroidExtractor) and shape (see SafeShapeExtractor) information.

The default implementation simply throws an exception, indicating that simultaneous measurement is not supported.

Reimplemented from lsst::meas::base::ForcedAlgorithm.

Definition at line 179 of file Algorithm.h.

182  {
183  measureN(measCat, exposure);
184  }
virtual void measureN(afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure) const
Called to simultaneously measure all children in a deblend family, in a single image.
Definition: Algorithm.cc:31

Member Data Documentation

◆ _ctrl

Control lsst::ip::diffim::DipoleFluxAlgorithm::_ctrl
protected

Definition at line 143 of file DipoleAlgorithms.h.

◆ _flagHandler

meas::base::FlagHandler lsst::ip::diffim::DipoleFluxAlgorithm::_flagHandler
protected

Definition at line 145 of file DipoleAlgorithms.h.

◆ _fluxResultKey

meas::base::FluxResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_fluxResultKey
protected

Definition at line 144 of file DipoleAlgorithms.h.

◆ _logName

std::string lsst::meas::base::BaseAlgorithm::_logName
protectedinherited

Definition at line 69 of file Algorithm.h.

◆ _negativeKeys

ResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_negativeKeys
protected

Definition at line 148 of file DipoleAlgorithms.h.

◆ _positiveKeys

ResultKey lsst::ip::diffim::DipoleFluxAlgorithm::_positiveKeys
protected

Definition at line 147 of file DipoleAlgorithms.h.

◆ FAILURE

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::FAILURE = dipoleFluxFlagDefinitions.addFailureFlag("general failure flag, set if anything went wrong")
static

Definition at line 118 of file DipoleAlgorithms.h.

◆ NEG_FLAG

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::NEG_FLAG = dipoleFluxFlagDefinitions.add("neg_flag", "failure flag for negative, set if anything went wrong")
static

Definition at line 120 of file DipoleAlgorithms.h.

◆ POS_FLAG

meas::base::FlagDefinition const lsst::ip::diffim::DipoleFluxAlgorithm::POS_FLAG = dipoleFluxFlagDefinitions.add("pos_flag", "failure flag for positive, set if anything went wrong")
static

Definition at line 119 of file DipoleAlgorithms.h.


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