22 #include "pybind11/pybind11.h" 23 #include "pybind11/stl.h" 25 #include "lsst/afw/detection/Psf.h" 28 namespace py = pybind11;
33 namespace algorithms {
36 template <
typename PixelT>
37 void declareInterpolateOverDefects(py::module& mod) {
38 mod.def(
"interpolateOverDefects",
40 lsst::afw::image::VariancePixel>>,
41 "image"_a,
"psf"_a,
"badList"_a,
"fallBackValue"_a = 0.0,
"useFallbackValueAtEdge"_a =
false);
47 py::module::import(
"lsst.afw.image");
49 py::module mod(
"interp");
51 py::class_<Defect, std::shared_ptr<Defect>, lsst::afw::image::DefectBase> clsDefect(mod,
"Defect");
54 py::enum_<Defect::DefectPosition>(clsDefect,
"DefectPosition")
55 .value(
"LEFT", Defect::DefectPosition::LEFT)
56 .value(
"NEAR_LEFT", Defect::DefectPosition::NEAR_LEFT)
57 .value(
"WIDE_LEFT", Defect::DefectPosition::WIDE_LEFT)
58 .value(
"MIDDLE", Defect::DefectPosition::MIDDLE)
59 .value(
"WIDE_NEAR_LEFT", Defect::DefectPosition::WIDE_NEAR_LEFT)
60 .value(
"WIDE", Defect::DefectPosition::WIDE)
61 .value(
"WIDE_NEAR_RIGHT", Defect::DefectPosition::WIDE_NEAR_RIGHT)
62 .value(
"NEAR_RIGHT", Defect::DefectPosition::NEAR_RIGHT)
63 .value(
"WIDE_RIGHT", Defect::DefectPosition::WIDE_RIGHT)
64 .value(
"RIGHT", Defect::DefectPosition::RIGHT)
68 clsDefect.def(py::init<const lsst::afw::geom::BoxI&>(),
"bbox"_a = lsst::afw::geom::BoxI());
71 clsDefect.def(
"classify", &Defect::classify);
72 clsDefect.def(
"getType", &Defect::getType);
73 clsDefect.def(
"getPos", &Defect::getPos);
75 declareInterpolateOverDefects<float>(mod);
void interpolateOverDefects(MaskedImageT &image, lsst::afw::detection::Psf const &psf, std::vector< Defect::Ptr > &badList, double fallbackValue=0.0, bool useFallbackValueAtEdge=false)
Process a set of known bad pixels in an image.