LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
lsst::meas::algorithms::CoaddPsf Class Reference

CoaddPsf is the Psf derived to be used for non-PSF-matched Coadd images. More...

#include <CoaddPsf.h>

Inheritance diagram for lsst::meas::algorithms::CoaddPsf:
lsst::afw::table::io::PersistableFacade< CoaddPsf > 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

Classes

class  Factory
 

Public Member Functions

 CoaddPsf (afw::table::ExposureCatalog const &catalog, afw::image::Wcs const &coaddWcs, std::string const &weightFieldName="weight", std::string const &warpingKernelName="lanczos3", int cacheSize=10000)
 Main constructors for CoaddPsf. More...
 
virtual boost::shared_ptr
< afw::detection::Psf
clone () const
 Polymorphic deep copy. Usually unnecessary, as Psfs are immutable. More...
 
virtual afw::geom::Point2D getAveragePosition () const
 Return the average of the positions of the stars that went into this Psf. More...
 
boost::shared_ptr
< afw::image::Wcs const > 
getCoaddWcs ()
 Return the Wcs of the coadd (defines the coordinate system of the Psf). More...
 
int getComponentCount () const
 Return the number of component Psfs in this CoaddPsf. More...
 
boost::shared_ptr
< afw::detection::Psf const > 
getPsf (int index)
 Return the Psf of the component image at index. More...
 
boost::shared_ptr
< afw::image::Wcs const > 
getWcs (int index)
 Return the Wcs of the component image at index. More...
 
double getWeight (int index)
 Return the weight of the component image at index. More...
 
afw::table::RecordId getId (int index)
 Return the exposure ID of the component image at index. More...
 
afw::geom::Box2I getBBox (int index)
 Return the bounding box (in component image Pixel coordinates) of the component image at index. More...
 
virtual bool isPersistable () const
 Return true if the CoaddPsf persistable (always true). 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

boost::shared_ptr
< afw::detection::Psf::Image
doComputeKernelImage (afw::geom::Point2D const &ccdXY, afw::image::Color const &color) const
 
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...
 
 CoaddPsf (afw::table::ExposureCatalog const &catalog, boost::shared_ptr< afw::image::Wcs const > coaddWcs, afw::geom::Point2D const &averagePosition, std::string const &warpingKernelName="lanczos3", int cacheSize=10000)
 
- 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 Attributes

afw::table::ExposureCatalog _catalog
 
boost::shared_ptr
< afw::image::Wcs const > 
_coaddWcs
 
afw::table::Key< double > _weightKey
 
afw::geom::Point2D _averagePosition
 
std::string _warpingKernelName
 
boost::shared_ptr
< afw::math::WarpingControl
const > 
_warpingControl
 

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< CoaddPsf >
static boost::shared_ptr
< CoaddPsf > 
readFits (fits::Fits &fitsfile)
 Read an object from an already open FITS object. More...
 
static boost::shared_ptr
< CoaddPsf > 
readFits (std::string const &fileName, int hdu=0)
 Read an object from a regular FITS file. More...
 
static boost::shared_ptr
< CoaddPsf > 
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

CoaddPsf is the Psf derived to be used for non-PSF-matched Coadd images.

It incorporates the logic of James Jee's Stackfit algorithm for estimating the Psf of coadd by coadding the images of the Psf models of each input exposure.

Definition at line 44 of file CoaddPsf.h.

Constructor & Destructor Documentation

lsst::meas::algorithms::CoaddPsf::CoaddPsf ( afw::table::ExposureCatalog const &  catalog,
afw::image::Wcs const &  coaddWcs,
std::string const &  weightFieldName = "weight",
std::string const &  warpingKernelName = "lanczos3",
int  cacheSize = 10000 
)
explicit

Main constructors for CoaddPsf.

The ExposureCatalog contains info about each visit/ccd in Coadd; this must be provided to the constructor, and cannot be changed.

Parameters
[in]catalogExposureCatalog containing the id, bbox, wcs, psf and weight for each ccd/visit. This is usually the same catalog as the "ccds" catalog in the coadd Exposure's CoaddInputs.
[in]coaddWcsWcs for the coadd.
[in]weightFieldNameField name that contains the weight of the exposure in the coadd; defaults to "weight".
[in]warpingKernelNameName of warping kernel
[in]cacheSizeWarping kernel cache size

Definition at line 142 of file CoaddPsf.cc.

148  :
149  _coaddWcs(coaddWcs.clone()),
151  _warpingControl(boost::make_shared<afw::math::WarpingControl>(warpingKernelName, "", cacheSize))
152 {
153  afw::table::SchemaMapper mapper(catalog.getSchema());
154  mapper.addMinimalSchema(afw::table::ExposureTable::makeMinimalSchema(), true);
155  afw::table::Field<double> weightField = afw::table::Field<double>("weight", "Coadd weight");
156  afw::table::Key<double> weightKey = catalog.getSchema()[weightFieldName];
157  _weightKey = mapper.addMapping(weightKey, weightField);
158  _catalog = afw::table::ExposureCatalog(mapper.getOutputSchema());
159  for (afw::table::ExposureCatalog::const_iterator i = catalog.begin(); i != catalog.end(); ++i) {
160  PTR(afw::table::ExposureRecord) record = _catalog.getTable()->makeRecord();
161  record->assign(*i, mapper);
162  _catalog.push_back(record);
163  }
164  _averagePosition = computeAveragePosition(_catalog, *_coaddWcs, _weightKey);
165 }
#define PTR(...)
Definition: base.h:41
afw::geom::Point2D _averagePosition
Definition: CoaddPsf.h:146
static Schema makeMinimalSchema()
Return a minimal schema for Exposure tables and records.
Definition: Exposure.h:146
boost::shared_ptr< afw::image::Wcs const > _coaddWcs
Definition: CoaddPsf.h:144
afw::table::Key< double > _weightKey
Definition: CoaddPsf.h:145
tbl::Key< int > cacheSize
Definition: CoaddPsf.cc:326
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
boost::shared_ptr< afw::math::WarpingControl const > _warpingControl
Definition: CoaddPsf.h:148
tbl::Key< std::string > warpingKernelName
Definition: CoaddPsf.cc:328
Base::const_iterator const_iterator
Definition: Exposure.h:241
tbl::Key< int > coaddWcs
Definition: CoaddPsf.cc:325
ExposureCatalogT< ExposureRecord > ExposureCatalog
Definition: Exposure.h:394
afw::table::SourceRecord * record
lsst::meas::algorithms::CoaddPsf::CoaddPsf ( afw::table::ExposureCatalog const &  catalog,
boost::shared_ptr< afw::image::Wcs const >  coaddWcs,
afw::geom::Point2D const &  averagePosition,
std::string const &  warpingKernelName = "lanczos3",
int  cacheSize = 10000 
)
explicitprotected
Parameters
catalogUnpersisted catalog
coaddWcsWCS for the coadd
averagePositionDefault position for accessors
warpingKernelNameWarping kernel name
cacheSizeKernel cache size

Definition at line 397 of file CoaddPsf.cc.

403  :
404  _catalog(catalog), _coaddWcs(coaddWcs), _weightKey(_catalog.getSchema()["weight"]),
406  _warpingControl(new afw::math::WarpingControl(warpingKernelName, "", cacheSize))
407 {}
afw::geom::Point2D _averagePosition
Definition: CoaddPsf.h:146
boost::shared_ptr< afw::image::Wcs const > _coaddWcs
Definition: CoaddPsf.h:144
afw::table::Key< double > _weightKey
Definition: CoaddPsf.h:145
tbl::Key< int > cacheSize
Definition: CoaddPsf.cc:326
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
boost::shared_ptr< afw::math::WarpingControl const > _warpingControl
Definition: CoaddPsf.h:148
tbl::Key< std::string > warpingKernelName
Definition: CoaddPsf.cc:328
tbl::Key< int > coaddWcs
Definition: CoaddPsf.cc:325
tbl::Key< tbl::Point< double > > averagePosition
Definition: CoaddPsf.cc:327
Schema getSchema() const
Return the schema associated with the catalog&#39;s table.
Definition: Catalog.h:114

Member Function Documentation

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

Polymorphic deep copy. Usually unnecessary, as Psfs are immutable.

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

Definition at line 167 of file CoaddPsf.cc.

167  {
168  return boost::make_shared<CoaddPsf>(*this);
169 }
boost::shared_ptr< afw::detection::Psf::Image > lsst::meas::algorithms::CoaddPsf::doComputeKernelImage ( afw::geom::Point2D const &  position,
afw::image::Color const &  color 
) const
protectedvirtual

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 215 of file CoaddPsf.cc.

218  {
219  // get the subset of exposures which contain our coordinate
221  if (subcat.empty()) {
222  throw LSST_EXCEPT(
223  pex::exceptions::InvalidParameterError,
224  (boost::format("Cannot compute CoaddPsf at point %s; no input images at that point.")
225  % ccdXY).str()
226  );
227  }
228  double weightSum = 0.0;
229 
230  // Read all the Psf images into a vector. The code is set up so that this can be done in chunks,
231  // with the image modified to accomodate
232  // However, we currently read all of the images.
233  std::vector<PTR(afw::image::Image<double>)> imgVector;
234  std::vector<double> weightVector;
235 
236  for (afw::table::ExposureCatalog::const_iterator i = subcat.begin(); i != subcat.end(); ++i) {
237  PTR(afw::geom::XYTransform) xytransform(
239  );
240  WarpedPsf warpedPsf = WarpedPsf(i->getPsf(), xytransform, _warpingControl);
241  PTR(afw::image::Image<double>) componentImg = warpedPsf.computeKernelImage(ccdXY, color);
242  imgVector.push_back(componentImg);
243  weightSum += i->get(_weightKey);
244  weightVector.push_back(i->get(_weightKey));
245  }
246 
247  afw::geom::Box2I bbox = getOverallBBox(imgVector);
248 
249  // create a zero image of the right size to sum into
250  PTR(afw::detection::Psf::Image) image = boost::make_shared<afw::detection::Psf::Image>(bbox);
251  *image = 0.0;
252  addToImage(image, imgVector, weightVector);
253  *image /= weightSum;
254  return image;
255 }
afw::geom::Box2I getOverallBBox(std::vector< boost::shared_ptr< afw::image::Image< double > >> const &imgVector)
Definition: CoaddPsf.cc:174
boost::shared_ptr< Image > computeKernelImage(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.
#define PTR(...)
Definition: base.h:41
XYTransformFromWcsPair: Represents an XYTransform obtained by putting two Wcs&#39;s &quot;back to back&quot;...
Definition: Wcs.h:394
boost::shared_ptr< afw::image::Wcs const > getWcs(int index)
Return the Wcs of the component image at index.
Definition: CoaddPsf.cc:277
boost::shared_ptr< afw::image::Wcs const > _coaddWcs
Definition: CoaddPsf.h:144
afw::table::Key< double > _weightKey
Definition: CoaddPsf.h:145
ExposureCatalogT subsetContaining(Coord const &coord) const
Return a shallow subset of the catalog with only those records that contain the given point...
Psf(bool isFixed=false)
table::Key< table::Array< Kernel::Pixel > > image
Definition: FixedKernel.cc:117
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
boost::shared_ptr< afw::math::WarpingControl const > _warpingControl
Definition: CoaddPsf.h:148
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
Base::const_iterator const_iterator
Definition: Exposure.h:241
void addToImage(boost::shared_ptr< afw::image::Image< double > > image, std::vector< boost::shared_ptr< afw::image::Image< double > >> const &imgVector, std::vector< double > const &weightVector)
Definition: CoaddPsf.cc:189
ExposureCatalogT< ExposureRecord > ExposureCatalog
Definition: Exposure.h:394
image::Image< Pixel > Image
Image type returned by computeImage.
Definition: Psf.h:79
boost::shared_ptr< afw::detection::Psf const > getPsf(int index)
Return the Psf of the component image at index.
Definition: CoaddPsf.cc:267
virtual afw::geom::Point2D lsst::meas::algorithms::CoaddPsf::getAveragePosition ( ) const
inlinevirtual

Return the average of the positions of the stars that went into this Psf.

For CoaddPsf, this is calculated as the weighted average of the average positions of all the component Psfs.

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

Definition at line 79 of file CoaddPsf.h.

79 { return _averagePosition; }
afw::geom::Point2D _averagePosition
Definition: CoaddPsf.h:146
afw::geom::Box2I lsst::meas::algorithms::CoaddPsf::getBBox ( int  index)

Return the bounding box (in component image Pixel coordinates) of the component image at index.

Definition at line 304 of file CoaddPsf.cc.

304  {
305  if (index < 0 || index > getComponentCount()) {
306  throw LSST_EXCEPT(pex::exceptions::RangeError, "index of CoaddPsf component out of range");
307  }
308  return _catalog[index].getBBox();
309 }
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
int getComponentCount() const
Return the number of component Psfs in this CoaddPsf.
Definition: CoaddPsf.cc:260
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
boost::shared_ptr< afw::image::Wcs const > lsst::meas::algorithms::CoaddPsf::getCoaddWcs ( )
inline

Return the Wcs of the coadd (defines the coordinate system of the Psf).

Definition at line 82 of file CoaddPsf.h.

82 { return _coaddWcs; }
boost::shared_ptr< afw::image::Wcs const > _coaddWcs
Definition: CoaddPsf.h:144
int lsst::meas::algorithms::CoaddPsf::getComponentCount ( ) const

Return the number of component Psfs in this CoaddPsf.

getComponentCount() - get the number of component Psf's in this CoaddPsf

Definition at line 260 of file CoaddPsf.cc.

260  {
261  return _catalog.size();
262 }
size_type size() const
Return the number of elements in the catalog.
Definition: Catalog.h:401
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
afw::table::RecordId lsst::meas::algorithms::CoaddPsf::getId ( int  index)

Return the exposure ID of the component image at index.

getId - get the long id of the component at position index

Definition at line 297 of file CoaddPsf.cc.

297  {
298  if (index < 0 || index > getComponentCount()) {
299  throw LSST_EXCEPT(pex::exceptions::RangeError, "index of CoaddPsf component out of range");
300  }
301  return _catalog[index].getId();
302 }
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
int getComponentCount() const
Return the number of component Psfs in this CoaddPsf.
Definition: CoaddPsf.cc:260
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
std::string lsst::meas::algorithms::CoaddPsf::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.

Definition at line 381 of file CoaddPsf.cc.

381 { return getCoaddPsfPersistenceName(); }
boost::shared_ptr< afw::detection::Psf const > lsst::meas::algorithms::CoaddPsf::getPsf ( int  index)

Return the Psf of the component image at index.

getPsf - get the Psf of the component at position index

Definition at line 267 of file CoaddPsf.cc.

267  {
268  if (index < 0 || index > getComponentCount()) {
269  throw LSST_EXCEPT(pex::exceptions::RangeError, "index of CoaddPsf component out of range");
270  }
271  return _catalog[index].getPsf();
272 }
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
int getComponentCount() const
Return the number of component Psfs in this CoaddPsf.
Definition: CoaddPsf.cc:260
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
std::string lsst::meas::algorithms::CoaddPsf::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 383 of file CoaddPsf.cc.

383 { return "lsst.meas.algorithms"; }
boost::shared_ptr< afw::image::Wcs const > lsst::meas::algorithms::CoaddPsf::getWcs ( int  index)

Return the Wcs of the component image at index.

getWcs - get the Wcs of the component at position index

Definition at line 277 of file CoaddPsf.cc.

277  {
278  if (index < 0 || index > getComponentCount()) {
279  throw LSST_EXCEPT(pex::exceptions::RangeError, "index of CoaddPsf component out of range");
280  }
281  return _catalog[index].getWcs();
282 }
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
int getComponentCount() const
Return the number of component Psfs in this CoaddPsf.
Definition: CoaddPsf.cc:260
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
double lsst::meas::algorithms::CoaddPsf::getWeight ( int  index)

Return the weight of the component image at index.

getWeight - get the coadd weight of the component at position index

Definition at line 287 of file CoaddPsf.cc.

287  {
288  if (index < 0 || index > getComponentCount()) {
289  throw LSST_EXCEPT(pex::exceptions::RangeError, "index of CoaddPsf component out of range");
290  }
291  return _catalog[index].get(_weightKey);
292 }
afw::table::Key< double > _weightKey
Definition: CoaddPsf.h:145
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
int getComponentCount() const
Return the number of component Psfs in this CoaddPsf.
Definition: CoaddPsf.cc:260
#define LSST_EXCEPT(type,...)
Definition: Exception.h:46
boost::shared_ptr< RecordT > const get(size_type i) const
Return a pointer to the record at index i.
Definition: Catalog.h:439
virtual bool lsst::meas::algorithms::CoaddPsf::isPersistable ( ) const
inlinevirtual

Return true if the CoaddPsf persistable (always true).

While it's actually possible to construct a CoaddPsf that isn't persistable (because its nested Psfs and Wcss are not persistable) in artificial situations, in realistic situations it's pretty much impossible, because persistence is a necessary part of how CoaddPsfs are built. And it's simpler and much faster if we just always return true, rather than loop over the elements and check each one.

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

Definition at line 111 of file CoaddPsf.h.

111 { return true; }
void lsst::meas::algorithms::CoaddPsf::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.

Definition at line 385 of file CoaddPsf.cc.

385  {
386  CoaddPsfPersistenceHelper const & keys1 = CoaddPsfPersistenceHelper::get();
387  tbl::BaseCatalog cat1 = handle.makeCatalog(keys1.schema);
388  PTR(tbl::BaseRecord) record1 = cat1.addNew();
389  record1->set(keys1.coaddWcs, handle.put(_coaddWcs));
390  record1->set(keys1.cacheSize, _warpingControl->getCacheSize());
391  record1->set(keys1.averagePosition, _averagePosition);
392  record1->set(keys1.warpingKernelName, _warpingKernelName);
393  handle.saveCatalog(cat1);
394  _catalog.writeToArchive(handle, false);
395 }
#define PTR(...)
Definition: base.h:41
CatalogT< BaseRecord > BaseCatalog
Definition: fwd.h:61
afw::geom::Point2D _averagePosition
Definition: CoaddPsf.h:146
boost::shared_ptr< afw::image::Wcs const > _coaddWcs
Definition: CoaddPsf.h:144
tbl::Key< int > cacheSize
Definition: CoaddPsf.cc:326
afw::table::ExposureCatalog _catalog
Definition: CoaddPsf.h:143
boost::shared_ptr< afw::math::WarpingControl const > _warpingControl
Definition: CoaddPsf.h:148
tbl::Key< std::string > warpingKernelName
Definition: CoaddPsf.cc:328
tbl::Key< int > coaddWcs
Definition: CoaddPsf.cc:325
tbl::Key< tbl::Point< double > > averagePosition
Definition: CoaddPsf.cc:327

Member Data Documentation

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

Definition at line 146 of file CoaddPsf.h.

afw::table::ExposureCatalog lsst::meas::algorithms::CoaddPsf::_catalog
private

Definition at line 143 of file CoaddPsf.h.

boost::shared_ptr< afw::image::Wcs const> lsst::meas::algorithms::CoaddPsf::_coaddWcs
private

Definition at line 144 of file CoaddPsf.h.

boost::shared_ptr< afw::math::WarpingControl const> lsst::meas::algorithms::CoaddPsf::_warpingControl
private

Definition at line 148 of file CoaddPsf.h.

std::string lsst::meas::algorithms::CoaddPsf::_warpingKernelName
private

Definition at line 147 of file CoaddPsf.h.

afw::table::Key<double> lsst::meas::algorithms::CoaddPsf::_weightKey
private

Definition at line 145 of file CoaddPsf.h.


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