Changeset 3154 for trunk/GSASIIplot.py
- Timestamp:
- Nov 18, 2017 6:14:55 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIplot.py
r3153 r3154 4613 4613 if G2frame.MaskKey == 's': 4614 4614 Page.figure.suptitle('Multiple spot mode on (size={}), press s or right-click to end' 4615 4615 .format(G2frame.spotSize),color='r',fontweight='bold') 4616 4616 else: 4617 4617 Page.figure.suptitle('New spot size={}'.format(G2frame.spotSize), … … 4666 4666 from matplotlib.patches import Ellipse,Circle 4667 4667 import numpy.ma as ma 4668 G2frame.ShiftDown = False 4668 4669 G2frame.cid = None 4669 4670 #Dsp = lambda tth,wave: wave/(2.*npsind(tth/2.)) … … 4729 4730 G2frame.G2plotNB.status.SetStatusText( \ 4730 4731 'Radius=%.3fmm, 2-th=%.3fdeg, dsp=%.3fA, Q=%.5fA-1, azm=%.2fdeg, I=%6d'%(radius,tth,dsp,Q,azm,Int),1) 4732 4733 def OnImPlotKeyRelease(event): 4734 if event.key == 'shift': 4735 G2frame.ShiftDown = False 4731 4736 4732 4737 def OnImPlotKeyPress(event): … … 4784 4789 G2frame.MskDelete = True 4785 4790 OnStartMask(G2frame) 4791 elif event.key == 'shift': 4792 G2frame.ShiftDown = True 4786 4793 4787 4794 elif treeItem == 'Stress/Strain': … … 4908 4915 itemNum = G2frame.itemPicked.itemNumber 4909 4916 if event.button == 1: 4910 x = Masks['Points'][itemNum][0]+Xpos-XposBeforeDrag 4911 y = Masks['Points'][itemNum][1]+Ypos-YposBeforeDrag 4912 pick.center=[x,y] 4913 elif event.button == 3: 4914 r = math.sqrt((Xpos-Masks['Points'][itemNum][0])**2+ 4915 (Ypos-Masks['Points'][itemNum][1])**2) 4916 pick.radius = r 4917 if G2frame.ShiftDown: 4918 r = math.sqrt((Xpos-Masks['Points'][itemNum][0])**2+ 4919 (Ypos-Masks['Points'][itemNum][1])**2) 4920 pick.radius = r 4921 else: 4922 x = Masks['Points'][itemNum][0]+Xpos-XposBeforeDrag 4923 y = Masks['Points'][itemNum][1]+Ypos-YposBeforeDrag 4924 pick.center=[x,y] 4917 4925 Page.figure.gca().draw_artist(pick) 4918 4926 elif pickType.startswith('Ring'): … … 5132 5140 ToggleMultiSpotMask(G2frame) 5133 5141 else: 5134 #TODO - try a fit of spot to image? 5135 spot = [Xpos,Ypos,G2frame.spotSize] 5142 if G2frame.ShiftDown: #force user selection 5143 sig = G2frame.spotSize 5144 else: #optimize spot pick 5145 pixLimit = 5 5146 Xpix,Ypix = Xpos*scalex,Ypos*scaley 5147 Xpix,Ypix,I,J = G2img.ImageLocalMax(G2frame.ImageZ,pixLimit,Xpix,Ypix) 5148 ind = [int(Xpix),int(Ypix)] 5149 nxy = 15 5150 ImMax = np.max(G2frame.ImageZ) 5151 result = G2img.FitImageSpots(G2frame.ImageZ,ImMax,ind,pixelSize,nxy) 5152 if result: 5153 Xpos,Ypos,sig = result 5154 else: 5155 print ('Not a spot') 5156 return 5157 spot = [Xpos,Ypos,sig] 5136 5158 Masks['Points'].append(spot) 5137 5159 artist = Circle((Xpos,Ypos),radius=spot[2]/2,fc='none',ec='r',picker=3) … … 5142 5164 Page.canvas.draw() 5143 5165 return 5144 elif G2frame.MaskKey == 's':5145 if event.button == 1:5146 spot = [Xpos,Ypos,G2frame.spotSize]5147 Masks['Points'].append(spot)5148 G2imG.UpdateMasks(G2frame,Masks)5149 G2frame.MaskKey = ''5150 wx.CallAfter(PlotImage,G2frame,newImage=True)5151 return5152 5166 elif G2frame.MaskKey == 'r': 5153 5167 if event.button == 1: … … 5274 5288 G2frame.Razim.SetValue(Data['LRazimuth'][1]) 5275 5289 elif pickType == "Spot" and treeItem == 'Masks': 5290 spotnum = G2frame.itemPicked.itemNumber 5276 5291 if event.button == 1: 5277 spotnum = G2frame.itemPicked.itemNumber 5278 Masks['Points'][spotnum][0:2] = G2frame.itemPicked.center 5292 if G2frame.ShiftDown: 5293 Masks['Points'][spotnum] = list(G2frame.itemPicked.center) + [2.*G2frame.itemPicked.radius,] 5294 else: 5295 # update the selected circle mask with the last drawn values 5296 Masks['Points'][spotnum][0:2] = G2frame.itemPicked.center 5279 5297 elif event.button == 3: 5280 # update the selected circle mask with the last drawn values 5281 spotnum = G2frame.itemPicked.itemNumber 5282 Masks['Points'][spotnum] = list(G2frame.itemPicked.center) + [ 5283 2.*G2frame.itemPicked.radius] 5298 del Masks['Points'][spotnum] 5284 5299 G2imG.UpdateMasks(G2frame,Masks) 5285 5300 elif pickType.startswith('Ring') and treeItem == 'Masks': … … 5312 5327 else: 5313 5328 Page.canvas.mpl_connect('key_press_event', OnImPlotKeyPress) 5329 Page.canvas.mpl_connect('key_release_event', OnImPlotKeyRelease) 5314 5330 Page.canvas.mpl_connect('motion_notify_event', OnImMotion) 5315 5331 Page.canvas.mpl_connect('pick_event', OnImPick)
Note: See TracChangeset
for help on using the changeset viewer.