示例#1
0
def save_file_dialog(message="Save File", file_types="*.*", default_file=""):
    global default_dir

    dlg = wx.FileDialog(None, message, default_dir, default_file, file_types, wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT)
    path = None
    if dlg.ShowModal() == wx.ID_OK:
        path = ud.smartdecode(dlg.GetPath())
        default_dir = ud.smartdecode(os.path.dirname(path))

    dlg.Destroy()
    return path
示例#2
0
def open_file_dialog(message="Open File", file_types="*.*", default=None):
    global default_dir
    if default is None:
        dlg = wx.FileDialog(None, message, default_dir, "", file_types, wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
    else:
        dlg = wx.FileDialog(None, message, "", default, file_types, wx.FD_OPEN | wx.FD_FILE_MUST_EXIST)
    path = None
    if dlg.ShowModal() == wx.ID_OK:
        path = ud.smartdecode(dlg.GetPath())
        default_dir = ud.smartdecode(os.path.dirname(path))

    dlg.Destroy()
    return path
示例#3
0
    def import_vars(self, get_vnames=True):
        hdf = h5py.File(self.filename, 'r+')
        msdata = hdf.require_group(self.topname)
        if get_vnames:
            try:
                self.v1name = ud.smartdecode(msdata.attrs["v1name"])
            except:
                msdata.attrs["v1name"] = self.v1name
            try:
                self.v2name = ud.smartdecode(msdata.attrs["v2name"])
            except:
                msdata.attrs["v2name"] = self.v2name
        else:
            msdata.attrs["v1name"] = str(self.v1name)
            msdata.attrs["v2name"] = str(self.v2name)
        hdf.close()

        self.var1 = []
        self.var2 = []
        for i in range(0, len(self.spectra)):
            s = self.spectra[i]
            try:
                s.var1 = s.attrs[self.v1name]
            except:
                s.var1 = i
            try:
                s.var2 = s.attrs[self.v2name]
            except:
                s.var2 = 0
            try:
                s.name = s.attrs["name"]
            except:
                s.name = ""
            if s.var1 is None or s.var1 == "None":
                s.var1 = i
            self.var1.append(s.var1)
            self.var2.append(s.var2)
        self.var1 = np.array(self.var1)
        self.var2 = np.array(self.var2)
        try:
            self.var1 = self.var1.astype(float)
        except:
            pass
        try:
            self.var2 = self.var2.astype(float)
        except:
            pass
示例#4
0
    def import_vars(self, get_vnames=True):
        hdf = h5py.File(self.filename, 'r+')
        msdata = hdf.require_group(self.topname)
        if get_vnames:
            try:
                self.v1name = ud.smartdecode(msdata.attrs["v1name"])
            except:
                msdata.attrs["v1name"] = self.v1name
            try:
                self.v2name = ud.smartdecode(msdata.attrs["v2name"])
            except:
                msdata.attrs["v2name"] = self.v2name
        else:
            msdata.attrs["v1name"] = str(self.v1name)
            msdata.attrs["v2name"] = str(self.v2name)
        hdf.close()

        self.update_var_array()
示例#5
0
def open_dir_dialog(message="Select a Folder"):
    global default_dir
    dlg = wx.DirDialog(None, message, default_dir)
    path = None
    if dlg.ShowModal() == wx.ID_OK:
        path = ud.smartdecode(dlg.GetPath())
        default_dir = path

    dlg.Destroy()
    return path
示例#6
0
def open_single_dir_dialog(message, default):
    global default_dir
    dlg = wx.DirDialog(None, message, default)
    # dlg=MDD.MultiDirDialog(None,message=message,defaultPath=default,agwStyle=MDD.DD_NEW_DIR_BUTTON)
    dir = None
    if dlg.ShowModal() == wx.ID_OK:
        dir = ud.smartdecode(dlg.GetPath())
        default_dir = dir
    dlg.Destroy()
    return dir
示例#7
0
def open_multiple_dir_dialog(message, default):
    dlg = MDD.MultiDirDialog(None,
                             message=message,
                             defaultPath=default,
                             agwStyle=MDD.DD_MULTIPLE | MDD.DD_DIR_MUST_EXIST)
    dirs = None
    if dlg.ShowModal() == wx.ID_OK:
        dirs = ud.smartdecode(dlg.GetPaths())
    dlg.Destroy()
    return dirs
示例#8
0
    def make_list_plots(self):
        self.colormap = cm.get_cmap(ud.smartdecode(self.config.peakcmap),
                                    len(self.ydat))
        if self.colormap is None:
            self.colormap = cm.get_cmap(u"rainbow", len(self.ydat))
        self.peakcolors = self.colormap(np.arange(len(self.ydat)))

        for i, dat in enumerate(self.data):
            dat2 = dat
            try:
                if i == 0:
                    self.plot5.plotrefreshtop(self.xdat,
                                              dat2 -
                                              self.config.separation * i,
                                              "All Data",
                                              "Mass Defect",
                                              "Total Intensity",
                                              "",
                                              color=self.peakcolors[i],
                                              config=self.config)
                else:
                    self.plot5.plotadd(self.xdat,
                                       dat2 - self.config.separation * i,
                                       colval=self.peakcolors[i])
                if self.fitdats is not None:
                    self.plot5.plotadd(self.xdat,
                                       self.fitdats[i] -
                                       self.config.separation * i,
                                       colval=self.peakcolors[i],
                                       linestyle="--")
            except Exception as e:
                self.plot5.clear_plot()
                print("Failed Plot Ext5", e)
        self.plot5.repaint()

        m1grid, m2grid = np.meshgrid(self.xdat, self.ydat, indexing='ij')
        data2 = np.transpose([
            np.ravel(m1grid),
            np.ravel(m2grid),
            np.ravel(self.data.transpose())
        ])
        try:
            self.plot6.contourplot(data2,
                                   self.config,
                                   xlab="Mass Defect",
                                   ylab="Individual Spectra",
                                   title="",
                                   normflag=1)
        except Exception as e:
            self.plot6.clear_plot()
            print("Failed Plot Ext6", e)
        pass
示例#9
0
    def make_list_plots(self):
        print(self.igrids.shape)
        self.colormap = cm.get_cmap(ud.smartdecode(self.config.peakcmap), len(self.datalist))
        if self.colormap is None:
            self.colormap = cm.get_cmap(u"rainbow", len(self.datalist))
        self.peakcolors = self.colormap(np.arange(len(self.datalist)))

        dat3 = []
        for i, dat in enumerate(self.igrids):
            dat2 = np.sum(dat, axis=0)
            dat2 = dat2 - np.amin(dat2)
            dat2 /= np.amax(dat2)
            dat3.append(dat2)
            try:
                if i == 0:
                    self.plot5.plotrefreshtop(self.data1d[:, 0], dat2 - self.config.separation * i, "All Data",
                                              self.ylab,
                                              "Total Intensity", "", color=self.peakcolors[i], config=self.config)
                else:
                    self.plot5.plotadd(self.data1d[:, 0], dat2 - self.config.separation * i, colval=self.peakcolors[i])
            except Exception as e:
                self.plot5.clear_plot()
                print("Failed Plot 5", e)
        self.plot5.repaint()

        dat3 = np.array(dat3)
        self.dat3 = dat3
        if self.yvals is None:
            yvals = np.arange(0, len(self.datalist))
            self.yvals = yvals
        else:
            yvals = self.yvals

        m1grid, m2grid = np.meshgrid(self.data1d[:, 0], yvals, indexing='ij')
        data2 = np.transpose([np.ravel(m1grid), np.ravel(m2grid), np.ravel(dat3.transpose())])
        try:
            save_path2d = os.path.join(self.directory, self.outfname + "Mass_Defect_Grid.txt")
            np.savetxt(save_path2d, dat3)
            print('Saved: ', save_path2d)
        except Exception as e:
            print("Failed Data Export 6", e)

        try:
            self.plot6.contourplot(data2, self.config, xlab=self.ylab, ylab="Individual Spectra", title="",
                                   normflag=1)
        except Exception as e:
            self.plot6.clear_plot()
            print("Failed Plot2", e)

        pass
示例#10
0
def open_multiple_files_dialog(message="Open Files", file_type="*.*"):
    default_dir = ""

    dlg = wx.FileDialog(None, message, default_dir, "", file_type, wx.FD_OPEN | wx.FD_MULTIPLE | wx.FD_FILE_MUST_EXIST)
    path = None
    file_names = None
    if dlg.ShowModal() == wx.ID_OK:
        path = dlg.GetPath()
        if path is not None:
            file_names = [ud.smartdecode(os.path.join(os.path.dirname(path.encode('utf-8')), f.encode('utf-8'))) for f
                          in dlg.GetFilenames()]
            default_dir = os.path.dirname(path)
            # print("Files:", file_names)
    dlg.Destroy()
    return file_names
示例#11
0
def open_multiple_dir_dialog(message, default):
    if default is None:
        global default_dir
        default = default_dir
    dlg = MDD.MultiDirDialog(None, message=message, defaultPath=default,
                             agwStyle=MDD.DD_MULTIPLE | MDD.DD_DIR_MUST_EXIST)
    #dlg = wx.DirDialog(None, message, default, wx.DD_MULTIPLE)
    dirs = None
    if dlg.ShowModal() == wx.ID_OK:
        dirs = ud.smartdecode(dlg.GetPaths())
        dirs2 = []
        for d in dirs:
            p = Path(d)
            drive = p.parts[0]
            if ")" in drive:
                spot = drive.find(":")
                drive_letter = drive[spot-1]
                d=drive_letter+":\\"
                d2 = os.path.join(*p.parts[1:])
                d = os.path.join(d, d2)
            dirs2.append(d)
        dirs = dirs2
    dlg.Destroy()
    return dirs
示例#12
0
    def make_ext_plots(self):
        self.colormap = cm.get_cmap(ud.smartdecode(self.config.peakcmap),
                                    len(self.mdlist))
        if self.colormap is None:
            self.colormap = cm.get_cmap(u"rainbow", len(self.mdlist))
        self.peakcolors = self.colormap(np.arange(len(self.mdlist)))

        for i, x in enumerate(self.mdlist):
            print(self.grid[i])
            try:
                if i == 0:
                    self.plot1.plotrefreshtop(
                        self.ydat,
                        self.grid[i],
                        title="Extracted Data",
                        xlabel="Variable 1",
                        ylabel=extractlabels[self.extractchoice],
                        marker=markers[i % len(markers)],
                        label=str(x),
                        color=self.peakcolors[i],
                        config=self.config)
                else:
                    self.plot1.plotadd(self.ydat,
                                       self.grid[i],
                                       newlabel=str(x),
                                       marker=markers[i % len(markers)],
                                       colval=self.peakcolors[i])
            except Exception as e:
                self.plot1.clear_plot()
                print("Failed Plot Ext1", e)
        self.plot1.add_legend()

        try:
            self.make_2d_plot()
        except Exception as e:
            print(e)