22#include "pybind11/pybind11.h"
23#include "pybind11/stl.h"
31using namespace pybind11::literals;
38static void declareSipTransformBase(
py::module &mod) {
39 py::class_<SipTransformBase, std::shared_ptr<SipTransformBase>> cls(mod,
"_SipTransformBase");
46static void declareSipForwardTransform(
py::module &mod) {
47 py::class_<SipForwardTransform, std::shared_ptr<SipForwardTransform>, SipTransformBase> cls(
48 mod,
"SipForwardTransform");
50 cls.def(py::init<geom::Point2D const &, geom::LinearTransform const &, PolynomialTransform const &>(),
51 "pixelOrigin"_a,
"cdMatrix"_a,
"forwardSipPoly"_a);
52 cls.def(py::init<SipForwardTransform const &>(),
"other"_a);
54 cls.def_static(
"convert",
55 (SipForwardTransform(*)(PolynomialTransform
const &,
geom::Point2D const &,
58 "poly"_a,
"pixelOrigin"_a,
"cdMatrix"_a);
59 cls.def_static(
"convert",
60 (SipForwardTransform(*)(ScaledPolynomialTransform
const &,
geom::Point2D const &,
63 "scaled"_a,
"pixelOrigin"_a,
"cdMatrix"_a);
64 cls.def_static(
"convert",
68 cls.def(
"__call__", &SipForwardTransform::operator(),
"in"_a);
74static void declareSipReverseTransform(
py::module &mod) {
75 py::class_<SipReverseTransform, std::shared_ptr<SipReverseTransform>, SipTransformBase> cls(
76 mod,
"SipReverseTransform");
78 cls.def(py::init<geom::Point2D const &, geom::LinearTransform const &, PolynomialTransform const &>(),
79 "pixelOrigin"_a,
"cdMatrix"_a,
"reverseSipPoly"_a);
80 cls.def(py::init<SipReverseTransform const &>(),
"other"_a);
82 cls.def_static(
"convert",
83 (SipReverseTransform(*)(PolynomialTransform
const &,
geom::Point2D const &,
86 "poly"_a,
"pixelOrigin"_a,
"cdMatrix"_a);
87 cls.def_static(
"convert",
88 (SipReverseTransform(*)(ScaledPolynomialTransform
const &,
geom::Point2D const &,
91 "scaled"_a,
"pixelOrigin"_a,
"cdMatrix"_a);
92 cls.def_static(
"convert",
96 cls.def(
"__call__", &SipReverseTransform::operator(),
"in"_a);
105 declareSipTransformBase(mod);
106 declareSipForwardTransform(mod);
107 declareSipReverseTransform(mod);
109 mod.def(
"makeWcs",
makeWcs,
"sipForward"_a,
"sipReverse"_a,
"skyOrigin"_a);
111 mod.def(
"rotateWcsPixelsBy90",
rotateWcsPixelsBy90,
"wcs"_a,
"nQuarter"_a,
"dimensions"_a);
std::shared_ptr< afw::geom::SkyWcs > transformWcsPixels(afw::geom::SkyWcs const &wcs, geom::AffineTransform const &s)
Create a new SkyWcs whose pixel coordinate system has been transformed via an affine transform.
PYBIND11_MODULE(makeMatchStatistics, mod)
std::shared_ptr< afw::geom::SkyWcs > rotateWcsPixelsBy90(afw::geom::SkyWcs const &wcs, int nQuarter, geom::Extent2I const &dimensions)
Return a new SkyWcs that represents a rotation of the image it corresponds to about the image's cente...
std::shared_ptr< afw::geom::SkyWcs > makeWcs(SipForwardTransform const &sipForward, SipReverseTransform const &sipReverse, geom::SpherePoint const &skyOrigin)
Create a new TAN SIP Wcs from a pair of SIP transforms and the sky origin.
A base class for image defects.