Changeset 2136
- Timestamp:
- Jan 26, 2016 1:16:37 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIgrid.py
r2135 r2136 353 353 self.Cent = Obj.GetValue() 354 354 self.Laue = '' 355 self.Draw()355 wx.CallAfter(self.Draw) 356 356 357 357 def OnLaue(event): 358 358 Obj = event.GetEventObject() 359 359 self.Laue = Obj.GetValue() 360 self.Draw()360 wx.CallAfter(self.Draw) 361 361 362 362 def OnClass(event): … … 364 364 self.Class = Obj.GetValue() 365 365 self.Laue = '' 366 self.Draw()366 wx.CallAfter(self.Draw) 367 367 368 368 self.panel.Destroy() … … 390 390 mainSizer.Add(MatSizer) 391 391 laueClass = ['triclinic','monoclinic','orthorhombic','trigonal(H)','tetragonal','hexagonal','cubic'] 392 centroLaue = {'triclinic':['-1',],'monoclinic':['2/m',' 2/m(c)','2/m(a)',],393 'orthorhombic':['m mm',],'trigonal(H)':['-3','-3m1','-31m','-3m',], \394 'tetragonal':['4/m','4/m mm',],'hexagonal':['6/m','6/mmm',],'cubic':['m3','m3m']}395 noncentroLaue = {'triclinic':['1',],'monoclinic':['2','2 (a)','2(c)','m','m(a)','m(c)',],396 'orthorhombic':['2 22','mm2','m2m','2mm',],397 'trigonal(H)':['3','3 12','321','32','3m1','31m','3m',],398 'tetragonal':['4','-4','4 22','4mm','-42m','-4m2',], \399 'hexagonal':['6','-6','6 22','6mm','-6m2','-62m',],'cubic':['23','432','-43m']}392 centroLaue = {'triclinic':['-1',],'monoclinic':['2/m','1 1 2/m','2/m 1 1',], 393 'orthorhombic':['m m m',],'trigonal(H)':['-3','-3 m 1','-3 1 m',], \ 394 'tetragonal':['4/m','4/m m m',],'hexagonal':['6/m','6/m m m',],'cubic':['m 3','m 3 m']} 395 noncentroLaue = {'triclinic':['1',],'monoclinic':['2','2 1 1','1 1 2','m','m 1 1','1 1 m',], 396 'orthorhombic':['2 2 2','m m 2','m 2 m','2 m m',], 397 'trigonal(H)':['3','3 1 2','3 2 1','3 m 1','3 1 m',], 398 'tetragonal':['4','-4','4 2 2','4 m m','-4 2 m','-4 m 2',], \ 399 'hexagonal':['6','-6','6 2 2','6 m m','-6 m 2','-6 2 m',],'cubic':['2 3','4 3 2','-4 3 m']} 400 400 centChoice = ['noncentrosymmetric','centrosymmetric'] 401 401 mainSizer.Add(wx.StaticText(self.panel,label=' Select Laue class for new lattice:'),0,WACV) … … 1818 1818 usrRej = {'minF/sig':[' Min obs/sig (0-5): ',[0,5], ],'MinExt':[' Min extinct. (0-.9): ',[0,.9],], 1819 1819 'MaxDF/F':[' Max delt-F/sig (3-1000): ',[3.,1000.],],'MaxD':[' Max d-spacing (3-500): ',[3,500],], 1820 'MinD':[' Min d-spacing (0.1- 1.0): ',[0.1,1.0],]}1820 'MinD':[' Min d-spacing (0.1-2.0): ',[0.1,2.0],]} 1821 1821 1822 1822 fsqRef = wx.CheckBox(G2frame.dataDisplay,-1,label='Refine HKLF as F^2? ') … … 3024 3024 Super = data[1]['Super'] 3025 3025 refList = G2lat.transposeHKLF(Trans,Super,refList) 3026 SG = 'P '+Laue 3027 SGData = G2spc.SpcGroup(SG)[1] 3028 # refList = G2lat.LaueUnique2(SGData,refList) 3026 3029 refList = G2lat.LaueUnique(Laue,refList) 3027 3030 dlg = wx.ProgressDialog('Build HKL dictonary','',len(refList)+1, … … 3063 3066 mergeRef = G2mth.sortArray(G2mth.sortArray(G2mth.sortArray(mergeRef,2),1),0) 3064 3067 mergeRef = np.array(mergeRef) 3065 print 'merge R = %6.2f%s for %d reflections'%(100.*sumDf/sumFo,'%',mergeRef.shape[0]) 3068 if sumFo: 3069 print 'merge R = %6.2f%s for %d reflections'%(100.*sumDf/sumFo,'%',mergeRef.shape[0]) 3070 else: 3071 print 'nothing to merge for %s reflections'%(mergeRef.shape[0]) 3066 3072 HKLFlist = [] 3067 3073 newName = Name+' '+Laue … … 3221 3227 SuperVec = [] 3222 3228 refList = data[1]['RefList'] 3229 # GSASIIpath.IPyBreak() 3223 3230 FoMax = np.max(refList.T[5+data[1].get('Super',0)]) 3224 3231 page = G2frame.G2plotNB.nb.GetSelection() -
trunk/GSASIIindex.py
r2124 r2136 858 858 else: 859 859 if dlg: 860 GoOn,Skip = dlg.Update(100*Nc/ncMax) 860 # GoOn,Skip = dlg.Update(100*Nc/ncMax) #wx error doesn't work in 32 bit versions! 861 GoOn = dlg.Update(100*Nc/ncMax) 861 862 if Skip or not GoOn: 862 863 GoOn = False -
trunk/GSASIIlattice.py
r2135 r2136 905 905 N = min(nMax,len(HKL)) 906 906 return ['%d %d %d'%(h[0],h[1],h[2]) for h in HKL[:N]] 907 908 907 909 908 def GenSSHLaue(dmin,SGData,SSGData,Vec,maxH,A): … … 931 930 return HKLs 932 931 932 def LaueUnique2(SGData,refList): 933 ''' Impose Laue symmetry on hkl 934 :param SGData: space group data from 'P '+Laue 935 :param HKLF: np.array([[h,k,l,...]]) reflection set to be converted 936 937 :return: HKLF new reflection array with imposed Laue symmetry 938 ''' 939 for ref in refList: 940 H = ref[:3] 941 Uniq = G2spc.GenHKLf(H,SGData)[2] 942 Uniq = G2mth.sortArray(G2mth.sortArray(G2mth.sortArray(Uniq,2),1),0) 943 ref[:3] = Uniq[-1] 944 return refList 945 933 946 def LaueUnique(Laue,HKLF): 934 947 ''' Impose Laue symmetry on hkl … … 943 956 :return: HKLF new reflection array with imposed Laue symmetry 944 957 ''' 958 945 959 HKLFT = HKLF.T 946 mat41 = np.array([[0,1,0],[-1,0,0],[0,0,1]]) 947 mat43 = np.array([[0,-1,0],[1,0,0],[0,0,1]]) 948 mat31 = np.array([[0,-1,0],[1,-1,0],[0,0,1]]) 949 mat32 = np.array([[-1,1,0],[-1,0,0],[0,0,1]]) 950 mat6 = np.array([[0,1,0],[-1,1,0],[0,0,1]]) 960 mat41 = np.array([[0,1,0],[-1,0,0],[0,0,1]]) #hkl -> k,-h,l 961 mat43 = np.array([[0,-1,0],[1,0,0],[0,0,1]]) #hkl -> -k,h,l 962 mat4bar = np.array([[0,1,0],[-1,0,0],[0,0,-1]]) #hkl -> k,-h,-l 963 mat31 = np.array([[0,-1,0],[1,-1,0],[0,0,1]]) #hkl -> h-k,-k,l 964 mat32 = np.array([[-1,1,0],[-1,0,0],[0,0,1]]) #hkl -> k-h,-h,l 965 mat6 = np.array([[0,1,0],[-1,1,0],[0,0,1]]) #hkl -> k,k-h,l 966 matdm = np.array([[0,1,0],[1,0,0],[0,0,1]]) #hkl -> k,h,l 967 matd2 = np.array([[0,1,0],[1,0,0],[0,0,-1]]) #hkl -> k,h,-l 951 968 #triclinic 952 969 if Laue == '1': #ok … … 955 972 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 956 973 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 957 #monoclinic - all 3 settings OK958 #noncentrosymmetric 959 elif Laue == '2 (a)': #ok974 #monoclinic 975 #noncentrosymmetric - all OK 976 elif Laue == '2': 960 977 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 961 978 HKLFT[:3] = np.where(HKLFT[2]==0,np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 962 elif Laue == ' 2': #ok979 elif Laue == '1 1 2': 963 980 HKLFT[:3] = np.where(HKLFT[0]<=0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 964 981 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 965 elif Laue == '2 (c)': #ok982 elif Laue == '2 1 1': 966 983 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 967 984 HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 968 elif Laue == 'm (a)': #ok985 elif Laue == 'm 1 1': 969 986 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 970 elif Laue == 'm': #ok987 elif Laue == 'm': 971 988 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 972 elif Laue == ' m(c)': #ok989 elif Laue == '1 1 m': 973 990 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 974 #centrosymmetric 975 elif Laue == '2/m (a)':991 #centrosymmetric - all OK 992 elif Laue == '2/m 1 1': 976 993 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 977 994 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 978 elif Laue == '2/m': #ok 995 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 996 elif Laue == '2/m': 979 997 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 980 998 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 981 elif Laue == '2/m(c)': 999 HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 1000 elif Laue == '1 1 2/m': 982 1001 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 983 1002 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 984 #orthorhombic - 3 settings all OK 985 #noncentrosymmetric 986 elif Laue == '222': #ok 1003 HKLFT[:3] = np.where(HKLFT[2]==0,np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 1004 #orthorhombic 1005 #noncentrosymmetric - all OK 1006 elif Laue == '2 2 2': 987 1007 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 988 1008 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 989 1009 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 990 1010 HKLFT[:3] = np.where(HKLFT[1]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 991 elif Laue == '2 mm': #ok1011 elif Laue == '2 m m': 992 1012 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 993 1013 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 994 elif Laue == 'm 2m': #ok1014 elif Laue == 'm 2 m': 995 1015 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 996 1016 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 997 elif Laue == 'm m2': #ok1017 elif Laue == 'm m 2': 998 1018 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 999 1019 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 1000 #centrosymmetric 1001 elif Laue == 'm mm': #ok1020 #centrosymmetric - all ok 1021 elif Laue == 'm m m': 1002 1022 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 1003 1023 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) … … 1007 1027 elif Laue == '3': 1008 1028 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1009 elif Laue == '312': 1029 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat32[nxs,:,:])).T,HKLFT[:3]) 1030 elif Laue == '3 1 2': 1010 1031 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 1011 1032 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1012 elif Laue == '3 21':1033 elif Laue == '3 2 1': 1013 1034 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 1014 1035 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1015 elif Laue == '32': 1016 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3]) 1017 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1018 elif Laue == '31m': 1036 elif Laue == '3 1 m': 1019 1037 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 1020 1038 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1021 elif Laue == '3 m1':1039 elif Laue == '3 m 1': 1022 1040 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,1,-1])[:,nxs],HKLFT[:3]) 1023 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3])1024 elif Laue == '3m':1025 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,1,1])[:,nxs],HKLFT[:3])1026 1041 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1027 1042 #centrosymmetric … … 1029 1044 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1030 1045 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3]) 1031 elif Laue == '-3 m1':1046 elif Laue == '-3 m 1': 1032 1047 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1033 1048 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3]) 1034 elif Laue == '-31m': 1035 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1036 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3]) 1037 elif Laue == '-3m': 1049 elif Laue == '-3 1 m': 1038 1050 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1039 1051 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat3[nxs,:,:])).T,HKLFT[:3]) 1040 1052 #tetragonal 1041 #noncentrosymmetric 1042 elif Laue == '4': #OK1053 #noncentrosymmetric - all ok 1054 elif Laue == '4': 1043 1055 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1044 1056 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3]) 1045 1057 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]>0,np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1046 1058 elif Laue == '-4': 1047 # HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1048 # HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 1049 HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1050 elif Laue == '422': 1059 HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1051 1060 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1052 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3]) 1061 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]) 1062 HKLFT[:3] = np.where(HKLFT[0]==0,np.squeeze(np.inner(HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]) 1063 elif Laue == '4 2 2': 1064 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1065 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1053 1066 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3]) 1054 elif Laue == '4mm': 1067 HKLFT[:3] = np.where(HKLFT[0]<HKLFT[1],np.squeeze(np.inner(HKLF[:,:3],matd2[nxs,:,:])).T,HKLFT[:3]) 1068 elif Laue == '4 m m': 1055 1069 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1056 HKLFT[:3] = np.where(HKLFT[ 1]<0,HKLFT[:3]*np.array([1,-1,-1])[:,nxs],HKLFT[:3])1070 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1057 1071 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3]) 1058 elif Laue == '-42m': 1059 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1072 HKLFT[:3] = np.where(HKLFT[0]<HKLFT[1],np.squeeze(np.inner(HKLF[:,:3],matdm[nxs,:,:])).T,HKLFT[:3]) 1073 elif Laue == '-4 2 m': 1074 HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1075 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1076 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]) 1077 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],matdm[nxs,:,:])).T,HKLFT[:3]) 1078 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 1079 elif Laue == '-4 m 2': 1080 HKLFT[:3] = np.where(HKLFT[0]<0,np.where(HKLFT[1]>0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1081 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1082 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(-HKLF[:,:3],mat4bar[nxs,:,:])).T,HKLFT[:3]) 1083 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],matd2[nxs,:,:])).T,HKLFT[:3]) 1084 HKLFT[:3] = np.where(HKLFT[0]==HKLFT[1],np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]),HKLFT[:3]) 1085 #centrosymmetric - all ok 1086 elif Laue == '4/m': 1087 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1088 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1089 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3]) 1090 HKLFT[:3] = np.where(HKLFT[0]==0,np.where(HKLFT[1]>0,np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]),HKLFT[:3]) 1091 elif Laue == '4/m m m': 1092 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1093 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1094 HKLFT[:3] = np.where(HKLFT[1]<0,np.squeeze(np.inner(HKLF[:,:3],mat43[nxs,:,:])).T,HKLFT[:3]) 1060 1095 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1061 elif Laue == '-4m2': 1062 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1063 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1064 #centrosymmetric 1065 elif Laue == '4/m': 1066 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,1])[:,nxs],HKLFT[:3]) 1067 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,1,-1])[:,nxs],HKLFT[:3]) 1068 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1069 elif Laue == '4/mmm': 1070 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1071 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1072 HKLFT[:3] = np.where(HKLFT[2]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1073 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1096 HKLFT[:3] = np.where(HKLFT[1]<0,HKLFT[:3]*np.array([1,-1,1])[:,nxs],HKLFT[:3]) 1074 1097 #hexagonal 1075 1098 #noncentrosymmetric … … 1080 1103 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1081 1104 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1082 elif Laue == '6 22':1105 elif Laue == '6 2 2': 1083 1106 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1084 1107 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1085 elif Laue == '-6 m2':1108 elif Laue == '-6 m 2': 1086 1109 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1087 1110 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1088 elif Laue == '-6 2m':1111 elif Laue == '-6 2 m': 1089 1112 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1090 1113 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) … … 1093 1116 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1094 1117 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1095 elif Laue == '6/m mm':1118 elif Laue == '6/m m m': 1096 1119 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1097 1120 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat31[nxs,:,:])).T,HKLFT[:3]) 1098 1121 #cubic 1099 1122 #noncentrosymmetric 1100 elif Laue == '2 3':1123 elif Laue == '2 3': 1101 1124 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1102 1125 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1103 elif Laue == '4 32':1126 elif Laue == '4 3 2': 1104 1127 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1105 1128 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1106 elif Laue == '-4 3m':1129 elif Laue == '-4 3 m': 1107 1130 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1108 1131 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1109 1132 #centrosymmetric 1110 elif Laue == 'm 3':1133 elif Laue == 'm 3': 1111 1134 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1112 1135 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) 1113 elif Laue == 'm 3m':1136 elif Laue == 'm 3 m': 1114 1137 HKLFT[:3] = np.where(HKLFT[0]<0,HKLFT[:3]*np.array([-1,-1,-1])[:,nxs],HKLFT[:3]) 1115 1138 HKLFT[:3] = np.where(HKLFT[1]<HKLFT[0],np.squeeze(np.inner(HKLF[:,:3],mat41[nxs,:,:])).T,HKLFT[:3]) -
trunk/GSASIIplot.py
r2135 r2136 631 631 Q = G2mth.AV2Q(-A,viewChoice[key][2]) 632 632 drawingData['Quaternion'] = Q 633 elif key in 'O': 634 drawingData['viewPoint'][0] = [0,0,0] 633 635 elif key in 'Z': 634 636 Data['Zone'] = not Data['Zone'] … … 1017 1019 Page.Choice = None 1018 1020 choice = [' save as/key:','jpeg','tiff','bmp','h: view down h','k: view down k','l: view down l', 1019 'z: zero zone toggle','c: reset to default',' b: toggle box ','+: increase scale','-: decrease scale',1021 'z: zero zone toggle','c: reset to default','o: set view point = 0,0,0','b: toggle box ','+: increase scale','-: decrease scale', 1020 1022 'f: Fobs','s: Fobs**2','u: unit','d: Fo-Fc','w: DF/sig','i: toggle intensity scaling'] 1021 1023 cb = wx.ComboBox(G2frame.G2plotNB.status,style=wx.CB_DROPDOWN|wx.CB_READONLY,choices=choice) -
trunk/GSASIIpwdGUI.py
r2130 r2136 2785 2785 G2frame.dataFrame.RefineCell.Enable(False) 2786 2786 dlg = wx.ProgressDialog("Generated reflections",'0 '+" cell search for "+bravaisNames[ibrav],101, 2787 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_SKIP|wx.PD_CAN_ABORT) 2787 # style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_SKIP|wx.PD_CAN_ABORT) #desn't work in 32 bit versions 2788 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_REMAINING_TIME|wx.PD_CAN_ABORT) 2788 2789 OK,dmin,newcells = G2indx.DoIndexPeaks(peaks[0],controls,bravais,dlg,G2frame.ifX20) 2789 2790 dlg.Destroy() … … 3111 3112 a table of reflections in the data window. 3112 3113 ''' 3114 Controls = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.root, 'Controls')) 3115 dMin = Controls['UsrReject'].get('MinD',0.05) 3113 3116 def OnPlotHKL(event): 3114 3117 '''Plots a layer of reflections … … 3152 3155 else: #powder data is a dict of dicts; each same structure as SC 2nd dict 3153 3156 refList = np.array(data[phaseName]['RefList']) 3157 refList.T[3+Super] = np.where(refList.T[4+Super]<dMin,-refList.T[3+Super],refList.T[3+Super]) 3154 3158 FoMax = np.max(refList.T[8+Super]) 3155 3159 Hmin = np.array([int(np.min(refList.T[0])),int(np.min(refList.T[1])),int(np.min(refList.T[2]))]) … … 3218 3222 if Super: 3219 3223 colLabels.insert(3,'M') 3224 refs.T[3+Super] = np.where(refs.T[4+Super]<dMin,-refs.T[3+Super],refs.T[3+Super]) 3220 3225 return G2G.Table(refs,rowLabels=rowLabels,colLabels=colLabels,types=Types) 3221 3226 … … 3339 3344 # raise Exception("how did we get a invalid phase name?") 3340 3345 ShowReflTable(phaseName) 3341 G2frame.refTable[phaseName].Fit() 3342 size = G2frame.refTable[phaseName].GetSize() 3343 G2frame.dataFrame.setSizePosLeft([size[0]+32,350]) 3346 # G2frame.refTable[phaseName].Fit() #slow!! 3347 # size = G2frame.refTable[phaseName].GetSize() 3348 # G2frame.dataFrame.setSizePosLeft([size[0]+32,350]) 3349 G2frame.dataFrame.setSizePosLeft([550,350]) 3344 3350 G2frame.dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 3345 3351 -
trunk/GSASIIspc.py
r2075 r2136 1168 1168 hklf = list(HKL)+[0,] #could be numpy array! 1169 1169 Ops = SGData['SGOps'] 1170 OpM = np.array([op[0] for op in Ops] )1170 OpM = np.array([op[0] for op in Ops],order='F') 1171 1171 OpT = np.array([op[1] for op in Ops]) 1172 1172 Inv = SGData['SGInv'] 1173 Cen = np.array([cen for cen in SGData['SGCen']] )1173 Cen = np.array([cen for cen in SGData['SGCen']],order='F') 1174 1174 1175 1175 Nuniq,Uniq,iabsnt,mulp = pyspg.genhklpy(hklf,len(Ops),OpM,OpT,SGData['SGInv'],len(Cen),Cen) … … 1177 1177 Uniq=np.array(zip(h[:Nuniq],k[:Nuniq],l[:Nuniq])) 1178 1178 phi = f[:Nuniq] 1179 1180 1179 return iabsnt,mulp,Uniq,phi 1181 1180 -
trunk/exports/G2export_CIF.py
r2109 r2136 1208 1208 refcount = len(histblk['Data']['RefList']) 1209 1209 for ref in histblk['Data']['RefList']: 1210 if ref[3] < 0: #skip user rejected reflections (mul <0)1210 if ref[3] <= 0: #skip user rejected reflections (mul <= 0) 1211 1211 continue 1212 1212 s = " " -
trunk/exports/G2export_examples.py
r2132 r2136 248 248 class ExportSingleText(G2IO.ExportBaseclass): 249 249 '''Used to create a text file with single crystal reflection data 250 skips user rejected & space group extinct reflections 250 251 251 252 :param wx.Frame G2frame: reference to main GSAS-II frame … … 278 279 fmt = "{:>10s} {:8.3f} {:12.2f} {:12.4f} {:12.2f} {:7.2f} {:6.0f}" 279 280 self.Write(80*'=') 280 self.Write(hfmt.format("h,k,l","d-space","F_obs","sig(Fobs)","F_calc","phase"," mult"))281 self.Write(hfmt.format("h,k,l","d-space","F_obs","sig(Fobs)","F_calc","phase","twin")) 281 282 self.Write(80*'=') 282 283 for ( 283 h,k,l, mult,dsp,Fobs,sigFobs,Fcalc,FobsT,FcalcT,phase,Icorr284 h,k,l,twin,dsp,Fobs,sigFobs,Fcalc,FobsT,FcalcT,phase,Icorr 284 285 ) in histblk['Data']['RefList']: 285 self.Write(fmt.format(hklfmt.format(h,k,l),dsp,Fobs,sigFobs,Fcalc,phase,mult)) 286 if twin > 0: 287 self.Write(fmt.format(hklfmt.format(h,k,l),dsp,Fobs,sigFobs,Fcalc,phase,twin)) 286 288 self.CloseFile() 287 289 print(str(hist)+' written to file '+str(self.fullpath)) -
trunk/imports/G2sfact_CIF.py
r2040 r2136 264 264 except: 265 265 HKL.append('.') 266 #h,k,l, m,dsp,Fo2,sig,Fc2,Fot2,Fct2,phase,Ext266 #h,k,l,tw,dsp,Fo2,sig,Fc2,Fot2,Fct2,phase,Ext 267 267 if im: 268 268 ref = HKL+[1,0,0,0,1, 0,0,0,0,0, 0,0]
Note: See TracChangeset
for help on using the changeset viewer.