- Timestamp:
- Oct 24, 2015, 2:20:15 PM (11 years ago)
- Location:
- trunk/ippToPsps
- Files:
-
- 7 edited
-
config/tables.FW.vot (modified) (1 diff)
-
jython/batch.py (modified) (2 diffs)
-
jython/detectionbatch.py (modified) (19 diffs)
-
jython/diffbatch.py (modified) (8 diffs)
-
jython/fits.py (modified) (3 diffs)
-
jython/forcedwarpbatch.py (modified) (2 diffs)
-
jython/stackbatch.py (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/config/tables.FW.vot
r38934 r38958 187 187 <DESCRIPTION>Error in PSF flux.</DESCRIPTION> 188 188 </FIELD> 189 <FIELD name="xPosChip" arraysize="1" datatype="float" unit="raw pixels" default="-999"> 190 <DESCRIPTION>PSF x position in original chip pixels.</DESCRIPTION> 191 </FIELD> 192 <FIELD name="yPosChip" arraysize="1" datatype="float" unit="raw pixels" default="-999"> 193 <DESCRIPTION>PSF y position in original chip pixels.</DESCRIPTION> 194 </FIELD> 195 <FIELD name="FccdID" arraysize="1" datatype="short" unit="dimensionsless" default="-999"> 196 <DESCRIPTION>OTA identifier of original chip (see ImageMeta).</DESCRIPTION> 197 </FIELD> 189 198 <FIELD name="FpsfMajorFWHM" arraysize="1" datatype="float" unit="arcsec" default="-999"> 190 199 <DESCRIPTION>PSF major axis FWHM.</DESCRIPTION> -
trunk/ippToPsps/jython/batch.py
r38924 r38958 466 466 for table in tables: 467 467 468 # example of listing all columns in a table: 469 ## print "-----table: " + table.name 470 ## columns = table.columns() 471 ## for column in columns: 472 ## print column 473 ## 474 ## print "-----" 475 468 476 # print "import smf table ", table 469 477 match = re.match(filter, table.name) … … 475 483 476 484 # print "read smf table ", table 477 self.logger.infoPair("read smf table", table )485 self.logger.infoPair("read smf table", table.name) 478 486 479 487 # drop any previous tables before import -
trunk/ippToPsps/jython/detectionbatch.py
r38956 r38958 46 46 47 47 super(DetectionBatch, self).__init__( 48 logger,49 config,50 skychunk,51 gpc1Db,52 ippToPspsDb,53 scratchDb,54 camID,55 batchID,56 "P2",57 gpc1Db.getCameraStageSmf(camID,skychunk.P2_smf_version))48 logger, 49 config, 50 skychunk, 51 gpc1Db, 52 ippToPspsDb, 53 scratchDb, 54 camID, 55 batchID, 56 "P2", 57 gpc1Db.getCameraStageSmf(camID,skychunk.P2_smf_version)) 58 58 59 59 # get camera meta data … … 109 109 self.logger.errorPair("Could not get", "FILTERID") 110 110 raise 111 111 112 112 # MJD-OBS is the exposure start, EXTIME / 172800 = (EXPTIME sec / 84600 sec/day) / 2 113 113 self.obsTime = float(self.header['MJD-OBS']) + (float(self.header['EXPTIME']) / 172800.0) 114 114 115 115 ## MEH md5sum options test 116 self.md5sum = None117 116 self.md5sum = self.fits.getMd5sum() 118 #self.md5sum = self.fits.getMd5sumShell() 119 #self.md5sum = self.fits.getMd5sumFile() 120 117 121 118 # set up some defauts 122 119 self.totalNumPhotoRef = 0 123 124 120 125 121 self.filter = self.header['FILTERID'][0:1] … … 198 194 self.scratchDb.updateFilterID("FrameMeta", self.filter) 199 195 self.scratchDb.updateAllRows("FrameMeta", "processingVersion", str(self.skychunk.processingVersion)) 196 return True 200 197 201 198 ''' … … 344 341 self.scratchDb.execute(sql) 345 342 343 print "---- inserted ImageMeta into mysql" 344 346 345 self.scratchDb.updateRecalStats(tableName, header['IMAGEID'], str(pltscale)); 347 346 self.scratchDb.updateFilterID(tableName, self.filter) 348 347 self.scratchDb.updateAllRows(tableName, "processingVersion", str(self.skychunk.processingVersion)) 349 348 349 print "---- updated things" 350 350 351 if 'NASTRO' in header: self.totalNumPhotoRef = self.totalNumPhotoRef + int(header['NASTRO']) 351 352 self.scratchDb.replaceNullsInThisColumn(tableName, "polyOrder", "0") 352 353 354 print "---- completed ImageMeta" 355 return True 356 353 357 ''' 354 358 Populates the ImageDetEffMeta table for this OTA 355 359 ''' 356 360 def populateImageDetEffMetaTablePart1(self, ota, header): 361 print "---- *** populate ImageDetEffMetaTablePart1" 357 362 ippTableName = ota + "_deteff" 358 363 tableName = "ImageDetEffMeta_" + ota … … 384 389 385 390 # for loop 391 return True 386 392 387 393 ''' … … 389 395 ''' 390 396 def populateImageDetEffMetaTablePart2(self, ota): 397 print "---- *** populate ImageDetEffMetaTablePart2" 398 391 399 ippTableName = ota + "_deteff" 392 400 tableName = "ImageDetEffMeta_" + ota 393 401 394 # ok, this is a bit tricky - Ideally I just want this all in one table, however, the way the table is layed out is 90 degrees from how I want it.402 # ok, this is a bit tricky - Ideally I just want this all in one table, however, the way the table is layed out is 90 degrees from how I want it. 395 403 # the steps out of this mess are as follows: 396 404 # give an index to XYxy_deteff (already done, called table_index) … … 424 432 self.logger.errorPair('failed sql: ', sql) 425 433 raise 434 return True 426 435 427 436 … … 552 561 # we don't delete these anymore 553 562 results['NULLINSTFLUX'] = 0; 563 return True 554 564 555 565 ''' … … 580 590 581 591 self.scratchDb.updateAllRows(tableName, "processingVersion", str(self.skychunk.processingVersion)) 592 return True 593 582 594 ''' 583 595 Populates the SkinnyObject table for this OTA … … 607 619 608 620 self.scratchDb.updateAllRows(tableName, "processingVersion", str(self.skychunk.processingVersion)) 621 return True 609 622 610 623 ''' … … 641 654 642 655 # populate ImageMeta 656 # XXX EAM 20151024 : 643 657 if not self.populateImageMetaTable(chipname, header): 644 658 self.logger.infoPair("skipping chip: ", chipname) … … 647 661 self.updateImageID("ImageMeta_" + chipname, x, y) 648 662 663 # XXX EAM 20151024 : problem is here? 649 664 self.populateImageDetEffMetaTablePart1(chipname, header) 650 665 self.updateImageID("ImageDetEffMeta_" + chipname, x, y) … … 693 708 return True 694 709 695 696 710 ''' 697 711 Applies indexes to the IPP tables … … 722 736 723 737 self.logger.infoPair("created indexes on", "IPP tables") 738 return True 739 724 740 725 741 ''' … … 771 787 772 788 self.scratchDb.execute(sql) 789 return True 773 790 774 791 ''' … … 786 803 self.logger.errorPair('failed sql',sql) 787 804 raise 805 return True 788 806 789 807 ''' … … 1004 1022 1005 1023 print "duplicates found: ", str(Nduplicates) 1024 return True 1006 1025 1007 1026 ''' … … 1012 1031 sql = "UPDATE " + tableName + " SET imageID = %d%d%d" % (self.expID, x, y) 1013 1032 self.scratchDb.execute(sql) 1033 return True 1014 1034 1015 1035 ''' … … 1022 1042 if table.name == "FrameMeta": self.scratchDb.reportNulls(table.name, showPartials) 1023 1043 else: self.scratchDb.reportNulls(table.name + "_XY33", showPartials) 1024 1044 return True 1025 1045 1026 1046 ''' -
trunk/ippToPsps/jython/diffbatch.py
r38956 r38958 98 98 self.number[num]= diffSkyFileID 99 99 100 101 102 100 self.logger.infoPair("getting diff" ," metadata") 103 101 self.logger.infoPair("for diff skyfile id ", str(diffSkyFileID)) … … 106 104 self.logger.infoPair("ok, I guess that worked","now doing this") 107 105 106 # this code is very fragile: it depends on the right order in the output 107 # of the sql call in another file (see forcedwarpbatch.py for a better method) 108 108 if not meta: 109 109 self.logger.errorPair("Could not get", "diff metadata") … … 132 132 self.logger.infoPair("TessName ",tessName) 133 133 self.tessID[num] = self.scratchDb.getTessID(tessName) 134 134 135 135 self.logger.infoPair("TessName ",tessName) 136 136 # XXX EAM 20140812 : I am hardwiring the parsing logic for RINGS vs LOCAL … … 325 325 sqlLine.group("DapFlux", "AP_FLUX / " + expTimeString) 326 326 sqlLine.group("DapFluxErr", "AP_FLUX_SIG / " + expTimeString) 327 # sqlLine.group("DapFillF", "AP_NPIX / (3.14159265359 * AP_MAG_RADIUS * AP_MAG_RADIUS)") 328 # sqlLine.group("DapRadius", "AP_MAG_RADIUS") 327 328 if self.haveApNpix[num]: 329 sqlLine.group("DapFillF", "AP_NPIX / (3.14159265359 * AP_MAG_RADIUS * AP_MAG_RADIUS)") 329 330 sqlLine.group("DkronFlux", "KRON_FLUX / " + expTimeString) 330 331 sqlLine.group("DkronFluxErr", "KRON_FLUX_ERR / " + expTimeString) … … 568 569 self.logger.infoPair("Importing DF tables with table match expression: ", tableRE) 569 570 571 self.tablesLoaded = [] 572 self.haveApNpix = {} 573 570 574 count = 0 571 575 for num in self.number: … … 581 585 return False 582 586 587 # this is an optional field, check for it in the table below 588 self.haveApNpix[num] = 0 589 583 590 # count = 0 584 591 for table in tables: … … 587 594 if not match: continue 588 595 589 self.logger.infoPair("Reading IPP table", table.name+"_"+str(num)) 596 # check for AP_NPIX columns: missing for SAS39 597 if table.name == "SkyChip_psf": 598 columns = table.columns() 599 if 'AP_NPIX' in columns: 600 self.haveApNpix[num] = 1 601 602 myTable = table.name + "_" + str(num) 603 604 self.logger.infoPair("Reading IPP table", myTable) 590 605 table = stilts.tpipe(table, cmd='addcol table_index $0') 591 606 table = stilts.tpipe(table, cmd='explodeall') 592 607 593 # drop any previous tables before import594 self.scratchDb.dropTable( table.name+"_"+str(num))608 # drop any previous tables before import 609 self.scratchDb.dropTable(myTable) 595 610 596 597 # IPP FITS files are littered with infinities, so remove these 611 # IPP FITS files are littered with infinities, so remove these 598 612 self.logger.info("Removing Infinity values from all columns") 599 613 table = stilts.tpipe(table, cmd='keepcols "' + columns + '"') … … 602 616 603 617 try: 604 table.write(self.scratchDb.url + '#' + table.name+"_"+str(num))618 table.write(self.scratchDb.url + '#' + myTable) 605 619 count = count + 1 606 620 except: 607 self.logger.exception("Problem writing table '" + table.name+"_"+str(num)+ "' to the database")621 self.logger.exception("Problem writing table '" + myTable + "' to the database") 608 622 609 623 self.logger.infoPair("Done. Imported", "%d tables" % count) 610 624 self.indexIppTables(num) 611 625 626 self.tablesLoaded.append(myTable) 627 612 628 return True 613 629 -
trunk/ippToPsps/jython/fits.py
r38956 r38958 8 8 9 9 ''' 10 FITS file class, for reading sillyheaders and things10 FITS file class, for reading headers and things 11 11 ''' 12 12 class Fits(object): … … 35 35 #shutil.copy2(self.originalPath, self.localCopyPath) 36 36 37 # open the local copy and parse the ridiculou plain-textheader37 # open the local copy and parse the header 38 38 #self.file = open(self.localCopyPath) 39 39 self.file = open(self.originalPath) … … 45 45 self.rewindToStart() 46 46 47 48 47 ''' 49 48 Get md5sum for file 50 49 ''' 51 50 def getMd5sum(self): 52 ## memory inefficient all at once read but should be ok... 53 md5 = hashlib.md5(open(self.originalPath,'rb').read()) 54 return md5.hexdigest() 51 mode = "hashlib" 55 52 56 def getMd5sumShell(self): 57 md5cmd = "md5sum %s" % (self.originalPath) 58 md5 = Popen(md5cmd, shell=True, stdout=PIPE).stdout.read() 59 return md5[0:32] 53 if mode == "hashlib": 54 ## memory-inefficient all-at-once read 55 ## XXX EAM: do we need to free the loaded file to prevent double-usage of memory 56 md5 = hashlib.md5(open(self.originalPath,'rb').read()) 57 return md5.hexdigest() 60 58 61 def getMd5sumFile(self): 62 ## unclear if rb by default for file so maybe not best 63 md5 = hashlib.md5(self.file.read()) 64 ## if used, then need to move file pointer back to the start of the file for others to use 65 self.rewindToStart() 66 return md5.hexdigest() 59 if mode == "shell": 60 ## use external shell md5sum command: error handline needs to check the exit status 61 md5cmd = "md5sum %s" % (self.originalPath) 62 p = Popen(md5cmd, shell=True, stdout=PIPE) 63 p.wait() 64 if p.returncode < 0: 65 self.logger.errorPair("md5sum crashed: ", md5cmd) 66 os._exit(1) 67 68 if p.returncode > 0: 69 self.logger.errorPair("md5sum error : ", md5cmd) 70 os._exit(1) 71 72 md5 = p.stdout.read() 73 return md5[0:32] 74 75 if mode == "file": 76 ## it is unclear if the open mode is 'rb' by default for file; this may fail otherwise 77 md5 = hashlib.md5(self.file.read()) 78 ## if used, then need to move file pointer back to the start of the file for others to use 79 self.rewindToStart() 80 return md5.hexdigest() 67 81 68 82 ''' -
trunk/ippToPsps/jython/forcedwarpbatch.py
r38956 r38958 78 78 self.expTime = {} 79 79 self.analysisVer = {} 80 se t.md5sum = {}80 self.md5sum = {} 81 81 self.tessName = {} 82 82 self.obsTime = {} … … 385 385 sqlLine.group("FpsfFlux", "PSF_INST_FLUX / " + expTimeString) 386 386 sqlLine.group("FpsfFluxErr", "PSF_INST_FLUX_SIG / " + expTimeString) 387 sqlLine.group("xPosChip", "SRC_CHIP_X") 388 sqlLine.group("yPosChip", "SRC_CHIP_Y") 389 sqlLine.group("FccdID" , "SRC_CHIP_NUM") 387 390 sqlLine.group("FpsfMajorFWHM", "PSF_FWHM_MAJ * abs(PLTSCALE)") 388 391 sqlLine.group("FpsfMinorFWHM", "PSF_FWHM_MIN * abs(PLTSCALE)") -
trunk/ippToPsps/jython/stackbatch.py
r38956 r38958 657 657 magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME']))) 658 658 659 # XXX hard-wired platescale : 0.25 (could get this from header, but stacks have constant plate scale 660 pltscale = 0.25 661 659 662 sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET") 660 663 … … 665 668 sqlLine.group("a." + filter + model + "MagErr", "b.EXT_INST_MAG_SIG") 666 669 667 sqlLine.group("a." + filter + model + "Radius", "b.EXT_WIDTH_MAJ") 670 sqlLine.group("a." + filter + model + "Radius", "b.EXT_WIDTH_MAJ * " + str(pltscale)) 671 sqlLine.group("a." + filter + model + "RadiusErr", "b.EXT_WIDTH_MAJ_ERR * " + str(pltscale)) 672 668 673 sqlLine.group("a." + filter + model + "Ab", "b.EXT_WIDTH_MIN/b.EXT_WIDTH_MAJ") 674 sqlLine.group("a." + filter + model + "AbErr", "sqrt(b.EXT_WIDTH_MIN_ERR * b.EXT_WIDTH_MIN_ERR + pow(b.EXT_WIDTH_MAJ_ERR * b.EXT_WIDTH_MIN / b.EXT_WIDTH_MAJ, 2.0)) / b.EXT_WIDTH_MAJ") 675 669 676 sqlLine.group("a." + filter + model + "Phi", "DEGREES(b.EXT_THETA)") 670 671 sqlLine.group("a." + filter + model + "RadiusErr", "b.EXT_WIDTH_MAJ_ERR")672 sqlLine.group("a." + filter + model + "AbErr", "b.EXT_WIDTH_MIN_ERR")673 677 sqlLine.group("a." + filter + model + "PhiErr", "DEGREES(b.EXT_THETA_ERR)") 674 678 … … 676 680 677 681 # I have raExp = X_EXT 678 679 # This is tricky: RA_EXT is not defined for PS1_SV3 or PS1_V5, but X_EXT is680 # XXX EAM 20140812: for PV3, update cmf output to define RA_EXT, DEC_EXT681 ## sqlLine.group("a." + filter + model + "Ra", "b.X_EXT")682 ## sqlLine.group("a." + filter + model + "Dec", "b.Y_EXT")683 ## sqlLine.group("a." + filter + model + "RaErr", "b.X_EXT_SIG") # need to modify by platescale684 ## sqlLine.group("a." + filter + model + "DecErr", "b.Y_EXT_SIG")685 682 686 683 # EAM 20150924: PV3 output cmfs were updated to include RA_EXT, DEC_EXT … … 712 709 713 710 sqlLine.group("a." + filter + model + "Mag", "a." + filter + model + "Mag + b.zp") 714 sqlLine.group("a." + filter + model + "Radius", "a." + filter + model + "Radius * b.PLTSCALE")715 sqlLine.group("a." + filter + model + "RadiusErr", "a." + filter + model + "RadiusErr * b.PLTSCALE")716 711 717 712 sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID)) … … 837 832 magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME']))) 838 833 834 # XXX hard-wired platescale : 0.25 (could get this from header, but stacks have constant plate scale 835 pltscale = 0.25 836 839 837 self.logger.infoPair("Adding", "petrosians for extended sources") 840 838 sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET") … … 842 840 sqlLine.group("a."+filter+"haveData", "'1'") 843 841 844 sqlLine.group("a." + filter + "petRadius", "b.PETRO_RADIUS")845 sqlLine.group("a." + filter + "petRadiusErr", "b.PETRO_RADIUS_ERR")846 842 sqlLine.group("a." + filter + "petMag", "b.PETRO_MAG - " + hdrZP) 847 843 sqlLine.group("a." + filter + "petMagErr", "1.0 / b.PETRO_MAG_ERR") # still inverted? (yes) 848 sqlLine.group("a." + filter + "petR50", "b.PETRO_RADIUS_50") 849 sqlLine.group("a." + filter + "petR50Err", "b.PETRO_RADIUS_50_ERR") 850 sqlLine.group("a." + filter + "petR90", "b.PETRO_RADIUS_90") 851 sqlLine.group("a." + filter + "petR90Err", "b.PETRO_RADIUS_90_ERR") 844 845 sqlLine.group("a." + filter + "petRadius", "b.PETRO_RADIUS * " + str(pltscale)) 846 sqlLine.group("a." + filter + "petRadiusErr", "b.PETRO_RADIUS_ERR * " + str(pltscale)) 847 sqlLine.group("a." + filter + "petR50", "b.PETRO_RADIUS_50 * " + str(pltscale)) 848 sqlLine.group("a." + filter + "petR50Err", "b.PETRO_RADIUS_50_ERR * " + str(pltscale)) 849 sqlLine.group("a." + filter + "petR90", "b.PETRO_RADIUS_90 * " + str(pltscale)) 850 sqlLine.group("a." + filter + "petR90Err", "b.PETRO_RADIUS_90_ERR * " + str(pltscale)) 852 851 sqlLine.group("a." + filter + "petCf", "b.PETRO_FILL") 853 852 854 853 sql = sqlLine.makeEquals("WHERE a." + filter + "ippDetectID = b.IPP_IDET ") 855 856 try: self.scratchDb.execute(sql) 857 except: 858 self.logger.error("problem with SQL: " + sql) 859 raise 854 self.scratchDb.execute(sql) 860 855 861 856 # modify petMag to apply the zero point 862 857 sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET") 863 864 858 sqlLine.group("a." + filter + "petMag", "a." + filter + "petMag + b.zp") 865 866 sqlLine.group("a." + filter + "petRadius", "a." + filter + "petRadius * b.PLTSCALE")867 sqlLine.group("a." + filter + "petRadiusErr", "a." + filter + "petRadius * b.PLTSCALE")868 sqlLine.group("a." + filter + "petR50", "a." + filter + "petR50 * b.PLTSCALE")869 sqlLine.group("a." + filter + "petR50Err", "a." + filter + "petR50Err * b.PLTSCALE")870 sqlLine.group("a." + filter + "petR90", "a." + filter + "petR90 * b.PLTSCALE")871 sqlLine.group("a." + filter + "petR90Err", "a." + filter + "petR90Err * b.PLTSCALE")872 873 859 sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID)) 874 860 875 try: self.scratchDb.execute(sql) 876 except: 877 self.logger.errorPair('failed sql',sql) 878 raise 861 self.scratchDb.execute(sql) 879 862 880 863 # modify petRadiusErr if it is not set correctlyu … … 884 867 sql = sqlLine.makeEquals("WHERE a." + filter + "petRadiusErr IS NULL") 885 868 886 try: self.scratchDb.execute(sql) 887 except: 888 self.logger.errorPair('failed sql',sql) 889 raise 890 869 self.scratchDb.execute(sql) 891 870 892 871 ''' … … 1171 1150 def generateRandomIDs(self): 1172 1151 sql = "UPDATE StackObjectThin set randomStackObjID = RAND("+str(self.batchID)+")" 1173 try: self.scratchDb.execute(sql) 1174 except: 1175 self.logger.errorPair('failed sql',sql) 1176 raise 1177 1152 self.scratchDb.execute(sql) 1178 1153 1179 1154 def generateStackDetectRowIDsAndPspsUniqueIDs(self): 1180 # sql = "UPDATE StackObjectThin join (select @r:=@r+1 rownum, objID from \1181 # (select @r:=0) r, StackObjectThin t) as foo using (objID) set \1182 # stackDetectRowID = ((" + str(self.batchID) + " << 32 ) + rownum), \1183 # uniquePspsSTid = ((" +str(self.batchID)+ "*1000000000 ) + rownum)";1184 1155 sql = "UPDATE StackObjectThin set uniquePspsSTid = (("+str(self.batchID)+"*1000000000 ) + row)" 1185 1186 try: self.scratchDb.execute(sql) 1187 except: 1188 self.logger.errorPair('failed sql',sql) 1189 raise 1190 1156 self.scratchDb.execute(sql) 1191 1157 1192 1158 ''' … … 1202 1168 for filter in self.filters: 1203 1169 self.scratchDb.addColumn("StackObjectThin", filter + "haveData", "tinyint") 1204 1205 # sqlLine = sqlUtility("INSERT INTO StackObjectThin (")1206 #1207 # sqlLine.group("objID", "objID")1208 # sqlLine.group("ippObjID", "ippObjID")1209 # sqlLine.group("ippDetectID", "ippDetectID") # added ippDetectID1210 # sqlLine.group("surveyID", "'" + str(self.surveyID) + "'")1211 # sqlLine.group("tessID", "'" + str(self.tessID) + "'")1212 # sqlLine.group("projectionID", "'" + str(self.projectionID) + "'")1213 # sqlLine.group("skyCellID", "'" + str(self.skycellID) + "'")1214 # sqlLine.group("processingVersion", "'" + str(self.skychunk.processingVersion) + "'")1215 # sqlLine.group("randomStackObjID", "FLOOR(RAND()*9223372036854775807)")1216 1170 1217 1171 whereClause = " WHERE (" … … 1231 1185 sql = "insert into StackObjectThin (objID, ippDetectID, ippObjID) select distinct objID, ippDetectID, ippObjID from dvoDetectionFull " + whereClause; 1232 1186 1233 # sql = sqlLine.makeRaw(") SELECT DISTINCT ", "FROM " + self.scratchDb.dvoDetectionTable + whereClause) 1234 1235 try: self.scratchDb.execute(sql) 1236 except: 1237 self.logger.errorPair('failed sql',sql) 1238 raise 1239 1240 # ok, now add surveyID, tessID, projectionID, skycellID, dtaRelease 1187 self.scratchDb.execute(sql) 1188 1189 # ok, now add surveyID, tessID, projectionID, skycellID, dtaRelease 1241 1190 1242 1191 sql = "update StackObjectThin set surveyID = "+str(self.surveyID) +"\ … … 1246 1195 , processingVersion = '" + str(self.skychunk.processingVersion) +"'" 1247 1196 1248 try: self.scratchDb.execute(sql) 1249 except: 1250 self.logger.errorPair('failed sql',sql) 1251 raise 1252 1253 # ok, now fill g/r/i/z/yippDetectID using objID and detectID and image ID 1197 self.scratchDb.execute(sql) 1198 1199 # ok, now fill g/r/i/z/yippDetectID using objID and detectID and image ID 1254 1200 1255 1201 for filter in self.filters: 1256 1202 sql = "update StackObjectThin join "+self.scratchDb.dvoDetectionTable +" using (objID, ippDetectID) set "+filter+"ippDetectID = ippDetectID \ 1257 1203 where " + self.scratchDb.dvoDetectionTable + ".imageID = " + str(imageID) 1258 try: self.scratchDb.execute(sql) 1259 except: 1260 self.logger.errorPair('failed sql',sql) 1261 raise 1204 self.scratchDb.execute(sql) 1205 1262 1206 self.scratchDb.dropColumn("StackObjectThin", "ippDetectID") 1263 1207 … … 1277 1221 fields += filter + "ippDetectID, " 1278 1222 fields += filter + "stackDetectID, " 1279 # fields += filter + "StackDetectRowID, "1280 1223 fields += filter + "stackImageID " # careful here: do not add comma to last entry 1281 1224 if (i < len(self.filters) - 1): 1282 1225 fields += ", " 1283 1226 1284 #if (table == "StackObjectAttributes"):1285 # fields += ", stackDetectRowID "1286 1227 sql = "INSERT INTO " + table + " (" + fields + ") " 1287 1228 sql += "SELECT " + fields + " FROM " + mainTable 1288 1229 1289 try: self.scratchDb.execute(sql) 1290 except: 1291 self.logger.errorPair('failed sql',sql) 1292 raise 1293 1294 1230 self.scratchDb.execute(sql) 1295 1231 1296 1232 ''' … … 1428 1364 self.tablesLoaded.append(myTable) 1429 1365 1430 # XXX validate required tables (do we need _psf?, _xsrc? etc)1431 1432 1366 self.logger.infoPair("Done. Imported", "%d tables" % count) 1433 1367 self.indexIppTables() 1434 # return False1435 1368 return True
Note:
See TracChangeset
for help on using the changeset viewer.
