Changeset 190 for trunk/GSASIIphsGUI.py
- Timestamp:
- Dec 7, 2010 3:58:39 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIphsGUI.py
r185 r190 15 15 import GSASIIplot as G2plt 16 16 import GSASIIgrid as G2gd 17 import GSASIIIO as G2IO 17 18 import numpy as np 18 19 import numpy.linalg as nl … … 124 125 self.Destroy() 125 126 126 def UpdatePhaseData(self, item,data,oldPage):127 def UpdatePhaseData(self,Item,data,oldPage): 127 128 128 129 Atoms = [] 129 130 if self.dataDisplay: 130 131 self.dataDisplay.Destroy() 131 PhaseName = self.PatternTree.GetItemText( item)132 PhaseName = self.PatternTree.GetItemText(Item) 132 133 self.dataFrame.SetMenuBar(self.dataFrame.BlankMenu) 133 134 self.dataFrame.SetLabel('Phase Data for '+PhaseName) … … 188 189 self.G2plotNB.Rename(oldName,generalData['Name']) 189 190 self.dataFrame.SetLabel('Phase Data for '+generalData['Name']) 190 self.PatternTree.SetItemText( item,generalData['Name'])191 self.PatternTree.SetItemText(Item,generalData['Name']) 191 192 192 193 def OnPhaseType(event): … … 1898 1899 except ValueError: 1899 1900 pass 1900 Obj.SetValue("%. 3f"%(UseList[hist]['Mustrain'][1][pid])) #reset in case of error1901 Obj.SetValue("%.5f"%(UseList[hist]['Mustrain'][1][pid])) #reset in case of error 1901 1902 1902 1903 def OnStrainAxis(event): … … 2114 2115 strainRef.Bind(wx.EVT_CHECKBOX, OnStrainRef) 2115 2116 strainSizer.Add(strainRef,0,wx.ALIGN_CENTER_VERTICAL) 2116 strainVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%. 3f'%(val),style=wx.TE_PROCESS_ENTER)2117 strainVal = wx.TextCtrl(dataDisplay,wx.ID_ANY,'%.5f'%(val),style=wx.TE_PROCESS_ENTER) 2117 2118 Indx[strainVal.GetId()] = [item,id] 2118 2119 strainVal.Bind(wx.EVT_TEXT_ENTER,OnStrainVal) … … 2243 2244 2244 2245 def FillPawleyReflectionsGrid(): 2246 2247 2248 2249 if data['Histograms']: 2250 self.dataFrame.PawleyMenu.FindItemById(G2gd.wxID_PAWLEYLOAD).Enable(True) 2251 self.dataFrame.PawleyMenu.FindItemById(G2gd.wxID_PAWLEYIMPORT).Enable(True) 2252 else: 2253 self.dataFrame.PawleyMenu.FindItemById(G2gd.wxID_PAWLEYLOAD).Enable(False) 2254 self.dataFrame.PawleyMenu.FindItemById(G2gd.wxID_PAWLEYIMPORT).Enable(False) 2255 2256 def KeyEditPawleyGrid(event): 2257 colList = PawleyRefl.GetSelectedCols() 2258 PawleyPeaks = data['Pawley ref'] 2259 if event.GetKeyCode() == wx.WXK_RETURN: 2260 event.Skip(True) 2261 elif event.GetKeyCode() == wx.WXK_CONTROL: 2262 event.Skip(True) 2263 elif event.GetKeyCode() == wx.WXK_SHIFT: 2264 event.Skip(True) 2265 elif colList: 2266 PawleyRefl.ClearSelection() 2267 key = event.GetKeyCode() 2268 for col in colList: 2269 if PawleyTable.GetTypeName(0,col) == wg.GRID_VALUE_BOOL: 2270 if key == 89: #'Y' 2271 for row in range(PawleyTable.GetNumberRows()): PawleyPeaks[row][col]=True 2272 elif key == 78: #'N' 2273 for row in range(PawleyTable.GetNumberRows()): PawleyPeaks[row][col]=False 2274 FillPawleyReflectionsGrid() 2275 2276 if 'Pawley ref' in data: 2277 PawleyPeaks = data['Pawley ref'] 2278 rowLabels = [] 2279 for i in range(len(PawleyPeaks)): rowLabels.append(str(i+1)) 2280 colLabels = ['h','k','l','mul','2-theta','sigma','refine','Iobs','Icalc'] 2281 Types = [wg.GRID_VALUE_LONG,wg.GRID_VALUE_LONG,wg.GRID_VALUE_LONG,wg.GRID_VALUE_LONG, 2282 wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_FLOAT+':10,4',wg.GRID_VALUE_BOOL, 2283 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_FLOAT+':10,5'] 2284 PawleyTable = G2gd.Table(PawleyPeaks,rowLabels=rowLabels,colLabels=colLabels,types=Types) 2285 PawleyRefl.SetTable(PawleyTable, True) 2286 PawleyRefl.Bind(wx.EVT_KEY_DOWN, KeyEditPawleyGrid) 2287 PawleyRefl.SetMargins(0,0) 2288 PawleyRefl.AutoSizeColumns(False) 2289 self.dataFrame.setSizePosLeft([500,300]) 2290 2291 def OnPawleyLoad(event): 2292 sig = lambda Th,U,V,W: 1.17741*math.sqrt(U*tand(Th)**2+V*tand(Th)+W)/100. 2293 gam = lambda Th,X,Y: (X/cosd(Th)+Y*tand(Th))/100. 2294 gamFW = lambda s,g: math.sqrt(s**2+(0.4654996*g)**2)+.5345004*g #Ubaldo Bafile - private communication 2295 choice = data['Histograms'].keys() 2296 dlg = wx.SingleChoiceDialog(self,'Select','Powder histogram',choice) 2297 if dlg.ShowModal() == wx.ID_OK: 2298 histogram = choice[dlg.GetSelection()] 2299 Id = G2gd.GetPatternTreeItemId(self, self.root, histogram) 2300 Iparms = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,Id, 'Instrument Parameters')) 2301 try: #try single wavelength 2302 lam = Iparms[1][Iparms[3].index('Lam')] 2303 except ValueError: #Ka1 & Ka2 present 2304 lam = Iparms[1][Iparms[3].index('Lam1')] 2305 GU = Iparms[1][Iparms[3].index('U')] 2306 GV = Iparms[1][Iparms[3].index('V')] 2307 GW = Iparms[1][Iparms[3].index('W')] 2308 LX = Iparms[1][Iparms[3].index('X')] 2309 LY = Iparms[1][Iparms[3].index('Y')] 2310 dlg.Destroy() 2245 2311 generalData = data['General'] 2246 print 'Pawley reflections' 2312 dmin = generalData['Pawley dmin'] 2313 cell = generalData['Cell'][1:7] 2314 A = G2lat.cell2A(cell) 2315 SGData = generalData['SGData'] 2316 Laue = SGData['SGLaue'] 2317 SGLatt = SGData['SGLatt'] 2318 SGUniq = SGData['SGUniq'] 2319 HKLd = G2lat.GenHLaue(dmin,Laue,SGLatt,SGUniq,A) 2320 PawleyPeaks = [] 2321 for h,k,l,d in HKLd: 2322 ext,mul = G2spc.GenHKL([h,k,l],SGData)[:2] 2323 if not ext: 2324 th = asind(lam/(2.0*d)) 2325 H = gamFW(sig(th,GU,GV,GW),gam(th,LX,LY))/2.35482 2326 PawleyPeaks.append([h,k,l,mul,2*th,H,False,0,0]) 2327 data['Pawley ref'] = PawleyPeaks 2328 FillPawleyReflectionsGrid() 2329 2330 2331 def OnPawleyImport(event): 2332 dlg = wx.FileDialog(self, 'Choose file with Pawley reflections', '.', '', 2333 'GSAS Pawley files (*.RFL)|*.RFL',wx.OPEN) 2334 if self.dirname: 2335 dlg.SetDirectory(self.dirname) 2336 try: 2337 if dlg.ShowModal() == wx.ID_OK: 2338 PawleyFile = dlg.GetPath() 2339 self.dirname = dlg.GetDirectory() 2340 choice = data['Histograms'].keys() 2341 dlg2 = wx.SingleChoiceDialog(self,'Select','Powder histogram',choice) 2342 if dlg2.ShowModal() == wx.ID_OK: 2343 histogram = choice[dlg2.GetSelection()] 2344 Id = G2gd.GetPatternTreeItemId(self, self.root, histogram) 2345 Iparms = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,Id, 'Instrument Parameters')) 2346 dlg2.Destroy() 2347 2348 PawleyPeaks = G2IO.GetPawleyPeaks(PawleyFile) 2349 data['Pawley ref'] = PawleyPeaks 2350 FillPawleyReflectionsGrid() 2351 finally: 2352 dlg.Destroy() 2247 2353 2248 2354 def OnPageChanged(event): … … 2287 2393 UpdateDrawAtoms() 2288 2394 G2plt.PlotStructure(self,data) 2395 elif text == 'Pawley reflections': 2396 self.dataFrame.SetMenuBar(self.dataFrame.PawleyMenu) 2397 self.dataFrame.Bind(wx.EVT_MENU, OnPawleyLoad, id=G2gd.wxID_PAWLEYLOAD) 2398 self.dataFrame.Bind(wx.EVT_MENU, OnPawleyImport, id=G2gd.wxID_PAWLEYIMPORT) 2399 FillPawleyReflectionsGrid() 2289 2400 else: 2290 2401 self.dataFrame.SetMenuBar(self.dataFrame.BlankMenu) … … 2298 2409 2299 2410 if GeneralData['Type'] == 'Pawley': 2411 DData = wx.ScrolledWindow(self.dataDisplay) 2412 self.dataDisplay.AddPage(DData,'Data') 2300 2413 PawleyRefl = G2gd.GSGrid(self.dataDisplay) 2301 2414 self.dataDisplay.AddPage(PawleyRefl,'Pawley reflections')
Note: See TracChangeset
for help on using the changeset viewer.