lsst.ip.diffim
g174f8ebed5+9bac6ea756
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
ip
diffim
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
"
20
#include "
lsst/ip/diffim/KernelSolution.h
"
21
#include "
lsst/afw/table/Source.h
"
22
#include "
lsst/daf/base.h
"
23
24
namespace
lsst
{
25
namespace
ip
{
26
namespace
diffim
{
27
28
38
template
<
typename
_PixelT>
39
class
KernelCandidate
:
public
afw::math::SpatialCellImageCandidate
{
40
public
:
41
typedef
afw::image::Image<afw::math::Kernel::Pixel>
ImageT
;
42
typedef
_PixelT
PixelT
;
// _after_ afw::math::Kernel::Pixel
43
public
:
44
typedef
std::shared_ptr<KernelCandidate>
Ptr
;
45
typedef
std::shared_ptr<afw::image::MaskedImage<PixelT>
>
MaskedImagePtr
;
46
typedef
std::shared_ptr<afw::image::Image<afw::image::VariancePixel>
>
VariancePtr
;
47
typedef
std::shared_ptr<afw::table::SourceRecord>
SourcePtr
;
48
49
enum
CandidateSwitch
{
50
ORIG
= 0,
51
PCA
= 1,
52
RECENT
= 2
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
106
std::shared_ptr<afw::math::Kernel>
getKernel
(
CandidateSwitch
cand)
const
;
107
double
getBackground
(
CandidateSwitch
cand)
const
;
108
double
getKsum
(
CandidateSwitch
cand)
const
;
109
std::shared_ptr<ImageT>
getKernelImage
(
CandidateSwitch
cand)
const
;
110
std::shared_ptr<ImageT const>
getImage
()
const
;
// For SpatialCellImageCandidate
111
std::shared_ptr<StaticKernelSolution<PixelT>
>
getKernelSolution
(
CandidateSwitch
cand)
const
;
112
116
afw::image::MaskedImage<PixelT>
getDifferenceImage
(
CandidateSwitch
cand);
117
123
afw::image::MaskedImage<PixelT>
getDifferenceImage
(
124
std::shared_ptr<afw::math::Kernel>
kernel,
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;
189
daf::base::PropertySet::Ptr
_ps;
190
SourcePtr
_source;
191
double
_coreFlux;
192
bool
_isInitialized;
193
bool
_useRegularization;
194
bool
_fitForBackground;
195
196
/* best single raw kernel */
197
std::shared_ptr<StaticKernelSolution<PixelT>
> _kernelSolutionOrig;
198
199
/* with Pca basis */
200
std::shared_ptr<StaticKernelSolution<PixelT>
> _kernelSolutionPca;
201
202
void
_buildKernelSolution(
afw::math::KernelList
const
& basisList,
203
Eigen::MatrixXd
const
& hMat);
204
};
205
206
218
template
<
typename
PixelT>
219
std::shared_ptr<KernelCandidate<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
226
return
std::shared_ptr<KernelCandidate<PixelT>
>(
new
KernelCandidate<PixelT>
(xCenter, yCenter,
227
templateMaskedImage,
228
scienceMaskedImage,
229
ps));
230
}
231
243
template
<
typename
PixelT>
244
std::shared_ptr<KernelCandidate<PixelT>
>
245
makeKernelCandidate
(
std::shared_ptr<afw::table::SourceRecord>
const
& source,
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
250
return
std::shared_ptr<KernelCandidate<PixelT>
>(
new
KernelCandidate<PixelT>
(source,
251
templateMaskedImage,
252
scienceMaskedImage,
253
ps));
254
}
255
256
257
}}}
// end of namespace lsst::ip::diffim
258
259
#endif
KernelSolution.h
Declaration of classes to store the solution for convolution kernels.
Source.h
base.h
lsst::afw::image::Image
lsst::afw::image::MaskedImage
lsst::afw::math::SpatialCellImageCandidate
lsst::daf::base::PropertySet
lsst::daf::base::PropertySet::Ptr
std::shared_ptr< PropertySet > Ptr
lsst::ip::diffim::KernelCandidate
Class stored in SpatialCells for spatial Kernel fitting.
Definition
KernelCandidate.h:39
lsst::ip::diffim::KernelCandidate::getImage
std::shared_ptr< ImageT const > getImage() const
Definition
KernelCandidate.cc:332
lsst::ip::diffim::KernelCandidate::MaskedImagePtr
std::shared_ptr< afw::image::MaskedImage< PixelT > > MaskedImagePtr
Definition
KernelCandidate.h:45
lsst::ip::diffim::KernelCandidate::isInitialized
bool isInitialized() const
Definition
KernelCandidate.h:128
lsst::ip::diffim::KernelCandidate::PixelT
_PixelT PixelT
Definition
KernelCandidate.h:42
lsst::ip::diffim::KernelCandidate::VariancePtr
std::shared_ptr< afw::image::Image< afw::image::VariancePixel > > VariancePtr
Definition
KernelCandidate.h:46
lsst::ip::diffim::KernelCandidate::~KernelCandidate
virtual ~KernelCandidate()
Destructor.
Definition
KernelCandidate.h:84
lsst::ip::diffim::KernelCandidate::ImageT
afw::image::Image< afw::math::Kernel::Pixel > ImageT
Definition
KernelCandidate.h:41
lsst::ip::diffim::KernelCandidate::getDifferenceImage
afw::image::MaskedImage< PixelT > getDifferenceImage(CandidateSwitch cand)
Calculate associated difference image using internal solutions.
Definition
KernelCandidate.cc:366
lsst::ip::diffim::KernelCandidate::getCandidateRating
double getCandidateRating() const
Return Candidate rating.
Definition
KernelCandidate.h:91
lsst::ip::diffim::KernelCandidate::Ptr
std::shared_ptr< KernelCandidate > Ptr
Definition
KernelCandidate.h:44
lsst::ip::diffim::KernelCandidate::getTemplateMaskedImage
MaskedImagePtr getTemplateMaskedImage()
Return pointers to the image pixels used in kernel determination.
Definition
KernelCandidate.h:99
lsst::ip::diffim::KernelCandidate::getBackground
double getBackground(CandidateSwitch cand) const
Definition
KernelCandidate.cc:247
lsst::ip::diffim::KernelCandidate::getKsum
double getKsum(CandidateSwitch cand) const
Definition
KernelCandidate.cc:275
lsst::ip::diffim::KernelCandidate::CandidateSwitch
CandidateSwitch
Definition
KernelCandidate.h:49
lsst::ip::diffim::KernelCandidate::RECENT
@ RECENT
Definition
KernelCandidate.h:52
lsst::ip::diffim::KernelCandidate::PCA
@ PCA
Definition
KernelCandidate.h:51
lsst::ip::diffim::KernelCandidate::ORIG
@ ORIG
Definition
KernelCandidate.h:50
lsst::ip::diffim::KernelCandidate::SourcePtr
std::shared_ptr< afw::table::SourceRecord > SourcePtr
Definition
KernelCandidate.h:47
lsst::ip::diffim::KernelCandidate::getKernelSolution
std::shared_ptr< StaticKernelSolution< PixelT > > getKernelSolution(CandidateSwitch cand) const
Definition
KernelCandidate.cc:337
lsst::ip::diffim::KernelCandidate::getKernel
std::shared_ptr< afw::math::Kernel > getKernel(CandidateSwitch cand) const
Return results of kernel solution.
Definition
KernelCandidate.cc:219
lsst::ip::diffim::KernelCandidate::KernelCandidate
KernelCandidate(float const xCenter, float const yCenter, MaskedImagePtr const &templateMaskedImage, MaskedImagePtr const &scienceMaskedImage, daf::base::PropertySet const &ps)
Constructor.
Definition
KernelCandidate.cc:32
lsst::ip::diffim::KernelCandidate::getSource
SourcePtr getSource() const
Return the original source.
Definition
KernelCandidate.h:95
lsst::ip::diffim::KernelCandidate::getScienceMaskedImage
MaskedImagePtr getScienceMaskedImage()
Definition
KernelCandidate.h:100
lsst::ip::diffim::KernelCandidate::getKernelImage
std::shared_ptr< ImageT > getKernelImage(CandidateSwitch cand) const
Definition
KernelCandidate.cc:303
lsst::ip::diffim::KernelCandidate::build
void build(afw::math::KernelList const &basisList)
Core functionality of KernelCandidate, to build and fill a KernelSolution.
Definition
KernelCandidate.cc:86
image.h
math.h
lsst::afw::math::KernelList
std::vector< std::shared_ptr< Kernel > > KernelList
lsst::ip::diffim.detectAndMeasure.background
background
Definition
detectAndMeasure.py:763
lsst::ip::diffim
Definition
AssessSpatialKernelVisitor.h:22
lsst::ip::diffim::makeKernelCandidate
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.
Definition
KernelCandidate.h:220
lsst::ip
Definition
AssessSpatialKernelVisitor.h:21
lsst
std::shared_ptr
Generated on
for lsst.ip.diffim by
1.17.0