Changeset 08b9c6c8 in sasview
- Timestamp:
- Dec 20, 2008 2:31:18 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:
- 988130c6
- Parents:
- b319def8
- Location:
- sansview/perspectives/fitting
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitpage1D.py
rdc317d1 r08b9c6c8 4 4 import numpy,math 5 5 import copy 6 6 import sans.models.dispersion_models 7 7 from sans.guicomm.events import StatusEvent 8 8 (ModelEventbox, EVT_MODEL_BOX) = wx.lib.newevent.NewEvent() … … 51 51 #panel interface 52 52 self.vbox = wx.BoxSizer(wx.VERTICAL) 53 self.sizer6 = wx.GridBagSizer(5,5) 53 54 self.sizer5 = wx.GridBagSizer(5,5) 54 55 self.sizer4 = wx.GridBagSizer(5,5) … … 59 60 60 61 self.DataSource =wx.StaticText(self, -1,str(data.name)) 61 62 self.smearer_box = wx.ComboBox(self, -1) 63 wx.EVT_COMBOBOX( self.smearer_box,-1, self.onSmear ) 64 self.smeares= sans.models.dispersion_models.models 65 i=0 66 self.smearer_box.SetValue(str(None)) 67 self.smearer_box.Insert(str(None),i) 68 for k,v in self.smeares.iteritems(): 69 self.smearer_box.Insert(str(v),i) 70 i+=1 62 71 self.modelbox = wx.ComboBox(self, -1) 63 72 id = wx.NewId() … … 71 80 self.vbox.Add(self.static_line_1, 0, wx.EXPAND, 0) 72 81 self.vbox.Add(self.sizer5) 82 self.vbox.Add(self.sizer6) 73 83 self.vbox.Add(self.sizer4) 74 84 self.vbox.Add(self.sizer1) … … 86 96 ix += 1 87 97 self.sizer3.Add((20,20),(iy,ix),(1,1),wx.RIGHT|wx.EXPAND|wx.ADJUST_MINSIZE,0) 98 ix = 0 99 iy += 1 100 self.sizer3.Add(wx.StaticText(self,-1,'Averaging (Smearer Type)'),(iy,ix),(1,1)\ 101 , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 102 ix += 1 103 self.sizer3.Add(self.smearer_box,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 104 88 105 ix = 0 89 106 iy += 1 … … 133 150 ix = 0 134 151 iy = 1 135 self.smear= wx.CheckBox(self, -1, "Fit with Smear", (10, 10)) 136 wx.EVT_CHECKBOX(self, self.smear.GetId(), self.onSmear) 137 self.sizer1.Add(self.smear,(iy,ix),(1,1),\ 138 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 139 iy+=1 152 140 153 self.text1_1 = wx.StaticText(self, -1, 'Chi2/dof', style=wx.ALIGN_LEFT) 141 154 #self.sizer1.Add(self.text1_1,1) … … 160 173 # contains link between model ,all its parameters, and panel organization 161 174 self.parameters=[] 175 self.fixed_param=[] 162 176 #contains link between a model and selected parameters to fit 163 177 self.param_toFit=[] … … 371 385 self.sizer2.Clear(True) 372 386 self.sizer5.Clear(True) 387 self.sizer6.Clear(True) 373 388 self.parameters = [] 374 389 self.param_toFit=[] … … 378 393 keys.sort() 379 394 disp_list=self.model.getDispParamList() 395 fixed=self.model.fixed 380 396 ip=0 381 397 iq=1 398 399 ik=0 400 im=1 382 401 if len(disp_list)>0: 383 402 disp = wx.StaticText(self, -1, 'Dispersion') … … 418 437 self.sizer2.Add( cb,( iy, ix),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 419 438 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 420 439 421 440 ix += 1 422 441 value= self.model.getParam(item) … … 426 445 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 427 446 self.sizer2.Add(ctl1, (iy,ix),(1,1), wx.EXPAND) 447 428 448 ix += 1 429 449 text2=wx.StaticText(self, -1, '+/-') … … 443 463 self.sizer2.Add(units, (iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 444 464 else: 445 ip = 0 446 iq += 1 447 cb = wx.CheckBox(self, -1, item, (10, 10)) 448 cb.SetValue(False) 449 self.sizer5.Add( cb,( iq, ip),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 450 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 451 452 ip += 1 453 value= self.model.getParam(item) 454 ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 455 ctl1.SetValue(str (format_number(value))) 456 ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 457 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 458 self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 459 465 if not item in fixed: 466 ip = 0 467 iq += 1 468 cb = wx.CheckBox(self, -1, item, (10, 10)) 469 cb.SetValue(False) 470 self.sizer5.Add( cb,( iq, ip),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 471 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param) 472 473 ip += 1 474 value= self.model.getParam(item) 475 ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 476 ctl1.SetValue(str (format_number(value))) 477 ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 478 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 479 self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 480 else: 481 ik = 0 482 text = wx.StaticText(self, -1, item, style=wx.ALIGN_LEFT) 483 self.sizer6.Add(text,( im, ik),(1,1), wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 484 485 ik += 1 486 value= self.model.getParam(item) 487 Tctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER) 488 Tctl.SetValue(str (format_number(value))) 489 Tctl.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter) 490 Tctl.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter) 491 self.sizer6.Add(Tctl, (im,ik),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 492 self.fixed_param.append([item, Tctl]) 493 im += 1 460 494 #save data 461 495 self.parameters.append([cb,ctl1,text2,ctl2]) … … 512 546 wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\ 513 547 "Drawing Error:wrong value entered : %s"% sys.exc_value)) 514 548 for item in self.fixed_param: 549 try: 550 551 name=str(item[0]) 552 value= float(item[1].GetValue()) 553 self.model.setParam(name,value) 554 except: 555 raise 556 wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\ 557 "Drawing Error:wrong value entered : %s"% sys.exc_value)) 515 558 self.manager.redraw_model(float(self.xmin.GetValue())\ 516 559 ,float(self.xmax.GetValue())) … … 560 603 else: 561 604 self.cb1.SetValue(False) 562 605 563 606 if not (len(self.param_toFit ) >0): 564 607 self.xmin.Disable() … … 618 661 619 662 def onSmear(self, event): 620 if self.smear.GetValue()==True: 663 if event.GetString()=="None": 664 self.manager.set_smearer(None) 665 666 667 if event.GetString()=="GaussianModel": 621 668 from DataLoader.qsmearing import smear_selection 622 669 smear =smear_selection( self.data ) 623 self.data.smearer= smear 624 #print "on smearing", self.data.smearer._compute_matrix() 625 else: 626 self.data.smearer=None 627 670 self.manager.set_smearer(smear) 671 print "on smearing" 672 -
sansview/perspectives/fitting/fitproblem.py
r6bcdad1 r08b9c6c8 22 22 self.list_param=[] 23 23 self.name_per_page=None 24 self.smearer= None 25 26 def set_smearer(self, smearer): 27 self.smearer= smearer 28 print "smeaerer in fitproblem",self.smearer 29 def get_smearer(self): 30 return self.smearer 31 24 32 def save_model_name(self, name): 25 33 self.name_per_page= name 34 35 26 36 def get_name(self): 27 37 return self.name_per_page 38 28 39 def set_model(self,model,name): 29 40 """ -
sansview/perspectives/fitting/fitting.py
r6bcdad1 r08b9c6c8 319 319 list=value.get_model() 320 320 model=list[0] 321 smearer= value.get_smearer() 321 322 #Create list of parameters for fitting used 322 323 pars=[] … … 331 332 self.fitter.set_model(Model(model), self.id, pars) 332 333 333 self.fitter.set_data(metadata,self.id, qmin,qmax)334 self.fitter.set_data(metadata,self.id,smearer, qmin,qmax) 334 335 self.fitter.select_problem_for_fit(Uid=self.id,value=value.get_scheduled()) 335 336 page_fitted=page … … 461 462 sim_page.add_model(self.page_finder) 462 463 463 464 def set_smearer(self,smearer): 465 current_pg=self.fit_panel.get_current_page() 466 self.page_finder[current_pg].set_smearer(smearer) 467 464 468 def redraw_model(self,qmin= None,qmax= None): 465 469 """ … … 574 578 Plot a theory from a model selected from the menu 575 579 """ 576 577 580 model=evt.model() 578 581 #name="Model View" 579 582 #print "mon menu",model.name 580 583 description=model.description 581 #self.fit_panel.add_model_page(model,description,name) 582 584 #self.fit_panel.add_model_page(model,description,name) 583 585 self.draw_model(model,self.enable_model2D) 584 586
Note: See TracChangeset
for help on using the changeset viewer.