Ignore:
Timestamp:
Sep 23, 2008 1:25:52 PM (16 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:
6aa47df
Parents:
e71440c
Message:

models added

File:
1 edited

Legend:

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

    r55fd102 r442895f  
    1414import fitpage 
    1515import park 
     16class PlottableDatas(Data,Data1D): 
     17    """ class plottable data: class allowing to plot Data type on panel""" 
     18     
     19    def __init__(self,data=None,data1d=None): 
     20        Data.__init__(self,sans_data=data1d) 
     21        Data1D.__init__(self,x=data1d.x,y = data1d.y,dx = data1d.dx,dy = data1d.dy) 
     22        #self.x = data1d.x 
     23        #self.y = data1d.y 
     24        #self.dx = data1d.dx 
     25        #self.dy = data1d.dy 
     26        #self.data=data 
     27        self.group_id = data1d.group_id 
     28        #x_name, x_units = data1d.get_xaxis()  
     29        #y_name, y_units = data1d.get_yaxis()  
     30        #self.xaxis( x_name, x_units) 
     31        #self.yaxis( y_name, y_units ) 
     32        #self.qmin = data.qmin 
     33        #self.qmax = data.qmax 
     34        
    1635 
    1736class PlottableData(Data,Data1D): 
    1837    """ class plottable data: class allowing to plot Data type on panel""" 
    19     def __init__(self,data,data1d): 
     38     
     39    def __init__(self,data=None,data1d=None): 
     40        #Data.__init__(self,*args) 
     41        #Data1D.__init__(self,**kw) 
    2042        self.x = data1d.x 
    2143        self.y = data1d.y 
    2244        self.dx = data1d.dx 
    2345        self.dy = data1d.dy 
    24         
     46        self.data=data 
    2547        self.group_id = data1d.group_id 
    2648        x_name, x_units = data1d.get_xaxis()  
     
    3052        self.qmin = data.qmin 
    3153        self.qmax = data.qmax 
     54        def residuals(self, fn): 
     55            return self.data.residuals(fn) 
    3256 
    3357class Plugin: 
     
    6892        wx.EVT_MENU(owner, id1, self.on_perspective) 
    6993        id3 = wx.NewId() 
    70         self.menu1.Append(id3,'&scipy \ park','toggle engine to park or scipy') 
     94        self.menu1.AppendCheckItem(id3, "park")  
    7195        wx.EVT_MENU(owner, id3, self._onset_engine) 
    7296         
     
    166190                    #create a fitproblem storing all link to data,model,page creation 
    167191                    self.page_finder[page]= FitProblem() 
    168                     data_for_park= Data(sans_data=item) 
    169                     datap=PlottableData(data=data_for_park,data1d=item) 
    170                     self.page_finder[page].add_data(datap) 
     192                    #data_for_park= Data(sans_data=item) 
     193                    #datap = PlottableData(data=data_for_park,data1d=item) 
     194                    #self.page_finder[page].add_data(datap) 
     195                    self.page_finder[page].add_data(item) 
    171196                except: 
     197                    #raise 
    172198                    wx.PostEvent(self.parent, StatusEvent(status="Fitting error: \ 
    173199                    data already Selected ")) 
     
    230256                    break 
    231257            i = 0 
     258#            print "fitting: single fit pars ", pars 
    232259            for name in pars: 
    233260                if result.pvec.__class__==numpy.float64: 
     
    235262                else: 
    236263                    model.setParam(name,result.pvec[i]) 
     264#                    print "fitting: single fit", name, result.pvec[i] 
    237265                    i += 1 
     266#            print "fitting result : chisqr",result.fitness 
     267#            print "fitting result : pvec",result.pvec 
     268#            print "fitting result : stderr",result.stderr 
     269             
    238270            current_pg.onsetValues(result.fitness, result.pvec,result.stderr) 
    239271            self.plot_helper(currpage=current_pg,qmin=qmin,qmax=qmax) 
    240272        except: 
     273            raise 
    241274            wx.PostEvent(self.parent, StatusEvent(status="Fitting error: %s" % sys.exc_value)) 
    242275             
     
    319352                try: 
    320353                    self.fitter.set_model(Model(model), self.id, pars)  
    321                     self.fitter.set_data(data,self.id,qmin,qmax) 
     354                    #print "fitting: data .x",data.x 
     355                    #print "fitting: data .y",data.y 
     356                    #print "fitting: data .dy",data.dy 
     357                    self.fitter.set_data(Data(sans_data=data),self.id,qmin,qmax) 
    322358                 
    323359                    result=self.fitter.fit() 
     
    325361                    
    326362                except: 
     363                    raise 
    327364                    wx.PostEvent(self.parent, StatusEvent(status="Single Fit error: %s" % sys.exc_value)) 
    328365                    return 
     
    364401                            return 
    365402                    self.fitter.set_model(Model(model), self.id, pars)  
    366                     self.fitter.set_data(data,self.id,qmin,qmax) 
     403                    self.fitter.set_data(Data(sans_data=data),self.id,qmin,qmax) 
    367404                 
    368405                    self.id += 1  
     
    415452            model.name="M"+str(self.index_model) 
    416453            self.index_model += 1   
    417             #self.page_finder[current_pg].set_theory("Fitness") 
     454             
    418455            self.page_finder[current_pg].set_model(model,M_name) 
    419456            self.plot_helper(currpage= current_pg,qmin= None,qmax= None) 
     
    448485            if data!=None: 
    449486                theory = Theory1D(x=[], y=[]) 
    450                 theory.name = model.name 
     487                theory.name = "Model" 
    451488                theory.group_id = data.group_id 
    452489               
     
    455492                theory.xaxis(x_name, x_units) 
    456493                theory.yaxis(y_name, y_units) 
    457                
     494                #print"fitting : redraw data.x",data.x 
     495                #print"fitting : redraw data.y",data.y 
     496                #print"fitting : redraw data.dy",data.dy 
    458497                if qmin == None : 
    459498                   qmin = min(data.x) 
     
    489528                        skipping point x %g %s" %(qmax, sys.exc_value))) 
    490529                try: 
    491                     from sans.guicomm.events import NewPlotEvent 
     530                    #print "fitting redraw for plot thoery .x",theory.x 
     531                    #print "fitting redraw for plot thoery .y",theory.y 
     532                    #print "fitting redraw for plot thoery .dy",theory.dy 
     533                    #rom sans.guicomm.events import NewPlotEvent 
    492534                    wx.PostEvent(self.parent, NewPlotEvent(plot=theory, title="Analytical model")) 
    493535                except: 
     536                    raise 
    494537                    print "SimView.complete1D: could not import sans.guicomm.events" 
    495538             
     
    520563            
    521564            new_plot = Theory1D(x, y) 
    522             new_plot.name = model.name 
     565            new_plot.name = "Model" 
    523566            new_plot.xaxis("\\rm{Q}", 'A^{-1}') 
    524567            new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
Note: See TracChangeset for help on using the changeset viewer.