23 #include "pybind11/pybind11.h" 24 #include "pybind11/eigen.h" 28 #include "ndarray/pybind11.h" 41 using PyCentroidChecker = py::class_<CentroidChecker>;
42 using PyCentroidResult = py::class_<CentroidResult, std::shared_ptr<CentroidResult>>;
43 using PyCentroidResultKey = py::class_<CentroidResultKey>;
44 using PyCentroidTransform = py::class_<CentroidTransform, std::shared_ptr<CentroidTransform>,
BaseTransform>;
47 PyCentroidResult
cls(mod,
"CentroidResult");
51 cls.def_readwrite(
"xErr", &CentroidResult::xErr);
52 cls.def_readwrite(
"yErr", &CentroidResult::yErr);
53 cls.def_readwrite(
"x_y_Cov", &CentroidResult::x_y_Cov);
55 cls.def(py::init<>());
56 cls.def(py::init<CentroidElement, CentroidElement, CentroidCov const &>(),
"x"_a,
"y"_a,
"matrix"_a);
57 cls.def(py::init<CentroidElement, CentroidElement, ErrElement, ErrElement>(),
"x"_a,
"y"_a,
"xErr"_a,
60 cls.def(
"getCentroid", &CentroidResult::getCentroid);
61 cls.def(
"setCentroid", &CentroidResult::setCentroid,
"centroid"_a);
62 cls.def(
"getPoint", &CentroidResult::getPoint);
63 cls.def(
"getCentroidErr", &CentroidResult::getCentroidErr);
64 cls.def(
"setCentroidErr",
65 (
void (CentroidResult::*)(
CentroidCov const &)) & CentroidResult::setCentroidErr,
"matrix"_a);
66 cls.def(
"setCentroidErr",
71 void declareCentroidResultKey(
py::module &mod) {
72 PyCentroidResultKey
cls(mod,
"CentroidResultKey");
74 cls.def(py::init<>());
75 cls.def(
py::init<afw::table::PointKey<CentroidElement>
const &,
76 afw::table::CovarianceMatrixKey<ErrElement, 2>
const &>(),
77 "centroid"_a,
"uncertainty"_a);
78 cls.def(py::init<afw::table::SubSchema const &>(),
"subSchema"_a);
80 cls.def(
"__eq__", &CentroidResultKey::operator==, py::is_operator());
81 cls.def(
"__nq__", &CentroidResultKey::operator!=, py::is_operator());
83 cls.def(
"get", &CentroidResultKey::get,
"record"_a);
86 cls.def(
"getCentroid", &CentroidResultKey::getCentroid);
87 cls.def(
"getCentroidErr", &CentroidResultKey::getCentroidErr);
88 cls.def(
"getX", &CentroidResultKey::getX);
89 cls.def(
"getY", &CentroidResultKey::getY);
92 void declareCentroidTransform(
py::module &mod) {
93 PyCentroidTransform
cls(mod,
"CentroidTransform");
95 cls.def(py::init<std::string const &, afw::table::SchemaMapper &>(),
"name"_a,
"mapper"_a);
97 cls.def(
"__call__", &CentroidTransform::operator(),
"inputCatalog"_a,
"outputCatalog"_a,
"wcs"_a,
101 void declareCentroidChecker(
py::module &mod) {
102 PyCentroidChecker
cls(mod,
"CentroidChecker");
104 cls.def(py::init<afw::table::Schema &, std::string const &, bool, double>(),
"schema"_a,
"name"_a,
105 "inside"_a =
true,
"maxDistFromPeak"_a = -1.0);
107 cls.def(
"__call__", &CentroidChecker::operator(),
"record"_a);
113 py::module::import(
"lsst.afw.table");
114 py::module::import(
"lsst.meas.base.transform");
116 declareCentroidResult(mod);
117 declareCentroidResultKey(mod);
118 declareCentroidTransform(mod);
119 declareCentroidChecker(mod);
daf::base::PropertySet * set
Eigen::Matrix< ErrElement, 2, 2, Eigen::DontAlign > CentroidCov
A base class for image defects.
PYBIND11_MODULE(centroidUtilities, mod)