def __init__(self, filename=None, time_slot=None, satellite=None, instrument=None): # Setting up a granule from metadata if filename is None: SatelliteInstrumentScene.__init__(self, time_slot=time_slot, satellite=(satellite.satname, satellite.number, satellite.variant), instrument=instrument) conf = ConfigParser() conf.read(os.path.join(CONFIG_PATH, self.fullname + ".cfg")) self.file_template = str( conf.get(instrument + "-granules", "filename", raw=True)) self.directory = str( conf.get(instrument + "-granules", "dir", raw=True)) self.file_name = time_slot.strftime(self.file_template) self.directory = time_slot.strftime(self.directory) self.file_type = conf.get(instrument + "-granules", "type") self.granularity = datetime.timedelta( seconds=int(conf.get(instrument + "-granules", "granularity"))) self.span = float( conf.get(instrument + "-granules", "full_scan_period")) self.scan_width = int( conf.get(instrument + "-granules", "scan_width")) return # Setting up a granule from a filename filelist = glob.glob(os.path.join(CONFIG_PATH, "*.cfg")) the_directory, the_name = os.path.split(filename) self.satname = None for fil in filelist: conf = ConfigParser() conf.read(fil) try: instruments = eval(conf.get("satellite", "instruments")) for instrument in instruments: directory = str(conf.get(instrument + "-granules", "dir")) file_template = str( conf.get(instrument + "-granules", "filename", raw=True)) file_glob = globify(file_template) if (os.path.samefile(the_directory, directory) and fnmatch(the_name, file_glob)): try: self.file_template = file_template self.file_name = the_name pos1, pos2 = beginning(self.file_template) time_slot = strptime(self.file_name[:pos2], self.file_template[:pos1]) SatelliteInstrumentScene.__init__( self, time_slot=time_slot, satellite=(conf.get("satellite", "satname"), conf.get("satellite", "number"), conf.get("satellite", "variant")), instrument=instrument) self.file_type = conf.get(instrument + "-granules", "type") self.directory = the_directory self.granularity = datetime.timedelta(seconds=int( conf.get(instrument + "-granules", "granularity"))) self.span = float( conf.get(instrument + "-granules", "full_scan_period")) self.scan_width = int( conf.get(instrument + "-granules", "scan_width")) except (NoSectionError, NoOptionError): raise IOError("Inconsistency detected in " + fil) break if self.satname is not None: break except (NoSectionError, NoOptionError): pass if not self.satname: raise ValueError("Can't find any matching satellite for " + filename)
def __init__(self, filename=None, time_slot=None, satellite=None, instrument=None): # Setting up a granule from metadata if filename is None: SatelliteInstrumentScene.__init__(self, time_slot=time_slot, satellite=(satellite.satname, satellite.number, satellite.variant), instrument=instrument) conf = ConfigParser() conf.read(os.path.join(CONFIG_PATH, self.fullname + ".cfg")) self.file_template = str(conf.get(instrument+"-granules", "filename", raw=True)) self.directory = str(conf.get(instrument+"-granules", "dir", raw=True)) self.file_name = time_slot.strftime(self.file_template) self.directory = time_slot.strftime(self.directory) self.file_type = conf.get(instrument + "-granules", "type") self.granularity = datetime.timedelta( seconds=int(conf.get(instrument + "-granules", "granularity"))) self.span = float(conf.get(instrument + "-granules", "full_scan_period")) self.scan_width = int(conf.get(instrument + "-granules", "scan_width")) return # Setting up a granule from a filename filelist = glob.glob(os.path.join(CONFIG_PATH, "*.cfg")) the_directory, the_name = os.path.split(filename) self.satname = None for fil in filelist: conf = ConfigParser() conf.read(fil) try: instruments = eval(conf.get("satellite", "instruments")) for instrument in instruments: directory = str(conf.get(instrument+"-granules", "dir")) file_template = str(conf.get(instrument+"-granules", "filename", raw=True)) file_glob = globify(file_template) if(os.path.samefile(the_directory, directory) and fnmatch(the_name, file_glob)): try: self.file_template = file_template self.file_name = the_name pos1, pos2 = beginning(self.file_template) time_slot = strptime(self.file_name[:pos2], self.file_template[:pos1]) SatelliteInstrumentScene.__init__( self, time_slot=time_slot, satellite=(conf.get("satellite", "satname"), conf.get("satellite", "number"), conf.get("satellite", "variant")), instrument=instrument) self.file_type = conf.get(instrument + "-granules", "type") self.directory = the_directory self.granularity = datetime.timedelta( seconds=int(conf.get(instrument + "-granules", "granularity"))) self.span = float(conf.get(instrument + "-granules", "full_scan_period")) self.scan_width = int(conf.get(instrument + "-granules", "scan_width")) except (NoSectionError, NoOptionError): raise IOError("Inconsistency detected in " + fil) break if self.satname is not None: break except (NoSectionError, NoOptionError): pass if not self.satname: raise ValueError("Can't find any matching satellite for "+filename)