23#include "pybind11/pybind11.h"
24#include "pybind11/stl.h"
34using namespace pybind11::literals;
42void declareDipoleCentroidControl(
py::module &mod) {
43 py::class_<DipoleCentroidControl, std::shared_ptr<DipoleCentroidControl>> cls(mod,
44 "DipoleCentroidControl");
46 cls.def(py::init<>());
49void declareDipoleFluxControl(
py::module &mod) {
50 py::class_<DipoleFluxControl, std::shared_ptr<DipoleFluxControl>> cls(mod,
"DipoleFluxControl");
52 cls.def(py::init<>());
55void declareDipolePsfFluxControl(
py::module &mod) {
56 py::class_<PsfDipoleFluxControl, std::shared_ptr<PsfDipoleFluxControl>,
DipoleFluxControl> cls(
57 mod,
"PsfDipoleFluxControl");
59 cls.def(py::init<>());
67void declareDipoleCentroidAlgorithm(
py::module &mod) {
69 py::class_<DipoleCentroidAlgorithm, std::shared_ptr<DipoleCentroidAlgorithm>, meas::base::SimpleAlgorithm>
70 cls(mod,
"_DipoleCentroidAlgorithm");
76 py::return_value_policy::copy);
82void declareDipoleFluxAlgorithm(
py::module &mod) {
84 py::class_<DipoleFluxAlgorithm, std::shared_ptr<DipoleFluxAlgorithm>, meas::base::SimpleAlgorithm> cls(
85 mod,
"_DipoleFluxAlgorithm");
91 py::return_value_policy::copy);
98 py::module::import(
"lsst.meas.base");
100 py::class_<NaiveDipoleFlux, std::shared_ptr<NaiveDipoleFlux>, DipoleFluxAlgorithm> cls(mod,
103 cls.def(py::init<NaiveDipoleFlux::Control const &, std::string const &, afw::table::Schema &>(),
"ctrl"_a,
104 "name"_a,
"schema"_a);
110void declareNaiveDipoleCentroid(
py::module &mod) {
111 py::class_<NaiveDipoleCentroid, std::shared_ptr<NaiveDipoleCentroid>, DipoleCentroidAlgorithm> cls(
112 mod,
"NaiveDipoleCentroid");
114 cls.def(py::init<NaiveDipoleCentroid::Control const &, std::string const &, afw::table::Schema &>(),
115 "ctrl"_a,
"name"_a,
"schema"_a);
127 py::class_<PsfDipoleFlux, std::shared_ptr<PsfDipoleFlux>, DipoleFluxAlgorithm> cls(mod,
"PsfDipoleFlux");
129 cls.def(py::init<PsfDipoleFlux::Control const &, std::string const &, afw::table::Schema &>(),
"ctrl"_a,
130 "name"_a,
"schema"_a);
132 cls.def(
"chi2", &
PsfDipoleFlux::chi2,
"source"_a,
"exposure"_a,
"negCenterX"_a,
"negCenterY"_a,
133 "negFlux"_a,
"posCenterX"_a,
"posCenterY"_a,
"posFlux"_a);
141 py::module::import(
"lsst.afw.table");
142 py::module::import(
"lsst.meas.base");
143 py::module::import(
"lsst.pex.config");
145 declareDipoleCentroidControl(mod);
146 declareDipoleFluxControl(mod);
147 declareDipolePsfFluxControl(mod);
148 declareDipoleCentroidAlgorithm(mod);
149 declareDipoleFluxAlgorithm(mod);
150 declareNaiveDipoleFlux(mod);
151 declareNaiveDipoleCentroid(mod);
152 declarePsfDipoleFlux(mod);
ResultKey const & getPositiveKeys() const
Return the standard centroid keys registered by this algorithm.
static meas::base::FlagDefinition const FAILURE
static meas::base::FlagDefinition const POS_FLAG
ResultKey const & getNegativeKeys() const
static meas::base::FlagDefinition const NEG_FLAG
static meas::base::FlagDefinitionList const & getFlagDefinitions()
static meas::base::FlagDefinitionList const & getFlagDefinitions()
ResultKey const & getPositiveKeys() const
Return the standard flux keys registered by this algorithm.
static meas::base::FlagDefinition const POS_FLAG
static meas::base::FlagDefinition const NEG_FLAG
ResultKey const & getNegativeKeys() const
static meas::base::FlagDefinition const FAILURE
ResultKey const & getPositiveKeys() const
ResultKey const & getNegativeKeys() const
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Given an image and a pixel position, return a Centroid using a naive 3x3 weighted moment.
void mergeCentroids(afw::table::SourceRecord &source, double posValue, double negValue) const
void fail(afw::table::SourceRecord &measRecord, meas::base::MeasurementError *error=NULL) const
Handle an exception thrown by the current algorithm by setting flags in the given record.
ResultKey const & getCenterKeys() const
Return the standard centroid keys registered by this algorithm.
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Given an image and a pixel position, return a Centroid using a naive 3x3 weighted moment.
void fail(afw::table::SourceRecord &measRecord, meas::base::MeasurementError *error=NULL) const
Handle an exception thrown by the current algorithm by setting flags in the given record.
std::pair< double, int > chi2(afw::table::SourceRecord &source, afw::image::Exposure< float > const &exposure, double negCenterX, double negCenterY, double negFlux, double posCenterX, double poCenterY, double posFlux) const
void measure(afw::table::SourceRecord &measRecord, afw::image::Exposure< float > const &exposure) const
Called to measure a single child source in an image.
void fail(afw::table::SourceRecord &measRecord, meas::base::MeasurementError *error=NULL) const
Handle an exception thrown by the current algorithm by setting flags in the given record.
PYBIND11_MODULE(basisLists, mod)
A base class for image defects.
#define LSST_DECLARE_CONTROL_FIELD(WRAPPER, CLASS, NAME)
Macro used to wrap fields declared by LSST_CONTROL_FIELD using Pybind11.