Details
-
Type:
RFC
-
Status: Implemented
-
Resolution: Done
-
Component/s: DM
-
Labels:None
Description
Gbdes is a package for WCS-fitting (https://github.com/gbernstein/gbdes, https://iopscience.iop.org/article/10.1088/1538-3873/aa6c55/pdf). It was developed by Gary Bernstein for DECam. The main codebase is in C++. This will be used in a pipeline task that aims to be a drop-in replacement for jointcal (DM-31226), though we plan to use it in other configurations as well.
Tests on HSC data have shown that gbdes produces results equivalent to jointcal when the same astrometric models are used. However, gbdes provides a significant speed-up over jointcal. In contrast to jointcal, it can fit the proper motions of stars, and has more flexibility with regard to the types and combinations of astrometric models.
Following lots of discussion with Gary Bernstein and members of the DM team, I have added a Python wrapper using pybind11 and a new cmake build system. We opted to use a cmake build so that the package can still be used easily outside this organization. We decided to keep these additions on a fork that will be part of the LSST organization on GitHub if this RFC is approved (currently at https://github.com/cmsaunders/gbdes/tree/gaiadr2). This path was taken because it was decided that it would be simpler for DM to maintain the code going forward, and Gary does not anticipate making upstream changes.
Right now pipe_tasks is the grab-bag where all the python-only tasks live, but maybe isn't the best choice.
A possible parallel is fgcm/fgcmcal which has the fork of fgcm (third-party code) in one repo, and fgcmcal where all the tasks and tests which depend on obs packages live. This might be easier than the jointcal model with the mix of c++/task/test code just because if our fork contains a significant amount of extras that aren't upstream it almost ceases to be a "fork" anymore.