LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
#include <CircularApertureFlux.h>
|
| CircularApertureFluxAlgorithm (Control const &ctrl, std::string const &name, afw::table::Schema &schema, daf::base::PropertySet &metadata) |
|
virtual void | measure (afw::table::SourceRecord &record, afw::image::Exposure< float > const &exposure) const |
| 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::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 |
|
|
static FlagDefinitionList const & | getFlagDefinitions () |
|
template<typename T > |
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. More...
|
|
template<typename T > |
static Result | computeSincFlux (afw::image::MaskedImage< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control()) |
|
template<typename T > |
static Result | computeNaiveFlux (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 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()) |
|
template<typename T > |
static Result | computeFlux (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 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()) |
|
static std::string | makeFieldPrefix (std::string const &name, double radius) |
| Construct an appropriate prefix for table fields. More...
|
|
Definition at line 40 of file CircularApertureFlux.h.
◆ Control
◆ Result
Result object returned by static methods.
Definition at line 92 of file ApertureFlux.h.
◆ CircularApertureFluxAlgorithm()
◆ computeFlux() [1/2]
Compute the instFlux (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.
- Parameters
-
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as instFluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 223 of file ApertureFlux.cc.
226 return (afw::geom::ellipses::Axes(ellipse.getCore()).getB() <= ctrl.maxSincRadius)
◆ computeFlux() [2/2]
Definition at line 232 of file ApertureFlux.cc.
235 return (afw::geom::ellipses::Axes(ellipse.getCore()).getB() <= ctrl.maxSincRadius)
◆ computeNaiveFlux() [1/2]
Compute the instFlux (and optionally, uncertanties) within an aperture using naive photometry.
The naive algorithm just counts the instFlux in pixels whose centers lie within the aperture, ignoring the effects of sub-pixel aperture boundaries.
- Parameters
-
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as instFluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
Definition at line 176 of file ApertureFlux.cc.
179 afw::geom::ellipses::PixelRegion region(ellipse);
180 if (!
image.getBBox().contains(region.getBBox())) {
187 spanIter != spanEnd; ++spanIter) {
189 image.x_at(spanIter->getBeginX() -
image.getX0(), spanIter->getY() -
image.getY0());
◆ computeNaiveFlux() [2/2]
Definition at line 196 of file ApertureFlux.cc.
200 afw::geom::ellipses::PixelRegion region(ellipse);
201 if (!
image.getBBox().contains(region.getBBox())) {
209 spanIter != spanEnd; ++spanIter) {
211 spanIter->getBeginX() -
image.getX0(), spanIter->getY() -
image.getY0());
213 spanIter->getBeginX() -
image.getX0(), spanIter->getY() -
image.getY0());
◆ computeSincFlux() [1/2]
Compute the instFlux (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.
- Parameters
-
[in] | image | Image or MaskedImage to be measured. If a MaskedImage is provided, uncertainties will be returned as well as instFluxes. |
[in] | ellipse | Ellipse that defines the outer boundary of the aperture. |
[in] | ctrl | Control object. |
Definition at line 146 of file ApertureFlux.cc.
149 CONST_PTR(afw::image::Image<T>) cImage = getSincCoeffs<T>(
image.getBBox(), ellipse,
result, ctrl);
151 afw::image::Image<T> subImage(
image, cImage->getBBox());
153 (ndarray::asEigenArray(subImage.getArray()) * ndarray::asEigenArray(cImage->getArray())).sum();
◆ computeSincFlux() [2/2]
Definition at line 158 of file ApertureFlux.cc.
162 CONST_PTR(afw::image::Image<T>) cImage = getSincCoeffs<T>(
image.getBBox(), ellipse,
result, ctrl);
165 result.instFlux = (ndarray::asEigenArray(subImage.getImage()->getArray()) *
166 ndarray::asEigenArray(cImage->getArray()))
169 std::sqrt((ndarray::asEigenArray(subImage.getVariance()->getArray()).template cast<T>() *
170 ndarray::asEigenArray(cImage->getArray()).square())
◆ copyResultToRecord()
◆ fail()
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 87 of file ApertureFlux.cc.
92 _keys[i].flags.handleFailure(measRecord,
error);
◆ getFlagDefinitions()
FlagDefinitionList const & lsst::meas::base::ApertureFluxAlgorithm::getFlagDefinitions |
( |
| ) |
|
|
staticinherited |
◆ getFlagHandler()
FlagHandler const& lsst::meas::base::ApertureFluxAlgorithm::getFlagHandler |
( |
int |
index | ) |
const |
|
inlineprotectedinherited |
◆ getLogName()
std::string lsst::meas::base::BaseAlgorithm::getLogName |
( |
| ) |
const |
|
inlineinherited |
◆ makeFieldPrefix()
std::string lsst::meas::base::ApertureFluxAlgorithm::makeFieldPrefix |
( |
std::string const & |
name, |
|
|
double |
radius |
|
) |
| |
|
staticinherited |
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>_instFlux, <prefix>_instFluxErr, etc.
- Parameters
-
[in] | pluginName | Name of measurement plugin. |
[in] | radius | Aperture radius (pixels). |
- Returns
- Table field name prefix.
Definition at line 57 of file ApertureFlux.cc.
59 return boost::replace_all_copy(
prefix,
".",
"_");
◆ measure()
Measure the configured apertures on the given image.
Python plugins will delegate to this method.
- Parameters
-
[in,out] | record | Record used to save outputs and retrieve positions. |
[in] | exposure | Image to be measured. |
Implements lsst::meas::base::ApertureFluxAlgorithm.
Definition at line 43 of file CircularApertureFlux.cc.
45 afw::geom::ellipses::Ellipse ellipse(afw::geom::ellipses::Axes(1.0, 1.0, 0.0));
46 PTR(afw::geom::ellipses::Axes)
47 axes = std::static_pointer_cast<afw::geom::ellipses::Axes>(ellipse.getCorePtr());
◆ measureForced()
◆ measureN()
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.
33 throw LSST_EXCEPT(pex::exceptions::LogicError,
"measureN not implemented for this algorithm");
◆ measureNForced()
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.
◆ _centroidExtractor
◆ _ctrl
Control const lsst::meas::base::ApertureFluxAlgorithm::_ctrl |
|
protectedinherited |
◆ _logName
◆ APERTURE_TRUNCATED
FlagDefinition const lsst::meas::base::ApertureFluxAlgorithm::APERTURE_TRUNCATED |
|
staticinherited |
Initial value:=
flagDefinitions.add("flag_apertureTruncated", "aperture did not fit within measurement image")
Definition at line 86 of file ApertureFlux.h.
◆ FAILURE
FlagDefinition const lsst::meas::base::ApertureFluxAlgorithm::FAILURE = flagDefinitions.addFailureFlag() |
|
staticinherited |
◆ N_FLAGS
unsigned int const lsst::meas::base::ApertureFluxAlgorithm::N_FLAGS = 3 |
|
staticinherited |
◆ SINC_COEFFS_TRUNCATED
FlagDefinition const lsst::meas::base::ApertureFluxAlgorithm::SINC_COEFFS_TRUNCATED |
|
staticinherited |
Initial value:= flagDefinitions.add(
"flag_sincCoeffsTruncated", "full sinc coefficient image did not fit within measurement image")
Definition at line 87 of file ApertureFlux.h.
The documentation for this class was generated from the following files:
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
#define CONST_PTR(...)
A shared pointer to a const object.
static Result computeFlux(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 the algorithm determined...
static FlagDefinition const APERTURE_TRUNCATED
std::vector< Span >::const_iterator Iterator
Iterator type used by begin() and end().
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
static void cache(float rInner, float rOuter)
Cache the coefficients for a particular aperture.
FlagHandler const & getFlagHandler(int index) const
static FlagDefinition const FAILURE
void copyResultToRecord(Result const &result, afw::table::SourceRecord &record, int index) const
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.
ApertureFluxResult Result
Result object returned by static methods.
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.
_view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
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.
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.
std::vector< double > radii
"Radius (in pixels) of apertures." ;
SafeCentroidExtractor _centroidExtractor
static Result computeNaiveFlux(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 naive photometry.
static FlagDefinition const SINC_COEFFS_TRUNCATED