Changeset 948add7 in sasview for sansview/perspectives/fitting/fitting.py
- Timestamp:
- Sep 30, 2008 2:38:58 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:
- 8e81af0
- Parents:
- 8bbab51
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitting.py
r00561739 r948add7 158 158 wx.PostEvent(self.parent, StatusEvent(status="Fitting error: \ 159 159 data already Selected ")) 160 160 def schedule_for_fit(self,value=0,fitproblem =None): 161 """ 162 163 """ 164 if fitproblem !=None: 165 fitproblem.schedule_tofit(value) 166 else: 167 current_pg=self.fit_panel.get_current_page() 168 for page, val in self.page_finder.iteritems(): 169 if page ==current_pg : 170 val.schedule_tofit(value) 171 break 172 161 173 162 174 def get_page_finder(self): … … 199 211 200 212 201 def _single_fit_completed(self,result,pars,c urrent_pg,qmin,qmax):213 def _single_fit_completed(self,result,pars,cpage,qmin,qmax): 202 214 """ 203 215 Display fit result on one page of the notebook. … … 211 223 try: 212 224 for page, value in self.page_finder.iteritems(): 213 if page== current_pg:225 if page==cpage : 214 226 data = value.get_data() 215 227 list = value.get_model() … … 229 241 # print "fitting result : stderr",result.stderr 230 242 231 c urrent_pg.onsetValues(result.fitness, result.pvec,result.stderr)232 self.plot_helper(currpage=c urrent_pg,qmin=qmin,qmax=qmax)243 cpage.onsetValues(result.fitness, result.pvec,result.stderr) 244 self.plot_helper(currpage=cpage,qmin=qmin,qmax=qmax) 233 245 except: 234 246 raise … … 245 257 try: 246 258 for page, value in self.page_finder.iteritems(): 247 if value.get_scheduled()== 'True':259 if value.get_scheduled()==1: 248 260 data = value.get_data() 249 261 list = value.get_model() … … 276 288 277 289 """ 290 #print "in single fitting" 278 291 #set an engine to perform fit 279 292 from sans.fit.Fitting import Fit … … 283 296 id=0 284 297 self.id = id 298 page_fitted=None 299 fit_problem=None 285 300 #Get information (model , data) related to the page on 286 301 #with the fit will be perform 287 302 current_pg=self.fit_panel.get_current_page() 303 simul_pg=self.fit_panel.get_page(0) 304 288 305 for page, value in self.page_finder.iteritems(): 289 if page ==current_pg:306 if value.get_scheduled() ==1 : 290 307 data = value.get_data() 291 308 list=value.get_model() 292 309 model=list[0] 293 294 310 #Create list of parameters for fitting used 295 311 pars=[] 296 312 templist=[] 297 313 try: 298 templist=current_pg.get_param_list() 314 #templist=current_pg.get_param_list() 315 templist=page.get_param_list() 316 for element in templist: 317 pars.append(str(element[0].GetLabelText())) 318 pars.sort() 319 #Do the single fit 320 self.fitter.set_model(Model(model), self.id, pars) 321 self.fitter.set_data(Data(sans_data=data),self.id,qmin,qmax) 322 self.fitter.select_problem_for_fit(Uid=self.id,value=value.get_scheduled()) 323 page_fitted=page 324 self.id+=1 325 self.schedule_for_fit( 0,value) 299 326 except: 300 327 wx.PostEvent(self.parent, StatusEvent(status="Fitting error: %s" % sys.exc_value)) 301 328 return 302 303 for element in templist:304 try:305 pars.append(str(element[0].GetLabelText()))306 except:307 wx.PostEvent(self.parent, StatusEvent(status="Fitting error: %s" % sys.exc_value))308 return309 329 # make sure to keep an alphabetic order 310 #of parameter names in the list 311 pars.sort() 312 #Do the single fit 313 try: 314 self.fitter.set_model(Model(model), self.id, pars) 315 #print "fitting: data .x",data.x 316 #print "fitting: data .y",data.y 317 #print "fitting: data .dy",data.dy 318 self.fitter.set_data(Data(sans_data=data),self.id,qmin,qmax) 319 320 result=self.fitter.fit() 321 self._single_fit_completed(result,pars,current_pg,qmin,qmax) 322 323 except: 324 raise 325 wx.PostEvent(self.parent, StatusEvent(status="Single Fit error: %s" % sys.exc_value)) 326 return 330 #of parameter names in the list 331 try: 332 result=self.fitter.fit() 333 #self._single_fit_completed(result,pars,current_pg,qmin,qmax) 334 print "single_fit: result",result.fitness,result.pvec,result.stderr 335 #self._single_fit_completed(result,pars,page,qmin,qmax) 336 self._single_fit_completed(result,pars,page_fitted,qmin,qmax) 337 except: 338 wx.PostEvent(self.parent, StatusEvent(status="Single Fit error: %s" % sys.exc_value)) 339 return 327 340 328 341 def _on_simul_fit(self, id=None,qmin=None,qmax=None): … … 346 359 for page, value in self.page_finder.iteritems(): 347 360 try: 348 if value.get_scheduled()== 'True':361 if value.get_scheduled()==1: 349 362 data = value.get_data() 350 363 list = value.get_model() … … 363 376 new_model=Model(model) 364 377 param_name,param_value=value.get_model_param() 365 print "fitting ",param_name 366 new_model.set( param_name =str(param_value)) 367 #self.fitter.set_model(new_model, self.id, pars) 378 print "fitting ",param_name,value.get_model_param() 379 if param_value !=None: 380 new_model.set( param_name =str(param_value)) 381 self.fitter.set_model(new_model, self.id, pars) 368 382 self.fitter.set_data(Data(sans_data=data),self.id,qmin,qmax) 369 383 self.fitter.select_problem_for_fit(Uid=self.id,value=value.get_scheduled()) 370 384 self.id += 1 371 385 except:
Note: See TracChangeset
for help on using the changeset viewer.