IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 11, 2015, 11:08:06 AM (11 years ago)
Author:
eugene
Message:

use Ohana / fhead to read headers (ex PHU) so we avoid seek problems, etc; merge reading of exptime, zp, zperr, ninjected, magerf into the init methods of diff and stack batches

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippToPsps/jython/stackbatch.py

    r39101 r39103  
    6565       self.md5sum = {}
    6666       self.stackEpochs = {}
     67       self.expTime = {}
     68       self.zpImage = {}
     69       self.zpError = {}
     70       self.magref = {}
     71       self.nInjected = {}
    6772
    6873       # we have two sets of imageIDs here:
     
    116121
    117122           self.stackEpochs[filter] = self.getKeyFloat(header, "%.10f", 'MJD-OBS')
     123
     124           self.expTime[filter] = self.getKeyFloat(header, "%.8f", 'EXPTIME')
     125           self.zpImage[filter] = self.getKeyFloat(header, "%.8f", 'ZPT_OBS')
     126           self.zpError[filter] = self.getKeyFloat(header, "%.8f", 'ZPT_ERR')
     127
     128           deteffHeader = self.fits[filter].findAndReadHeader("SkyChip.deteff", self.config.test)
     129           if not deteffHeader:
     130               if self.config.test: self.logger.errorPair("No header found for Skychip.deteff for", filter)
     131               return False
     132
     133           self.magref[filter] = self.getKeyFloat(deteffHeader, "%.8f", 'DETEFF.MAGREF')
     134           self.nInjected[filter] = int(self.getKeyInt(deteffHeader, 0, 'DETEFF.NUM'))
    118135
    119136           ## MEH -- md5sum test
     
    268285       
    269286        # Convert detectionThreshold to appropriate magnitudes
    270         # Grab this from the appropriate extension.
    271 
    272 # CZW 20151110 This is broken.
    273 #        deteffHeader = self.fits[filter].findAndReadHeader("SkyChip.deteff", self.config.test)
    274 #        if not deteffHeader:
    275 #            if self.config.test: self.logger.errorPair("No header found for Skychip.deteff for", filter)
    276 #            return False
    277 # CZW This is the workaround
    278 
    279         deteffHeader = header
    280         detectionThreshold = self.getKeyFloat(deteffHeader, "%.8f", 'DETEFF.MAGREF')
    281         expTime = self.getKeyFloat(header, "%.8f", 'EXPTIME')
    282         zp      = self.getKeyFloat(header, "%.8f", 'ZPT_OBS')
    283         zpErr   = self.getKeyFloat(header, "%.8f", 'ZPT_ERR')
     287        magref  = self.magref[filter]
     288        expTime = self.expTime[filter]
     289        zp      = self.zpImage[filter]
     290        zpErr   = self.zpError[filter]
    284291
    285292        # zp correction should comes from DVO (unless image is not in DVO)
     
    288295            zpImage = zp
    289296
    290         detectionThreshold = detectionThreshold + zpImage + 2.5 * math.log10(expTime)
    291        
     297        detectionThreshold = magref + zpImage + 2.5 * math.log10(expTime)
     298
    292299        # insert stack metadata into table
    293300        sqlLine = sqlUtility("INSERT INTO " + tablename + " (")
     
    305312        sqlLine.group("md5sum",             str(self.md5sum[filter]))
    306313        sqlLine.group("detectionThreshold", detectionThreshold)
    307         sqlLine.group("expTime",            self.getKeyFloat(header, "%.5f", 'EXPTIME')) 
     314        sqlLine.group("expTime",            expTime)
    308315        sqlLine.group("psfModelID",         psfmodelID)           
    309316        sqlLine.group("psfFWHM",            psfFWHM)
     
    481488
    482489            header = self.headerSet[filter]
    483             exptime = self.getKeyFloat(header, "%.5f", "EXPTIME")
     490            exptime = self.expTime[filter]
    484491            expTimeString = str(exptime)
    485492
     
    850857        ## XXX is this statement true: is FPA.ZP + 2.5log(exptime) applied to PETRO_MAG?
    851858
    852         hdrZP   = "%.5f" % float(header['FPA.ZP'])
    853         magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME'])))
     859        hdrZP   = str(self.zpImage[filter])
     860        # magtime = "%.5f" % (2.5*math.log10(self.expTime[filter]))
    854861
    855862        # XXX hard-wired platescale : 0.25 (could get this from header, but stacks have constant plate scale
     
    11351142               
    11361143                field = "EXP_%04d" % input
    1137                 expTime = self.getKeyFloat(header, "%6.3f", field)
     1144                expTime = self.getKeyFloat(header, "%6.3f", field) # exptime of INPUT image, not stack
    11381145               
    11391146                field = "AIR_%04d" % input
     
    11831190            except: pass
    11841191
    1185 
    1186             header = self.headerSet[filter]
    1187 
    11881192            # Convert detectionThreshold to appropriate magnitudes
    1189             # Grab this from the appropriate extension.
    1190 # CZW 20151110 This is broken.
    1191 #            deteffHeader = self.fits[filter].findAndReadHeader("SkyChip.deteff", self.config.test)
    1192 #            if not deteffHeader:
    1193 #                if self.config.test: self.logger.errorPair("No header found for Skychip.deteff for", filter)
    1194 #                return False
    1195 # CZW This is the workaround
    1196            
    1197             deteffHeader = header
    1198             detectionThreshold = self.getKeyFloat(deteffHeader, "%.8f", 'DETEFF.MAGREF')
    1199             expTime = self.getKeyFloat(header, "%.8f", 'EXPTIME')
    1200             zp      = self.getKeyFloat(header, "%.8f", 'ZPT_OBS')
    1201             zpErr   = self.getKeyFloat(header, "%.8f", 'ZPT_ERR')
    1202 
    1203         # zp correction should comes from DVO (unless image is not in DVO)
    1204             zpImage = self.scratchDb.getImageZeroPoint(stackID)
     1193            magref  = self.magref[filter]
     1194            expTime = self.expTime[filter]
     1195            zp      = self.zpImage[filter]
     1196            zpErr   = self.zpError[filter]
     1197
     1198            # zp correction should comes from DVO (unless image is not in DVO)
     1199            zpImage = self.scratchDb.getImageZeroPoint(stackImageID)
    12051200            if zpImage < 0.0:
    12061201                zpImage = zp
    12071202
    1208             detectionThreshold = detectionThreshold + zpImage + 2.5 * math.log10(expTime)
    1209             nInjected = int(self.getKeyInt(deteffHeader, 0, 'DETEFF.NUM'))
    1210 
    1211             zpImage = self.scratchDb.getImageZeroPoint(stackImageID)
    1212             if zpImage < 0.0:
    1213                 zpImage = 0.0
    1214             magref = self.getKeyFloat(header,"%.8f","DETEFF.MAGREF") + zpImage
     1203            detectionThreshold = magref + zpImage + 2.5 * math.log10(expTime)
     1204            nInjected = self.nInjected[filter]
    12151205
    12161206            sqlLine = sqlUtility("INSERT INTO " + ippTableName + "(")
    12171207            sqlLine.group("stackImageID", str(stackImageID))
    1218             sqlLine.group("magref",       magref)
     1208            sqlLine.group("magref",       detectionThreshold)
    12191209            sqlLine.group("nInjected",    nInjected)
    12201210            sql = sqlLine.make(") VALUES ( ", ")")
    1221            
    12221211
    12231212            try: self.scratchDb.execute(sql)
Note: See TracChangeset for help on using the changeset viewer.