Changeset cf3b781 in sasview for park_integration/ScipyFitting.py


Ignore:
Timestamp:
Jul 7, 2008 6:37:27 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:
1b0b3ca
Parents:
672c44da
Message:

need more tests.but usecase 3 implemented

File:
1 edited

Legend:

Unmodified
Added
Removed
  • park_integration/ScipyFitting.py

    r4408fb0 rcf3b781  
    6868        listdata = fitproblem.get_data() 
    6969         
    70         parameters = self.set_param(model,pars) 
     70        parameters = self.set_param(model,model.name,pars) 
    7171        
    7272        # Do the fit with  data set (contains one or more data) and one model  
    7373        xtemp,ytemp,dytemp=self._concatenateData( listdata) 
     74        print "dytemp",dytemp 
    7475        if qmin==None: 
    7576            qmin= min(xtemp) 
     
    123124        return self.fitArrangeList[Uid] 
    124125     
    125     def set_param(self,model, pars): 
     126    def set_param(self,model,name, pars): 
    126127        """ Recieve a dictionary of parameter and save it """ 
    127128        parameters=[] 
     
    129130            raise ValueError, "Cannot set parameters for empty model" 
    130131        else: 
    131             #for key ,value in pars: 
     132            model.name=name 
    132133            for key, value in pars.iteritems(): 
    133134                param = Parameter(model, key, value) 
     
    164165        #print mylist 
    165166        return mylist 
    166      
     167    def remove_data(self,Uid,data=None): 
     168        """ remove one or all data""" 
     169        if data==None:# remove all element in data list 
     170            if self.fitArrangeList.has_key(Uid): 
     171                self.fitArrangeList[Uid].remove_datalist() 
     172        else: 
     173            if self.fitArrangeList.has_key(Uid): 
     174                self.fitArrangeList[Uid].remove_data(data) 
     175                 
     176    def remove_model(self,Uid): 
     177        """ remove model """ 
     178        if self.fitArrangeList.has_key(Uid): 
     179            self.fitArrangeList[Uid].remove_model() 
    167180                 
    168181 
     
    214227            if x[j]>qmin and x[j]<qmax: 
    215228                residuals.append( ( y[j] - model.runXY(x[j]) ) / err_y[j] ) 
    216         
     229             
    217230        return residuals 
    218231         
     
    240253    return chisqr, out, cov_x     
    241254 
    242        
    243 if __name__ == "__main__":  
    244     load= Load() 
    245      
    246     # test fit one data set one model 
    247     load.set_filename("testdata_line.txt") 
    248     load.set_values() 
    249     data1 = Data1D(x=[], y=[], dx=None,dy=None) 
    250     data1.name = "data1" 
    251     load.load_data(data1) 
    252     fitter =ScipyFit() 
    253     from sans.guitools.LineModel import LineModel 
    254     model  = LineModel() 
    255     fitter.set_model(model,1) 
    256     fitter.set_data(data1,1) 
    257      
    258     chisqr, out, cov=fitter.fit({'A':2,'B':1},None,None) 
    259     print "my list of param",fitter.createProblem() 
    260     print"fit only one data",chisqr, out, cov  
    261     print "this model list of param",model.getParamList() 
    262     # test fit with 2 data and one model 
    263     fitter =ScipyFit() 
    264     
    265     fitter.set_model(model,2 ) 
    266     load.set_filename("testdata1.txt") 
    267     load.set_values() 
    268     data2 = Data1D(x=[], y=[], dx=None,dy=None) 
    269     data2.name = "data2" 
    270      
    271     load.load_data(data2) 
    272     fitter.set_data(data2,2) 
    273      
    274     load.set_filename("testdata2.txt") 
    275     load.set_values() 
    276     data3 = Data1D(x=[], y=[], dx=None,dy=None) 
    277     data3.name = "data2" 
    278     load.load_data(data3) 
    279     fitter.set_data(data3,2) 
    280     chisqr, out, cov=fitter.fit({'A':2,'B':1},None,None) 
    281     print"fit two data",chisqr, out, cov  
    282      
Note: See TracChangeset for help on using the changeset viewer.