lsst.meas.base
ga44f29b7aa+7c34ee3998
Toggle main menu visibility
Loading...
Searching...
No Matches
src
GaussianFlux.cc
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008-2013 LSST Corporation.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
24
#include "ndarray/eigen.h"
25
26
#include "
lsst/afw/detection/Psf.h
"
27
#include "
lsst/geom/Box.h
"
28
#include "
lsst/afw/geom/ellipses/Ellipse.h
"
29
#include "
lsst/afw/table/Source.h
"
30
#include "
lsst/meas/base/GaussianFlux.h
"
31
#include "
lsst/meas/base/SdssShape.h
"
32
33
namespace
lsst
{
34
namespace
meas
{
35
namespace
base
{
36
namespace
{
37
FlagDefinitionList
flagDefinitions;
38
}
// namespace
39
40
FlagDefinition
const
GaussianFluxAlgorithm::FAILURE
= flagDefinitions.addFailureFlag();
41
42
FlagDefinitionList
const
&
GaussianFluxAlgorithm::getFlagDefinitions
() {
return
flagDefinitions; }
43
44
GaussianFluxAlgorithm::GaussianFluxAlgorithm
(
Control
const
& ctrl,
std::string
const
& name,
45
afw::table::Schema
& schema)
46
: _ctrl(ctrl),
47
_instFluxResultKey(
FluxResultKey
::addFields(schema, name,
"instFlux from Gaussian Flux algorithm"
)),
48
_centroidExtractor(schema, name),
49
_shapeExtractor(schema, name) {
50
_flagHandler =
FlagHandler::addFields
(schema, name,
getFlagDefinitions
());
51
}
52
53
void
GaussianFluxAlgorithm::measure
(
afw::table::SourceRecord
& measRecord,
54
afw::image::Exposure<float>
const
& exposure)
const
{
55
geom::Point2D
centroid = _centroidExtractor(measRecord, _flagHandler);
56
afw::geom::ellipses::Quadrupole
shape = _shapeExtractor(measRecord, _flagHandler);
57
58
FluxResult
result =
59
SdssShapeAlgorithm::computeFixedMomentsFlux
(exposure.
getMaskedImage
(), shape, centroid);
60
61
measRecord.
set
(_instFluxResultKey, result);
62
_flagHandler.setValue(measRecord,
FAILURE
.number,
false
);
63
}
64
65
void
GaussianFluxAlgorithm::fail
(
afw::table::SourceRecord
& measRecord,
MeasurementError
* error)
const
{
66
_flagHandler.handleFailure(measRecord, error);
67
}
68
69
}
// namespace base
70
}
// namespace meas
71
}
// namespace lsst
Box.h
Ellipse.h
GaussianFlux.h
Psf.h
SdssShape.h
Source.h
std::string
lsst::afw::geom::ellipses::Quadrupole
lsst::afw::image::Exposure
lsst::afw::image::Exposure::getMaskedImage
MaskedImageT getMaskedImage()
lsst::afw::table::SourceRecord::set
void set(Key< T > const &key, U const &value)
lsst::afw::table::Schema
lsst::afw::table::SourceRecord
lsst::meas::base::FlagDefinitionList
vector-type utility class to build a collection of FlagDefinitions
Definition
FlagHandler.h:60
lsst::meas::base::FlagHandler::addFields
static FlagHandler addFields(afw::table::Schema &schema, std::string const &prefix, FlagDefinitionList const &flagDefs, FlagDefinitionList const &exclDefs=FlagDefinitionList::getEmptyList())
Add Flag fields to a schema, creating a FlagHandler object to manage them.
Definition
FlagHandler.cc:47
lsst::meas::base::FluxResultKey
A FunctorKey for FluxResult.
Definition
FluxUtilities.h:61
lsst::meas::base::GaussianFluxAlgorithm::FAILURE
static FlagDefinition const FAILURE
Definition
GaussianFlux.h:66
lsst::meas::base::GaussianFluxAlgorithm::getFlagDefinitions
static FlagDefinitionList const & getFlagDefinitions()
Definition
GaussianFlux.cc:42
lsst::meas::base::GaussianFluxAlgorithm::GaussianFluxAlgorithm
GaussianFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema)
Definition
GaussianFlux.cc:44
lsst::meas::base::GaussianFluxAlgorithm::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
GaussianFlux.cc:53
lsst::meas::base::GaussianFluxAlgorithm::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
GaussianFlux.cc:65
lsst::meas::base::GaussianFluxAlgorithm::Control
GaussianFluxControl Control
A typedef to the Control object for this algorithm, defined above.
Definition
GaussianFlux.h:70
lsst::meas::base::MeasurementError
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition
exceptions.h:48
lsst::meas::base::SdssShapeAlgorithm::computeFixedMomentsFlux
static FluxResult computeFixedMomentsFlux(ImageT const &image, afw::geom::ellipses::Quadrupole const &shape, geom::Point2D const &position)
Compute the instFlux within a fixed Gaussian aperture.
Definition
SdssShape.cc:834
lsst::geom::Point2D
Point< double, 2 > Point2D
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
lsst::meas::base::FluxResult
A reusable result struct for instFlux measurements.
Definition
FluxUtilities.h:41
Generated on
for lsst.meas.base by
1.17.0