Changeset 86c1832 in sasview


Ignore:
Timestamp:
Jan 6, 2009 5:17:06 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:
b6b1669
Parents:
78ed1ad
Message:

working on model plot

Location:
sansview/perspectives/fitting
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • sansview/perspectives/fitting/fitpanel.py

    r6bcdad1 r86c1832  
    105105    def _help_add_model_page(self,model,description,page_title): 
    106106        from modelpage import ModelPage 
    107         panel = ModelPage(self.nb,model, -1) 
     107        panel = ModelPage(self.nb,model,page_title, -1) 
    108108        panel.set_manager(self.manager) 
    109109        panel.set_owner(self.event_owner) 
     
    122122            @param page_title: the name of the page 
    123123        """ 
     124        print "page_title fitpanel", page_title 
    124125        if  self.draw_model_name ==None: 
    125126             
  • sansview/perspectives/fitting/fitting.py

    rbe404bc r86c1832  
    578578            Plot a theory from a model selected from the menu 
    579579        """ 
     580        name = evt.model.__name__ 
     581        if hasattr(evt.model, "name"): 
     582            name = evt.model.name 
    580583        model=evt.model() 
    581584        #name="Model View" 
     
    584587        #self.fit_panel.add_model_page(model,description,name)   
    585588         
    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): 
    589592        """ 
    590593             draw model with default data value 
    591594        """ 
    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) 
    595599        
    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): 
    597601         
    598602        if enable1D: 
     
    604608                qstep =0.001 
    605609            
    606             print "x in data1D",qmin,qmax 
     610            #print "x in data1D",qmin,qmax 
    607611            x = numpy.arange(qmin, qmax, qstep)         
    608612            xlen= len(x) 
     
    614618                try: 
    615619                    new_plot = Theory1D(x, y) 
    616                     #new_plot.name = model.name 
    617                     new_plot.name = model.name 
     620                    new_plot.name = name 
    618621                    new_plot.xaxis("\\rm{Q}", 'A^{-1}') 
    619622                    new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
     
    627630                for i in range(xlen): 
    628631                    y[i] = model.run(x[i]) 
    629          
     632                     
    630633                try: 
    631634                    new_plot = Theory1D(x, y) 
    632                     new_plot.name = model.name 
     635                    new_plot.name = name 
    633636                    new_plot.xaxis("\\rm{Q}", 'A^{-1}') 
    634637                    new_plot.yaxis("\\rm{Intensity} ","cm^{-1}") 
     
    636639                    new_plot.group_id ="Model" 
    637640                    wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, 
    638                                      title="Analytical model 1D %s"%str(model.name) )) 
     641                                     title="Analytical model 1D " )) 
    639642                     
    640643                except: 
    641644                    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): 
    643646        if qmin==None: 
    644647            qmin= -0.05 
     
    653656        data=numpy.zeros([len(x),len(y)]) 
    654657        if enable2D: 
    655          
     658            #print "drawing model 2D params",qmin, qmax,model.getParamList() 
    656659            for i_x in range(int(len(x))): 
    657660                for i_y in range(len(y)): 
     
    662665                         wx.PostEvent(self.parent, StatusEvent(status="\ 
    663666                        Error computing %s at [%g,%g] :%s" %(model.name,x[i_x],y[i_y], sys.exc_value))) 
    664                         
     667            #print "data2 draw" ,data           
    665668            theory= Data2D(data) 
    666             theory.name= model.name 
     669            theory.name= name 
    667670            theory.group_id ="Model" 
    668671            theory.id ="Model" 
     
    672675            theory.ymax= qmax 
    673676            wx.PostEvent(self.parent, NewPlotEvent(plot=theory, 
    674                              title="Analytical model 2D %s" %str(model.name))) 
     677                             title="Analytical model 2D %s" %str(name))) 
    675678              
    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   
    716680if __name__ == "__main__": 
    717681    i = Plugin() 
  • sansview/perspectives/fitting/modelpage.py

    r2e10b70 r86c1832  
    3939     
    4040     
    41     def __init__(self, parent,model, *args, **kwargs): 
     41    def __init__(self, parent,model,name, *args, **kwargs): 
    4242        wx.ScrolledWindow.__init__(self, parent, *args, **kwargs) 
    4343        """  
     
    6969        self.btClose.Bind(wx.EVT_BUTTON, self.onClose,id=id) 
    7070        self.btClose.SetToolTipString("Close page.") 
    71         ix = 0 
     71        ix = 1 
    7272        iy = 1  
    7373        self.sizer4.Add(wx.StaticText(self, -1, 'Min'),(iy, ix),(1,1),\ 
     
    111111        ix += 1 
    112112        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") 
    117120        self.sizer3.Add(self.model_view,(iy,ix),(1,1),\ 
    118121                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15) 
     
    129132            raise 
    130133        # preview selected model name 
    131         self.prevmodel_name=model.__class__.__name__ 
     134        self.prevmodel_name=name 
    132135        self.modelbox.SetValue(self.prevmodel_name) 
    133136        # flag to check if the user has selected a new model in the combox box 
     
    135138        #dictionary of model name and model class 
    136139        self.model_list_box={} 
     140        
     141        #enable model 2D draw 
     142        self.enable2D= False 
    137143        # Data1D to make a deep comparison between 2 Data1D for checking data 
    138144        #change 
     
    165171         
    166172    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())) 
    172183    def populate_box(self, dict): 
    173184        """ 
     
    180191        for item in  self.model_list_box.itervalues(): 
    181192            name = item.__name__ 
    182             model=item() 
    183             if hasattr(model, "name"): 
    184                 name = model.name 
     193            if hasattr(item, "name"): 
     194                name = item.name 
    185195            list_name.append(name) 
    186196        list_name.sort()    
     
    190200        wx.EVT_COMBOBOX(self.modelbox,-1, self._on_select_model)  
    191201        return 0 
     202     
     203   
    192204    
    193     def set_page(self, model,description=None): 
    194         #print " modelpage: set_page was called",model 
    195         self.model=model 
    196         name = self.model.__class__.__name__ 
    197         if hasattr(self.model, "name"): 
    198             name = self.model.name 
    199          
    200             
    201         self.modelbox.SetValue(name) 
    202         self.set_panel(self.model) 
    203         self.manager.draw_model(self.model) 
    204          
    205205    def _on_select_model(self,event): 
    206206        """ 
     
    211211        for item in self.model_list_box.itervalues(): 
    212212            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 
    217215            if name ==event.GetString(): 
    218                 model=items 
     216                model=item() 
    219217                #print "fitpage: _on_select_model model name",name ,event.GetString() 
    220218                self.model= model 
    221219                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) 
    223223                 
    224     def set_model_name(self,name): 
    225         """  
    226             set model name. set also self.model_hasChanged to true is the model  
    227             type has changed or false if it didn't 
    228             @param name: model 's name 
    229         """ 
    230         self.model_hasChanged=False 
    231         if (name != self.prevmodel_name): 
    232             self.model_hasChanged=True 
    233         
    234         self.prevmodel_name=self.modelbox.GetValue() 
    235224        
    236225             
     
    377366                     wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\ 
    378367                            "Model Drawing  Error:wrong value entered : %s"% sys.exc_value)) 
     368             
     369            print self.enable2D 
    379370            self.manager.draw_model(self.model,qmin=float(self.xmin.GetValue()), 
    380371                                    qmax=float(self.xmax.GetValue()), 
    381                                     enable2D=self.model_view.GetValue()) 
     372                                    enable2D=self.enable2D) 
    382373            #self.manager.draw_model(self,model,description=None, 
    383374            # enable1D=True,qmin=None,qmax=None, qstep=None) 
Note: See TracChangeset for help on using the changeset viewer.