25 #include "pybind11/pybind11.h"
26 #include "pybind11/eigen.h"
27 #include "pybind11/stl.h"
28 #include "ndarray/pybind11.h"
29 #include "ndarray/eigen.h"
36 using namespace pybind11::literals;
42 void declarePhotometryMappingBase(
py::module &mod) {
43 py::class_<PhotometryMappingBase, std::shared_ptr<PhotometryMappingBase>>
cls(mod,
44 "PhotometryMappingBase");
46 cls.def(
"getNpar", &PhotometryMappingBase::getNpar);
48 cls.def(
"transformError", &PhotometryMappingBase::transformError);
49 cls.def(
"computeParameterDerivatives",
50 [](PhotometryMappingBase
const &
self, MeasuredStar
const &star,
double instFlux) {
51 Eigen::VectorXd derivatives(
self.getNpar());
52 self.computeParameterDerivatives(star, instFlux, derivatives);
56 cls.def(
"getParameters", &PhotometryMappingBase::getParameters);
58 cls.def(
"getMappingIndices", [](PhotometryMappingBase
const &
self) {
60 self.getMappingIndices(indices);
64 cls.def(
"getIndex", &PhotometryMappingBase::getIndex);
65 cls.def(
"setIndex", &PhotometryMappingBase::setIndex);
68 void declarePhotometryMapping(
py::module &mod) {
69 py::class_<PhotometryMapping, std::shared_ptr<PhotometryMapping>, PhotometryMappingBase>
cls(
70 mod,
"PhotometryMapping");
73 cls.def(
"offsetParams", &PhotometryMapping::offsetParams);
74 cls.def(
"getTransform", &PhotometryMapping::getTransform);
75 cls.def(
"getTransformErrors", &PhotometryMapping::getTransformErrors);
78 void declareChipVisitPhotometryMapping(
py::module &mod) {
79 py::class_<ChipVisitPhotometryMapping, std::shared_ptr<ChipVisitPhotometryMapping>, PhotometryMappingBase>
80 cls(mod,
"ChipVisitPhotometryMapping");
82 cls.def(
"setWhatToFit", &ChipVisitPhotometryMapping::setWhatToFit);
84 cls.def(
"getChipMapping", &ChipVisitPhotometryMapping::getChipMapping);
85 cls.def(
"getVisitMapping", &ChipVisitPhotometryMapping::getVisitMapping);
86 cls.def(
"getNParChip", &ChipVisitPhotometryMapping::getNParChip);
87 cls.def(
"getNParVisit", &ChipVisitPhotometryMapping::getNParVisit);
90 void declareChipVisitFluxMapping(
py::module &mod) {
91 py::class_<ChipVisitFluxMapping, std::shared_ptr<ChipVisitFluxMapping>, ChipVisitPhotometryMapping>
cls(
92 mod,
"ChipVisitFluxMapping");
95 "chipMapping"_a,
"visitMapping"_a);
98 void declareChipVisitMagnitudeMapping(
py::module &mod) {
99 py::class_<ChipVisitMagnitudeMapping, std::shared_ptr<ChipVisitMagnitudeMapping>,
100 ChipVisitPhotometryMapping>
101 cls(mod,
"ChipVisitMagnitudeMapping");
104 "chipMapping"_a,
"visitMapping"_a);
108 py::module::import(
"lsst.jointcal.star");
109 py::module::import(
"lsst.jointcal.photometryTransform");
110 declarePhotometryMappingBase(mod);
111 declarePhotometryMapping(mod);
112 declareChipVisitPhotometryMapping(mod);
113 declareChipVisitFluxMapping(mod);
114 declareChipVisitMagnitudeMapping(mod);