示例#1
0
    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)
示例#2
0
    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"))