def getISISid(infile): serial_num = getsn(from_=infile) # in later versions of getsn, serial_num is returned as bytes if isinstance(serial_num, bytes): serial_num = serial_num.decode() newisisSerial = serial_num.replace('\n', '') return newisisSerial
def getISISid(infile): """ Use ISIS to get the serial number of a file. Parameters ---------- infile : str A string file path for which the serial number will be calculated. Returns ------- newisisSerial : str The serial number of the input file. """ try: serial_num = isis.getsn(from_=infile) except (ProcessError, KeyError): # If either isis was not imported or a serial number could not be # generated from the infile set the serial number to an empty string return None # in later versions of getsn, serial_num is returned as bytes if isinstance(serial_num, bytes): serial_num = serial_num.decode() newisisSerial = serial_num.replace('\n', '') return newisisSerial
def getISISid(infile): """ Use ISIS to get the serial number of a file. Parameters ---------- infile : str A string file path for which the serial number will be calculated. Returns ------- newisisSerial : str The serial number of the input file. """ serial_num = isis.getsn(from_=infile) # in later versions of getsn, serial_num is returned as bytes if isinstance(serial_num, bytes): serial_num = serial_num.decode() newisisSerial = serial_num.replace('\n', '') return newisisSerial
def generate_sensors(cubes, directory=None, clean=False): """ Generate a set of USGSCSM sensor models from a list of ISIS cube files Parameters ---------- cubes : str Directory/filename of a file containing ISIS cube file paths directory : str Output directory to save resulting json files. Defaults to the same directory as cube list file clean : flag Option to delete json file outputs Returns ------- sensors : dictionary Dictionary mapping ISIS serial numbers to USGSCSM sensor models """ if directory is None: directory = os.path.dirname(cubes) isd_files = [] sensors = {} for line in open(cubes): basename = os.path.splitext(os.path.basename(line.strip()))[0] isd = os.path.join(directory, basename + '.json') isd_files.append(isd) with open(isd, 'w+') as f: f.write(loads(line.strip(), formatter='usgscsm')) sn = isis.getsn(from_=line.strip()).strip().decode('utf-8') sensors[sn] = create_csm(isd) if clean: for isd in isd_files: os.remove(isd) return sensors
def getISISid(infile): serial_num = getsn(from_=infile) if isinstance(serial_num, bytes): serial_num = serial_num.decode() newisisSerial = serial_num.replace('\n', '') return newisisSerial