def __loadModule(self, modules): if modules is None: logger.Info('No module list found') return None loaded_modules = [] for name in modules: loaded_module = importlib.import_module('modules.' + name.lower()) module = getattr(loaded_module, name) loaded_modules.append(module(self.__cmd.working_dir)) logger.Info('module : ' + name + ' loaded') return loaded_modules
def loadWaterfallModules(self): logger.Info('Waterfall module(s) loading :') self.__cmd.waterfall_modules = self.__getModulesFromConfig( self.__cmd.waterfall_modules, 'WATERFALL') self.__cmd.waterfall_modules = self.__getModulesFromConfig( self.__cmd.waterfall_modules, 'FORALL') return self.__loadModule(self.__cmd.waterfall_modules)
def loadPayloadModules(self): logger.Info('Payload module(s) loading :') self.__cmd.payload_modules = self.__getModulesFromConfig( self.__cmd.payload_modules, 'PAYLOAD') self.__cmd.payload_modules = self.__getModulesFromConfig( self.__cmd.payload_modules, 'FORALL') return self.__loadModule(self.__cmd.payload_modules)
def loadDemoddataModules(self): logger.Info('Demoddata module(s) loading :') self.__cmd.demoddata_modules = self.__getModulesFromConfig( self.__cmd.demoddata_modules, 'DEMODDATA') self.__cmd.demoddata_modules = self.__getModulesFromConfig( self.__cmd.demoddata_modules, 'FORALL') return self.__loadModule(self.__cmd.demoddata_modules)
def download(self): demoddata = self.observation[self.__json_id] if not any(demoddata): logger.Info('no demoddata found for the observation ' + str(self.observation['id']) + ' of ' + self.observation['start']) return fileHelper.create_dir_if_not_exist(self.full_path) for demod in demoddata: file_name = ntpath.basename(demod['payload_demod']) full_path_file = self.full_path + os.path.sep + file_name if os.path.exists(full_path_file): logger.Warning('pass ' + file_name + '... file already exist') return r = self.client.get(demod['payload_demod']) if r.status_code == 200: logger.Info('downloading...' + file_name) with open(full_path_file, "wb") as file: file.write(r.content) self.runModulesAfterDownload(file_name)
def extract(self): params = self.__create_request_params() page = 1 while True: r = self.__client.get_from_base(self.OBSERVATION_URL, params) if r.status_code != 200: break logger.Info('scanning page...' + params['page']) self.__read_page(r.json(), self.__cmd.start_date, self.__cmd.end_date) page += 1 params['page'] = str(page) print('\ndownloading started (Ctrl + C to stop)...\t~( ^o^)~') self.__create_workers_and_wait()
payload_modules = None demoddata_modules = None waterfall_modules = None if args.payload_modules is not None: payload_modules = args.payload_modules.split(',') if args.demoddata_modules is not None: demoddata_modules = args.demoddata_modules.split(',') if args.waterfall_modules is not None: waterfall_modules = args.waterfall_modules.split(',') cmd = ProgramCmd(args.norad_id, args.ground_station_id, start_date, end_date, args.status, args.working_dir, args.download_payload, args.download_waterfall, args.download_demoddata, payload_modules, demoddata_modules, waterfall_modules) session.save_program_parameters(cmd) obs = ObservationsService(cmd) obs.extract() logger.Info("\n\nall jobs are finished\t( ^ o^)\m/") except KeyboardInterrupt: print("Exit...") sys.exit() except ValueError as e: logger.Error(e) except Exception as ex: logger.Error(ex) # -s 2017-05-20T00:51:54 -e 2017-09-20T00:51:54 -n 25338 # -s 2018-01-20T00:51:54 -e 2018-01-21T00:51:54 -n 28654 # -s 2017-05-20T00:51:54 -e 2017-09-20T00:51:54 -n 25338 --waterfallmf TestModule