def isis_serial(self): """ Generate an ISIS compatible serial number using the data file associated with this node. This assumes that the data file has a PVL header. """ if not hasattr(self, '_isis_serial'): try: self._isis_serial = generate_serial_number(self['image_path']) except: self._isis_serial = None return self._isis_serial
def isis_serial(self): """ Generate an ISIS compatible serial number using the data file associated with this node. This assumes that the data file has a PVL header. """ if not hasattr(self, '_isis_serial'): try: self._isis_serial = generate_serial_number(self.image_path) except: self._isis_serial = None return self._isis_serial
def serials(self): """ Create a dictionary of ISIS3 compliant serial numbers for each node in the graph. Returns ------- serials : dict with key equal to the node id and value equal to an ISIS3 compliant serial number or None """ serials = {} for n, node in self.nodes.data('data'): serials[n] = generate_serial_number(node['image_path']) return serials
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 = generate_serial_number(line.strip()) sensors[sn] = create_csm(isd) if clean: for isd in isd_files: os.remove(isd) return sensors
def test_generate_serial_number(self): label = get_path('Test_PVL.lbl') serial = isis_serial_number.generate_serial_number(label) self.assertEqual('APOLLO15/METRIC/1971-07-31T14:02:27.179', serial)
def test_generate_serial_number(label, expected): serial = isis_serial_number.generate_serial_number(label) assert serial == expected