Changeset 2695
- Timestamp:
- Feb 8, 2017 12:31:24 PM (5 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r2694 r2695 3576 3576 if 'PWDR' in name: 3577 3577 TextList.append(name) 3578 Data = self.PatternTree.GetItemPyData(id)[1] 3579 pwdrMin = np.min(Data[1]) 3578 3580 Comments = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,id,'Comments')) 3579 3581 Parms = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,id,'Instrument Parameters'))[0] … … 3606 3608 for i in dlg.GetSelections(): 3607 3609 PDFnames = G2gd.GetPatternTreeDataNames(self,['PDF ',]) 3608 G2obj.CreatePDFitems(self,TextList[i],ElLists[i],Qlimits[i], PDFnames)3610 G2obj.CreatePDFitems(self,TextList[i],ElLists[i],Qlimits[i],pwdrMin,PDFnames) 3609 3611 for item in self.ExportPDF: item.Enable(True) 3610 3612 finally: -
trunk/GSASIIgrid.py
r2694 r2695 3784 3784 prevVaryList = [] 3785 3785 foundNames = [] 3786 missing = 0 3786 3787 for i,name in enumerate(histNames): 3787 3788 if name not in data: 3788 print("Error: "+name+" not found!") 3789 if missing < 5: 3790 print(" Warning: "+name+" not found") 3791 elif missing == 5: 3792 print ' Warning: more are missing' 3793 missing += 1 3789 3794 continue 3790 3795 foundNames.append(name) … … 3803 3808 posdict[name][combinedVaryList.index(svar)] = svar 3804 3809 VaryListChanges.append(name) 3810 if missing: 3811 print ' Warning: Total of %d data sets missing from sequential results'%(missing) 3805 3812 if len(VaryListChanges) > 1: 3806 3813 G2frame.dataFrame.SequentialFile.Enable(wxID_ORGSEQSEL,True) -
trunk/GSASIIimgGUI.py
r2694 r2695 188 188 try: 189 189 if dlg.ShowModal() == wx.ID_OK: 190 SeqResult = {} 190 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential image calibration results') 191 if Id: 192 SeqResult = G2frame.PatternTree.GetItemPyData(Id) 193 else: 194 SeqResult = {} 195 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential image calibration results') 196 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 191 197 items = dlg.GetSelections() 192 198 G2frame.EnablePlot = False 193 names = []194 199 for item in items: 195 200 name = Names[item] 196 names.append(name)197 201 print 'calibrating',name 198 202 G2frame.Image = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) … … 213 217 SeqResult[name] = {'variables':vals,'varyList':varyList,'sig':sigList,'Rvals':[], 214 218 'covMatrix':np.eye(len(varyList)),'title':name,'parmDict':parmDict} 215 SeqResult['histNames'] = names 216 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential image calibration results') 217 if Id: 218 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 219 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 220 else: 221 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential image calibration results') 222 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 219 SeqResult['histNames'] = Names 223 220 finally: 224 221 dlg.Destroy() 225 222 print 'All selected images recalibrated - results in Sequential image calibration results' 223 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 226 224 G2plt.PlotExposedImage(G2frame,event=None) 227 wx.CallLater(100,UpdateImageControls,G2frame,data,masks)225 G2frame.PatternTree.SelectItem(Id) 228 226 229 227 def OnClearCalib(event): … … 1915 1913 def OnFitAllStrSta(event): 1916 1914 choices = G2gd.GetPatternTreeDataNames(G2frame,['IMG ',]) 1917 sel = []1918 1915 dlg = G2G.G2MultiChoiceDialog(G2frame,'Stress/Strain fitting','Select images to fit:',choices) 1919 dlg.SetSelections(sel)1920 1916 names = [] 1921 1917 if dlg.ShowModal() == wx.ID_OK: 1922 1918 for sel in dlg.GetSelections(): 1923 1919 names.append(choices[sel]) 1920 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential strain fit results') 1921 if Id: 1922 SeqResult = G2frame.PatternTree.GetItemPyData(Id) 1923 else: 1924 SeqResult = {} 1925 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential strain fit results') 1926 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 1924 1927 else: 1928 dlg.Destroy() 1925 1929 return 1930 dlg.Destroy() 1926 1931 if not names: 1927 1932 return 1928 dlg.Destroy()1929 SeqResult = {}1930 1933 Reverse = False 1931 1934 CopyForward = False … … 1990 1993 finally: 1991 1994 wx.EndBusyCursor() 1992 if Reverse: 1993 names.reverse() 1994 SeqResult['histNames'] = names 1995 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Sequential strain fit results') 1996 if Id: 1997 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 1998 G2frame.G2plotNB.Delete('Sequential refinement') #clear away probably invalid plot 1999 else: 2000 Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text='Sequential strain fit results') 2001 G2frame.PatternTree.SetItemPyData(Id,SeqResult) 1995 SeqResult['histNames'] = choices 2002 1996 G2frame.PatternTree.SelectItem(Id) 2003 1997 print 'All images fitted' … … 2891 2885 continue 2892 2886 # Setup PDF 2887 Data = G2frame.PatternTree.GetItemPyData(PWid)[1] 2888 pwdrMin = np.min(Data[1]) 2893 2889 Parms = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId( 2894 2890 G2frame,PWid,'Instrument Parameters'))[0] … … 2916 2912 ElList[elem] = ElData 2917 2913 PDFnames = G2gd.GetPatternTreeDataNames(G2frame,['PDF ',]) 2918 PDFid = G2obj.CreatePDFitems(G2frame,pwdr,ElList.copy(),Qlimits, PDFnames)2914 PDFid = G2obj.CreatePDFitems(G2frame,pwdr,ElList.copy(),Qlimits,pwdrMin,PDFnames) 2919 2915 if not PDFid: continue 2920 2916 PDFdata = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId( -
trunk/GSASIIobj.py
r2692 r2695 2088 2088 return repr(self.msg) 2089 2089 2090 def CreatePDFitems(G2frame,PWDRtree,ElList,Qlimits, PDFnames=[]):2090 def CreatePDFitems(G2frame,PWDRtree,ElList,Qlimits,FltBkg=0,PDFnames=[]): 2091 2091 '''Create and initialize a new set of PDF tree entries 2092 2092 … … 2108 2108 'Container':{'Name':'','Mult':-1.0}, 2109 2109 'Container Bkg.':{'Name':'','Mult':-1.0,'Add':0.0},'ElList':ElList, 2110 'Geometry':'Cylinder','Diam':1.0,'Pack':0.50,'Form Vol':10.0, 2110 'Geometry':'Cylinder','Diam':1.0,'Pack':0.50,'Form Vol':10.0,'Flat Bkg':FltBkg, 2111 2111 'DetType':'Image plate','ObliqCoeff':0.2,'Ruland':0.025,'QScaleLim':Qlimits, 2112 2112 'Lorch':False,'BackRatio':0.0,'Rmax':100.,'noRing':False,'IofQmin':1.0, -
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 -
trunk/GSASIIstrMath.py
r2616 r2695 1026 1026 Tindx = np.array([refDict['FF']['El'].index(El) for El in Tdata]) 1027 1027 MF = refDict['FF']['MF'][iBeg:iFin].T[Tindx].T #Nref,Natm 1028 TMcorr = 0.539*(np.reshape(Tiso,Tuij.shape)*Tuij)[:,0,:]*Fdata*Mdata*MF/(2*Nops) #Nref,Natm #Nref,Natm1028 TMcorr = 0.539*(np.reshape(Tiso,Tuij.shape)*Tuij)[:,0,:]*Fdata*Mdata*MF/(2*Nops) #Nref,Natm 1029 1029 if SGData['SGInv']: 1030 1030 mphase = np.hstack((phase,-phase))
Note: See TracChangeset
for help on using the changeset viewer.