24 #ifndef LSST_MEAS_MODELFIT_Model_h_INCLUDED 25 #define LSST_MEAS_MODELFIT_Model_h_INCLUDED 29 #include "lsst/base.h" 30 #include "lsst/afw/geom/ellipses/Ellipse.h" 31 #include "lsst/shapelet/MultiShapeletBasis.h" 34 namespace lsst {
namespace meas {
namespace modelfit {
66 typedef std::vector<PTR(shapelet::MultiShapeletBasis)>
BasisVector;
86 static PTR(
Model)
make(BasisVector basisVector, NameVector
const & prefixes,
CenterEnum center);
149 ndarray::Array<Scalar const,1,1>
const & nonlinear,
150 ndarray::Array<Scalar const,1,1>
const & amplitudes,
151 ndarray::Array<Scalar const,1,1>
const & fixed
181 EllipseIterator ellipseIter
201 EllipseConstIterator ellipseIter,
216 ndarray::Array<Scalar const,1,1>
const & nonlinear,
217 ndarray::Array<Scalar const,1,1>
const & fixed
231 EllipseVector
const & ellipses,
232 ndarray::Array<Scalar,1,1>
const & nonlinear,
233 ndarray::Array<Scalar,1,1>
const & fixed
246 ndarray::Array<Scalar,1,1>
const & nonlinear,
247 ndarray::Array<Scalar,1,1>
const & amplitudes,
248 ndarray::Array<Scalar,1,1>
const & fixed
264 BasisVector basisVector,
265 NameVector nonlinearNames,
266 NameVector amplitudeNames,
267 NameVector fixedNames
271 NameVector _nonlinearNames;
272 NameVector _amplitudeNames;
273 NameVector _fixedNames;
274 BasisVector _basisVector;
279 #endif // !LSST_MEAS_MODELFIT_Model_h_INCLUDED NameVector const & getFixedNames() const
Return the names of the fixed nonlinear parameters.
virtual EllipseVector makeEllipseVector() const =0
Return an uninitialized vector of afw::geom::ellipses::Ellipse with the parametrization expected by r...
double Scalar
Typedefs to be used for probability and parameter values.
std::vector< boost::shared_ptr< Model > > ModelVector
virtual boost::shared_ptr< Prior > adaptPrior(boost::shared_ptr< Prior > prior) const =0
Given an arbitrary prior, return one compatible with this Model or throw LogicError.
int getNonlinearDim() const
Return the number of free nonlinear parameters.
Abstract base class and concrete factories that define multi-shapelet galaxy models.
int getBasisCount() const
Return the number of MultiShapeletBasis objects (equivalently, the number of ellipses) ...
static boost::shared_ptr< Model > make(BasisVector basisVector, NameVector const &prefixes, CenterEnum center)
Construct a concrete Model instance with multiple ellipses and multishapelet bases.
std::vector< std::string > NameVector
std::vector< boost::shared_ptr< shapelet::MultiShapeletBasis > > BasisVector
shapelet::MultiShapeletFunction makeShapeletFunction(ndarray::Array< Scalar const, 1, 1 > const &nonlinear, ndarray::Array< Scalar const, 1, 1 > const &litudes, ndarray::Array< Scalar const, 1, 1 > const &fixed) const
Create a MultiShapeletFunction object from a set of parameter vectors.
Base class for Bayesian priors.
int getFixedDim() const
Return the number of fixed nonlinear parameters.
virtual void transformParameters(LocalUnitTransform const &transform, ndarray::Array< Scalar, 1, 1 > const &nonlinear, ndarray::Array< Scalar, 1, 1 > const &litudes, ndarray::Array< Scalar, 1, 1 > const &fixed) const
Transform (in-place) parameter vectors from one unit system to another.
int getAmplitudeDim() const
Return the number of linear parameters.
virtual void readEllipses(EllipseConstIterator ellipseIter, Scalar *nonlinearIter, Scalar *fixedIter) const =0
Convert a vector of ellipses to a set of nonlinear+fixed parameter arrays.
Model & operator=(const Model &)=delete
static boost::shared_ptr< Model > makeGaussian(CenterEnum center, double radius=1.0)
Construct a concrete Model instance that represents a single elliptical Gaussian function.
std::vector< afw::geom::ellipses::Ellipse >::iterator EllipseIterator
virtual void writeEllipses(Scalar const *nonlinearIter, Scalar const *fixedIter, EllipseIterator ellipseIter) const =0
Convert a set of nonlinear+fixed parameter arrays to a vector of ellipses.
Model(const Model &)=delete
NameVector const & getNonlinearNames() const
Return the names of the free nonlinear parameters.
BasisVector const & getBasisVector() const
Return the MultiShapeletBasis objects that comprise the Model.
std::vector< afw::geom::ellipses::Ellipse > EllipseVector
NameVector const & getAmplitudeNames() const
Return the names of the amplitude parameters.
std::vector< afw::geom::ellipses::Ellipse >::const_iterator EllipseConstIterator