Changeset 795 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Nov 3, 2012 3:22:36 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIpwdGUI.py ¶
r794 r795 13 13 import wx.grid as wg 14 14 import numpy as np 15 import numpy.ma as ma 15 16 import math 16 17 import time … … 20 21 import GSASIIpath 21 22 GSASIIpath.SetVersionNumber("$Revision$") 23 import GSASIImath as G2mth 22 24 import GSASIIpwd as G2pwd 23 25 import GSASIIIO as G2IO … … 29 31 import GSASIIElemGUI as G2elemGUI 30 32 import GSASIIElem as G2elem 31 32 33 VERY_LIGHT_GREY = wx.Colour(235,235,235) 33 34 34 # trig functions in degrees 35 35 sind = lambda x: math.sin(x*math.pi/180.) … … 58 58 'Temperature':300.,'Pressure':1.0,'Humidity':0.0, 59 59 'Voltage':0.0,'Force':0.0,'Gonio. radius':200.0, 60 'Omega':0.0,'Chi':0.0,'Phi':0.0} 61 60 'Omega':0.0,'Chi':0.0,'Phi':0.0} 61 62 62 ################################################################################ 63 63 ##### Powder Peaks … … 67 67 if G2frame.dataDisplay: 68 68 G2frame.dataFrame.Clear() 69 70 def OnAutoSearch(event): 71 PatternId = G2frame.PatternId 72 PickId = G2frame.PickId 73 limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Limits'))[1] 74 inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters')) 75 profile = G2frame.PatternTree.GetItemPyData(PatternId)[1] 76 x0 = profile[0] 77 iBeg = np.searchsorted(x0,limits[0]) 78 iFin = np.searchsorted(x0,limits[1]) 79 x = x0[iBeg:iFin] 80 y0 = profile[1][iBeg:iFin] 81 y1 = copy.copy(y0) 82 ysig = np.std(y1) 83 offset = [-1,1] 84 ymask = ma.array(y0,mask=(y0<ysig)) 85 for off in offset: 86 ymask = ma.array(ymask,mask=(ymask-np.roll(y0,off)<=0.)) 87 indx = ymask.nonzero() 88 mags = ymask[indx] 89 poss = x[indx] 90 for pos,mag in zip(poss,mags): 91 data.append(G2mth.setPeakparms(inst,pos,mag)) 92 UpdatePeakGrid(G2frame,data) 93 G2plt.PlotPatterns(G2frame) 69 94 70 95 def OnUnDo(event): … … 149 174 PatternId = G2frame.PatternId 150 175 PickId = G2frame.PickId 176 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters')) 151 177 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List')) 152 178 if not peaks: 153 179 G2frame.ErrorDialog('No peaks!','Nothing to do!') 154 180 return 155 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters'))156 181 for peak in peaks: 157 182 if 'C' in Inst['Type'][0]: … … 159 184 peak[6] = Inst['X'][1]/cosd(peak[0]/2.0)+Inst['Y'][1]*tand(peak[0]/2.0) 160 185 else: 161 pass 186 dsp = peak[0]/Inst['difC'][0] 187 peak[4] = Inst['alpha'][0]*dsp 188 peak[6] = Inst['beta-0'][0]+Inst['beta-1'][0]/dsp**4 189 peak[8] = Inst['var-inst'][0]*dsp**2 190 peak[10] = Inst['X'][0]*dsp**2+Inst['Y'][0]*dsp 162 191 UpdatePeakGrid(G2frame,peaks) 163 192 … … 178 207 for r in range(G2frame.dataDisplay.GetNumberRows()): 179 208 for c in range(G2frame.dataDisplay.GetNumberCols()): 180 if G2frame.dataDisplay.GetColLabelValue(c) in ['position','intensity',' sigma','gamma']:209 if G2frame.dataDisplay.GetColLabelValue(c) in ['position','intensity','alpha','beta','sigma','gamma']: 181 210 if float(G2frame.dataDisplay.GetCellValue(r,c)) < 0.: 182 211 G2frame.dataDisplay.SetCellBackgroundColour(r,c,wx.RED) … … 239 268 if not G2frame.dataFrame.GetStatusBar(): 240 269 Status = G2frame.dataFrame.CreateStatusBar() 270 G2frame.Bind(wx.EVT_MENU, OnAutoSearch, id=G2gd.wxID_AUTOSEARCH) 241 271 G2frame.Bind(wx.EVT_MENU, OnUnDo, id=G2gd.wxID_UNDO) 242 272 G2frame.Bind(wx.EVT_MENU, OnLSQPeakFit, id=G2gd.wxID_LSQPEAKFIT) … … 250 280 G2frame.PickTable = [] 251 281 rowLabels = [] 282 PatternId = G2frame.PatternId 283 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters')) 252 284 for i in range(len(data)): rowLabels.append(str(i+1)) 253 colLabels = ['position','refine','intensity','refine','sigma','refine','gamma','refine'] 254 Types = [wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_BOOL, 255 wg.GRID_VALUE_FLOAT+':10,1',wg.GRID_VALUE_BOOL, 256 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL, 257 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 285 if 'C' in Inst['Type'][0]: 286 colLabels = ['position','refine','intensity','refine','sigma','refine','gamma','refine'] 287 Types = [wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_BOOL, 288 wg.GRID_VALUE_FLOAT+':10,1',wg.GRID_VALUE_BOOL, 289 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL, 290 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 291 else: 292 colLabels = ['position','refine','intensity','refine','alpha','refine', 293 'beta','refine','sigma','refine','gamma','refine'] 294 Types = [wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_BOOL, 295 wg.GRID_VALUE_FLOAT+':10,1',wg.GRID_VALUE_BOOL, 296 wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_BOOL, 297 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL, 298 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL, 299 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 258 300 T = [] 259 301 for peak in data: … … 642 684 peak[6] = insVal['X']/cosd(peak[0]/2.0)+insVal['Y']*tand(peak[0]/2.0) 643 685 else: 644 pass 645 # for peak in peaks: 646 686 for peak in peaks: 687 dsp = peak[0]/insVal['difC'] 688 peak[4] = insVal['alpha']*dsp 689 peak[6] = insVal['beta-0']+insVal['beta-1']/dsp**4 690 peak[8] = insVal['var-inst']*dsp**2 691 peak[10] = insVal['X']*dsp**2+insVal['Y']*dsp 647 692 648 693 def OnLoad(event): … … 673 718 S = File.readline() 674 719 File.close() 675 data = dict(zip(newItems,zip(newVals,newVals,len(newVals)*[False,]))) 676 for item in data: 677 data[item] = list(data[item]) 720 inst = G2IO.makeInstDict(newItems,newVals,len(newVals)*[False,]) 678 721 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Instrument Parameters'),data) 679 722 RefreshInstrumentGrid(event,doAnyway=True) #to get peaks updated … … 940 983 else: #time of flight (neutrons) 941 984 instSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Azimuth: %7.2f'%(insVal['Azimuth'])),0,wx.ALIGN_CENTER_VERTICAL) 985 instSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' 2-theta: %7.2f'%(insVal['2-theta'])),0,wx.ALIGN_CENTER_VERTICAL) 986 instSizer.Add((5,5),0) 987 instSizer.Add((5,5),0) 942 988 for item in ['difC','difA','Zero','alpha','beta-0','beta-1','var-inst','X','Y']: 943 989 fmt = '%10.3f' … … 952 998 itemVal.Bind(wx.EVT_KILL_FOCUS,OnItemValue) 953 999 instSizer.Add(itemVal,0,wx.ALIGN_CENTER_VERTICAL) 954 itemRef = wx.CheckBox(G2frame.dataDisplay,wx.ID_ANY,label=' Refine?') 955 itemRef.SetValue(bool(insRef[item])) 956 RefObj[itemRef.GetId()] = item 957 itemRef.Bind(wx.EVT_CHECKBOX, OnItemRef) 958 instSizer.Add(itemRef,0,wx.ALIGN_CENTER_VERTICAL) 1000 if not ifHisto and item in ['difC','difA','Zero',]: 1001 instSizer.Add((5,5),0) 1002 else: 1003 itemRef = wx.CheckBox(G2frame.dataDisplay,wx.ID_ANY,label=' Refine?') 1004 itemRef.SetValue(bool(insRef[item])) 1005 RefObj[itemRef.GetId()] = item 1006 itemRef.Bind(wx.EVT_CHECKBOX, OnItemRef) 1007 instSizer.Add(itemRef,0,wx.ALIGN_CENTER_VERTICAL) 959 1008 960 1009 else: #single crystal data … … 1264 1313 IndexId = G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Index Peak List') 1265 1314 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters')) 1266 try: 1267 wave = Inst['Lam'][1] 1268 except KeyError: 1269 wave = Inst['Lam1'][0] 1315 wave = G2mth.getWave(Inst) 1270 1316 1271 1317 def RefreshIndexPeaksGrid(event): … … 1369 1415 'P 4/m m m','F m m m','I m m m','C m m m','P m m m','C 2/m','P 2/m','P -1'] 1370 1416 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters')) 1371 if 'Lam' in Inst: 1372 wave = Inst['Lam'][1] 1373 else: 1374 wave = Inst['Lam1'][0] 1375 1417 wave = G2mth.getWave(Inst) 1418 1376 1419 def SetLattice(controls): 1377 1420 ibrav = bravaisSymb.index(controls[5])
Note: See TracChangeset
for help on using the changeset viewer.