LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
Public Member Functions | List of all members
lsst::meas::algorithms::evalChi2Visitor< PixelT > Class Template Reference

A class to pass around to all our PsfCandidates to evaluate the PSF fit's X^2. More...

Inheritance diagram for lsst::meas::algorithms::evalChi2Visitor< PixelT >:
lsst::afw::math::CandidateVisitor

Public Member Functions

 evalChi2Visitor (afw::math::Kernel const &kernel, double lambda)
 
void reset ()
 
void processCandidate (afw::math::SpatialCellCandidate *candidate)
 
double getValue () const
 

Detailed Description

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

A class to pass around to all our PsfCandidates to evaluate the PSF fit's X^2.

Definition at line 431 of file SpatialModelPsf.cc.

Constructor & Destructor Documentation

◆ evalChi2Visitor()

template<typename PixelT >
lsst::meas::algorithms::evalChi2Visitor< PixelT >::evalChi2Visitor ( afw::math::Kernel const &  kernel,
double  lambda 
)
inlineexplicit

Definition at line 439 of file SpatialModelPsf.cc.

440  : afw::math::CandidateVisitor(),
441  _chi2(0.0),
442  _kernel(kernel),
443  _lambda(lambda),
444  _kImage(std::shared_ptr<KImage>(new KImage(kernel.getDimensions()))) {}

Member Function Documentation

◆ getValue()

template<typename PixelT >
double lsst::meas::algorithms::evalChi2Visitor< PixelT >::getValue ( ) const
inline

Definition at line 486 of file SpatialModelPsf.cc.

486 { return _chi2; }

◆ processCandidate()

template<typename PixelT >
void lsst::meas::algorithms::evalChi2Visitor< PixelT >::processCandidate ( afw::math::SpatialCellCandidate candidate)
inlinevirtual

Reimplemented from lsst::afw::math::CandidateVisitor.

Definition at line 449 of file SpatialModelPsf.cc.

449  {
450  PsfCandidate<PixelT>* imCandidate = dynamic_cast<PsfCandidate<PixelT>*>(candidate);
451  if (imCandidate == NULL) {
453  "Failed to cast SpatialCellCandidate to PsfCandidate");
454  }
455 
456  double const xcen = imCandidate->getSource()->getX();
457  double const ycen = imCandidate->getSource()->getY();
458 
459  _kernel.computeImage(*_kImage, true, xcen, ycen);
461  try {
462  data = imCandidate->getOffsetImage(WARP_ALGORITHM, WARP_BUFFER);
464  return;
465  }
466 
467  try {
469  fitKernel(*_kImage, *data, _lambda, false, imCandidate->getSource()->getId());
470 
471  double dchi2 = result.first; // chi^2 from this object
472  double const amp = result.second; // estimate of amplitude of model at this point
473 
474  imCandidate->setChi2(dchi2);
475  imCandidate->setAmplitude(amp);
476 
477  _chi2 += dchi2;
478  } catch (lsst::pex::exceptions::RangeError& e) {
479  imCandidate->setStatus(afw::math::SpatialCellCandidate::BAD);
480  imCandidate->setChi2(std::numeric_limits<double>::quiet_NaN());
481  imCandidate->setAmplitude(std::numeric_limits<double>::quiet_NaN());
482  }
483  }
py::object result
Definition: _schema.cc:429
char * data
Definition: BaseRecord.cc:61
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
double computeImage(lsst::afw::image::Image< Pixel > &image, bool doNormalize, double x=0.0, double y=0.0) const
Compute an image (pixellized representation of the kernel) in place.
Definition: Kernel.cc:76
Reports attempts to exceed implementation-defined length limits for some classes.
Definition: Runtime.h:76
Reports errors in the logical structure of the program.
Definition: Runtime.h:46
Reports when the result of an operation cannot be represented by the destination type.
Definition: Runtime.h:115

◆ reset()

template<typename PixelT >
void lsst::meas::algorithms::evalChi2Visitor< PixelT >::reset ( )
inlinevirtual

Reimplemented from lsst::afw::math::CandidateVisitor.

Definition at line 446 of file SpatialModelPsf.cc.

446 { _chi2 = 0.0; }

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