Changeset 2627
- Timestamp:
- Jan 12, 2017 1:22:19 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIimage.py
r2620 r2627 862 862 return tax,tay,taz,tad,tabs 863 863 864 def ImageIntegrate(image,data,masks,blkSize=128, dlg=None,returnN=False):864 def ImageIntegrate(image,data,masks,blkSize=128,returnN=False): 865 865 'Integrate an image; called from OnIntegrateAll and OnIntegrate in G2imgGUI' #for q, log(q) bins need data['binType'] 866 866 import histogram2d as h2d … … 890 890 tbeg = time.time() 891 891 Nup = 0 892 if dlg:893 dlg.Update(Nup)894 892 times = [0,0,0,0,0] 895 893 for iBlk in range(nYBlks): … … 902 900 TA,tam = Make2ThetaAzimuthMap(data,masks,(iBeg,iFin),(jBeg,jFin),times) #2-theta & azimuth arrays & create position mask 903 901 Nup += 1 904 # if dlg and jBlk == 0: #update progress bar on each row905 # pause = dlg.Update(Nup)906 # if not pause[0]: CancelPressed = True907 902 Block = image[iBeg:iFin,jBeg:jFin] 908 903 t0 = time.time() … … 911 906 times[2] += time.time()-t0 912 907 Nup += 1 913 # if dlg and jBlk == 0: #update progress bar on each row914 # pause = dlg.Update(Nup)915 # if not pause[0]: CancelPressed = True916 908 tax = np.where(tax > LRazm[1],tax-360.,tax) #put azm inside limits if possible 917 909 tax = np.where(tax < LRazm[0],tax+360.,tax) … … 934 926 Nup += 1 935 927 del tax; del tay; del taz; del tad; del tabs 936 if dlg and jBlk == 0: #update progress bar on each row937 pause = dlg.Update(Nup)938 if not pause[0]: CancelPressed = True939 928 t0 = time.time() 940 929 NST = np.array(NST,dtype=np.float) … … 959 948 H0 /= np.array([G2pwd.Polarization(data['PolaVal'][0],H2[:-1],Azm=azm-90.)[0] for azm in (H1[:-1]+np.diff(H1)/2.)]) 960 949 Nup += 1 961 if dlg:962 pause = dlg.Update(Nup)963 if not pause[0]: CancelPressed = True964 950 times[4] += time.time()-t0 965 951 print 'Step times: \n apply masks %8.3fs xy->th,azm %8.3fs fill map %8.3fs \ -
trunk/GSASIIimgGUI.py
r2626 r2627 211 211 CleanupMasks(masks) 212 212 blkSize = 128 #this seems to be optimal; will break in polymask if >1024 213 Nx,Ny = data['size']214 nXBlks = (Nx-1)/blkSize+1215 nYBlks = (Ny-1)/blkSize+1216 Nup = nXBlks*nYBlks*3+1 #exact count expected so AUTO_HIDE works!217 213 sumImg = GetImageZ(G2frame,data) 218 if IntegrateOnly: 219 dlg = wx.ProgressDialog("Elapsed time","2D image integration\nPress Cancel to pause after current image", 220 Nup,style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT) 221 else: 222 dlg = wx.ProgressDialog("Elapsed time","2D image integration",Nup, 223 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE) 214 wx.BeginBusyCursor() 224 215 try: 225 G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize ,dlg)216 G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize) 226 217 finally: 227 dlg.Destroy()218 wx.EndBusyCursor() 228 219 G2frame.PauseIntegration = G2frame.Integrate[-1] 229 220 del sumImg #force cleanup … … 241 232 items = dlg.GetSelections() 242 233 G2frame.EnablePlot = False 243 for item in items: 244 name = Names[item] 245 G2frame.Image = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) 246 CId = G2gd.GetPatternTreeItemId(G2frame,G2frame.Image,'Image Controls') 247 Data = G2frame.PatternTree.GetItemPyData(CId) 248 blkSize = 128 #this seems to be optimal; will break in polymask if >1024 249 Nx,Ny = Data['size'] 250 nXBlks = (Nx-1)/blkSize+1 251 nYBlks = (Ny-1)/blkSize+1 252 Nup = nXBlks*nYBlks*3+3 253 image = GetImageZ(G2frame,Data) 254 Masks = G2frame.PatternTree.GetItemPyData( 255 G2gd.GetPatternTreeItemId(G2frame,G2frame.Image,'Masks')) 256 image = GetImageZ(G2frame,Data) 257 dlg = wx.ProgressDialog("Elapsed time","2D image integration",Nup, 258 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT) 259 try: 260 G2frame.Integrate = G2img.ImageIntegrate(image,Data,Masks,blkSize,dlg) 261 finally: 262 dlg.Destroy() 263 del image #force cleanup 264 pId = G2IO.SaveIntegration(G2frame,CId,Data) 265 if G2frame.Integrate[-1]: #Cancel from progress bar? 266 break 267 else: 234 dlgp = wx.ProgressDialog("Elapsed time","2D image integrations",len(items)+1, 235 style = wx.PD_ELAPSED_TIME|wx.PD_CAN_ABORT) 236 try: 237 for icnt,item in enumerate(items): 238 GoOn = dlgp.Update(icnt) 239 if not GoOn[0]: 240 break 241 name = Names[item] 242 G2frame.Image = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,name) 243 CId = G2gd.GetPatternTreeItemId(G2frame,G2frame.Image,'Image Controls') 244 Data = G2frame.PatternTree.GetItemPyData(CId) 245 Masks = G2frame.PatternTree.GetItemPyData( 246 G2gd.GetPatternTreeItemId(G2frame,G2frame.Image,'Masks')) 247 image = GetImageZ(G2frame,Data) 248 blkSize = 128 #this seems to be optimal; will break in polymask if >1024 249 G2frame.Integrate = G2img.ImageIntegrate(image,Data,Masks,blkSize) 250 del image #force cleanup 251 pId = G2IO.SaveIntegration(G2frame,CId,Data) 252 finally: 253 dlgp.Destroy() 268 254 G2frame.EnablePlot = True 269 255 G2frame.PatternTree.SelectItem(pId)
Note: See TracChangeset
for help on using the changeset viewer.