Changeset 2627


Ignore:
Timestamp:
Jan 12, 2017 1:22:19 PM (5 years ago)
Author:
vondreele
Message:

remove progress bar stuff from image Integrate
put progress bar around integrate all
put wx.BusyCursor? around individual integrations & autointegrate

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimage.py

    r2620 r2627  
    862862    return tax,tay,taz,tad,tabs
    863863   
    864 def ImageIntegrate(image,data,masks,blkSize=128,dlg=None,returnN=False):
     864def ImageIntegrate(image,data,masks,blkSize=128,returnN=False):
    865865    'Integrate an image; called from OnIntegrateAll and OnIntegrate in G2imgGUI'    #for q, log(q) bins need data['binType']
    866866    import histogram2d as h2d
     
    890890    tbeg = time.time()
    891891    Nup = 0
    892     if dlg:
    893         dlg.Update(Nup)
    894892    times = [0,0,0,0,0]
    895893    for iBlk in range(nYBlks):
     
    902900            TA,tam = Make2ThetaAzimuthMap(data,masks,(iBeg,iFin),(jBeg,jFin),times)           #2-theta & azimuth arrays & create position mask
    903901            Nup += 1
    904 #            if dlg and jBlk == 0:                    #update progress bar on each row
    905 #                pause = dlg.Update(Nup)
    906 #                if not pause[0]: CancelPressed = True
    907902            Block = image[iBeg:iFin,jBeg:jFin]
    908903            t0 = time.time()
     
    911906            times[2] += time.time()-t0
    912907            Nup += 1
    913 #            if dlg and jBlk == 0:                    #update progress bar on each row
    914 #                pause = dlg.Update(Nup)
    915 #                if not pause[0]: CancelPressed = True
    916908            tax = np.where(tax > LRazm[1],tax-360.,tax)                 #put azm inside limits if possible
    917909            tax = np.where(tax < LRazm[0],tax+360.,tax)
     
    934926            Nup += 1
    935927            del tax; del tay; del taz; del tad; del tabs
    936             if dlg and jBlk == 0:                    #update progress bar on each row
    937                 pause = dlg.Update(Nup)
    938                 if not pause[0]: CancelPressed = True
    939928    t0 = time.time()
    940929    NST = np.array(NST,dtype=np.float)
     
    959948        H0 /= np.array([G2pwd.Polarization(data['PolaVal'][0],H2[:-1],Azm=azm-90.)[0] for azm in (H1[:-1]+np.diff(H1)/2.)])
    960949    Nup += 1
    961     if dlg:
    962         pause = dlg.Update(Nup)
    963         if not pause[0]: CancelPressed = True
    964950    times[4] += time.time()-t0
    965951    print 'Step times: \n apply masks  %8.3fs xy->th,azm   %8.3fs fill map     %8.3fs \
  • trunk/GSASIIimgGUI.py

    r2626 r2627  
    211211        CleanupMasks(masks)
    212212        blkSize = 128   #this seems to be optimal; will break in polymask if >1024
    213         Nx,Ny = data['size']
    214         nXBlks = (Nx-1)/blkSize+1
    215         nYBlks = (Ny-1)/blkSize+1
    216         Nup = nXBlks*nYBlks*3+1     #exact count expected so AUTO_HIDE works!
    217213        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()
    224215        try:
    225             G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize,dlg)           
     216            G2frame.Integrate = G2img.ImageIntegrate(sumImg,data,masks,blkSize)           
    226217        finally:
    227             dlg.Destroy()
     218            wx.EndBusyCursor()   
    228219        G2frame.PauseIntegration = G2frame.Integrate[-1]
    229220        del sumImg  #force cleanup
     
    241232                items = dlg.GetSelections()
    242233                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()
    268254                    G2frame.EnablePlot = True
    269255                    G2frame.PatternTree.SelectItem(pId)
Note: See TracChangeset for help on using the changeset viewer.