Changeset 1515 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Oct 3, 2014 10:38:49 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r1512 r1515 77 77 'Scale':[1.0,True],'Type':'Debye-Scherrer','Absorption':[0.0,False], 78 78 'DisplaceX':[0.0,False],'DisplaceY':[0.0,False],'Diffuse':[], 79 'Temperature':300.,'Pressure':0.1, 79 'Temperature':300.,'Pressure':0.1,'Time':0.0, 80 80 'FreePrm1':0.,'FreePrm2':0.,'FreePrm3':0., 81 81 'Gonio. radius':200.0, … … 116 116 parms.append(['Chi','Goniometer chi:',[10,3]]) 117 117 parms.append(['Phi','Goniometer phi:',[10,3]]) 118 parms.append(['Time','Clock time (s)',[12,3]]) 118 119 parms.append(['Temperature','Sample temperature (K): ',[10,3]]) 119 120 parms.append(['Pressure','Sample pressure (MPa): ',[10,3]]) … … 409 410 Reverse = False 410 411 CopyForward = False 411 choice = [' Copy from prev.',] #'Reverse sequence',412 choice = ['Reverse sequence','Copy from prev.',] 412 413 dlg = wx.MultiChoiceDialog(G2frame.dataFrame,'Sequential controls','Select controls',choice) 413 414 if dlg.ShowModal() == wx.ID_OK: … … 426 427 oneCycle = False 427 428 FitPgm = 'LSQ' 429 prevVaryList = [] 430 if Reverse: 431 names.reverse() 428 432 try: 429 433 for i,name in enumerate(names): … … 434 438 PatternId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) 435 439 if i and CopyForward: 436 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'),peaks) 440 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'),copy.copy(peaks)) 441 prevVaryList = varyList[:] 437 442 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List')) 438 443 background = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Background')) … … 447 452 dlg2.SetPosition(wx.Point(screenSize[2]-Size[0]-305,screenSize[1]+5)) 448 453 try: 449 peaks['sigDict'],result,sig,Rvals,varyList,parmDict = G2pwd.DoPeakFit(FitPgm,peaks['peaks'],450 background,limits,inst,inst2,data, oneCycle,controls,dlg2)454 peaks['sigDict'],result,sig,Rvals,varyList,parmDict,fullvaryList,badVary = G2pwd.DoPeakFit(FitPgm,peaks['peaks'], 455 background,limits,inst,inst2,data,prevVaryList,oneCycle,controls,dlg2) 451 456 finally: 452 457 dlg2.Destroy() 453 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'), peaks)458 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'),copy.copy(peaks)) 454 459 SeqResult[name] = {'variables':result[0],'varyList':varyList,'sig':sig,'Rvals':Rvals, 455 'covMatrix':np.eye(len(result[0])),'title':name,'parmDict':parmDict} 460 'covMatrix':np.eye(len(result[0])),'title':name,'parmDict':parmDict, 461 'fullVary':fullvaryList,'badVary':badVary} 456 462 else: 457 463 dlg.Destroy() … … 500 506 dlg.SetPosition(wx.Point(screenSize[2]-Size[0]-305,screenSize[1]+5)) 501 507 try: 502 peaks['sigDict'] = G2pwd.DoPeakFit(FitPgm,peaks['peaks'],background,limits,inst,inst2,data, oneCycle,controls,dlg)[0]508 peaks['sigDict'] = G2pwd.DoPeakFit(FitPgm,peaks['peaks'],background,limits,inst,inst2,data,[],oneCycle,controls,dlg)[0] 503 509 finally: 504 510 wx.EndBusyCursor() 505 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'), peaks)506 UpdatePeakGrid(G2frame, peaks)511 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'),copy.copy(peaks)) 512 UpdatePeakGrid(G2frame,copy.copy(peaks)) 507 513 G2plt.PlotPatterns(G2frame,plotType='PWDR') 508 514 print 'finished' … … 1582 1588 finally: 1583 1589 dlg.Destroy() 1590 1591 def OnAllSampleLoad(event): 1592 filename = '' 1593 dlg = wx.FileDialog(G2frame, 'Choose multihistogram metadata text file', '.', '', 1594 'metadata file (*.*)|*.*',wx.OPEN|wx.CHANGE_DIR) 1595 try: 1596 if dlg.ShowModal() == wx.ID_OK: 1597 filename = dlg.GetPath() 1598 File = open(filename,'r') 1599 S = File.readline() 1600 newItems = [] 1601 itemNames = [] 1602 Comments = [] 1603 while S: 1604 if S[0] == '#': 1605 Comments.append(S) 1606 S = File.readline() 1607 continue 1608 S.replace(',',' ') 1609 S.replace('\t',' ') 1610 Stuff = S[:-1].split(' ') 1611 itemNames.append(Stuff[0]) 1612 newItems.append(Stuff[1:]) 1613 S = File.readline() 1614 File.close() 1615 finally: 1616 dlg.Destroy() 1617 if not filename: 1618 G2frame.ErrorDialog('Nothing to do','No file selected') 1619 return 1620 dataDict = dict(zip(itemNames,newItems)) 1621 ifany = False 1622 Controls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Controls')) 1623 Names = [' ','Phi','Chi','Omega','Time','Temperature','Pressure'] 1624 freeNames = {} 1625 for name in ['FreePrm1','FreePrm2','FreePrm3']: 1626 freeNames[Controls[name]] = name 1627 Names.append(Controls[name]) 1628 dlg = G2gd.G2ColumnIDDialog( G2frame,' Choose multihistogram metadata columns:', 1629 'Select columns',Comments,Names,np.array(newItems).T) 1630 try: 1631 if dlg.ShowModal() == wx.ID_OK: 1632 colNames,newData = dlg.GetSelection() 1633 dataDict = dict(zip(itemNames,newData.T)) 1634 for item in colNames: 1635 if item != ' ': 1636 ifany = True 1637 finally: 1638 dlg.Destroy() 1639 if not ifany: 1640 G2frame.ErrorDialog('Nothing to do','No columns identified') 1641 return 1642 histList = [G2frame.PatternTree.GetItemText(G2frame.PatternId),] 1643 histList += GetHistsLikeSelected(G2frame) 1644 colIds = {} 1645 for i,name in enumerate(colNames): 1646 if name != ' ': 1647 colIds[name] = i 1648 for hist in histList: 1649 name = hist.split()[1] #this is file name 1650 newItems = {} 1651 for item in colIds: 1652 key = freeNames.get(item,item) 1653 newItems[key] = float(dataDict[name][colIds[item]]) 1654 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,hist) 1655 sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 1656 sampleData.update(newItems) 1657 UpdateSampleGrid(G2frame,data) 1584 1658 1585 1659 def OnSetScale(event): … … 1781 1855 G2frame.Bind(wx.EVT_MENU, OnSampleLoad, id=G2gd.wxID_SAMPLELOAD) 1782 1856 G2frame.Bind(wx.EVT_MENU, OnCopy1Val, id=G2gd.wxID_SAMPLE1VAL) 1857 G2frame.Bind(wx.EVT_MENU, OnAllSampleLoad, id=G2gd.wxID_ALLSAMPLELOAD) 1783 1858 if 'SASD' in histName: 1784 1859 G2frame.dataFrame.SetScale.Enable(True) … … 1797 1872 if type(data['Temperature']) is int: 1798 1873 data['Temperature'] = float(data['Temperature']) 1874 if 'Time' not in data: 1875 data['Time'] = 0.0 1799 1876 if 'FreePrm1' not in Controls: 1800 1877 Controls['FreePrm1'] = 'Sample humidity (%)' … … 1880 1957 parmSizer.Add(parmVal,1,wx.EXPAND) 1881 1958 Info = {} 1882 1883 1959 1884 1960 for key in ('FreePrm1','FreePrm2','FreePrm3'):
Note: See TracChangeset
for help on using the changeset viewer.