IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 12, 2014, 4:10:18 PM (12 years ago)
Author:
eugene
Message:

merge changes from branches/eam_branches/ipp-20140717

File:
1 edited

Legend:

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

    r35417 r37246  
    5151    Sets whether we are using normal or pre-ingested DVO tables
    5252    '''
    53     def setUseFullTables(self, useFull):
    54 
    55         if useFull:
    56             self.dvoImagesTable = "dvoImagesFull"
    57             self.dvoDetectionTable = "dvoDetectionFull"
    58         else:
    59             self.dvoImagesTable = "dvoImages"
    60             self.dvoDetectionTable = "dvoDetection"
     53    def setDvoTableNames(self):
     54
     55        self.dvoImagesTable = "dvoImagesFull"
     56        self.dvoDetectionTable = "dvoDetectionFull"
    6157
    6258        self.logger.debugPair("Using DVO images table", self.dvoImagesTable)
     
    135131        return filterID
    136132
     133    '''
     134    Gets tess ID for this tess name
     135    '''
     136    def getTessID(self, name):
     137     
     138        sql = "SELECT tessID FROM TessellationType WHERE name = '" + name + "'"
     139        try:
     140            rs = self.executeQuery(sql)
     141            rs.first()
     142            tessID = rs.getInt(1)
     143        except:
     144            self.logger.errorPair("No tess ID found for tess", name)
     145            tessID = -1
     146
     147        return tessID
     148
    137149    '''
    138150    Gets imageID from extern ID
     
    244256                return True
    245257            else:
     258                self.logger.infoPair("Did NOT already import from",  path)
    246259                return False
    247260        except:
     261            print "***** exception in alreadyImportedThisDvoTable *****"
    248262            self.logger.exception("Unable to check whether this DVO table has been imported")
    249 
    250263
    251264    '''
     
    323336    def isCorrectDvo(self, path):
    324337
     338        sql = "show tables"
     339        try:
     340            rs = self.executeQuery(sql) 
     341            haveDone = False
     342            while (rs.next()):
     343                tableName = rs.getString(1)
     344                # print "table: " + tableName
     345                if tableName == self.dvoDoneTable:
     346                    haveDone = True
     347                   
     348            rs.close()
     349            if not haveDone:
     350                self.logger.info("dvoDone not yet built")
     351                return False
     352
     353        except Exception, e:
     354            print str(e)
     355            self.logger.errorPair("problem examining table", sql)
     356            sys.exit(1)
     357
    325358        sql = "SELECT path FROM " + self.dvoDoneTable + " WHERE path LIKE '%SkyTable.fits'"
    326         try:
    327             rs = self.executeQuery(sql) 
    328             rs.first()
    329 
     359        try: rs = self.executeQuery(sql) 
     360        except Exception, e:
     361            print str(e)
     362            self.logger.errorPair("problem querying for dvo path", path)
     363            sys.exit(1)
     364
     365        if not rs.next():
     366            self.logger.info("dvoDone exists, but is empty")
     367            return False
     368
     369        try:
    330370            head,tail = os.path.split(rs.getString(1))
    331371
     
    334374                return True
    335375            else:
    336                 self.logger.errorPair("DVO does not match. We have", head)
     376                self.logger.infoPair("DVO does not match. We have", head)
    337377                return False
    338378
    339379        except Exception, e:
    340380            print str(e)
    341             self.logger.errorPair("No DVO files ingested for this path", path)
    342             return False
     381            self.logger.errorPair("problem searching for DVO at", path)
     382            sys.exit(1)
    343383
    344384    '''
     
    387427            # if no returned rows, return an error
    388428            if not rs.next():
    389                 print "DVO lacks imageID ", imageID
    390                 print "sql: ", sql
     429                self.logger.infoPair("DVO lacks imageID ", imageID)
    391430                return False
    392431
     
    396435
    397436            else:
    398                 print "DVO has wrong imageID? ", imageID
    399                 print "result was ", rs.getInt(1)
    400                 print "sql: ", sql
     437                self.logger.error("DVO has wrong imageID? ")
     438                self.logger.error("imageID: ", imageID)
     439                self.logger.error("EXTERN_ID: ", rs.getInt(1))
     440                self.logger.infoPair("sql: ", sql)
    401441                raise
    402442
     
    415455   
    416456        dvoImagesTable = "dvoImages"
    417         dvoDetectionTable = "dvoDetections"
     457        dvoDetectionTable = "dvoDetection"
    418458
    419459        # drop and create Images table
    420         self.logger.debugPair("Creating DVO table", dvoImagesTable)
     460        self.logger.infoPair("Creating DVO table", dvoImagesTable)
    421461        sql = "DROP TABLE " + dvoImagesTable
    422462
     
    438478
    439479        # now detection table
    440         self.logger.debugPair("Creating DVO table", dvoDetectionTable)
     480        self.logger.infoPair("Dropping DVO table", dvoDetectionTable)
    441481        sql = "DROP TABLE " + dvoDetectionTable
    442482        try: self.execute(sql)
    443         except: pass
    444 
    445         self.logger.debugPair("Creating DVO table", "dvoDetection")
     483        except:
     484            self.logger.errorPair("problem dropping DVO table", dvoDetectionTable)
     485            pass
     486
     487        self.logger.infoPair("Creating DVO table", "dvoDetection")
    446488        sql = "CREATE TABLE dvoDetection ( \
    447                imageID INT, \
    448                ippDetectID BIGINT, \
     489               objID BIGINT, \
    449490               detectID BIGINT, \
    450491               ippObjID BIGINT, \
    451                objID BIGINT, \
    452                flags INT, \
    453                zp FLOAT, \
    454                zpErr FLOAT, \
    455                airMass FLOAT, \
    456                expTime FLOAT, \
     492               ippDetectID BIGINT, \
     493               imageID INT, \
     494               catID INT, \
    457495               ra DOUBLE, \
    458496               dec_ DOUBLE, \
    459497               raErr FLOAT, \
    460498               decErr FLOAT, \
     499               zp FLOAT, \
     500               telluricExt FLOAT, \
     501               airmass FLOAT, \
     502               expTime FLOAT, \
     503               Mpsf FLOAT, \
     504               dMpsf FLOAT, \
     505               Mkron FLOAT, \
     506               dMkron FLOAT, \
     507               Map FLOAT, \
     508               dMap FLOAT, \
     509               flags INT, \
    461510               PRIMARY KEY (imageID, ippDetectID), \
    462511               KEY (objID, detectID) \
     
    466515        except:
    467516            self.logger.error("Unable to create DVO detection database table")
     517            self.sys.exit(1)
    468518
    469519        # XXX EAM : for the parallel mode, dvoDetection requires duplicate objID values!
     
    511561
    512562       # we need a big enough memory table for the incoming detections
    513        print "requested memory in gigs: ", self.memoryTableSize
     563       # print "requested memory in gigs: ", self.memoryTableSize
    514564       tableSize = int(self.memoryTableSize) * 1024 * 1024 * 1024
     565       self.logger.infoPair("setting max heap size: ", tableSize)
     566
    515567       sql = "set @@max_heap_table_size = " + str(tableSize)
    516        print "setting max heap size: ", sql
    517568       try: self.execute(sql)
    518569       except:
     
    550601       self.logger.infoPair("Dropping table", self.dvoSkyTable)
    551602       self.dropTable(self.dvoSkyTable)
    552        self.logger.infoPair("Dropping table", self.dvoDetectionTable)
    553        self.dropTable(self.dvoDetectionTable)
    554603       self.logger.infoPair("Dropping table", self.dvoDoneTable)
    555604       self.dropTable(self.dvoDoneTable)
     605
     606       # blow away existing dvoDetection table & re-crate
     607       if not self.resetDvoDetectionTable():
     608           self.logger.errorPair("Unable to reset scratch table", "DvoDetectionFull")
     609           return False
    556610
    557611       # create dvoDone table
     
    564618
    565619       self.changeEngineToInnoDB(self.dvoDoneTable)
    566 
    567        # blow away existing dvoDetection table & re-crate
    568        if not self.resetDvoDetectionTable():
    569            self.logger.errorPair("Unable to reset scratch table", "DvoDetectionFull")
    570            return False
    571620
    572621       return True
Note: See TracChangeset for help on using the changeset viewer.