24 #ifndef LSST_MEAS_MODELFIT_DoubleShapeletPsfApprox_h_INCLUDED 25 #define LSST_MEAS_MODELFIT_DoubleShapeletPsfApprox_h_INCLUDED 27 #include "lsst/shapelet/FunctorKeys.h" 28 #include "lsst/meas/base/Algorithm.h" 29 #include "lsst/meas/base/InputUtilities.h" 32 namespace lsst {
namespace meas {
namespace modelfit {
46 LSST_CONTROL_FIELD(
innerOrder,
int,
"Shapelet order of inner expansion (0 == Gaussian)");
48 LSST_CONTROL_FIELD(
outerOrder,
int,
"Shapelet order of outer expansion (0 == Gaussian)");
50 LSST_CONTROL_FIELD(
radiusRatio,
double,
"Initial outer radius divided by inner radius");
54 "Initial outer Gaussian peak height divided by inner Gaussian peak height" 59 "Don't allow the semi-minor radius of any component to drop below this value (pixels)" 64 "Don't allow the determinant radii of the two components to differ by less than this (pixels)" 69 "Don't allow the semi-major radius of any component to go above this fraction of the PSF image width" 72 LSST_NESTED_CONTROL_FIELD(
74 "Configuration of the optimizer used by DoubleShapeletPsfsApproxAlgorithm::fitProfile()." 99 static base::FlagDefinitionList
const & getFlagDefinitions();
124 Control
const & ctrl,
125 std::string
const &
name,
126 afw::table::Schema & schema
136 static shapelet::MultiShapeletFunction initializeResult(Control
const & ctrl);
161 static void fitMoments(
162 shapelet::MultiShapeletFunction & result,
163 Control
const & ctrl,
164 afw::image::Image<Scalar>
const & psfImage
195 afw::geom::ellipses::Ellipse
const & moments,
196 Control
const & ctrl,
197 afw::image::Image<Scalar>
const & psfImage
217 static void fitProfile(
218 shapelet::MultiShapeletFunction & result,
219 Control
const & ctrl,
220 afw::image::Image<Scalar>
const & psfImage
237 static void fitShapelets(
238 shapelet::MultiShapeletFunction & result,
239 Control
const & ctrl,
240 afw::image::Image<Scalar>
const & psfImage
249 afw::table::SourceRecord & measRecord,
250 afw::image::Exposure<float>
const & exposure
257 afw::table::SourceRecord & measRecord,
258 lsst::meas::base::MeasurementError * error=
nullptr 263 meas::base::SafeCentroidExtractor _centroidExtractor;
264 shapelet::MultiShapeletFunctionKey _key;
265 lsst::meas::base::FlagHandler _flagHandler;
270 #endif // !LSST_MEAS_MODELFIT_DoubleShapeletPsfApprox_h_INCLUDED
OptimizerControl optimizer
"Configuration of the optimizer used by DoubleShapeletPsfsApproxAlgorithm::fitProfile()." ;
static base::FlagDefinition const INVALID_MOMENTS
Control object used to configure a 2-shapelet fit to a PSF model; see DoubleShapeletPsfApproxAlgorith...
An algorithm that fits a 2-component shapelet approximation to the PSF model.
static base::FlagDefinition const FAILURE
double radiusRatio
"Initial outer radius divided by inner radius" ;
double minRadius
"Don't allow the semi-minor radius of any component to drop below this value (pixels)" ; ...
DoubleShapeletPsfApproxControl Control
int innerOrder
"Shapelet order of inner expansion (0 == Gaussian)" ;
Configuration object for Optimizer.
int outerOrder
"Shapelet order of outer expansion (0 == Gaussian)" ;
DoubleShapeletPsfApproxControl()
double minRadiusDiff
"Don't allow the determinant radii of the two components to differ by less than this (pixels)" ; ...
Base class for objective functions for Optimizer.
static base::FlagDefinition const INVALID_POINT_FOR_PSF
double maxRadiusBoxFraction
"Don't allow the semi-major radius of any component to go above this fraction of the PSF image width"...
static base::FlagDefinition const MAX_ITERATIONS
double peakRatio
"Initial outer Gaussian peak height divided by inner Gaussian peak height" ;