23 #include "pybind11/pybind11.h" 41 using PyBlendenessAlgorithm =
42 py::class_<BlendednessAlgorithm, std::shared_ptr<BlendednessAlgorithm>, SimpleAlgorithm>;
43 using PyBlendenessControl = py::class_<BlendednessControl>;
45 PyBlendenessControl declareBlendednessControl(
py::module &mod) {
46 PyBlendenessControl
cls(mod,
"BlendednessControl");
53 cls.def(py::init<>());
58 PyBlendenessAlgorithm declareBlendednessAlgorithm(
py::module &mod) {
59 PyBlendenessAlgorithm
cls(mod,
"BlendednessAlgorithm");
61 cls.def(py::init<BlendednessAlgorithm::Control const &, std::string const &, afw::table::Schema &>(),
62 "ctrl"_a,
"name"_a,
"schema"_a);
64 cls.attr(
"FAILURE") = py::cast(BlendednessAlgorithm::FAILURE);
65 cls.attr(
"NO_CENTROID") = py::cast(BlendednessAlgorithm::NO_CENTROID);
66 cls.attr(
"NO_SHAPE") = py::cast(BlendednessAlgorithm::NO_SHAPE);
68 cls.def_static(
"computeAbsExpectation", &BlendednessAlgorithm::computeAbsExpectation,
"data"_a,
70 cls.def_static(
"computeAbsBias", &BlendednessAlgorithm::computeAbsBias,
"mu"_a,
"variance"_a);
71 cls.def(
"measureChildPixels", &BlendednessAlgorithm::measureChildPixels,
"image"_a,
"child"_a);
72 cls.def(
"measureParentPixels", &BlendednessAlgorithm::measureParentPixels,
"image"_a,
"child"_a);
82 py::module::import(
"lsst.afw.table");
83 py::module::import(
"lsst.meas.base.algorithm");
84 py::module::import(
"lsst.meas.base.flagHandler");
86 auto clsBlendednessControl = declareBlendednessControl(mod);
87 auto clsBlendednessAlgorithm = declareBlendednessAlgorithm(mod);
89 clsBlendednessAlgorithm.attr(
"Control") = clsBlendednessControl;
91 python::declareAlgorithm<BlendednessAlgorithm, BlendednessControl>(clsBlendednessAlgorithm,
92 clsBlendednessControl);
PYBIND11_MODULE(blendedness, mod)
A base class for image defects.
#define LSST_DECLARE_CONTROL_FIELD(WRAPPER, CLASS, NAME)
Macro used to wrap fields declared by LSST_CONTROL_FIELD using Pybind11.
def measure(mi, x, y, size, statistic, stats)