IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 36723 for trunk


Ignore:
Timestamp:
May 1, 2014, 9:46:08 PM (12 years ago)
Author:
heather
Message:

first pass of stackbatch stackObject - has objID + basic filter dvo data. woot.

Location:
trunk/ippToPsps/jython
Files:
2 edited

Legend:

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

    r36722 r36723  
    454454
    455455      filters = ["g","r","i","z","y"]
    456 
     456      count = 0
    457457      for f in filters:
     458          skip = 0
    458459          if (f == "g"):
    459               fileName = self.gfits.getPath()
     460              if self.gstackID > 0: 
     461                  fileName = self.gfits.getPath()
     462              else:
     463                  skip = 1
    460464          if (f == "r"):
    461               fileName = self.rfits.getPath()
     465              if self.rstackID > 0:
     466                  fileName = self.rfits.getPath()
     467              else:
     468                  skip = 1
    462469          if (f == "i"):
    463               fileName = self.ifits.getPath()
     470              if self.istackID > 0:
     471                  fileName = self.ifits.getPath()
     472              else:
     473                  skip = 1
    464474          if (f == "z"):
    465               fileName = self.zfits.getPath()
     475              if self.zstackID > 0:
     476                  fileName = self.zfits.getPath()
     477              else:
     478                  skip = 1
    466479          if (f == "y"):
    467               fileName = self.yfits.getPath()
    468 
    469 
    470           try:
     480              if self.ystackID > 0:
     481                  fileName = self.yfits.getPath()
     482              else:
     483                  skip = 1
     484
     485          if skip == 1:
     486              self.logger.infoPair("no files for filter" , f)
     487          else:
     488             self.logger.infoPair("using filename:",fileName)
     489         
     490             try:
    471491              tables = stilts.treads(fileName)
    472           except:
     492             except:
    473493              self.logger.errorPair("STILTS could not import from", fileName)
    474494              return False
    475495             
    476           count = 0
    477           for table in tables:
     496             #count = 0
     497             for table in tables:
    478498             
    479499              # print "import smf table ", table
     
    481501             
    482502              if not match: continue
    483               self.logger.debugPair("Reading IPP table", table.name)
     503              self.logger.infoPair("Reading IPP table", f + table.name)
    484504              table = stilts.tpipe(table, cmd='addcol table_index $0')
    485505                 
     
    506526                  self.logger.exception("Problem writing table '" + f + table.name + "' to the database")
    507527                     
    508               self.logger.infoPair("Done. Imported", "%d tables" % count)
    509               self.indexIppTables()
     528      self.logger.infoPair("Done. Imported", "%d tables" % count)
     529      self.indexIppTables()
    510530                     
    511               return True
     531      return True
    512532
    513533    '''
     
    622642        # for OB, this imports object data from DVO
    623643        if self.batchType == "ST":
     644            self.logger.infoPair("did we get here","?") 
    624645            if not self.importIppSTTables():
    625646                self.logger.errorPair("skipping this batch", "could not import ST IPP tables")
    626647                self.ippToPspsDb.updateProcessed(self.batchID, -1)
    627648                raise
     649            self.logger.infoPair("we did the ST","yes")
    628650        else:   
    629651            # if not ST we do this
     
    636658                self.ippToPspsDb.updateProcessed(self.batchID, -1)
    637659                raise
    638 
     660        self.logger.infoPair("populatePspsTables","ok")
    639661        if not self.populatePspsTables():
    640662            if self.skipBatch:
  • trunk/ippToPsps/jython/stackbatch.py

    r36719 r36723  
    10151015        self.scratchDb.updateAllRows(tableName, "dataRelease", str(self.skychunk.dataRelease))
    10161016       
    1017     def populateStackObjectCalib(self):
     1017    def populateStackObjectFromDvo(self):
    10181018
    10191019        tableName = "StackObject"
    10201020        self.logger.infoPair("Processing table", tableName)
    10211021
    1022         imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
    1023         self.logger.infoPair("obtained","imageID")
    1024         sql = "UPDATE " + tableName + " AS a, "  + self.scratchDb.dvoDetectionTable + " AS b \
    1025             SET a.ra = b.ra, \
    1026             a.dec = b.dec_, \
    1027             a.raErr = b.raErr, \
    1028             a.decErr = b.decErr, \
    1029             a.zp = b.zp, \
    1030             a.expTime = b.expTime, \
    1031             a.airMass = b.airMass   \
    1032             WHERE a.stackDetectID = b.detectID \
    1033             AND b.imageID = " + str(imageID)
    1034         self.scratchDb.execute(sql)
    1035         self.scratchDb.updateAllRows(tableName, "dataRelease", str(self.skychunk.dataRelease))
     1022        filters = ['g','r','i','z','y']
     1023       
     1024        for f in filters:
     1025            skip = 0
     1026            #first: do we skip this filter
     1027            if f == 'g':
     1028                self.header = self.gheader
     1029                if self.gstackID < 0:
     1030                    skip = 1
     1031            elif f == 'r':
     1032                self.header = self.rheader
     1033                if self.rstackID < 0:
     1034                    skip = 1
     1035            elif f == 'i':
     1036                self.header = self.iheader
     1037                if self.istackID < 0:
     1038                    skip = 1
     1039            elif f == 'z':
     1040                self.header = self.zheader
     1041                if self.zstackID < 0:
     1042                    skip = 1
     1043            elif f == 'y':
     1044                self.header = self.yheader
     1045                if self.ystackID < 0:
     1046                    skip = 1
     1047            if skip == 0:       
     1048                imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
     1049                self.logger.infoPair("obtained","imageID")
     1050                sql = "UPDATE " + tableName + " AS a, "  + self.scratchDb.dvoDetectionTable + " AS b \
     1051                      SET a." + f + "ra = b.ra, \
     1052                      a." + f + "dec = b.dec_, \
     1053                      a." + f + "raErr = b.raErr, \
     1054                      a." + f + "decErr = b.decErr, \
     1055                      a." + f + "zp = b.zp, \
     1056                      a." + f + "expTime = b.expTime, \
     1057                      a." + f + "stackDetectID = b.detectID   \
     1058                      WHERE a.objID = b.objID \
     1059                      AND b.imageID = " + str(imageID)
     1060            self.logger.infoPair('sql',sql)   
     1061            self.scratchDb.execute(sql)
     1062            self.scratchDb.updateAllRows(tableName, "dataRelease", str(self.skychunk.dataRelease))
    10361063
    10371064        ## XXX write this with the select/insert
     
    10911118        sql = "INSERT IGNORE INTO " + table + " ( \
    10921119               objID ) \
    1093                SELECT (objID) FROM " + self.scratchDb.dvoDetectionTable + " ( \
    1094                WHERE b.imageID = " + str(imageID)
     1120               SELECT (objID) FROM " + self.scratchDb.dvoDetectionTable + "  \
     1121               WHERE " + self.scratchDb.dvoDetectionTable + ".imageID = " + str(imageID)
     1122        self.logger.infoPair("sql",sql)
    10951123        self.scratchDb.execute(sql)
    10961124   
     
    11391167    '''
    11401168    def populatePspsTables(self):
    1141         self.infoPair("starting","populatePspsTables");
     1169        self.logger.infoPair("starting","populatePspsTables");
    11421170        self.skipBatch = False
    11431171     
     
    11821210            self.insertDvoIDs("StackApFlx","y.00000")
    11831211
    1184         self.logger.infoPair("populating","StackObject")
     1212        self.logger.infoPair("populating","StackObject")
     1213        # need to index on objid or it is stupidly slow
     1214        self.scratchDb.createIndex("StackObject", "objID")
     1215        self.scratchDb.createIndex("StackModelFit", "objID")
     1216        self.scratchDb.createIndex("StackApFlx", "objID")
     1217
     1218
     1219
     1220        #ok, now we have the shell stackObjects - these need to be filled.
     1221        self.populateStackObjectFromDvo()
    11851222        self.populateStackObject()
    11861223       
Note: See TracChangeset for help on using the changeset viewer.