LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
meas_base
11.0+1
src
CircularApertureFlux.cc
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008-2014 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 "
lsst/afw/table/Source.h
"
25
#include "
lsst/meas/base/ApertureFlux.h
"
26
#include "
lsst/meas/base/CircularApertureFlux.h
"
27
#include "
lsst/meas/base/SincCoeffs.h
"
28
29
namespace
lsst {
namespace
meas {
namespace
base {
30
31
CircularApertureFluxAlgorithm::CircularApertureFluxAlgorithm
(
32
Control
const
& ctrl,
33
std::string
const
&
name
,
34
afw::table::Schema
&
schema
,
35
daf::base::PropertySet
& metadata
36
) :
ApertureFluxAlgorithm
(ctrl, name, schema, metadata)
37
{
38
for
(std::size_t i = 0; i < ctrl.
radii
.size(); ++i) {
39
if
(ctrl.
radii
[i] > ctrl.
maxSincRadius
)
break
;
40
SincCoeffs<float>::cache
(0.0, ctrl.
radii
[i]);
41
}
42
}
43
44
void
CircularApertureFluxAlgorithm::measure
(
45
afw::table::SourceRecord
& measRecord,
46
afw::image::Exposure<float>
const
& exposure
47
)
const
{
48
afw::geom::ellipses::Ellipse
ellipse(
afw::geom::ellipses::Axes
(1.0, 1.0, 0.0));
49
PTR
(
afw::geom::ellipses::Axes
) axes
50
= boost::static_pointer_cast<
afw::geom::ellipses::Axes
>(ellipse.
getCorePtr
());
51
for
(std::size_t i = 0; i <
_ctrl
.
radii
.size(); ++i) {
52
// Each call to _centroidExtractor within this loop goes through exactly the same error-checking
53
// logic and returns the same result, but it's not expensive logic, so we just call it repeatedly
54
// instead of coming up with a new interface that would allow us to move it outside the loop.
55
ellipse.
setCenter
(
_centroidExtractor
(measRecord,
getFlagHandler
(i)));
56
axes->setA(
_ctrl
.
radii
[i]);
57
axes->setB(
_ctrl
.
radii
[i]);
58
ApertureFluxAlgorithm::Result
result =
computeFlux
(exposure.
getMaskedImage
(), ellipse,
_ctrl
);
59
copyResultToRecord
(result, measRecord, i);
60
}
61
}
62
63
}}}
// namespace lsst::meas::base
lsst::afw::table::Schema
Defines the fields and offsets for a table.
Definition:
Schema.h:46
lsst::meas::base::ApertureFluxAlgorithm::_ctrl
Control const _ctrl
Definition:
ApertureFlux.h:227
name
table::Key< std::string > name
Definition:
ApCorrMap.cc:71
lsst::afw::geom::ellipses::Ellipse::getCorePtr
BaseCore::ConstPtr getCorePtr() const
Return the ellipse core.
Definition:
Ellipse.h:81
schema
afw::table::Schema schema
Definition:
GaussianPsf.cc:41
lsst::afw::image::Exposure< float >
PTR
#define PTR(...)
Definition:
base.h:41
Source.h
lsst::meas::base::ApertureFluxAlgorithm::copyResultToRecord
void copyResultToRecord(Result const &result, afw::table::SourceRecord &record, int index) const
Definition:
ApertureFlux.cc:107
CircularApertureFlux.h
lsst::meas::base::ApertureFluxControl
Definition:
ApertureFlux.h:42
lsst::afw::image::Exposure::getMaskedImage
MaskedImageT getMaskedImage()
Return the MaskedImage.
Definition:
Exposure.h:150
lsst::meas::base::ApertureFluxAlgorithm
Definition:
ApertureFlux.h:82
lsst::meas::base::ApertureFluxAlgorithm::computeFlux
static Result computeFlux(afw::image::Image< T > const &image, afw::geom::ellipses::Ellipse const &ellipse, Control const &ctrl=Control())
Definition:
ApertureFlux.cc:262
lsst::afw::geom::ellipses::Ellipse
An ellipse defined by an arbitrary BaseCore and a center point.
Definition:
Ellipse.h:50
lsst::meas::base::ApertureFluxControl::maxSincRadius
double maxSincRadius
"Maximum radius (in pixels) for which the sinc algorithm should be used instead of the " "faster naiv...
Definition:
ApertureFlux.h:56
ApertureFlux.h
lsst::meas::base::ApertureFluxAlgorithm::getFlagHandler
FlagHandler const & getFlagHandler(int index) const
Definition:
ApertureFlux.h:225
lsst::afw::geom::ellipses::Ellipse::setCenter
void setCenter(Point2D const ¢er)
Set the center point.
Definition:
Ellipse.h:72
lsst::meas::base::SincCoeffs::cache
static void cache(float rInner, float rOuter)
Definition:
SincCoeffs.cc:515
lsst::afw::geom::ellipses::Axes
An ellipse core for the semimajor/semiminor axis and position angle parametrization (a...
Definition:
Axes.h:45
lsst::daf::base::PropertySet
Class for storing generic metadata.
Definition:
PropertySet.h:82
lsst::afw::table::SourceRecord
Record class that contains measurements made on a single exposure.
Definition:
Source.h:81
lsst::meas::base::CircularApertureFluxAlgorithm::measure
virtual void measure(afw::table::SourceRecord &record, afw::image::Exposure< float > const &exposure) const
Definition:
CircularApertureFlux.cc:44
lsst::meas::base::CircularApertureFluxAlgorithm::CircularApertureFluxAlgorithm
CircularApertureFluxAlgorithm(Control const &ctrl, std::string const &name, afw::table::Schema &schema, daf::base::PropertySet &metadata)
Definition:
CircularApertureFlux.cc:31
lsst::meas::base::ApertureFluxControl::radii
std::vector< double > radii
"Radius (in pixels) of apertures." ;
Definition:
ApertureFlux.h:50
SincCoeffs.h
lsst::meas::base::ApertureFluxAlgorithm::_centroidExtractor
SafeCentroidExtractor _centroidExtractor
Definition:
ApertureFlux.h:228
lsst::meas::base::ApertureFluxResult
Definition:
ApertureFlux.h:248
Generated on Thu Sep 24 2015 02:29:22 for LSSTApplications by
1.8.5