Changeset 2bb37c3 in sasview for fittingview


Ignore:
Timestamp:
Oct 20, 2011 1:23:44 PM (13 years ago)
Author:
Gervaise Alina <gervyh@…>
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:
e947cd4
Parents:
dbbdf11
Message:

make sure the console print some updates only

Location:
fittingview/src/sans/perspectives/fitting
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • fittingview/src/sans/perspectives/fitting/console.py

    rafa0a31 r2bb37c3  
    3636        self.progress_delta = progress_delta 
    3737        self.improvement_delta = improvement_delta 
    38         self.elapsed_time = self.progress_time 
     38        self.elapsed_time = time.time() 
     39        self.update_duration = time.time() 
     40        self.fit_duration = 0 
     41         
    3942         
    4043    def progress(self, k, n): 
     
    5053        dt = t - self.improvement_time 
    5154        if self.isbetter and dt > self.improvement_delta: 
    52             self.result.print_summary() 
     55            #self.result.print_summary() 
     56            self.update_fit() 
    5357            self.isbetter = False 
    5458            self.improvement_time = t 
    55              
    56             wx.PostEvent(self.parent, StatusEvent(status=\ 
    57              "%d%% complete ..."%(p),type="progress")) 
    5859        
    5960        # Update percent complete 
     
    6566                self.progress_percent = p 
    6667                self.progress_time = t 
    67                 wx.PostEvent(self.parent, StatusEvent(status=\ 
    68                                                       "%d%% complete ..."%(p), 
    69                                                       type="progress")) 
    70         
     68                self.update_fit() 
    7169            elif 2 < dp <= 5: 
    7270                if p//5 != self.progress_percent//5: 
    73                     wx.PostEvent(self.parent, StatusEvent(status=\ 
    74                         "%d%% complete ..."%(5*(p//5)),type="progress")) 
    7571                    self.progress_percent = p 
    7672                    self.progress_time = t 
     
    7975                    self.progress_percent = p 
    8076                    self.progress_time = t 
    81                     wx.PostEvent(self.parent, StatusEvent(status=\ 
    82                    "%d%% complete ..."%(10*(p//10)),type="progress")) 
     77                    self.update_fit() 
    8378         
    8479    def improvement(self): 
     
    8984        self.isbetter = True 
    9085     
     86    def print_result(self): 
     87        """ 
     88        Print result object 
     89        """ 
     90        msg = " \n %s \n" % self.result.__str__() 
     91        wx.PostEvent(self.parent, StatusEvent(status=msg)) 
     92                      
    9193    def error(self, msg): 
    9294        """ 
     
    9496        """ 
    9597        if self.isbetter: 
    96             self.result.print_summary() 
    97         message = "Fit Abort:" 
    98         message = str(msg)+ " \n %s"%self.result.__str__() 
     98            #self.result.print_summary() 
     99            self.update_fit() 
     100 
     101        message = str(msg) + " \n %s \n" % self.result.__str__() 
    99102        wx.PostEvent(self.parent, StatusEvent(status=message, 
    100103                                   info="error", type="stop")) 
     
    103106        """ 
    104107        if self.isbetter: 
    105             self.result.print_summary() 
     108            #self.result.print_summary() 
     109            self.update_fit() 
    106110 
    107111    def abort(self): 
     
    109113        """ 
    110114        if self.isbetter: 
    111             self.result.print_summary() 
     115            #self.result.print_summary() 
     116            self.update_fit() 
    112117             
    113118         
    114     def update_fit(self, msg=""): 
     119    def update_fit(self, msg="", last=False): 
    115120        """ 
    116121        """ 
    117         self.elapsed_time = time.time() - self.elapsed_time 
    118         dt = self.elapsed_time - self.progress_time 
    119         if dt > 5: 
    120             msg = " Updating fit... \n Chi2/Npts = %s \n"\ 
    121                            % (self.result.fitness) 
     122        t1 = time.time() 
     123        self.elapsed_time =  t1 - self.update_duration 
     124        self.update_duration = t1 
     125        self.fit_duration += self.elapsed_time 
     126        str_time = time.strftime("%a, %d %b %Y %H:%M:%S ", time.localtime(t1)) 
     127        UPDATE_INTERVAL = 0.5 
     128        u_flag = False 
     129        if self.fit_duration >= UPDATE_INTERVAL: 
     130            self.fit_duration = 0 
     131            u_flag = True 
     132             
     133        if not last: 
     134            msg += "About %s s elapsed......... \n" % str (UPDATE_INTERVAL) 
     135            msg += "Fit Updates ........... %s \n" % str_time 
     136        else: 
     137            msg = "Final updates ........." 
     138        if u_flag or last: 
     139            if self.result is not None: 
     140                data_name, model_name = None, None 
     141                d_flag = (hasattr(self.result, "data") and \ 
     142                    self.result.data is not None and \ 
     143                    hasattr(self.result.data, "sans_data") and  
     144                    self.result.data.sans_data is not None) 
     145                m_flag = (hasattr(self.result, "model") and \ 
     146                          self.result.model is not None) 
     147                if d_flag: 
     148                    data_name = self.result.data.sans_data.name 
     149                if m_flag: 
     150                    model_name = str(self.result.model.name) 
     151                if m_flag and d_flag: 
     152                    msg += "Data : %s  , Model : %s \n"  % (str(data_name), 
     153                                                     str(model_name)) 
     154                msg +=  str(self.result) 
     155                msg += "\n" 
     156            else: 
     157                msg += "No result available\n" 
    122158            wx.PostEvent(self.parent, StatusEvent(status=msg, info="info", 
    123159                                              type="progress")) 
    124             #time.sleep(0.001) 
    125          
     160      
    126161    def starting_fit(self): 
    127162        """ 
  • fittingview/src/sans/perspectives/fitting/fit_thread.py

    rc935fac r2bb37c3  
    11 
    22import sys 
     3import time 
    34from data_util.calcthread import CalcThread 
    45 
     
    3940        self.batch_outputs = batch_outputs 
    4041        self.page_id = page_id 
    41         self.starttime = 0 
     42        self.starttime = time.time() 
    4243        self.updatefn = updatefn 
    4344        #Relative error desired in the sum of squares. 
     
    8283                         list_reset_flag) 
    8384            result =  map(map_apply, inputs) 
     85     
    8486            self.complete(result=result, 
    8587                          batch_inputs=self.batch_inputs, 
    8688                           batch_outputs=self.batch_outputs, 
    8789                          page_id=self.page_id, 
    88                           pars = self.pars) 
     90                          pars = self.pars, 
     91                          elapsed=time.time()-self.starttime) 
    8992            
    9093        except KeyboardInterrupt, msg: 
     
    9497            #Stop on exception during fitting. Todo: need to put  
    9598            #some mssg and reset progress bar. 
    96             raise 
    97             #if self.handler is not None: 
    98             #    self.handler.error(msg=msg) 
     99             
     100            if self.handler is not None: 
     101                self.handler.error(msg=msg) 
    99102        except: 
    100             raise 
    101103            if self.handler is not None: 
    102104                self.handler.error(msg=str(sys.exc_value)) 
  • fittingview/src/sans/perspectives/fitting/fitting.py

    re80e704 r2bb37c3  
    10951095           
    10961096        self._update_fit_button(page_id) 
    1097         msg = "Single Fitting complete " 
     1097        t1 = time.time() 
     1098        str_time = time.strftime("%a, %d %b %Y %H:%M:%S ", time.localtime(t1)) 
     1099        msg = "Fit completed on %s \n" % str_time 
     1100        msg += "Duration time: %s s.\n" % str(elapsed) 
    10981101        wx.PostEvent(self.parent, StatusEvent(status=msg, info="info", 
    10991102                                                      type="stop")) 
     
    12891292        :param elapsed: time spent at the fitting level 
    12901293        """ 
     1294        t1 = time.time() 
     1295        str_time = time.strftime("%a, %d %b %Y %H:%M:%S ", time.localtime(t1)) 
     1296        msg = "Fit completed on %s \n" % str_time 
     1297        msg += "Duration time: %s s.\n" % str(elapsed) 
     1298        wx.PostEvent(self.parent, StatusEvent(status=msg, info="info", 
     1299                                                      type="stop")) 
    12911300       # reset fit_engine if changed by simul_fit 
    12921301        self._on_change_engine(self._gui_engine) 
     1302        self._update_fit_button(page_id) 
    12931303        result = result[0] 
    12941304        self.fit_thread_list = {} 
     
    13121322                    self._update_fit_button(page_id) 
    13131323                else: 
     1324                     
    13141325                    cpage = self.fit_panel.get_page_by_id(uid) 
    13151326                    # Make sure we got all results  
     
    13191330                    index += 1 
    13201331                    cpage._on_fit_complete() 
    1321                     if res.fitness == None: 
    1322                         msg = "Fit Abort: " 
    1323                     else: 
    1324                         msg = "Fitting: " 
    1325                     msg += "Completed!!!" 
    1326                     wx.PostEvent(self.parent, StatusEvent(status=msg)) 
    13271332        except ValueError: 
    1328                 raise 
    1329                 self._update_fit_button(page_id) 
    13301333                msg = "Fitting did not converge!!!" 
    13311334                wx.PostEvent(self.parent, StatusEvent(status=msg, info="error", 
    13321335                                                      type="stop")) 
    13331336        except: 
    1334             raise 
    1335             self._update_fit_button(page_id) 
    13361337            msg = "Fit completed but Following" 
    13371338            msg += " error occurred:%s" % sys.exc_value 
Note: See TracChangeset for help on using the changeset viewer.