lsst.ip.diffim  13.0-28-gf4bc96c+1
BuildSpatialKernelVisitor.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
12 #ifndef LSST_IP_DIFFIM_BUILDSPATIALKERNELVISITOR_H
13 #define LSST_IP_DIFFIM_BUILDSPATIALKERNELVISITOR_H
14 
15 #include "Eigen/Core"
16 #include "lsst/afw/math.h"
17 #include "lsst/afw/image.h"
18 #include "lsst/ip/diffim.h"
19 #include "lsst/pex/policy/Policy.h"
20 
21 namespace lsst {
22 namespace ip {
23 namespace diffim {
24 namespace detail {
25 
26  template<typename PixelT>
27  class BuildSpatialKernelVisitor : public lsst::afw::math::CandidateVisitor {
28  public:
29  typedef std::shared_ptr<BuildSpatialKernelVisitor<PixelT> > Ptr;
30 
32  lsst::afw::math::KernelList const& basisList,
33  lsst::afw::geom::Box2I const& regionBBox,
34  lsst::pex::policy::Policy policy
35  );
36 
37  int getNCandidates() {return _nCandidates;}
38 
39  void processCandidate(lsst::afw::math::SpatialCellCandidate *candidate);
40 
41  void solveLinearEquation();
42 
43  inline std::shared_ptr<SpatialKernelSolution> getKernelSolution() {return _kernelSolution;}
44 
45  std::pair<std::shared_ptr<lsst::afw::math::LinearCombinationKernel>,
46  lsst::afw::math::Kernel::SpatialFunctionPtr> getSolutionPair();
47 
48  private:
49  std::shared_ptr<SpatialKernelSolution> _kernelSolution;
51  };
52 
53  template<typename PixelT>
54  std::shared_ptr<BuildSpatialKernelVisitor<PixelT> >
56  lsst::afw::math::KernelList const& basisList,
57  lsst::afw::geom::Box2I const& regionBBox,
58  lsst::pex::policy::Policy policy
59  ) {
60 
61  return std::shared_ptr<BuildSpatialKernelVisitor<PixelT>>(
62  new BuildSpatialKernelVisitor<PixelT>(basisList, regionBBox, policy)
63  );
64  }
65 
66 }}}} // end of namespace lsst::ip::diffim::detail
67 
68 #endif
Creates a spatial kernel and background from a list of candidates.
An include file to include the header files for lsst::ip::diffim.
std::shared_ptr< BuildSpatialKernelVisitor< PixelT > > Ptr
std::shared_ptr< SpatialKernelSolution > getKernelSolution()
BuildSpatialKernelVisitor(lsst::afw::math::KernelList const &basisList, lsst::afw::geom::Box2I const &regionBBox, lsst::pex::policy::Policy policy)
std::pair< std::shared_ptr< lsst::afw::math::LinearCombinationKernel >, lsst::afw::math::Kernel::SpatialFunctionPtr > getSolutionPair()
std::shared_ptr< BuildSpatialKernelVisitor< PixelT > > makeBuildSpatialKernelVisitor(lsst::afw::math::KernelList const &basisList, lsst::afw::geom::Box2I const &regionBBox, lsst::pex::policy::Policy policy)
std::shared_ptr< SpatialKernelSolution > _kernelSolution
void processCandidate(lsst::afw::math::SpatialCellCandidate *candidate)