LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Functions
lsst::meas::base::python Namespace Reference

Functions

template<class Algorithm , class PyAlg >
std::enable_if<!std::is_abstract< Algorithm >::value, void >::type declareAlgorithmConstructor (PyAlg &cls)
 Wrap the standard algorithm constructor. More...
 
template<class Algorithm , class PyAlg >
std::enable_if< std::is_abstract< Algorithm >::value, void >::type declareAlgorithmConstructor (PyAlg &cls)
 Dummy function for not wrapping the constructor of an abstract base class. More...
 
template<class Algorithm , class PyAlg >
void declareAlgorithm (PyAlg &clsAlgorithm)
 Wrap the implicit API used by meas_base's algorithms. More...
 
template<class Algorithm , class Control , class PyAlg , class PyCtrl >
void declareAlgorithm (PyAlg &clsAlgorithm, PyCtrl &clsControl)
 Wrap the implicit API used by meas_base's algorithm-control pairs (no transform). More...
 
template<class Algorithm , class Control , class Transform , class PyAlg , class PyCtrl , class PyXform >
void declareAlgorithm (PyAlg &clsAlgorithm, PyCtrl &clsControl, PyXform &clsTransform)
 Wrap the implicit API used by meas_base's algorithm-control-transform triads. More...
 

Function Documentation

◆ declareAlgorithm() [1/3]

template<class Algorithm , class PyAlg >
void lsst::meas::base::python::declareAlgorithm ( PyAlg &  clsAlgorithm)

Wrap the implicit API used by meas_base's algorithms.

This function only initializes constructors, fields, and methods common to all Algorithms.

Template Parameters
AlgorithmThe algorithm class.
PyAlgThe pybind11::class_ class corresponding to Algorithm.
Parameters
[in,out]clsAlgorithmThe pybind11 wrapper for Algorithm.

Definition at line 87 of file python.h.

87  {
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 }
def measure(mi, x, y, size, statistic, stats)
Definition: fringe.py:517

◆ declareAlgorithm() [2/3]

template<class Algorithm , class Control , class PyAlg , class PyCtrl >
void lsst::meas::base::python::declareAlgorithm ( PyAlg &  clsAlgorithm,
PyCtrl &  clsControl 
)

Wrap the implicit API used by meas_base's algorithm-control pairs (no transform).

This function only initializes constructors, fields, and methods common to all Algorithms and Controls.

Template Parameters
AlgorithmThe algorithm class.
ControlThe control class. Must equal Algorithm::Control and Transform::Control.
PyAlgThe pybind11::class_ class corresponding to Algorithm.
PyCtrlThe pybind11::class_ class corresponding to Control.
Parameters
[in,out]clsAlgorithm,clsControlThe pybind11 wrappers for the respective C++ classes.

Definition at line 116 of file python.h.

116  {
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 }

◆ declareAlgorithm() [3/3]

template<class Algorithm , class Control , class Transform , class PyAlg , class PyCtrl , class PyXform >
void lsst::meas::base::python::declareAlgorithm ( PyAlg &  clsAlgorithm,
PyCtrl &  clsControl,
PyXform &  clsTransform 
)

Wrap the implicit API used by meas_base's algorithm-control-transform triads.

This function only initializes constructors, fields, and methods common to all Algorithms, Controls, and Transforms.

Template Parameters
AlgorithmThe algorithm class.
ControlThe control class. Must equal Algorithm::Control and Transform::Control.
TransformThe transform class.
PyAlgThe pybind11::class_ class corresponding to Algorithm.
PyCtrlThe pybind11::class_ class corresponding to Control.
PyXformThe pybind11::class_ class corresponding to Transform.
Parameters
[in,out]clsAlgorithm,clsControl,clsTransformThe pybind11 wrappers for the respective C++ classes.

Definition at line 148 of file python.h.

148  {
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 }
table::Key< table::Array< std::uint8_t > > wcs
Definition: SkyWcs.cc:66
SortedCatalogT< SourceRecord > SourceCatalog
Definition: fwd.h:85
CatalogT< BaseRecord > BaseCatalog
Definition: fwd.h:72
Key< int > photoCalib
Definition: Exposure.cc:67

◆ declareAlgorithmConstructor() [1/2]

template<class Algorithm , class PyAlg >
std::enable_if<!std::is_abstract<Algorithm>::value, void>::type lsst::meas::base::python::declareAlgorithmConstructor ( PyAlg &  cls)

Wrap the standard algorithm constructor.

Template Parameters
AlgorithmThe algorithm class.
PyAlgThe pybind11::class_ class corresponding to Algorithm.
Parameters
[in,out]clsThe pybind11 wrapper for Algorithm.

Definition at line 55 of file python.h.

56  {
57  cls.def(py::init<typename Algorithm::Control const &, std::string const &, afw::table::Schema &>(),
58  "ctrl"_a, "name"_a, "schema"_a);
59 }

◆ declareAlgorithmConstructor() [2/2]

template<class Algorithm , class PyAlg >
std::enable_if<std::is_abstract<Algorithm>::value, void>::type lsst::meas::base::python::declareAlgorithmConstructor ( PyAlg &  cls)

Dummy function for not wrapping the constructor of an abstract base class.

Pybind11 cannot wrap such constructors, and there is no reason to call them from Python anyway.

Template Parameters
AlgorithmThe algorithm class.
PyAlgThe pybind11::class_ class corresponding to Algorithm.
Parameters
[in,out]clsThe pybind11 wrapper for Algorithm.

Definition at line 72 of file python.h.

73  {}