LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Protected Attributes | List of all members
lsst::meas::base::ScaledApertureFluxAlgorithm Class Reference

Measure the instFlux in an aperture scaled to the PSF. More...

#include <ScaledApertureFlux.h>

Inheritance diagram for lsst::meas::base::ScaledApertureFluxAlgorithm:
lsst::meas::base::SimpleAlgorithm lsst::meas::base::SingleFrameAlgorithm lsst::meas::base::ForcedAlgorithm lsst::meas::base::BaseAlgorithm lsst::meas::base::BaseAlgorithm

Public Types

typedef ScaledApertureFluxControl Control
 
typedef ApertureFluxResult Result
 

Public Member Functions

 ScaledApertureFluxAlgorithm (Control const &control, std::string const &name, afw::table::Schema &schema)
 
virtual void measure (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const override
 Measure the scaled aperture instFlux on the given image. More...
 
virtual void fail (afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const override
 Handle an exception thrown by the current algorithm by setting flags in the given record. More...
 
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 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...
 
std::string getLogName () const
 

Protected Attributes

std::string _logName
 

Detailed Description

Measure the instFlux in an aperture scaled to the PSF.

This algorithm performs a sinc aperture instFlux measurement where they size of the aperture is determined by multiplying the FWHM of the PSF by the scaling factor specified in the algorithm configuration.

Definition at line 62 of file ScaledApertureFlux.h.

Member Typedef Documentation

◆ Control

Definition at line 64 of file ScaledApertureFlux.h.

◆ Result

Definition at line 65 of file ScaledApertureFlux.h.

Constructor & Destructor Documentation

◆ ScaledApertureFluxAlgorithm()

lsst::meas::base::ScaledApertureFluxAlgorithm::ScaledApertureFluxAlgorithm ( Control const &  control,
std::string const &  name,
afw::table::Schema schema 
)

Definition at line 34 of file ScaledApertureFlux.cc.

36  : _ctrl(ctrl),
37  _instFluxResultKey(
38  FluxResultKey::addFields(schema, name, "instFlux derived from PSF-scaled aperture")),
39  _centroidExtractor(schema, name) {
41 }

Member Function Documentation

◆ fail()

void lsst::meas::base::ScaledApertureFluxAlgorithm::fail ( afw::table::SourceRecord measRecord,
MeasurementError error = nullptr 
) const
overridevirtual

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.

Implements lsst::meas::base::BaseAlgorithm.

Definition at line 68 of file ScaledApertureFlux.cc.

68  {
69  _flagHandler.handleFailure(measRecord, error);
70 }

◆ getLogName()

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

Definition at line 66 of file Algorithm.h.

66 { return _logName; }

◆ measure()

void lsst::meas::base::ScaledApertureFluxAlgorithm::measure ( afw::table::SourceRecord measRecord,
afw::image::Exposure< float > const &  exposure 
) const
overridevirtual

Measure the scaled aperture instFlux on the given image.

Python plugins will delegate to this method.

Parameters
[in,out]recordRecord used to save outputs and retrieve positions.
[in]exposureImage to be measured.

Implements lsst::meas::base::SingleFrameAlgorithm.

Definition at line 43 of file ScaledApertureFlux.cc.

44  {
45  geom::Point2D const center = _centroidExtractor(measRecord, _flagHandler);
46  double const radius = exposure.getPsf()->computeShape(center).getDeterminantRadius();
47  double const fwhm = 2.0 * std::sqrt(2.0 * std::log(2)) * radius;
48  double const size = _ctrl.scale * fwhm;
49  afw::geom::ellipses::Axes const axes(size, size);
50 
51  // ApertureFluxAlgorithm::computeSincFlux requires an ApertureFluxControl as an
52  // argument. All that it uses it for is to read the type of warping kernel.
53  ApertureFluxControl apCtrl;
54  apCtrl.shiftKernel = _ctrl.shiftKernel;
55 
57  exposure.getMaskedImage(), afw::geom::ellipses::Ellipse(axes, center), apCtrl);
58  measRecord.set(_instFluxResultKey, result);
59 
61  FlagDefinition const& iter = ApertureFluxAlgorithm::getFlagDefinitions()[i];
62  if (result.getFlag(iter.number)) {
63  _flagHandler.setValue(measRecord, iter.number, true);
64  }
65  }
66 }

◆ 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  }

◆ 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 }

◆ 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  }

Member Data Documentation

◆ _logName

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

Definition at line 69 of file Algorithm.h.


The documentation for this class was generated from the following files:
schema
table::Schema schema
Definition: Amplifier.cc:115
lsst::log.log.logContinued.error
def error(fmt, *args)
Definition: logContinued.py:210
lsst::meas::base::FlagHandler::handleFailure
void handleFailure(afw::table::BaseRecord &record, MeasurementError const *error=nullptr) const
Handle an expected or unexpected Exception thrown by a measurement algorithm.
Definition: FlagHandler.cc:76
lsst::afw::geom.transform.transformContinued.name
string name
Definition: transformContinued.py:32
std::sqrt
T sqrt(T... args)
lsst::meas::base::FlagHandler::setValue
void setValue(afw::table::BaseRecord &record, std::size_t i, bool value) const
Set the flag field corresponding to the given flag index.
Definition: FlagHandler.h:262
lsst::meas::base::ScaledApertureFluxControl::scale
double scale
"Scaling factor of PSF FWHM for aperture radius." ;
Definition: ScaledApertureFlux.h:45
std::log
T log(T... args)
lsst::meas::base::SingleFrameAlgorithm::measureN
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
lsst::meas::base::SingleFrameAlgorithm::measure
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.
lsst::meas::base::ScaledApertureFluxAlgorithm::Result
ApertureFluxResult Result
Definition: ScaledApertureFlux.h:65
result
py::object result
Definition: _schema.cc:429
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
lsst::meas::base::ApertureFluxAlgorithm::computeSincFlux
static Result computeSincFlux(afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control())
Compute the instFlux (and optionally, uncertanties) within an aperture using Sinc photometry.
Definition: ApertureFlux.cc:146
lsst::meas::base::FlagDefinitionList::size
std::size_t size() const
return the current size (number of defined elements) of the collection
Definition: FlagHandler.h:125
lsst::meas::base::ApertureFluxAlgorithm::getFlagDefinitions
static FlagDefinitionList const & getFlagDefinitions()
Definition: ApertureFlux.cc:49
lsst::meas::base::ScaledApertureFluxControl::shiftKernel
std::string shiftKernel
"Warping kernel used to shift Sinc photometry coefficients to different center positions" ;
Definition: ScaledApertureFlux.h:44
lsst.pipe.tasks.insertFakes.radius
radius
Definition: insertFakes.py:288
lsst::meas::base::BaseAlgorithm::_logName
std::string _logName
Definition: Algorithm.h:69
lsst::geom::Point< double, 2 >
lsst::meas::base::FluxResultKey::addFields
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...
Definition: FluxUtilities.cc:36
std::size_t
astshim.fitsChanContinued.iter
def iter(self)
Definition: fitsChanContinued.py:88
lsst::meas::base::FlagHandler::addFields
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