Changeset 727
- Timestamp:
- Aug 22, 2012 11:15:50 AM (10 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIImath.py
r726 r727 886 886 peaks = [] 887 887 mags = [] 888 dzeros = [] 888 889 try: 889 890 mapData = generalData['Map'] … … 916 917 break 917 918 peak = (np.array(x1[1:4])-rMI)/incre 919 dzero = np.sqrt(np.sum(np.inner(Amat,peak)**2)) 918 920 peak = fixSpecialPos(peak,SGData,Amat) 919 921 if not len(peaks): 920 922 peaks.append(peak) 921 923 mags.append(x1[0]) 924 dzeros.append(dzero) 922 925 else: 923 926 if keepDup: … … 925 928 peaks.append(peak) 926 929 mags.append(x1[0]) 930 dzeros.append(dzero) 927 931 elif noEquivalent(peak,peaks,SGData) and x1[0] > 0.: 928 932 peaks.append(peak) 929 933 mags.append(x1[0]) 934 dzeros.append(dzero) 930 935 GoOn = Pgbar.Update(len(peaks),newmsg='%s%d'%('No. Peaks found =',len(peaks)))[0] 931 936 if not GoOn or len(peaks) > 500: … … 933 938 rho[rMM[0]:rMP[0],rMM[1]:rMP[1],rMM[2]:rMP[2]] = peakFunc(x1,rX,rY,rZ,rhoPeak,res,SGData['SGLaue']) 934 939 rho = np.roll(np.roll(np.roll(rho,-rMI[2],axis=2),-rMI[1],axis=1),-rMI[0],axis=0) 935 return np.array(peaks),np.array([mags,]).T 936 940 return np.array(peaks),np.array([mags,]).T,np.array([dzeros,]).T 941 942 def sortArray(data,pos,reverse=False): 943 #data is a list of items 944 #sort by pos in list; reverse if True 945 T = [] 946 for i,M in enumerate(data): 947 T.append((M[pos],i)) 948 D = dict(zip(T,data)) 949 T.sort() 950 if reverse: 951 T.reverse() 952 X = [] 953 for key in T: 954 X.append(D[key]) 955 return X 956 937 957 def PeaksUnique(data,Ind): 938 958 … … 951 971 XYZ = {} 952 972 for ind in Ind: 953 XYZ[ind] = np.array(mapPeaks[ind][1: ])973 XYZ[ind] = np.array(mapPeaks[ind][1:4]) 954 974 Indx[ind] = True 955 975 for ind in Ind: -
trunk/GSASIIphsGUI.py
r724 r727 917 917 Size[1] += 35 #compensate for status bar 918 918 dataDisplay.SetSize(Size) 919 G2frame.dataFrame.SetStatusText('') 919 920 G2frame.dataFrame.setSizePosLeft(Size) 920 921 … … 1201 1202 1202 1203 SGData = data['General']['SGData'] 1204 G2frame.dataFrame.SetStatusText('') 1203 1205 if SGData['SGPolax']: 1204 1206 G2frame.dataFrame.SetStatusText('Warning: The location of the origin is arbitrary in '+SGData['SGPolax']) … … 1662 1664 1663 1665 def UpdateDrawAtoms(): 1666 G2frame.dataFrame.SetStatusText('') 1664 1667 generalData = data['General'] 1665 1668 SetupDrawingData() … … 2561 2564 return radSizer 2562 2565 2566 G2frame.dataFrame.SetStatusText('') 2563 2567 drawOptions.DestroyChildren() 2564 2568 dataDisplay = wx.Panel(drawOptions) … … 2584 2588 2585 2589 def UpdateTexture(): 2590 G2frame.dataFrame.SetStatusText('') 2586 2591 generalData = data['General'] 2587 2592 SGData = generalData['SGData'] … … 2814 2819 2815 2820 def UpdateDData(): 2821 G2frame.dataFrame.SetStatusText('') 2816 2822 UseList = data['Histograms'] 2817 2823 if UseList: … … 3734 3740 3735 3741 def FillPawleyReflectionsGrid(): 3742 G2frame.dataFrame.SetStatusText('') 3736 3743 3737 3744 def KeyEditPawleyGrid(event): … … 3889 3896 else: 3890 3897 MapPeaks.ClearSelection() 3891 MapPeaks.SelectRow(r,True) 3898 MapPeaks.SelectRow(r,True) 3899 elif r < 0: #a column pick 3900 mapPeaks = data['Map Peaks'] 3901 c = event.GetCol() 3902 if colLabels[c] == 'mag': 3903 mapPeaks = G2mth.sortArray(mapPeaks,0,reverse=True) 3904 elif colLabels[c] == 'dzero': 3905 mapPeaks = G2mth.sortArray(mapPeaks,4) 3906 else: 3907 return 3908 data['Map Peaks'] = mapPeaks 3909 wx.CallAfter(FillMapPeaksGrid) 3892 3910 G2plt.PlotStructure(G2frame,data) 3893 3911 3894 3912 G2frame.dataFrame.setSizePosLeft([450,300]) 3913 G2frame.dataFrame.SetStatusText('') 3895 3914 if 'Map Peaks' in data: 3915 G2frame.dataFrame.SetStatusText('Select mag or dzero columns to sort') 3896 3916 mapPeaks = data['Map Peaks'] 3897 3917 rowLabels = [] 3898 3918 for i in range(len(mapPeaks)): rowLabels.append(str(i)) 3899 colLabels = ['mag','x','y','z' ]3900 Types = 4*[wg.GRID_VALUE_FLOAT+':10,4',]3919 colLabels = ['mag','x','y','z','dzero'] 3920 Types = 5*[wg.GRID_VALUE_FLOAT+':10,4',] 3901 3921 MapPeaksTable = G2gd.Table(mapPeaks,rowLabels=rowLabels,colLabels=colLabels,types=Types) 3902 3922 MapPeaks.SetTable(MapPeaksTable, True) … … 4021 4041 def OnSearchMaps(event): 4022 4042 4043 # def FindBondsPeaks(peaks): #uses numpy & masks - very fast even for proteins! 4044 # import numpy.ma as ma 4045 # Amat,Bmat = G2lat.cell2AB(generalData['Cell'][1:7]) 4046 # for peak in peaks: 4047 # peak[-1] = [] 4048 # Indx = range(len(peaks)) 4049 # Peaks = [] 4050 # Radii = [] 4051 # for peak in peaks: 4052 # Peaks.append(np.array(peak[1:4])) 4053 # Radii.append(1.0) 4054 # Atoms = np.array(Atoms) 4055 # Radii = np.array(Radii) 4056 # IAR = zip(Indx,Atoms,Radii) 4057 # for atomA in IAR: 4058 # Dx = Atoms-atomA[1] 4059 # dist = ma.masked_less(np.sqrt(np.sum(np.inner(Amat,Dx)**2,axis=0)),0.5) #gets rid of G2frame & disorder "bonds" < 0.5A 4060 # sumR = atomA[3]+Radii 4061 # IndB = ma.nonzero(ma.masked_greater(dist-data['Drawing']['radiusFactor']*sumR,0.)) #get indices of bonded atoms 4062 # i = atomA[0] 4063 # for j in IndB[0]: 4064 # if Styles[i] == 'polyhedra': 4065 # atomData[i][-2].append(np.inner(Amat,Dx[j])) 4066 # elif Styles[j] != 'polyhedra' and j > i: 4067 # atomData[i][-2].append(Dx[j]*Radii[i]/sumR[j]) 4068 # atomData[j][-2].append(-Dx[j]*Radii[j]/sumR[j]) 4069 4023 4070 peaks = [] 4024 4071 mags = [] … … 4036 4083 pgbar.SetSize(Size) 4037 4084 try: 4038 peaks,mags = G2mth.SearchMap(data,keepDup=True,Pgbar=pgbar)4085 peaks,mags,dzeros = G2mth.SearchMap(data,keepDup=True,Pgbar=pgbar) 4039 4086 finally: 4040 4087 pgbar.Destroy() 4041 4088 sortIdx = np.argsort(mags.flatten()) 4042 4089 if len(peaks): 4043 data['Map Peaks'] = np.concatenate((mags,peaks ),axis=1)4090 data['Map Peaks'] = np.concatenate((mags,peaks,dzeros),axis=1) 4044 4091 print ' Map search finished, time = %.2fs'%(time.time()-time0) 4045 4092 Page = G2frame.dataDisplay.FindPage('Map peaks') -
trunk/GSASIIplot.py
r725 r727 2374 2374 if G2frame.dataDisplay.GetPageText(getSelection()) == 'Map peaks': 2375 2375 for i,peak in enumerate(mapPeaks): 2376 x,y,z = peak[1:]2376 x,y,z,d = peak[1:] 2377 2377 X,Y,Z = gluProject(x,y,z,Model,Proj,View) 2378 2378 XY = [int(X),int(View[3]-Y)] … … 3005 3005 RenderMap(rho,rhoXYZ,indx,Rok) 3006 3006 if len(mapPeaks): 3007 for ind,[mag,x,y,z ] in enumerate(mapPeaks):3007 for ind,[mag,x,y,z,d] in enumerate(mapPeaks): 3008 3008 if ind in Ind and pageName == 'Map peaks': 3009 3009 RenderMapPeak(x,y,z,Gr)
Note: See TracChangeset
for help on using the changeset viewer.