IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 31182


Ignore:
Timestamp:
Apr 5, 2011, 3:07:50 PM (15 years ago)
Author:
rhenders
Message:

Method to populate StackToImage table; using new Gpc1 class to get all cmfs for given sky_id, creating a batch for each; different super-constructor args; more fields populated

File:
1 edited

Legend:

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

    r31118 r31182  
    44from java.lang import *
    55from java.sql import *
     6
     7from gpc1 import Gpc1
    68from batch import Batch
    79
     
    1113    Constructor
    1214    '''
    13     def __init__(self):
     15    def __init__(self, skyID, inputFile):
    1416       super(StackBatch, self).__init__(
    1517               "stack",
    16                #"/data/ipp053.0/eugene/md04.20110320/staticsky/MD04.V2/skycell.087/MD04.V2.skycell.087.stk.280.000.cmf",
    17                "demo.fits",
    18                "stack.fits",
    19                "localhost",
    20                "ipptopsps_scratch",
    21                "ipp",
    22                "ipp",
     18               inputFile,
    2319               "MD04") # TODO
    2420
    25 
     21       self.log("StackBatch constructor. Creating batch from input file here: ''" + inputFile + "'")
     22
     23       # obs time makes no sense except for nightly stacks
     24       if self.header['STK_TYPE'] != "NIGHTLY_STACK": self.header['MJD-OBS'] = "-999"
     25
     26       # determine skycell from header value
     27       self.skycell = self.header['SKYCELL']
     28       self.skycell = self.skycell[8:]
     29
     30       # get filterID using init table
     31       self.filter = self.header['FPA.FILTER']
     32       self.filter = self.filter[0:1]
     33
     34       # create an output filename, which is {skycellID}{filterID}.FITS
     35       self.outputFitsPath = "%s%07d.FITS" % (self.filter, skyID);
     36
     37       # set some constants
     38       self.dataRelease = "1"
     39       self.stackVer = "1"
     40       self.historyModNum = "0"
     41
     42
     43    '''
     44    Updates a table with data release number
     45    '''
     46    def updateDataRelease(self, table):
     47
     48        sql = "UPDATE " + table + "  SET dataRelease=" + self.dataRelease
     49        self.localStmt.execute(sql)
    2650
    2751    '''
     
    3155
    3256        sql = "UPDATE " + table + "  SET stackMetaID=" + self.header['STK_ID']
    33         self.stmt.execute(sql)
     57        self.localStmt.execute(sql)
    3458
    3559    '''
     
    3963
    4064        sql = "UPDATE "+table+" AS a, StackType AS b SET a.stackTypeID=b.stackTypeID WHERE b.name = '"+self.header['STK_TYPE']+"'"
    41         self.stmt.execute(sql)
     65        self.localStmt.execute(sql)
    4266
    4367
     
    90114        WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition
    91115
    92         self.stmt.execute(sql)
     116        self.localStmt.execute(sql)
    93117
    94118    '''
     
    138162        WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'"
    139163
    140         self.stmt.execute(sql)
     164        self.localStmt.execute(sql)
    141165
    142166        # sersic fit has an extra parameter
     
    153177            WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'"
    154178
    155             self.stmt.execute(sql)
     179            self.localStmt.execute(sql)
    156180
    157181
     
    197221        ," + self.header['PC002002'] + " \
    198222        )"
    199         self.stmt.execute(sql)
     223        self.localStmt.execute(sql)
    200224
    201225        self.updateSurveyID("StackMeta")
     
    212236        sql = "INSERT INTO StackDetection (\
    213237               ippDetectID \
     238               ,skyCellID \
     239               ,stackVer \
     240               ,obsTime \
    214241               ,xPos \
    215242               ,yPos \
     
    225252               ,psfWidMinor \
    226253               ,psfTheta \
     254               ,infoFlag \
    227255               ,psfCf \
    228256               ,nFrames \
     257               ,assocDate \
     258               ,historyModNum \
    229259               ) \
    230260               SELECT \
    231261               IPP_IDET \
     262               ," + self.skycell + " \
     263               ," + self.stackVer + " \
     264               ," + self.header['MJD-OBS'] + " \
    232265               ,X_PSF \
    233266               ,Y_PSF \
     
    243276               ,PSF_MINOR \
    244277               ,PSF_THETA \
     278               ,FLAGS << 32 | FLAGS2 \
    245279               ,PSF_QF \
    246280               ,N_FRAMES \
     281               ," + self.dateStr + " \
     282               ," + self.historyModNum + " \
    247283               FROM SkyChip_psf"
    248284
    249         self.stmt.execute(sql)
    250 
    251         if self.header['STK_TYPE'] != "NIGHTLY_STACK":
    252             sql = "UPDATE StackDetection SET obsTime = " + self.header['MJD-OBS']
    253             self.stmt.execute(sql)
    254 
    255 
    256         sql = "UPDATE StackDetection SET skycellID = " + self.skycell + ", assocDate = '"+self.dateStr+"'"
    257         self.stmt.execute(sql)
     285        self.localStmt.execute(sql)
     286
    258287        self.updateSurveyID("StackDetection")
    259288        self.updateFilterID("StackDetection")
    260289        self.updateStackMetaID("StackDetection")
     290        self.updateDataRelease("StackDetection")
    261291        self.updateStackTypeID("StackDetection")
    262292
     
    272302               DISTINCT IPP_IDET \
    273303               FROM SkyChip_xrad"
    274         self.stmt.execute(sql)
    275 
     304        self.localStmt.execute(sql)
     305
     306        # TODO temporarily loading 1st convolved fluxes into unconvolved fields
     307        self.log("    Adding un-convolved fluxes")
     308        self.updateApFlxs("", "< 7.0")
    276309        self.log("    Adding 1st convolved fluxes")
    277310        self.updateApFlxs("c1", "< 7.0")
     
    279312        self.updateApFlxs("c2", "> 7.0")
    280313
    281         self.log("    Adding petrosian stuff for extended sources")
     314        self.log("    Adding petrosians for extended sources")
    282315        sql = "UPDATE StackApFlx AS a, SkyChip_xsrc AS b SET \
    283316        petRadius=b.PETRO_RADIUS \
     
    290323        ,petR90Err=b.PETRO_RADIUS_90_ERR \
    291324        WHERE a.ippDetectID=b.IPP_IDET"
    292         self.stmt.execute(sql)
     325        self.localStmt.execute(sql)
    293326
    294327        self.updateSurveyID("StackApFlx")
    295328        self.updateFilterID("StackApFlx")
    296329        self.updateStackMetaID("StackApFlx")
     330        self.updateDataRelease("StackApFlx")
    297331        self.updateStackTypeID("StackApFlx")
    298 
    299         #rs = stmt.executeQuery(sql)
    300         # list = []
    301 
    302         #while (rs.next()):
    303 
    304         #       print rs.getString(1)
    305 
    306         #rs.close()
    307332
    308333    '''
     
    314339        # insert all the detections
    315340        sql = "INSERT INTO StackModelFit (ippDetectID) SELECT DISTINCT IPP_IDET from SkyChip_xfit"
    316         self.stmt.execute(sql)
     341        self.localStmt.execute(sql)
    317342
    318343        # populate model parameters
     
    327352        self.updateFilterID("StackModelFit")
    328353        self.updateStackMetaID("StackModelFit")
     354        self.updateDataRelease("StackModelFit")
    329355        self.updateStackTypeID("StackModelFit")
    330356
     357    '''
     358    Populates the StackToImage table
     359    '''
     360    def populateStackToImage(self):
     361        self.log("Procesing StackToImage table")
     362
     363        sql = "INSERT INTO StackToImage (stackMetaID) VALUES (" + self.header['STK_ID'] + ")"
     364        self.localStmt.execute(sql)
    331365
    332366    '''
     
    356390    def populatePspsTables(self):
    357391
    358         # determine skycell from header value
    359         self.skycell = self.header['SKYCELL']
    360         self.skycell = self.skycell[8:]
    361 
    362         # get filterID using init table
    363         self.filter = self.header['FPA.FILTER']
    364         self.filter = self.filter[0:1]
    365 
    366392        self.populateStackMeta()
    367393        self.populateStackDetection()
    368394        self.populateStackModelFit()
    369395        self.populateStackApFlx()
    370 
    371    
    372 stackBatch = StackBatch()
    373 stackBatch.createEmptyPspsTables()
    374 stackBatch.importIppTables(".*psf")
    375 stackBatch.populatePspsTables()
    376 stackBatch.exportPspsTablesToFits()
     396        self.populateStackToImage()
     397
     398
     399sky_id = 299
     400gpc1 = Gpc1()
     401cmfFiles = gpc1.getStackStageCmfs(sky_id)
     402
     403i = 0
     404for file in cmfFiles:
     405
     406    stackBatch = StackBatch(sky_id, file)
     407    stackBatch.createEmptyPspsTables()
     408    stackBatch.importIppTables(".*psf")
     409    stackBatch.populatePspsTables()
     410    stackBatch.reportNullsInAllPspsTables(False)
     411    #stackBatch.replaceAllPspsNulls("-999")
     412    stackBatch.exportPspsTablesToFits()
     413    i = i + 1
     414    if i > 0: break # TODO just doing one filter for now
     415
Note: See TracChangeset for help on using the changeset viewer.