def getPsfImage(self): """Estimate the PSF""" starSelectorName = "secondMoment" psfDeterminerName = "pca" starSelectorClass = measAlg.starSelectorRegistry.get(starSelectorName) starSelectorConfig = starSelectorClass.ConfigClass() starSelector = starSelectorClass(starSelectorConfig) psfDeterminerClass = measAlg.psfDeterminerRegistry.get(psfDeterminerName) psfDeterminerConfig = psfDeterminerClass.ConfigClass() psfDeterminer = psfDeterminerClass(psfDeterminerConfig) psfCandidateList = starSelector.selectStars(self.exposure, self.sourceList) metadata = dafBase.propertyList() self.psf, self.psfCellSet = psfDeterminer.determinePsf(self.exposure, psfCandidateList, metadata) print "Used %d PSF stars (%d good)" % (metadata.get("numAvailStars"), metadata.get("numGoodStars")) if not self.display: return maUtils.showPsf(psf, frame=5) maUtils.showPsfMosaic(self.exposure, self.psf, frame=6)
def apertureCorrection(self): apCorrConfig = measAlg.ApertureCorrection.ConfigClass() apCorrConfig.order = 0 apCorrConfig.alg2 = "SINC" apCorrConfig.rad2 = 9 self.log.setThreshold(self.log.WARN) metadata = dafBase.propertyList() ac = measAlg.ApertureCorrection(self.exposure, self.psfCellSet, metadata, apCorrConfig, self.log) self.log.setThreshold(self.log.INFO) if True: for s in self.sourceList: x, y = s.getXAstrom(), s.getYAstrom() acVal, acErr = ac.computeAt(x, y) self.log.log(self.log.INFO, "Aperture Corr'n: %7.2f %7.2f %5.4f +/- %5.4f" % (x, y, acVal, acErr)) print "Used %d apCorr stars (%d good)" % (metadata.get("numAvailStars"), metadata.get("numGoodStars"))