IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 6, 2015, 8:37:34 AM (11 years ago)
Author:
eugene
Message:

add 2nd diff detection pass to insert the negative image detections (inv.cmf)

File:
1 edited

Legend:

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

    r39038 r39049  
    340340        return addIDs
    341341
    342 
    343 
    344 
    345 
    346 
    347 
    348 
    349342    '''
    350343    Gets some stack-stage meta data for this sky_id # TODO this SQL could surely be improved
     
    408401               AND warp_skyfile_id = " +  str(warpSkyfileID)
    409402
    410         try:
    411             rs = self.executeQuery(sql)
    412             rs.first()
    413         except:
     403        rs = self.executeQuery(sql)
     404        if not rs.first():
    414405            self.logger.errorPair("Can't query for", "forced warp meta data")
     406            os._exit(3)
    415407
    416408        try:
     
    435427        self.logger.debug("Querying GPC1 for diff meta data")
    436428
    437         meta = []
     429        meta = {}
     430
    438431        sql = "SELECT \
    439432               filter,\
     
    442435               stack2, \
    443436               skycell_id, \
    444                diffRun.software_ver, \
     437               diffRun.software_ver as software_ver, \
    445438               exp_time, \
    446                (to_days(dateobs)-678941 + time_to_sec(dateobs)/86400.), \
     439               (to_days(dateobs)-678941 + time_to_sec(dateobs)/86400.) as obsTime, \
    447440               diffInputSkyfile.tess_id, \
    448441               exp_id \
     
    454447               JOIN rawExp using (exp_id) \
    455448               WHERE diff_skyfile_id = %d" % diffSkyfileID
    456         #this is a crappy way to get the mjd from the diff but we don't save it anywhere       
    457         try:
    458             rs = self.executeQuery(sql)
    459             rs.first()
    460         except:
     449
     450        rs = self.executeQuery(sql)
     451        if not rs.first():
    461452            self.logger.infoPair ("this sql is broken:",sql)
    462453            self.logger.errorPair("Can't query for", "stack meta data")
     454            os._exit(3)
    463455           
    464456        try:
    465             meta.append(rs.getString(1))
    466             meta.append(rs.getString(2))
    467             meta.append(rs.getString(3))
    468             meta.append(rs.getString(4))
    469             meta.append(rs.getString(5))
    470             meta.append(rs.getString(6))
    471             meta.append(rs.getString(7))
    472             meta.append(rs.getString(8))
    473             meta.append(rs.getString(9))
    474             meta.append(rs.getString(10))
     457            meta['filter']       = rs.getString(1)
     458            meta['diff_mode']    = rs.getString(2)
     459            meta['warp1']        = rs.getString(3)
     460            meta['stack2']       = rs.getString(4)
     461            meta['skycell_id']   = rs.getString(5)
     462            meta['software_ver'] = rs.getString(6)
     463            meta['exp_time']     = rs.getString(7)
     464            meta['obsTime']      = rs.getString(8)
     465            meta['tess_id']      = rs.getString(9)
     466            meta['exp_id']       = rs.getString(10)
    475467
    476468        except:
     
    515507       
    516508        if len(files) < 1: return None
     509        fits = Fits(self.logger, self.config, files[0])
     510        return fits
     511
     512    '''
     513    get diff stage cmf name
     514    '''
     515    def getDiffStagePathBase(self, dvoDb, diffSkyfileID):
     516        print "got here, diffstagecmf"
     517        sql = "SELECT DISTINCT diffSkyfile.path_base \
     518               FROM mergedvodbRun join minidvodbRun using (minidvodb_id) \
     519               JOIN addRun using (minidvodb_name) \
     520               JOIN diffInputSkyfile on (diff_skyfile_id = stage_extra1 \
     521               AND diff_id = stage_id AND stage = 'diff') \
     522               JOIN diffSkyfile using (diff_id, skycell_id, diff_skyfile_id) \
     523               WHERE diff_skyfile_id = " + str(diffSkyfileID) + " \
     524               AND minidvodbRun.state = 'merged' \
     525               AND mergedvodbRun.state = 'full' \
     526               AND mergedvodbRun.mergedvodb = '" + dvoDb + "' \
     527               AND stage = 'diff'"
     528
     529        rs = self.executeQuery(sql)
     530
     531        if not rs.first():
     532            self.logger.errorPair("missing cmf entry diff_skyfile_id:", str(diff_skyfile_id))
     533            # self.logger.errorPair("no diff cmfs found for diff_skyfile_id = %d" %diff_skyfile_id)
     534            return None
     535
     536        pathBase = rs.getString(1)
     537        return pathBase
     538
     539    '''
     540    get diff stage cmf name
     541    '''
     542    def getDiffStageCmfForPathBase(self, pathBase):
     543
     544        files = []
     545        if pathBase.startswith("neb"):
     546            self.logger.debugPair("searching for nebulous files", pathBase)
     547            f = os.popen("neb-ls -p " + pathBase + ".cmf")
     548            for i in f.readlines():
     549                self.logger.debugPair("real file", i.rstrip())
     550                files.append(i.rstrip())
     551        else:
     552            files = glob.glob(pathBase + ".cmf")
     553
     554        if len(files) < 1:
     555            self.logger.errorPair ("no cmf file found matching pathBase", pathBase + ".cmf")
     556            return None
     557
    517558        fits = Fits(self.logger, self.config, files[0])
    518559        return fits
Note: See TracChangeset for help on using the changeset viewer.