lsst.ip.diffim  15.0-9-g15da764
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask Class Reference

Decorrelate the effect of convolution by Alard-Lupton matching kernel in image difference. More...

Inheritance diagram for lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask:
lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelMapper

Public Member Functions

def __init__ (self, args, kwargs)
 Create the image decorrelation Task. More...
 
def computeVarianceMean (self, exposure)
 
def run (self, exposure, templateExposure, subtractedExposure, psfMatchingKernel, preConvKernel=None, xcen=None, ycen=None, svar=None, tvar=None)
 Perform decorrelation of an image difference exposure. More...
 

Static Public Member Functions

def computeCorrectedDiffimPsf (kappa, psf, svar=0.04, tvar=0.04)
 Compute the (decorrelated) difference image's new PSF. More...
 

Public Attributes

 statsControl
 

Static Public Attributes

 ConfigClass = DecorrelateALKernelConfig
 

Detailed Description

Decorrelate the effect of convolution by Alard-Lupton matching kernel in image difference.

Contents

Description

Pipe-task that removes the neighboring-pixel covariance in an image difference that are added when the template image is convolved with the Alard-Lupton PSF matching kernel.

The image differencing pipeline task PSFMatchTask and PSFMatchConfigAL uses the Alard and Lupton (1998) method for matching the PSFs of the template and science exposures prior to subtraction. The Alard-Lupton method identifies a matching kernel, which is then (typically) convolved with the template image to perform PSF matching. This convolution has the effect of adding covariance between neighboring pixels in the template image, which is then added to the image difference by subtraction.

The pixel covariance may be corrected by whitening the noise of the image difference. This task performs such a decorrelation by computing a decorrelation kernel (based upon the A&L matching kernel and variances in the template and science images) and convolving the image difference with it. This process is described in detail in DMTN-021.

Task initialization

Create the image decorrelation Task.

Parameters
*argsarguments to be passed to lsst.pipe.base.task.Task.__init__
**kwargskeyword arguments to be passed to lsst.pipe.base.task.Task.__init__

Invoking the Task

Perform decorrelation of an image difference exposure. Decorrelates the diffim due to the convolution of the templateExposure with the A&L PSF matching kernel. Currently can accept a spatially varying matching kernel but in this case it simply uses a static kernel from the center of the exposure. The decorrelation is described in DMTN-021, Equation 1, where exposure is I_1; templateExposure is I_2; subtractedExposure is D(k); psfMatchingKernel is kappa; and svar and tvar are their respective variances (see below).

Parameters
[in]exposurethe science afwImage.Exposure used for PSF matching
[in]templateExposurethe template afwImage.Exposure used for PSF matching
[in]subtractedExposurethe subtracted exposure produced by ip_diffim.ImagePsfMatchTask.subtractExposures()
[in]psfMatchingKernelan (optionally spatially-varying) PSF matching kernel produced by ip_diffim.ImagePsfMatchTask.subtractExposures()
[in]preConvKernelif not None, then the exposure was pre-convolved with this kernel
[in]xcenX-pixel coordinate to use for computing constant matching kernel to use If None (default), then use the center of the image.
[in]ycenY-pixel coordinate to use for computing constant matching kernel to use If None (default), then use the center of the image.
[in]svarimage variance for science image If None (default) then compute the variance over the entire input science image.
[in]tvarimage variance for template image If None (default) then compute the variance over the entire input template image.
Returns
a pipeBase.Struct containing:
  • correctedExposure: the decorrelated diffim
  • correctionKernel: the decorrelation correction kernel (which may be ignored)
Note
The subtractedExposure is NOT updated
The returned correctedExposure has an updated PSF as well.
Here we currently convert a spatially-varying matching kernel into a constant kernel, just by computing it at the center of the image (tickets DM-6243, DM-6244).
We are also using a constant accross-the-image measure of sigma (sqrt(variance)) to compute the decorrelation kernel.
Still TBD (ticket DM-6580): understand whether the convolution is correctly modifying the variance plane of the new subtractedExposure.

Configuration parameters

See DecorrelateALKernelConfig

Debug variables

This task has no debug variables

Example of using DecorrelateALKernelTask

This task has no standalone example, however it is applied as a subtask of pipe.tasks.imageDifference.ImageDifferenceTask.

Definition at line 62 of file imageDecorrelation.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.__init__ (   self,
  args,
  kwargs 
)

Create the image decorrelation Task.

Parameters
*argsarguments to be passed to lsst.pipe.base.task.Task.__init__
**kwargskeyword arguments to be passed to lsst.pipe.base.task.Task.__init__

Definition at line 124 of file imageDecorrelation.py.

Member Function Documentation

◆ computeCorrectedDiffimPsf()

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.computeCorrectedDiffimPsf (   kappa,
  psf,
  svar = 0.04,
  tvar = 0.04 
)
static

Compute the (decorrelated) difference image's new PSF.

new_psf = psf(k) * sqrt((svar + tvar) / (svar + tvar * kappa_ft(k)**2))

Parameters
kappaA matching kernel array derived from Alard & Lupton PSF matching
psfThe uncorrected psf array of the science image (and also of the diffim)
svarAverage variance of science image used for PSF matching
tvarAverage variance of template image used for PSF matching
Returns
a 2-d numpy.array containing the new PSF

Definition at line 293 of file imageDecorrelation.py.

◆ computeVarianceMean()

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.computeVarianceMean (   self,
  exposure 
)

Definition at line 136 of file imageDecorrelation.py.

◆ run()

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.run (   self,
  exposure,
  templateExposure,
  subtractedExposure,
  psfMatchingKernel,
  preConvKernel = None,
  xcen = None,
  ycen = None,
  svar = None,
  tvar = None 
)

Perform decorrelation of an image difference exposure.

Decorrelates the diffim due to the convolution of the templateExposure with the A&L PSF matching kernel. Currently can accept a spatially varying matching kernel but in this case it simply uses a static kernel from the center of the exposure. The decorrelation is described in DMTN-021, Equation 1, where exposure is I_1; templateExposure is I_2; subtractedExposure is D(k); psfMatchingKernel is kappa; and svar and tvar are their respective variances (see below).

Parameters
[in]exposurethe science afwImage.Exposure used for PSF matching
[in]templateExposurethe template afwImage.Exposure used for PSF matching
[in]subtractedExposurethe subtracted exposure produced by ip_diffim.ImagePsfMatchTask.subtractExposures()
[in]psfMatchingKernelan (optionally spatially-varying) PSF matching kernel produced by ip_diffim.ImagePsfMatchTask.subtractExposures()
[in]preConvKernelif not None, then the exposure was pre-convolved with this kernel
[in]xcenX-pixel coordinate to use for computing constant matching kernel to use If None (default), then use the center of the image.
[in]ycenY-pixel coordinate to use for computing constant matching kernel to use If None (default), then use the center of the image.
[in]svarimage variance for science image If None (default) then compute the variance over the entire input science image.
[in]tvarimage variance for template image If None (default) then compute the variance over the entire input template image.
Returns
a pipeBase.Struct containing:
  • correctedExposure: the decorrelated diffim
  • correctionKernel: the decorrelation correction kernel (which may be ignored)
Note
The subtractedExposure is NOT updated
The returned correctedExposure has an updated PSF as well.
Here we currently convert a spatially-varying matching kernel into a constant kernel, just by computing it at the center of the image (tickets DM-6243, DM-6244).
We are also using a constant accross-the-image measure of sigma (sqrt(variance)) to compute the decorrelation kernel.
Still TBD (ticket DM-6580): understand whether the convolution is correctly modifying the variance plane of the new subtractedExposure.

Definition at line 145 of file imageDecorrelation.py.

Member Data Documentation

◆ ConfigClass

lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.ConfigClass = DecorrelateALKernelConfig
static

Definition at line 121 of file imageDecorrelation.py.

◆ statsControl

lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.statsControl

Definition at line 131 of file imageDecorrelation.py.


The documentation for this class was generated from the following file: