LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lsst::meas::algorithms::KernelPsf Class Reference

A Psf defined by a Kernel. More...

#include <KernelPsf.h>

Inheritance diagram for lsst::meas::algorithms::KernelPsf:
lsst::afw::table::io::PersistableFacade< KernelPsf > lsst::meas::algorithms::ImagePsf lsst::afw::table::io::PersistableFacade< ImagePsf > lsst::afw::detection::Psf lsst::daf::base::Citizen lsst::daf::base::Persistable lsst::afw::table::io::PersistableFacade< Psf > lsst::afw::table::io::Persistable lsst::meas::algorithms::DoubleGaussianPsf lsst::meas::algorithms::PcaPsf lsst::meas::algorithms::SingleGaussianPsf

Public Member Functions

 KernelPsf (afw::math::Kernel const &kernel, afw::geom::Point2D const &averagePosition=afw::geom::Point2D())
 Construct a KernelPsf with a clone of the given kernel. More...
 
boost::shared_ptr
< afw::math::Kernel const > 
getKernel () const
 Return the Kernel used to define this Psf. More...
 
virtual afw::geom::Point2D getAveragePosition () const
 Return average position of stars; used as default position. More...
 
virtual boost::shared_ptr
< afw::detection::Psf
clone () const
 Polymorphic deep copy. More...
 
virtual bool isPersistable () const
 Whether this object is persistable; just delegates to the kernel. More...
 
- Public Member Functions inherited from lsst::afw::detection::Psf
virtual ~Psf ()
 
boost::shared_ptr< ImagecomputeImage (geom::Point2D position=makeNullPoint(), image::Color color=image::Color(), ImageOwnerEnum owner=COPY) const
 Return an Image of the PSF, in a form that can be compared directly with star images. More...
 
boost::shared_ptr< ImagecomputeKernelImage (geom::Point2D position=makeNullPoint(), image::Color color=image::Color(), ImageOwnerEnum owner=COPY) const
 Return an Image of the PSF, in a form suitable for convolution. More...
 
double computePeak (geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
 Return the peak value of the PSF image. More...
 
double computeApertureFlux (double radius, geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
 Compute the "flux" of the Psf model within a circular aperture of the given radius. More...
 
geom::ellipses::Quadrupole computeShape (geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
 Compute the ellipse corresponding to the second moments of the Psf. More...
 
boost::shared_ptr
< math::Kernel const > 
getLocalKernel (geom::Point2D position=makeNullPoint(), image::Color color=image::Color()) const
 Return a FixedKernel corresponding to the Psf image at the given point. More...
 
image::Color getAverageColor () const
 Return the average Color of the stars used to construct the Psf. More...
 
- Public Member Functions inherited from lsst::daf::base::Citizen
 Citizen (const std::type_info &)
 
 Citizen (Citizen const &)
 
 ~Citizen ()
 
Citizenoperator= (Citizen const &)
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 
- Public Member Functions inherited from lsst::daf::base::Persistable
 Persistable (void)
 
virtual ~Persistable (void)
 
template<class Archive >
void serialize (Archive &, unsigned int const)
 
- Public Member Functions inherited from lsst::afw::table::io::Persistable
void writeFits (std::string const &fileName, std::string const &mode="w") const
 Write the object to a regular FITS file. More...
 
void writeFits (fits::MemFileManager &manager, std::string const &mode="w") const
 Write the object to a FITS image in memory. More...
 
void writeFits (fits::Fits &fitsfile) const
 Write the object to an already-open FITS object. More...
 
virtual ~Persistable ()
 

Protected Member Functions

 KernelPsf (boost::shared_ptr< afw::math::Kernel > kernel, afw::geom::Point2D const &averagePosition=afw::geom::Point2D())
 Construct a KernelPsf with the given kernel; it should not be modified afterwards. More...
 
virtual std::string getPersistenceName () const
 Return the unique name used to persist this object and look up its factory. More...
 
virtual std::string getPythonModule () const
 Return the fully-qualified Python module that should be imported to guarantee that its factory is registered. More...
 
virtual void write (OutputArchiveHandle &handle) const
 Write the object to one or more catalogs. More...
 
- Protected Member Functions inherited from lsst::meas::algorithms::ImagePsf
 ImagePsf (bool isFixed=false)
 
virtual double doComputeApertureFlux (double radius, afw::geom::Point2D const &position, afw::image::Color const &color) const
 
virtual
afw::geom::ellipses::Quadrupole 
doComputeShape (afw::geom::Point2D const &position, afw::image::Color const &color) const
 
- Protected Member Functions inherited from lsst::afw::detection::Psf
 Psf (bool isFixed=false)
 
- Protected Member Functions inherited from lsst::afw::table::io::Persistable
 Persistable ()
 
 Persistable (Persistable const &other)
 
void operator= (Persistable const &other)
 

Private Member Functions

virtual boost::shared_ptr< ImagedoComputeKernelImage (afw::geom::Point2D const &position, afw::image::Color const &color) const
 

Private Attributes

boost::shared_ptr
< afw::math::Kernel
_kernel
 
afw::geom::Point2D _averagePosition
 

Friends

template<typename T , typename K >
class KernelPsfFactory
 

Additional Inherited Members

- Public Types inherited from lsst::afw::detection::Psf
enum  ImageOwnerEnum { COPY =0, INTERNAL =1 }
 Enum passed to computeImage and computeKernelImage to determine image ownership. More...
 
typedef boost::shared_ptr< PsfPtr
 
typedef boost::shared_ptr
< const Psf
ConstPtr
 
typedef math::Kernel::Pixel Pixel
 Pixel type of Image returned by computeImage. More...
 
typedef image::Image< PixelImage
 Image type returned by computeImage. More...
 
- Public Types inherited from lsst::daf::base::Citizen
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback )(const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback )(const Citizen *ptr)
 
- Public Types inherited from lsst::daf::base::Persistable
typedef boost::shared_ptr
< Persistable
Ptr
 
- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< KernelPsf >
static boost::shared_ptr
< KernelPsf > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< KernelPsf > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< KernelPsf > 
readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< ImagePsf >
static boost::shared_ptr
< ImagePsf > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< ImagePsf > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< ImagePsf > 
readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Static Public Member Functions inherited from lsst::afw::detection::Psf
static boost::shared_ptr< ImagerecenterKernelImage (boost::shared_ptr< Image > im, geom::Point2D const &position, std::string const &warpAlgorithm="lanczos5", unsigned int warpBuffer=5)
 
- Static Public Member Functions inherited from lsst::daf::base::Citizen
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector
< const Citizen * > * 
census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. More...
 
- Static Public Member Functions inherited from lsst::afw::table::io::PersistableFacade< Psf >
static boost::shared_ptr< Psf > readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr< Psf > readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr< Psf > readFits (fits::MemFileManager &manager, int hdu=0)
 Read an object from a FITS file in memory. More...
 
- Protected Types inherited from lsst::afw::table::io::Persistable
typedef io::OutputArchiveHandle OutputArchiveHandle
 

Detailed Description

A Psf defined by a Kernel.

Definition at line 33 of file KernelPsf.h.

Constructor & Destructor Documentation

lsst::meas::algorithms::KernelPsf::KernelPsf ( afw::math::Kernel const &  kernel,
afw::geom::Point2D const &  averagePosition = afw::geom::Point2D() 
)
explicit

Construct a KernelPsf with a clone of the given kernel.

We clone the Kernel in the public constructor to ensure the Psf is immutable after construction (we don't want someone with another copy of the Kernel to be able to modify the one held by the Psf).

Derived classes may use the protected constructor, which takes a shared_ptr to Kernel and does not copy it.

Definition at line 16 of file KernelPsf.cc.

16  :
17  ImagePsf(!kernel.isSpatiallyVarying()), _kernel(kernel.clone()), _averagePosition(averagePosition) {}
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
ImagePsf(bool isFixed=false)
Definition: ImagePsf.h:40
afw::geom::Point2D _averagePosition
Definition: KernelPsf.h:91
tbl::PointKey< double > averagePosition
Definition: CoaddPsf.cc:328
lsst::meas::algorithms::KernelPsf::KernelPsf ( boost::shared_ptr< afw::math::Kernel kernel,
afw::geom::Point2D const &  averagePosition = afw::geom::Point2D() 
)
explicitprotected

Construct a KernelPsf with the given kernel; it should not be modified afterwards.

Definition at line 19 of file KernelPsf.cc.

19  :
20  ImagePsf(!kernel->isSpatiallyVarying()), _kernel(kernel), _averagePosition(averagePosition) {}
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
ImagePsf(bool isFixed=false)
Definition: ImagePsf.h:40
afw::geom::Point2D _averagePosition
Definition: KernelPsf.h:91
tbl::PointKey< double > averagePosition
Definition: CoaddPsf.cc:328

Member Function Documentation

boost::shared_ptr< afw::detection::Psf > lsst::meas::algorithms::KernelPsf::clone ( void  ) const
virtual

Polymorphic deep copy.

Implements lsst::afw::detection::Psf.

Reimplemented in lsst::meas::algorithms::SingleGaussianPsf, lsst::meas::algorithms::DoubleGaussianPsf, and lsst::meas::algorithms::PcaPsf.

Definition at line 22 of file KernelPsf.cc.

22 { return boost::make_shared<KernelPsf>(*this); }
boost::shared_ptr< afw::detection::Psf::Image > lsst::meas::algorithms::KernelPsf::doComputeKernelImage ( afw::geom::Point2D const &  position,
afw::image::Color const &  color 
) const
privatevirtual

These virtual member functions are private, not protected, because we only want derived classes to implement them, not call them; they should call the corresponding compute*Image member functions instead so as to let the Psf base class handle caching properly.

Derived classes are responsible for ensuring that returned images sum to one.

Implements lsst::afw::detection::Psf.

Definition at line 8 of file KernelPsf.cc.

10  {
11  PTR(Psf::Image) im = boost::make_shared<Psf::Image>(_kernel->getDimensions());
12  _kernel->computeImage(*im, true, position.getX(), position.getY());
13  return im;
14 }
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
boost::shared_ptr< Image > computeImage(geom::Point2D position=makeNullPoint(), image::Color color=image::Color(), ImageOwnerEnum owner=COPY) const
Return an Image of the PSF, in a form that can be compared directly with star images.
#define PTR(...)
Definition: base.h:41
Psf(bool isFixed=false)
image::Image< Pixel > Image
Image type returned by computeImage.
Definition: Psf.h:79
afw::geom::Point2D lsst::meas::algorithms::KernelPsf::getAveragePosition ( ) const
virtual

Return average position of stars; used as default position.

Reimplemented from lsst::afw::detection::Psf.

Definition at line 24 of file KernelPsf.cc.

24 { return _averagePosition; }
afw::geom::Point2D _averagePosition
Definition: KernelPsf.h:91
boost::shared_ptr< afw::math::Kernel const > lsst::meas::algorithms::KernelPsf::getKernel ( ) const
inline

Return the Kernel used to define this Psf.

Definition at line 52 of file KernelPsf.h.

52 { return _kernel; }
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
std::string lsst::meas::algorithms::KernelPsf::getPersistenceName ( ) const
protectedvirtual

Return the unique name used to persist this object and look up its factory.

Must be less than ArchiveIndexSchema::MAX_NAME_LENGTH characters.

Reimplemented from lsst::afw::table::io::Persistable.

Reimplemented in lsst::meas::algorithms::DoubleGaussianPsf, lsst::meas::algorithms::SingleGaussianPsf, and lsst::meas::algorithms::PcaPsf.

Definition at line 49 of file KernelPsf.cc.

49 { return "KernelPsf"; }
std::string lsst::meas::algorithms::KernelPsf::getPythonModule ( ) const
protectedvirtual

Return the fully-qualified Python module that should be imported to guarantee that its factory is registered.

Must be less than ArchiveIndexSchema::MAX_MODULE_LENGTH characters.

Will be ignored if empty.

Reimplemented from lsst::afw::table::io::Persistable.

Definition at line 51 of file KernelPsf.cc.

51 { return "lsst.meas.algorithms"; }
bool lsst::meas::algorithms::KernelPsf::isPersistable ( ) const
virtual

Whether this object is persistable; just delegates to the kernel.

Reimplemented from lsst::afw::table::io::Persistable.

Reimplemented in lsst::meas::algorithms::DoubleGaussianPsf, and lsst::meas::algorithms::SingleGaussianPsf.

Definition at line 47 of file KernelPsf.cc.

47 { return _kernel->isPersistable(); }
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
void lsst::meas::algorithms::KernelPsf::write ( OutputArchiveHandle handle) const
protectedvirtual

Write the object to one or more catalogs.

The handle object passed to this function provides an interface for adding new catalogs and adding nested objects to the same archive (while checking for duplicates). See OutputArchiveHandle for more information.

Reimplemented from lsst::afw::table::io::Persistable.

Reimplemented in lsst::meas::algorithms::DoubleGaussianPsf, and lsst::meas::algorithms::SingleGaussianPsf.

Definition at line 53 of file KernelPsf.cc.

53  {
54  static KernelPsfPersistenceHelper const & keys = KernelPsfPersistenceHelper::get();
55  afw::table::BaseCatalog catalog = handle.makeCatalog(keys.schema);
56  PTR(afw::table::BaseRecord) record = catalog.addNew();
57  record->set(keys.kernel, handle.put(_kernel));
58  record->set(keys.averagePosition, _averagePosition);
59  handle.saveCatalog(catalog);
60 }
boost::shared_ptr< afw::math::Kernel > _kernel
Definition: KernelPsf.h:90
CatalogT< BaseRecord > BaseCatalog
Definition: fwd.h:61
#define PTR(...)
Definition: base.h:41
static KernelPsfPersistenceHelper const & get()
Definition: KernelPsf.cc:32
afw::geom::Point2D _averagePosition
Definition: KernelPsf.h:91
tbl::PointKey< double > averagePosition
Definition: CoaddPsf.cc:328

Friends And Related Function Documentation

template<typename T , typename K >
friend class KernelPsfFactory
friend

Definition at line 81 of file KernelPsf.h.

Member Data Documentation

afw::geom::Point2D lsst::meas::algorithms::KernelPsf::_averagePosition
private

Definition at line 91 of file KernelPsf.h.

boost::shared_ptr< afw::math::Kernel > lsst::meas::algorithms::KernelPsf::_kernel
private

Definition at line 90 of file KernelPsf.h.


The documentation for this class was generated from the following files: