Changeset 1800
- Timestamp:
- Apr 21, 2015 12:16:53 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIImath.py
r1799 r1800 1594 1594 ################################################################################ 1595 1595 1596 def FitTexture(General,Gangls,refData,keyList ):1596 def FitTexture(General,Gangls,refData,keyList,pgbar): 1597 1597 import pytexture as ptx 1598 1598 ptx.pyqlmninit() #initialize fortran arrays for spherical harmonics … … 1649 1649 parmdict.update(zip(varylist,values)) 1650 1650 1651 def errSpHarm(values,SGData,cell,Gangls,shModel,refData,parmDict,varyList ):1651 def errSpHarm(values,SGData,cell,Gangls,shModel,refData,parmDict,varyList,pgbar): 1652 1652 parmDict.update(zip(varyList,values)) 1653 1653 Mat = np.empty(0) 1654 sumObs = 0 1654 1655 Sangls = [parmDict['Sample '+'omega'],parmDict['Sample '+'chi'],parmDict['Sample '+'phi']] 1655 1656 for hist in Gangls.keys(): 1656 1657 Refs = refData[hist] 1658 sumObs += np.sum(Refs[:,5]) 1657 1659 Refs[:,6] = 1. 1658 1660 H = Refs[:,:3] … … 1668 1670 mat = Refs[:,5]-Refs[:,6] 1669 1671 Mat = np.concatenate((Mat,mat)) 1670 print ' Chi**2: %.3f'%(np.sum(np.abs(Mat))) 1672 sumD = np.sum(np.abs(Mat)) 1673 R = min(100.,100.*sumD/sumObs) 1674 pgbar.Update(R,newmsg='Residual = %5.2f'%(R)) 1675 print ' Residual: %.3f%%'%(R) 1671 1676 return Mat 1672 1677 1673 def dervSpHarm(values,SGData,cell,Gangls,shModel,refData,parmDict,varyList ):1678 def dervSpHarm(values,SGData,cell,Gangls,shModel,refData,parmDict,varyList,pgbar): 1674 1679 Mat = np.empty(0) 1675 1680 Sangls = [parmDict['Sample omega'],parmDict['Sample chi'],parmDict['Sample phi']] … … 1690 1695 try: 1691 1696 l = varyList.index(itema) 1692 mat[l] += parmDict[item]*Lnorm*Kcl*(dKdp*dPdA[k]+dKdg*dGdA[k])1697 mat[l] -= parmDict[item]*Lnorm*Kcl*(dKdp*dPdA[k]+dKdg*dGdA[k]) 1693 1698 except ValueError: 1694 1699 pass … … 1718 1723 values = np.array(Dict2Values(parmDict, varyList)) 1719 1724 result = so.leastsq(errSpHarm,values,Dfun=dervSpHarm,full_output=True, 1720 args=(SGData,cell,Gangls,Texture['Model'],refData,parmDict,varyList ))1725 args=(SGData,cell,Gangls,Texture['Model'],refData,parmDict,varyList,pgbar)) 1721 1726 ncyc = int(result[2]['nfev']/2) 1722 1727 if ncyc: … … 1727 1732 print 'Number of function calls:',result[2]['nfev'],' Number of observations: ',len(result[2]['fvec']),' Number of parameters: ',len(varyList) 1728 1733 print 'refinement time = %8.3fs, %8.3fs/cycle'%(runtime,runtime/ncyc) 1729 print 'chi**2 = %12.6g, reduced chi**2 = %6.2f'%(chisq,GOF)1730 1734 try: 1731 1735 sig = np.sqrt(np.diag(result[1])*GOF) -
trunk/GSASIIphsGUI.py
r1796 r1800 711 711 def OnRefList(event): 712 712 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use', 713 'Use data',refsList ,filterBox=False)713 'Use data',refsList) 714 714 try: 715 715 if dlg.ShowModal() == wx.ID_OK: … … 782 782 def OnRefList(event): 783 783 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use', 784 'Use data',refsList ,filterBox=False)784 'Use data',refsList) 785 785 try: 786 786 if dlg.ShowModal() == wx.ID_OK: … … 2228 2228 def OnRefList(event): 2229 2229 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use', 2230 'Use data',refsList ,filterBox=False)2230 'Use data',refsList) 2231 2231 try: 2232 2232 if dlg.ShowModal() == wx.ID_OK: … … 3752 3752 TextList.append(name) 3753 3753 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 3754 dlg = wx.MultiChoiceDialog(G2frame, 'Which new data to use?', 'Use data', TextList, wx.CHOICEDLG_STYLE) 3754 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use', 3755 'Use data',TextList) 3755 3756 try: 3756 3757 if dlg.ShowModal() == wx.ID_OK: … … 3936 3937 NDij = len(G2spc.HStrainNames(SGData)) 3937 3938 keyList = UseList.keys() 3938 TextList = [ 'All PWDR']3939 TextList = [] 3939 3940 if G2frame.PatternTree.GetCount(): 3940 3941 item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) … … 3944 3945 TextList.append(name) 3945 3946 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 3946 dlg = wx.MultiChoiceDialog(G2frame, 'Which new data to use?', 'Use data', TextList, wx.CHOICEDLG_STYLE) 3947 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to use', 3948 'Use data',TextList) 3947 3949 try: 3948 3950 if dlg.ShowModal() == wx.ID_OK: … … 5923 5925 else: # xray - typical caked 2D image data 5924 5926 refData[name] = np.column_stack((Refs[0],Refs[1],Refs[2],Refs[5+im],Refs[8+im],Refs[12+im+it],np.zeros_like(Refs[0]))) 5925 Error = G2mth.FitTexture(General,Gangls,refData,keyList) 5927 pgbar = wx.ProgressDialog('Texture fit','Residual = %5.2f'%(101.0),101.0, 5928 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE) 5929 Error = G2mth.FitTexture(General,Gangls,refData,keyList,pgbar) 5930 pgbar.Destroy() 5926 5931 if Error: 5927 5932 wx.MessageBox(Error,caption='Fit Texture Error',style=wx.ICON_EXCLAMATION) … … 5977 5982 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataMenu) 5978 5983 G2ddG.UpdateDData(G2frame,DData,data) 5979 G2plt.PlotSizeStrainPO(G2frame,data,hist='',Start=True)5984 wx.CallAfter(G2plt.PlotSizeStrainPO,G2frame,data,hist='',Start=True) 5980 5985 elif text == 'Atoms': 5981 5986 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.AtomsMenu) … … 6007 6012 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.TextureMenu) 6008 6013 UpdateTexture() 6009 G2plt.PlotTexture(G2frame,data,Start=True)6014 wx.CallAfter(G2plt.PlotTexture,G2frame,data,Start=True) 6010 6015 elif text == 'Pawley reflections': 6011 6016 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PawleyMenu) … … 6013 6018 else: 6014 6019 G2gd.SetDataMenuBar(G2frame) 6020 6015 6021 def FillMenus(): 6016 6022 '''Create the Select tab menus and bind to all menu items -
trunk/GSASIIplot.py
r1799 r1800 2540 2540 for ptype in plotDict: 2541 2541 G2frame.G2plotNB.Delete(ptype) 2542 if plotType in ['None'] :2542 if plotType in ['None'] or not useList: 2543 2543 return 2544 2544 if hist == '': -
trunk/GSASIIstrIO.py
r1782 r1800 1505 1505 valstr += 8*' ' 1506 1506 sigstr += 8*' ' 1507 for ind in range(cia+2,cia+ 7):1507 for ind in range(cia+2,cia+8): 1508 1508 sigind = str(i)+':'+str(ind) 1509 1509 valstr += fmt[ind]%(at[ind]) … … 2522 2522 2523 2523 elif 'HKLF' in histogram: 2524 print >>pFile,' Final refinement RF, RF^2 = %.2f%%, %.2f%% on %d reflections (%d user rejected)' \ 2525 %(Histogram['Residuals'][pfx+'Rf'],Histogram['Residuals'][pfx+'Rf^2'],Histogram['Residuals'][pfx+'Nref'],Histogram['Residuals'][pfx+'Nrej']) 2524 print >>pFile,' Final refinement RF, RF^2 = %.2f%%, %.2f%% on %d reflections (%d user rejected, %d sp.gp.extinct)' \ 2525 %(Histogram['Residuals'][pfx+'Rf'],Histogram['Residuals'][pfx+'Rf^2'],Histogram['Residuals'][pfx+'Nref'], 2526 Histogram['Residuals'][pfx+'Nrej'],Histogram['Residuals'][pfx+'Next']) 2526 2527 print >>pFile,' HKLF histogram weight factor = ','%.3f'%(Histogram['wtFactor']) 2527 2528 if pfx+'Scale' in ScalExtSig: -
trunk/GSASIIstrMain.py
r1792 r1800 93 93 Rvals['GOF'] = np.sqrt(Rvals['chisq']/(Histograms['Nobs']-len(varyList))) 94 94 print >>printFile,' Number of function calls:',result[2]['nfev'], \ 95 ' N umber of observations: ',Histograms['Nobs'],' User rejected: ',Histograms['Nrej'], \96 ' Number of parameters: ',len(varyList)95 ' No. of observations: ',Histograms['Nobs'],' No. of parameters: ',len(varyList), \ 96 ' User rejected: ',Histograms['Nrej'],' Sp. gp. extinct: ',Histograms['Next'] 97 97 print >>printFile,' Refinement time = %8.3fs, %8.3fs/cycle, for %d cycles'%(runtime,runtime/ncyc,ncyc) 98 print >>printFile,' wR = %7.2f%%, chi**2 = %12.6g, reduced chi**2 = %6.2f'%(Rvals['Rwp'],Rvals['chisq'],Rvals['GOF']**2)98 print >>printFile,' wR = %7.2f%%, chi**2 = %12.6g, GOF = %6.2f'%(Rvals['Rwp'],Rvals['chisq'],Rvals['GOF']) 99 99 IfOK = True 100 100 try: -
trunk/GSASIIstrMath.py
r1798 r1800 2641 2641 Nobs = 0 2642 2642 Nrej = 0 2643 Next = 0 2643 2644 ApplyRBModels(parmDict,Phases,rigidbodyDict) 2644 2645 histoList = Histograms.keys() … … 2720 2721 nobs = 0 2721 2722 nrej = 0 2723 next = 0 2722 2724 if calcControls['F**2']: 2723 2725 for i,ref in enumerate(refDict['RefList']): … … 2738 2740 sumwYo += (w*ref[5+im])**2 #w*Fo^2 2739 2741 else: 2740 ref[3+im] = -abs(ref[3+im]) #mark as rejected 2741 nrej += 1 2742 if ref[3+im]: 2743 ref[3+im] = -abs(ref[3+im]) #mark as rejected 2744 nrej += 1 2745 else: #sp.gp.extinct 2746 next += 1 2742 2747 else: 2743 2748 for i,ref in enumerate(refDict['RefList']): … … 2759 2764 sumwYo += (w*Fo)**2 2760 2765 else: 2761 ref[3+im] = -abs(ref[3+im]) #mark as rejected 2762 nrej += 1 2766 if ref[3+im]: 2767 ref[3+im] = -abs(ref[3+im]) #mark as rejected 2768 nrej += 1 2769 else: #sp.gp.extinct 2770 next += 1 2763 2771 Histogram['Residuals']['Nobs'] = nobs 2764 2772 Histogram['Residuals']['sumwYo'] = sumwYo … … 2769 2777 Histogram['Residuals'][phfx+'Nref'] = nobs 2770 2778 Histogram['Residuals'][phfx+'Nrej'] = nrej 2779 Histogram['Residuals'][phfx+'Next'] = next 2771 2780 Nobs += nobs 2772 2781 Nrej += nrej 2782 Next += next 2773 2783 if dlg: 2774 2784 dlg.Update(Histogram['Residuals']['wR'],newmsg='For histogram %d Rw=%8.3f%s'%(hId,Histogram['Residuals']['wR'],'%'))[0] … … 2778 2788 Histograms['Nobs'] = Nobs 2779 2789 Histograms['Nrej'] = Nrej 2790 Histograms['Next'] = Next 2780 2791 Rw = min(100.,np.sqrt(np.sum(M**2)/SumwYo)*100.) 2781 2792 if dlg:
Note: See TracChangeset
for help on using the changeset viewer.