Changeset 31347 for trunk/ippToPsps/jython/stackbatch.py
- Timestamp:
- Apr 22, 2011, 1:16:47 PM (15 years ago)
- File:
-
- 1 edited
-
trunk/ippToPsps/jython/stackbatch.py (modified) (25 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/jython/stackbatch.py
r31324 r31347 27 27 28 28 # delete PSPS tables 29 self.dropTable("StackMeta") 30 self.dropTable("StackDetection") 31 self.dropTable("StackModelFit") 32 self.dropTable("StackApFlx") 33 self.dropTable("StackToImage") 29 self.scratchDb.dropTable("StackMeta") 30 self.scratchDb.dropTable("StackDetection") 31 self.scratchDb.dropTable("StackModelFit") 32 self.scratchDb.dropTable("StackApFlx") 33 self.scratchDb.dropTable("StackToImage") 34 self.scratchDb.dropTable("SkinnyObject") 35 self.scratchDb.dropTable("ObjectCalColor") 34 36 35 37 # delete IPP tables 36 self. dropTable("SkyChip_psf")37 self. dropTable("SkyChip_xsrc")38 self. dropTable("SkyChip_xfit")39 self. dropTable("SkyChip_xrad")38 self.scratchDb.dropTable("SkyChip_psf") 39 self.scratchDb.dropTable("SkyChip_xsrc") 40 self.scratchDb.dropTable("SkyChip_xfit") 41 self.scratchDb.dropTable("SkyChip_xrad") 40 42 41 43 # obs time makes no sense except for nightly stacks … … 59 61 self.historyModNum = "0" 60 62 61 62 ''' 63 Updates a table with data release number 64 ''' 65 def updateDataRelease(self, table): 66 67 sql = "UPDATE " + table + " SET dataRelease=" + self.dataRelease 68 self.localStmt.execute(sql) 63 # insert what we know about this stack batch into the stack table 64 self.ippToPspsDb.insertStackMeta(self.batchID, skyID, self.header['STK_ID'], self.filter, self.header['STK_TYPE']) 65 66 # insert sourceID/imageID combo so DVO can look it up 67 self.scratchDb.insertNewDvoImage(self.header['SOURCEID'], self.header['IMAGEID']) 69 68 70 69 ''' … … 74 73 75 74 sql = "UPDATE " + table + " SET stackMetaID=" + self.header['STK_ID'] 76 self. localStmt.execute(sql)75 self.scratchDb.stmt.execute(sql) 77 76 78 77 ''' … … 82 81 83 82 sql = "UPDATE "+table+" AS a, StackType AS b SET a.stackTypeID=b.stackTypeID WHERE b.name = '"+self.header['STK_TYPE']+"'" 84 self. localStmt.execute(sql)83 self.scratchDb.stmt.execute(sql) 85 84 86 85 … … 133 132 WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition 134 133 135 self. localStmt.execute(sql)134 self.scratchDb.stmt.execute(sql) 136 135 137 136 ''' … … 181 180 WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 182 181 183 self. localStmt.execute(sql)182 self.scratchDb.stmt.execute(sql) 184 183 185 184 # sersic fit has an extra parameter … … 198 197 WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 199 198 200 self. localStmt.execute(sql)199 self.scratchDb.stmt.execute(sql) 201 200 202 201 … … 206 205 def populateStackMeta(self): 207 206 self.logger.info("Procesing StackMeta table") 208 209 photoCalID = self.getPhotoCalID()210 207 211 208 sql = "INSERT INTO StackMeta (\ … … 214 211 ,photoCalID \ 215 212 ,photoZero \ 213 ,expTime \ 216 214 ,nP2Images \ 217 215 ,psfModelID \ … … 231 229 " + self.header['STK_ID'] + " \ 232 230 ," + self.skycell + " \ 233 ," + str( photoCalID) + " \231 ," + str(self.scratchDb.getPhotoCalID(self.header['SOURCEID'], self.header['IMAGEID'])) + " \ 234 232 ," + self.header['FPA.ZP'] + " \ 233 ," + self.header['EXPTIME'] + " \ 235 234 ," + self.header['NINPUTS'] + " \ 236 235 ,'" + self.header['PSFMODEL'] + "' \ … … 248 247 ," + self.header['PC002002'] + " \ 249 248 )" 250 self.localStmt.execute(sql) 251 252 self.updateSurveyID("StackMeta") 253 self.updateFilterID("StackMeta") 249 self.scratchDb.stmt.execute(sql) 250 251 self.scratchDb.updateAllRows("StackMeta", "surveyID", str(self.surveyID)) 252 self.scratchDb.updateFilterID("StackMeta", self.filter) 253 self.scratchDb.updateAllRows("StackMeta", "dataRelease", str(self.dataRelease)) 254 254 self.updateStackTypeID("StackMeta") 255 self.updateDataRelease("StackMeta")256 255 257 256 ''' … … 308 307 ,X_PSF_SIG \ 309 308 ,Y_PSF_SIG \ 310 ,P SF_INST_FLUX\311 , PSF_INST_FLUX_SIG\309 ,POW(10.0, (-0.4*PSF_INST_MAG)) / "+self.header['EXPTIME']+" \ 310 ,ABS((PSF_INST_MAG_SIG*(POW(10.0, (-0.4*PSF_INST_MAG)) / "+self.header['EXPTIME']+")) / 1.085736) \ 312 311 ,POW(10.0, (-0.4*PEAK_FLUX_AS_MAG)) / "+self.header['EXPTIME']+" \ 313 312 ,SKY \ … … 339 338 FROM SkyChip_psf" 340 339 341 self.localStmt.execute(sql) 342 343 self.updateSurveyID("StackDetection") 344 self.updateFilterID("StackDetection") 340 self.scratchDb.stmt.execute(sql) 341 342 self.scratchDb.updateAllRows("StackDetection", "surveyID", str(self.surveyID)) 343 self.scratchDb.updateFilterID("StackDetection", self.filter) 344 self.scratchDb.updateAllRows("StackDetection", "dataRelease", str(self.dataRelease)) 345 self.scratchDb.updateAllRows("StackDetection", "primaryF", "0") 346 self.scratchDb.updateAllRows("StackDetection", "activeFlag", "0") 345 347 self.updateStackMetaID("StackDetection") 346 self.updateDataRelease("StackDetection")347 348 self.updateStackTypeID("StackDetection") 348 349 self.updateDvoIDs("StackDetection") 350 351 # now delete bad flux 352 self.scratchDb.reportAndDeleteRowsWithNULLS("StackDetection", "instFlux") 353 self.scratchDb.reportAndDeleteRowsWithNULLS("StackDetection", "objID") 354 349 355 350 356 ''' … … 361 367 362 368 try: 363 self. localStmt.execute(sql)369 self.scratchDb.stmt.execute(sql) 364 370 except: return 365 371 … … 383 389 ,petR90Err=b.PETRO_RADIUS_90_ERR \ 384 390 WHERE a.ippDetectID=b.IPP_IDET" 385 self.localStmt.execute(sql) 386 387 self.updateSurveyID("StackApFlx") 388 self.updateFilterID("StackApFlx") 391 self.scratchDb.stmt.execute(sql) 392 393 self.scratchDb.updateAllRows("StackApFlx", "surveyID", str(self.surveyID)) 394 self.scratchDb.updateFilterID("StackApFlx", self.filter) 395 self.scratchDb.updateAllRows("StackApFlx", "dataRelease", str(self.dataRelease)) 396 self.scratchDb.updateAllRows("StackApFlx", "primaryF", "0") 397 self.scratchDb.updateAllRows("StackApFlx", "activeFlag", "0") 389 398 self.updateStackMetaID("StackApFlx") 390 self.updateDataRelease("StackApFlx")391 399 self.updateStackTypeID("StackApFlx") 392 400 self.updateDvoIDs("StackApFlx") … … 401 409 sql = "INSERT INTO StackModelFit (ippDetectID) SELECT DISTINCT IPP_IDET from SkyChip_xfit" 402 410 try: 403 self. localStmt.execute(sql)411 self.scratchDb.stmt.execute(sql) 404 412 except: 405 413 return … … 414 422 self.updateModelFit("ser", "PS_MODEL_SERSIC") 415 423 416 self.updateSurveyID("StackModelFit") 417 self.updateFilterID("StackModelFit") 424 self.scratchDb.updateAllRows("StackModelFit", "surveyID", str(self.surveyID)) 425 self.scratchDb.updateFilterID("StackModelFit", self.filter) 426 self.scratchDb.updateAllRows("StackModelFit", "dataRelease", str(self.dataRelease)) 427 self.scratchDb.updateAllRows("StackModelFit", "primaryF", "0") 428 self.scratchDb.updateAllRows("StackModelFit", "activeFlag", "0") 418 429 self.updateStackMetaID("StackModelFit") 419 self.updateDataRelease("StackModelFit")420 430 self.updateStackTypeID("StackModelFit") 421 431 self.updateDvoIDs("StackModelFit") … … 433 443 VALUES (\ 434 444 " + self.header['STK_ID'] + ", " + imageID + ")" 435 self.localStmt.execute(sql) 445 self.scratchDb.stmt.execute(sql) 446 447 ''' 448 Populates the SkinnyObject table 449 ''' 450 def populateSkinnyObject(self): 451 self.logger.info("Procesing SkinnyObject table") 452 453 sql = "INSERT INTO SkinnyObject (\ 454 objID \ 455 ,ippObjID \ 456 ) \ 457 SELECT \ 458 objID \ 459 ,ippObjID \ 460 FROM StackDetection" 461 self.scratchDb.stmt.execute(sql) 462 463 self.scratchDb.updateAllRows("SkinnyObject", "surveyID", str(self.surveyID)) 464 self.scratchDb.updateAllRows("SkinnyObject", "dataRelease", str(self.dataRelease)) 465 466 ''' 467 Populates the ObjectCalColor table 468 ''' 469 def populateObjectCalColor(self): 470 self.logger.info("Procesing ObjectCalColor table") 471 472 sql = "INSERT INTO ObjectCalColor (\ 473 objID \ 474 ,ippObjID \ 475 ) \ 476 SELECT \ 477 objID \ 478 ,ippObjID \ 479 FROM StackDetection" 480 self.scratchDb.stmt.execute(sql) 481 482 self.scratchDb.updateFilterID("ObjectCalColor", self.filter) 483 self.scratchDb.updateAllRows("ObjectCalColor", "dataRelease", str(self.dataRelease)) 484 436 485 437 486 ''' … … 441 490 442 491 self.logger.info("Creating indexes on PSPS tables") 443 self. createIndex("StackDetection", "ippDetectID")444 self. createIndex("StackApFlx", "ippDetectID")445 self. createIndex("StackModelFit", "ippDetectID")492 self.scratchDb.createIndex("StackDetection", "ippDetectID") 493 self.scratchDb.createIndex("StackApFlx", "ippDetectID") 494 self.scratchDb.createIndex("StackModelFit", "ippDetectID") 446 495 447 496 ''' … … 451 500 452 501 self.logger.info("Creating indexes on IPP tables") 453 self.createIndex("SkyChip_psf", "IPP_IDET") 454 self.createIndex("SkyChip_xfit", "IPP_IDET") 455 self.createIndex("SkyChip_xrad", "IPP_IDET") 456 self.createIndex("SkyChip_xsrc", "IPP_IDET") 457 458 ''' 459 Temporary hack to fudge some object IDs 460 ''' 461 def fudgeIDs(self): 462 463 self.logger.info("Creating bogus IDs on all detections") 464 465 sql = "INSERT INTO dvoDetection (ippDetectID) SELECT IPP_IDET FROM SkyChip_psf"; 466 self.localStmt.execute(sql) 467 468 sql = "SELECT ippDetectID FROM dvoDetection" 469 rs = self.localStmt.executeQuery(sql) 470 471 ids = [] 472 while (rs.next()): 473 ids.append(rs.getInt(1)) 474 475 i = 1 476 o = 72010000000000001 477 478 for id in ids: 479 sql = "UPDATE dvoDetection SET ippObjID = %d, objID = %d WHERE ippDetectID = %s" % (i, o, id) 480 self.localStmt.execute(sql) 481 i = i + 1 482 o = o + 1 483 484 self.updateDvoIDs("StackDetection") 485 self.updateDvoIDs("StackApFlx") 486 self.updateDvoIDs("StackModelFit") 487 488 self.setMinMaxObjID("StackDetection") 502 self.scratchDb.createIndex("SkyChip_psf", "IPP_IDET") 503 self.scratchDb.createIndex("SkyChip_xfit", "IPP_IDET") 504 self.scratchDb.createIndex("SkyChip_xrad", "IPP_IDET") 505 self.scratchDb.createIndex("SkyChip_xsrc", "IPP_IDET") 489 506 490 507 ''' … … 498 515 a.stackDetectID = b.detectID, \ 499 516 a.objID = b.objID \ 500 WHERE a.ippDetectID = b.ippDetectID" 501 self.localStmt.execute(sql) 517 WHERE a.ippDetectID = b.ippDetectID \ 518 AND b.sourceID = " + self.header['SOURCEID'] + "\ 519 AND b.imageID = " + self.header['IMAGEID'] 520 self.scratchDb.stmt.execute(sql) 502 521 self.logger.info("...done") 503 522 … … 508 527 def populatePspsTables(self): 509 528 510 if not self.getIDsFromDVO(self.header['SOURCEID'], self.header['IMAGEID']): 511 return False 529 if not self.getIDsFromDVO(): return False 512 530 513 531 self.populateStackMeta() … … 516 534 self.populateStackApFlx() 517 535 self.populateStackToImage() 518 519 #self.fudgeIDs() 520 self.setMinMaxObjID("StackDetection") 536 self.populateSkinnyObject() 537 self.populateObjectCalColor() 538 539 self.setMinMaxObjID(["StackDetection"]) 521 540 522 541 return True … … 525 544 logger = logging.getLogger("stackbatch") 526 545 logger.info("Starting") 527 sky_id = 689 # TODO528 #sky_id = 299 # TODO529 546 gpc1Db = Gpc1Db(logger) 530 skyIDs = gpc1Db.getSkyIDsInThisDVODb("HAFTest.Staticsky") 531 skyIDs = [689] 547 skyIDs = gpc1Db.getIDsInThisDVODbForThisStage("MD04.Staticsky", "staticsky") 548 #skyIDs = [689] 549 #skyIDs = [299] 550 skyIDs = [306] 532 551 i = 0 533 552 for skyID in skyIDs: … … 545 564 stackBatch.importIppTables("") 546 565 if stackBatch.populatePspsTables(): 547 566 548 567 stackBatch.reportNullsInAllPspsTables(False) 549 568 stackBatch.exportPspsTablesToFits() 550 569 stackBatch.writeBatchManifest() 551 #stackBatch.createTarball()552 #stackBatch.publishToDatastore()570 stackBatch.createTarball() 571 stackBatch.publishToDatastore() 553 572 554 573 i = i + 1
Note:
See TracChangeset
for help on using the changeset viewer.
