Changeset 1799


Ignore:
Timestamp:
Apr 20, 2015 4:05:49 PM (7 years ago)
Author:
vondreele
Message:

trap missing data error
numpy array sph.harm. texture fit function & derivative routines - speedier
change pole figure titles

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIddataGUI.py

    r1795 r1799  
    823823        mainSizer.Add(topSizer)       
    824824       
    825         histData = UseList[hist]
     825        try:
     826            histData = UseList[hist]
     827        except KeyError:
     828            G2frame.ErrorDialog('Missing data error',
     829                    hist+' not in GSAS-II data tree')
     830            return
     831           
    826832        if 'Use' not in UseList[hist]:      #patch
    827833            UseList[hist]['Use'] = True
  • trunk/GSASIImath.py

    r1792 r1799  
    16541654        Sangls = [parmDict['Sample '+'omega'],parmDict['Sample '+'chi'],parmDict['Sample '+'phi']]
    16551655        for hist in Gangls.keys():
    1656             mat = []
    1657             for ref in refData[hist]:
    1658 #                wt = np.sqrt(ref[4])
    1659                 wt = 1.
    1660                 ref[6] = 1.
    1661                 H = ref[:3]
    1662                 phi,beta = G2lat.CrsAng(H,cell,SGData)
    1663                 psi,gam,x,x = G2lat.SamAng(ref[3]/2.,Gangls[hist],Sangls,False) #assume not Bragg-Brentano!
    1664                 for item in parmDict:
    1665                     if 'C' in item:
    1666                         L,M,N = eval(item.strip('C'))
    1667                         Kcl = G2lat.GetKcl(L,N,SGData['SGLaue'],phi,beta)
    1668                         Ksl,x,x = G2lat.GetKsl(L,M,shModel,psi,gam)
    1669                         Lnorm = G2lat.Lnorm(L)
    1670                         ref[6] += parmDict[item]*Lnorm*Kcl*Ksl
    1671                 mat.append(wt*(ref[5]-ref[6]))
    1672             Mat = np.concatenate((Mat,np.array(mat)))
    1673         return Mat
    1674        
    1675     def errSpHarm2(values,SGData,cell,Gangls,shModel,refData,parmDict,varyList):
    1676         parmDict.update(zip(varyList,values))
    1677         Mat = np.empty(0)
    1678         Sangls = [parmDict['Sample '+'omega'],parmDict['Sample '+'chi'],parmDict['Sample '+'phi']]
    1679         for hist in Gangls.keys():
    16801656            Refs = refData[hist]
    1681 #            wt = np.sqrt(ref[4])
    1682             wt = 1.
    16831657            Refs[:,6] = 1.
    16841658            H = Refs[:,:3]
     
    16921666                    Lnorm = G2lat.Lnorm(L)
    16931667                    Refs[:,6] += parmDict[item]*Lnorm*Kcl*Ksl
    1694             mat = wt*(Refs[:,5]-Refs[:,6])
     1668            mat = Refs[:,5]-Refs[:,6]
    16951669            Mat = np.concatenate((Mat,mat))
     1670        print ' Chi**2: %.3f'%(np.sum(np.abs(Mat)))
    16961671        return Mat
    16971672       
     
    17001675        Sangls = [parmDict['Sample omega'],parmDict['Sample chi'],parmDict['Sample phi']]
    17011676        for hist in Gangls.keys():
    1702             mat = np.zeros((len(refData[hist]),len(varyList)))
    1703             for i,ref in enumerate(refData[hist]):
    1704 #                wt = np.sqrt(ref[4])
    1705                 wt = 1.
    1706                 H = ref[:3]
    1707                 phi,beta = G2lat.CrsAng(H,cell,SGData)
    1708                 psi,gam,dPdA,dGdA = G2lat.SamAng(ref[3]/2.,Gangls[hist],Sangls,False) #assume not Bragg-Brentano!
    1709                 for j,item in enumerate(varyList):
    1710                     if 'C' in item:
    1711                         L,M,N = eval(item.strip('C'))
    1712                         Kcl = G2lat.GetKcl(L,N,SGData['SGLaue'],phi,beta)
    1713                         Ksl,dKdp,dKdg = G2lat.GetKsl(L,M,shModel,psi,gam)
    1714                         Lnorm = G2lat.Lnorm(L)
    1715                         mat[i,j] = -wt*Lnorm*Kcl*Ksl
    1716                         for k,itema in enumerate(['Sample omega','Sample chi','Sample phi']):
    1717                             try:
    1718                                 l = varyList.index(itema)
    1719                                 mat[i,l] += parmDict[item]*Lnorm*Kcl*(dKdp*dPdA[k]+dKdg*dGdA[k])
    1720                             except ValueError:
    1721                                 pass
     1677            mat = np.zeros((len(varyList),len(refData[hist])))
     1678            Refs = refData[hist]
     1679            H = Refs[:,:3]
     1680            phi,beta = G2lat.CrsAng(H,cell,SGData)
     1681            psi,gam,dPdA,dGdA = G2lat.SamAng(Refs[:,3]/2.,Gangls[hist],Sangls,False) #assume not Bragg-Brentano!
     1682            for j,item in enumerate(varyList):
     1683                if 'C' in item:
     1684                    L,M,N = eval(item.strip('C'))
     1685                    Kcl = G2lat.GetKcl(L,N,SGData['SGLaue'],phi,beta)
     1686                    Ksl,dKdp,dKdg = G2lat.GetKsl(L,M,shModel,psi,gam)
     1687                    Lnorm = G2lat.Lnorm(L)
     1688                    mat[j] = -Lnorm*Kcl*Ksl
     1689                    for k,itema in enumerate(['Sample omega','Sample chi','Sample phi']):
     1690                        try:
     1691                            l = varyList.index(itema)
     1692                            mat[l] += parmDict[item]*Lnorm*Kcl*(dKdp*dPdA[k]+dKdg*dGdA[k])
     1693                        except ValueError:
     1694                            pass
    17221695            if len(Mat):
    1723                 Mat = np.concatenate((Mat,mat))
     1696                Mat = np.concatenate((Mat,mat.T))
    17241697            else:
    1725                 Mat = mat
     1698                Mat = mat.T
     1699        print 'deriv'
    17261700        return Mat
    17271701
     
    17431717        begin = time.time()
    17441718        values =  np.array(Dict2Values(parmDict, varyList))
    1745         result = so.leastsq(errSpHarm2,values,Dfun=dervSpHarm,full_output=True,
     1719        result = so.leastsq(errSpHarm,values,Dfun=dervSpHarm,full_output=True,
    17461720            args=(SGData,cell,Gangls,Texture['Model'],refData,parmDict,varyList))
    17471721        ncyc = int(result[2]['nfev']/2)
     
    17651739            break
    17661740   
    1767     for hist in keyList:
    1768         print ' Texture corrections for '+hist
    1769         for ref in refData[hist]:
    1770             print ' %d %d %d %.3f %.3f'%(int(ref[0]),int(ref[1]),int(ref[2]),ref[5],ref[6])
     1741#    for hist in keyList:
     1742#        print ' Texture corrections for '+hist
     1743#        for ref in refData[hist]:
     1744#            print ' %d %d %d %.3f %.3f'%(int(ref[0]),int(ref[1]),int(ref[2]),ref[5],ref[6])
    17711745    if ncyc:
    17721746        for parm in parmDict:
  • trunk/GSASIIplot.py

    r1789 r1799  
    26842684    generalData = data['General']
    26852685    SGData = generalData['SGData']
     2686    pName = generalData['Name']
    26862687    textureData = generalData['SH Texture']
    26872688    G2frame.G2plotNB.Delete('Texture')
     
    27642765        Plot.plot(X,Y,color='k',label=str(SHData['PFhkl']))
    27652766        Plot.legend(loc='best')
    2766         Plot.set_title('Axial distribution for HKL='+str(SHData['PFhkl']))
     2767        h,k,l = SHData['PFhkl']
     2768        Plot.set_title('%d %d %d Axial distribution for %s'%(h,k,l,pName))
    27672769        Plot.set_xlabel(r'$\psi$',fontsize=16)
    27682770        Plot.set_ylabel('MRD',fontsize=14)
     
    27872789            Img = Plot.imshow(Z.T,aspect='equal',cmap=G2frame.ContourColor,extent=[-1,1,-1,1])
    27882790            Page.figure.colorbar(Img)
    2789             Plot.set_title('Inverse pole figure for XYZ='+str(SHData['PFxyz']))
     2791            x,y,z = SHData['PFxyz']
     2792            Plot.set_title('%d %d %d Inverse pole figure for %s'%(int(x),int(y),int(z),pName))
    27902793            Plot.set_xlabel(G2frame.Projection.capitalize()+' projection')
    27912794                       
     
    28072810            Img = Plot.imshow(Z.T,aspect='equal',cmap=G2frame.ContourColor,extent=[-1,1,-1,1])
    28082811            Page.figure.colorbar(Img)
    2809             Plot.set_title('Pole figure for HKL='+str(SHData['PFhkl']))
     2812            h,k,l = SHData['PFhkl']
     2813            Plot.set_title('%d %d %d Pole figure for %s'%(h,k,l,pName))
    28102814            Plot.set_xlabel(G2frame.Projection.capitalize()+' projection')
    28112815    Page.canvas.draw()
Note: See TracChangeset for help on using the changeset viewer.