22 #include "pybind11/pybind11.h"
26 #include "lsst/pex/config/python.h"
30 namespace py = pybind11;
31 using namespace pybind11::literals;
39 using PyFluxAlgorithm = py::class_<PeakLikelihoodFluxAlgorithm, std::shared_ptr<PeakLikelihoodFluxAlgorithm>,
41 using PyFluxControl = py::class_<PeakLikelihoodFluxControl>;
42 using PyFluxTransform =
43 py::class_<PeakLikelihoodFluxTransform, std::shared_ptr<PeakLikelihoodFluxTransform>, BaseTransform>;
45 PyFluxControl declareFluxControl(py::module &mod) {
46 PyFluxControl cls(mod,
"PeakLikelihoodFluxControl");
48 LSST_DECLARE_CONTROL_FIELD(cls, PeakLikelihoodFluxControl, warpingKernelName);
53 PyFluxAlgorithm declareFluxAlgorithm(py::module &mod) {
54 PyFluxAlgorithm cls(mod,
"PeakLikelihoodFluxAlgorithm");
56 cls.attr(
"FAILURE") = py::cast(PeakLikelihoodFluxAlgorithm::FAILURE);
58 cls.def(py::init<PeakLikelihoodFluxAlgorithm::Control
const &, std::string
const &,
59 afw::table::Schema &>(),
60 "ctrl"_a,
"name"_a,
"schema"_a);
62 cls.def(
"measure", &PeakLikelihoodFluxAlgorithm::measure,
"measRecord"_a,
"exposure"_a);
63 cls.def(
"fail", &PeakLikelihoodFluxAlgorithm::fail,
"measRecord"_a,
"error"_a =
nullptr);
68 PyFluxTransform declareFluxTransform(py::module &mod) {
69 PyFluxTransform cls(mod,
"PeakLikelihoodFluxTransform");
71 cls.def(py::init<PeakLikelihoodFluxTransform::Control
const &, std::string
const &,
72 afw::table::SchemaMapper &>(),
73 "ctrl"_a,
"name"_a,
"mapper"_a);
81 py::module::import(
"lsst.afw.table");
82 py::module::import(
"lsst.meas.base.algorithm");
83 py::module::import(
"lsst.meas.base.flagHandler");
84 py::module::import(
"lsst.meas.base.transform");
86 py::module mod(
"peakLikelihoodFlux");
88 auto clsFluxControl = declareFluxControl(mod);
89 auto clsFluxAlgorithm = declareFluxAlgorithm(mod);
90 auto clsFluxTransform = declareFluxTransform(mod);
92 clsFluxAlgorithm.attr(
"Control") = clsFluxControl;
93 clsFluxTransform.attr(
"Control") = clsFluxControl;
C++ control object for peak likelihood flux.
A measurement algorithm that estimates the peak flux, using a filtered image which has been convolved...
PYBIND11_PLUGIN(algorithm)
void declareAlgorithm(PyAlg &clsAlgorithm)
Wrap the implicit API used by meas_base's algorithms.