LSST Applications g0265f82a02+d6b5cd48b5,g02d81e74bb+a41d3748ce,g1470d8bcf6+6be6c9203b,g2079a07aa2+14824f138e,g212a7c68fe+a4f2ea4efa,g2305ad1205+72971fe858,g295015adf3+ab2c85acae,g2bbee38e9b+d6b5cd48b5,g337abbeb29+d6b5cd48b5,g3ddfee87b4+31b3a28dff,g487adcacf7+082e807817,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+b2918d57ae,g5a732f18d5+66d966b544,g64a986408d+a41d3748ce,g858d7b2824+a41d3748ce,g8a8a8dda67+a6fc98d2e7,g99cad8db69+7fe4acdf18,g9ddcbc5298+d4bad12328,ga1e77700b3+246acaaf9c,ga8c6da7877+84af8b3ff8,gb0e22166c9+3863383f4c,gb6a65358fc+d6b5cd48b5,gba4ed39666+9664299f35,gbb8dafda3b+d8d527deb2,gc07e1c2157+b2dbe6b631,gc120e1dc64+61440b2abb,gc28159a63d+d6b5cd48b5,gcf0d15dbbd+31b3a28dff,gdaeeff99f8+a38ce5ea23,ge6526c86ff+39927bb362,ge79ae78c31+d6b5cd48b5,gee10cc3b42+a6fc98d2e7,gf1cff7945b+a41d3748ce,v24.1.5.rc1
LSST Data Management Base Package
Loading...
Searching...
No Matches
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.
 
 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.
 
virtual ~PsfCandidate ()
 Destructor.
 
double getCandidateRating () const
 Return Cell rating.
 
std::shared_ptr< afw::table::SourceRecordgetSource () const
 Return the original Source.
 
double getAmplitude () const
 Return the best-fit amplitude.
 
void setAmplitude (double amplitude)
 Set the best-fit amplitude.
 
double getVar () const
 Return the variance in use when fitting this object.
 
void setVar (double var)
 Set the variance to use when fitting this object.
 
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())
 
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())
 
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.
 
double getChi2 () const
 Return the candidate's chi^2.
 
void setChi2 (double chi2)
 Set the candidate's chi^2.
 
float getXCenter () const
 Return the object's column-centre.
 
float getYCenter () const
 Return the object's row-centre.
 
virtual bool instantiate ()
 Do anything needed to make this candidate usable.
 
virtual void setCandidateRating (double)
 Set the candidate's rating.
 
int getId () const
 Return the candidate's unique ID.
 
Status getStatus () const
 Return the candidate's status.
 
void setStatus (Status status)
 Set the candidate's status.
 
virtual bool isBad () const
 Is this candidate unacceptable?
 

Static Public Member Functions

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

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 ( ) 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 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.
static int getHeight()
Return the height of the image that getImage should return.
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
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
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.
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 52 of file SpatialCell.cc.

52 {
53 switch (status) {
54 case GOOD:
55 case UNKNOWN:
56 _status = status;
57 return;
58 case BAD:
59 _status = status;
60 return;
61 }
62
64 (boost::format("Saw unknown status %d") % status).str());
65}
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition Exception.h:48
Reports invalid arguments.
Definition Runtime.h:66

◆ 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: