23 #include <pybind11/pybind11.h>
25 #include <pybind11/stl.h>
32 using namespace py::literals;
37 py::class_<Kernel, std::shared_ptr<Kernel>> clsKernel(mod,
"Kernel");
39 lsst::afw::table::io::python::addPersistableMethods<Kernel>(clsKernel);
42 clsKernel.def(
"resized", &Kernel::resized,
"width"_a,
"height"_a);
43 clsKernel.def(
"computeImage", &Kernel::computeImage,
"image"_a,
"doNormalize"_a,
"x"_a = 0.0,
45 clsKernel.def(
"getDimensions", &Kernel::getDimensions);
46 clsKernel.def(
"setDimensions", &Kernel::setDimensions);
47 clsKernel.def(
"setWidth", &Kernel::setWidth);
48 clsKernel.def(
"setHeight", &Kernel::setHeight);
49 clsKernel.def(
"getWidth", &Kernel::getWidth);
50 clsKernel.def(
"getHeight", &Kernel::getHeight);
51 clsKernel.def(
"getCtr", &Kernel::getCtr);
54 clsKernel.def(
"getBBox", &Kernel::getBBox);
55 clsKernel.def(
"getNKernelParameters", &Kernel::getNKernelParameters);
56 clsKernel.def(
"getNSpatialParameters", &Kernel::getNSpatialParameters);
57 clsKernel.def(
"getSpatialFunction", &Kernel::getSpatialFunction);
58 clsKernel.def(
"getSpatialFunctionList", &Kernel::getSpatialFunctionList);
59 clsKernel.def(
"getKernelParameter", &Kernel::getKernelParameter);
60 clsKernel.def(
"getKernelParameters", &Kernel::getKernelParameters);
61 clsKernel.def(
"growBBox", &Kernel::growBBox);
62 clsKernel.def(
"shrinkBBox", &Kernel::shrinkBBox);
63 clsKernel.def(
"setCtr", &Kernel::setCtr);
66 clsKernel.def(
"getSpatialParameters", &Kernel::getSpatialParameters);
67 clsKernel.def(
"isSpatiallyVarying", &Kernel::isSpatiallyVarying);
68 clsKernel.def(
"setKernelParameters",
70 clsKernel.def(
"setKernelParameters",
73 clsKernel.def(
"computeKernelParametersFromSpatialModel",
74 &Kernel::computeKernelParametersFromSpatialModel);
75 clsKernel.def(
"toString", &Kernel::toString,
"prefix"_a =
"");
76 clsKernel.def(
"computeCache", &Kernel::computeCache);
77 clsKernel.def(
"getCacheSize", &Kernel::getCacheSize);
79 py::class_<FixedKernel, std::shared_ptr<FixedKernel>,
Kernel> clsFixedKernel(mod,
"FixedKernel");
81 clsFixedKernel.def(py::init<>());
83 clsFixedKernel.def(py::init<lsst::afw::math::Kernel const &, lsst::geom::Point2D const &>(),
"kernel"_a,
86 clsFixedKernel.def(
"resized", &FixedKernel::resized,
"width"_a,
"height"_a);
87 clsFixedKernel.def(
"toString", &FixedKernel::toString,
"prefix"_a =
"");
88 clsFixedKernel.def(
"getSum", &FixedKernel::getSum);
89 clsFixedKernel.def(
"isPersistable", &FixedKernel::isPersistable);
91 py::class_<AnalyticKernel, std::shared_ptr<AnalyticKernel>,
Kernel> clsAnalyticKernel(mod,
93 clsAnalyticKernel.def(py::init<>());
95 clsAnalyticKernel.def(py::init<int, int, AnalyticKernel::KernelFunction const &>(),
"width"_a,
"height"_a,
97 clsAnalyticKernel.def(
98 py::init<int, int, AnalyticKernel::KernelFunction const &, Kernel::SpatialFunction const &>(),
99 "width"_a,
"height"_a,
"kernelFunction"_a,
"spatialFunction"_a);
102 "width"_a,
"height"_a,
"kernelFunction"_a,
"spatialFunctionList"_a);
104 clsAnalyticKernel.def(
"resized", &AnalyticKernel::resized,
"width"_a,
"height"_a);
105 clsAnalyticKernel.def(
"computeImage", &AnalyticKernel::computeImage,
"image"_a,
"doNormalize"_a,
106 "x"_a = 0.0,
"y"_a = 0.0);
107 clsAnalyticKernel.def(
"getKernelParameters", &AnalyticKernel::getKernelParameters);
108 clsAnalyticKernel.def(
"getKernelFunction", &AnalyticKernel::getKernelFunction);
109 clsAnalyticKernel.def(
"toString", &AnalyticKernel::toString,
"prefix"_a =
"");
110 clsAnalyticKernel.def(
"isPersistable", &AnalyticKernel::isPersistable);
112 py::class_<DeltaFunctionKernel, std::shared_ptr<DeltaFunctionKernel>,
Kernel> clsDeltaFunctionKernel(
113 mod,
"DeltaFunctionKernel");
115 clsDeltaFunctionKernel.def(py::init<int, int, lsst::geom::Point2I const &>(),
"width"_a,
"height"_a,
118 clsDeltaFunctionKernel.def(
"resized", &DeltaFunctionKernel::resized,
"width"_a,
"height"_a);
119 clsDeltaFunctionKernel.def(
"getPixel", &DeltaFunctionKernel::getPixel);
120 clsDeltaFunctionKernel.def(
"toString", &DeltaFunctionKernel::toString,
"prefix"_a =
"");
121 clsDeltaFunctionKernel.def(
"isPersistable", &DeltaFunctionKernel::isPersistable);
123 py::class_<LinearCombinationKernel, std::shared_ptr<LinearCombinationKernel>,
Kernel>
124 clsLinearCombinationKernel(mod,
"LinearCombinationKernel");
126 clsLinearCombinationKernel.def(py::init<>());
128 "kernelList"_a,
"kernelParameters"_a);
129 clsLinearCombinationKernel.def(py::init<KernelList const &, Kernel::SpatialFunction const &>(),
130 "kernelList"_a,
"spatialFunction"_a);
131 clsLinearCombinationKernel.def(
133 "spatialFunctionList"_a);
135 clsLinearCombinationKernel.def(
"resized", &LinearCombinationKernel::resized,
"width"_a,
"height"_a);
136 clsLinearCombinationKernel.def(
"getKernelParameters", &LinearCombinationKernel::getKernelParameters);
137 clsLinearCombinationKernel.def(
"getKernelList", &LinearCombinationKernel::getKernelList);
138 clsLinearCombinationKernel.def(
"getKernelSumList", &LinearCombinationKernel::getKernelSumList);
139 clsLinearCombinationKernel.def(
"getNBasisKernels", &LinearCombinationKernel::getNBasisKernels);
140 clsLinearCombinationKernel.def(
"checkKernelList", &LinearCombinationKernel::checkKernelList);
141 clsLinearCombinationKernel.def(
"isDeltaFunctionBasis", &LinearCombinationKernel::isDeltaFunctionBasis);
142 clsLinearCombinationKernel.def(
"refactor", &LinearCombinationKernel::refactor);
143 clsLinearCombinationKernel.def(
"toString", &LinearCombinationKernel::toString,
"prefix"_a =
"");
144 clsLinearCombinationKernel.def(
"isPersistable", &LinearCombinationKernel::isPersistable);
146 py::class_<SeparableKernel, std::shared_ptr<SeparableKernel>,
Kernel> clsSeparableKernel(
147 mod,
"SeparableKernel");
149 clsSeparableKernel.def(py::init<>());
153 "width"_a,
"height"_a,
"kernelColFunction"_a,
"kernelRowFunction"_a);
154 clsSeparableKernel.def(
157 "width"_a,
"height"_a,
"kernelColFunction"_a,
"kernelRowFunction"_a,
"spatialFunction"_a);
161 "width"_a,
"height"_a,
"kernelColFunction"_a,
"kernelRowFunction"_a,
162 "spatialFunctionList"_a);
164 clsSeparableKernel.def(
"resized", &SeparableKernel::resized,
"width"_a,
"height"_a);
165 clsSeparableKernel.def(
"computeVectors", &SeparableKernel::computeVectors);
166 clsSeparableKernel.def(
"getKernelParameter", &SeparableKernel::getKernelParameter);
167 clsSeparableKernel.def(
"getKernelParameters", &SeparableKernel::getKernelParameters);
168 clsSeparableKernel.def(
"getKernelColFunction", &SeparableKernel::getKernelColFunction);
169 clsSeparableKernel.def(
"getKernelRowFunction", &SeparableKernel::getKernelRowFunction);
170 clsSeparableKernel.def(
"toString", &SeparableKernel::toString,
"prefix"_a =
"");
171 clsSeparableKernel.def(
"computeCache", &SeparableKernel::computeCache);
172 clsSeparableKernel.def(
"getCacheSize", &SeparableKernel::getCacheSize);