LSST Applications g042eb84c57+730a74494b,g04e9c324dd+8c5ae1fdc5,g134cb467dc+1f1e3e7524,g199a45376c+0ba108daf9,g1fd858c14a+fa7d31856b,g210f2d0738+f66ac109ec,g262e1987ae+83a3acc0e5,g29ae962dfc+d856a2cb1f,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+a1e0c9f713,g47891489e3+0d594cb711,g4d44eb3520+c57ec8f3ed,g4d7b6aa1c5+f66ac109ec,g53246c7159+8c5ae1fdc5,g56a1a4eaf3+fd7ad03fde,g64539dfbff+f66ac109ec,g67b6fd64d1+0d594cb711,g67fd3c3899+f66ac109ec,g6985122a63+0d594cb711,g74acd417e5+3098891321,g786e29fd12+668abc6043,g81db2e9a8d+98e2ab9f28,g87389fa792+8856018cbb,g89139ef638+0d594cb711,g8d7436a09f+80fda9ce03,g8ea07a8fe4+760ca7c3fc,g90f42f885a+033b1d468d,g97be763408+a8a29bda4b,g99822b682c+e3ec3c61f9,g9d5c6a246b+0d5dac0c3d,ga41d0fce20+9243b26dd2,gbf99507273+8c5ae1fdc5,gd7ef33dd92+0d594cb711,gdab6d2f7ff+3098891321,ge410e46f29+0d594cb711,geaed405ab2+c4bbc419c6,gf9a733ac38+8c5ae1fdc5,w.2025.38
LSST Data Management Base Package
|
Classes | |
class | BaseExposureInfo |
class | BaseSelectImagesTask |
class | BestSeeingSelectVisitsConnections |
class | DatabaseSelectImagesConfig |
class | PsfWcsSelectImagesConnections |
class | PsfWcsSelectImagesTask |
class | SelectStruct |
class | WcsSelectImagesConfig |
class | WcsSelectImagesTask |
Functions | |
_meetsVisitSummaryMinValues (visit, visitSummary, visitSummaryMinValues, logger=None) | |
_extractKeyValue (dataList, keys=None) | |
validate (self) | |
Variables | |
excludeDetectors | |
skyMap : `lsst.afw.table.ExposureCatalog` | |
dataId : `dict` of dataId keys | |
result : `lsst.sphgeom.ConvexPolygon.convexHull` | |
minNPsfStarPerBand | |
|
protected |
Extract the keys and values from a list of dataIds. The input dataList is a list of objects that have 'dataId' members. This allows it to be used for both a list of data references and a list of ExposureInfo. Parameters ---------- dataList : `Unknown` keys : `Unknown` Returns ------- keys : `Unknown` values : `Unknown` Raises ------ RuntimeError Raised if DataId keys are inconsistent.
Definition at line 142 of file selectImages.py.
|
protected |
Check if the visitSummary meets minimum values in visitSummaryMinValues. Parameters ---------- visit : `int` Visit number. visitSummary : `lsst.afw.table.ExposureCatalog` Exposure catalog with per-detector summary information. visitSummaryMinValues : `dict` Dictionary with column names as keys and minimum allowed values as values. logger : `lsst.log.Logger` Logger to log debug and warning messages. Returns ------- result : `bool` True if all columns in visitSummary meet the minimum values specified in visitSummaryMinValues, False otherwise.
Definition at line 37 of file selectImages.py.
lsst.pipe.tasks.selectImages.validate | ( | self | ) |
Definition at line 358 of file selectImages.py.
lsst.pipe.tasks.selectImages.dataId : `dict` of dataId keys |
Definition at line 689 of file selectImages.py.
lsst.pipe.tasks.selectImages.excludeDetectors |
Definition at line 351 of file selectImages.py.
lsst.pipe.tasks.selectImages.minNPsfStarPerBand |
Definition at line 360 of file selectImages.py.
lsst.pipe.tasks.selectImages.result : `lsst.sphgeom.ConvexPolygon.convexHull` |
Definition at line 694 of file selectImages.py.
lsst.pipe.tasks.selectImages.skyMap : `lsst.afw.table.ExposureCatalog` |
if self.config.doConfirmOverlap: patchPolygon = self.makePatchPolygon(skyMap, dataId) inputVisits = [visitSummary.ref.dataId['visit'] for visitSummary in visitSummaries] fwhmSizes = [] visits = [] for visit, visitSummary in zip(inputVisits, visitSummaries): # read in one-by-one and only once. There may be hundreds visitSummary = visitSummary.get() # mjd is guaranteed to be the same for every detector in the # visitSummary. mjd = visitSummary[0].getVisitInfo().getDate().get(system=DateTime.MJD) pixelScales = np.array([vs['pixelScale'] for vs in visitSummary if vs.getWcs()]) # psfSigma is PSF model determinant radius at chip center in pixels psfSigmas = np.array([vs['psfSigma'] for vs in visitSummary if vs.getWcs()]) fwhm = np.nanmean(psfSigmas * pixelScales) * np.sqrt(8.*np.log(2.)) if self.config.maxPsfFwhm and fwhm > self.config.maxPsfFwhm: continue if self.config.minPsfFwhm and fwhm < self.config.minPsfFwhm: continue if self.config.minMJD and mjd < self.config.minMJD: self.log.debug('MJD %f earlier than %.2f; rejecting', mjd, self.config.minMJD) continue if self.config.maxMJD and mjd > self.config.maxMJD: self.log.debug('MJD %f later than %.2f; rejecting', mjd, self.config.maxMJD) continue if self.config.doConfirmOverlap and not self.doesIntersectPolygon(visitSummary, patchPolygon): continue if (self.config.visitSummaryMinValues and not _meetsVisitSummaryMinValues(visit, visitSummary, self.config.visitSummaryMinValues, self.log)): continue fwhmSizes.append(fwhm) visits.append(visit) sortedVisits = [ind for (_, ind) in sorted(zip(fwhmSizes, visits))] if self.config.nVisitsMax < 0: output = sortedVisits else: output = sortedVisits[:self.config.nVisitsMax] if len(output) == 0: self.log.info("All images rejected in BestSeeingSelectVisitsTask.") raise pipeBase.NoWorkFound(f"No good images found for {dataId}") else: self.log.info( "%d images selected with FWHM range of %f--%f arcseconds", len(output), fwhmSizes[visits.index(output[0])], fwhmSizes[visits.index(output[-1])], ) # In order to store as a StructuredDataDict, convert list to dict goodVisits = {key: True for key in output} return pipeBase.Struct(goodVisits=goodVisits) def makePatchPolygon(self, skyMap, dataId):
Definition at line 687 of file selectImages.py.