def convert(path): contents = opusFC.listContents(path) opusd = opusdictionary.OpusDict() opath = path + "test.nxs" name_dict = get_name_dict() with h5py.File(opath, 'w') as f: nxEntry = f.create_group("entry1") nxEntry.attrs["NX_class"] = "NXentry" for db in contents: data = opusFC.getOpusData(path, db) if isinstance(data, opusFC.ImageDataReturn): add_image_data(nxEntry, data) if isinstance(data, opusFC.MultiRegionDataReturn): add_multi_data(nxEntry, data) if isinstance(data, opusFC.ImageTRCDataReturn): add_image_traces(nxEntry, data) #nxColl = nxEntry.create_group("parameters") #nxColl.attrs["NX_class"] = "NXcollection" #for k,v in data.parameters.items(): # name = k # if (k in opusd): # name = opusd[k] # nxColl.create_dataset(name,data=v) images = opusFC.getVisImages(path) count = 1 for im in images: nxe = f.create_group("microscope" + str(count)) nxe.attrs["NX_class"] = "NXentry" add_visible_image(nxe, im) count = count + 1 print("Created file " + opath)
def sheets(self): try: import opusFC except ImportError: # raising an exception here would just show an generic error in File widget return () dbs = [] for db in opusFC.listContents(self.filename): dbs.append(db[0] + " " + db[1] + " " + db[2]) return dbs
def sheets(self): try: import opusFC except ImportError: # raising an exception here would just show an generic error in File widget return () dbs = [] for db in opusFC.listContents(self.filename): dbs.append(db[0] + " " + db[1] + " " + db[2]) return dbs
def parameters(): fl = file_list() count = 0 for f in fl: try: dbs = opusFC.isOpusFile(f) #control structure for the loop if dbs == True: conte = opusFC.listContents(f) data = opusFC.getOpusData(f, conte[0]) count += 1 print(count) #print conte, f data = opusFC.getOpusData(f, conte[0]) print data.parameters, f SNM.append(data.parameters['SNM']) INS.append(data.parameters['INS']) DAT.append(data.parameters['DAT']) TIM.append(data.parameters['TIM']) DUR.append(data.parameters['DUR']) CNM.append(data.parameters['CNM']) RES.append(data.parameters['RES']) ZFF.append(data.parameters['ZFF']) NPT.append(data.parameters['NPT']) LWN.append(data.parameters['LWN']) FXV.append(data.parameters['FXV']) LXV.append(data.parameters['LXV']) minY.append(data.minY) maxY.append(data.maxY) continue else: print('identified as non-Opus', f) except ValueError: print('Cant process a non-Opus file', f) continue
LWN = [] LXV = [] FXV = [] minY = [] maxY = [] dbs=[] # loop of all files count = 0 for f in file_list: try: dbs = opusFC.listContents(f) count += 1 print(count,f) print(dbs) for i in dbs: data = opusFC.getOpusData(f, i) print(data.parameters) except ValueError: print('Cant process a non-Opus file', f) continue
def sheets(self): import opusFC dbs = [] for db in opusFC.listContents(self.filename): dbs.append(db[0] + " " + db[1] + " " + db[2]) return dbs
def export_spectra(in_folder=None, out_folder=DATA_KSSL, nb_decimals=4, max_wavenumber=4000, valid_name=['XN', 'XS'], nb_chunks=1): """Exports KSSL MIRS spectra into a series of .csv files Parameters ---------- in_folder: string, optional Specify the path of the folder containing the KSSL MIRS spectra out_folder: string, optional Specify the path of the folder that will contain exported files nb_decimals: int, optional Specify floating point precision (to save memory) max_wavenumber: int, optional Specify the max wavenumber to be considered in spectra valid_name: list of str, optional Specify valid spectra file names nb_chunks: int, optional Specify tne number of chunks/files to be created Returns ------- None """ in_folder = Path(in_folder) out_folder = Path(out_folder) if not in_folder.exists(): raise IOError('in_folder not found.') if not out_folder.exists(): out_folder.mkdir(parents=True) columns = None valid_files = [ f for f in in_folder.rglob('*.0') if re.search(r'X.', f.name)[0] in valid_name ] for (l_bound, u_bound) in list(chunk(len(valid_files), nb_chunks)): columns = None rows_list = [] for i, f in enumerate(tqdm(valid_files[l_bound:u_bound])): dbs = opusFC.listContents(f) if dbs: data = opusFC.getOpusData(str(f), dbs[0]) row = [f.name] + list(data.y[data.x <= max_wavenumber]) rows_list.append(row) if columns is None: columns = list( (data.x[data.x <= max_wavenumber]).astype(int)) df = pd.DataFrame(rows_list, columns=['id'] + list(columns)) df = df.round(nb_decimals) df.to_csv(out_folder / 'spectra_{}_{}.csv'.format(l_bound, u_bound - 1), index=False)
def sheets(self): import opusFC dbs = [] for db in opusFC.listContents(self.filename): dbs.append(db[0] + " " + db[1] + " " + db[2]) return dbs