22 #include "pybind11/pybind11.h"
23 #include "pybind11/stl.h"
25 #include "lsst/afw/table/io/python.h"
28 namespace py = pybind11;
29 using namespace pybind11::literals;
33 namespace algorithms {
36 py::module mod(
"coaddBoundedField");
38 py::class_<CoaddBoundedFieldElement> clsCoaddBoundedFieldElement(mod,
"CoaddBoundedFieldElement");
40 clsCoaddBoundedFieldElement.def(
43 std::shared_ptr<afw::math::BoundedField>
field,
44 std::shared_ptr<afw::image::Wcs const>
wcs,
47 if (polygon == py::none()) {
50 auto pgon = py::cast<std::shared_ptr<afw::geom::polygon::Polygon const>>(polygon);
54 "field"_a,
"wcs"_a,
"validPolygon"_a,
"weight"_a = 1.0);
61 afw::table::io::python::declarePersistableFacade<CoaddBoundedField>(mod,
"CoaddBoundedField");
63 py::class_<CoaddBoundedField, std::shared_ptr<CoaddBoundedField>,
64 afw::table::io::PersistableFacade<CoaddBoundedField>, afw::math::BoundedField>
65 clsCoaddBoundedField(mod,
"CoaddBoundedField");
67 clsCoaddBoundedField.attr(
"Element") = clsCoaddBoundedFieldElement;
70 clsCoaddBoundedField.def(py::init<afw::geom::Box2I
const &, std::shared_ptr<afw::image::Wcs const>,
72 "bbox"_a,
"coaddWcs"_a,
"elements"_a);
73 clsCoaddBoundedField.def(py::init<afw::geom::Box2I
const &, std::shared_ptr<afw::image::Wcs const>,
75 "bbox"_a,
"coaddWcs"_a,
"elements"_a,
"default"_a);
78 clsCoaddBoundedField.def(
"__eq__", &CoaddBoundedField::operator==, py::is_operator());
79 clsCoaddBoundedField.def(
"__ne__", &CoaddBoundedField::operator!=, py::is_operator());
80 clsCoaddBoundedField.def(
"__imul__", &CoaddBoundedField::operator*);
83 clsCoaddBoundedField.def(
"evaluate", &CoaddBoundedField::evaluate);
84 clsCoaddBoundedField.def(
"isPersistable", &CoaddBoundedField::isPersistable);
Struct used to hold one Exposure's data in a CoaddBoundedField.
std::vector< Element > ElementVector
tbl::Key< double > weight
PYBIND11_PLUGIN(binnedWcs)
tbl::Key< int > validPolygon