Ignore:
Timestamp:
Dec 1, 2008 5:09:36 PM (15 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:
a92d51b
Parents:
7a7bf55
Message:

sector averaging

File:
1 edited

Legend:

Unmodified
Added
Removed
  • guiframe/local_perspectives/plotting/DataPanel.py

    rce64735 rb06ef8c  
    1717from sans.guicomm.events import EVT_NEW_PLOT 
    1818from sans.guicomm.events import StatusEvent ,NewPlotEvent 
     19 
     20from binder import BindArtist 
     21#from SlicerParameters import SlicerEvent 
     22#(InternalEvent, EVT_INTERNAL)   = wx.lib.newevent.NewEvent() 
     23DEFAULT_QMAX = 0.05 
     24 
     25DEFAULT_QSTEP = 0.001 
     26DEFAULT_BEAM = 0.005 
     27 
     28import pylab 
    1929 
    2030class PanelMenu(wx.Menu): 
     
    344354        ## Plottables 
    345355        self.plots = {} 
    346         self.data = data2d 
     356        self.data2D= data2d 
     357        self.data = data2d.data 
    347358        ## Unique ID (from gui_manager) 
    348359        self.uid = None 
     
    350361        ## Action IDs for internal call-backs 
    351362        self.action_ids = {} 
    352          
     363        self.connect = BindArtist(self.subplot.figure) 
     364         
     365        # Beam stop 
     366        self.beamstop_radius = DEFAULT_BEAM 
     367        # Slicer 
     368         
     369        self.qmax = data2d.xmax 
     370        self.imax= data2d.ymax 
     371        self.qstep = DEFAULT_QSTEP 
     372        self.x = pylab.arange(-self.qmax, self.qmax+self.qstep*0.01, self.qstep) 
     373        self.y = pylab.arange(-self.imax, self.imax+self.qstep*0.01, self.qstep) 
     374 
     375        self.slicer_z = 5 
     376        self.slicer = None 
     377        #self.parent.Bind(EVT_INTERNAL, self._onEVT_INTERNAL) 
     378        self.axes_frozen = False 
    353379        ## Graph         
    354380        self.graph = Graph() 
     
    427453       
    428454        id = wx.NewId() 
     455        slicerpop.Append(id, '&Sector') 
     456        wx.EVT_MENU(self, id, self.onSector)  
     457         
     458       
     459         
     460        id = wx.NewId() 
     461        slicerpop.Append(id, '&Clear slicer') 
     462        wx.EVT_MENU(self, id,  self.onClearSlicer)  
     463         
     464        id = wx.NewId() 
     465        slicerpop.Append(id, '&Edit Parameters') 
     466        wx.EVT_MENU(self, id, self._onEditDetector)  
     467         
     468        slicerpop.AppendSeparator() 
     469         
     470        id = wx.NewId() 
     471        slicerpop.Append(id, '&Save image') 
     472        wx.EVT_MENU(self, id, self.onSaveImage)  
     473      
     474        id = wx.NewId() 
    429475        slicerpop.Append(id, '&Toggle Linear/Log scale') 
    430476        wx.EVT_MENU(self, id, self._onToggleScale)  
    431  
     477          
    432478        pos = event.GetPosition() 
    433479        pos = self.ScreenToClient(pos) 
    434480        self.PopupMenu(slicerpop, pos) 
    435      
     481    
     482    def _setSlicer(self, slicer): 
     483        # Clear current slicer 
     484        #printEVT("Plotter2D._setSlicer %s" % slicer) 
     485         
     486        if not self.slicer == None:   
     487            self.slicer.clear()             
     488             
     489        self.slicer_z += 1 
     490        self.slicer = slicer(self, self.subplot, zorder=self.slicer_z) 
     491        self.subplot.set_ylim(-self.qmax, self.qmax) 
     492        self.subplot.set_xlim(-self.qmax, self.qmax) 
     493        self.update() 
     494        self.slicer.update() 
     495         
     496         
     497    def get_corrected_data(self): 
     498        # Protect against empty data set 
     499        if self.data == None: 
     500            return None 
     501        import copy 
     502        output = copy.deepcopy(self.data) 
     503        return output 
     504    def freeze_axes(self): 
     505        self.axes_frozen = True 
     506         
     507    def thaw_axes(self): 
     508        self.axes_frozen = False 
     509         
     510    def onMouseMotion(self,event): 
     511        pass 
     512    def onWheel(self, event): 
     513        pass     
     514    def update(self, draw=True): 
     515        """ 
     516            Respond to changes in the model by recalculating the  
     517            profiles and resetting the widgets. 
     518        """ 
     519        #self.slicer.update() 
     520        self.draw() 
     521             
     522   
     523    def onSector(self, event): 
     524         
     525        from SectorSlicer import SectorInteractor 
     526               
     527        self.slicer_z += 1 
     528        self.slicer = SectorInteractor(self, self.subplot, zorder=self.slicer_z) 
     529        self.subplot.set_ylim(-self.qmax, self.qmax) 
     530        self.subplot.set_xlim(-self.qmax, self.qmax) 
     531        self.update() 
     532        self.slicer.update() 
     533         
     534        
     535    def onClearSlicer(self, event): 
     536        print "on clear"   
     537         
     538           
     539    def _onEditDetector(self, event): 
     540        print "on parameter" 
     541         
     542         
    436543    def _onToggleScale(self, event): 
    437544        """ 
     
    524631    
    525632 
    526     def onSectorSlicer(self, event): 
    527         print "onLineSlicer" 
    528         import math 
    529         from DataLoader.manipulations import SectorPhi 
    530         for item in self.graph.plottables: 
    531             r= SectorPhi(005,.01, 0.0, math.pi/2.0) 
    532             print r(item) 
    533             data=r(item) 
    534         new_plot= Data1D(x=data.x,y=data.y,dy=data.dy ) 
    535         new_plot.name = "sector" 
    536         new_plot.group_id= "sector" 
    537         #wx.PostEvent(self.parent, NewPlotEvent(plot=r(item), title="Analytical model")) 
    538         wx.PostEvent(self.parent, NewPlotEvent(plot=new_plot, title="Analytical model")) 
    539          
    540          
    541          
     633         
     634         
Note: See TracChangeset for help on using the changeset viewer.