Changeset 2695 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Feb 8, 2017 12:31:24 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r2694 r2695 521 521 522 522 def OnSeqPeakFit(event): 523 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 524 histList = GetHistsLikeSelected(G2frame) 525 if not histList: 526 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 527 return 528 sel = [] 523 histList = G2gd.GetPatternTreeDataNames(G2frame,['PWDR',]) 529 524 dlg = G2G.G2MultiChoiceDialog(G2frame.dataFrame, 'Sequential peak fits', 530 525 'Select dataset to include',histList) 531 dlg.SetSelections(sel)532 526 names = [] 533 527 if dlg.ShowModal() == wx.ID_OK: … … 537 531 if not names: 538 532 return 539 SeqResult = {} 533 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential peak fit results') 534 if Id: 535 SeqResult = G2frame.PatternTree.GetItemPyData(Id) 536 else: 537 SeqResult = {} 538 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential peak fit results') 539 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 540 540 Reverse = False 541 541 CopyForward = False … … 558 558 FitPgm = 'LSQ' 559 559 prevVaryList = [] 560 Names = []561 560 peaks = None 562 561 varyList = None … … 579 578 inst,inst2 = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Instrument Parameters')) 580 579 data = G2frame.PatternTree.GetItemPyData(PatternId)[1] 581 dlg2 = wx.ProgressDialog('Residual','Peak fit Rwp = ',101.0, 582 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_ABORT) 583 screenSize = wx.ClientDisplayRect() 584 Size = dlg.GetSize() 585 if 50 < Size[0] < 500: # sanity check on size, since this fails w/Win & wx3.0 586 dlg2.SetSize((int(Size[0]*1.2),Size[1])) # increase size a bit along x 587 dlg2.SetPosition(wx.Point(screenSize[2]-Size[0]-305,screenSize[1]+5)) 588 try: 589 peaks['sigDict'],result,sig,Rvals,varyList,parmDict,fullvaryList,badVary = G2pwd.DoPeakFit(FitPgm,peaks['peaks'], 590 background,limits,inst,inst2,data,prevVaryList,oneCycle,controls,dlg2) 591 finally: 592 dlg2.Destroy() 580 peaks['sigDict'],result,sig,Rvals,varyList,parmDict,fullvaryList,badVary = G2pwd.DoPeakFit(FitPgm,peaks['peaks'], 581 background,limits,inst,inst2,data,prevVaryList,oneCycle,controls) 593 582 if len(result[0]) != len(fullvaryList): 594 583 dlg.Destroy() … … 596 585 break 597 586 else: 598 Names.append(name)599 587 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List'),copy.deepcopy(peaks)) 600 588 SeqResult[name] = {'variables':result[0],'varyList':varyList,'sig':sig,'Rvals':Rvals, … … 604 592 finally: 605 593 dlg.Destroy() 606 if Reverse: 607 Names.reverse() 608 SeqResult['histNames'] = Names 609 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential peak fit results') 610 if Id: 611 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 612 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 613 else: 614 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential peak fit results') 615 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 594 SeqResult['histNames'] = histList 595 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 616 596 G2frame.PatternTree.SelectItem(Id) 617 597 … … 4042 4022 def OnFitModelAll(event): 4043 4023 choices = G2gd.GetPatternTreeDataNames(G2frame,['SASD',]) 4044 sel = []4045 4024 dlg = G2G.G2MultiChoiceDialog(G2frame.dataFrame, 'Sequential SASD refinement', 4046 4025 'Select dataset to include',choices) 4047 dlg.SetSelections(sel)4048 4026 names = [] 4049 4027 if dlg.ShowModal() == wx.ID_OK: 4050 4028 for sel in dlg.GetSelections(): 4051 4029 names.append(choices[sel]) 4030 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential SASD results') 4031 if Id: 4032 SeqResult = G2frame.PatternTree.GetItemPyData(Id) 4033 else: 4034 SeqResult = {} 4035 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential SASD results') 4036 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 4037 SeqResult['histNames'] = choices 4038 else: 4039 dlg.Destroy() 4040 return 4052 4041 dlg.Destroy() 4053 SeqResult = {}4054 4042 Reverse = False 4055 4043 CopyForward = False … … 4102 4090 finally: 4103 4091 wx.EndBusyCursor() 4104 if Reverse:4105 names.reverse()4106 SeqResult['histNames'] = names4107 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential SASD results')4108 if Id:4109 G2frame.PatternTree.SetItemPyData(Id,SeqResult)4110 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot4111 else:4112 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential SASD results')4113 G2frame.PatternTree.SetItemPyData(Id,SeqResult)4114 4092 G2frame.PatternTree.SelectItem(Id) 4115 4093 … … 5342 5320 5343 5321 atms = ','.join(data['ElList'].keys()) 5344 colLabels = ['position','magnitude','sig','refine','Atom A','Atom B',' Cooord.No.']5322 colLabels = ['position','magnitude','sig','refine','Atom A','Atom B','Bond No.'] 5345 5323 Types = 3*[wg.GRID_VALUE_FLOAT+':10,3',]+[wg.GRID_VALUE_CHOICE+': ,P,M,S,PM,PS,MS,PMS',]+ \ 5346 5324 2*[wg.GRID_VALUE_CHOICE+':'+atms,]+[wg.GRID_VALUE_FLOAT+':10,3',] … … 5398 5376 try: 5399 5377 if dlg.ShowModal() == wx.ID_OK: 5400 SeqResult = {} 5378 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential PDF peak fit results') 5379 if Id: 5380 SeqResult = G2frame.PatternTree.GetItemPyData(Id) 5381 else: 5382 SeqResult = {} 5383 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential PDF peak fit results') 5384 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 5401 5385 items = dlg.GetSelections() 5402 5386 G2frame.EnablePlot = False 5403 names = []5404 5387 for item in items: 5405 5388 name = Names[item] 5406 names.append(name)5407 5389 pId = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) 5408 5390 data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,pId, 'PDF Controls')) … … 5412 5394 'covMatrix':np.eye(len(varyList)),'title':name,'parmDict':parmDict} 5413 5395 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,pId, 'PDF Peaks'),newpeaks) 5414 SeqResult['histNames'] = names 5415 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential PDF peak fit results') 5416 if Id: 5417 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 5418 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 5419 else: 5420 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential PDF peak fit results') 5421 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 5396 SeqResult['histNames'] = Names 5397 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 5422 5398 finally: 5423 5399 dlg.Destroy() 5424 5400 G2plt.PlotISFG(G2frame,data,peaks=newpeaks,newPlot=False) 5425 wx.CallAfter(UpdatePDFPeaks,G2frame,newpeaks,data)5401 G2frame.PatternTree.SelectItem(Id) 5426 5402 print 'All PDFs peak fitted - results in Sequential PDF peak fit results' 5427 5403
Note: See TracChangeset
for help on using the changeset viewer.