Changeset 1096


Ignore:
Timestamp:
11.01.2016 10:29:36 (4 years ago)
Author:
klaus
Message:

netcode dictionary; qicker response to phase dragging (not yet optimal)

Location:
SHX/trunk/SeismicHandler
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/commands/phase.py

    r1092 r1096  
    88from SeismicHandler.basics.analysispar import PhaseList 
    99from SeismicHandler.basics.error import ShxError 
     10from SeismicHandler.modules.traces import addNetcode 
    1011from obspy.sh.core import toUTCDateTime, fromUTCDateTime 
    1112 
     
    6465 
    6566        if subcmd == 'define': 
    66             station = self.parameters[1] 
     67            station = addNetcode( self.parameters[1] ) 
    6768            picktime = toUTCDateTime( self.parameters[2] ) 
    6869            phasename = None 
     
    8485                print "phase already defined, command ignored" 
    8586        elif subcmd == 'list': 
    86             station = self.parameters[1] 
     87            station = addNetcode( self.parameters[1] ) 
    8788            picktype = None 
    8889            comp = None 
     
    115116                phasename = self.parameters[1] 
    116117            if len(self.parameters) > 2 and self.parameters[2]: 
    117                 station = self.parameters[2] 
     118                station = addNetcode( self.parameters[2] ) 
    118119            if len(self.parameters) > 3 and self.parameters[3]: 
    119120                picktype = phaselist.translatePicktype( self.parameters[3] ) 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1072 r1096  
    3030        self.traces.created = Stream() 
    3131        self.traces.overlays = OverlayTraces() 
     32        self.netdict = {} 
    3233 
    3334    def __getattr__(self, name): 
     
    5758            t.establish() 
    5859            t.invalidate_cache() 
     60            self.cacheNetcode(t) 
    5961 
    6062            if applyGain: 
     
    106108        """ 
    107109        return self.traces.visible.traces.index(trace) 
     110     
     111    def cacheNetcode( self, trace ): 
     112        """Store netcodes for known stations. Overwrites possibly existing 
     113        old entries. 
     114        """ 
     115        upstat = trace.stats.station.upper() 
     116        self.netdict[upstat] = trace.stats.network.upper() 
     117     
     118    def getNetcode( self, station ): 
     119        return self.netdict.get( station.upper(), None ) 
    108120 
    109121 
     
    349361subscribe_event(invalidate_all_traces, "recache") 
    350362 
     363def addNetcode( station ): 
     364    "Adds netcode to station if not yet specified and found in cache." 
     365    traces = Traces() 
     366    upstat = station.upper() 
     367    if '.' in station: 
     368        return upstat 
     369    netcode = traces.getNetcode( upstat ) 
     370    if netcode == None: 
     371        return upstat 
     372    return "%s.%s" % (netcode,upstat) 
     373 
    351374 
    352375if __name__ == "__main__": 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1095 r1096  
    145145    # event processing 
    146146    def OnMouseWheel(self, evt): 
    147         print "dbg: mouse wheel" 
    148         pass 
     147        print "dbg: mouse wheel", dir(evt) 
     148        evt.Skip() 
    149149 
    150150    def OnKeyDown(self, evt): 
     
    187187                ) 
    188188                self.last_defined_phase = cphase[0] 
     189                self._drawSinglePick( trace, tracetime,color='white' ) 
    189190            self._drawPicksAndZoom() 
    190191        evt.Skip() 
     
    321322        trace, tracetime = self.ScreenToTraceAndTime(x, y) 
    322323 
    323         # Send SH command to define phase if not waiting for user input. 
     324        # Send SH command to define/clear phase if not waiting for user input. 
    324325        if self.mousedouble: 
    325326            if self.last_defined_phase: 
     
    332333                fromUTCDateTime(tracetime),trace.stats.channel[-1].upper()), 
    333334                name="mouse evt" ) 
     335            self._drawSinglePick( trace, tracetime ) 
    334336        self.mousedouble = False 
    335337 
     
    768770                self.ZoomWindow = None 
    769771 
     772 
     773    def _drawSinglePick( self, trace, tracetime, color=None ): 
     774        "Just for quick respomse to the user." 
     775        pname = self.last_defined_phase 
     776        if not pname: 
     777            pname = "NewPhase" 
     778        if color == None: 
     779            color = 'red' 
     780        dc = wx.ClientDC(self) 
     781        dc.SetPen(wx.Pen(color, 1)) 
     782        dc.SetTextForeground(color) 
     783        dc.SetFont( wx.Font( 8, wx.DEFAULT, wx.NORMAL, wx.NORMAL ) ) 
     784        th2 = self.traceheight / 2 - 2 
     785        x, y, = self.TraceAndTimeToScreen(trace,tracetime) 
     786        dc.DrawLine( x, y-th2, x, y+th2 ) 
     787        dc.DrawText( pname, x+2, y-th2-10 ) 
     788         
    770789 
    771790    #@timeit 
     
    12271246        self.Show() 
    12281247        self.Enable() 
    1229         self._user_selection = 0. 
     1248        self._user_selection = 999. 
    12301249 
    12311250    def redraw(self): 
Note: See TracChangeset for help on using the changeset viewer.