AP and DRP pipelines have been switched to use the new image differencing tasks

Following RFC-866 we have switched both the AP and DRP pipelines to use the new image differencing tasks. The old lsst.pipe.tasks.ImageDifferenceTask and related lsst.pipe.tasks.ImageDifferenceFromTemplateTask are now deprecated, and will eventually be removed.

Image differencing is now divided into three distinct steps, each with its own PipelineTask:

  1. lsst.ip.diffim.GetTemplateTask which constructs the warped and cropped (and possibly DCR-corrected) templateExp. This step was implemented previously as part of lsst.pipe.tasks.ImageDifferenceFromTemplateTask.
  2. lsst.ip.diffim.AlardLuptonSubtractTask which PSF-matches either the template or science image, and subtracts the template from the science image. This Task can be replaced by other algorithms, such as a (yet to be written) ZogySubtractTask with the appropriate input and output connections.
  3. lsst.ip.diffim.DetectAndMeasureTask which runs source detection and measurement on the difference image, including adding sky sources and forced measurement. For a future ZogySubtractTask or other image subtraction Task that produces a maximum likelihood image as an output connection we will create a new DetectAndMeasureLikelihoodTask that inherits from DetectAndMeasureTask.

In order to simplify the transition to the new image differencing pipeline, lsst.ip.diffim.AlardLuptonSubtractTask has been implemented with a temporary config option forceCompatibility which currently defaults to True. With this option enabled, the new task will produce results that are very similar to the old lsst.pipe.tasks.ImageDifferenceFromTemplateTask. After a period of additional testing and verification we will disable the forceCompatibility option.

The current implementation supports only image differencing based on the Alard&Lupton algorithm, though either the template or science image may be convolved and the decorrelation afterburner is included. In the future we will also implement Alard&Lupton with preconvolution, and ZOGY may be implemented.