lsst.meas.algorithms  13.0-16-g6e7f056
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
psf.cc
Go to the documentation of this file.
1 /*
2  * LSST Data Management System
3  *
4  * This product includes software developed by the
5  * LSST Project (http://www.lsst.org/).
6  * See the COPYRIGHT file
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the LSST License Statement and
19  * the GNU General Public License along with this program. If not,
20  * see <https://www.lsstcorp.org/LegalNotices/>.
21  */
22 #include "pybind11/pybind11.h"
23 
24 #include "lsst/afw/detection/Psf.h"
25 #include "lsst/afw/geom/Point.h"
27 
28 namespace py = pybind11;
29 using namespace pybind11::literals;
30 
31 namespace lsst {
32 namespace meas {
33 namespace algorithms {
34 
36  py::module mod("psf");
37 
38  py::class_<PsfAttributes> clsPsfAttributes(mod, "PsfAttributes");
39 
40  /* Member types and enums */
41  py::enum_<PsfAttributes::Method>(clsPsfAttributes, "Method")
42  .value("ADAPTIVE_MOMENT", PsfAttributes::Method::ADAPTIVE_MOMENT)
43  .value("FIRST_MOMENT", PsfAttributes::Method::FIRST_MOMENT)
44  .value("SECOND_MOMENT", PsfAttributes::Method::SECOND_MOMENT)
45  .value("NOISE_EQUIVALENT", PsfAttributes::Method::NOISE_EQUIVALENT)
46  .value("BICKERTON", PsfAttributes::Method::BICKERTON)
47  .export_values();
48 
49  /* Constructors */
50  clsPsfAttributes.def(py::init<std::shared_ptr<lsst::afw::detection::Psf const>, int const, int const>(),
51  "psf"_a, "iX"_a, "iY"_a);
52  clsPsfAttributes.def(
53  py::init<std::shared_ptr<lsst::afw::detection::Psf const>, lsst::afw::geom::Point2I const &>(),
54  "psf"_a, "cen"_a);
55 
56  /* Members */
57  clsPsfAttributes.def("computeGaussianWidth", &PsfAttributes::computeGaussianWidth,
58  "how"_a = PsfAttributes::ADAPTIVE_MOMENT);
59  clsPsfAttributes.def("computeEffectiveArea", &PsfAttributes::computeEffectiveArea);
60 
61  return mod.ptr();
62 }
63 
64 } // algorithms
65 } // meas
66 } // lsst
PYBIND11_PLUGIN(binnedWcs)
Definition: binnedWcs.cc:33