lsst.ip.diffim  13.0-26-g703d095+10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Static Private Member Functions | Static Private 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__
 Create the image decorrelation Task. More...
 
def computeVarianceMean
 
def run
 Perform decorrelation of an image difference exposure. More...
 

Static Public Member Functions

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

Public Attributes

 statsControl
 

Static Public Attributes

 ConfigClass = DecorrelateALKernelConfig
 

Static Private Member Functions

def _computeDecorrelationKernel
 Compute the Lupton/ZOGY post-conv. More...
 
def _fixOddKernel
 Take a kernel with odd dimensions and make them even for FFT. More...
 
def _fixEvenKernel
 Take a kernel with even dimensions and make them odd, centered correctly. More...
 
def _doConvolve
 Convolve an Exposure with a decorrelation convolution kernel. More...
 

Static Private Attributes

string _DefaultName = "ip_diffim_decorrelateALKernel"
 

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]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 66 of file imageDecorrelation.py.

Constructor & Destructor Documentation

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 128 of file imageDecorrelation.py.

Member Function Documentation

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask._computeDecorrelationKernel (   kappa,
  svar = 0.04,
  tvar = 0.04 
)
staticprivate

Compute the Lupton/ZOGY post-conv.

kernel for decorrelating an image difference, based on the PSF-matching kernel.

Parameters
kappaA matching kernel 2-d numpy.array derived from Alard & Lupton PSF matching
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 correction kernel
Note
As currently implemented, kappa is a static (single, non-spatially-varying) kernel.

Definition at line 226 of file imageDecorrelation.py.

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask._doConvolve (   exposure,
  kernel 
)
staticprivate

Convolve an Exposure with a decorrelation convolution kernel.

Parameters
exposureInput afw.image.Exposure to be convolved.
kernelInput 2-d numpy.array to convolve the image with
Returns
a new Exposure with the convolved pixels and the (possibly re-centered) kernel.
Note
We use afwMath.convolve() but keep scipy.convolve for debugging.
We re-center the kernel if necessary and return the possibly re-centered kernel

Definition at line 329 of file imageDecorrelation.py.

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask._fixEvenKernel (   kernel)
staticprivate

Take a kernel with even dimensions and make them odd, centered correctly.

Parameters
kernela numpy.array
Returns
a fixed kernel numpy.array

Definition at line 306 of file imageDecorrelation.py.

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask._fixOddKernel (   kernel)
staticprivate

Take a kernel with odd dimensions and make them even for FFT.

Parameters
kernela numpy.array
Returns
a fixed kernel numpy.array. Returns a copy if the dimensions needed to change; otherwise just return the input kernel.

Definition at line 285 of file imageDecorrelation.py.

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 251 of file imageDecorrelation.py.

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

Definition at line 141 of file imageDecorrelation.py.

def lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.run (   self,
  exposure,
  templateExposure,
  subtractedExposure,
  psfMatchingKernel,
  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]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 150 of file imageDecorrelation.py.

Member Data Documentation

string lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask._DefaultName = "ip_diffim_decorrelateALKernel"
staticprivate

Definition at line 126 of file imageDecorrelation.py.

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

Definition at line 125 of file imageDecorrelation.py.

lsst.ip.diffim.imageDecorrelation.DecorrelateALKernelTask.statsControl

Definition at line 135 of file imageDecorrelation.py.


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