def OnModify(self, event): print 'OnModify' frm = self.GetParent() ds = frm.dataSet canvas = frm.canvas glImg = canvas.glImg ai = frm.ai ai.set_poni1(float(self.edCtrX.Value)) ai.set_poni2(float(self.edCtrY.Value)) frm.numPtTh = int(self.edNumPtTh.Value) frm.numPtCh = int(self.edNumPtCh.Value) sl = ut.GetSlice(frm.idxXY, ds.shape, frm.wxAxCtrlLst) imgPolar, theta, chi = frm.ai.xrpd2(ds[sl], frm.numPtTh, frm.numPtCh) if canvas.data.shape == imgPolar.shape: canvas.data[:] = imgPolar[:] glImg.data[:] = canvas.GetTxrData() else: canvas.data = imgPolar glImg._data = canvas.GetTxrData() glImg._texture = Texture(glImg._data) #self.glImg=glImg=glumpy.image.Image(txrData, colormap=colMap,vmin=txrRng[0], vmax=txrRng[1]) print canvas.data.shape, glImg.data.shape glImg.update() canvas.OnPaint( None) #force to repaint, Refresh and Update do not force ! frm.Refresh(False) if event.GetId() == wx.ID_OK: event.Skip( ) #do not consume (use event to close the window and sent return code)
def OnSetView(usrData,value,msg): gridFrm =usrData.slider.Parent.Parent grid=gridFrm.grid tbl=grid.GetTable() data=tbl.data sl=ut.GetSlice(tbl.idxXY,data.shape,gridFrm.wxAxCtrlLst) #tbl.view = tbl.data[value,...] tbl.view = tbl.data[sl] grid.ClearGrid() pass
def __init__(self, parent, title, hid): # Forcing a specific style on the window. # Should this include styles passed? style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE wx.Frame.__init__(self, parent, title=title, size=wx.Size(850, 650), style=style) imgDir = ut.Path.GetImage() icon = wx.Icon(os.path.join(imgDir, 'h5pyViewer.ico'), wx.BITMAP_TYPE_ICO) self.SetIcon(icon) canvas = GLCanvasImg(self, self.SetStatusCB) t = type(hid) if t == h5py.h5d.DatasetID: ds = h5py.Dataset(hid) self.dataSet = ds sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(canvas, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(sizer) wxAxCtrlLst = [] l = len(ds.shape) idxXY = (l - 2, l - 1) for idx, l in enumerate(ds.shape): if idx in idxXY: continue wxAxCtrl = ut.SliderGroup(self, label='Axis:%d' % idx, range=(0, l - 1)) wxAxCtrl.idx = idx wxAxCtrlLst.append(wxAxCtrl) sizer.Add(wxAxCtrl.sizer, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, border=5) wxAxCtrl.SetCallback(self.OnSetView, wxAxCtrl) sl = ut.GetSlice(idxXY, ds.shape, wxAxCtrlLst) canvas.data = ds[sl] #self.Fit() self.Centre() self.canvas = canvas self.sizer = sizer self.idxXY = idxXY self.wxAxCtrlLst = wxAxCtrlLst self.BuildMenu()
def __init__(self, parent, lbl, hid): wx.Frame.__init__(self, parent, title=lbl, size=wx.Size(850, 650)) imgDir = ut.Path.GetImage() icon = wx.Icon(os.path.join(imgDir, 'h5pyViewer.ico'), wx.BITMAP_TYPE_ICO) self.SetIcon(icon) t = type(hid) if t == h5py.h5d.DatasetID: data = h5py.Dataset(hid) canvas = MPLCanvasImg(self, self.SetStatusCB) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(canvas, 1, wx.LEFT | wx.TOP | wx.GROW) self.SetSizer(sizer) toolbar = ut.AddToolbar(canvas, sizer) wxAxCtrlLst = [] l = len(data.shape) idxXY = (l - 2, l - 1) for idx, l in enumerate(data.shape): if idx in idxXY: continue wxAxCtrl = ut.SliderGroup(self, label='Axis:%d' % idx, range=(0, l - 1)) wxAxCtrl.idx = idx wxAxCtrlLst.append(wxAxCtrl) sizer.Add(wxAxCtrl.sizer, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, border=5) wxAxCtrl.SetCallback(HdfImageFrame.OnSetView, wxAxCtrl) sl = ut.GetSlice(idxXY, data.shape, wxAxCtrlLst) canvas.InitChild(data[sl]) #self.Fit() self.Centre() self.BuildMenu(data.dtype) self.canvas = canvas self.sizer = sizer self.toolbar = toolbar self.data = data self.idxXY = idxXY self.wxAxCtrlLst = wxAxCtrlLst
def OnSetView(usrData, value, msg): 'called when a slice is selected with the slider controls' imgFrm = usrData.slider.Parent #imgFrm.img.set_array(imgFrm.data[usrData.value,...]) data = imgFrm.data sl = ut.GetSlice(imgFrm.idxXY, data.shape, imgFrm.wxAxCtrlLst) hl = imgFrm.canvas.hl ai = imgFrm.canvas.ai numPtTh = imgFrm.canvas.numPtTh out = ai.xrpd(data[sl], numPtTh) hl[0].set_ydata(out[1]) imgFrm.canvas.draw() pass
def OnSetView(usrData,value,msg): 'called when a slice is selected with the slider controls' frm=usrData.slider.Parent ds=frm.dataSet canvas=frm.canvas glImg=canvas.glImg sl=ut.GetSlice(frm.idxXY,ds.shape,frm.wxAxCtrlLst) imgPolar,theta,chi=frm.ai.xrpd2(ds[sl],frm.numPtTh,frm.numPtCh) canvas.data[:]=imgPolar[:] glImg.data[:]=canvas.GetTxrData() glImg.update() canvas.OnPaint(None)#force to repaint, Refresh and Update do not force ! #canvas.Refresh(False) #canvas.Update() pass
def OnSetView(usrData,value,msg): 'called when a slice is selected with the slider controls' frm=usrData.slider.Parent ds=frm.dataSet canvas=frm.canvas glImg=canvas.glImg sl=ut.GetSlice(frm.idxXY,ds.shape,frm.wxAxCtrlLst) prs=frm.prs prs.Process(ds[sl]) #canvas.data[:]=(np.rot90(prs.resArr[0,:].reshape(-1,prs.mskNumSeg)))[:] canvas.data[:]=prs.resArr[:] glImg.data[:]=canvas.GetTxrData() glImg.update() canvas.OnPaint(None)#force to repaint, Refresh and Update do not force ! #canvas.Refresh(False) #canvas.Update() pass
def OnSetView(usrData, value, msg): 'called when a slice is selected with the slider controls' imgFrm = usrData.slider.Parent #imgFrm.img.set_array(imgFrm.data[usrData.value,...]) data = imgFrm.data sl = ut.GetSlice(imgFrm.idxXY, data.shape, imgFrm.wxAxCtrlLst) try: tomoNorm = imgFrm.tomoNorm except AttributeError: imgFrm.canvas.img.set_array(data[sl]) else: data = data[sl] * tomoNorm imgFrm.canvas.img.set_array(data) if imgFrm.mnItemShowMoment.IsChecked(): imgFrm.PlotMoments() imgFrm.canvas.draw() pass
def __init__(self, parent,lbl,hid): wx.Frame.__init__(self, parent, title='HDFGridView: '+lbl,size=wx.Size(750, 650)) imgDir=ut.Path.GetImage() icon = wx.Icon(os.path.join(imgDir,'h5pyViewer.ico'), wx.BITMAP_TYPE_ICO) self.SetIcon(icon) pan = wx.Panel(self, -1) t=type(hid) if t==h5py.h5d.DatasetID: data=h5py.Dataset(hid) elif t==np.ndarray: data=hid else: raise(TypeError('unhandled type')) grid = Grid(pan, data) tbl=grid.GetTable() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(grid, 1, wx.EXPAND) wxAxCtrlLst=[] l=len(data.shape) if l==1: if type(hid.get_type())==h5py.h5t.TypeCompoundID: tbl = Table1DCompound(data) else: tbl = Table1DArray(data) else: idxXY=(l-2,l-1) #idxXY=(l-1,l-2) for idx,l in enumerate(data.shape): if idx in idxXY: continue wxAxCtrl=ut.SliderGroup(pan, label='Axis:%d'%idx,range=(0,l-1)) wxAxCtrl.idx=idx wxAxCtrlLst.append(wxAxCtrl) sizer.Add(wxAxCtrl.sizer, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, border=5) wxAxCtrl.SetCallback(Grid.OnSetView,wxAxCtrl) sl=ut.GetSlice(idxXY,data.shape,wxAxCtrlLst) if type(hid.get_type())==h5py.h5t.TypeCompoundID: tbl = Table2DArray(data) else: tbl = Table2DArray(data) tbl.idxXY=idxXY if idxXY[0]<idxXY[1]: tbl.view = tbl.data[sl] else: tbl.view = tbl.data[sl].T self.wxAxCtrlLst=wxAxCtrlLst #print type(tbl) grid.SetTable (tbl, True) #AutoSize must be called after SetTable, but takes lot of time on big tables! if tbl.GetNumberCols()*tbl.GetNumberRows()<50*50: grid.AutoSizeColumns(True);grid.AutoSizeRows(True) #grid.SetDefaultColSize(200, True) self.grid=grid pan.SetSizer(sizer) pan.Layout() self.Centre() self.BuildMenu() grid.Bind(wx.grid.EVT_GRID_CMD_COL_SIZE, self.OnColSize)