def dep_init(self, fullRun=True): ''' Perform specific initialization tasks for DEP processing. ''' #TODO: exit if existence of output/stage dirs? Maybe put override in config? #store config self.koaUrl = self.config['API']['KOAAPI'] self.telUrl = self.config['API']['TELAPI'] self.metadataTablesDir = self.config['MISC']['METADATA_TABLES_DIR'] #create log if it does not exist if not self.log: self.log = cl.create_log(self.rootDir, self.instr, self.utDate, True) self.log.info('instrument.py: log created') #check and create dirs self.init_dirs(fullRun) #create README (output dir with everything before /koadata##/... stripped off) readmeFile = self.dirs['output'] + '/README'; with open(readmeFile, 'w') as f: path = self.dirs['output'] # match = re.search( r'.*(/.*/.*/\d\d\d\d\d\d\d\d)$', path, re.M) # if match: path = match.groups(0)[0] f.write(path + '\n')
def __init__(self, ut_date, instr, stage_dir, log=None): """ Initialization function for the ProgSplit class @type ut_date: string @param ut_date: Date of observaton in UT timezone @type instr: string @param instr: Instrument that is being observed @type stage_dir: string @param stage_dir: directory we are moving processed files to """ #save inputs self.utDate = ut_date self.instrument = instr self.stageDir = stage_dir self.log = log #consts self.instrList = { 'DEIMOS' :2, 'ESI' :2, 'HIRES' :1, 'KCWI' :2, 'LRIS' :1, 'MOSFIRE' :1, 'NIRC2' :2, 'NIRSPEC' :2, 'OSIRIS' :1, 'NIRES' :2} self.engineering = {'kcwieng' :'outdir', 'kcwirun' :'outdir', 'hireseng' :'outdir', 'nspeceng' :'outdir', 'nirc2eng' :'outdir', 'engineering' :'observer', 'dmoseng' :'outdir', 'lriseng' :'outdir', 'esieng' :'outdir', 'keck ipdm' :'observer', 'nirspec' :'observer', 'nireseng' :'outdir', 'osrseng' :'outdir', 'osiriseng' :'outdir', 'moseng' :'outdir' } self.too = {'_ToO_':'outdir'} self.api = 'https://www.keck.hawaii.edu/software/db_api/' #var init self.fileList = [] self.numFiles = 0 self.outdirs = {} self.programs = [] self.suntimes = None self.semester = self.get_semester() #log self.rootDir = self.stageDir.split('/stage')[0] if not self.log: self.log = cl.create_log(self.rootDir, instr, ut_date)
def __init__(self,history=None): logger = create_log('backgroundSubtractor') logger.info('backgroundSubtractor instance created') self._history = frameHistory() self.backgroundModel = None self._STATIC_HISTORY = False self._history.N = 100 #Use 100 frames by default if history != None: self.setHistory(history)
def getProgInfo(utdate, instrument, stageDir, useHdrProg=False, splitTime=None, log=None, test=False): if test: rootDir = stageDir.split('/stage')[0] log = cl.create_log(rootDir, instrument, utdate+'_TEST') #input var compat utdate = utdate.replace('/','-') instrument = instrument.upper() #gather info progSplit = ProgSplit(utdate, instrument, stageDir, log) progSplit.check_stage_dir() progSplit.check_instrument() progSplit.read_file_list() #get list of programs and determine if instrument split night progSplit.get_programs() numSplits = len(progSplit.programs) if progSplit.programs else 0 #No split if numSplits == 1: progSplit.log.info('getProgInfo: ' + utdate + ' is not a split night') progSplit.log.info('getProgInfo: Assigning to ' + progSplit.instrument + ' PI (' + progSplit.programs[0]['ProjCode'] + ')') progSplit.assign_to_pi(0) # Split night elif numSplits > 1: progSplit.sort_by_time(progSplit.programs) progSplit.log.info('getProgInfo: ' + utdate + ' is a split night with ' + str(len(progSplit.programs)) + ' programs: ' + str(progSplit.programs)) progSplit.get_sun_times() progSplit.get_outdirs(progSplit.programs, splitTime) progSplit.assign_outdirs_to_programs() progSplit.split_multi() #no proj codes # TODO: only throw error if there was some science files (ie this could be engineering) else: progSplit.log.warning('No ' + instrument + ' programs scheduled this night.') #special reprocessing check to look in header for PROG* info if all else fails if useHdrProg: progSplit.use_header_prog_vals(useHdrProg) #write out result fname = stageDir + '/newproginfo.txt' if test: fname += '.TEST' with open(fname, 'w') as ofile: for progfile in progSplit.fileList: line = progfile['file'] line += "\t" + progfile['outdir'] line += "\t" + progfile['proginst'] line += "\t" + progfile['progid'] line += "\t" + progfile['progpi'] line += "\t" + progfile['progtitl'] line += "\n" ofile.writelines(line) #return data written for convenience progSplit.log.info('getProgInfo: finished, {} created'.format(fname)) return progSplit.fileList
def __init__(self,history=None): backgroundSubtractor.__init__(self) logger = create_log(__name__) logger.info('backgroundSubtractorMean instance created')
def main(): logger = create_log(log_name="mqtt_consumer") client = MQTTConsumer(logger=logger) client.connect_system()
def main(): logger = create_log(log_name="mqtt_publisher") client = MQTTPublisher(logger=logger) client.connect_system() start_ciclying(client)