Exemple #1
0
    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')
Exemple #6
0
def main():
    logger = create_log(log_name="mqtt_consumer")
    client = MQTTConsumer(logger=logger)
    client.connect_system()
Exemple #7
0
def main():
    logger = create_log(log_name="mqtt_publisher")
    client = MQTTPublisher(logger=logger)
    client.connect_system()
    start_ciclying(client)