MakeWarpTask¶
Warp and optionally PSF-Match calexps onto a common projection by performing the following operations:
Group calexps by visit/run
For each visit, generate a Warp by calling method @ref run.
run
loops over the visit’s calexps calling.
WarpAndPsfMatchTask
on each visit.
WarpType identifies the types of convolutions applied to Warps (previously CoaddTempExps). Only two types are available: direct (for regular Warps/Coadds) and psfMatched (for Warps/Coadds with homogenized PSFs). We expect to add a third type, likelihood, for generating likelihood Coadds with Warps that have been correlated with their own PSF.
To make psfMatchedWarps
, select config.makePsfMatched=True
. The subtask
ModelPsfMatchTask
is responsible for the PSF-Matching, and its config is accessed via
config.warpAndPsfMatch.psfMatch
.
The optimal configuration depends on aspects of dataset: the pixel scale, average PSF FWHM and dimensions of the PSF kernel. These configs include the requested model PSF, the matching kernel size, padding of the science PSF thumbnail and spatial sampling frequency of the PSF.
Processing summary¶
ToDo
Python API summary¶
from lsst.pipe.tasks.makeWarp import MakeWarpTask
-
class
MakeWarpTask
(**kwargs) Warp and optionally PSF-Match calexps onto an a common projection
...
- attributeconfig
Access configuration fields and retargetable subtasks.
-
method
run
(calExpList, ccdIdList, skyInfo, visitId=0, dataIdList=None, **kwargs) Create a Warp from inputs
...
See also
See the MakeWarpTask
API reference for complete details.
Retargetable subtasks¶
inputRecorder¶
Subtask that helps fill CoaddInputs catalogs added to the final Exposure
modelPsf¶
- Default
lsst.meas.algorithms.gaussianPsfFactory.applyWrapper
- Field type
Model Psf factory
select¶
- Default
- Field type
Image selection subtask.
warpAndPsfMatch¶
- Default
- Field type
Task to warp and PSF-match calexp
Configuration fields¶
badMaskPlanes¶
Mask planes that, if set, the associated pixel should not be included in the coaddTempExp.
bgSubtracted¶
Work with a background subtracted calexp?
coaddName¶
Coadd name: typically one of deep or goodSeeing.
coaddPsf¶
- Data type
lsst.meas.algorithms.CoaddPsfConfig
- Field type
Configuration for CoaddPsf
connections¶
- Data type
lsst.pipe.base.config.MakeWarpConfigConnections
- Field type
Configurations describing the connections of the PipelineTask to datatypes
doApplySkyCorr¶
Apply sky correction?
doWrite¶
persist <coaddName>Coadd_<warpType>Warp
doWriteEmptyWarps¶
Write out warps even if they are empty
hasFakes¶
Should be set to True if fake sources have been inserted into the input data.
idGenerator¶
- Data type
lsst.meas.base._id_generator.DetectorVisitIdGeneratorConfig
- Field type
Configuration for how to generate catalog IDs from data IDs.
includeCalibVar¶
Add photometric calibration variance to warp variance plane.
makeDirect¶
Make direct Warp/Coadds
makePsfMatched¶
Make Psf-Matched Warp/Coadd?
matchingKernelSize¶
Size in pixels of matching kernel. Must be odd.
saveLogOutput¶
Flag to enable/disable saving of log output for a task, enabled by default.
useVisitSummaryPsf¶
If True, use the PSF model and aperture corrections from the ‘visitSummary’ connection. If False, use the PSF model and aperture corrections from the ‘exposure’ connection.
In Depth¶
Config Guidelines¶
The user must specify the size of the model PSF to
which to match by setting config.modelPsf.defaultFwhm
in units of pixels.
The appropriate values depends on science case. In general, for a set of
input images, this config should equal the FWHM of the visit with the worst
seeing. The smallest it should be set to is the median FWHM. The defaults
of the other config options offer a reasonable starting point.
The following list presents the most common problems that arise from a
misconfigured ModelPsfMatchTask
and corresponding solutions. All assume the default Alard-Lupton kernel,
with configs accessed via
config.warpAndPsfMatch.psfMatch.kernel['AL']
. Each item in the list
is formatted as:
Problem: Explanation. Solution
Troublshooting PSF-Matching Configuration¶
Matched PSFs look boxy¶
The matching kernel is too small.
Solution¶
Increase the matching kernel size. For example:
config.warpAndPsfMatch.psfMatch.kernel['AL'].kernelSize=27
# default 21
Note that increasing the kernel size also increases runtime.
Matched PSFs look ugly (dipoles, quadropoles, donuts)¶
Unable to find good solution for matching kernel.
Solution¶
Provide the matcher with more data by either increasing the spatial sampling by decreasing the spatial cell size.
config.warpAndPsfMatch.psfMatch.kernel['AL'].sizeCellX = 64
# default 128
config.warpAndPsfMatch.psfMatch.kernel['AL'].sizeCellY = 64
# default 128
or increasing the padding around the Science PSF, for example:
config.warpAndPsfMatch.psfMatch.autoPadPsfTo=1.6 # default 1.4
Increasing autoPadPsfTo
increases the minimum ratio of input PSF
dimensions to the matching kernel dimensions, thus increasing the
number of pixels available to fit after convolving the PSF with the
matching kernel. Optionally, for debugging the effects of padding, the
level of padding may be manually controlled by setting turning off the
automatic padding and setting the number of pixels by which to pad the
PSF:
config.warpAndPsfMatch.psfMatch.doAutoPadPsf = False
# default True
config.warpAndPsfMatch.psfMatch.padPsfBy = 6
# pixels. default 0
Ripple Noise Pattern¶
Matching a large PSF to a smaller PSF produces a telltale noise pattern which looks like ripples or a brain.
Solution¶
Increase the size of the requested model PSF. For example:
config.modelPsf.defaultFwhm = 11 # Gaussian sigma in units of pixels.
High frequency (sometimes checkered) noise¶
The matching basis functions are too small.
Solution¶
Increase the width of the Gaussian basis functions. For example:
config.warpAndPsfMatch.psfMatch.kernel['AL'].alardSigGauss=
[1.5, 3.0, 6.0] # from default [0.7, 1.5, 3.0]