22 #include "pybind11/pybind11.h"
23 #include "pybind11/stl.h"
29 #include "numpy/arrayobject.h"
30 #include "ndarray/pybind11.h"
32 #include "lsst/afw/math.h"
34 #include "lsst/pex/policy/Policy.h"
36 namespace py = pybind11;
37 using namespace pybind11::literals;
53 template <
typename PixelT>
54 void declareBuildSpatialKernelVisitor(py::module& mod, std::string
const& suffix) {
55 py::class_<BuildSpatialKernelVisitor<PixelT>, std::shared_ptr<BuildSpatialKernelVisitor<PixelT>>,
56 afw::math::CandidateVisitor>
57 cls(mod, (
"BuildSpatialKernelVisitor" + suffix).c_str());
59 cls.def(py::init<afw::math::KernelList, afw::geom::Box2I const&, pex::policy::Policy>(),
"basisList"_a,
60 "regionBBox"_a,
"policy"_a);
62 cls.def(
"getNCandidates", &BuildSpatialKernelVisitor<PixelT>::getNCandidates);
63 cls.def(
"processCandidate", &BuildSpatialKernelVisitor<PixelT>::processCandidate,
"candidate"_a);
64 cls.def(
"solveLinearEquation", &BuildSpatialKernelVisitor<PixelT>::solveLinearEquation);
65 cls.def(
"getKernelSolution", &BuildSpatialKernelVisitor<PixelT>::getKernelSolution);
66 cls.def(
"getSolutionPair", &BuildSpatialKernelVisitor<PixelT>::getSolutionPair);
68 mod.def(
"makeBuildSpatialKernelVisitor", &makeBuildSpatialKernelVisitor<PixelT>,
"basisList"_a,
69 "regionBBox"_a,
"policy"_a);
75 py::module::import(
"lsst.afw.math");
76 py::module::import(
"lsst.afw.geom");
77 py::module::import(
"lsst.pex.policy");
79 py::module mod(
"buildSpatialKernelVisitor");
82 if (_import_array() < 0) {
83 PyErr_SetString(PyExc_ImportError,
"numpy.core.multiarray failed to import");
87 declareBuildSpatialKernelVisitor<float>(mod,
"F");
Declaration of BuildSpatialKernelVisitor.
PYBIND11_PLUGIN(basisLists)