LSST Applications g0f08755f38+82efc23009,g12f32b3c4e+e7bdf1200e,g1653933729+a8ce1bb630,g1a0ca8cf93+50eff2b06f,g28da252d5a+52db39f6a5,g2bbee38e9b+37c5a29d61,g2bc492864f+37c5a29d61,g2cdde0e794+c05ff076ad,g3156d2b45e+41e33cbcdc,g347aa1857d+37c5a29d61,g35bb328faa+a8ce1bb630,g3a166c0a6a+37c5a29d61,g3e281a1b8c+fb992f5633,g414038480c+7f03dfc1b0,g41af890bb2+11b950c980,g5fbc88fb19+17cd334064,g6b1c1869cb+12dd639c9a,g781aacb6e4+a8ce1bb630,g80478fca09+72e9651da0,g82479be7b0+04c31367b4,g858d7b2824+82efc23009,g9125e01d80+a8ce1bb630,g9726552aa6+8047e3811d,ga5288a1d22+e532dc0a0b,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+37c5a29d61,gcf0d15dbbd+2acd6d4d48,gd7358e8bfb+778a810b6e,gda3e153d99+82efc23009,gda6a2b7d83+2acd6d4d48,gdaeeff99f8+1711a396fd,ge2409df99d+6b12de1076,ge79ae78c31+37c5a29d61,gf0baf85859+d0a5978c5a,gf3967379c6+4954f8c433,gfb92a5be7c+82efc23009,gfec2e1e490+2aaed99252,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
PixelFitRegion.h
Go to the documentation of this file.
1// -*- lsst-c++ -*-
2/*
3 * LSST Data Management System
4 * Copyright 2015-2016 LSST/AURA
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#ifndef LSST_MEAS_MODELFIT_PixelFitRegion_h_INCLUDED
25#define LSST_MEAS_MODELFIT_PixelFitRegion_h_INCLUDED
26
27#include "lsst/pex/config.h"
29#include "lsst/geom/Point.h"
30#include "lsst/afw/image/Mask.h"
33
34namespace lsst { namespace meas { namespace modelfit {
35
36
38
40 nKronRadii(1.5),
41 nPsfSigmaMin(4.0),
42 nPsfSigmaGrow(2.0),
43 nFitRadiiMin(1.0),
44 nFitRadiiMax(3.0),
45 maxArea(100000),
47 {
51 badMaskPlanes.push_back("NO_DATA");
52 }
53
55 nKronRadii, double,
56 "Use this multiple of the Kron ellipse to set the fit region (for the final fit region, "
57 "subject to the nFitRadiiMin and nFitRadiiMax constraints)."
58 );
59
61 nPsfSigmaMin, double,
62 "If the Kron radius is less than this multiple of the PSF width, ignore it and fall back "
63 "to a PSF-oriented ellipse scaled to match the area of the footprint or this radius "
64 "(whichever is larger)."
65 );
66
68 nPsfSigmaGrow, double,
69 "Grow the initial fit ellipses by this factor before comparing with the Kron/Footprint region"
70 );
71
73 nFitRadiiMin, double,
74 "Use this multiple of the initial fit ellipse then grow by the PSF width "
75 "to determine the minimum final fit region size."
76 );
77
79 nFitRadiiMax, double,
80 "Use this multiple of the initial fit ellipse then grow by the PSF width "
81 "to determine the maximum final fit region size."
82 );
83
85 maxArea, int,
86 "Abort if the fit region grows beyond this many pixels."
87 );
88
91 "Mask planes that indicate pixels that should be ignored in the fit."
92 );
93
95 maxBadPixelFraction, double,
96 "Maximum fraction of pixels that may be ignored due to masks; "
97 "more than this and we don't even try."
98 );
99
100};
101
102
104public:
105
107 PixelFitRegionControl const & ctrl,
109 afw::geom::ellipses::Quadrupole const & psfMoments,
110 Scalar kronRadius,
111 int footprintArea
112 );
113
115 PixelFitRegionControl const & ctrl,
117 );
118
120 afw::geom::ellipses::Quadrupole const & deconvolved,
121 afw::geom::ellipses::Quadrupole const & psfMoments
122 );
123
124 void applyMask(afw::image::Mask<> const & mask, geom::Point2D const & center);
125
134
135private:
137 afw::image::MaskPixel _badPixelMask;
138};
139
140
141}}} // lsst::meas::modelfit
142
143#endif // !LSST_MEAS_MODELFIT_PixelFitRegion_h_INCLUDED
afw::table::Key< afw::table::Array< MaskPixelT > > mask
An ellipse core with quadrupole moments as parameters.
Definition Quadrupole.h:47
Represent a 2-dimensional array of bitmask pixels.
Definition Mask.h:81
afw::geom::ellipses::Quadrupole ellipse
PixelFitRegion(PixelFitRegionControl const &ctrl, afw::geom::ellipses::Quadrupole const &moments, afw::geom::ellipses::Quadrupole const &psfMoments, Scalar kronRadius, int footprintArea)
void applyMask(afw::image::Mask<> const &mask, geom::Point2D const &center)
bool applyEllipse(afw::geom::ellipses::Quadrupole const &deconvolved, afw::geom::ellipses::Quadrupole const &psfMoments)
PixelFitRegion(PixelFitRegionControl const &ctrl, afw::geom::ellipses::Quadrupole const &ellipse)
std::shared_ptr< afw::detection::Footprint > footprint
#define LSST_CONTROL_FIELD(NAME, TYPE, DOC)
A preprocessor macro used to define fields in C++ "control object" structs.
Definition config.h:43
double Scalar
Typedefs to be used for probability and parameter values.
Definition common.h:44
T push_back(T... args)
VectorQ moments
double nFitRadiiMax
"Use this multiple of the initial fit ellipse then grow by the PSF width " "to determine the maximum ...
double maxBadPixelFraction
"Maximum fraction of pixels that may be ignored due to masks; " "more than this and we don't even try...
double nKronRadii
"Use this multiple of the Kron ellipse to set the fit region (for the final fit region,...
double nPsfSigmaGrow
"Grow the initial fit ellipses by this factor before comparing with the Kron/Footprint region" ;
std::vector< std::string > badMaskPlanes
"Mask planes that indicate pixels that should be ignored in the fit." ;
double nFitRadiiMin
"Use this multiple of the initial fit ellipse then grow by the PSF width " "to determine the minimum ...
int maxArea
"Abort if the fit region grows beyond this many pixels." ;
double nPsfSigmaMin
"If the Kron radius is less than this multiple of the PSF width, ignore it and fall back " "to a PSF-...