Wrap a `lsst.afw.geom.TransformPoint2ToPoint2[2->2]` in a GalSim WCS.
Parameters
----------
pix_to_field : `lsst.afw.geom.TransformPoint2ToPoint2[2->2]`
Transform to wrap. Most likely PIXELS -> FIELD_ANGLE, but other 2D ->
2D transforms should be possible.
origin : `galsim.PositionD`, optional
Origin in image coordinates.
world_origin : `galsim.PositionD`, optional
Origin in world coordinates.
Notes
-----
GalSim EuclideanWCS assumes
u = ufunc(x-x0, y-y0) + u0
v = vfunc(x-x0, y-y0) + v0
where u,v are world (likely field angles), and (x, y) are pixels.
GalSim also assumes that origin = x0, y0 and world_origin = u0, v0.
I might have naively thought that uv(origin) == world_origin, but
that appears to not be required. So we're just going to leave both
free.