lsst.meas.base
ga44f29b7aa+acb932b993
Toggle main menu visibility
Loading...
Searching...
No Matches
src
ScaledApertureFlux.cc
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008-2016 AURA/LSST.
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 "
lsst/afw/table/Source.h
"
25
#include "
lsst/meas/base/ApertureFlux.h
"
26
#include "
lsst/meas/base/ScaledApertureFlux.h
"
27
#include "
lsst/meas/base/SincCoeffs.h
"
28
#include "
lsst/afw/detection/Psf.h
"
29
30
namespace
lsst
{
31
namespace
meas
{
32
namespace
base
{
33
34
ScaledApertureFluxAlgorithm::ScaledApertureFluxAlgorithm
(
Control
const
& ctrl,
std::string
const
& name,
35
afw::table::Schema
& schema)
36
: _ctrl(ctrl),
37
_instFluxResultKey(
38
FluxResultKey
::addFields(schema, name,
"instFlux derived from PSF-scaled aperture"
)),
39
_centroidExtractor(schema, name) {
40
_flagHandler =
FlagHandler::addFields
(schema, name,
ApertureFluxAlgorithm::getFlagDefinitions
());
41
}
42
43
void
ScaledApertureFluxAlgorithm::measure
(
afw::table::SourceRecord
& measRecord,
44
afw::image::Exposure<float>
const
& exposure)
const
{
45
geom::Point2D
const
center = _centroidExtractor(measRecord, _flagHandler);
46
double
const
radius = exposure.
getPsf
()->computeShape(center).getDeterminantRadius();
47
double
const
fwhm = 2.0 *
std::sqrt
(2.0 *
std::log
(2)) * radius;
48
double
const
size = _ctrl.scale * fwhm;
49
afw::geom::ellipses::Axes
const
axes(size, size);
50
51
// ApertureFluxAlgorithm::computeSincFlux requires an ApertureFluxControl as an
52
// argument. All that it uses it for is to read the type of warping kernel.
53
ApertureFluxControl
apCtrl;
54
apCtrl.
shiftKernel
= _ctrl.shiftKernel;
55
56
Result
result =
ApertureFluxAlgorithm::computeSincFlux
(
57
exposure.
getMaskedImage
(),
afw::geom::ellipses::Ellipse
(axes, center), apCtrl);
58
measRecord.
set
(_instFluxResultKey, result);
59
60
for
(
std::size_t
i = 0; i <
ApertureFluxAlgorithm::getFlagDefinitions
().
size
(); i++) {
61
FlagDefinition
const
& iter =
ApertureFluxAlgorithm::getFlagDefinitions
()[i];
62
if
(result.
getFlag
(iter.number)) {
63
_flagHandler.setValue(measRecord, iter.number,
true
);
64
}
65
}
66
}
67
68
void
ScaledApertureFluxAlgorithm::fail
(
afw::table::SourceRecord
& measRecord,
MeasurementError
* error)
const
{
69
_flagHandler.handleFailure(measRecord, error);
70
}
71
72
ScaledApertureFluxTransform::ScaledApertureFluxTransform
(
Control
const
& ctrl,
std::string
const
& name,
73
afw::table::SchemaMapper
& mapper)
74
:
FluxTransform
{name, mapper} {
75
for
(
std::size_t
i = 0; i <
ApertureFluxAlgorithm::getFlagDefinitions
().
size
(); i++) {
76
std::string
flagName =
ApertureFluxAlgorithm::getFlagDefinitions
()[i].name;
77
afw::table::Key<afw::table::Flag>
key =
78
mapper.
getInputSchema
().
find
<afw::table::Flag>(name +
"_"
+ flagName).key;
79
if
(key.
isValid
()) {
80
mapper.
addMapping
(key);
81
}
82
}
83
}
84
85
}
// namespace base
86
}
// namespace meas
87
}
// namespace lsst
ApertureFlux.h
Psf.h
ScaledApertureFlux.h
SincCoeffs.h
Source.h
std::string
lsst::afw::geom::ellipses::Axes
lsst::afw::geom::ellipses::Ellipse
lsst::afw::image::Exposure
lsst::afw::image::Exposure::getMaskedImage
MaskedImageT getMaskedImage()
lsst::afw::image::Exposure::getPsf
std::shared_ptr< lsst::afw::detection::Psf const > getPsf() const
lsst::afw::table::SourceRecord::set
void set(Key< T > const &key, U const &value)
lsst::afw::table::Key
lsst::afw::table::Key::isValid
bool isValid() const noexcept
lsst::afw::table::Schema
lsst::afw::table::Schema::find
SchemaItem< T > find(std::string const &name) const
lsst::afw::table::SchemaMapper
lsst::afw::table::SchemaMapper::addMapping
Key< T > addMapping(Key< T > const &inputKey, bool doReplace=false)
lsst::afw::table::SchemaMapper::getInputSchema
Schema const getInputSchema() const
lsst::afw::table::SourceRecord
lsst::meas::base::ApertureFluxAlgorithm::getFlagDefinitions
static FlagDefinitionList const & getFlagDefinitions()
Definition
ApertureFlux.cc:49
lsst::meas::base::ApertureFluxAlgorithm::computeSincFlux
static Result computeSincFlux(afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control())
Compute the instFlux (and optionally, uncertanties) within an aperture using Sinc photometry.
Definition
ApertureFlux.cc:146
lsst::meas::base::ApertureFluxControl
Configuration object for multiple-aperture flux algorithms.
Definition
ApertureFlux.h:49
lsst::meas::base::ApertureFluxControl::shiftKernel
std::string shiftKernel
"Warping kernel used to shift Sinc photometry coefficients to different center positions" ;
Definition
ApertureFlux.h:62
lsst::meas::base::FlagDefinitionList::size
std::size_t size() const
return the current size (number of defined elements) of the collection
Definition
FlagHandler.h:126
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::FluxTransform::FluxTransform
FluxTransform(std::string const &name, afw::table::SchemaMapper &mapper)
Definition
FluxUtilities.cc:84
lsst::meas::base::MeasurementError
Exception to be thrown when a measurement algorithm experiences a known failure mode.
Definition
exceptions.h:48
lsst::meas::base::ScaledApertureFluxAlgorithm::Result
ApertureFluxResult Result
Definition
ScaledApertureFlux.h:65
lsst::meas::base::ScaledApertureFluxAlgorithm::ScaledApertureFluxAlgorithm
ScaledApertureFluxAlgorithm(Control const &control, std::string const &name, afw::table::Schema &schema)
Definition
ScaledApertureFlux.cc:34
lsst::meas::base::ScaledApertureFluxAlgorithm::measure
virtual void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const override
Measure the scaled aperture instFlux on the given image.
Definition
ScaledApertureFlux.cc:43
lsst::meas::base::ScaledApertureFluxAlgorithm::fail
virtual void fail(afw::table::SourceRecord &measRecord, MeasurementError *error=nullptr) const override
Handle an exception thrown by the current algorithm by setting flags in the given record.
Definition
ScaledApertureFlux.cc:68
lsst::meas::base::ScaledApertureFluxAlgorithm::Control
ScaledApertureFluxControl Control
Definition
ScaledApertureFlux.h:64
lsst::meas::base::ScaledApertureFluxTransform::ScaledApertureFluxTransform
ScaledApertureFluxTransform(Control const &ctrl, std::string const &name, afw::table::SchemaMapper &mapper)
Definition
ScaledApertureFlux.cc:72
lsst::meas::base::ScaledApertureFluxTransform::Control
ScaledApertureFluxControl Control
Definition
ScaledApertureFlux.h:91
std::log
T log(T... args)
lsst::geom::Point2D
Point< double, 2 > Point2D
lsst::meas::base
Definition
Algorithm.h:37
lsst::meas
Definition
Algorithm.h:36
lsst
std::size_t
std::sqrt
T sqrt(T... args)
lsst::meas::base::ApertureFluxResult::getFlag
bool getFlag(unsigned int index) const
Return the flag value associated with the given bit.
Definition
ApertureFlux.h:219
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