- Timestamp:
- Jun 19, 2019 4:13:00 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/GSASIIIO.py ¶
r3999 r4032 825 825 X = 4.*np.pi*npsind(X/2.)/data['wavelength'] #convert to q 826 826 Xminmax = [X[0],X[-1]] 827 Azms = []827 Azms = np.zeros(data['outAzimuths']) 828 828 dazm = 0. 829 if data['fullIntegrate'] and data['outAzimuths'] == 1: 830 Azms = [45.0,] #a poor man's average? 831 else: 832 for i,azm in enumerate(azms[:-1]): 833 if azm > 360. and azms[i+1] > 360.: 834 Azms.append(G2img.meanAzm(azm%360.,azms[i+1]%360.)) 835 else: 836 Azms.append(G2img.meanAzm(azm,azms[i+1])) 829 # if data['fullIntegrate'] and data['outAzimuths'] == 1: 830 # Azms = [0.0,] #a poor man's average? 831 # else: 832 ## for i,azm in enumerate(azms[:-1]): 833 ## if azm > 360. and azms[i+1] > 360.: 834 ## Azms.append(G2img.meanAzm(azm%360.,azms[i+1]%360.)) 835 ## else: 836 ## Azms.append(G2img.meanAzm(azm,azms[i+1])) 837 if data['outAzimuths'] > 1: 837 838 dazm = np.min(np.abs(np.diff(azms)))/2. 838 839 G2frame.IntgOutList = [] -
TabularUnified trunk/GSASIIdataGUI.py ¶
r4031 r4032 5454 5454 # IMG / Masks 5455 5455 G2G.Define_wxId('wxID_MASKCOPY', 'wxID_MASKSAVE', 'wxID_MASKLOAD', 'wxID_NEWMASKSPOT', 'wxID_NEWMASKARC', 'wxID_NEWMASKRING', 5456 'wxID_NEWMASKFRAME', 'wxID_NEWMASKPOLY', 5456 'wxID_NEWMASKFRAME', 'wxID_NEWMASKPOLY','wxID_NEWMASKXLINE','wxID_NEWMASKYLINE','wxID_MASKLOADNOT', 'wxID_FINDSPOTS', 'wxID_DELETESPOTS',) 5457 5457 self.MaskMenu = wx.MenuBar() 5458 5458 self.PrefillDataMenu(self.MaskMenu) … … 5472 5472 submenu.Append(G2G.wxID_NEWMASKRING,'Ring mask','Create a ring mask with mouse input') 5473 5473 submenu.Append(G2G.wxID_NEWMASKSPOT,'Spot mask','Create spot masks with mouse input') 5474 submenu.Append(G2G.wxID_NEWMASKXLINE,'X line mask','Create line masks with mouse input') 5475 submenu.Append(G2G.wxID_NEWMASKYLINE,'Y line mask','Create line masks with mouse input') 5474 5476 self.PostfillDataMenu() 5475 5477 -
TabularUnified trunk/GSASIIimage.py ¶
r4026 r4032 548 548 tamp = ma.make_mask_none((1024*1024)) 549 549 tamp = ma.make_mask(pm.polymask(nI*nJ,tax.flatten(), 550 tay.flatten(),len(frame),frame,tamp)[:nI*nJ]) -True #switch to exclude around frame550 tay.flatten(),len(frame),frame,tamp)[:nI*nJ])^True #switch to exclude around frame 551 551 if tamp.shape: 552 552 tamp = np.reshape(tamp[:nI*nJ],(nI,nJ)) … … 1024 1024 Block = image[iBeg:iFin,jBeg:jFin] 1025 1025 tax,tay,taz,tad,tabs = Fill2ThetaAzimuthMap(Masks,TA,tam,Block) #and apply masks 1026 pol = G2pwd.Polarization(data['PolaVal'][0],tay,tax-90.)[0] #for pixel pola correction 1026 1027 times[0] += time.time()-t0 1027 1028 t0 = time.time() … … 1040 1041 times[2] += time.time()-t0 1041 1042 t0 = time.time() 1042 taz = np.array((taz*tad/tabs),dtype='float32') 1043 taz = np.array((taz*tad/tabs),dtype='float32')/pol 1043 1044 if any([tax.shape[0],tay.shape[0],taz.shape[0]]): 1044 1045 NST,H0 = h2d.histogram2d(len(tax),tax,tay,taz, 1045 1046 numAzms,numChans,LRazm,lutth,Dazm,dtth,NST,H0) 1046 1047 times[3] += time.time()-t0 1047 # print('done block %d %d %d %d %d %d %d %d'%(iBlk,iBeg,iFin,jBlk,jBeg,jFin,np.min(Block),np.max(Block)))1048 1048 G2fil.G2Print('End integration loops') 1049 1049 t0 = time.time() 1050 # H2 = np.array([tth for tth in np.linspace(lutth[0],lutth[1],numChans+1)])1051 # NST = np.array(NST,dtype=np.float32)1052 1050 #prepare masked arrays of bins with pixels for interpolation setup 1053 1051 H2msk = [ma.array(H2[:-1],mask=np.logical_not(nst)) for nst in NST] … … 1066 1064 else: 1067 1065 H1 = LRazm 1066 if 'SASD' not in data['type']: 1067 H0 *= np.array(G2pwd.Polarization(data['PolaVal'][0],H2[:-1],0.)[0]) 1068 1068 H0 /= npcosd(H2[:-1]) #**2? I don't think so, **1 is right for powders 1069 1069 if 'SASD' in data['type']: … … 1071 1071 if data['Oblique'][1]: 1072 1072 H0 /= G2pwd.Oblique(data['Oblique'][0],H2[:-1]) 1073 if 'SASD' in data['type'] and data['PolaVal'][1]:1074 #NB: in G2pwd.Polarization azm is defined from plane of polarization, not image x axis!1075 H0 /= np.array([G2pwd.Polarization(data['PolaVal'][0],H2[:-1],Azm=azm-90.)[0] for azm in (H1[:-1]+np.diff(H1)/2.)])1076 1073 times[4] += time.time()-t0 1077 1074 G2fil.G2Print ('Step times: \n apply masks %8.3fs xy->th,azm %8.3fs fill map %8.3fs \ -
TabularUnified trunk/GSASIIimgGUI.py ¶
r4031 r4032 269 269 CleanupMasks(masks) 270 270 sumImg = GetImageZ(G2frame,data) 271 wx.BeginBusyCursor() 272 try: 273 G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize,useTA=useTA,useMask=useMask) 274 finally: 275 wx.EndBusyCursor() 271 G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize,useTA=useTA,useMask=useMask) 276 272 G2frame.PauseIntegration = G2frame.Integrate[-1] 277 273 del sumImg #force cleanup … … 1363 1359 before they are used for integration. 1364 1360 ''' 1365 for key in ['Points','Rings','Arcs','Polygons' ]:1361 for key in ['Points','Rings','Arcs','Polygons','Xlines','Ylines',]: 1366 1362 data[key] = data.get(key,[]) 1367 1363 l1 = len(data[key]) … … 1444 1440 filename = os.path.splitext(filename)[0]+'.immask' 1445 1441 File = open(filename,'w') 1446 keys = ['Points','Rings','Arcs','Polygons',' Frames','Thresholds']1442 keys = ['Points','Rings','Arcs','Polygons','Xlines','Ylines','Frames','Thresholds'] 1447 1443 for key in keys: 1448 1444 File.write(key+':'+str(data[key])+'\n') … … 1497 1493 'Start a new ring mask' 1498 1494 G2frame.MaskKey = 'r' 1495 G2plt.OnStartMask(G2frame) 1496 1497 def OnNewXlineMask(event): 1498 'Start a new x-line mask' 1499 print('x') 1500 G2frame.MaskKey = 'x' 1501 G2plt.OnStartMask(G2frame) 1502 1503 def OnNewYlineMask(event): 1504 'Start a new y-line mask' 1505 G2frame.MaskKey = 'y' 1499 1506 G2plt.OnStartMask(G2frame) 1500 1507 … … 1679 1686 G2frame.Bind(wx.EVT_MENU, OnNewArcMask, id=G2G.wxID_NEWMASKARC) 1680 1687 G2frame.Bind(wx.EVT_MENU, OnNewRingMask, id=G2G.wxID_NEWMASKRING) 1688 G2frame.Bind(wx.EVT_MENU, OnNewXlineMask, id=G2G.wxID_NEWMASKXLINE) 1689 G2frame.Bind(wx.EVT_MENU, OnNewYlineMask, id=G2G.wxID_NEWMASKYLINE) 1681 1690 G2frame.Bind(wx.EVT_MENU, OnNewPolyMask, id=G2G.wxID_NEWMASKPOLY) 1682 1691 G2frame.Bind(wx.EVT_MENU, OnNewFrameMask, id=G2G.wxID_NEWMASKFRAME) … … 1689 1698 elif G2frame.MaskKey == 'r': 1690 1699 G2frame.GetStatusBar().SetStatusText('Ring mask active - LB pick ring location',1) 1700 elif G2frame.MaskKey == 'x': 1701 G2frame.GetStatusBar().SetStatusText('X-line mask active - LB pick x line of pixels',1) 1702 elif G2frame.MaskKey == 'y': 1703 G2frame.GetStatusBar().SetStatusText('Y-line mask active - LB pick y line of pixels',1) 1691 1704 else: 1692 G2frame.GetStatusBar().SetStatusText("To add mask: press a,r,s, p or f on 2D image for arc/ring/spot/polygon/frame",1)1705 G2frame.GetStatusBar().SetStatusText("To add mask: press a,r,s,x,y,p or f on 2D image for arc/ring/spot/xline/yline/polygon/frame",1) 1693 1706 mainSizer = G2frame.dataWindow.GetSizer() 1694 1707 mainSizer.Add((5,10),0) … … 1698 1711 Rings = data['Rings'] #radius, thickness 1699 1712 Polygons = data['Polygons'] #3+ x,y pairs 1713 if 'Xlines' not in data: #single rows/columns of bad pixels 1714 data['Xlines'] = [] 1715 data['Ylines'] = [] 1716 Xlines = data['Xlines'] 1717 Ylines = data['Ylines'] 1700 1718 if 'Frames' not in data: 1701 1719 data['Frames'] = [] … … 1797 1815 littleSizer.Add(arcDelete,0,WACV) 1798 1816 mainSizer.Add(littleSizer,0,) 1817 1818 if Xlines: 1819 lbl = wx.StaticText(parent=G2frame.dataWindow,label=' X line masks') 1820 lbl.SetBackgroundColour(wx.Colour(200,200,210)) 1821 mainSizer.Add(lbl,0,wx.EXPAND|wx.ALIGN_CENTER,0) 1822 littleSizer = wx.FlexGridSizer(0,2,0,5) 1823 for i in range(len(Xlines)): 1824 if Xlines[i]: 1825 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='at Y-pixel: %d'%(Xlines[i])),0,WACV) 1826 xlineDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1827 locationcode='Delete+Xlines+'+str(i),handler=onDeleteMask) 1828 littleSizer.Add(xlineDelete,0,WACV) 1829 mainSizer.Add(littleSizer,0,) 1830 1831 if Ylines: 1832 lbl = wx.StaticText(parent=G2frame.dataWindow,label=' Y line masks') 1833 lbl.SetBackgroundColour(wx.Colour(200,200,210)) 1834 mainSizer.Add(lbl,0,wx.EXPAND|wx.ALIGN_CENTER,0) 1835 littleSizer = wx.FlexGridSizer(0,2,0,5) 1836 for i in range(len(Ylines)): 1837 if Ylines[i]: 1838 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='at X-pixel: %d'%(Ylines[i])),0,WACV) 1839 ylineDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1840 locationcode='Delete+Ylines+'+str(i),handler=onDeleteMask) 1841 littleSizer.Add(ylineDelete,0,WACV) 1842 mainSizer.Add(littleSizer,0,) 1843 1799 1844 if Polygons: 1800 1845 lbl = wx.StaticText(parent=G2frame.dataWindow, -
TabularUnified trunk/GSASIIphsGUI.py ¶
r4013 r4032 2209 2209 if 'cutOff' not in Map: 2210 2210 Map['cutOff'] = 100.0 2211 if 'Resolution' in Map: 2212 Map['GridStep'] = Map['Resolution'] 2211 2213 mapTypes = ['Fobs','Fcalc','delt-F','2*Fo-Fc','Omit','2Fo-Fc Omit','Patterson'] 2212 2214 refsList = [item for item in G2gd.GetGPXtreeDataNames(G2frame,['HKLF','PWDR']) if item in data['Histograms'].keys()] … … 2246 2248 2247 2249 def FlipSizer(): 2250 #patches 2248 2251 if 'k-Max' not in Flip: Flip['k-Max'] = 20. 2252 if 'Resolution' in Flip: 2253 Flip['GridStep'] = Flip['Resolution'] 2249 2254 2250 2255 def OnRefList(event): -
TabularUnified trunk/GSASIIplot.py ¶
r4021 r4032 6531 6531 Page.figure.suptitle('Left-click to create an arc mask',color='r',fontweight='bold') 6532 6532 Page.canvas.draw() 6533 elif G2frame.MaskKey == 'x': 6534 new,plotNum,Page,Plot,lim = G2frame.G2plotNB.FindPlotTab('2D Powder Image','mpl',newImage=False) 6535 Page.figure.suptitle('Left-click to create an x-line mask',color='r',fontweight='bold') 6536 Page.canvas.draw() 6537 elif G2frame.MaskKey == 'y': 6538 new,plotNum,Page,Plot,lim = G2frame.G2plotNB.FindPlotTab('2D Powder Image','mpl',newImage=False) 6539 Page.figure.suptitle('Left-click to create an y-line mask',color='r',fontweight='bold') 6540 Page.canvas.draw() 6533 6541 elif G2frame.MaskKey == 'r': 6534 6542 new,plotNum,Page,Plot,lim = G2frame.G2plotNB.FindPlotTab('2D Powder Image','mpl',newImage=False) … … 6746 6754 Page.canvas.draw() 6747 6755 return 6748 elif event.key in ['l','p','f','a','r' ]:6756 elif event.key in ['l','p','f','a','r','x','y']: 6749 6757 G2frame.MaskKey = event.key 6750 6758 OnStartMask(G2frame) … … 6922 6930 pickType = pick.itemType 6923 6931 except: 6924 pickType = '?'6932 pickType = None 6925 6933 if pickType == "Spot": 6926 6934 itemNum = G2frame.itemPicked.itemNumber … … 7059 7067 pickType = pick.itemType 7060 7068 except: # should not happen anymore 7061 pickType = '?'7069 pickType = None 7062 7070 if pickType == 'Spot': 7063 7071 pl = [pick,] … … 7198 7206 wx.CallAfter(PlotImage,G2frame,newImage=True) 7199 7207 return 7200 elif G2frame.MaskKey =='p' or G2frame.MaskKey =='f':7208 elif G2frame.MaskKey in ['p','f']: 7201 7209 if G2frame.MaskKey =='p': 7202 7210 polygon = Masks['Polygons'][-1] … … 7232 7240 #G2imG.UpdateMasks(G2frame,Masks) 7233 7241 return 7242 elif G2frame.MaskKey in ['x','y']: 7243 Xpix,Ypix = int(Xpos*scalex),int(Ypos*scaley) 7244 if G2frame.MaskKey == 'y': 7245 Masks['Ylines'].append(Xpix) 7246 else: 7247 Masks['Xlines'].append(Ypix) 7248 G2imG.UpdateMasks(G2frame,Masks) 7249 wx.CallAfter(PlotImage,G2frame,newImage=True) 7250 return 7234 7251 G2imG.UpdateMasks(G2frame,Masks) 7235 7252 wx.CallAfter(PlotImage,G2frame,newImage=False) … … 7378 7395 elif G2frame.GPXtree.GetItemText(G2frame.PickId) in ['Masks',]: 7379 7396 Page.Choice = [' key press','a: arc mask','r: ring mask', 7397 'x: x line mask','y: y line mask', 7380 7398 'p: polygon mask','f: frame mask', 7381 7399 't: add spot mask at mouse position', … … 7414 7432 Imin,Imax = Data['range'][1] 7415 7433 MA = ma.masked_greater(ma.masked_less(G2frame.ImageZ,Zlim[0]),Zlim[1]) 7434 7416 7435 MaskA = ma.getmaskarray(MA) 7417 7436 A = G2img.ImageCompress(MA,imScale)
Note: See TracChangeset
for help on using the changeset viewer.