lsst.meas.base
ga44f29b7aa+21155385c5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
meas
base
Blendedness.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of meas_base.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#ifndef LSST_MEAS_BASE_Blendedness_h_INCLUDED
26
#define LSST_MEAS_BASE_Blendedness_h_INCLUDED
27
28
#include "lsst/pex/config.h"
29
#include "
lsst/meas/base/Algorithm.h
"
30
#include "
lsst/meas/base/ShapeUtilities.h
"
31
#include "
lsst/afw/table/Source.h
"
32
#include "
lsst/afw/image/Image.h
"
33
#include "
lsst/meas/base/Transform.h
"
34
#include "
lsst/meas/base/FlagHandler.h
"
35
36
namespace
lsst
{
37
namespace
meas
{
38
namespace
base
{
39
40
class
BlendednessControl
{
41
public
:
42
LSST_CONTROL_FIELD(
43
doOld
,
bool
,
44
"Whether to compute HeavyFootprint dot products (the old deblend.blendedness parameter)"
);
45
46
LSST_CONTROL_FIELD(
doFlux
,
bool
,
"Whether to compute quantities related to the Gaussian-weighted flux"
);
47
48
LSST_CONTROL_FIELD(
doShape
,
bool
,
"Whether to compute quantities related to the Gaussian-weighted shape"
);
49
50
LSST_CONTROL_FIELD(
nSigmaWeightMax
,
double
,
51
"Radius factor that sets the maximum extent of the weight function (and hence the "
52
"flux measurements)"
);
53
54
BlendednessControl
() :
doOld
(true),
doFlux
(true),
doShape
(true),
nSigmaWeightMax
(3.0) {}
55
};
56
66
class
BlendednessAlgorithm
:
public
SimpleAlgorithm
{
67
public
:
68
// Structures and routines to manage flaghandler
69
static
FlagDefinitionList
const
&
getFlagDefinitions
();
70
static
FlagDefinition
const
FAILURE
;
71
static
FlagDefinition
const
NO_CENTROID
;
72
static
FlagDefinition
const
NO_SHAPE
;
73
74
typedef
BlendednessControl
Control
;
75
76
BlendednessAlgorithm
(
Control
const
& ctrl,
std::string
const
& name,
afw::table::Schema
& schema);
77
94
static
float
computeAbsExpectation
(
float
data,
float
variance);
95
112
static
float
computeAbsBias
(
float
mu,
float
variance);
113
114
void
measureChildPixels
(
afw::image::MaskedImage<float>
const
&
image
,
115
afw::table::SourceRecord
& child)
const
;
116
117
void
measureParentPixels
(
afw::image::MaskedImage<float>
const
&
image
,
118
afw::table::SourceRecord
& child)
const
;
119
120
virtual
void
measure
(
afw::table::SourceRecord
& measRecord,
121
afw::image::Exposure<float>
const
& exposure)
const
{}
122
123
virtual
void
fail
(
afw::table::SourceRecord
& measRecord,
MeasurementError
* error =
nullptr
)
const
{}
124
125
private
:
126
void
_measureMoments(
afw::image::MaskedImage<float>
const
&
image
,
afw::table::SourceRecord
& child,
127
afw::table::Key<double>
const
& instFluxRawKey,
128
afw::table::Key<double>
const
& instFluxAbsKey,
ShapeResultKey
const
& _shapeRawKey,
129
ShapeResultKey
const
& _shapeAbsKey)
const
;
130
131
Control
const
_ctrl;
132
afw::table::Key<double>
_old;
133
afw::table::Key<double>
_raw;
134
afw::table::Key<double>
_instFluxChildRaw;
135
afw::table::Key<double>
_instFluxParentRaw;
136
afw::table::Key<double>
_abs;
137
afw::table::Key<double>
_instFluxChildAbs;
138
afw::table::Key<double>
_instFluxParentAbs;
139
ShapeResultKey
_shapeChildRaw;
140
ShapeResultKey
_shapeParentRaw;
141
ShapeResultKey
_shapeChildAbs;
142
ShapeResultKey
_shapeParentAbs;
143
FlagHandler
_flagHandler;
144
};
145
146
}
// namespace base
147
}
// namespace meas
148
}
// namespace lsst
149
150
#endif
// LSST_MEAS_BASE_Blendedness_h_INCLUDED
Algorithm.h
FlagHandler.h
ShapeUtilities.h
Source.h
Transform.h
This defines the base of measurement transformations.
std::string
lsst::afw::image::Exposure
lsst::afw::image::MaskedImage
lsst::afw::table::Key
lsst::afw::table::Schema
lsst::afw::table::SourceRecord
lsst::meas::base::BlendednessAlgorithm::computeAbsExpectation
static float computeAbsExpectation(float data, float variance)
Compute the posterior expectation value of the true instrumental flux in a pixel from its (Gaussian) ...
Definition
Blendedness.cc:260
lsst::meas::base::BlendednessAlgorithm::measureChildPixels
void measureChildPixels(afw::image::MaskedImage< float > const &image, afw::table::SourceRecord &child) const
Definition
Blendedness.cc:346
lsst::meas::base::BlendednessAlgorithm::Control
BlendednessControl Control
Definition
Blendedness.h:74
lsst::meas::base::BlendednessAlgorithm::getFlagDefinitions
static FlagDefinitionList const & getFlagDefinitions()
Definition
Blendedness.cc:49
lsst::meas::base::BlendednessAlgorithm::computeAbsBias
static float computeAbsBias(float mu, float variance)
Compute the bias induced by using the absolute value of a pixel instead of its value.
Definition
Blendedness.cc:270
lsst::meas::base::BlendednessAlgorithm::NO_SHAPE
static FlagDefinition const NO_SHAPE
Definition
Blendedness.h:72
lsst::meas::base::BlendednessAlgorithm::fail
virtual void fail(afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const
Handle an exception thrown by the current algorithm by setting flags in the given record.
Definition
Blendedness.h:123
lsst::meas::base::BlendednessAlgorithm::NO_CENTROID
static FlagDefinition const NO_CENTROID
Definition
Blendedness.h:71
lsst::meas::base::BlendednessAlgorithm::measure
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.
Definition
Blendedness.h:120
lsst::meas::base::BlendednessAlgorithm::FAILURE
static FlagDefinition const FAILURE
Definition
Blendedness.h:70
lsst::meas::base::BlendednessAlgorithm::BlendednessAlgorithm
BlendednessAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema)
Definition
Blendedness.cc:195
lsst::meas::base::BlendednessAlgorithm::measureParentPixels
void measureParentPixels(afw::image::MaskedImage< float > const &image, afw::table::SourceRecord &child) const
Definition
Blendedness.cc:351
lsst::meas::base::BlendednessControl
Definition
Blendedness.h:40
lsst::meas::base::BlendednessControl::nSigmaWeightMax
double nSigmaWeightMax
"Radius factor that sets the maximum extent of the weight function (and hence the " "flux measurement...
Definition
Blendedness.h:52
lsst::meas::base::BlendednessControl::doOld
bool doOld
"Whether to compute HeavyFootprint dot products (the old deblend.blendedness parameter)" ;
Definition
Blendedness.h:44
lsst::meas::base::BlendednessControl::doShape
bool doShape
"Whether to compute quantities related to the Gaussian-weighted shape" ;
Definition
Blendedness.h:48
lsst::meas::base::BlendednessControl::doFlux
bool doFlux
"Whether to compute quantities related to the Gaussian-weighted flux" ;
Definition
Blendedness.h:46
lsst::meas::base::BlendednessControl::BlendednessControl
BlendednessControl()
Definition
Blendedness.h:54
lsst::meas::base::FlagDefinitionList
vector-type utility class to build a collection of FlagDefinitions
Definition
FlagHandler.h:60
lsst::meas::base::FlagHandler
Utility class for handling flag fields that indicate the failure modes of an algorithm.
Definition
FlagHandler.h:149
lsst::meas::base::MeasurementError
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition
exceptions.h:48
lsst::meas::base::ShapeResultKey
A FunctorKey for ShapeResult.
Definition
ShapeUtilities.h:113
lsst::meas::base::SimpleAlgorithm
An abstract base classes for which the same implementation can be used for both SingleFrameAlgorithm ...
Definition
Algorithm.h:170
Image.h
lsst::afw::image
lsst::meas::base.plugins.BlendednessAlgorithm
BlendednessAlgorithm
Definition
plugins.py:101
lsst::meas::base.plugins.Control
Control
Definition
plugins.py:82
lsst::meas::base
Definition
Algorithm.h:37
lsst::meas
Definition
Algorithm.h:36
lsst
lsst::meas::base::FlagDefinition
Simple class used to define and document flags The name and doc constitute the identity of the FlagDe...
Definition
FlagHandler.h:40
Generated on
for lsst.meas.base by
1.17.0