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
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
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
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()
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
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
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
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
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
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
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
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)