Changeset 2c6b224 in sasview for sansview/perspectives/fitting


Ignore:
Timestamp:
Jun 28, 2011 2:18:48 PM (13 years ago)
Author:
Jae Cho <jhjcho@…>
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, release_4.0.1, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
d8c54ead
Parents:
07c8630
Message:

added a menu item : Ftol setup

Location:
sansview/perspectives/fitting
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sansview/perspectives/fitting/fitpage.py

    r07c8630 r2c6b224  
    28752875        # Figuring out key combo: Cmd for copy, Alt for paste 
    28762876        if event.AltDown() and event.ShiftDown(): 
    2877             self._show_ftol_dialog() 
     2877            self._manager.show_ftol_dialog() 
    28782878            flag = True 
    28792879        elif event.AltDown() or event.ShiftDown(): 
     
    28922892                          StatusEvent(status= msg, info=infor)) 
    28932893 
    2894  
    2895     def _show_ftol_dialog(self): 
    2896         """ 
    2897         Dialog to select ftol for Scipy 
    2898         """ 
    2899         from ftol_dialog import ChangeFtol 
    2900         panel = ChangeFtol(self) 
    2901         panel.ShowModal() 
    29022894         
    29032895    def _onModel2D(self, event): 
  • sansview/perspectives/fitting/fitting.py

    r59afa71 r2c6b224  
    4646DEFAULT_NPTS = 50 
    4747MAX_NBR_DATA = 4 
    48  
     48SANS_F_TOL = 5e-05 
    4949 
    5050(PageInfoEvent, EVT_PAGE_INFO)   = wx.lib.newevent.NewEvent() 
     
    8484        self._fit_engine = 'scipy' 
    8585        ## Relative error desired in the sum of squares (float); scipy only 
    86         self.ftol=1.49012e-08 
     86        self.ftol = SANS_F_TOL 
    8787        #List of selected data 
    8888        self.selected_data_list = [] 
     
    133133         
    134134        scipy_help= "Scipy Engine: Perform Simple fit. More in Help window...." 
    135         self.menu1.AppendCheckItem(self.scipy_id, "Simple FitEngine  [LeastSq]",scipy_help)  
     135        self.menu1.AppendCheckItem(self.scipy_id, "Simple FitEngine [LeastSq]", 
     136                                   scipy_help)  
    136137        wx.EVT_MENU(owner, self.scipy_id,  self._onset_engine_scipy) 
    137138         
    138139        park_help = "Park Engine: Perform Complex fit. More in Help window...." 
    139         self.menu1.AppendCheckItem(self.park_id, "Complex FitEngine [ParkMC]",park_help)  
     140        self.menu1.AppendCheckItem(self.park_id, "Complex FitEngine [ParkMC]", 
     141                                   park_help)  
    140142        wx.EVT_MENU(owner, self.park_id,  self._onset_engine_park) 
    141143         
    142144        self.menu1.FindItemById(self.scipy_id).Check(True) 
    143145        self.menu1.FindItemById(self.park_id).Check(False) 
     146        self.menu1.AppendSeparator() 
     147        self.id_tol = wx.NewId() 
     148        ftol_help = "Change the current FTolerance (=%s) " % str(self.ftol) 
     149        ftol_help += "of Simple FitEngine..."  
     150        self.menu1.Append(self.id_tol, "Change FTolerance [LeastSq Only]",  
     151                                   ftol_help)  
     152        wx.EVT_MENU(owner, self.id_tol,  self.show_ftol_dialog) 
     153         
     154         
    144155        #create  menubar items 
    145156        return [(self.menu1, self.sub_menu)] 
     
    462473        except: 
    463474            # default 
    464             f_tol = 1.49012e-08 
     475            f_tol = SANS_F_TOL 
    465476             
    466477        self.ftol = f_tol 
    467                
     478        # update ftol menu help strings 
     479        ftol_help = "Change the current FTolerance (=%s) " % str(self.ftol) 
     480        ftol_help += "of Simple FitEngine..."  
     481        self.menu1.SetHelpString(self.id_tol, ftol_help) 
     482         
     483    def show_ftol_dialog(self, event=None): 
     484        """ 
     485        Dialog to select ftol for Scipy 
     486        """ 
     487        #if event != None: 
     488        #    event.Skip() 
     489        from ftol_dialog import ChangeFtol 
     490        panel = ChangeFtol(self.parent, self) 
     491        panel.ShowModal() 
     492                   
    468493    def stop_fit(self, uid): 
    469494        """ 
  • sansview/perspectives/fitting/ftol_dialog.py

    re7f70e8 r2c6b224  
    1414# default ftol 
    1515F_TOL = 1.49012e-08  
     16SANS_F_TOL = 5e-05 
    1617 
    1718if sys.platform.count("win32") > 0: 
    1819    PANEL_WIDTH = 270  
    19     PANEL_HEIGHT = 250 
     20    PANEL_HEIGHT = 265 
    2021    FONT_VARIANT = 0 
    2122else: 
    2223    PANEL_WIDTH = 285 
    23     PANEL_HEIGHT = 255 
     24    PANEL_HEIGHT = 265 
    2425    FONT_VARIANT = 1 
    2526     
     
    3334    Dialog to select ftol 
    3435    """ 
    35     def __init__(self, parent, id=-1, title="FTolerance"): 
     36    def __init__(self, parent, base, id=-1, title="FTolerance"): 
    3637        wx.Dialog.__init__(self, parent, id, title,  
    3738                           size=(PANEL_WIDTH, PANEL_HEIGHT)) 
    3839        # parent 
    39         self.parent = parent 
     40        self.parent = base 
    4041        # default ftol 
    41         self.ftol = F_TOL 
     42        self.ftol = SANS_F_TOL 
    4243                # font size  
    4344        self.SetWindowVariant(variant=FONT_VARIANT) 
     
    4546        panel = wx.Panel(self, -1) 
    4647        vbox = wx.BoxSizer(wx.VERTICAL) 
    47         wx.StaticBox(panel, -1, 'ftol selection (Scipy)', (5, 5), 
    48                       (PANEL_WIDTH*0.9, PANEL_HEIGHT*0.65)) 
    49         default_bt = wx.RadioButton(panel, -1, 'Default', (15, 30),  
     48        wx.StaticBox(panel, -1, 'FTol selection (Leastsq)', (5, 6), 
     49                      (PANEL_WIDTH*0.9, PANEL_HEIGHT*0.7)) 
     50        default_bt = wx.RadioButton(panel, -1, 'SansView Default (5e-05)',  
     51                                    (15, 30),  
    5052                                    style=wx.RB_GROUP) 
     53        default_bt.SetValue(True) 
    5154        default_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
    52         default_bt.SetValue(True) 
    53         high_bt = wx.RadioButton(panel, -1, '1e-06', (15, 55)) 
     55        sci_default_bt = wx.RadioButton(panel, -1,  
     56                                    'Scipy Default (1.49012e-08)', (15, 55)) 
     57        sci_default_bt.SetValue(False) 
     58        sci_default_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
     59        high_bt = wx.RadioButton(panel, -1, '1e-06', (15, 80)) 
    5460        high_bt.SetValue(False) 
    5561        high_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
    56         mid_bt = wx.RadioButton(panel, -1, '1e-05', (15, 80)) 
     62        mid_bt = wx.RadioButton(panel, -1, '1e-05', (15, 105)) 
    5763        mid_bt.SetValue(False) 
    5864        mid_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
    59         low_bt = wx.RadioButton(panel, -1, '1e-04', (15, 105)) 
     65        low_bt = wx.RadioButton(panel, -1, '1e-04', (15, 130)) 
    6066        low_bt.SetValue(False) 
    6167        low_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
    62         self.custom_bt = wx.RadioButton(panel, -1, 'Custom', (15, 130)) 
     68        self.custom_bt = wx.RadioButton(panel, -1, 'Custom', (15, 155)) 
    6369        self.custom_bt.SetValue(False) 
    6470        self.custom_bt.Bind(wx.EVT_RADIOBUTTON, self.OnFtolSelection) 
    65         self.custombox = wx.TextCtrl(panel, -1, '', (95, 130)) 
     71        self.custombox = wx.TextCtrl(panel, -1, '', (95, 155)) 
    6672        self.custombox.Disable() 
    6773        hbox = wx.BoxSizer(wx.HORIZONTAL) 
     
    7379        # set sizer 
    7480        self.SetSizer(vbox) 
    75   
     81 
    7682    def OnFtolSelection(self, event=None): 
    7783        """ 
     
    8389        selection = button.GetLabel() 
    8490        # get float value  
    85         if selection == 'Default': 
     91        if selection.count('SansView') > 0: 
     92            ftol = SANS_F_TOL    
     93            self.custombox.Disable()  
     94        elif selection.count('Scipy') > 0: 
    8695            ftol = F_TOL    
    8796            self.custombox.Disable()      
     
    111120        if flag: 
    112121            # set ftol in fitting 
    113             self.parent.parent._manager.set_ftol(self.ftol)  
    114             msg = "The ftol (Scipy) is set to %s." % self.ftol 
     122            self.parent.set_ftol(self.ftol)  
     123            msg = "The ftol (LeastSq) is set to %s." % self.ftol 
    115124        else: 
    116125           msg = "Error in the selection... No changes in ftol." 
    117126        # post event for info 
    118         wx.PostEvent( self.parent.parent._manager.parent,  
     127        wx.PostEvent( self.parent.parent,  
    119128                      StatusEvent(status= msg, info='warning'))  
    120129     
Note: See TracChangeset for help on using the changeset viewer.