LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
28 #include "ndarray/eigen.h"
40 FlagDefinitionList flagDefinitions;
45 flagDefinitions.add(
"flag_noGoodPixels",
"not enough non-rejected pixels in data to attempt the fit");
47 "flag_edge",
"object was too close to the edge of the image to use the full PSF model");
57 schema,
name,
"instFlux derived from linear least-squares fit of PSF model")),
58 _areaKey(
schema.addField<float>(
name +
"_area",
"effective area of PSF",
"pixel")),
71 geom::Point2D position = _centroidExtractor(measRecord, _flagHandler);
75 if (fitBBox != psfImage->getBBox()) {
80 auto fitRegionSpans = std::make_shared<afw::geom::SpanSet>(fitBBox);
98 auto modelNdArray = fitRegion.
getSpans()->flatten(psfImage->getArray(), psfImage->getXY0());
103 auto model = ndarray::asEigenMatrix(modelNdArray);
104 auto data = ndarray::asEigenMatrix(dataNdArray);
105 auto variance = ndarray::asEigenMatrix(varianceNdArray);
106 PsfPixel alpha = model.squaredNorm();
108 result.instFlux = model.dot(
data.cast<PsfPixel>()) / alpha;
112 measRecord.
set(_areaKey, model.sum() / alpha);
116 measRecord.
set(_instFluxResultKey,
result);
129 if (
mapper.getInputSchema().getNames().count(
mapper.getInputSchema().join(
name, flag.
name)) == 0)
math::Kernel::Pixel Pixel
Pixel type of Image returned by computeImage.
std::shared_ptr< lsst::afw::detection::Psf const > getPsf() const
Return the Exposure's Psf object.
std::vector< std::string > badMaskPlanes
"Mask planes that indicate pixels that should be excluded from the fit" ;
A reusable result struct for instFlux measurements.
void handleFailure(afw::table::BaseRecord &record, MeasurementError const *error=nullptr) const
Handle an expected or unexpected Exception thrown by a measurement algorithm.
Record class that contains measurements made on a single exposure.
PsfFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema, std::string const &logName="")
A C++ control class to handle PsfFluxAlgorithm's configuration.
static FlagDefinitionList const & getFlagDefinitions()
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Exception to be thrown when a measurement algorithm experiences a fatal error.
Defines the fields and offsets for a table.
A FunctorKey for FluxResult.
MaskedImageT getMaskedImage()
Return the MaskedImage.
vector-type utility class to build a collection of FlagDefinitions
static FlagDefinition const FAILURE
void setValue(afw::table::BaseRecord &record, std::size_t i, bool value) const
Set the flag field corresponding to the given flag index.
static MaskPixelT getPlaneBitMask(const std::vector< std::string > &names)
Return the bitmask corresponding to a vector of plane names OR'd together.
#define LOGL_ERROR(logger, message...)
static FlagDefinition const NO_GOOD_PIXELS
A mapping between the keys of two Schemas, used to copy data between them.
lsst::geom::Box2I getBBox(ImageOrigin const origin=PARENT) const
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.
A base class for image defects.
VariancePtr getVariance() const
Return a (shared_ptr to) the MaskedImage's variance.
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
std::string getLogName() const
std::size_t size() const
return the current size (number of defined elements) of the collection
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...
void clip(Box2I const &other) noexcept
Shrink this to ensure that other.contains(*this).
Exception to be thrown when a measurement algorithm encounters a NaN or infinite pixel.
lsst::geom::Point2I getXY0() const
Return the Exposure's origin.
An integer coordinate rectangle.
static FlagDefinition const EDGE
ImagePtr getImage() const
Return a (shared_ptr to) the MaskedImage's image.
A polymorphic base class for representing an image's Point Spread Function.
void set(Key< T > const &key, U const &value)
Set value of a field for the given key.
lsst::geom::Box2I getBBox(ImageOrigin origin=PARENT) const
MaskPtr getMask() const
Return a (shared_ptr to) the MaskedImage's mask.
LSST DM logging module built on log4cxx.
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.
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.