Exemple #1
0
 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)
Exemple #2
0
  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
Exemple #3
0
    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()
Exemple #4
0
    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
Exemple #5
0
    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
Exemple #6
0
 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
Exemple #8
0
    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
Exemple #9
0
  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)