AssembleCoaddTask¶
- 
class lsst.pipe.tasks.assembleCoadd.AssembleCoaddTask(*args, **kwargs)¶
- Bases: - lsst.pipe.tasks.coaddBase.CoaddBaseTask- Assemble a coadded image from a set of warps (coadded temporary exposures). - We want to assemble a coadded image from a set of Warps (also called coadded temporary exposures or - coaddTempExps). Each input Warp covers a patch on the sky and corresponds to a single run/visit/exposure of the covered patch. We provide the task with a list of Warps (- selectDataList) from which it selects Warps that cover the specified patch (pointed at by- dataRef). Each Warp that goes into a coadd will typically have an independent photometric zero-point. Therefore, we must scale each Warp to set it to a common photometric zeropoint. WarpType may be one of ‘direct’ or ‘psfMatched’, and the boolean configs- config.makeDirectand- config.makePsfMatchedset which of the warp types will be coadded. The coadd is computed as a mean with optional outlier rejection. Criteria for outlier rejection are set in- AssembleCoaddConfig. Finally, Warps can have bad ‘NaN’ pixels which received no input from the source calExps. We interpolate over these bad (NaN) pixels.- AssembleCoaddTaskuses several sub-tasks. These are- ScaleZeroPointTask
- create and use an imageScalerobject to scale the photometric zeropoint for each Warp
- InterpImageTask
- interpolate across bad pixels (NaN) in the final coadd
 - You can retarget these subtasks if you wish. - Notes - The - lsst.pipe.base.CmdLineTaskinterface supports a flag- -dto import- debug.pyfrom your- PYTHONPATH; see- baseDebugfor more about- debug.pyfiles.- AssembleCoaddTaskhas no debug variables of its own. Some of the subtasks may support debug variables. See the documentation for the subtasks for further information.- Examples - AssembleCoaddTaskassembles a set of warped images into a coadded image. The- AssembleCoaddTaskcan be invoked by running- assembleCoadd.pywith the flag ‘–legacyCoadd’. Usage of assembleCoadd.py expects two inputs: a data reference to the tract patch and filter to be coadded, and a list of Warps to attempt to coadd. These are specified using- --idand- --selectId, respectively:- --id = [KEY=VALUE1[^VALUE2[^VALUE3...] [KEY=VALUE1[^VALUE2[^VALUE3...] ...]] --selectId [KEY=VALUE1[^VALUE2[^VALUE3...] [KEY=VALUE1[^VALUE2[^VALUE3...] ...]] - Only the Warps that cover the specified tract and patch will be coadded. A list of the available optional arguments can be obtained by calling - assembleCoadd.pywith the- --helpcommand line argument:- assembleCoadd.py --help - To demonstrate usage of the - AssembleCoaddTaskin the larger context of multi-band processing, we will generate the HSC-I & -R band coadds from HSC engineering test data provided in the- ci_hscpackage. To begin, assuming that the lsst stack has been already set up, we must set up the obs_subaru and- ci_hscpackages. This defines the environment variable- $CI_HSC_DIRand points at the location of the package. The raw HSC data live in the- $CI_HSC_DIR/raw directory. To begin assembling the coadds, we must first- processCcd
- process the individual ccds in $CI_HSC_RAW to produce calibrated exposures
- makeSkyMap
- create a skymap that covers the area of the sky present in the raw exposures
- makeCoaddTempExp
- warp the individual calibrated exposures to the tangent plane of the coadd
 - We can perform all of these steps by running - $CI_HSC_DIR scons warp-903986 warp-904014 warp-903990 warp-904010 warp-903988 - This will produce warped exposures for each visit. To coadd the warped data, we call assembleCoadd.py as follows: - assembleCoadd.py --legacyCoadd $CI_HSC_DIR/DATA --id patch=5,4 tract=0 filter=HSC-I --selectId visit=903986 ccd=16 --selectId visit=903986 ccd=22 --selectId visit=903986 ccd=23 --selectId visit=903986 ccd=100 --selectId visit=904014 ccd=1 --selectId visit=904014 ccd=6 --selectId visit=904014 ccd=12 --selectId visit=903990 ccd=18 --selectId visit=903990 ccd=25 --selectId visit=904010 ccd=4 --selectId visit=904010 ccd=10 --selectId visit=904010 ccd=100 --selectId visit=903988 ccd=16 --selectId visit=903988 ccd=17 --selectId visit=903988 ccd=23 --selectId visit=903988 ccd=24 - that will process the HSC-I band data. The results are written in - $CI_HSC_DIR/DATA/deepCoadd-results/HSC-I.- You may also choose to run: - scons warp-903334 warp-903336 warp-903338 warp-903342 warp-903344 warp-903346 assembleCoadd.py --legacyCoadd $CI_HSC_DIR/DATA --id patch=5,4 tract=0 filter=HSC-R --selectId visit=903334 ccd=16 --selectId visit=903334 ccd=22 --selectId visit=903334 ccd=23 --selectId visit=903334 ccd=100 --selectId visit=903336 ccd=17 --selectId visit=903336 ccd=24 --selectId visit=903338 ccd=18 --selectId visit=903338 ccd=25 --selectId visit=903342 ccd=4 --selectId visit=903342 ccd=10 --selectId visit=903342 ccd=100 --selectId visit=903344 ccd=0 --selectId visit=903344 ccd=5 --selectId visit=903344 ccd=11 --selectId visit=903346 ccd=1 --selectId visit=903346 ccd=6 --selectId visit=903346 ccd=12 - to generate the coadd for the HSC-R band if you are interested in following multiBand Coadd processing as discussed in - pipeTasks_multiBand(but note that normally, one would use the- SafeClipAssembleCoaddTaskrather than- AssembleCoaddTaskto make the coadd.- Methods Summary - applyAltMaskPlanes(mask, altMaskSpans)- Apply in place alt mask formatted as SpanSets to a mask. - assembleMetadata(coaddExposure, …)- Set the metadata for the coadd. - assembleSubregion(coaddExposure, bbox, …)- Assemble the coadd for a sub-region. - getTempExpRefList(patchRef, calExpRefList)- Generate list data references corresponding to warped exposures that lie within the patch to be coadded. - makeSupplementaryData(dataRef, selectDataList)- Make additional inputs to run() specific to subclasses. - prepareInputs(refList)- Prepare the input warps for coaddition by measuring the weight for each warp and the scaling for the photometric zero point. - prepareStats([mask])- Prepare the statistics for coadding images. - processResults(coaddExposure, dataRef)- Interpolate over missing data and mask bright stars. - readBrightObjectMasks(dataRef)- Retrieve the bright object masks. - removeMaskPlanes(maskedImage)- Unset the mask of an image for mask planes specified in the config. - run(skyInfo, tempExpRefList, …[, …])- Assemble a coadd from input warps - runDataRef(dataRef[, selectDataList])- Assemble a coadd from a set of Warps. - setBrightObjectMasks(exposure, dataId, …)- Set the bright object masks. - setInexactPsf(mask)- Set INEXACT_PSF mask plane. - setRejectedMaskMapping(statsCtrl)- Map certain mask planes of the warps to new planes for the coadd. - shrinkValidPolygons(coaddInputs)- Shrink coaddInputs’ ccds’ ValidPolygons in place. - Methods Documentation - 
applyAltMaskPlanes(mask, altMaskSpans)¶
- Apply in place alt mask formatted as SpanSets to a mask. - Parameters: - mask : lsst.afw.image.Mask
- Original mask. 
- altMaskSpans : dict
- SpanSet lists to apply. Each element contains the new mask plane name (e.g. “CLIPPED and/or “NO_DATA”) as the key, and list of SpanSets to apply to the mask. 
 - Returns: - mask : lsst.afw.image.Mask
- Updated mask. 
 
- mask : 
 - 
assembleMetadata(coaddExposure, tempExpRefList, weightList)¶
- Set the metadata for the coadd. - This basic implementation sets the filter from the first input. - Parameters: 
 - 
assembleSubregion(coaddExposure, bbox, tempExpRefList, imageScalerList, weightList, altMaskList, statsFlags, statsCtrl, nImage=None)¶
- Assemble the coadd for a sub-region. - For each coaddTempExp, check for (and swap in) an alternative mask if one is passed. Remove mask planes listed in - config.removeMaskPlanes. Finally, stack the actual exposures using- lsst.afw.math.statisticsStackwith the statistic specified by statsFlags. Typically, the statsFlag will be one of lsst.afw.math.MEAN for a mean-stack or- lsst.afw.math.MEANCLIPfor outlier rejection using an N-sigma clipped mean where N and iterations are specified by statsCtrl. Assign the stacked subregion back to the coadd.- Parameters: - coaddExposure : lsst.afw.image.Exposure
- The target exposure for the coadd. 
- bbox : lsst.afw.geom.Box
- Sub-region to coadd. 
- tempExpRefList : list
- List of data reference to tempExp. 
- imageScalerList : list
- List of image scalers. 
- weightList : list
- List of weights. 
- altMaskList : list
- List of alternate masks to use rather than those stored with tempExp, or None. Each element is dict with keys = mask plane name to which to add the spans. 
- statsFlags : lsst.afw.math.Property
- Property object for statistic for coadd. 
- statsCtrl : lsst.afw.math.StatisticsControl
- Statistics control object for coadd. 
- nImage : lsst.afw.image.ImageU, optional
- Keeps track of exposure count for each pixel. 
 
- coaddExposure : 
 - 
getTempExpRefList(patchRef, calExpRefList)¶
- Generate list data references corresponding to warped exposures that lie within the patch to be coadded. - Parameters: - patchRef : dataRef
- Data reference for patch. 
- calExpRefList : list
- List of data references for input calexps. 
 - Returns: - tempExpRefList : list
- List of Warp/CoaddTempExp data references. 
 
- patchRef : 
 - 
makeSupplementaryData(dataRef, selectDataList)¶
- Make additional inputs to run() specific to subclasses. - Available to be implemented by subclasses only if they need the coadd dataRef for performing preliminary processing before assembling the coadd. - Parameters: - dataRef : lsst.daf.persistence.ButlerDataRef
- Butler data reference for supplementary data. 
- selectDataList : list
- List of data references to Warps. 
 
- dataRef : 
 - 
prepareInputs(refList)¶
- Prepare the input warps for coaddition by measuring the weight for each warp and the scaling for the photometric zero point. - Each Warp has its own photometric zeropoint and background variance. Before coadding these Warps together, compute a scale factor to normalize the photometric zeropoint and compute the weight for each Warp. - Parameters: - refList : list
- List of data references to tempExp 
 - Returns: - result : lsst.pipe.base.Struct
- Result struct with components: 
 
- refList : 
 - 
prepareStats(mask=None)¶
- Prepare the statistics for coadding images. - Parameters: - mask : int, optional
- Bit mask value to exclude from coaddition. 
 - Returns: - stats : lsst.pipe.base.Struct
- Statistics structure with the following fields: - statsCtrl: Statistics control object for coadd
- (lsst.afw.math.StatisticsControl)
 
- statsFlags: Statistic for coadd (- lsst.afw.math.Property)
 
 
- mask : 
 - 
processResults(coaddExposure, dataRef)¶
- Interpolate over missing data and mask bright stars. - Parameters: - coaddExposure : lsst.afw.image.Exposure
- The coadded exposure to process. 
- dataRef : lsst.daf.persistence.ButlerDataRef
- Butler data reference for supplementary data. 
 
- coaddExposure : 
 - 
readBrightObjectMasks(dataRef)¶
- Retrieve the bright object masks. - Returns None on failure. - Parameters: - dataRef : lsst.daf.persistence.butlerSubset.ButlerDataRef
- A Butler dataRef. 
 - Returns: - result : lsst.daf.persistence.butlerSubset.ButlerDataRef
- Bright object mask from the Butler object, or None if it cannot be retrieved. 
 
- dataRef : 
 - 
removeMaskPlanes(maskedImage)¶
- Unset the mask of an image for mask planes specified in the config. - Parameters: - maskedImage : lsst.afw.image.MaskedImage
- The masked image to be modified. 
 
- maskedImage : 
 - 
run(skyInfo, tempExpRefList, imageScalerList, weightList, altMaskList=None, mask=None, supplementaryData=None)¶
- Assemble a coadd from input warps - Assemble the coadd using the provided list of coaddTempExps. Since the full coadd covers a patch (a large area), the assembly is performed over small areas on the image at a time in order to conserve memory usage. Iterate over subregions within the outer bbox of the patch using - assembleSubregionto stack the corresponding subregions from the coaddTempExps with the statistic specified. Set the edge bits the coadd mask based on the weight map.- Parameters: - skyInfo : lsst.pipe.base.Struct
- Struct with geometric information about the patch. 
- tempExpRefList : list
- List of data references to Warps (previously called CoaddTempExps). 
- imageScalerList : list
- List of image scalers. 
- weightList : list
- List of weights 
- altMaskList : list, optional
- List of alternate masks to use rather than those stored with tempExp. 
- mask : lsst.afw.image.Mask, optional
- Mask to ignore when coadding 
- supplementaryData : lsst.pipe.base.Struct, optional
- Struct with additional data products needed to assemble coadd. Only used by subclasses that implement - makeSupplementaryDataand override- run.
 - Returns: - result : lsst.pipe.base.Struct
- Result struct with components: - coaddExposure: coadded exposure (- lsst.afw.image.Exposure).
- nImage: exposure count image (- lsst.afw.image.Image).
 
 
- skyInfo : 
 - 
runDataRef(dataRef, selectDataList=[])¶
- Assemble a coadd from a set of Warps. - Coadd a set of Warps. Compute weights to be applied to each Warp and find scalings to match the photometric zeropoint to a reference Warp. Assemble the Warps using - run. Interpolate over NaNs and optionally write the coadd to disk. Return the coadded exposure.- Parameters: - dataRef : lsst.daf.persistence.butlerSubset.ButlerDataRef
- Data reference defining the patch for coaddition and the reference Warp (if - config.autoReference=False). Used to access the following data products: -- self.config.coaddName + "Coadd_skyMap"-- self.config.coaddName + "Coadd_ + <warpType> + "Warp"(optionally) -- self.config.coaddName + "Coadd"
- selectDataList : list
- List of data references to Warps. Data to be coadded will be selected from this list based on overlap with the patch defined by dataRef. 
 - Returns: - retStruct : lsst.pipe.base.Struct
- Result struct with components: - coaddExposure: coadded exposure (- Exposure).
- nImage: exposure count image (- Image).
 
 
- dataRef : 
 - 
setBrightObjectMasks(exposure, dataId, brightObjectMasks)¶
- Set the bright object masks. - Parameters: - exposure : lsst.afw.image.Exposure
- Exposure under consideration. 
- dataId : lsst.daf.persistence.dataId
- Data identifier dict for patch. 
- brightObjectMasks : lsst.afw.table
- Table of bright objects to mask. 
 
- exposure : 
 - 
setInexactPsf(mask)¶
- Set INEXACT_PSF mask plane. - If any of the input images isn’t represented in the coadd (due to clipped pixels or chip gaps), the - CoaddPsfwill be inexact. Flag these pixels.- Parameters: - mask : lsst.afw.image.Mask
- Coadded exposure’s mask, modified in-place. 
 
- mask : 
 - 
static setRejectedMaskMapping(statsCtrl)¶
- Map certain mask planes of the warps to new planes for the coadd. - If a pixel is rejected due to a mask value other than EDGE, NO_DATA, or CLIPPED, set it to REJECTED on the coadd. If a pixel is rejected due to EDGE, set the coadd pixel to SENSOR_EDGE. If a pixel is rejected due to CLIPPED, set the coadd pixel to CLIPPED. - Parameters: - statsCtrl : lsst.afw.math.StatisticsControl
- Statistics control object for coadd 
 - Returns: 
- statsCtrl : 
 - 
shrinkValidPolygons(coaddInputs)¶
- Shrink coaddInputs’ ccds’ ValidPolygons in place. - Either modify each ccd’s validPolygon in place, or if CoaddInputs does not have a validPolygon, create one from its bbox. - Parameters: - coaddInputs : lsst.afw.image.coaddInputs
- Original mask. 
 
- coaddInputs :