Changeset 447
- Timestamp:
- Dec 20, 2011 11:46:45 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIimage.py
r397 r447 205 205 xpix += Zmax%w2-w 206 206 ypix += Zmax/w2-w 207 return xpix,ypix,np.ravel(Z)[Zmax], np.ravel(Z)[Zmin]207 return xpix,ypix,np.ravel(Z)[Zmax],max(0.0001,np.ravel(Z)[Zmin]) #avoid neg/zero minimum 208 208 else: 209 209 return 0,0,0,0 -
trunk/GSASIIpwd.py
r446 r447 953 953 backVals = Background[0][3:] 954 954 backNames = ['Back:'+str(i) for i in range(len(backVals))] 955 Debye = Background[1] 955 Debye = Background[1] #also has background peaks stuff 956 956 backDict = dict(zip(backNames,backVals)) 957 957 backVary = [] 958 958 if bakFlag: 959 959 backVary = backNames 960 960 961 backDict['nDebye'] = Debye['nDebye'] 961 962 debyeDict = {} … … 970 971 debyeVary.append(item[0]) 971 972 backDict.update(debyeDict) 972 backVary += debyeVary 973 backVary += debyeVary 974 975 peaksDict = {} 976 peaksList = [] 977 for i in range(Debye['nPeaks']): 978 peaksNames = ['BkPkpos:'+str(i),'BkPkint:'+str(i),'BkPksig:'+str(i),'BkPkgam:'+str(i)] 979 peaksDict.update(dict(zip(peaksNames,Debye['peaksList'][i][::2]))) 980 peaksList += zip(peaksNames,Debye['peaksList'][i][1::2]) 981 peaksVary = [] 982 for item in peaksList: 983 if item[1]: 984 peaksVary.append(item[0]) 985 backDict.update(peaksDict) 986 backVary += peaksVary 973 987 return bakType,backDict,backVary 974 988 … … 989 1003 val = parmList[name+str(iDb)] 990 1004 Background[1]['debyeTerms'][iDb][2*i] = val 1005 iDb += 1 1006 except KeyError: 1007 break 1008 iDb = 0 1009 while True: 1010 names = ['BkPkpos:','BkPkint:','BkPksig:','BkPkgam:'] 1011 try: 1012 for i,name in enumerate(names): 1013 val = parmList[name+str(iDb)] 1014 Background[1]['peaksList'][iDb][2*i] = val 991 1015 iDb += 1 992 1016 except KeyError: … … 1020 1044 ip = parms.index(parm) 1021 1045 ptstr += ptfmt%(Background[1]['debyeTerms'][int(id)][2*ip]) 1046 print names 1047 print ptstr 1048 print sigstr 1049 if Background[1]['nPeaks']: 1050 parms = ['BkPkpos','BkPkint','BkPksig','BkPkgam'] 1051 print 'Peaks in background coefficients' 1052 ptfmt = "%12.5f" 1053 names = 'names :' 1054 ptstr = 'values:' 1055 sigstr = 'esds :' 1056 for item in sigDict: 1057 if 'BkPk' in item: 1058 names += '%12s'%(item) 1059 sigstr += ptfmt%(sigDict[item]) 1060 parm,id = item.split(':') 1061 ip = parms.index(parm) 1062 ptstr += ptfmt%(Background[1]['peaksList'][int(id)][2*ip]) 1022 1063 print names 1023 1064 print ptstr -
trunk/GSASIIpwdGUI.py
r443 r447 257 257 258 258 def UpdateBackground(self,data): 259 if len(data) < 2: #add Debye diffuse scattering here 260 data.append({'nDebye':0,'debyeTerms':[]}) 259 if len(data) < 2: #add Debye diffuse & peaks scattering here 260 data.append({'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}) 261 if 'nPeaks' not in data[1]: 262 data[1].update({'nPeaks':0,'peaksList':[]}) 261 263 ValObj = {} 262 264 … … 374 376 elif key == 78: #'N' 375 377 for row in range(debyeGrid.GetNumberRows()): data[1]['debyeTerms'][row][col]=False 378 376 379 377 380 debSizer = wx.BoxSizer(wx.VERTICAL) … … 399 402 debyeGrid.AutoSizeColumns(False) 400 403 debSizer.Add(debyeGrid) 401 return debSizer 404 return debSizer 405 406 def PeaksSizer(): 407 408 def OnPeaks(event): 409 data[1]['nPeaks'] = int(peaks.GetValue()) 410 M = len(data[1]['peaksList']) 411 N = data[1]['nPeaks'] 412 if N > M: #add terms 413 for i in range(M,N): 414 data[1]['peaksList'].append([1.0,False,1.0,False,0.10,False,0.10,False]) 415 elif N < M: #delete terms 416 for i in range(N,M): 417 del(data[1]['peaksList'][-1]) 418 UpdateBackground(self,data) 419 420 def KeyEditPeakGrid(event): 421 colList = peaksGrid.GetSelectedCols() 422 if event.GetKeyCode() == wx.WXK_RETURN: 423 event.Skip(True) 424 elif event.GetKeyCode() == wx.WXK_CONTROL: 425 event.Skip(True) 426 elif event.GetKeyCode() == wx.WXK_SHIFT: 427 event.Skip(True) 428 elif colList: 429 peaksGrid.ClearSelection() 430 key = event.GetKeyCode() 431 for col in colList: 432 if peaksTable.GetTypeName(0,col) == wg.GRID_VALUE_BOOL: 433 if key == 89: #'Y' 434 for row in range(peaksGrid.GetNumberRows()): data[1]['peaksList'][row][col]=True 435 elif key == 78: #'N' 436 for row in range(peaksGrid.GetNumberRows()): data[1]['peaksList'][row][col]=False 437 438 peaksSizer = wx.BoxSizer(wx.VERTICAL) 439 topSizer = wx.BoxSizer(wx.HORIZONTAL) 440 topSizer.Add(wx.StaticText(self.dataDisplay,-1,' Peaks in background: '),0,wx.ALIGN_CENTER_VERTICAL) 441 topSizer.Add(wx.StaticText(self.dataDisplay,-1,' No. peaks: '),0,wx.ALIGN_CENTER_VERTICAL) 442 peaks = wx.ComboBox(self.dataDisplay,-1,value=str(data[1]['nPeaks']),choices=[str(i) for i in range(12)], 443 style=wx.CB_READONLY|wx.CB_DROPDOWN) 444 peaks.Bind(wx.EVT_COMBOBOX,OnPeaks) 445 topSizer.Add(peaks,0,wx.ALIGN_CENTER_VERTICAL) 446 topSizer.Add((5,0),0) 447 peaksSizer.Add(topSizer) 448 if data[1]['nPeaks']: 449 peaksSizer.Add(wx.StaticText(self.dataDisplay,-1,' Peak list:'),0,wx.ALIGN_CENTER_VERTICAL) 450 rowLabels = [] 451 for i in range(len(data[1]['peaksList'])): rowLabels.append(str(i)) 452 colLabels = ['pos','refine','int','refine','sig','refine','gam','refine'] 453 Types = [wg.GRID_VALUE_FLOAT+':10,2',wg.GRID_VALUE_BOOL, 454 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_BOOL, 455 wg.GRID_VALUE_FLOAT+':10,3',wg.GRID_VALUE_BOOL, 456 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 457 peaksTable = G2gd.Table(data[1]['peaksList'],rowLabels=rowLabels,colLabels=colLabels,types=Types) 458 peaksGrid = G2gd.GSGrid(parent=self.dataDisplay) 459 peaksGrid.SetTable(peaksTable, True) 460 peaksGrid.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) 461 peaksGrid.AutoSizeColumns(False) 462 peaksSizer.Add(peaksGrid) 463 return peaksSizer 402 464 403 465 if self.dataDisplay: … … 415 477 mainSizer.Add((0,5),0) 416 478 mainSizer.Add(DebyeSizer()) 479 mainSizer.Add((0,5),0) 480 mainSizer.Add(PeaksSizer()) 417 481 mainSizer.Layout() 418 482 self.dataDisplay.SetSizer(mainSizer)
Note: See TracChangeset
for help on using the changeset viewer.