Changeset 25
- Timestamp:
- Feb 8, 2010 9:51:58 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r24 r25 296 296 297 297 def OnPwdrReadMenu(self, event): 298 if not G2gd.GetPatternTreeItemId(self,self.root,'Notebook'): 299 sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook') 300 self.PatternTree.SetItemPyData(sub,['']) 301 sub = self.PatternTree.AppendItem(parent=self.root,text='Controls') 302 self.PatternTree.SetItemPyData(sub,[0]) 298 self.CheckNotebook() 303 299 dlg = wx.FileDialog(self, 'Choose files', '.', '', 304 300 'GSAS fxye files (*.fxye)|*.fxye|GSAS fxy files (*.fxy)|*.fxy|All files (*.*)|*.*', … … 373 369 def OnReadPowderPeaks(self,event): 374 370 Cuka = 1.54052 375 if not G2gd.GetPatternTreeItemId(self,self.root,'Notebook'): 376 sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook') 377 self.PatternTree.SetItemPyData(sub,['']) 371 self.CheckNotebook() 378 372 dlg = wx.FileDialog(self, 'Choose file with peak list', '.', '', 379 373 'peak files (*.txt)|*.txt|All files (*.*)|*.*',wx.OPEN) … … 401 395 def OnImageRead(self,event): 402 396 import copy 403 if not G2gd.GetPatternTreeItemId(self,self.root,'Notebook'): 404 sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook') 405 self.PatternTree.SetItemPyData(sub,['']) 397 self.CheckNotebook() 406 398 dlg = wx.FileDialog(self, 'Choose image file', '.', '', \ 407 'MAR345 (*.mar3450)|*.mar3450|ADSC Image (*.img)|*.img|Perkin-Elmer TIF (*.tif)|*.tif|All files (*.*)|*.*',wx.OPEN) 399 'MAR345 (*.mar3450)|*.mar3450|ADSC Image (*.img)|*.img \ 400 |Perkin-Elmer TIF (*.tif)|*.tif|GE Image sum (*.sum)|*.sum|All files (*.*)|*.*',wx.OPEN) 408 401 if self.dirname: 409 402 dlg.SetDirectory(self.dirname) … … 421 414 elif ext == '.mar3450': 422 415 Comments,Data,Size,Image = G2IO.GetMAR345Data(self.imagefile) 416 elif ext == '.sum': 417 Comments,Data,Size,Image = G2IO.GetGEsumData(self.imagefile) 423 418 if Comments: 424 419 Id = self.PatternTree.AppendItem(parent=self.root,text='IMG '+ospath.basename(self.imagefile)) … … 437 432 Data['showLines'] = False 438 433 Data['ring'] = [] 434 Data['ellipses'] = [] 439 435 Data['masks'] = [] 440 436 Data['calibrant'] = '' … … 456 452 457 453 def OnSnglReadMenu(self,event): 458 if not G2gd.GetPatternTreeItemId(self,self.root,'Notebook'): 459 self.PatternTree.AppendItem(parent=self.root,text='') 460 self.PatternTree.AppendItem(parent=self.root,text='Controls') 454 self.CheckNotebook() 461 455 dlg = wx.FileDialog(self, 'Choose file', '.', '', 462 456 'hkl files (*.hkl)|*.hkl|All files (*.*)|*.*', … … 494 488 finally: 495 489 dlg.Destroy() 490 491 def CheckNotebook(self): 492 if not G2gd.GetPatternTreeItemId(self,self.root,'Notebook'): 493 sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook') 494 self.PatternTree.SetItemPyData(sub,['']) 495 sub = self.PatternTree.AppendItem(parent=self.root,text='Controls') 496 self.PatternTree.SetItemPyData(sub,[0]) 497 496 498 497 499 class SumDialog(wx.Dialog): … … 1279 1281 1280 1282 def PlotImage(self): 1283 from matplotlib.patches import Ellipse 1281 1284 1282 1285 def OnImMotion(event): 1283 1286 self.pdplot.canvas.SetToolTipString('') 1284 if event.xdata:1287 if (xlim[0] < event.xdata < xlim[1]) & (ylim[0] > event.ydata > ylim[1]): 1285 1288 item = self.itemPicked 1286 1289 if item and self.PatternTree.GetItemText(self.PickId) == 'Image Controls': … … 1298 1301 self.pdplot.canvas.SetToolTipString('%8.3fmm'%(radius/scalex)) 1299 1302 else: 1300 self.pdplot.canvas.SetToolTipString('%6d'%(self.ImageZ[int(event.ydata)*self.imScale] \ 1301 [int(event.xdata)*self.imScale])) 1303 xpos = int(event.xdata)*self.imScale 1304 ypos = int(event.ydata)*self.imScale 1305 self.pdplot.canvas.SetToolTipString('%6d'%(self.ImageZ[ypos][xpos])) 1302 1306 1303 1307 def OnImPlotKeyPress(event): … … 1316 1320 self.centText.SetValue(("%8.3f,%8.3f" % (cent[0],cent[1]))) 1317 1321 elif event.key == 'r': 1318 w = 20 1319 w2 = w*2 1320 Z = self.ImageZ[Ypos-w:Ypos+w,Xpos-w:Xpos+w] 1321 Zmax = np.argmax(Z) 1322 Xpos += Zmax%w2-w 1323 Ypos += Zmax/w2-w 1324 xpos = Xpos*pixelSize[0]/1000. 1325 ypos = Ypos*pixelSize[1]/1000. 1326 Data['ring'].append([xpos,ypos]) 1322 Xpos,Ypos,I,J = G2cmp.ImageLocalMax(self.ImageZ,20,Xpos,Ypos) 1323 if I and J: 1324 xpos = Xpos*pixelSize[0]/1000. 1325 ypos = Ypos*pixelSize[1]/1000. 1326 Data['ring'].append([xpos,ypos]) 1327 elif event.key == 'd': 1328 scale = self.imScale*pixelSize[0]/1000. 1329 xypos = [event.xdata*scale,event.ydata*scale] 1330 rings = Data['ring'] 1331 for ring in rings: 1332 if np.allclose(ring,xypos,.01,0): 1333 rings.remove(ring) 1327 1334 elif event.key == 'm': 1328 1335 xpos = Xpos*pixelSize[0]/1000. … … 1397 1404 PickId = self.PickId 1398 1405 ax = self.pdplot.add_subplot(111) 1406 self.PlotAX = ax 1407 ax.set_title(self.PatternTree.GetItemText(self.Image)[4:]) 1399 1408 size,self.ImageZ = self.PatternTree.GetItemPyData(self.Image) 1400 1409 Data = self.PatternTree.GetItemPyData( \ … … 1410 1419 ylim = self.Img.axes.get_ylim() 1411 1420 pixelSize = Data['pixelSize'] 1412 scalex = 1000./(pixelSize[0]*self.imScale)1413 scaley = 1000./(pixelSize[1]*self.imScale)1421 Data['scalex'] = scalex = 1000./(pixelSize[0]*self.imScale) 1422 Data['scaley'] = scaley = 1000./(pixelSize[1]*self.imScale) 1414 1423 Imin,Imax = Data['range'][1] 1415 1424 acolor = mpl.cm.get_cmap(Data['color']) … … 1446 1455 xring *= scalex 1447 1456 yring *= scaley 1448 ax.text(xring,yring,'+',ha='center',va='center') 1457 ax.text(xring,yring,'+',ha='center',va='center',picker=3) 1458 for ellipse in Data['ellipses']: 1459 cent,phi,[width,height] = ellipse 1460 ax.add_artist(Ellipse([cent[0]*scalex,cent[1]*scaley],2*width*scalex,2*height*scalex,phi,fc=None)) 1449 1461 self.Img.axes.set_xlim(xlim) 1450 1462 self.Img.axes.set_ylim(ylim) … … 1693 1705 1694 1706 def OnSCPick(event): 1695 # print str(event.artist).split('(') 1696 pass 1707 zpos = Data['Layer'] 1708 pos = event.artist.center 1709 if '100' in Data['Zone']: 1710 self.pdplot.canvas.SetToolTipString('(picked:(%3d,%3d,%3d))'%(zpos,pos[0],pos[1])) 1711 elif '010' in Data['Zone']: 1712 self.pdplot.canvas.SetToolTipString('(picked:(%3d,%3d,%3d))'%(pos[0],zpos,pos[1])) 1713 elif '001' in Data['Zone']: 1714 self.pdplot.canvas.SetToolTipString('(picked:(%3d,%3d,%3d))'%(pos[0],pos[1],zpos)) 1715 1716 def OnSCKeyPress(event): 1717 print event.key 1697 1718 1698 1719 try: … … 1709 1730 self.NewPlot = True 1710 1731 if not self.SCevent: 1732 self.SCevent.append(self.pdplot.canvas.mpl_connect('key_press_event', OnSCKeyPress)) 1711 1733 self.SCevent.append(self.pdplot.canvas.mpl_connect('pick_event', OnSCPick)) 1712 1734 self.SCevent.append(self.pdplot.canvas.mpl_connect('motion_notify_event', OnSCMotion)) … … 1730 1752 pzone = [[1,2],[0,2],[0,1]] 1731 1753 izone = zones.index(Data['Zone']) 1754 ax.set_title(self.PatternTree.GetItemText(self.Sngl)[5:]) 1732 1755 for h,k,l,Fosq,sig,Fcsq,x,x,x in HKLref: 1733 1756 H = [h,k,l] … … 1751 1774 if A < 3.0: A = 0 1752 1775 xy = (H[pzone[izone][0]],H[pzone[izone][1]]) 1753 ax.add_artist(Circle(xy,radius=A,ec='g',fc='w')) 1776 if A > 0.0: 1777 ax.add_artist(Circle(xy,radius=A,ec='g',fc='w',picker=3)) 1754 1778 if B: 1755 ax.add_artist(Circle(xy,radius=B,ec='b',fc='w' ,picker=3))1779 ax.add_artist(Circle(xy,radius=B,ec='b',fc='w')) 1756 1780 radius = C 1757 1781 if radius > 0:
Note: See TracChangeset
for help on using the changeset viewer.