IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 26, 2012, 5:15:52 PM (14 years ago)
Author:
heather
Message:

schema change sa10

File:
1 edited

Legend:

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

    r34441 r34615  
    8989       self.scratchDb.dropTable("SkinnyObject")
    9090       self.scratchDb.dropTable("ObjectCalColor")
     91       self.scratchDb.dropTable("StackDetectionCalib")
    9192
    9293       # delete IPP tables
     
    140141
    141142        sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET \
    142         "+prefix+"flxR1=b.APER_FLUX_1, \
    143         "+prefix+"flxR1Err=b.APER_FLUX_ERR_1, \
    144         "+prefix+"flxR1Std=b.APER_FLUX_STDEV_1, \
     143        "+prefix+"flxR1=b.APER_FLUX_1 / " + str(self.expTime) + ", \
     144        "+prefix+"flxR1Err=b.APER_FLUX_ERR_1 / " + str(self.expTime) + ", \
     145        "+prefix+"flxR1Std=b.APER_FLUX_STDEV_1 / " + str(self.expTime) + ", \
    145146        "+prefix+"flxR1Fill=b.APER_FILL_1, \
    146         "+prefix+"flxR2=b.APER_FLUX_2, \
    147         "+prefix+"flxR2Err=b.APER_FLUX_ERR_2, \
    148         "+prefix+"flxR2Std=b.APER_FLUX_STDEV_2, \
     147        "+prefix+"flxR2=b.APER_FLUX_2 / " + str(self.expTime) + ", \
     148        "+prefix+"flxR2Err=b.APER_FLUX_ERR_2 / " + str(self.expTime) + ", \
     149        "+prefix+"flxR2Std=b.APER_FLUX_STDEV_2 / " + str(self.expTime) + ", \
    149150        "+prefix+"flxR2Fill=b.APER_FILL_2, \
    150         "+prefix+"flxR3=b.APER_FLUX_3, \
    151         "+prefix+"flxR3Err=b.APER_FLUX_ERR_3, \
    152         "+prefix+"flxR3Std=b.APER_FLUX_STDEV_3, \
     151        "+prefix+"flxR3=b.APER_FLUX_3 / " + str(self.expTime) + ", \
     152        "+prefix+"flxR3Err=b.APER_FLUX_ERR_3 / " + str(self.expTime) + ", \
     153        "+prefix+"flxR3Std=b.APER_FLUX_STDEV_3 / " + str(self.expTime) + ", \
    153154        "+prefix+"flxR3Fill=b.APER_FILL_3, \
    154         "+prefix+"flxR4=b.APER_FLUX_4, \
    155         "+prefix+"flxR4Err=b.APER_FLUX_ERR_4, \
    156         "+prefix+"flxR4Std=b.APER_FLUX_STDEV_4, \
     155        "+prefix+"flxR4=b.APER_FLUX_4 / " + str(self.expTime) + ", \
     156        "+prefix+"flxR4Err=b.APER_FLUX_ERR_4 / " + str(self.expTime) + ", \
     157        "+prefix+"flxR4Std=b.APER_FLUX_STDEV_4 / " + str(self.expTime) + ", \
    157158        "+prefix+"flxR4Fill=b.APER_FILL_4, \
    158         "+prefix+"flxR5=b.APER_FLUX_5, \
    159         "+prefix+"flxR5Err=b.APER_FLUX_ERR_5, \
    160         "+prefix+"flxR5Std=b.APER_FLUX_STDEV_5, \
     159        "+prefix+"flxR5=b.APER_FLUX_5 / " + str(self.expTime) + ", \
     160        "+prefix+"flxR5Err=b.APER_FLUX_ERR_5 / " + str(self.expTime) + ", \
     161        "+prefix+"flxR5Std=b.APER_FLUX_STDEV_5 / " + str(self.expTime) + ", \
    161162        "+prefix+"flxR5Fill=b.APER_FILL_5, \
    162         "+prefix+"flxR6=b.APER_FLUX_6, \
    163         "+prefix+"flxR6Err=b.APER_FLUX_ERR_6, \
    164         "+prefix+"flxR6Std=b.APER_FLUX_STDEV_6, \
     163        "+prefix+"flxR6=b.APER_FLUX_6 / " + str(self.expTime) + ", \
     164        "+prefix+"flxR6Err=b.APER_FLUX_ERR_6 / " + str(self.expTime) + ", \
     165        "+prefix+"flxR6Std=b.APER_FLUX_STDEV_6 / " + str(self.expTime) + ", \
    165166        "+prefix+"flxR6Fill=b.APER_FILL_6, \
    166         "+prefix+"flxR7=b.APER_FLUX_7, \
    167         "+prefix+"flxR7Err=b.APER_FLUX_ERR_7, \
    168         "+prefix+"flxR7Std=b.APER_FLUX_STDEV_7, \
     167        "+prefix+"flxR7=b.APER_FLUX_7 / " + str(self.expTime) + ", \
     168        "+prefix+"flxR7Err=b.APER_FLUX_ERR_7 / " + str(self.expTime) + ", \
     169        "+prefix+"flxR7Std=b.APER_FLUX_STDEV_7 / " + str(self.expTime) + ", \
    169170        "+prefix+"flxR7Fill=b.APER_FILL_7, \
    170         "+prefix+"flxR8=b.APER_FLUX_8, \
    171         "+prefix+"flxR8Err=b.APER_FLUX_ERR_8, \
    172         "+prefix+"flxR8Std=b.APER_FLUX_STDEV_8, \
     171        "+prefix+"flxR8=b.APER_FLUX_8 / " + str(self.expTime) + ", \
     172        "+prefix+"flxR8Err=b.APER_FLUX_ERR_8 / " + str(self.expTime) + ", \
     173        "+prefix+"flxR8Std=b.APER_FLUX_STDEV_8 / " + str(self.expTime) + ", \
    173174        "+prefix+"flxR8Fill=b.APER_FILL_8, \
    174         "+prefix+"flxR9=b.APER_FLUX_9, \
    175         "+prefix+"flxR9Err=b.APER_FLUX_ERR_9, \
    176         "+prefix+"flxR9Std=b.APER_FLUX_STDEV_9, \
     175        "+prefix+"flxR9=b.APER_FLUX_9 / " + str(self.expTime) + ", \
     176        "+prefix+"flxR9Err=b.APER_FLUX_ERR_9 / " + str(self.expTime) + ", \
     177        "+prefix+"flxR9Std=b.APER_FLUX_STDEV_9 / " + str(self.expTime) + ", \
    177178        "+prefix+"flxR9Fill=b.APER_FILL_9, \
    178         "+prefix+"flxR10=b.APER_FLUX_10, \
    179         "+prefix+"flxR10Err=b.APER_FLUX_ERR_10, \
    180         "+prefix+"flxR10Std=b.APER_FLUX_STDEV_10, \
     179        "+prefix+"flxR10=b.APER_FLUX_10 / " + str(self.expTime) + ", \
     180        "+prefix+"flxR10Err=b.APER_FLUX_ERR_10 / " + str(self.expTime) + ", \
     181        "+prefix+"flxR10Std=b.APER_FLUX_STDEV_10 / " + str(self.expTime) + ", \
    181182        "+prefix+"flxR10Fill=b.APER_FILL_10 \
    182183        WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition
     
    196197        sql = "UPDATE StackModelFit AS a, SkyChip_xfit AS b SET \
    197198        "+model+"Radius=b.EXT_WIDTH_MAJ,  \
    198         "+model+"Mag=b.EXT_INST_MAG,  \
    199         "+model+"MagErr=b.EXT_INST_MAG_SIG,  \
     199        "+model+"Flux=b.EXT_INST_MAG,  \
     200        "+model+"FluxErr=b.EXT_INST_MAG_SIG,  \
    200201        "+model+"Ab=b.EXT_WIDTH_MAJ/b.EXT_WIDTH_MIN, \
    201202        "+model+"Phi=b.EXT_THETA,  \
     
    229230        "+modelLong+"Covar77=b.EXT_COVAR_06_06   \
    230231        WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'"
     232
     233        #SA10 convert mag to flux in calculation above
    231234
    232235        self.scratchDb.execute(sql)
     
    319322               ,skyCellID \
    320323               ,projectionCellID \
    321                ,obsTime \
    322324               ,xPos \
    323325               ,yPos \
    324326               ,xPosErr \
    325327               ,yPosErr \
    326                ,instFlux \
    327                ,instFluxErr \
     328               ,psfFlux \
     329               ,psfFluxErr \
    328330               ,peakFlux \
    329331               ,sky \
     
    335337               ,psfLikelihood \
    336338               ,infoFlag \
    337                ,psfCf \
     339               ,psfQf \
     340               ,psfQfPerfect \
    338341               ,momentXX \
    339342               ,momentXY \
     
    345348               ,momentR1 \
    346349               ,momentRH \
    347                ,apMag \
    348                ,apMagErr \
     350               ,apFlux \
     351               ,apFluxErr \
    349352               ,kronFlux \
    350353               ,kronFluxErr \
    351354               ,kronRad \
    352                ,kronRadErr \
     355               ,psfChiSq \
    353356               ,nFrames \
    354357               ,assocDate \
     
    359362               ," + self.skycell + " \
    360363               ," + self.projectioncell + " \
    361                ," + self.header['MJD-OBS'] + " \
    362364               ,X_PSF \
    363365               ,Y_PSF \
     
    374376               ,PSF_THETA \
    375377               ,psfLikelihood(EXT_NSIGMA) \
    376                ,FLAGS2 << 32 | FLAGS \
     378               , FLAGS2 << 32 | FLAGS \
    377379               ,PSF_QF \
     380               ,PSF_QF_PERFECT \
    378381               ,MOMENTS_XX \
    379382               ,MOMENTS_XY \
     
    389392               ,KRON_FLUX / " + str(self.expTime) + " \
    390393               ,KRON_FLUX_ERR / " + str(self.expTime) + " \
    391                , MOMENTS_R1 * 2.5 \
    392                , NULL \
     394               ,MOMENTS_R1 * 2.5 \
     395               ,PSF_CHISQ \
    393396               ,N_FRAMES \
    394397               , '" + self.dateStr + "' \
    395398               ," + self.historyModNum + " \
    396399               FROM SkyChip_psf"
     400
     401               #SA10 to do
     402               # put in correct formula for apFlux, psfFlux, psfLikelihood, sgsep
     403               # need correct units of anything in Flux
    397404        self.scratchDb.execute(sql)
    398405       
     
    417424        self.updateStackTypeID("StackDetection")
    418425       
    419         self.updateDvoIDs("StackDetection")
     426        self.updateDvoIDsAndFlags("StackDetection")
    420427       
    421428        sql = "ALTER IGNORE TABLE StackDetection ADD PRIMARY KEY (objID)"
     
    427434            #if deep stack and instFlux = null and err not null
    428435            sql = "UPDATE StackDetection AS a, SkyChip_psf AS b \
    429                    SET instFlux = 2*b.PSF_INST_FLUX_SIG / " + str(self.expTime) + " \
    430                    WHERE instFlux IS NULL \
     436                   SET psfFlux = 2*b.PSF_INST_FLUX_SIG / " + str(self.expTime) + " \
     437                   WHERE psfFlux IS NULL \
    431438                   AND a.ippDetectID = b.IPP_IDET  \
    432439                   AND b.PSF_INST_FLUX_SIG IS NOT NULL"
     
    434441            self.scratchDb.execute(sql)
    435442           
    436        
    437         self.scratchDb.reportAndDeleteRowsWithNULLS("StackDetection", "instFlux")
     443        #leave null instflux in
     444        #self.scratchDb.reportAndDeleteRowsWithNULLS("StackDetection", "instFlux")
    438445       
    439446        self.scratchDb.reportAndDeleteRowsWithNULLS("StackDetection", "objID")
     
    474481        petRadius=b.PETRO_RADIUS \
    475482        ,petRadiusErr=b.PETRO_RADIUS_ERR \
    476         ,petMag=b.PETRO_MAG \
    477         ,petMagErr=b.PETRO_MAG_ERR \
     483        ,petFlux=b.PETRO_MAG \
     484        ,petFluxErr=b.PETRO_MAG_ERR \
    478485        ,petR50=b.PETRO_RADIUS_50 \
    479486        ,petR50Err=b.PETRO_RADIUS_50_ERR \
     
    482489        ,petCf=b.PETRO_FILL \
    483490        WHERE a.ippDetectID=b.IPP_IDET"
     491        #SA10 Put correct calculation for PetFlux
    484492        self.scratchDb.execute(sql)
    485493
     
    586594        self.scratchDb.updateAllRows("SkinnyObject", "surveyID", str(self.surveyID))
    587595        self.scratchDb.updateAllRows("SkinnyObject", "dataRelease", str(self.config.dataRelease))
     596
     597    '''   
     598    Populates the StackDetectionCalib table
     599    '''
     600    def populateStackDetectionCalib(self):
     601        self.logger.infoPair("Processing table", "StackDetectionCalib")
     602        tableName = "StackDetectionCalib"
     603        # insert all detections into table
     604        sql = "INSERT INTO " + tableName + " ( \
     605               objID \
     606               ,stackDetectID \
     607               ,ippObjID \
     608               ,ippDetectID \
     609               ,filterID \
     610               ,surveyID \
     611               ) \
     612               SELECT \
     613               objID \
     614               ,stackDetectID \
     615               ,ippObjID \
     616               ,ippDetectID \
     617               ,filterID \
     618               ,surveyID \
     619               FROM StackDetection"
     620        self.logger.info(sql)
     621        self.scratchDb.execute(sql)
     622        #SA10 TODO
     623        # insert ra/dec/calstuff into Table
     624        # heather discovered dec is called 'dec_'
     625        sql = "UPDATE " + tableName + " SET ra = -999, dec_ =-999, raErr = -999, decErr = -999, zp = -999, zpErr = -999, expTime = -999, airMass = -999"
     626        self.logger.info(sql)
     627        self.scratchDb.execute(sql)
     628        self.scratchDb.updateAllRows(tableName, "dataRelease", str(self.config.dataRelease))
     629       
     630   
     631
    588632
    589633    '''
     
    649693               WHERE a.ippDetectID = b.ippDetectID \
    650694               AND b.imageID = " + str(imageID)
    651        
    652         self.scratchDb.execute(sql)
    653        
     695        self.scratchDb.execute(sql)
     696   
     697    '''
     698    Updates Flags
     699    '''
     700    def updateDvoIDsAndFlags(self, table):
     701        self.logger.infoPair("getting","imageID")
     702        imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
     703        self.logger.infoPair("obtained","imageID")
     704        self.logger.debug("Updating table '" + table + "' with DVO IDs...")
     705        sql = "UPDATE " + table + " AS a, " + self.scratchDb.dvoDetectionTable + " AS b SET \
     706               a.ippObjID = b.ippObjID, \
     707               a.stackDetectID = 10 * b.detectID + " + str(self.filterID) + ", \
     708               a.objID = b.objID, \
     709               a.infoFlag = b.flags << 46 | a.infoFlag \
     710               WHERE a.ippDetectID = b.ippDetectID \
     711               AND b.imageID = " + str(imageID)
     712        self.scratchDb.execute(sql)
     713   
     714   
    654715    '''
    655716    Does the processing, i.e. pulling stuff from IPP tables into PSPS tables
     
    660721            if not self.getIDsFromDVO():
    661722                return False
    662 
     723        #self.logger.infoPair("populating","StackMeta")   
    663724        self.populateStackMeta()
     725        #self.logger.infoPair("populating","StackDetection")
    664726        self.populateStackDetection()
    665 
     727       
    666728        if self.stackType != "NIGHTLY_STACK":
     729            #self.logger.infoPair("populating","StackModelFit")
    667730            self.populateStackModelFit()
     731            #self.logger.infoPair("populating","StackApFlx")
    668732            self.populateStackApFlx()
    669    
     733        #self.logger.infoPair("populating","StackToImage")
    670734        self.populateStackToImage()
     735        #self.logger.infoPair("populating","SkinnyObject")
    671736        self.populateSkinnyObject()
     737        #self.logger.infoPair("populating","ObjectCalColor")
    672738        self.populateObjectCalColor()
     739        #self.logger.infoPair("populating","StackDetectionCalib")
     740        self.populateStackDetectionCalib()
    673741
    674742        self.setMinMaxObjID(["StackDetection"])
Note: See TracChangeset for help on using the changeset viewer.