In order to achieve our science requirements, LSST will need to correct for a variety of complex image distortions (optical focal plane, CCD tree rings, etc.). The current software in the stack (afw.image.Wcs), built on top of FITS WCSLIB, is not capable of handling these distortions.
Based on the research performed in
DM-3873 (summarized in DMTN-010), we propose to replace the current World Coordinate System handling and XYTransform code in the LSST stack with Starlink AST, using a new API that is under development in DM-3874 (that API will have its own RFC). AST appears to perform well enough for our needs, meets our current functionality requirements, and allows us to continue to make Wcs and transform calls in the C++ layer. As part of this, we will work with AstroPy developers to ensure that we share a serialization format with AstroPy's GWCS library.
In addition, we propose to contract out David Berry (the AST developer) to develop a new, modern AST written in C++, taking lessons learned from AST, GWCS, and the transform API that we are currently developing. This would allow us to take the new AST under the LSST umbrella, so that we do not have a long-term dependency on AST's idiosyncratic "object oriented C".
We explored the possibility of using GWCS, but believe there are too many performance questions for it to be a viable choice, particularly for the multifit and image warping use cases.
For details of our requirements, the available options and the decision process, see DMTN-010: WCS and Distortion Requirements and Existing Options.