LSST Applications g0000d66e7c+4a51730b0a,g0485b4d2cb+be65c9c1d7,g0fba68d861+f95c35e0c3,g1ec0fe41b4+3ea9d11450,g1fd858c14a+41d169aaf2,g2440f9efcc+8c5ae1fdc5,g35bb328faa+8c5ae1fdc5,g4d2262a081+30937b6477,g53246c7159+8c5ae1fdc5,g55585698de+c657de43f9,g56a49b3a55+7eddd92ad8,g60b5630c4e+c657de43f9,g67b6fd64d1+97cc007aa2,g78460c75b0+7e33a9eb6d,g786e29fd12+668abc6043,g7ac00fbb6c+9304e3655a,g8352419a5c+8c5ae1fdc5,g8852436030+3f3bba821f,g89139ef638+97cc007aa2,g94187f82dc+c657de43f9,g989de1cb63+97cc007aa2,g9d31334357+c657de43f9,g9f33ca652e+06d39d8afb,ga815be3f0b+8e7c4d07ad,gabe3b4be73+8856018cbb,gabf8522325+977d9fabaf,gb1101e3267+12c96a40b1,gb89ab40317+97cc007aa2,gc91f06edcd+2ffb87f22b,gcf25f946ba+3f3bba821f,gd6cbbdb0b4+1cc2750d2e,gde0f65d7ad+bbe98f05bf,ge278dab8ac+6b863515ed,ge410e46f29+97cc007aa2,gf35d7ec915+97dd712d81,gf5e32f922b+8c5ae1fdc5,gf67bdafdda+97cc007aa2,gf6800124b1+bb7d8e732a,w.2025.19
LSST Data Management Base Package
|
Classes | |
class | BaseExposureInfo |
class | BaseSelectImagesTask |
class | BestSeeingSelectVisitsConnections |
class | DatabaseSelectImagesConfig |
class | PsfWcsSelectImagesConnections |
class | PsfWcsSelectImagesTask |
class | SelectStruct |
class | WcsSelectImagesTask |
Functions | |
_extractKeyValue (dataList, keys=None) | |
validate (self) | |
Variables | |
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 110 of file selectImages.py.
lsst.pipe.tasks.selectImages.validate | ( | self | ) |
Definition at line 305 of file selectImages.py.
lsst.pipe.tasks.selectImages.dataId : `dict` of dataId keys |
Definition at line 624 of file selectImages.py.
lsst.pipe.tasks.selectImages.minNPsfStarPerBand |
Definition at line 307 of file selectImages.py.
lsst.pipe.tasks.selectImages.result : `lsst.sphgeom.ConvexPolygon.convexHull` |
Definition at line 629 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 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 622 of file selectImages.py.