lsst.meas.base
g4cf46543a9+4f1fff82ac
Loading...
Searching...
No Matches
include
lsst
meas
base
python.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* See COPYRIGHT file at the top of the source tree.
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_BASE_PYTHON_H
25
#define LSST_MEAS_BASE_PYTHON_H
26
27
#include "pybind11/pybind11.h"
28
29
#include <string>
30
31
#include "ndarray.h"
32
#include "
lsst/afw/geom/SkyWcs.h
"
33
#include "
lsst/afw/image/PhotoCalib.h
"
34
#include "
lsst/afw/table/fwd.h
"
35
#include "
lsst/afw/table/Schema.h
"
36
#include "
lsst/afw/table/SchemaMapper.h
"
37
38
namespace
lsst
{
39
namespace
meas {
40
namespace
base {
41
namespace
python {
42
43
namespace
py
=
pybind11
;
44
using namespace
pybind11::literals;
45
54
template
<
class
Algorithm,
class
PyAlg>
55
typename
std::enable_if<!std::is_abstract<Algorithm>::value
,
void
>::type
declareAlgorithmConstructor
(
56
PyAlg
&
cls
) {
57
cls
.def(py::init<typename Algorithm::Control const &, std::string const &, afw::table::Schema &>(),
58
"ctrl"
_a
,
"name"
_a
,
"schema"
_a
);
59
}
71
template
<
class
Algorithm,
class
PyAlg>
72
typename
std::enable_if<std::is_abstract<Algorithm>::value
,
void
>::type
declareAlgorithmConstructor
(
73
PyAlg
&
cls
) {}
74
86
template
<
class
Algorithm,
class
PyAlg>
87
void
declareAlgorithm
(
PyAlg
&
clsAlgorithm
) {
88
/* Member types and enums */
89
90
/* Constructors */
91
declareAlgorithmConstructor<Algorithm>
(
clsAlgorithm
);
92
93
/* Operators */
94
95
/* Members */
96
clsAlgorithm
.def(
"fail"
, &Algorithm::fail,
"measRecord"
_a
,
"error"
_a
=
NULL
);
97
clsAlgorithm
.def(
"measure"
, &Algorithm::measure,
"record"
_a
,
"exposure"
_a
);
98
}
99
115
template
<
class
Algorithm,
class
Control,
class
PyAlg,
class
PyCtrl>
116
void
declareAlgorithm
(
PyAlg
&
clsAlgorithm
,
PyCtrl
&
clsControl
) {
117
declareAlgorithm<Algorithm>
(
clsAlgorithm
);
118
119
/* Member types and enums */
120
121
/* Constructors */
122
clsControl
.def(py::init<>());
123
124
/* Operators */
125
126
/* Members */
127
}
128
147
template
<
class
Algorithm,
class
Control,
class
Transform,
class
PyAlg,
class
PyCtrl,
class
PyXform>
148
void
declareAlgorithm
(
PyAlg
&
clsAlgorithm
,
PyCtrl
&
clsControl
,
PyXform
&
clsTransform
) {
149
declareAlgorithm<Algorithm, Control>
(
clsAlgorithm
,
clsControl
);
150
151
/* Member types and enums */
152
153
/* Constructors */
154
clsTransform
.def(
155
py::init<typename Transform::Control const &, std::string const &, afw::table::SchemaMapper &>(),
156
"ctrl"
_a
,
"name"
_a
,
"mapper"
_a
);
157
158
/* Operators */
159
clsTransform
.def(
"__call__"
,
160
[](Transform
const
&self,
afw::table::SourceCatalog
const
&
inputCatalog
,
161
afw::table::BaseCatalog
&
outputCatalog
,
afw::geom::SkyWcs
const
&wcs,
162
afw::image::PhotoCalib
const
&
photoCalib
) {
163
return
self(
inputCatalog
,
outputCatalog
, wcs,
photoCalib
);
164
},
165
"inputCatalog"
_a
,
"outputCatalog"
_a
,
"wcs"
_a
,
"photoCalib"
_a
);
166
167
/* Members */
168
}
169
170
}
// namespace python
171
}
// namespace base
172
}
// namespace meas
173
}
// namespace lsst
174
175
#endif
PhotoCalib.h
Schema.h
SchemaMapper.h
SkyWcs.h
lsst::afw::geom::SkyWcs
lsst::afw::image::PhotoCalib
lsst::afw::table::CatalogT< BaseRecord >
lsst::afw::table::SortedCatalogT
lsst::geom::Point
std::enable_if
fwd.h
lsst::meas::base::python::declareAlgorithmConstructor
std::enable_if<!std::is_abstract< Algorithm >::value, void >::type declareAlgorithmConstructor(PyAlg &cls)
Wrap the standard algorithm constructor.
Definition
python.h:55
lsst::meas::base::python::declareAlgorithm
void declareAlgorithm(PyAlg &clsAlgorithm)
Wrap the implicit API used by meas_base's algorithms.
Definition
python.h:87
lsst
pybind11
photoCalib
Key< int > photoCalib
Generated on Wed Mar 20 2024 04:26:28 for lsst.meas.base by
1.10.0