LSST Applications g0b6bd0c080+a72a5dd7e6,g1182afd7b4+2a019aa3bb,g17e5ecfddb+2b8207f7de,g1d67935e3f+06cf436103,g38293774b4+ac198e9f13,g396055baef+6a2097e274,g3b44f30a73+6611e0205b,g480783c3b1+98f8679e14,g48ccf36440+89c08d0516,g4b93dc025c+98f8679e14,g5c4744a4d9+a302e8c7f0,g613e996a0d+e1c447f2e0,g6c8d09e9e7+25247a063c,g7271f0639c+98f8679e14,g7a9cd813b8+124095ede6,g9d27549199+a302e8c7f0,ga1cf026fa3+ac198e9f13,ga32aa97882+7403ac30ac,ga786bb30fb+7a139211af,gaa63f70f4e+9994eb9896,gabf319e997+ade567573c,gba47b54d5d+94dc90c3ea,gbec6a3398f+06cf436103,gc6308e37c7+07dd123edb,gc655b1545f+ade567573c,gcc9029db3c+ab229f5caf,gd01420fc67+06cf436103,gd877ba84e5+06cf436103,gdb4cecd868+6f279b5b48,ge2d134c3d5+cc4dbb2e3f,ge448b5faa6+86d1ceac1d,gecc7e12556+98f8679e14,gf3ee170dca+25247a063c,gf4ac96e456+ade567573c,gf9f5ea5b4d+ac198e9f13,gff490e6085+8c2580be5c,w.2022.27
LSST Data Management Base Package
|
Classes | |
class | MakeCoaddTempExpConfig |
class | MakeCoaddTempExpTask |
Warp and optionally PSF-Match calexps onto an a common projection. More... | |
class | MakeWarpConnections |
class | MissingExposureError |
Variables | |
log = logging.getLogger(__name__) | |
bgSubtracted | |
doApplySkyCorr | |
doApplyExternalSkyWcs | |
doApplyExternalPhotoCalib | |
doApplyFinalizedPsf | |
lsst.pipe.tasks.makeCoaddTempExp.bgSubtracted |
ConfigClass = MakeWarpConfig _DefaultName = "makeWarp" @utils.inheritDoc(pipeBase.PipelineTask) def runQuantum(self, butlerQC, inputRefs, outputRefs):
# Obtain the list of input detectors from calExpList. Sort them by # detector order (to ensure reproducibility). Then ensure all input # lists are in the same sorted detector order. detectorOrder = [ref.datasetRef.dataId['detector'] for ref in inputRefs.calExpList] detectorOrder.sort() inputRefs = reorderRefs(inputRefs, detectorOrder, dataIdKey='detector') # Read in all inputs. inputs = butlerQC.get(inputRefs) # Construct skyInfo expected by `run`. We remove the SkyMap itself # from the dictionary so we can pass it as kwargs later. skyMap = inputs.pop("skyMap") quantumDataId = butlerQC.quantum.dataId skyInfo = makeSkyInfo(skyMap, tractId=quantumDataId['tract'], patchId=quantumDataId['patch']) # Construct list of input DataIds expected by `run` dataIdList = [ref.datasetRef.dataId for ref in inputRefs.calExpList] # Construct list of packed integer IDs expected by `run` ccdIdList = [dataId.pack("visit_detector") for dataId in dataIdList] # Run the selector and filter out calexps that were not selected # primarily because they do not overlap the patch cornerPosList = lsst.geom.Box2D(skyInfo.bbox).getCorners() coordList = [skyInfo.wcs.pixelToSky(pos) for pos in cornerPosList] goodIndices = self.select.run(**inputs, coordList=coordList, dataIds=dataIdList) inputs = self.filterInputs(indices=goodIndices, inputs=inputs) # Read from disk only the selected calexps inputs['calExpList'] = [ref.get() for ref in inputs['calExpList']] # Extract integer visitId requested by `run` visits = [dataId['visit'] for dataId in dataIdList] visitId = visits[0] if self.config.doApplyExternalSkyWcs: if self.config.useGlobalExternalSkyWcs: externalSkyWcsCatalog = inputs.pop("externalSkyWcsGlobalCatalog") else: externalSkyWcsCatalog = inputs.pop("externalSkyWcsTractCatalog") else: externalSkyWcsCatalog = None if self.config.doApplyExternalPhotoCalib: if self.config.useGlobalExternalPhotoCalib: externalPhotoCalibCatalog = inputs.pop("externalPhotoCalibGlobalCatalog") else: externalPhotoCalibCatalog = inputs.pop("externalPhotoCalibTractCatalog") else: externalPhotoCalibCatalog = None if self.config.doApplyFinalizedPsf: finalizedPsfApCorrCatalog = inputs.pop("finalizedPsfApCorrCatalog") else: finalizedPsfApCorrCatalog = None completeIndices = self.prepareCalibratedExposures(**inputs, externalSkyWcsCatalog=externalSkyWcsCatalog, externalPhotoCalibCatalog=externalPhotoCalibCatalog, finalizedPsfApCorrCatalog=finalizedPsfApCorrCatalog) # Redo the input selection with inputs with complete wcs/photocalib info. inputs = self.filterInputs(indices=completeIndices, inputs=inputs) results = self.run(**inputs, visitId=visitId, ccdIdList=[ccdIdList[i] for i in goodIndices], dataIdList=[dataIdList[i] for i in goodIndices], skyInfo=skyInfo) if self.config.makeDirect and results.exposures["direct"] is not None: butlerQC.put(results.exposures["direct"], outputRefs.direct) if self.config.makePsfMatched and results.exposures["psfMatched"] is not None: butlerQC.put(results.exposures["psfMatched"], outputRefs.psfMatched) def filterInputs(self, indices, inputs):
for key in inputs.keys(): # Only down-select on list inputs if isinstance(inputs[key], list): inputs[key] = [inputs[key][ind] for ind in indices] return inputs def prepareCalibratedExposures(self, calExpList, backgroundList=None, skyCorrList=None, externalSkyWcsCatalog=None, externalPhotoCalibCatalog=None, finalizedPsfApCorrCatalog=None, **kwargs):
Definition at line 612 of file makeCoaddTempExp.py.
lsst.pipe.tasks.makeCoaddTempExp.doApplyExternalPhotoCalib |
Definition at line 878 of file makeCoaddTempExp.py.
lsst.pipe.tasks.makeCoaddTempExp.doApplyExternalSkyWcs |
Definition at line 874 of file makeCoaddTempExp.py.
lsst.pipe.tasks.makeCoaddTempExp.doApplyFinalizedPsf |
Definition at line 882 of file makeCoaddTempExp.py.
lsst.pipe.tasks.makeCoaddTempExp.doApplySkyCorr |
Definition at line 871 of file makeCoaddTempExp.py.
lsst.pipe.tasks.makeCoaddTempExp.log = logging.getLogger(__name__) |
Definition at line 44 of file makeCoaddTempExp.py.