The first version of gen3 support in
ImageDifferenceTask) will be merged soon. This is going to be a “backward compatible” implementation. It will be executable for a while in both gen2 and gen3 middleware worlds and supposed to produce (mostly) identical results.
The image difference code in the LSST stack has a long development history and consists of two parts:
- There is the C++ Alard-Lupton PSF matching (AL) code, untouched for many years.
- There are many layers of pre- and postprocessing higher level python code that have accumulated over years around this core.
Unfortunately, the origin or purpose of some logical branches in this pre- and postprocessing code is not obvious for us (the AP team at UW). There are also technical solutions which are not straightforward to migrate into gen3, occasionally because of deviation from the current LSST standard design structures or just because the more rigorous data handling in gen3.
Here, I’d like to mention a few examples of such functionality (configuration). I’d like to poll the Community whether these features are actually known or used by anybody, or can become gradually unsupported.
getTemplate = GetCalexpAsTemplateTask: calexp from calexp subtraction.
doSelectSources = True and kernelSourcesFromRef = True - Selecting AL kernel candidates (image stamps around sources) from cross matching calexp sources with an external catalog.
doSelectSources = True and kernelSourcesFromRef = False - Selecting AL kernel candidates from cross matching to an existing source catalog of the template. This mode seems to be supported in calexp - calexp mode only at the moment.
doSubtract = False - “subtraction without subtraction” i.e. detection and cataloging only on an already persisted difference image product.
doAddMetrics = True - adding AL kernel debug metrics to the output catalog.
doMatchSources = True Matching diasources to the calexp source catalog or to an external reference catalog. (“srcMatchId”, “refMatchId” in output catalog)
class Winter2013ImageDifferenceTask - a subclass of ImageDifferenceTask
Please shout if the removal of any of the above mentioned configurations from the LSST stack would break your daily processing. Also, please don’t hesitate to share your memories with us if you can recall a motivation or a use case for them.