Changeset 53
- Timestamp:
- Apr 27, 2010 10:10:29 AM (13 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASII.py
r52 r53 313 313 v = (G2IO.sfloat(s[:10]),G2IO.sfloat(s[10:20]),G2IO.sfloat(s[20:30]),G2IO.sfloat(s[55:65]),G2IO.sfloat(s[40:50])) #get lam1, lam2, zero, pola & ratio 314 314 if not v[1]: 315 names = ['Type','Lam','Zero','Polariz.','U','V','W','X','Y','SH/L' ]315 names = ['Type','Lam','Zero','Polariz.','U','V','W','X','Y','SH/L','Azimuth'] 316 316 v = (v[0],v[2],v[4]) 317 317 codes = [0,0,0,0] 318 318 else: 319 names = ['Type','Lam1','Lam2','Zero','I(L2)/I(L1)','Polariz.','U','V','W','X','Y','SH/L' ]319 names = ['Type','Lam1','Lam2','Zero','I(L2)/I(L1)','Polariz.','U','V','W','X','Y','SH/L','Azimuth'] 320 320 codes = [0,0,0,0,0,0] 321 321 data.extend(v) … … 325 325 v = Iparm['INS 1PRCF12'].split() 326 326 if v1[0] == 3: 327 data.extend([float(v[0]),float(v[1]),float(v[2])+float(v[3] )]) #get LX, LY & S+H/L327 data.extend([float(v[0]),float(v[1]),float(v[2])+float(v[3],0.0)]) #get LX, LY, S+H/L & azimuth 328 328 else: 329 data.extend([0.0,0.0,0.002 ]) #OK defaults if fxn #3 not 1st in iprm file330 codes.extend([0,0,0,0,0,0 ])329 data.extend([0.0,0.0,0.002,0.0]) #OK defaults if fxn #3 not 1st in iprm file 330 codes.extend([0,0,0,0,0,0,0]) 331 331 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),[tuple(data),data,codes,names]) 332 332 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),[]) … … 603 603 else: 604 604 Xminmax = [x[0],x[-1]] 605 YCsum = [0.0 for i in range(lenX)] 606 YBsum = [0.0 for i in range(lenX)] 607 YDsum = [0.0 for i in range(lenX)] 605 YCsum = YBsum = YDsum = [0.0 for i in range(lenX)] 608 606 for j,yi in enumerate(y): 609 607 Xsum.append(x[j]) -
trunk/GSASIIIO.py
r49 r53 564 564 datum[1] = [datum[1][0],X] 565 565 print 'powder data converted to numpy arrays' 566 if 'PKS' not in datum[0] :566 if 'PKS' not in datum[0] and 'IMG' not in datum[0] and 'SNGL' not in datum[0]: 567 567 if datum[0] not in ['Notebook','Controls','Phases'] and 'PWDR' not in datum[0]: #temporary fix 568 568 datum[0] = 'PWDR '+datum[0] … … 571 571 for datus in data[1:]: 572 572 print ' load: ',datus[0] 573 if 'PWDR' in datum[0] and 'Instrument Parameters' in datus[0]: 574 if len(datus[1][0]) == 10 or len(datus[1][0]) == 12: 575 datus[1][0] += (0.0,) #add missing azimuthal angle 576 datus[1][1].append(0.0) 577 datus[1][2].append(0.0) 578 datus[1][3].append('Azimuth') 573 579 sub = self.PatternTree.AppendItem(Id,datus[0]) 574 580 self.PatternTree.SetItemPyData(sub,datus[1]) -
trunk/GSASIIcomp.py
r51 r53 122 122 DataType = inst[1][0] 123 123 instVal = inst[1][1:] 124 insref = inst[2][1:]124 Insref = inst[2][1:] 125 125 insLabels = inst[3][1:] 126 126 Ka2 = False 127 127 Ioff = 3 128 if len(instVal) == 1 1:128 if len(instVal) == 12: 129 129 lamratio = instVal[1]/instVal[0] 130 130 Ka2 = True 131 131 Ioff = 5 132 insref = insref[len(insref)-6:]132 insref = Insref[len(Insref)-7:-1] #just U,V,W,X,Y,SH/L 133 133 for peak in peaks: 134 134 dip = [] … … 270 270 k = 0 271 271 delt = [] 272 siginst = [] 273 for i in range(len(instVal)-6): 274 siginst.append(0.0) 272 if Ka2: 273 siginst = [0,0,0,0,0] 274 else: 275 siginst = [0,0,0] 275 276 for j in range(6): 276 277 if insref[j]: … … 282 283 delt.append(0.0) 283 284 siginst.append(0.0) 285 delt.append(0.0) #dummies for azm 286 siginst.append(0.0) 284 287 instPrint(instVal,siginst,insLabels) 285 288 inst[1] = [DataType,] -
trunk/GSASIIgrid.py
r52 r53 368 368 inst = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PatternId, 'Instrument Parameters')) 369 369 data = self.PatternTree.GetItemPyData(PatternId)[1] 370 smin = 1.0e1 0370 smin = 1.0e15 371 371 GoOn = True 372 372 while GoOn: … … 469 469 470 470 self.dataFrame.SetMenuBar(self.dataFrame.PeakMenu) 471 Status = self.dataFrame.CreateStatusBar() 471 if not self.dataFrame.GetStatusBar(): 472 Status = self.dataFrame.CreateStatusBar() 472 473 self.Bind(wx.EVT_MENU, OnUnDo, id=wxID_UNDO) 473 474 self.Bind(wx.EVT_MENU, OnPeakFit, id=wxID_PEAKFIT) … … 587 588 Ka2 = False 588 589 Xwid = 720 589 if len(data[0]) == 1 2:590 if len(data[0]) == 13: 590 591 Ka2 = True 591 592 Xwid = 800 … … 609 610 610 611 self.InstrumentTable = [] 611 if 'P' in data[1][0]: 612 if 'P' in data[1][0]: #powder data 612 613 if Ka2: 613 614 Types = [wg.GRID_VALUE_CHOICE+":PXC,PNC,PNT",wg.GRID_VALUE_FLOAT+':10,6',wg.GRID_VALUE_FLOAT+':10,6', #type, lam-1 & lam-2 614 615 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3', #zero, ratio, pola 615 616 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3', #u,v,w 616 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,5' ]617 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_FLOAT+':10,2'] 617 618 else: 618 619 Types = [wg.GRID_VALUE_CHOICE+":PXC,PNC,PNT",wg.GRID_VALUE_FLOAT+':10,6', #type & lam-1 619 620 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3', #zero, pola 620 621 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3', #u,v,w 621 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,5' ]622 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_FLOAT+':10,2'] 622 623 colLabels = data[3] 623 624 rowLabels = ['original','changed','refine'] … … 632 633 if Ka2: beg = 6 633 634 for i in range(len(data[2])): 634 if i < beg :635 if i < beg or i == beg+6: 635 636 self.dataDisplay.SetCellRenderer(2,i,wg.GridCellStringRenderer()) 636 637 self.dataDisplay.SetCellValue(2,i,'') … … 639 640 self.dataDisplay.SetCellRenderer(2,i,wg.GridCellBoolRenderer()) 640 641 self.dataDisplay.SetCellEditor(2,i,wg.GridCellBoolEditor()) 641 else: 642 else: #single crystal data 642 643 Types = [wg.GRID_VALUE_CHOICE+":SXC,SNC,SNT",wg.GRID_VALUE_FLOAT+':10,6'] 643 644 colLabels = data[2] … … 929 930 self.dataDisplay.Destroy() 930 931 self.dataFrame.SetMenuBar(self.dataFrame.IndexMenu) 931 Status = self.dataFrame.CreateStatusBar() 932 if not self.dataFrame.GetStatusBar(): 933 Status = self.dataFrame.CreateStatusBar() 932 934 self.Bind(wx.EVT_MENU, OnIndexPeaks, id=wxID_INDEXPEAKS) 933 935 self.Bind(wx.EVT_MENU, CopyUnitCell, id=wxID_COPYCELL) … … 1057 1059 if self.dataDisplay: 1058 1060 self.dataDisplay.Destroy() 1059 Status = self.dataFrame.CreateStatusBar() 1061 if not self.dataFrame.GetStatusBar(): 1062 Status = self.dataFrame.CreateStatusBar() 1060 1063 SetStatusLine() 1061 1064 zones = ['100','010','001'] … … 1234 1237 data['setRings'] = True 1235 1238 setRings.SetValue(data['setRings']) 1236 G2plt.Plot Image(self)1239 G2plt.PlotExposedImage(self) 1237 1240 1238 1241 def OnClearCalib(event): … … 1272 1275 1273 1276 def OnSaveIntegrate(event): 1277 import numpy as np 1274 1278 print 'save integration' 1275 1279 azms = self.Integrate[1] 1280 X = self.Integrate[2].flatten()[:-1] 1281 Xminmax = [X[0],X[-1]] 1282 N = len(X) 1283 Id = self.PatternTree.GetItemParent(self.PickId) 1284 name = self.PatternTree.GetItemText(Id) 1285 Comments = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,Id, 'Comments')) 1286 name = name.replace('IMG ','PWDR ') 1287 names = ['Type','Lam','Zero','Polariz.','U','V','W','X','Y','SH/L','Azimuth'] 1288 codes = [0 for i in range(11)] 1289 parms = ['PXC',data['wavelength'],0.0,0.0,1.0,-1.0,0.3,0.0,1.0,0.0,0.0] 1290 Azms = [(azms[i+1]+azms[i])/2. for i in range(len(azms)-1)] 1291 for i,azm in enumerate(Azms): 1292 Id = self.PatternTree.AppendItem(parent=self.root,text=name+"Azm= %.2f"%(azm)) 1293 parms[10] = azm 1294 Y = self.Integrate[0][i].flatten() 1295 W = np.sqrt(Y) 1296 self.PatternTree.SetItemPyData(Id,[[''],[np.array(X),np.array(Y),np.array(W),np.zeros(N),np.zeros(N),np.zeros(N)]]) 1297 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments) 1298 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Limits'),[tuple(Xminmax),Xminmax]) 1299 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Background'),[['chebyschev',1,3,1.0,0.0,0.0]]) 1300 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),[tuple(parms),parms,codes,names]) 1301 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),[]) 1302 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[]) 1303 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[]) 1304 self.PatternTree.SelectItem(Id) 1305 self.PatternTree.Expand(Id) 1306 self.PatternId = Id 1307 1308 1276 1309 colorList = [m for m in mpl.cm.datad.keys() if not m.endswith("_r")] 1277 1310 calList = [m for m in calFile.Calibrants.keys()] … … 1279 1312 self.dataDisplay.Destroy() 1280 1313 self.dataFrame.SetMenuBar(self.dataFrame.ImageMenu) 1281 Status = self.dataFrame.CreateStatusBar() 1314 if not self.dataFrame.GetStatusBar(): 1315 Status = self.dataFrame.CreateStatusBar() 1282 1316 self.dataFrame.Bind(wx.EVT_MENU, OnCalibrate, id=wxID_IMCALIBRATE) 1283 1317 self.dataFrame.Bind(wx.EVT_MENU, OnClearCalib, id=wxID_IMCLEARCALIB) -
trunk/GSASIIplot.py
r51 r53 195 195 if ind.all() != [0]: #picked a data point 196 196 inst = self.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(self,PatternId, 'Instrument Parameters')) 197 if len(inst[1]) == 1 0:197 if len(inst[1]) == 11: 198 198 ins = inst[1][4:10] 199 199 else: … … 327 327 ContourY = [] 328 328 Nseq = 0 329 for Pattern in PlotList:329 for N,Pattern in enumerate(PlotList): 330 330 ifpicked = False 331 331 LimitId = 0 … … 334 334 ifpicked = Pattern[2] == self.PatternTree.GetItemText(PatternId) 335 335 LimitId = G2gd.GetPatternTreeItemId(self,PatternId, 'Limits') 336 N = PlotList.index(Pattern)337 336 X = xye[0] 338 337 Y = xye[1]+offset*N … … 707 706 Plot.plot([arcxI[-1],arcxO[-1]],[arcyI[-1],arcyO[-1]],picker=3) 708 707 for xring,yring in Data['ring']: 709 Plot. text(xring,yring,'+',color='b',ha='center',va='center',picker=3)708 Plot.plot(xring,yring,'r+',picker=3) 710 709 if Data['setRings']: 711 710 rings = np.concatenate((Data['rings']),axis=0) 712 711 for xring,yring,dsp in rings: 713 Plot. text(xring,yring,'+',ha='center',va='center')712 Plot.plot(xring,yring,'r+') 714 713 for ellipse in Data['ellipses']: 715 714 cent,phi,[width,height],col = ellipse … … 812 811 if Data['showLines']: 813 812 IOtth = Data['IOtth'] 814 LRAzim = Data['LRazimuth'] #NB: integers 813 if Data['fullIntegrate']: 814 LRAzim = [-180,180] 815 else: 816 LRAzim = Data['LRazimuth'] #NB: integers 815 817 Plot.plot([LRAzim[0],LRAzim[1]],[IOtth[0],IOtth[0]],picker=True) 816 818 Plot.plot([LRAzim[0],LRAzim[1]],[IOtth[1],IOtth[1]],picker=True) 817 Plot.plot([LRAzim[0],LRAzim[0]],[IOtth[0],IOtth[1]],picker=True) 818 Plot.plot([LRAzim[1],LRAzim[1]],[IOtth[0],IOtth[1]],picker=True) 819 if not Data['fullIntegrate']: 820 Plot.plot([LRAzim[0],LRAzim[0]],[IOtth[0],IOtth[1]],picker=True) 821 Plot.plot([LRAzim[1],LRAzim[1]],[IOtth[0],IOtth[1]],picker=True) 822 if Data['setRings']: 823 rings = np.concatenate((Data['rings']),axis=0) 824 for xring,yring,dsp in rings: 825 x,y = G2cmp.GetTthAzm(xring,yring,Data) 826 Plot.plot(y,x,'r+') 819 827 if not newPlot: 820 828 Page.toolbar.push_current() … … 841 849 Page.canvas.SetToolTipString('') 842 850 Page.canvas.SetCursor(wx.CROSS_CURSOR) 843 azm = event. xdata844 tth = event. ydata851 azm = event.ydata 852 tth = event.xdata 845 853 if azm and tth: 846 854 self.G2plotNB.status.SetFields(\ … … 876 884 Plot.imshow(image,cmap=acolor,vmin=Imin,vmax=Imax,interpolation='nearest', \ 877 885 extent=[ysc[0],ysc[-1],xsc[0],xsc[-1]],aspect='auto') 886 if Data['setRings']: 887 rings = np.concatenate((Data['rings']),axis=0) 888 for xring,yring,dsp in rings: 889 x,y = G2cmp.GetTthAzm(xring,yring,Data) 890 Plot.plot(x,y,'r+') 878 891 if not newPlot: 879 892 Page.toolbar.push_current()
Note: See TracChangeset
for help on using the changeset viewer.