- Timestamp:
- Jan 6, 2009 5:17:06 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:
- b6b1669
- Parents:
- 78ed1ad
- Location:
- sansview/perspectives/fitting
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
sansview/perspectives/fitting/fitpanel.py
r6bcdad1 r86c1832 105 105 def _help_add_model_page(self,model,description,page_title): 106 106 from modelpage import ModelPage 107 panel = ModelPage(self.nb,model, -1)107 panel = ModelPage(self.nb,model,page_title, -1) 108 108 panel.set_manager(self.manager) 109 109 panel.set_owner(self.event_owner) … … 122 122 @param page_title: the name of the page 123 123 """ 124 print "page_title fitpanel", page_title 124 125 if self.draw_model_name ==None: 125 126 -
sansview/perspectives/fitting/fitting.py
rbe404bc r86c1832 578 578 Plot a theory from a model selected from the menu 579 579 """ 580 name = evt.model.__name__ 581 if hasattr(evt.model, "name"): 582 name = evt.model.name 580 583 model=evt.model() 581 584 #name="Model View" … … 584 587 #self.fit_panel.add_model_page(model,description,name) 585 588 586 self.draw_model(model ,self.enable_model2D)587 588 def draw_model(self,model, description=None,enable1D=True, enable2D=False,qmin=None, qmax=None,qstep=None):589 self.draw_model(model=model,name=name,enable2D=self.enable_model2D) 590 591 def draw_model(self,model,name ,description=None,enable1D=True, enable2D=False,qmin=None, qmax=None,qstep=None): 589 592 """ 590 593 draw model with default data value 591 594 """ 592 self.fit_panel.add_model_page(model,model.description,model.name) 593 self._draw_model2D(model,model.description, enable2D,qmin,qmax,qstep) 594 self._draw_model1D(model,model.description, enable1D,qmin,qmax, qstep) 595 596 self.fit_panel.add_model_page(model=model,description=model.description,page_title=name) 597 self._draw_model2D(model,name,model.description, enable2D,qmin,qmax,qstep) 598 self._draw_model1D(model,name,model.description, enable1D,qmin,qmax, qstep) 595 599 596 def _draw_model1D(self,model, description=None, enable1D=True,qmin=None,qmax=None, qstep=None):600 def _draw_model1D(self,model,name,description=None, enable1D=True,qmin=None,qmax=None, qstep=None): 597 601 598 602 if enable1D: … … 604 608 qstep =0.001 605 609 606 print "x in data1D",qmin,qmax610 #print "x in data1D",qmin,qmax 607 611 x = numpy.arange(qmin, qmax, qstep) 608 612 xlen= len(x) … … 614 618 try: 615 619 new_plot = Theory1D(x, y) 616 #new_plot.name = model.name 617 new_plot.name = model.name 620 new_plot.name = name 618 621 new_plot.xaxis("\\rm{Q}", 'A^{-1}') 619 622 new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") … … 627 630 for i in range(xlen): 628 631 y[i] = model.run(x[i]) 629 632 630 633 try: 631 634 new_plot = Theory1D(x, y) 632 new_plot.name = model.name635 new_plot.name = name 633 636 new_plot.xaxis("\\rm{Q}", 'A^{-1}') 634 637 new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") … … 636 639 new_plot.group_id ="Model" 637 640 wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, 638 title="Analytical model 1D %s"%str(model.name)))641 title="Analytical model 1D " )) 639 642 640 643 except: 641 644 raise 642 def _draw_model2D(self,model, description=None, enable2D=False,qmin=None,qmax=None, qstep=None):645 def _draw_model2D(self,model,name,description=None, enable2D=False,qmin=None,qmax=None, qstep=None): 643 646 if qmin==None: 644 647 qmin= -0.05 … … 653 656 data=numpy.zeros([len(x),len(y)]) 654 657 if enable2D: 655 658 #print "drawing model 2D params",qmin, qmax,model.getParamList() 656 659 for i_x in range(int(len(x))): 657 660 for i_y in range(len(y)): … … 662 665 wx.PostEvent(self.parent, StatusEvent(status="\ 663 666 Error computing %s at [%g,%g] :%s" %(model.name,x[i_x],y[i_y], sys.exc_value))) 664 667 #print "data2 draw" ,data 665 668 theory= Data2D(data) 666 theory.name= model.name669 theory.name= name 667 670 theory.group_id ="Model" 668 671 theory.id ="Model" … … 672 675 theory.ymax= qmax 673 676 wx.PostEvent(self.parent, NewPlotEvent(plot=theory, 674 title="Analytical model 2D %s" %str( model.name)))677 title="Analytical model 2D %s" %str(name))) 675 678 676 677 678 def H_draw_model2D(self,model,description=None, enable2D=False,qmin=None,qmax=None, qstep=None): 679 if qmin==None: 680 qmin= -0.05 681 if qmax==None: 682 qmax= 0.05 683 if qstep ==None: 684 qstep =0.001 685 x = numpy.arange(qmin,qmax, qstep) 686 y = numpy.arange(qmin,qmax,qstep) 687 lx = len(self.x) 688 if enable2D: 689 data=numpy.zeros([len(x),len(y)]) 690 for i in range(len(x)): 691 for j in range(len(x)): 692 try: 693 data[i][j]=model.runXY([j,i]) 694 except: 695 wx.PostEvent(self.parent, StatusEvent(status="\ 696 Model 2D cannot be plot %g %s %s" %(data[i][j],model.name, sys.exc_value))) 697 theory = Data2D(data) 698 theory.group_id =str(model.name)+" 2D" 699 theory.xmin= qmin 700 theory.xmax= qmax 701 theory.ymin= qmin 702 theory.ymax= qmax 703 wx.PostEvent(self.parent, NewPlotEvent(plot=theory, title="Analytical model 2D")) 704 705 706 def on_draw_model2D(self, event): 707 """ 708 plot view model 2D 709 """ 710 711 if self.enable_model2D== True: 712 self.enable_model2D=False 713 else: 714 self.enable_model2D=True 715 print "self.enable_model2D",self.enable_model2D 679 716 680 if __name__ == "__main__": 717 681 i = Plugin() -
sansview/perspectives/fitting/modelpage.py
r2e10b70 r86c1832 39 39 40 40 41 def __init__(self, parent,model, *args, **kwargs):41 def __init__(self, parent,model,name, *args, **kwargs): 42 42 wx.ScrolledWindow.__init__(self, parent, *args, **kwargs) 43 43 """ … … 69 69 self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 70 70 self.btClose.SetToolTipString("Close page.") 71 ix = 071 ix = 1 72 72 iy = 1 73 73 self.sizer4.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ … … 111 111 ix += 1 112 112 self.sizer3.Add(self.modelbox,(iy,ix),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0) 113 ix = 0 114 iy += 1 115 self.model_view= wx.CheckBox(self, -1, "View in 2D", (10, 10)) 116 wx.EVT_CHECKBOX(self, self.model_view.GetId(), self.onModel2D) 113 #ix = 0 114 #iy += 1 115 ix += 1 116 id = wx.NewId() 117 self.model_view =wx.Button(self,id,'View 2D') 118 self.model_view.Bind(wx.EVT_BUTTON, self.onModel2D,id=id) 119 self.model_view.SetToolTipString("View model in 2D") 117 120 self.sizer3.Add(self.model_view,(iy,ix),(1,1),\ 118 121 wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) … … 129 132 raise 130 133 # preview selected model name 131 self.prevmodel_name= model.__class__.__name__134 self.prevmodel_name=name 132 135 self.modelbox.SetValue(self.prevmodel_name) 133 136 # flag to check if the user has selected a new model in the combox box … … 135 138 #dictionary of model name and model class 136 139 self.model_list_box={} 140 141 #enable model 2D draw 142 self.enable2D= False 137 143 # Data1D to make a deep comparison between 2 Data1D for checking data 138 144 #change … … 165 171 166 172 def onModel2D(self, event): 167 168 if self.model_view.GetValue()==True: 169 print "2D model" 170 self.manager.draw_model(self.model, 171 description=None, enable2D=True,qmin=None, qmax=None) 173 """ 174 call manager to plot model in 2D 175 """ 176 self.enable2D=True 177 print "modelpage name", self.prevmodel_name 178 self.manager.draw_model(model=self.model,name=self.prevmodel_name, 179 description=None, 180 enable2D=self.enable2D, 181 qmin=float(self.xmin.GetValue()), 182 qmax=float(self.xmax.GetValue())) 172 183 def populate_box(self, dict): 173 184 """ … … 180 191 for item in self.model_list_box.itervalues(): 181 192 name = item.__name__ 182 model=item() 183 if hasattr(model, "name"): 184 name = model.name 193 if hasattr(item, "name"): 194 name = item.name 185 195 list_name.append(name) 186 196 list_name.sort() … … 190 200 wx.EVT_COMBOBOX(self.modelbox,-1, self._on_select_model) 191 201 return 0 202 203 192 204 193 def set_page(self, model,description=None):194 #print " modelpage: set_page was called",model195 self.model=model196 name = self.model.__class__.__name__197 if hasattr(self.model, "name"):198 name = self.model.name199 200 201 self.modelbox.SetValue(name)202 self.set_panel(self.model)203 self.manager.draw_model(self.model)204 205 205 def _on_select_model(self,event): 206 206 """ … … 211 211 for item in self.model_list_box.itervalues(): 212 212 name = item.__name__ 213 items=item() 214 if hasattr(items, "name"): 215 name = items.name 216 #print "fitpage: _on_select_model model name",name ,event.GetString() 213 if hasattr(item, "name"): 214 name = item.name 217 215 if name ==event.GetString(): 218 model=item s216 model=item() 219 217 #print "fitpage: _on_select_model model name",name ,event.GetString() 220 218 self.model= model 221 219 self.set_panel(model) 222 self.manager.draw_model(model) 220 print "name in model page", name,event.GetString() 221 self.name= name 222 self.manager.draw_model(model, name) 223 223 224 def set_model_name(self,name):225 """226 set model name. set also self.model_hasChanged to true is the model227 type has changed or false if it didn't228 @param name: model 's name229 """230 self.model_hasChanged=False231 if (name != self.prevmodel_name):232 self.model_hasChanged=True233 234 self.prevmodel_name=self.modelbox.GetValue()235 224 236 225 … … 377 366 wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\ 378 367 "Model Drawing Error:wrong value entered : %s"% sys.exc_value)) 368 369 print self.enable2D 379 370 self.manager.draw_model(self.model,qmin=float(self.xmin.GetValue()), 380 371 qmax=float(self.xmax.GetValue()), 381 enable2D=self. model_view.GetValue())372 enable2D=self.enable2D) 382 373 #self.manager.draw_model(self,model,description=None, 383 374 # enable1D=True,qmin=None,qmax=None, qstep=None)
Note: See TracChangeset
for help on using the changeset viewer.