Changeset 3180 for trunk/GSASIIimgGUI.py


Ignore:
Timestamp:
Dec 7, 2017 4:00:04 PM (5 years ago)
Author:
toby
Message:

autointegration updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimgGUI.py

    r3177 r3180  
    12321232        PollTime = GSASIIpath.GetConfigValue('Autoint_PollTime',30.)
    12331233        G2frame.autoIntFrame = AutoIntFrame(G2frame,PollTime=PollTime)
     1234        # debug code to reload code for window on each use
     1235        #import GSASIIimgGUI
     1236        #reload(GSASIIimgGUI)
     1237        #G2frame.autoIntFrame = GSASIIimgGUI.AutoIntFrame(G2frame,PollTime=PollTime)
     1238
    12341239        G2frame.autoIntFrame.Bind(wx.EVT_WINDOW_DESTROY,OnDestroy) # clean up name on window close
    12351240    G2frame.Bind(wx.EVT_MENU, OnAutoInt, id=G2G.wxID_IMAUTOINTEG)
     
    24802485        G2frame.GPXtree.GetSelection()
    24812486        size,imagefile,imagetag = G2frame.GPXtree.GetImageLoc(self.imageBase)
    2482         self.imagedir,fileroot = os.path.split(imagefile)
     2487        self.params['readdir'],fileroot = os.path.split(imagefile)
     2488        self.params['filter'] = '*'+os.path.splitext(fileroot)[1]
     2489        self.params['outdir'] = os.path.abspath(self.params['readdir'])
    24832490        Comments = G2frame.GPXtree.GetItemPyData(G2gd.GetGPXtreeItemId(
    24842491            G2frame,self.imageBase, 'Comments'))
     
    24972504                        except ValueError:
    24982505                            continue
    2499         self.params['filter'] = '*'+os.path.splitext(fileroot)[1]
    2500         self.params['outdir'] = os.path.abspath(self.imagedir)
    25012506        wx.Frame.__init__(self, G2frame, title='Automatic Integration',
    25022507                          style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX)
     
    25142519        self.useActive.SetLabel("Active Image: "+
    25152520                                G2frame.GPXtree.GetItemText(self.imageBase))
    2516         lblsizr.Add(self.useActive,1,wx.EXPAND,1)
     2521        lblsizr.Add(self.useActive,0,wx.EXPAND,1)
    25172522        self.useActive.SetValue(True)
    25182523        minisizer = wx.BoxSizer(wx.HORIZONTAL)
     
    25262531        # bind button and deactivate be default
    25272532        lblsizr.Add(minisizer)
    2528         mnsizer.Add(lblsizr,1,wx.EXPAND,1)
     2533        mnsizer.Add(lblsizr,0,wx.EXPAND,0)
    25292534
    25302535        # file filter stuff
    25312536        sizer = wx.BoxSizer(wx.HORIZONTAL)
    2532         sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'Image filter'))
    2533         flterInp = G2G.ValidatedTxtCtrl(mnpnl,self.params,'filter',OnLeave=self.ShowMatchingFiles)
     2537        sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'Read images from '))
     2538        self.readDir = G2G.ValidatedTxtCtrl(mnpnl,self.params,'readdir',
     2539                            OnLeave=self.ShowMatchingFiles,size=(200,-1))
     2540        sizer.Add(self.readDir,1,wx.EXPAND,1)
     2541        btn3 = wx.Button(mnpnl, wx.ID_ANY, "Browse")
     2542        btn3.Bind(wx.EVT_BUTTON, self.SetSourceDir)
     2543        sizer.Add(btn3,0,wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL)
     2544        mnsizer.Add(sizer,0,wx.EXPAND,0)
     2545        # not yet implemented
     2546        sizer = wx.BoxSizer(wx.HORIZONTAL)
     2547        sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'Keep read images in tree '))
     2548        self.params['keepReadImage'] = True
     2549        keepImage = G2G.G2CheckBox(mnpnl,'',self.params,'keepReadImage')
     2550        sizer.Add(keepImage)
     2551        keepImage.Enable(False)
     2552        sizer.Add((-1,-1),1,wx.EXPAND,1)
     2553        sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'  Image filter'))
     2554        flterInp = G2G.ValidatedTxtCtrl(mnpnl,self.params,'filter',
     2555                                        OnLeave=self.ShowMatchingFiles)
    25342556        sizer.Add(flterInp)
    2535         mnsizer.Add(sizer,0,wx.ALIGN_RIGHT,1)
     2557        mnsizer.Add(sizer,0,wx.EXPAND,0)
     2558       
    25362559        self.ListBox = wx.ListBox(mnpnl,size=(-1,100))
    2537         mnsizer.Add(self.ListBox,0,wx.EXPAND,1)
     2560        mnsizer.Add(self.ListBox,1,wx.EXPAND,1)
    25382561        self.ShowMatchingFiles(self.params['filter'])
     2562
    25392563        # box for output selections
    25402564        lbl = wx.StaticBox(mnpnl, wx.ID_ANY, "Output settings")
     
    26742698        return msg
    26752699   
     2700    def SetSourceDir(self,event):
     2701        '''Use a dialog to get a directory for image files
     2702        '''
     2703        dlg = wx.DirDialog(self, 'Select directory for image files',
     2704                        self.params['readdir'],wx.DD_DEFAULT_STYLE)
     2705        dlg.CenterOnParent()
     2706        try:
     2707            if dlg.ShowModal() == wx.ID_OK:
     2708                self.params['readdir'] = dlg.GetPath()
     2709            self.readDir.SetValue(self.params['readdir'])
     2710            self.ShowMatchingFiles(None)
     2711        finally:
     2712            dlg.Destroy()
     2713        return
     2714       
    26762715    def ShowMatchingFiles(self,value,invalid=False,**kwargs):
     2716        '''Find and show images in the tree and the image files matching the image
     2717        file directory (self.params['readdir']) and the image file filter
     2718        (self.params['filter']) and add this information to the GUI list box
     2719        '''
    26772720        G2frame = self.G2frame
    26782721        if invalid: return
     
    26912734        msg1 = ""
    26922735        try:
    2693             imageList = sorted(
    2694                 glob.glob(os.path.join(self.imagedir,value)))
    2695             if not imageList:
    2696                 msg1 = 'Warning: No files match search string '+os.path.join(self.imagedir,value)
     2736            if os.path.exists(self.params['readdir']):
     2737                imageList = sorted(
     2738                    glob.glob(os.path.join(self.params['readdir'],self.params['filter'])))
     2739                if not imageList:
     2740                    msg1 = 'Warning: No files match search string '+os.path.join(self.params['readdir'],self.params['filter'])
     2741                else:
     2742                    for fil in imageList:
     2743                        if fil not in imageFileList: msg1 += '\n  '+fil
     2744                    if msg1:
     2745                        msg += 'Files to integrate from '+os.path.join(self.params['readdir'],self.params['filter'])+msg1
     2746                    else:
     2747                        msg += 'No files found to read in '+self.params['readdir']
    26972748            else:
    2698                 for fil in imageList:
    2699                     if fil not in imageFileList: msg1 += '\n  '+fil
    2700                 if msg1:
    2701                     msg += 'Files to integrate from '+os.path.join(self.imagedir,value)+msg1
    2702                 else:
    2703                     msg += 'No files found to read'
     2749                msg1 = 'Warning: does not exist: '+self.params['readdir']
    27042750        except IndexError:
    2705             msg += 'Error searching for files named '+os.path.join(self.imagedir,value)
     2751            msg += 'Error searching for files named '+os.path.join(self.params['readdir'],self.params['filter'])
    27062752        self.ListBox.Clear()
    27072753        self.ListBox.AppendItems(msg.split('\n'))
     
    27872833                    subdir = ''
    27882834                fil = os.path.join(self.params['outdir'],subdir,fileroot)
    2789                 print('writing file '+fil+dfmt)
    27902835                G2IO.ExportPowder(G2frame,treename,fil,dfmt)
    27912836               
     
    30213066        try:
    30223067            self.currImageList = sorted(
    3023                 glob.glob(os.path.join(self.imagedir,self.params['filter'])))
     3068                glob.glob(os.path.join(self.params['readdir'],self.params['filter'])))
    30243069            self.ShowMatchingFiles(self.params['filter'])
    30253070        except IndexError:
     
    30333078        # have not yet been processed           
    30343079        oldData = {'tilt':0.,'distance':0.,'rotation':0.,'center':[0.,0.],'DetDepth':0.,'azmthOff':0.}
     3080        self.useTA = None
    30353081        for img in G2gd.GetGPXtreeDataNames(G2frame,['IMG ']):
    30363082            imgId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,img)
     
    30563102                self.OnPause()
    30573103                self.PreventReEntryTimer = False
     3104                self.Raise()
    30583105                return
    30593106
     
    30683115                    self.OnPause()
    30693116                    self.PreventReEntryTimer = False
     3117                    self.Raise()
    30703118                    return
    30713119        if GSASIIpath.GetConfigValue('debug'):
     
    30733121            print ("Timer tick at {:%d %b %Y %H:%M:%S}\n".format(datetime.datetime.now()))
    30743122        self.PreventReEntryTimer = False
     3123        self.Raise()
    30753124
    30763125def DefineEvaluator(dlg):
Note: See TracChangeset for help on using the changeset viewer.