- Timestamp:
- Jul 29, 2014, 12:16:23 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20140717/ippToPsps/jython/batch.py
r37133 r37138 381 381 self.tablesToExport.append(table.name) 382 382 383 return self.alterPspsTables();383 return True 384 384 385 385 ''' … … 391 391 392 392 ''' 393 Alter PSPS tables 393 Alter PSPS tables (Subclass implements this) 394 394 ''' 395 395 def alterPspsTables(self): … … 447 447 self.indexIppTables() 448 448 449 return True450 '''451 Imports IPP tables from FITS file452 453 Accepts a regular expression filter so not all tables need to be imported454 '''455 def importIppSTTables(self, columns="*", filter=""):456 457 self.logger.infoPair("Importing ST tables with filter", filter)458 459 # print "trying to read ", self.fits.getPath()460 461 # ST has 5 cmf files - all with the same table names. To counter this we do it like this.462 463 filters = ["g","r","i","z","y"]464 count = 0465 for f in filters:466 skip = 0467 if (f == "g"):468 if self.gstackID > 0:469 fileName = self.gfits.getPath()470 else:471 skip = 1472 if (f == "r"):473 if self.rstackID > 0:474 fileName = self.rfits.getPath()475 else:476 skip = 1477 if (f == "i"):478 if self.istackID > 0:479 fileName = self.ifits.getPath()480 else:481 skip = 1482 if (f == "z"):483 if self.zstackID > 0:484 fileName = self.zfits.getPath()485 else:486 skip = 1487 if (f == "y"):488 if self.ystackID > 0:489 fileName = self.yfits.getPath()490 else:491 skip = 1492 493 if skip == 1:494 self.logger.infoPair("no files for filter" , f)495 else:496 self.logger.infoPair("using filename:",fileName)497 498 try:499 tables = stilts.treads(fileName)500 except:501 self.logger.errorPair("STILTS could not import from", fileName)502 return False503 504 #count = 0505 for table in tables:506 507 # print "import smf table ", table508 match = re.match(filter, table.name)509 510 if not match: continue511 self.logger.infoPair("Reading IPP table", f + table.name)512 table = stilts.tpipe(table, cmd='addcol table_index $0')513 514 table = stilts.tpipe(table, cmd='explodeall')515 516 # print "read smf table ", table517 518 # drop any previous tables before import519 self.scratchDb.dropTable(f + table.name)520 521 # IPP FITS files are littered with infinities, so remove these522 self.logger.debug("Removing Infinity values from all columns")523 table = stilts.tpipe(table, cmd='keepcols "' + columns + '"')524 table = stilts.tpipe(table, cmd='replaceval -Infinity null *')525 table = stilts.tpipe(table, cmd='replaceval Infinity null *')526 # print "cleaned up values ", table527 528 try:529 table.write(self.scratchDb.url + '#' + f + table.name)530 # XXX this one is not needed531 # self.scratchDb.killLastConnectionID()532 count = count + 1533 except:534 self.logger.exception("Problem writing table '" + f + table.name + "' to the database")535 536 self.logger.infoPair("Done. Imported", "%d tables" % count)537 self.indexIppTables()538 539 449 return True 540 450 … … 641 551 def run(self): 642 552 643 # this is badly named : it creates the tables and then fills in 644 # the ImageMeta tables for each ota (alterPspsTables) 553 # creates the empty PSPS tables 645 554 if not self.createEmptyPspsTables(): 646 555 self.logger.errorPair("Aborting this batch", "could not create empty PSPS tables") … … 648 557 raise 649 558 559 # fill in basic, not cmf/smf data (eg, ImageMeta for detectionbatch) 560 if not self.alterPspsTables(): 561 self.logger.errorPair("Aborting this batch", "could not alter PSPS tables for batch type") 562 self.ippToPspsDb.updateProcessed(self.batchID, -1) 563 raise 564 650 565 # for P2/ST, this reads the detection tables from the CMF/SMF file(s) 651 566 # for OB, this imports object data from DVO 652 if self.batchType == "ST": 653 self.logger.infoPair("did we get here","?") 654 if not self.importIppSTTables(): 655 self.logger.errorPair("skipping this batch", "could not import ST IPP tables") 656 self.ippToPspsDb.updateProcessed(self.batchID, -1) 657 raise 658 self.logger.infoPair("we did the ST","yes") 659 else: 660 # if not ST we do this 661 if not self.importIppTables(): 662 if self.batchType == "OB": 663 self.logger.errorPair("skipping this batch", "no dvo tables for this region") 664 self.ippToPspsDb.updateProcessed(self.batchID, 1) 665 return True 666 self.logger.errorPair("Aborting this batch", "could not import IPP tables") 667 self.ippToPspsDb.updateProcessed(self.batchID, -1) 668 raise 567 if not self.importIppTables(): 568 if self.batchType == "OB": 569 self.logger.errorPair("skipping this batch", "no dvo tables for this region") 570 self.ippToPspsDb.updateProcessed(self.batchID, 1) 571 return True 572 self.logger.errorPair("Aborting this batch", "could not import IPP tables") 573 self.ippToPspsDb.updateProcessed(self.batchID, -1) 574 raise 575 669 576 self.logger.infoPair("populatePspsTables","ok") 670 577 if not self.populatePspsTables(): … … 700 607 tarballFile) 701 608 609 # XXX why is this down here?? 702 610 from datastore import Datastore 703 611
Note:
See TracChangeset
for help on using the changeset viewer.
