IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36719


Ignore:
Timestamp:
May 1, 2014, 4:47:32 PM (12 years ago)
Author:
heather
Message:

first crack at useful stackMetas

File:
1 edited

Legend:

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

    r36716 r36719  
    200200       
    201201       # delete PSPS tables
     202       self.logger.infoPair("dropping table:","gStackMeta")
    202203       self.scratchDb.dropTable("gStackMeta")
     204       self.logger.infoPair("dropping table:","rStackMeta")
    203205       self.scratchDb.dropTable("rStackMeta")
     206       self.logger.infoPair("dropping table:","iStackMeta")
    204207       self.scratchDb.dropTable("iStackMeta")
     208       self.logger.infoPair("dropping table:","zStackMeta")
    205209       self.scratchDb.dropTable("zStackMeta")
     210       self.logger.infoPair("dropping table:","yStackMeta")
    206211       self.scratchDb.dropTable("yStackMeta")
     212       self.logger.infoPair("dropping table:","StackObject")
    207213
    208214       self.scratchDb.dropTable("StackObject")
     215       self.logger.infoPair("dropping table:","StackModelFit")
     216             
    209217       self.scratchDb.dropTable("StackModelFit")
     218       self.logger.infoPair("dropping table:","StackApFlx")
     219
    210220       self.scratchDb.dropTable("StackApFlx")
     221       self.logger.infoPair("dropping table:","StackToImage")
     222
    211223       self.scratchDb.dropTable("StackToImage")
    212224             # self.testprint()
     
    508520    Populates the StackMeta table, mainly from dictionary values found in IPP FITS header
    509521    '''
    510     def populateStackMeta(self,filter):
     522    def populateStackMeta(self,filterName):
    511523
    512524        self.logger.infoPair("Procesing table", "StackMeta")
     525
     526        # this should work : set header into (grizy)header and run from there
     527        if filterName == 'g.00000':
     528            self.header = self.gheader
     529            tablename = 'gStackMeta'
     530            stackmetaid = self.gstackID
     531        if filterName == 'r.00000':
     532            tablename = 'rStackMeta'
     533            self.header = self.rheader
     534            stackmetaid = self.rstackID
     535        if filterName == 'i.00000':
     536            tablename = 'iStackMeta'
     537            self.header = self.iheader
     538            stackmetaid = self.istackID
     539        if filterName == 'z.00000':
     540            tablename = 'zStackMeta'
     541            self.header = self.zheader
     542            stackmetaid = self.zstackID
     543        if filterName == 'y.00000':
     544            tablename = 'yStackMeta'
     545            self.header = self.yheader
     546            stackmetaid = self.ystackID
    513547
    514548        self.fwhm_maj    = self.safeDictionaryAccess(self.header, 'FWHM_MAJ')
     
    522556        # print "psfmodel    = ", self.psfmodel
    523557
    524         sql = "INSERT INTO StackMeta (\
     558        #make a table
     559
     560        sql = "CREATE TABLE " + tablename + " LIKE StackMeta"
     561        try: self.scratchDb.execute(sql)
     562        except: pass
     563
     564        sql = "INSERT INTO " + tablename + " (\
    525565        stackMetaID \
    526         ,skycellID \
     566        ,skyCellID \
    527567        ,photoCalID \
    528568        ,photoZero \
     
    544584        ,pc002002 \
    545585         ) VALUES ( \
    546         " + str(self.id) + " \
     586        " + str(stackmetaid) + " \
    547587        ," + self.skycell + " \
    548588        ," + str(self.scratchDb.getPhotoCalID(self.header['IMAGEID'])) + " \
    549589        ," + self.header['FPA.ZP'] + " \
    550         ," + self.expTime + " \
     590        ," + self.header['EXPTIME'] + " \
    551591        ,'" + self.psfmodel   + "' \
    552592        ," + str(self.fwhm_maj)    + " \
     
    566606        )"
    567607        self.scratchDb.execute(sql)
    568         self.scratchDb.updateAllRows("StackMeta", "batchID", str(self.batchID))
    569         self.scratchDb.updateAllRows("StackMeta", "surveyID", str(self.surveyID))
    570         self.scratchDb.updateFilterID("StackMeta", self.filter)
    571         self.scratchDb.updateAllRows("StackMeta", "dataRelease", str(self.skychunk.dataRelease))
    572         self.updateStackTypeID("StackMeta")
     608        self.scratchDb.updateAllRows(tablename, "batchID", str(self.batchID))
     609        self.scratchDb.updateAllRows(tablename, "surveyID", str(self.surveyID))
     610        self.scratchDb.updateFilterID(tablename, filterName)
     611        self.scratchDb.updateAllRows(tablename, "dataRelease", str(self.skychunk.dataRelease))
     612        self.updateStackTypeID(tablename)
    573613
    574614    '''
     
    578618
    579619        self.logger.infoPair("Procesing table", "StackObject")
     620       
     621       
     622
     623
     624
     625
     626        self.logger.infoPair("inserting non-filter dependent items into", "StackObject")
     627
     628        #this is dvo crap
     629        #sql = "INSERT INTO StackObject(\
     630        #      objID, \
     631        #      gcobjID, \
     632        #      ippObjID, \
     633        #      surveyID, \
     634        #      skyCellID, \
     635        #      randomStackObjID, \
     636        #      stackDetectRowID, \
     637        #      dvoRegionID, \
     638        #      dataRelease) SELECT \
     639        #      -999,
     640        #      -999,
     641        #      -999,
     642        #      ,
     643             
     644       
    580645
    581646        # insert all the detections
     
    10051070
    10061071        return True
     1072    '''
     1073    Insert objid (from dvo) into table
     1074    '''
     1075    def insertDvoIDs(self, table, filterName):
     1076        self.logger.infoPair("getting imageID for ","filter")
     1077        if (filterName == 'g.00000'):
     1078            self.header=self.gheader
     1079        if (filterName == 'r.00000'):
     1080            self.header=self.rheader
     1081        if (filterName == 'i.00000'):
     1082            self.header=self.iheader
     1083        if (filterName == 'z.00000'):
     1084            self.header=self.zheader
     1085        if (filterName == 'y.00000'):
     1086            self.header=self.yheader
     1087
     1088        imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
     1089        self.logger.infoPair("obtained","imageID")
     1090        self.logger.debug("Updating table '" + table + "' with DVO IDs...")
     1091        sql = "INSERT IGNORE INTO " + table + " ( \
     1092               objID ) \
     1093               SELECT (objID) FROM " + self.scratchDb.dvoDetectionTable + " ( \
     1094               WHERE b.imageID = " + str(imageID)
     1095        self.scratchDb.execute(sql)
     1096   
     1097
    10071098
    10081099    '''
    10091100    Updates provided table with DVO IDs from DVO table
    10101101    '''
    1011     def updateDvoIDs(self, table):
    1012         self.logger.infoPair("getting","imageID")
     1102    def updateDvoIDs(self, table, filterName):
     1103        self.logger.infoPair("getting imageID for ","filter")
    10131104        imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
    10141105        self.logger.infoPair("obtained","imageID")
     
    10551146             if not self.getIDsFromDVO():
    10561147                return False
    1057         self.logger.infoPair("populating","gStackMeta")   
    1058         self.populateStackMeta("g.00000")
    1059         self.logger.infoPair("populating","rStackMeta")   
    1060         self.populateStackMeta("r.00000")
    1061         self.logger.infoPair("populating","iStackMeta")   
    1062         self.populateStackMeta("i.00000")
    1063         self.logger.infoPair("populating","zStackMeta")   
    1064         self.populateStackMeta("z.00000")
    1065         self.logger.infoPair("populating","yStackMeta")   
    1066         self.populateStackMeta("y.00000")
    1067 
    1068         ##self.logger.infoPair("populating","StackObject")
    1069         ##self.populateStackObject()
     1148        #do some basics first
     1149        # populate stack meta per filter
     1150        # insert objid per filter to each table           
     1151
     1152
     1153        if self.gstackID > 0:       
     1154            self.logger.infoPair("populating","gStackMeta")   
     1155            self.populateStackMeta("g.00000")
     1156            self.insertDvoIDs("StackObject","g.00000")
     1157            self.insertDvoIDs("StackModelFit","g.00000")
     1158            self.insertDvoIDs("StackApFlx","g.00000")
     1159        if self.rstackID > 0:   
     1160            self.logger.infoPair("populating","rStackMeta")   
     1161            self.populateStackMeta("r.00000")
     1162            self.insertDvoIDs("StackObject","r.00000")
     1163            self.insertDvoIDs("StackModelFit","r.00000")
     1164            self.insertDvoIDs("StackApFlx","r.00000")
     1165        if self.istackID > 0:   
     1166            self.logger.infoPair("populating","iStackMeta")   
     1167            self.populateStackMeta("i.00000")
     1168            self.insertDvoIDs("StackObject","i.00000")
     1169            self.insertDvoIDs("StackModelFit","i.00000")
     1170            self.insertDvoIDs("StackApFlx","i.00000")
     1171        if self.zstackID > 0:   
     1172            self.logger.infoPair("populating","zStackMeta")   
     1173            self.populateStackMeta("z.00000")
     1174            self.insertDvoIDs("StackObject","z.00000")
     1175            self.insertDvoIDs("StackModelFit","z.00000")
     1176            self.insertDvoIDs("StackApFlx","z.00000")
     1177        if self.ystackID > 0:   
     1178            self.logger.infoPair("populating","yStackMeta")   
     1179            self.populateStackMeta("y.00000")
     1180            self.insertDvoIDs("StackObject","y.00000")
     1181            self.insertDvoIDs("StackModelFit","y.00000")
     1182            self.insertDvoIDs("StackApFlx","y.00000")
     1183
     1184        self.logger.infoPair("populating","StackObject")
     1185        self.populateStackObject()
    10701186       
    10711187        ##if self.stackType != "NIGHTLY_STACK":
Note: See TracChangeset for help on using the changeset viewer.