24 #ifndef LSST_MEAS_ALGORITHMS_PcaPsf_h_INCLUDED
25 #define LSST_MEAS_ALGORITHMS_PcaPsf_h_INCLUDED
29 namespace lsst {
namespace meas {
namespace algorithms {
61 template <
class Archive>
63 boost::serialization::void_cast_register<
PcaPsf,
72 namespace serialization {
74 template <
class Archive>
79 ar << make_nvp(
"kernel", kernel);
81 ar << make_nvp(
"averagePositionX", averagePosition.getX());
82 ar << make_nvp(
"averagePositionY", averagePosition.getY());
85 template <
class Archive>
90 ar >> make_nvp(
"kernel", kernel);
92 ar >> make_nvp(
"averagePositionX", x);
93 ar >> make_nvp(
"averagePositionY",
y);
100 #endif // !LSST_MEAS_ALGORITHMS_PcaPsf_h_INCLUDED
virtual std::string getPersistenceName() const
Return the unique name used to persist this object and look up its factory.
void load_construct_data(Archive &ar, lsst::meas::algorithms::DoubleGaussianPsf *p, unsigned int const )
A Psf defined by a Kernel.
void save_construct_data(Archive &ar, lsst::meas::algorithms::DoubleGaussianPsf const *p, unsigned int const )
friend class boost::serialization::access
Represent a PSF as a linear combination of PCA (== Karhunen-Loeve) basis functions.
boost::shared_ptr< afw::math::LinearCombinationKernel const > getKernel() const
PcaPsf always has a LinearCombinationKernel, so we can override getKernel to make it more useful...
A kernel that is a linear combination of fixed basis kernels.
virtual afw::geom::Point2D getAveragePosition() const
Return average position of stars; used as default position.
void serialize(Archive &, unsigned int const)
tbl::PointKey< double > averagePosition
virtual boost::shared_ptr< afw::detection::Psf > clone() const
Polymorphic deep copy; should usually be unnecessary as Psfs are immutable.x.
A polymorphic base class for representing an image's Point Spread Function.
PcaPsf(boost::shared_ptr< afw::math::LinearCombinationKernel > kernel, afw::geom::Point2D const &averagePosition=afw::geom::Point2D())
Constructor for a PcaPsf.
A CRTP facade class for subclasses of Persistable.