LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::meas::algorithms::PsfCandidate< PixelT > Class Template Reference

Class stored in SpatialCells for spatial Psf fitting. More...

#include <PsfCandidate.h>

Inheritance diagram for lsst::meas::algorithms::PsfCandidate< PixelT >:
lsst::afw::math::SpatialCellImageCandidate lsst::afw::math::SpatialCellCandidate

Public Types

typedef std::shared_ptr< PsfCandidate< PixelT > > Ptr
 
typedef std::shared_ptr< const PsfCandidate< PixelT > > ConstPtr
 
typedef std::vector< PtrPtrList
 
typedef afw::image::MaskedImage< PixelT > MaskedImageT
 
enum  Status { BAD = 0 , GOOD = 1 , UNKNOWN = 2 }
 

Public Member Functions

 PsfCandidate (std::shared_ptr< afw::table::SourceRecord > const &source, std::shared_ptr< afw::image::Exposure< PixelT > const > parentExposure)
 Construct a PsfCandidate from a specified source and image. More...
 
 PsfCandidate (std::shared_ptr< afw::table::SourceRecord > const &source, std::shared_ptr< afw::image::Exposure< PixelT > const > parentExposure, double xCenter, double yCenter)
 Construct a PsfCandidate from a specified source, image and xyCenter. More...
 
virtual ~PsfCandidate ()
 Destructor. More...
 
double getCandidateRating () const
 Return Cell rating. More...
 
std::shared_ptr< afw::table::SourceRecordgetSource () const
 Return the original Source. More...
 
double getAmplitude () const
 Return the best-fit amplitude. More...
 
void setAmplitude (double amplitude)
 Set the best-fit amplitude. More...
 
double getVar () const
 Return the variance in use when fitting this object. More...
 
void setVar (double var)
 Set the variance to use when fitting this object. More...
 
std::shared_ptr< afw::image::MaskedImage< PixelT > const > getMaskedImage () const
 Return the image at the position of the Source, without any sub-pixel shifts to put the centre of the object in the centre of a pixel (for that, use getOffsetImage()) More...
 
std::shared_ptr< afw::image::MaskedImage< PixelT > const > getMaskedImage (int width, int height) const
 Return the image at the position of the Source, without any sub-pixel shifts to put the centre of the object in the centre of a pixel (for that, use getOffsetImage()) More...
 
std::shared_ptr< afw::image::MaskedImage< PixelT > > getOffsetImage (std::string const algorithm, unsigned int buffer) const
 Return an offset version of the image of the source. More...
 
double getChi2 () const
 Return the candidate's chi^2. More...
 
void setChi2 (double chi2)
 Set the candidate's chi^2. More...
 
float getXCenter () const
 Return the object's column-centre. More...
 
float getYCenter () const
 Return the object's row-centre. More...
 
virtual bool instantiate ()
 Do anything needed to make this candidate usable. More...
 
virtual void setCandidateRating (double)
 Set the candidate's rating. More...
 
int getId () const
 Return the candidate's unique ID. More...
 
Status getStatus () const
 Return the candidate's status. More...
 
void setStatus (Status status)
 Set the candidate's status. More...
 
virtual bool isBad () const
 Is this candidate unacceptable? More...
 

Static Public Member Functions

static int getBorderWidth ()
 Return the number of pixels being ignored around the candidate image's edge. More...
 
static void setBorderWidth (int border)
 Set the number of pixels to ignore around the candidate image's edge. More...
 
static void setPixelThreshold (float threshold)
 Set threshold for rejecting pixels unconnected with the central footprint. More...
 
static float getPixelThreshold ()
 Get threshold for rejecting pixels unconnected with the central footprint. More...
 
static void setMaskBlends (bool doMaskBlends)
 Set whether blends are masked. More...
 
static bool getMaskBlends ()
 Get whether blends are masked. More...
 
static void setWidth (int width)
 Set the width of the image that getImage should return. More...
 
static int getWidth ()
 Return the width of the image that getImage should return. More...
 
static void setHeight (int height)
 Set the height of the image that getImage should return. More...
 
static int getHeight ()
 Return the height of the image that getImage should return. More...
 

Detailed Description

template<typename PixelT>
class lsst::meas::algorithms::PsfCandidate< PixelT >

Class stored in SpatialCells for spatial Psf fitting.

PsfCandidate is a detection that may turn out to be a PSF. We'll assign them to sets of SpatialCells; these sets will then be used to fit a spatial model to the PSF.

Definition at line 55 of file PsfCandidate.h.

Member Typedef Documentation

◆ ConstPtr

template<typename PixelT >
typedef std::shared_ptr<const PsfCandidate<PixelT> > lsst::meas::algorithms::PsfCandidate< PixelT >::ConstPtr

Definition at line 58 of file PsfCandidate.h.

◆ MaskedImageT

template<typename PixelT >
typedef afw::image::MaskedImage<PixelT> lsst::meas::algorithms::PsfCandidate< PixelT >::MaskedImageT

Definition at line 61 of file PsfCandidate.h.

◆ Ptr

template<typename PixelT >
typedef std::shared_ptr<PsfCandidate<PixelT> > lsst::meas::algorithms::PsfCandidate< PixelT >::Ptr

Definition at line 57 of file PsfCandidate.h.

◆ PtrList

template<typename PixelT >
typedef std::vector<Ptr> lsst::meas::algorithms::PsfCandidate< PixelT >::PtrList

Definition at line 59 of file PsfCandidate.h.

Member Enumeration Documentation

◆ Status

Enumerator
BAD 
GOOD 
UNKNOWN 

Definition at line 72 of file SpatialCell.h.

Constructor & Destructor Documentation

◆ PsfCandidate() [1/2]

template<typename PixelT >
lsst::meas::algorithms::PsfCandidate< PixelT >::PsfCandidate ( std::shared_ptr< afw::table::SourceRecord > const &  source,
std::shared_ptr< afw::image::Exposure< PixelT > const >  parentExposure 
)
inline

Construct a PsfCandidate from a specified source and image.

The x/yCenter is set to source.getX/YAstrom()

Parameters
sourceThe detected Source
parentExposureThe image wherein lie the Sources

Definition at line 68 of file PsfCandidate.h.

72  : afw::math::SpatialCellImageCandidate(source->getX(), source->getY()),
73  _parentExposure(parentExposure),
74  _offsetImage(),
75  _source(source),
76  _image(nullptr),
77  _amplitude(0.0),
78  _var(1.0) {}
const char * source()
Source function that allows astChannel to source from a Stream.
Definition: Stream.h:224

◆ PsfCandidate() [2/2]

template<typename PixelT >
lsst::meas::algorithms::PsfCandidate< PixelT >::PsfCandidate ( std::shared_ptr< afw::table::SourceRecord > const &  source,
std::shared_ptr< afw::image::Exposure< PixelT > const >  parentExposure,
double  xCenter,
double  yCenter 
)
inline

Construct a PsfCandidate from a specified source, image and xyCenter.

Parameters
sourceThe detected Source
parentExposureThe image wherein lie the Sources
xCenterthe desired x center
yCenterthe desired y center

Definition at line 83 of file PsfCandidate.h.

89  : afw::math::SpatialCellImageCandidate(xCenter, yCenter),
90  _parentExposure(parentExposure),
91  _offsetImage(),
92  _source(source),
93  _image(nullptr),
94  _amplitude(0.0),
95  _var(1.0) {}

◆ ~PsfCandidate()

template<typename PixelT >
virtual lsst::meas::algorithms::PsfCandidate< PixelT >::~PsfCandidate ( )
inlinevirtual

Destructor.

Definition at line 98 of file PsfCandidate.h.

98 {};

Member Function Documentation

◆ getAmplitude()

template<typename PixelT >
double lsst::meas::algorithms::PsfCandidate< PixelT >::getAmplitude ( ) const
inline

Return the best-fit amplitude.

Definition at line 111 of file PsfCandidate.h.

111 { return _amplitude; }

◆ getBorderWidth()

template<typename PixelT >
int lsst::meas::algorithms::PsfCandidate< PixelT >::getBorderWidth
static

Return the number of pixels being ignored around the candidate image's edge.

Definition at line 298 of file PsfCandidate.cc.

298  {
299  return _border;
300 }

◆ getCandidateRating()

template<typename PixelT >
double lsst::meas::algorithms::PsfCandidate< PixelT >::getCandidateRating ( ) const
inlinevirtual

Return Cell rating.

Note
Required method for use by SpatialCell

Implements lsst::afw::math::SpatialCellCandidate.

Definition at line 105 of file PsfCandidate.h.

105 { return _source->getPsfInstFlux(); }

◆ getChi2()

double lsst::afw::math::SpatialCellImageCandidate::getChi2 ( ) const
inlineinherited

Return the candidate's chi^2.

Definition at line 146 of file SpatialCell.h.

146 { return _chi2; }

◆ getHeight()

static int lsst::afw::math::SpatialCellImageCandidate::getHeight ( )
inlinestaticinherited

Return the height of the image that getImage should return.

Definition at line 143 of file SpatialCell.h.

143 { return _height; }

◆ getId()

int lsst::afw::math::SpatialCellCandidate::getId ( ) const
inlineinherited

Return the candidate's unique ID.

Definition at line 102 of file SpatialCell.h.

102 { return _id; }

◆ getMaskBlends()

template<typename PixelT >
bool lsst::meas::algorithms::PsfCandidate< PixelT >::getMaskBlends
static

Get whether blends are masked.

Definition at line 323 of file PsfCandidate.cc.

323  {
324  return _doMaskBlends;
325 }

◆ getMaskedImage() [1/2]

template<typename PixelT >
std::shared_ptr< afw::image::MaskedImage< PixelT > const > lsst::meas::algorithms::PsfCandidate< PixelT >::getMaskedImage

Return the image at the position of the Source, without any sub-pixel shifts to put the centre of the object in the centre of a pixel (for that, use getOffsetImage())

Definition at line 291 of file PsfCandidate.cc.

291  {
292  int const width = getWidth() == 0 ? _defaultWidth : getWidth();
293  int const height = getHeight() == 0 ? _defaultWidth : getHeight();
294  return getMaskedImage(width, height);
295 }
static int getWidth()
Return the width of the image that getImage should return.
Definition: SpatialCell.h:138
static int getHeight()
Return the height of the image that getImage should return.
Definition: SpatialCell.h:143
std::shared_ptr< afw::image::MaskedImage< PixelT > const > getMaskedImage() const
Return the image at the position of the Source, without any sub-pixel shifts to put the centre of the...

◆ getMaskedImage() [2/2]

template<typename PixelT >
std::shared_ptr< afw::image::MaskedImage< PixelT > const > lsst::meas::algorithms::PsfCandidate< PixelT >::getMaskedImage ( int  width,
int  height 
) const

Return the image at the position of the Source, without any sub-pixel shifts to put the centre of the object in the centre of a pixel (for that, use getOffsetImage())

Definition at line 277 of file PsfCandidate.cc.

277  {
278  if (!_image || (width != _image->getWidth() || height != _image->getHeight())) {
279  _image = extractImage(width, height);
280  }
281  return _image;
282 }

◆ getOffsetImage()

template<typename PixelT >
std::shared_ptr< afw::image::MaskedImage< PixelT > > lsst::meas::algorithms::PsfCandidate< PixelT >::getOffsetImage ( std::string const  algorithm,
unsigned int  buffer 
) const

Return an offset version of the image of the source.

The returned image has been offset to put the centre of the object in the centre of a pixel.

Definition at line 334 of file PsfCandidate.cc.

336  {
337  unsigned int const width = getWidth() == 0 ? _defaultWidth : getWidth();
338  unsigned int const height = getHeight() == 0 ? _defaultWidth : getHeight();
339  if (_offsetImage && static_cast<unsigned int>(_offsetImage->getWidth()) == width + 2 * buffer &&
340  static_cast<unsigned int>(_offsetImage->getHeight()) == height + 2 * buffer) {
341  return _offsetImage;
342  }
343 
344  std::shared_ptr<MaskedImageT> image = extractImage(width + 2 * buffer, height + 2 * buffer);
345 
346  double const xcen = getXCenter(), ycen = getYCenter();
347  double const dx = afw::image::positionToIndex(xcen, true).second;
348  double const dy = afw::image::positionToIndex(ycen, true).second;
349 
350  std::shared_ptr<MaskedImageT> offset = afw::math::offsetImage(*image, -dx, -dy, algorithm);
351  geom::Point2I llc(buffer, buffer);
352  geom::Extent2I dims(width, height);
353  geom::Box2I box(llc, dims);
354  _offsetImage.reset(new MaskedImageT(*offset, box, afw::image::LOCAL, true)); // Deep copy
355 
356  return _offsetImage;
357 }
float getYCenter() const
Return the object's row-centre.
Definition: SpatialCell.h:91
float getXCenter() const
Return the object's column-centre.
Definition: SpatialCell.h:88
An integer coordinate rectangle.
Definition: Box.h:55
afw::image::MaskedImage< PixelT > MaskedImageT
Definition: PsfCandidate.h:61
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
int positionToIndex(double pos)
Convert image position to nearest integer index.
Definition: ImageUtils.h:69
std::shared_ptr< ImageT > offsetImage(ImageT const &image, float dx, float dy, std::string const &algorithmName="lanczos5", unsigned int buffer=0)
Return an image offset by (dx, dy) using the specified algorithm.
Definition: offsetImage.cc:41
T reset(T... args)

◆ getPixelThreshold()

template<typename PixelT >
float lsst::meas::algorithms::PsfCandidate< PixelT >::getPixelThreshold
static

Get threshold for rejecting pixels unconnected with the central footprint.

Definition at line 313 of file PsfCandidate.cc.

313  {
314  return _pixelThreshold;
315 }

◆ getSource()

template<typename PixelT >
std::shared_ptr<afw::table::SourceRecord> lsst::meas::algorithms::PsfCandidate< PixelT >::getSource ( ) const
inline

Return the original Source.

Definition at line 108 of file PsfCandidate.h.

108 { return _source; }

◆ getStatus()

Status lsst::afw::math::SpatialCellCandidate::getStatus ( ) const
inlineinherited

Return the candidate's status.

Definition at line 104 of file SpatialCell.h.

104 { return _status; }

◆ getVar()

template<typename PixelT >
double lsst::meas::algorithms::PsfCandidate< PixelT >::getVar ( ) const
inline

Return the variance in use when fitting this object.

Definition at line 117 of file PsfCandidate.h.

117 { return _var; }

◆ getWidth()

static int lsst::afw::math::SpatialCellImageCandidate::getWidth ( )
inlinestaticinherited

Return the width of the image that getImage should return.

Definition at line 138 of file SpatialCell.h.

138 { return _width; }

◆ getXCenter()

float lsst::afw::math::SpatialCellCandidate::getXCenter ( ) const
inlineinherited

Return the object's column-centre.

Definition at line 88 of file SpatialCell.h.

88 { return _xCenter; }

◆ getYCenter()

float lsst::afw::math::SpatialCellCandidate::getYCenter ( ) const
inlineinherited

Return the object's row-centre.

Definition at line 91 of file SpatialCell.h.

91 { return _yCenter; }

◆ instantiate()

virtual bool lsst::afw::math::SpatialCellCandidate::instantiate ( )
inlinevirtualinherited

Do anything needed to make this candidate usable.

Definition at line 94 of file SpatialCell.h.

94 { return true; }

◆ isBad()

virtual bool lsst::afw::math::SpatialCellCandidate::isBad ( ) const
inlinevirtualinherited

Is this candidate unacceptable?

Definition at line 108 of file SpatialCell.h.

108 { return (_status == BAD); }

◆ setAmplitude()

template<typename PixelT >
void lsst::meas::algorithms::PsfCandidate< PixelT >::setAmplitude ( double  amplitude)
inline

Set the best-fit amplitude.

Definition at line 114 of file PsfCandidate.h.

114 { _amplitude = amplitude; }

◆ setBorderWidth()

template<typename PixelT >
void lsst::meas::algorithms::PsfCandidate< PixelT >::setBorderWidth ( int  border)
static

Set the number of pixels to ignore around the candidate image's edge.

Definition at line 303 of file PsfCandidate.cc.

303  {
304  _border = border;
305 }

◆ setCandidateRating()

virtual void lsst::afw::math::SpatialCellCandidate::setCandidateRating ( double  )
inlinevirtualinherited

Set the candidate's rating.

Definition at line 99 of file SpatialCell.h.

99 {}

◆ setChi2()

void lsst::afw::math::SpatialCellImageCandidate::setChi2 ( double  chi2)
inlineinherited

Set the candidate's chi^2.

Definition at line 148 of file SpatialCell.h.

148 { _chi2 = chi2; }

◆ setHeight()

static void lsst::afw::math::SpatialCellImageCandidate::setHeight ( int  height)
inlinestaticinherited

Set the height of the image that getImage should return.

Definition at line 141 of file SpatialCell.h.

141 { _height = height; }

◆ setMaskBlends()

template<typename PixelT >
void lsst::meas::algorithms::PsfCandidate< PixelT >::setMaskBlends ( bool  doMaskBlends)
static

Set whether blends are masked.

Definition at line 318 of file PsfCandidate.cc.

318  {
319  _doMaskBlends = doMaskBlends;
320 }

◆ setPixelThreshold()

template<typename PixelT >
void lsst::meas::algorithms::PsfCandidate< PixelT >::setPixelThreshold ( float  threshold)
static

Set threshold for rejecting pixels unconnected with the central footprint.

A non-positive threshold means that no threshold will be applied.

Definition at line 308 of file PsfCandidate.cc.

308  {
309  _pixelThreshold = threshold;
310 }

◆ setStatus()

void lsst::afw::math::SpatialCellCandidate::setStatus ( Status  status)
inherited

Set the candidate's status.

Definition at line 53 of file SpatialCell.cc.

53  {
54  switch (status) {
55  case GOOD:
56  case UNKNOWN:
57  _status = status;
58  return;
59  case BAD:
60  _status = status;
61  return;
62  }
63 
65  (boost::format("Saw unknown status %d") % status).str());
66 }
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports invalid arguments.
Definition: Runtime.h:66
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174

◆ setVar()

template<typename PixelT >
void lsst::meas::algorithms::PsfCandidate< PixelT >::setVar ( double  var)
inline

Set the variance to use when fitting this object.

Definition at line 120 of file PsfCandidate.h.

120 { _var = var; }

◆ setWidth()

static void lsst::afw::math::SpatialCellImageCandidate::setWidth ( int  width)
inlinestaticinherited

Set the width of the image that getImage should return.

Definition at line 136 of file SpatialCell.h.

136 { _width = width; }

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