Changeset 1118


Ignore:
Timestamp:
16.01.2016 01:12:11 (4 years ago)
Author:
klaus
Message:

more menu entries; bugfix in list expression expansion

Location:
SHX/trunk/SeismicHandler
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/basics/analysispar.py

    r1117 r1118  
    221221        'fdsn_server'     : ('string',    'bgr'), 
    222222        'fk_max_slowness' : ('float',     15.0), 
    223         'fk_min_req'      : ('float',     0.4), 
     223        'fk_min_freq'     : ('float',     0.4), 
    224224        'fk_max_freq'     : ('float',     3.0), 
    225225    } 
  • SHX/trunk/SeismicHandler/commands/fk.py

    r1090 r1118  
    1010""" 
    1111 
     12import os 
    1213import sys 
    1314from SeismicHandler.basics.command import BaseCommand 
     
    1617from SeismicHandler.basics.error import ShxError 
    1718from SeismicHandler.modules.stations import Stations 
     19from SeismicHandler.config import Settings 
    1820from SeismicHandler.basics import timeit 
    1921from obspy.core import Stream, AttribDict 
     
    136138        polar_plot = None 
    137139        scatter_plot = None 
     140        showfig = None 
    138141        if len(self.parameters) > 3 and self.parameters[3]: 
    139142            frqmin = float( self.parameters[3] ) 
     
    159162            if self.qualifiers["SCATTER"] is not True: 
    160163                scatter_plot = self.qualifiers["SCATTER"] 
     164            else: 
     165                scatter_plot = self.tmpPlotfile() 
     166                showfig = scatter_plot 
    161167        if self.qualifiers["POLAR"]: 
    162168            plottype = "TimePolar" 
    163169            if self.qualifiers["POLAR"] is not True: 
    164170                polar_plot = self.qualifiers["POLAR"] 
     171            else: 
     172                polar_plot = self.tmpPlotfile() 
     173                showfig = polar_plot 
    165174        if self.qualifiers["SLOWNESSMAP"]: 
    166175            plottype = "SlownessMap" 
    167176            if self.qualifiers["SLOWNESSMAP"] is not True: 
    168177                slownessmap_plot = self.qualifiers["SLOWNESSMAP"] 
     178            else: 
     179                slownessmap_plot = self.tmpPlotfile() 
     180                showfig = slownessmap_plot 
    169181        if self.qualifiers["KMUNITS"]: 
    170182            cnvfactor = 1. 
     
    248260        else: 
    249261            raise ShxError( "Program Bug (illegal plot type)", status=1111 ) 
     262        if showfig and os.path.exists(showfig): 
     263            try: 
     264                dspprog = Settings.config.misc.display_prog 
     265            except: 
     266                dspprog = 'display' 
     267            os.system( "%s %s &" % (dspprog,showfig) ) 
    250268         
    251269        
     
    274292            plt.show() 
    275293        else: 
    276             plt.savefig( outfile.lower() ) 
     294            plt.savefig( outfile.replace('\\','/').lower() ) 
    277295     
    278296    def plotPolar( self, fkout, slomax, outfile=None ): 
     
    328346            plt.show() 
    329347        else: 
    330             plt.savefig( outfile.lower() ) 
     348            plt.savefig( outfile.replace('\\','/').lower() ) 
    331349 
    332350    def plotSlowmap( self, powmap, slomax, title="", outfile=None ): 
     
    347365            plt.show() 
    348366        else: 
    349             plt.savefig( outfile.lower() ) 
     367            plt.savefig( outfile.replace('\\','/').lower() ) 
     368     
     369    def tmpPlotfile( self ): 
     370        return os.path.join( Settings.config.paths.scratch[0], 
     371            'tmpfig_%d.png' % os.getpid() ) 
    350372         
    351373 
  • SHX/trunk/SeismicHandler/commands/plot_stations.py

    r1112 r1118  
    124124        if show: 
    125125            try: 
    126                 dspprog = Setting.config.misc.display_prog 
     126                dspprog = Settings.config.misc.display_prog 
    127127            except: 
    128128                dspprog = 'display' 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1096 r1118  
    246246                except: 
    247247                    continue 
    248  
     248                if hasattr(check,'lower'): 
     249                    check = check.lower() 
     250                 
    249251                found = False 
    250252                try: 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1117 r1118  
    7878        self._setup() 
    7979 
     80        def disable_event(*pargs,**kwargs): 
     81            pass # the sauce, please 
     82 
    8083        # event binding 
    8184        self.Bind(wx.EVT_PAINT, self.OnPaint) 
    82         self.Bind(wx.EVT_SIZE, self.OnPaint) 
     85        self.Bind(wx.EVT_SIZE, self.OnSize) 
    8386        self.Bind(wx.EVT_IDLE, self.OnIdle) 
    8487        self.Bind(wx.EVT_MOTION, self.OnMouseMotion) 
     
    9295        self.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) 
    9396        self.Bind(wx.EVT_CHAR_HOOK, self.OnKeyDown) 
     97        self.Bind(wx.EVT_ERASE_BACKGROUND, disable_event) 
    9498 
    9599        # messaging system 
     
    101105 
    102106        # init 
    103         self.OnPaint(None) 
     107        self.OnSize(None) 
    104108        self.SetFocus() 
    105109 
     
    368372            self.Scrolled = self.GetScrollPos(wx.HORIZONTAL) * \ 
    369373                                               self.GetScrollPixelsPerUnit()[0] 
    370         self.OnPaint(evt, renewOverlay=True) 
     374        self.OnSize(evt, renewOverlay=True) 
    371375        evt.Skip() 
    372376 
     
    391395        setattr(self, name, mode) 
    392396 
    393     def OnPaint(self, evt, renewOverlay=False): 
     397    def OnSize(self, evt, renewOverlay=False): 
    394398        """ 
    395399        Called if redraw is requested. 
     
    403407            self.overlay_picks.Reset() 
    404408            self.overlay_drag.Reset() 
    405         # need to find out readraw area 
    406         #if hasattr(evt,"GetRect"): 
    407         #    print "dbg:", evt.GetRect()  # always (0,0,0,0) 
    408         #else: 
    409         #    print "dbg:", dir(evt) 
    410409 
    411410        # painting is only done in idle state 
     411        self.refresh = True 
     412     
     413    def OnPaint( self, evt ): 
    412414        self.refresh = True 
    413415 
     
    423425 
    424426            # BAD! 
    425             self.OnPaint(True, renewOverlay=True) 
     427            self.OnSize(True, renewOverlay=True) 
    426428 
    427429    def OnNotifyTraceOrder(self, order): 
     
    440442            self._setup() 
    441443            # BAD: setting evt=True 
    442             self.OnPaint(True, renewOverlay=True) 
     444            self.OnSize(True, renewOverlay=True) 
    443445 
    444446    def OnNotifyHeight(self, height): 
     
    455457 
    456458        self._setup() 
    457         self.OnPaint(None) 
     459        self.OnSize(None) 
    458460 
    459461    def OnNotifyPhaseName(self, name): 
     
    12871289        self._user_selection = 999. 
    12881290        self._zoomwdw = None 
     1291        self.flag_beam = False 
     1292        self.flag_norm = False 
     1293        self.flag_overlap = True 
    12891294     
    12901295    def addMenuEntries( self ): 
     
    12971302        # window menu 
    12981303        windowMenu = wx.Menu() 
    1299         self.addEntry( windowMenu, 'Set Time Wdw', 
     1304        self.addEntry( windowMenu, '&Set Time Window\tS', 
    13001305            'Set Zoom window as new time window', self.OnSetTimeWindow ) 
    1301         self.addEntry( windowMenu, 'Del Time Wdw', 
     1306        self.addEntry( windowMenu, '&Del Time Window\tD', 
    13021307            'Delete time window', self.OnDelTimeWindow ) 
    1303         self.addEntry( windowMenu, '&All Norm\tCtrl+A', 
    1304             'Normalize All Traces Together', self.OnAllNorm ) 
    1305         self.addEntry( windowMenu, '&Single Norm\tCtrl+S', 
    1306             'Normalize Traces Separately', self.OnSingleNorm ) 
    1307         self.addEntry( windowMenu, 'Clipped Traces', 
    1308             'Traces are clipped when zooming amplitudes', self.OnClippedTraces ) 
    1309         self.addEntry( windowMenu, 'Overlapping Traces', 
    1310             'Traces overlap when zooming', self.OnOverlappingTraces ) 
     1308        self.addEntry( windowMenu, '&Norm All/Single\tCtrl+N', 
     1309            'Normalize All Traces Together / Normalize Traces Separately', 
     1310            self.OnNorm ) 
     1311        self.addEntry( windowMenu, '&Overlapping/Clipped Traces\tCtrl+O', 
     1312            'Traces overlap when zooming / Traces are clipped when zooming '\ 
     1313            +'amplitudes', self.OnOverlappingTraces ) 
    13111314        # traces menu 
    13121315        tracesMenu = wx.Menu() 
     
    13151318        self.addEntry( tracesMenu, 'Sort by Distance', 
    13161319            'Sort traces by distance', self.OnSortByDistance ) 
     1320        # array menu 
     1321        arrayMenu = wx.Menu() 
     1322        self.addEntry( arrayMenu, '&FK\tCtrl+F', 
     1323            'Compute FK for all traces on selected time window', self.OnFK ) 
     1324        self.addEntry( arrayMenu, 'Beam / Del Beam\tB', 
     1325            'Compute/delete beam for all traces', self.OnBeam ) 
     1326        # test menu 
    13171327        testMenu = wx.Menu() 
    13181328        self.addEntry( testMenu, 'Read GR * BHZ of an event', 
     
    13241334        menubar.Append( windowMenu, '&Window' ) 
    13251335        menubar.Append( tracesMenu, '&Traces' ) 
     1336        menubar.Append( arrayMenu, 'Array' ) 
    13261337        menubar.Append( testMenu, 'Test' ) 
    13271338        self.SetMenuBar( menubar ) 
     
    13441355        self.Close() 
    13451356     
    1346     def OnAllNorm( self, e ): 
    1347         _sendShCommand( 'norm aw' ) 
    1348  
    1349     def OnSingleNorm( self, e ): 
    1350         _sendShCommand( 'norm sw' ) 
     1357    def OnNorm( self, e ): 
     1358        if self.flag_norm: 
     1359            _sendShCommand( 'norm aw' ) 
     1360        else: 
     1361            _sendShCommand( 'norm sw' ) 
     1362        self.flag_norm = not self.flag_norm 
    13511363 
    13521364    def OnOverlappingTraces( self, e ): 
    1353         _sendShCommand( 'fct overlapping_traces true' ) 
    1354  
    1355     def OnClippedTraces( self, e ): 
    1356         _sendShCommand( 'fct overlapping_traces false' ) 
     1365        if self.flag_overlap: 
     1366            _sendShCommand( 'fct overlapping_traces false' ) 
     1367        else: 
     1368            _sendShCommand( 'fct overlapping_traces true' ) 
     1369        self.flag_overlap = not self.flag_overlap 
    13571370 
    13581371    def OnDemean( self, e ): 
     
    13911404            return 
    13921405        _sendShCommand( "sort_by_distance %s %s" % (lat,lon) ) 
    1393  
     1406     
     1407    def OnFK( self, e ): 
     1408        if not self._zoomwdw: 
     1409            return 
     1410        timea, timeb = self._zoomwdw 
     1411        if timea == None or timeb == None: 
     1412            return 
     1413        ap = AnalysisPar() 
     1414        cmd = "shx_menu_fk %g %g %s %s %s" % (timea,timeb, 
     1415            ap.getValueAsString('fk_min_freq'), 
     1416            ap.getValueAsString('fk_max_freq'), 
     1417            ap.getValueAsString('fk_max_slowness')) 
     1418        _sendShCommand( cmd ) 
     1419     
     1420    def OnBeam( self, e ): 
     1421        if self.flag_beam: 
     1422            _sendShCommand( "shx_menu_delbeam" ) 
     1423        else: 
     1424            _sendShCommand( "shx_menu_beam" ) 
     1425        self.flag_beam = not self.flag_beam 
     1426     
    13941427    def redraw(self): 
    1395         self.canvas.OnPaint(None) 
     1428        self.canvas.OnSize(None) 
    13961429     
    13971430    def setZoomWindow( self, start, end ): 
Note: See TracChangeset for help on using the changeset viewer.