Changeset 1583 for trunk/GSASIIimgGUI.py


Ignore:
Timestamp:
Nov 25, 2014 1:36:57 PM (8 years ago)
Author:
toby
Message:

cleanup masks before integration; add zoom buttons to mpl window; wx2.9+ fix for seq ref window

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimgGUI.py

    r1580 r1583  
    118118    def OnRecalibrate(event):
    119119        G2img.ImageRecalibrate(G2frame,data,masks)
    120         UpdateImageControls(G2frame,data,masks)
     120        wx.CallAfter(UpdateImageControls,G2frame,data,masks)
    121121       
    122122    def OnClearCalib(event):
     
    128128           
    129129    def OnIntegrate(event):
     130        CleanupMasks(masks)
    130131        blkSize = 128   #this seems to be optimal; will break in polymask if >1024
    131132        Nx,Ny = data['size']
     
    220221                                    G2frame.PatternTree.SetItemPyData(
    221222                                        G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'),Masks)
     223                                CleanupMasks(Masks)
    222224                                if len(backImage):                               
    223225                                    G2frame.Integrate = G2img.ImageIntegrate(image+backImage,Data,Masks,blkSize,dlgp)
     
    338340                data.update(save)
    339341                G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Image Controls'),copy.deepcopy(data))
    340                 UpdateImageControls(G2frame,data,masks)
     342                wx.CallAfter(UpdateImageControls,G2frame,data,masks)
    341343                G2plt.PlotExposedImage(G2frame,event=event)
    342344               
     
    627629                data['fullIntegrate'] = True
    628630                data['LRazimuth'] = [Lazm,Lazm+360]
    629             UpdateImageControls(G2frame,data,masks)
     631            wx.CallAfter(UpdateImageControls,G2frame,data,masks)
    630632            G2plt.PlotExposedImage(G2frame,event=event)
    631633           
     
    10221024##### Masks
    10231025################################################################################
     1026def CleanupMasks(data):
     1027    '''If a mask creation is not completed, an empty mask entry is created in the
     1028    masks array. This cleans them out. It is called when the masks page is first loaded
     1029    and before saving them or after reading them in. This should also probably be done
     1030    before they are used for integration.
     1031    '''
     1032    for key in ['Points','Rings','Arcs','Polygons']:
     1033        data[key] = data.get(key,[])
     1034        l1 = len(data[key])
     1035        data[key] = [i for i in data[key] if i]
     1036        l2 = len(data[key])
     1037        if GSASIIpath.GetConfigValue('debug') and l1 != l2:
     1038            print 'Mask Cleanup:',key,'was',l1,'entries','now',l2
    10241039   
    10251040def UpdateMasks(G2frame,data):
     
    10861101               
    10871102    def OnSaveMask(event):
     1103        CleanupMasks(data)
    10881104        dlg = wx.FileDialog(G2frame, 'Choose image mask file', '.', '',
    10891105            'image mask files (*.immask)|*.immask',wx.FD_SAVE|wx.FD_OVERWRITE_PROMPT|wx.CHANGE_DIR)
     
    11261142                            save[key][1][1] = min(oldThreshold[1],save[key][1][1])
    11271143                    S = File.readline()
     1144                File.close()
    11281145                data.update(save)
     1146                CleanupMasks(data)
    11291147                wx.CallAfter(UpdateMasks,G2frame,data)
    11301148                G2plt.PlotExposedImage(G2frame,event=event)               
    1131                 File.close()
    11321149        finally:
    11331150            dlg.Destroy()
     
    11621179        startScroll = G2frame.dataDisplay.GetScrollPos(wx.VERTICAL) # save scroll position
    11631180        G2frame.dataDisplay.Destroy()
     1181    else:
     1182        CleanupMasks(data) # posting page for 1st time; clean out anything unfinished
    11641183    G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.MaskMenu)
    11651184    G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyMask, id=G2gd.wxID_MASKCOPY)
Note: See TracChangeset for help on using the changeset viewer.