lsst.meas.base
13.0-33-gb1a1d47+1
|
Base class for multiple-aperture photometry algorithms. More...
#include <ApertureFlux.h>
Public Types | |
typedef ApertureFluxControl | Control |
typedef ApertureFluxResult | Result |
Result object returned by static methods. More... | |
Public Member Functions | |
ApertureFluxAlgorithm (Control const &ctrl, std::string const &name, afw::table::Schema &schema, daf::base::PropertySet &metadata) | |
Construct the algorithm and add its fields to the given Schema. More... | |
virtual | ~ApertureFluxAlgorithm () |
virtual void | measure (afw::table::SourceRecord &record, afw::image::Exposure< float > const &exposure) const =0 |
Measure the configured apertures on the given image. More... | |
virtual void | fail (afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const |
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::image::Wcs 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::image::Wcs 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 |
Static Public Member Functions | |
static FlagDefinitionList const & | getFlagDefinitions () |
static std::string | makeFieldPrefix (std::string const &name, double radius) |
Construct an appropriate prefix for table fields. More... | |
template<typename T > | |
static Result | computeSincFlux (afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using Sinc photometry. More... | |
template<typename T > | |
static Result | computeSincFlux (afw::image::MaskedImage< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using Sinc photometry. More... | |
template<typename T > | |
static Result | computeNaiveFlux (afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using naive photometry. More... | |
template<typename T > | |
static Result | computeNaiveFlux (afw::image::MaskedImage< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using naive photometry. More... | |
template<typename T > | |
static Result | computeFlux (afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using the algorithm determined by its size and the maxSincRadius control parameter. More... | |
template<typename T > | |
static Result | computeFlux (afw::image::MaskedImage< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
Compute the flux (and optionally, uncertanties) within an aperture using the algorithm determined by its size and the maxSincRadius control parameter. More... | |
Static Public Attributes | |
static unsigned int const | N_FLAGS = 3 |
static FlagDefinition const | FAILURE = flagDefinitions.addFailureFlag() |
static FlagDefinition const | APERTURE_TRUNCATED = flagDefinitions.add("flag_apertureTruncated", "aperture did not fit within measurement image") |
static FlagDefinition const | SINC_COEFFS_TRUNCATED = flagDefinitions.add("flag_sincCoeffsTruncated", "full sinc coefficient image did not fit within measurement image") |
Protected Member Functions | |
void | copyResultToRecord (Result const &result, afw::table::SourceRecord &record, int index) const |
Return the flag definitions which apply to aperture flux measurements. More... | |
FlagHandler const & | getFlagHandler (int index) const |
Protected Attributes | |
Control const | _ctrl |
SafeCentroidExtractor | _centroidExtractor |
std::string | _logName |
Base class for multiple-aperture photometry algorithms.
ApertureFluxAlgorithm serves as an intermediate base class for all aperture fluxes, which it assumes have that capability of measuring multiple apertures (even if they are not always configured to do so).
Concrete implementations for single-aperture flux measurements are provided as static methods, as well as a consistent interface and control object for its derived classes. Currently, we only have one derived class, CircularApertureFluxAlgorithm, but in the future we anticipate adding more derived classes for e.g. elliptical apertures, or apertures that are circular in sky coordinates rather than pixel coordinates.
Definition at line 83 of file ApertureFlux.h.
Definition at line 93 of file ApertureFlux.h.
Result object returned by static methods.
Definition at line 96 of file ApertureFlux.h.
|
explicit |
Construct the algorithm and add its fields to the given Schema.
Definition at line 78 of file ApertureFlux.cc.
|
inlinevirtual |
Definition at line 185 of file ApertureFlux.h.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using the algorithm determined by its size and the maxSincRadius control parameter.
This method delegates to computeSincFlux is the minor axis of the aperture is smaller than ctrl.maxSincRadius, and delegates to computeNaiveFlux otherwise.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 260 of file ApertureFlux.cc.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using the algorithm determined by its size and the maxSincRadius control parameter.
This method delegates to computeSincFlux is the minor axis of the aperture is smaller than ctrl.maxSincRadius, and delegates to computeNaiveFlux otherwise.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 271 of file ApertureFlux.cc.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using naive photometry.
The naive algorithm just counts the flux in pixels whose centers lie within the aperture, ignoring the effects of sub-pixel aperture boundaries.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
Definition at line 196 of file ApertureFlux.cc.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using naive photometry.
The naive algorithm just counts the flux in pixels whose centers lie within the aperture, ignoring the effects of sub-pixel aperture boundaries.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
Definition at line 224 of file ApertureFlux.cc.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using Sinc photometry.
The Sinc algorithm is slower than a naive aperture, but more accurate, in that it correctly handles sub-pixel aperture boundaries on well-sampled data. This improved accuracy is most important for smaller apertures.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 162 of file ApertureFlux.cc.
|
static |
Compute the flux (and optionally, uncertanties) within an aperture using Sinc photometry.
The Sinc algorithm is slower than a naive aperture, but more accurate, in that it correctly handles sub-pixel aperture boundaries on well-sampled data. This improved accuracy is most important for smaller apertures.
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as fluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 177 of file ApertureFlux.cc.
|
protected |
Return the flag definitions which apply to aperture flux measurements.
Definition at line 105 of file ApertureFlux.cc.
|
virtual |
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 96 of file ApertureFlux.cc.
|
static |
Definition at line 45 of file ApertureFlux.cc.
|
inlineprotected |
Definition at line 228 of file ApertureFlux.h.
|
inlineinherited |
Definition at line 67 of file Algorithm.h.
|
static |
Construct an appropriate prefix for table fields.
Given a plugin name (e.g. base_CircularApertureFlux) and an aperture radius (e.g. 12 pixels) return an appropriate prefix for table fields to contain the measurement results (e.g. base_CircularApertureFlux_12_0). Table fields can then be created named <prefix>_flux, <prefix>_fluxErr, etc.
[in] | pluginName | Name of measurement plugin. |
[in] | radius | Aperture radius (pixels). |
Definition at line 59 of file ApertureFlux.cc.
|
pure virtual |
Measure the configured apertures on the given image.
Python plugins will delegate to this method.
[in,out] | record | Record used to save outputs and retrieve positions. |
[in] | exposure | Image to be measured. |
Implements lsst::meas::base::SingleFrameAlgorithm.
Implemented in lsst::meas::base::CircularApertureFluxAlgorithm.
|
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.
Definition at line 187 of file Algorithm.h.
|
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 29 of file Algorithm.cc.
|
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 196 of file Algorithm.h.
|
protected |
Definition at line 231 of file ApertureFlux.h.
|
protected |
Definition at line 230 of file ApertureFlux.h.
|
protectedinherited |
Definition at line 71 of file Algorithm.h.
|
static |
Definition at line 90 of file ApertureFlux.h.
|
static |
Definition at line 89 of file ApertureFlux.h.
|
static |
Definition at line 88 of file ApertureFlux.h.
|
static |
Definition at line 91 of file ApertureFlux.h.