Changeset cf3b781 in sasview for park_integration/ScipyFitting.py
- Timestamp:
- Jul 7, 2008 6:37:27 PM (16 years ago)
- 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
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
park_integration/ScipyFitting.py
r4408fb0 rcf3b781 68 68 listdata = fitproblem.get_data() 69 69 70 parameters = self.set_param(model, pars)70 parameters = self.set_param(model,model.name,pars) 71 71 72 72 # Do the fit with data set (contains one or more data) and one model 73 73 xtemp,ytemp,dytemp=self._concatenateData( listdata) 74 print "dytemp",dytemp 74 75 if qmin==None: 75 76 qmin= min(xtemp) … … 123 124 return self.fitArrangeList[Uid] 124 125 125 def set_param(self,model, pars):126 def set_param(self,model,name, pars): 126 127 """ Recieve a dictionary of parameter and save it """ 127 128 parameters=[] … … 129 130 raise ValueError, "Cannot set parameters for empty model" 130 131 else: 131 #for key ,value in pars:132 model.name=name 132 133 for key, value in pars.iteritems(): 133 134 param = Parameter(model, key, value) … … 164 165 #print mylist 165 166 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() 167 180 168 181 … … 214 227 if x[j]>qmin and x[j]<qmax: 215 228 residuals.append( ( y[j] - model.runXY(x[j]) ) / err_y[j] ) 216 229 217 230 return residuals 218 231 … … 240 253 return chisqr, out, cov_x 241 254 242 243 if __name__ == "__main__":244 load= Load()245 246 # test fit one data set one model247 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 LineModel254 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, cov261 print "this model list of param",model.getParamList()262 # test fit with 2 data and one model263 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, cov282
Note: See TracChangeset
for help on using the changeset viewer.