예제 #1
0
    def alignImage(self, srcDir, imgName, tmplParms):

        starttime = datetime.now()

        files = tmplParms[1]
        templateImg = files[0][0]  #self.tmplAlignDir

        isSuccess = False
        imgpre = imgName.split(".")[0]
        os.system("rm -rf %s/*" % (self.tmpAlign))
        objectImg = 'oi.fit'
        objectCat = 'oi.cat'
        ttmplCat = 'ti.cat'

        oImgf = "%s/%s.fit" % (srcDir, imgpre)
        oImgfz = "%s/%s.fit.fz" % (srcDir, imgpre)
        if os.path.exists(oImgf):
            os.system("cp %s/%s.fit %s/%s" %
                      (srcDir, imgpre, self.tmpAlign, objectImg))
        elif os.path.exists(oImgfz):
            os.system("cp %s/%s.fit.fz %s/%s.fz" %
                      (srcDir, imgpre, self.tmpAlign, objectImg))
            os.system("%s %s/%s.fz" %
                      (self.funpackProgram, self.tmpAlign, objectImg))
        else:
            self.log.warning("%s not exist" % (oImgf))

        #skyName, ra,dec = self.tools.removeHeaderAndOverScan(self.tmpAlign,objectImg)
        skyName, ra, dec = 'sky001', 0, 0

        #if templateImg==imgName:

        os.system("cp %s/%s.cat %s/%s" %
                  (self.catDir, imgpre, self.tmpAlign, objectCat))
        os.system("cp %s/%s.cat %s/%s" %
                  (self.tmplAlignDir, templateImg.split(".")[0], self.tmpAlign,
                   ttmplCat))
        alignRst = doAll(self.tmpAlign, ttmplCat, self.tmpAlign, objectCat,
                         self.tmpAlign, objectImg, self.alignDir, imgName,
                         templateImg)
        if alignRst[0] > 0:
            #print("totalMatchNum, xshift,yshift, xrotation, yrotation, blindStarNum, mchRatios")
            totalMatchNum, xshift, yshift, xrotation, yrotation, blindStarNum, mchRatios = alignRst
            print("alignImage: %s, xshift=%f,yshift=%f" %
                  (imgName, xshift, yshift))
            self.log.info(alignRst)
            isSuccess = True

        endtime = datetime.now()
        runTime = (endtime - starttime).seconds
        self.log.info("********** alignImage %s use %d seconds" %
                      (imgName, runTime))
        return isSuccess
예제 #2
0
    def alignImage(self, srcDir, imgName, tmplParms):

        starttime = datetime.now()

        files = tmplParms[1]
        templateImg = files[0][0]  #self.tmplAlignDir

        isSuccess = False
        imgpre = imgName.split(".")[0]
        os.system("rm -rf %s/*" % (self.tmpAlign))
        objectImg = 'oi.fit'
        objectCat = 'oi.cat'
        ttmplCat = 'ti.cat'

        oImgf = "%s/%s.fit" % (srcDir, imgpre)
        oImgfz = "%s/%s.fit.fz" % (srcDir, imgpre)
        if os.path.exists(oImgf):
            os.system("cp %s/%s.fit %s/%s" %
                      (srcDir, imgpre, self.tmpAlign, objectImg))
        elif os.path.exists(oImgfz):
            os.system("cp %s/%s.fit.fz %s/%s.fz" %
                      (srcDir, imgpre, self.tmpAlign, objectImg))
            os.system("%s %s/%s.fz" %
                      (self.funpackProgram, self.tmpAlign, objectImg))
        else:
            self.log.warning("%s not exist" % (oImgf))

        skyName, ra, dec = self.tools.removeHeaderAndOverScan(
            self.tmpAlign, objectImg)

        #if templateImg==imgName:

        os.system("cp %s/%s.cat %s/%s" %
                  (self.catDir, imgpre, self.tmpAlign, objectCat))
        os.system("cp %s/%s.cat %s/%s" %
                  (self.tmplAlignDir, templateImg.split(".")[0], self.tmpAlign,
                   ttmplCat))
        alignRst = doAll(self.tmpAlign, ttmplCat, self.tmpAlign, objectCat,
                         self.tmpAlign, objectImg, self.alignDir, imgName,
                         templateImg)

        alignImgName = "%s_align.fit" % (imgpre)

        t2oX, t2oY = [], []
        if alignRst[0] > 0:
            #print("totalMatchNum, xshift,yshift, xrotation, yrotation, blindStarNum, mchRatios")
            totalMatchNum, xshift,yshift, xrotation, yrotation, blindStarNum, mchRatios, \
            oiStarJoinNum,tiStarJoinNum, otMchNum, xshift2,yshift2, xrms2, yrms2, t2oX, t2oY= alignRst
            print("alignImage: %s, xshift=%f,yshift=%f" %
                  (imgName, xshift, yshift))
            alignRst = alignRst[:-2].copy()
            alignRst.append(imgName)
            alignRst.append(templateImg)
            alignRst.append('imageAlignParmsForDebug')
            self.log.info(alignRst)
            if mchRatios > 80.0:
                isSuccess = True
                sexConf = [
                    '-DETECT_MINAREA', '3', '-DETECT_THRESH', '2.5',
                    '-ANALYSIS_THRESH', '2.5'
                ]
                fpar = 'sex_diff.par'
                self.tools.runSextractor(alignImgName, self.alignDir,
                                         self.alignDir, fpar, sexConf)

        if not isSuccess:
            alignImgName = "%s/%s_align.fit" % (self.alignDir, imgpre)
            os.system("rm -rf %s" % (alignImgName))
            alignImgName = "%s/%s.cat" % (self.catDir, imgpre)
            os.system("rm -rf %s" % (alignImgName))

        endtime = datetime.now()
        runTime = (endtime - starttime).seconds
        self.log.info("********** alignImage %s use %d seconds" %
                      (imgName, runTime))
        return isSuccess, t2oX, t2oY