LSST Applications 29.1.1,g0fba68d861+94d977d4f8,g1fd858c14a+0a42b1a450,g21d47ad084+bae5d1592d,g35bb328faa+fcb1d3bbc8,g36ff55ed5b+4036fd6440,g4e0f332c67+abab7ee1ee,g53246c7159+fcb1d3bbc8,g60b5630c4e+4036fd6440,g67b6fd64d1+31de10a2f7,g72a202582f+7a25662ef1,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g86c591e316+1a75853d69,g8852436030+8220ab3cb6,g88f4e072da+7005418d1d,g89139ef638+31de10a2f7,g8b8da53e10+8f7b08dc1c,g9125e01d80+fcb1d3bbc8,g989de1cb63+31de10a2f7,g9f1445be69+4036fd6440,g9f33ca652e+fcef3ba435,ga9baa6287d+4036fd6440,ga9e4eb89a6+a41a34c2ba,gabe3b4be73+1e0a283bba,gb0b61e0e8e+d456af7c26,gb1101e3267+f17a9d70ea,gb58c049af0+f03b321e39,gb89ab40317+31de10a2f7,gce29eb0867+05ed69485a,gcf25f946ba+8220ab3cb6,gd6cbbdb0b4+11317e7a17,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+b4f50ea554,ge278dab8ac+50e2446c94,ge410e46f29+31de10a2f7,ge80e9994a3+32bb9bc1c9,gf5e32f922b+fcb1d3bbc8,gf67bdafdda+31de10a2f7
LSST Data Management Base Package
Loading...
Searching...
No Matches
KernelCandidate.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
11
12#ifndef LSST_IP_DIFFIM_KERNELCANDIDATE_H
13#define LSST_IP_DIFFIM_KERNELCANDIDATE_H
14
15#include <memory>
16#include "Eigen/Core"
17
18#include "lsst/afw/math.h"
19#include "lsst/afw/image.h"
22#include "lsst/daf/base.h"
23
24namespace lsst {
25namespace ip {
26namespace diffim {
27
28
38 template <typename _PixelT>
40 public:
42 typedef _PixelT PixelT; // _after_ afw::math::Kernel::Pixel
43 public:
48
50 ORIG = 0,
51 PCA = 1,
53 };
54
64 KernelCandidate(float const xCenter,
65 float const yCenter,
66 MaskedImagePtr const& templateMaskedImage,
67 MaskedImagePtr const& scienceMaskedImage,
68 daf::base::PropertySet const& ps);
69
79 KernelCandidate(SourcePtr const& source,
80 MaskedImagePtr const& templateMaskedImage,
81 MaskedImagePtr const& scienceMaskedImage,
82 daf::base::PropertySet const& ps);
84 virtual ~KernelCandidate() {};
85
91 double getCandidateRating() const { return _coreFlux; }
95 SourcePtr getSource() const { return _source; }
99 MaskedImagePtr getTemplateMaskedImage() {return _templateMaskedImage;}
100 MaskedImagePtr getScienceMaskedImage() {return _scienceMaskedImage;}
101
107 double getBackground(CandidateSwitch cand) const;
108 double getKsum(CandidateSwitch cand) const;
110 std::shared_ptr<ImageT const> getImage() const; // For SpatialCellImageCandidate
112
117
125 double background
126 );
127
128 bool isInitialized() const {return _isInitialized;}
129
130
150
164
165 /*
166 * @note This method uses an estimate of the variance which is the
167 * straight difference of the 2 images. If requested in the PropertySet
168 * ("iterateSingleKernel"), the kernel will be rebuilt using the
169 * variance of the difference image resulting from this first
170 * approximate step. This is particularly useful when convolving a
171 * single-depth science image; the variance (and thus resulting kernel)
172 * generally converges after 1 iteration. If
173 * "constantVarianceWeighting" is requested in the PropertySet, no iterations
174 * will be performed even if requested.
175 */
176
177 void build(
178 afw::math::KernelList const& basisList
179 );
180 void build(
181 afw::math::KernelList const& basisList,
182 Eigen::MatrixXd const& hMat
183 );
184
185 private:
186 MaskedImagePtr _templateMaskedImage;
187 MaskedImagePtr _scienceMaskedImage;
188 VariancePtr _varianceEstimate;
190 SourcePtr _source;
191 double _coreFlux;
192 bool _isInitialized;
193 bool _useRegularization;
194 bool _fitForBackground;
195
196 /* best single raw kernel */
198
199 /* with Pca basis */
201
202 void _buildKernelSolution(afw::math::KernelList const& basisList,
203 Eigen::MatrixXd const& hMat);
204 };
205
206
218 template <typename PixelT>
220 makeKernelCandidate(float const xCenter,
221 float const yCenter,
222 std::shared_ptr<afw::image::MaskedImage<PixelT> > const& templateMaskedImage,
223 std::shared_ptr<afw::image::MaskedImage<PixelT> > const& scienceMaskedImage,
224 daf::base::PropertySet const& ps){
225
227 templateMaskedImage,
228 scienceMaskedImage,
229 ps));
230 }
231
243 template <typename PixelT>
246 std::shared_ptr<afw::image::MaskedImage<PixelT> > const& templateMaskedImage,
247 std::shared_ptr<afw::image::MaskedImage<PixelT> > const& scienceMaskedImage,
248 daf::base::PropertySet const& ps){
249
251 templateMaskedImage,
252 scienceMaskedImage,
253 ps));
254 }
255
256
257}}} // end of namespace lsst::ip::diffim
258
259#endif
Declaration of classes to store the solution for convolution kernels.
A class to represent a 2-dimensional array of pixels.
Definition Image.h:51
A class to manipulate images, masks, and variance as a single object.
Definition MaskedImage.h:74
Base class for candidate objects in a SpatialCell that are able to return an Image of some sort (e....
Class for storing generic metadata.
Definition PropertySet.h:67
std::shared_ptr< PropertySet > Ptr
Definition PropertySet.h:70
Class stored in SpatialCells for spatial Kernel fitting.
std::shared_ptr< ImageT const > getImage() const
std::shared_ptr< afw::image::MaskedImage< PixelT > > MaskedImagePtr
std::shared_ptr< afw::image::Image< afw::image::VariancePixel > > VariancePtr
virtual ~KernelCandidate()
Destructor.
afw::image::Image< afw::math::Kernel::Pixel > ImageT
afw::image::MaskedImage< PixelT > getDifferenceImage(CandidateSwitch cand)
Calculate associated difference image using internal solutions.
double getCandidateRating() const
Return Candidate rating.
std::shared_ptr< KernelCandidate > Ptr
MaskedImagePtr getTemplateMaskedImage()
Return pointers to the image pixels used in kernel determination.
double getBackground(CandidateSwitch cand) const
double getKsum(CandidateSwitch cand) const
std::shared_ptr< afw::table::SourceRecord > SourcePtr
std::shared_ptr< StaticKernelSolution< PixelT > > getKernelSolution(CandidateSwitch cand) const
std::shared_ptr< afw::math::Kernel > getKernel(CandidateSwitch cand) const
Return results of kernel solution.
KernelCandidate(float const xCenter, float const yCenter, MaskedImagePtr const &templateMaskedImage, MaskedImagePtr const &scienceMaskedImage, daf::base::PropertySet const &ps)
Constructor.
SourcePtr getSource() const
Return the original source.
std::shared_ptr< ImageT > getKernelImage(CandidateSwitch cand) const
void build(afw::math::KernelList const &basisList)
Core functionality of KernelCandidate, to build and fill a KernelSolution.
std::vector< std::shared_ptr< Kernel > > KernelList
Definition Kernel.h:462
std::shared_ptr< KernelCandidate< PixelT > > makeKernelCandidate(float const xCenter, float const yCenter, std::shared_ptr< afw::image::MaskedImage< PixelT > > const &templateMaskedImage, std::shared_ptr< afw::image::MaskedImage< PixelT > > const &scienceMaskedImage, daf::base::PropertySet const &ps)
Return a KernelCandidate pointer of the right sort.