LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
lsst.ip.diffim.zogy.ZogyImagePsfMatchTask Class Reference
Inheritance diagram for lsst.ip.diffim.zogy.ZogyImagePsfMatchTask:
lsst.ip.diffim.imagePsfMatch.ImagePsfMatchTask lsst.ip.diffim.psfMatch.PsfMatchTask

Public Member Functions

def __init__ (self, *args, **kwargs)
 
def run (self, scienceExposure, templateExposure, doWarping=True)
 
def subtractExposures (self, templateExposure, scienceExposure, *args)
 
def subtractMaskedImages (self, templateExposure, scienceExposure, *args)
 

Static Public Attributes

 ConfigClass = ZogyImagePsfMatchConfig
 

Detailed Description

Task to perform Zogy PSF matching and image subtraction.

This class inherits from ImagePsfMatchTask to contain the _warper
subtask and related methods.

Definition at line 1269 of file zogy.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.ip.diffim.zogy.ZogyImagePsfMatchTask.__init__ (   self,
args,
**  kwargs 
)
Create the ImagePsfMatchTask.

Reimplemented from lsst.ip.diffim.imagePsfMatch.ImagePsfMatchTask.

Definition at line 1278 of file zogy.py.

1278 def __init__(self, *args, **kwargs):
1279 ImagePsfMatchTask.__init__(self, *args, **kwargs)
1280

Member Function Documentation

◆ run()

def lsst.ip.diffim.zogy.ZogyImagePsfMatchTask.run (   self,
  scienceExposure,
  templateExposure,
  doWarping = True 
)
Register, PSF-match, and subtract two Exposures, ``scienceExposure - templateExposure``
using the ZOGY algorithm.

Parameters
----------
templateExposure : `lsst.afw.image.Exposure`
    exposure to be warped to scienceExposure.
scienceExposure : `lsst.afw.image.Exposure`
    reference Exposure.
doWarping : `bool`
    what to do if templateExposure's and scienceExposure's WCSs do not match:
    - if True then warp templateExposure to match scienceExposure
    - if False then raise an Exception

Notes
-----
Do the following, in order:
    - Warp templateExposure to match scienceExposure, if their WCSs do not already match
    - Compute subtracted exposure ZOGY image subtraction algorithm on the two exposures

This is the new entry point of the task as of DM-25115.

Returns
-------
results : `lsst.pipe.base.Struct` containing these fields:
    - subtractedExposure: `lsst.afw.image.Exposure`
        The subtraction result.
    - warpedExposure: `lsst.afw.image.Exposure` or `None`
        templateExposure after warping to match scienceExposure

Definition at line 1281 of file zogy.py.

1281 def run(self, scienceExposure, templateExposure, doWarping=True):
1282 """Register, PSF-match, and subtract two Exposures, ``scienceExposure - templateExposure``
1283 using the ZOGY algorithm.
1284
1285 Parameters
1286 ----------
1287 templateExposure : `lsst.afw.image.Exposure`
1288 exposure to be warped to scienceExposure.
1289 scienceExposure : `lsst.afw.image.Exposure`
1290 reference Exposure.
1291 doWarping : `bool`
1292 what to do if templateExposure's and scienceExposure's WCSs do not match:
1293 - if True then warp templateExposure to match scienceExposure
1294 - if False then raise an Exception
1295
1296 Notes
1297 -----
1298 Do the following, in order:
1299 - Warp templateExposure to match scienceExposure, if their WCSs do not already match
1300 - Compute subtracted exposure ZOGY image subtraction algorithm on the two exposures
1301
1302 This is the new entry point of the task as of DM-25115.
1303
1304 Returns
1305 -------
1306 results : `lsst.pipe.base.Struct` containing these fields:
1307 - subtractedExposure: `lsst.afw.image.Exposure`
1308 The subtraction result.
1309 - warpedExposure: `lsst.afw.image.Exposure` or `None`
1310 templateExposure after warping to match scienceExposure
1311 """
1312
1313 if not self._validateWcs(scienceExposure, templateExposure):
1314 if doWarping:
1315 self.log.info("Warping templateExposure to scienceExposure")
1316 xyTransform = afwGeom.makeWcsPairTransform(templateExposure.getWcs(),
1317 scienceExposure.getWcs())
1318 psfWarped = measAlg.WarpedPsf(templateExposure.getPsf(), xyTransform)
1319 templateExposure = self._warper.warpExposure(
1320 scienceExposure.getWcs(), templateExposure, destBBox=scienceExposure.getBBox())
1321 templateExposure.setPsf(psfWarped)
1322 else:
1323 raise RuntimeError("Input images are not registered. Consider setting doWarping=True.")
1324
1325 config = self.config.zogyConfig
1326 task = ZogyTask(config=config)
1327 results = task.run(scienceExposure, templateExposure)
1328 results.warpedExposure = templateExposure
1329 return results
1330
A class to contain the data, WCS, and other information needed to describe an image of the sky.
Definition: Exposure.h:72
std::shared_ptr< TransformPoint2ToPoint2 > makeWcsPairTransform(SkyWcs const &src, SkyWcs const &dst)
A Transform obtained by putting two SkyWcs objects "back to back".
Definition: SkyWcs.cc:146

◆ subtractExposures()

def lsst.ip.diffim.zogy.ZogyImagePsfMatchTask.subtractExposures (   self,
  templateExposure,
  scienceExposure,
templateFwhmPix 
)
Register, Psf-match and subtract two Exposures.

Do the following, in order:

- Warp templateExposure to match scienceExposure, if their WCSs do not already match
- Determine a PSF matching kernel and differential background model
    that matches templateExposure to scienceExposure
- PSF-match templateExposure to scienceExposure
- Compute subtracted exposure (see return values for equation).

Parameters
----------
templateExposure : `lsst.afw.image.ExposureF`
    Exposure to PSF-match to scienceExposure
scienceExposure : `lsst.afw.image.ExposureF`
    Reference Exposure
templateFwhmPix : `float`
    FWHM (in pixels) of the Psf in the template image (image to convolve)
scienceFwhmPix : `float`
    FWHM (in pixels) of the Psf in the science image
candidateList : `list`, optional
    A list of footprints/maskedImages for kernel candidates;
    if `None` then source detection is run.

    - Currently supported: list of Footprints or measAlg.PsfCandidateF

doWarping : `bool`
    What to do if ``templateExposure``` and ``scienceExposure`` WCSs do
    not match:

    - if `True` then warp ``templateExposure`` to match ``scienceExposure``
    - if `False` then raise an Exception

convolveTemplate : `bool`
    Convolve the template image or the science image

    - if `True`, ``templateExposure`` is warped if doWarping,
      ``templateExposure`` is convolved
    - if `False`, ``templateExposure`` is warped if doWarping,
      ``scienceExposure is`` convolved

Returns
-------
result : `lsst.pipe.base.Struct`
    An `lsst.pipe.base.Struct` containing these fields:

    - ``subtractedExposure`` : subtracted Exposure
        scienceExposure - (matchedImage + backgroundModel)
    - ``matchedImage`` : ``templateExposure`` after warping to match
                         ``templateExposure`` (if doWarping true),
                         and convolving with psfMatchingKernel
    - ``psfMatchingKernel`` : PSF matching kernel
    - ``backgroundModel`` : differential background model
    - ``kernelCellSet`` : SpatialCellSet used to determine PSF matching kernel

Reimplemented from lsst.ip.diffim.imagePsfMatch.ImagePsfMatchTask.

Definition at line 1331 of file zogy.py.

1331 def subtractExposures(self, templateExposure, scienceExposure, *args):
1332 raise NotImplementedError
1333

◆ subtractMaskedImages()

def lsst.ip.diffim.zogy.ZogyImagePsfMatchTask.subtractMaskedImages (   self,
  templateMaskedImage,
  scienceMaskedImage,
candidateList 
)
Psf-match and subtract two MaskedImages.

Do the following, in order:

- PSF-match templateMaskedImage to scienceMaskedImage
- Determine the differential background
- Return the difference: scienceMaskedImage
    ((warped templateMaskedImage convolved with psfMatchingKernel) + backgroundModel)

Parameters
----------
templateMaskedImage : `lsst.afw.image.MaskedImage`
    MaskedImage to PSF-match to ``scienceMaskedImage``
scienceMaskedImage : `lsst.afw.image.MaskedImage`
    Reference MaskedImage
templateFwhmPix : `float`
    FWHM (in pixels) of the Psf in the template image (image to convolve)
scienceFwhmPix : `float`
    FWHM (in pixels) of the Psf in the science image
candidateList : `list`, optional
    A list of footprints/maskedImages for kernel candidates;
    if `None` then source detection is run.

    - Currently supported: list of Footprints or measAlg.PsfCandidateF

Returns
-------
results : `lsst.pipe.base.Struct`
    An `lsst.pipe.base.Struct` containing these fields:

    - ``subtractedMaskedImage`` : ``scienceMaskedImage`` - (matchedImage + backgroundModel)
    - ``matchedImage`` : templateMaskedImage convolved with psfMatchingKernel
    - `psfMatchingKernel`` : PSF matching kernel
    - ``backgroundModel`` : differential background model
    - ``kernelCellSet`` : SpatialCellSet used to determine PSF matching kernel

Reimplemented from lsst.ip.diffim.imagePsfMatch.ImagePsfMatchTask.

Definition at line 1334 of file zogy.py.

1334 def subtractMaskedImages(self, templateExposure, scienceExposure, *args):
1335 raise NotImplementedError
1336
1337

Member Data Documentation

◆ ConfigClass

lsst.ip.diffim.zogy.ZogyImagePsfMatchTask.ConfigClass = ZogyImagePsfMatchConfig
static

Definition at line 1276 of file zogy.py.


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