LSSTApplications  17.0+124,17.0+14,17.0+73,18.0.0+37,18.0.0+80,18.0.0-4-g68ffd23+4,18.1.0-1-g0001055+12,18.1.0-1-g03d53ef+5,18.1.0-1-g1349e88+55,18.1.0-1-g2505f39+44,18.1.0-1-g5315e5e+4,18.1.0-1-g5e4b7ea+14,18.1.0-1-g7e8fceb+4,18.1.0-1-g85f8cd4+48,18.1.0-1-g8ff0b9f+4,18.1.0-1-ga2c679d+1,18.1.0-1-gd55f500+35,18.1.0-10-gb58edde+2,18.1.0-11-g0997b02+4,18.1.0-13-gfe4edf0b+12,18.1.0-14-g259bd21+21,18.1.0-19-gdb69f3f+2,18.1.0-2-g5f9922c+24,18.1.0-2-gd3b74e5+11,18.1.0-2-gfbf3545+32,18.1.0-26-g728bddb4+5,18.1.0-27-g6ff7ca9+2,18.1.0-3-g52aa583+25,18.1.0-3-g8ea57af+9,18.1.0-3-gb69f684+42,18.1.0-3-gfcaddf3+6,18.1.0-32-gd8786685a,18.1.0-4-gf3f9b77+6,18.1.0-5-g1dd662b+2,18.1.0-5-g6dbcb01+41,18.1.0-6-gae77429+3,18.1.0-7-g9d75d83+9,18.1.0-7-gae09a6d+30,18.1.0-9-gc381ef5+4,w.2019.45
LSSTDataManagementBasePackage
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  }
Reports attempts to exceed implementation-defined length limits for some classes. ...
Definition: Runtime.h:76
char * data
Definition: BaseRecord.cc:62
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:85
Reports errors in the logical structure of the program.
Definition: Runtime.h:46
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
py::object result
Definition: _schema.cc:429
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: