Exemplo n.º 1
0
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)
Exemplo n.º 2
0
 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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
 def sheets(self):
     import opusFC
     dbs = []
     for db in opusFC.listContents(self.filename):
         dbs.append(db[0] + " " + db[1] + " " + db[2])
     return dbs
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
 def sheets(self):
     import opusFC
     dbs = []
     for db in opusFC.listContents(self.filename):
         dbs.append(db[0] + " " + db[1] + " " + db[2])
     return dbs