Changeset 1149 for trunk/GSASIIimgGUI.py


Ignore:
Timestamp:
Nov 24, 2013 2:50:12 PM (12 years ago)
Author:
vondreele
Message:

cleanup of image stuff
remove wx from G2image, limit fitting to ellipses - break on hyperbola

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/GSASIIimgGUI.py

    r1148 r1149  
    7373           
    7474    def OnIntegrate(event):
    75         if data['background image'][0]:
    76             maskCopy = copy.deepcopy(masks)
    77             backImg = data['background image'][0]
    78             backScale = data['background image'][1]
    79             id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, backImg)
    80             Npix,imagefile = G2frame.PatternTree.GetItemPyData(id)
    81             backImage = G2IO.GetImageData(G2frame,imagefile,True)*backScale
    82             sumImage = G2frame.ImageZ+backImage
    83             sumMin = np.min(sumImage)
    84             sumMax = np.max(sumImage)
    85             maskCopy['Thresholds'] = [(sumMin,sumMax),[sumMin,sumMax]]
    86             G2frame.Integrate = G2img.ImageIntegrate(sumImage,data,maskCopy)
    87         else:
    88             G2frame.Integrate = G2img.ImageIntegrate(G2frame.ImageZ,data,masks)
    89 #        G2plt.PlotIntegration(G2frame,newPlot=True)
    90         G2IO.SaveIntegration(G2frame,G2frame.PickId,data)
     75        dlg = wx.ProgressDialog("Elapsed time","2D image integration",Nup,
     76            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE)
     77        try:
     78            if data['background image'][0]:
     79                maskCopy = copy.deepcopy(masks)
     80                backImg = data['background image'][0]
     81                backScale = data['background image'][1]
     82                id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, backImg)
     83                Npix,imagefile = G2frame.PatternTree.GetItemPyData(id)
     84                backImage = G2IO.GetImageData(G2frame,imagefile,True)*backScale
     85                sumImage = G2frame.ImageZ+backImage
     86                sumMin = np.min(sumImage)
     87                sumMax = np.max(sumImage)
     88                maskCopy['Thresholds'] = [(sumMin,sumMax),[sumMin,sumMax]]
     89                G2frame.Integrate = G2img.ImageIntegrate(sumImage,data,maskCopy,dlg)
     90            else:
     91                G2frame.Integrate = G2img.ImageIntegrate(G2frame.ImageZ,data,masks,dlg)
     92    #        G2plt.PlotIntegration(G2frame,newPlot=True)
     93            G2IO.SaveIntegration(G2frame,G2frame.PickId,data)
     94        finally:
     95            dlg.Destroy()
    9196        for item in G2frame.MakePDF: item.Enable(True)
    9297       
     
    116121                        ifintegrate,name,id = item
    117122                        if ifintegrate:
    118                             id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, name)
    119                             Npix,imagefile = G2frame.PatternTree.GetItemPyData(id)
    120                             image = G2IO.GetImageData(G2frame,imagefile,True)
    121                             Id = G2gd.GetPatternTreeItemId(G2frame,id, 'Image Controls')
    122                             Data = G2frame.PatternTree.GetItemPyData(Id)
    123                             backImage = []
    124                             if Data['background image'][0]:
    125                                 backImg = Data['background image'][0]
    126                                 backScale = Data['background image'][1]
    127                                 id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, backImg)
     123                            dlgp = wx.ProgressDialog("Elapsed time","2D image integration",Nup,
     124                                style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE)
     125                            try:
     126                                id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, name)
    128127                                Npix,imagefile = G2frame.PatternTree.GetItemPyData(id)
    129                                 backImage = G2IO.GetImageData(G2frame,imagefile,True)*backScale
    130                             try:
    131                                 Masks = G2frame.PatternTree.GetItemPyData(
    132                                     G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'))
    133                             except TypeError:       #missing Masks
    134                                 Imin,Imax = Data['Range']
    135                                 Masks = {'Points':[],'Rings':[],'Arcs':[],'Polygons':[],'Frames':[],'Thresholds':[(Imin,Imax),[Imin,Imax]]}
    136                                 G2frame.PatternTree.SetItemPyData(
    137                                     G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'),Masks)
    138                             if len(backImage):                               
    139                                 G2frame.Integrate = G2img.ImageIntegrate(image+backImage,Data,Masks)
    140                             else:
    141                                 G2frame.Integrate = G2img.ImageIntegrate(image,Data,Masks)
    142 #                            G2plt.PlotIntegration(G2frame,newPlot=True,event=event)
    143                             G2IO.SaveIntegration(G2frame,Id,Data)
     128                                image = G2IO.GetImageData(G2frame,imagefile,True)
     129                                Id = G2gd.GetPatternTreeItemId(G2frame,id, 'Image Controls')
     130                                Data = G2frame.PatternTree.GetItemPyData(Id)
     131                                backImage = []
     132                                if Data['background image'][0]:
     133                                    backImg = Data['background image'][0]
     134                                    backScale = Data['background image'][1]
     135                                    id = G2gd.GetPatternTreeItemId(G2frame, G2frame.root, backImg)
     136                                    Npix,imagefile = G2frame.PatternTree.GetItemPyData(id)
     137                                    backImage = G2IO.GetImageData(G2frame,imagefile,True)*backScale
     138                                try:
     139                                    Masks = G2frame.PatternTree.GetItemPyData(
     140                                        G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'))
     141                                except TypeError:       #missing Masks
     142                                    Imin,Imax = Data['Range']
     143                                    Masks = {'Points':[],'Rings':[],'Arcs':[],'Polygons':[],'Frames':[],'Thresholds':[(Imin,Imax),[Imin,Imax]]}
     144                                    G2frame.PatternTree.SetItemPyData(
     145                                        G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'),Masks)
     146                                if len(backImage):                               
     147                                    G2frame.Integrate = G2img.ImageIntegrate(image+backImage,Data,Masks,dlgp)
     148                                else:
     149                                    G2frame.Integrate = G2img.ImageIntegrate(image,Data,Masks,dlgp)
     150#                               G2plt.PlotIntegration(G2frame,newPlot=True,event=event)
     151                                G2IO.SaveIntegration(G2frame,Id,Data)
     152                            finally:
     153                                dlgp.Destroy()
    144154            finally:
    145155                dlg.Destroy()
Note: See TracChangeset for help on using the changeset viewer.