- 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/stackbatch.py
r37133 r37138 75 75 # self.logger.infoPair("y stackID ",ystackID) 76 76 # raise 77 # from each stack get fits name from getStackStageCmf77 # from each stack, get fits name from getStackStageCmf 78 78 if gstackID > 0: 79 79 self.logger.infoPair ("finding fits file for: ","g.00000") … … 141 141 142 142 metastackid = -999 143 if gstackID > 0: 144 metastackid = gstackID 145 if rstackID > 0: 146 metastackid = rstackID 147 if istackID > 0: 148 metastackid = istackID 149 if zstackID > 0: 150 metastackid = zstackID 151 if ystackID > 0: 152 metastackid = ystackID 143 if gstackID > 0: metastackid = gstackID 144 if rstackID > 0: metastackid = rstackID 145 if istackID > 0: metastackid = istackID 146 if zstackID > 0: metastackid = zstackID 147 if ystackID > 0: metastackid = ystackID 148 153 149 #there is probably a better way to do this 154 150 if metastackid < 0: … … 159 155 ## this should be ok - it takes a stack_id and returns filter/skycell etc. 160 156 161 162 157 if not meta: 163 158 self.logger.errorPair("Could not get stack", "metadata") … … 174 169 # we need 1133.081 for skycell, but store as an int, so instead store 1133081 175 170 # projection cell is just the 1133 bit 171 176 172 # This Is how it should be done 177 173 #self.projectioncell = self.skycell[8:12] … … 217 213 218 214 self.scratchDb.dropTable("StackToImage") 219 # self.testprint()215 # self.testprint() 220 216 221 217 # for PV2 we will have (grizy) of stack meta and skychip 222 223 218 224 219 # delete IPP tables … … 1335 1330 def exportPspsTablesToFits(self, regex="(.*)"): 1336 1331 return super(StackBatch, self).exportPspsTablesToFits("(Stack.*)") 1332 1333 ''' 1334 Imports IPP tables from FITS file 1335 Accepts a regular expression to match the tables so not all tables need to be imported 1336 (This regex feature is not currently used...) 1337 ''' 1338 def importIppTables(self, columns="*", tableRE=""): 1339 1340 self.logger.infoPair("Importing ST tables with table match expression: ", tableRE) 1341 1342 # print "trying to read ", self.fits.getPath() 1343 1344 # ST has 5 cmf files - all with the same table names. To counter this we do it like this. 1345 1346 filters = ["g","r","i","z","y"] 1347 count = 0 1348 for f in filters: 1349 skip = 0 1350 if (f == "g"): 1351 if self.gstackID > 0: 1352 fileName = self.gfits.getPath() 1353 else: 1354 skip = 1 1355 if (f == "r"): 1356 if self.rstackID > 0: 1357 fileName = self.rfits.getPath() 1358 else: 1359 skip = 1 1360 if (f == "i"): 1361 if self.istackID > 0: 1362 fileName = self.ifits.getPath() 1363 else: 1364 skip = 1 1365 if (f == "z"): 1366 if self.zstackID > 0: 1367 fileName = self.zfits.getPath() 1368 else: 1369 skip = 1 1370 if (f == "y"): 1371 if self.ystackID > 0: 1372 fileName = self.yfits.getPath() 1373 else: 1374 skip = 1 1375 1376 if skip == 1: 1377 self.logger.infoPair("no files for filter" , f) 1378 else: 1379 self.logger.infoPair("using filename:",fileName) 1380 1381 try: 1382 tables = stilts.treads(fileName) 1383 except: 1384 self.logger.errorPair("STILTS could not import from", fileName) 1385 return False 1386 1387 #count = 0 1388 for table in tables: 1389 1390 # print "import smf table ", table 1391 match = re.match(tableRE, table.name) 1392 1393 if not match: continue 1394 self.logger.infoPair("Reading IPP table", f + table.name) 1395 table = stilts.tpipe(table, cmd='addcol table_index $0') 1396 1397 table = stilts.tpipe(table, cmd='explodeall') 1398 1399 # print "read smf table ", table 1400 1401 # drop any previous tables before import 1402 self.scratchDb.dropTable(f + table.name) 1403 1404 # IPP FITS files are littered with infinities, so remove these 1405 self.logger.debug("Removing Infinity values from all columns") 1406 table = stilts.tpipe(table, cmd='keepcols "' + columns + '"') 1407 table = stilts.tpipe(table, cmd='replaceval -Infinity null *') 1408 table = stilts.tpipe(table, cmd='replaceval Infinity null *') 1409 # print "cleaned up values ", table 1410 1411 try: 1412 table.write(self.scratchDb.url + '#' + f + table.name) 1413 count = count + 1 1414 except: 1415 self.logger.exception("Problem writing table '" + f + table.name + "' to the database") 1416 1417 self.logger.infoPair("Done. Imported", "%d tables" % count) 1418 self.indexIppTables() 1419 1420 return True
Note:
See TracChangeset
for help on using the changeset viewer.
