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
|
Compute metrics that measure how blended objects are. More...
#include <Blendedness.h>
Public Types | |
typedef BlendednessControl | Control |
Public Member Functions | |
BlendednessAlgorithm (Control const &ctrl, std::string const &name, afw::table::Schema &schema) | |
void | measureChildPixels (afw::image::MaskedImage< float > const &image, afw::table::SourceRecord &child) const |
void | measureParentPixels (afw::image::MaskedImage< float > const &image, afw::table::SourceRecord &child) const |
virtual void | measure (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const |
Called to measure a single child source in an image. | |
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. | |
void | measureForced (afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure, afw::table::SourceRecord const &refRecord, afw::geom::SkyWcs const &refWcs) const override |
Called to measure a single child source in an image. | |
void | measureNForced (afw::table::SourceCatalog const &measCat, afw::image::Exposure< float > const &exposure, afw::table::SourceCatalog const &refRecord, afw::geom::SkyWcs const &refWcs) const override |
Called to simultaneously measure all children in a deblend family, in a single image. | |
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. | |
std::string | getLogName () const |
Static Public Member Functions | |
static FlagDefinitionList const & | getFlagDefinitions () |
static float | computeAbsExpectation (float data, float variance) |
Compute the posterior expectation value of the true instrumental flux in a pixel from its (Gaussian) likelihood and a flat nonnegative prior. | |
static float | computeAbsBias (float mu, float variance) |
Compute the bias induced by using the absolute value of a pixel instead of its value. | |
Static Public Attributes | |
static FlagDefinition const | FAILURE = flagDefinitions.addFailureFlag() |
static FlagDefinition const | NO_CENTROID |
static FlagDefinition const | NO_SHAPE |
Protected Attributes | |
std::string | _logName |
Compute metrics that measure how blended objects are.
Blendedness is initialized once for a given Schema, then run repeatedly by calls to measureChildPixels and measureParentPixels (in any order, possibly with multiple sources interleaved). Since it needs access to both the image with with noise and the noise replaced children it cannot use the standard plugin interface.
Definition at line 66 of file Blendedness.h.
Definition at line 74 of file Blendedness.h.
lsst::meas::base::BlendednessAlgorithm::BlendednessAlgorithm | ( | Control const & | ctrl, |
std::string const & | name, | ||
afw::table::Schema & | schema ) |
Definition at line 195 of file Blendedness.cc.
|
static |
Compute the bias induced by using the absolute value of a pixel instead of its value.
The computation assumes the true distribution for the pixel is a Gaussian with mean mu and the given variance. To compute mu from the data, use computeAbsExpectation.
This computes
\[ \sqrt{\frac{2}{\pi}}\sigma e^{-\frac{\mu^2}{2\sigma^2}} - \mu\,\mathrm{erfc}\left(\frac{\mu}{\sqrt{2}\sigma}\right) \]
where \(\mu\) is the mean of the underlying distribution and \(\sigma^2\) is its variance. See section 4.9.11 of Bosch, J. et al. 2018, PASJ, 70, S5 for further details.
Definition at line 270 of file Blendedness.cc.
|
static |
Compute the posterior expectation value of the true instrumental flux in a pixel from its (Gaussian) likelihood and a flat nonnegative prior.
This computes
\[ \frac{\int_0^\infty f \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(f-z)^2}{2\sigma^2}} df} {\int_0^\infty \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(f-z)^2}{2\sigma^2}} df} \]
where \(z\) is the (noisy) pixel value and \(\sigma^2\) is the pixel variance. This approaches \(z\) when \(z \gg \sigma\) and \(0\) when \(z \ll -\sigma\).
We use single precision here for performance reasons; this function is called in a loop over single-precision pixels, and relies on a number of calls to exp and erfc, which are much faster in single precision.
Definition at line 260 of file Blendedness.cc.
|
inlinevirtual |
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 123 of file Blendedness.h.
|
static |
Definition at line 49 of file Blendedness.cc.
|
inlineinherited |
Definition at line 66 of file Algorithm.h.
|
inlinevirtual |
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::SingleFrameAlgorithm.
Definition at line 120 of file Blendedness.h.
void lsst::meas::base::BlendednessAlgorithm::measureChildPixels | ( | afw::image::MaskedImage< float > const & | image, |
afw::table::SourceRecord & | child ) const |
Definition at line 346 of file Blendedness.cc.
|
inlineoverridevirtualinherited |
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.
|
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.
|
inlineoverridevirtualinherited |
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.
void lsst::meas::base::BlendednessAlgorithm::measureParentPixels | ( | afw::image::MaskedImage< float > const & | image, |
afw::table::SourceRecord & | child ) const |
Definition at line 351 of file Blendedness.cc.
|
protectedinherited |
Definition at line 69 of file Algorithm.h.
|
static |
Definition at line 70 of file Blendedness.h.
|
static |
Definition at line 71 of file Blendedness.h.
|
static |
Definition at line 72 of file Blendedness.h.