Changeset 1095


Ignore:
Timestamp:
10.01.2016 17:23:29 (4 years ago)
Author:
klaus
Message:

corrected time computation for phase display; phases may be deleted via double click

File:
1 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1092 r1095  
    5757        self.do_screenshot = False 
    5858        self.pixel_duration = None 
     59        self.last_defined_phase = None 
    5960 
    6061        # temporary layer for mouse motion 
     
    127128        "Send command to command line interpreter." 
    128129        msgs.sendMessage("ui.command", cmd=cmdstring, name=name ) 
     130        #print "dbg: send command", cmdstring 
    129131     
    130132    def closePhase( self, trace, abstime ): 
     
    175177        trace, tracetime = self.ScreenToTraceAndTime(*(evt.GetPositionTuple())) 
    176178        if trace: 
    177             self.mousedouble = True 
     179            #self.mousedouble = True 
    178180            cphase = self.closePhase( trace, tracetime ) 
    179181            if cphase: 
    180182                station = "%s.%s" % (trace.stats.network,trace.stats.station) 
     183                station = station.upper() 
    181184                self._sendShCommand( 
    182                     "phase clear %s %s %s" % (cphase[0],station,cphase[1]) \ 
    183                     +"\nphase default_phase %s" % cphase[0] 
     185                    "@PHASE CLEAR %s %s %s" % (cphase[0],station,cphase[1]) \ 
     186                    +"\n@PHASE DEFAULT_PHASE %s" % cphase[0] 
    184187                ) 
     188                self.last_defined_phase = cphase[0] 
    185189            self._drawPicksAndZoom() 
    186190        evt.Skip() 
     
    311315            self.dragStart = None 
    312316 
    313         if self.mousedouble: 
    314             self.mousedouble = False 
     317        #if self.mousedouble: 
     318        #    self.mousedouble = False 
    315319 
    316320        x, y = evt.GetPositionTuple() 
    317321        trace, tracetime = self.ScreenToTraceAndTime(x, y) 
     322 
     323        # Send SH command to define phase if not waiting for user input. 
     324        if self.mousedouble: 
     325            if self.last_defined_phase: 
     326                station = "%s.%s" % (trace.stats.network,trace.stats.station) 
     327                self._sendShCommand( "@PHASE CLEAR %s %s manual" % ( 
     328                    self.last_defined_phase,station.upper()) ) 
     329        elif trace and self.parent._user_selection: 
     330            station = "%s.%s" % (trace.stats.network,trace.stats.station) 
     331            self._sendShCommand( "@PHASE DEFINE %s %s ;;; %s" % (station.upper(), 
     332                fromUTCDateTime(tracetime),trace.stats.channel[-1].upper()), 
     333                name="mouse evt" ) 
     334        self.mousedouble = False 
     335 
    318336        if self.interactive == "trace_time": 
    319337            self.parent._user_selection = (trace, tracetime) 
     
    323341            raise NameError("unknown selection mode") 
    324342         
    325         # Send SH command. 
    326         if trace: 
    327             station = "%s.%s" % (trace.stats.network,trace.stats.station) 
    328             self._sendShCommand( "phase define %s %s ;;; %s" % (station, 
    329                 fromUTCDateTime(tracetime),trace.stats.channel[-1]), 
    330                 name="mouse evt" ) 
    331  
    332343        evt.Skip() 
    333344 
     
    565576            return 
    566577 
    567         if self.relativeAxis: 
    568             #start = trace.stats.starttime 
    569             #end = trace.stats.endtime 
    570             pixel_width = shx_graphics.PlotPixels 
    571         else: 
    572             #start = self.start 
    573             #end = self.end 
    574  
    575             # horizontal 
    576             if self.traceOrder in [0, 1]: 
    577                 pixel_width = self.width - STATION_INFO - MARGINS[1] - MARGINS[3] 
    578             # vertical 
    579             elif self.traceOrder in [2, 3]: 
    580                 pixel_width = self.height - STATION_INFO - MARGINS[0] - MARGINS[2] 
     578        # horizontal 
     579        if self.traceOrder in [0, 1]: 
     580            pixel_width = self.width - STATION_INFO - MARGINS[1] - MARGINS[3] 
     581        # vertical 
     582        elif self.traceOrder in [2, 3]: 
     583            pixel_width = self.height - STATION_INFO - MARGINS[0] - MARGINS[2] 
    581584 
    582585        zerotime = trace.stats.starttime - trace.get_info("t-origin") 
     
    589592            start = self.timewindow[0] 
    590593            end = self.timewindow[1] 
    591  
     594         
    592595        # relative position inside trace window 
    593596        relpos = (reltime - start) / (end - start) * pixel_width 
    594         print "dbg: relpos, start, end, time", relpos, start, end, time 
    595597 
    596598        # horizontal 
     
    727729        #odc.Clear() 
    728730        dc.SetBrush(wx.TRANSPARENT_BRUSH) 
    729  
    730         th2 = self.traceheight / 2 
     731        dc.SetFont( wx.Font( 8, wx.DEFAULT, wx.NORMAL, wx.NORMAL ) ) 
     732 
     733        th2 = self.traceheight / 2 - 2 
    731734        # draw picks 
    732735        for pcolor in _picks.keys(): 
     
    739742                        pick[1][0], pick[1][1] + th2 
    740743                    ) 
    741                     dc.DrawText(pick[0], pick[1][0] + 2, pick[1][1] - th2 + 2) 
     744                    dc.DrawText(pick[0], pick[1][0] + 2, pick[1][1] - th2 - 10) 
    742745                elif self.traceOrder in [2, 3]: 
    743746                    dc.DrawLine( 
     
    873876            dbuffer.SetPen(wx.Pen((45,45,45), 1)) 
    874877 
    875             torig = t.get_info("t-origin") 
    876             if torig <= timewindow[0]: 
    877                 _shift = 0 
    878             else: 
    879                 _shift = torig - timewindow[0] 
     878            _shift = t.get_info("t-origin") - timewindow[0] 
     879            if _shift < 0.: 
     880                _shift = 0. 
     881            # on positive shifts the bitmap is moved out of the screen 
     882            # to the right. On negative shifts the bitmap is recomputed 
     883            # and always starts at 0. Fails if the bitmap move completely 
     884            # out to the left. Bitmap should be cleared in this case. 
    880885 
    881886            # calculate offset to global time scale 
     
    11711176                data = t.data 
    11721177            else: 
    1173                 data = t.get_datawindow(*self._timewindow)  #? KS 13-Aug-15 
     1178                try: 
     1179                    data = t.get_datawindow(*self._timewindow) 
     1180                except: 
     1181                    continue 
    11741182            t_ampl = max( abs(data.max()), abs(data.min()) ) 
    11751183            if t_ampl > amplitude: 
     
    12191227        self.Show() 
    12201228        self.Enable() 
     1229        self._user_selection = 0. 
    12211230 
    12221231    def redraw(self): 
Note: See TracChangeset for help on using the changeset viewer.