Changeset 1119


Ignore:
Timestamp:
16.01.2016 18:29:02 (4 years ago)
Author:
klaus
Message:

metastatus: inidicate by trace color; busy cursor

Location:
SHX/trunk/SeismicHandler
Files:
5 edited

Legend:

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

    r1070 r1119  
    9797            pass 
    9898        object.__setattr__(self, name, value) 
     99     
     100 
     101def get_default_attrib( code ): 
     102    return default_attrib_blocks.get( code, AttributeBlock() ) 
    99103 
    100104 
     
    203207 
    204208timestore = TimeStore() 
     209 
     210default_attrib_blocks = { 
     211    0 : AttributeBlock( color=[255,0,0] ), 
     212    1 : AttributeBlock( color=[128,0,0] ), 
     213    2 : AttributeBlock(), 
     214} 
  • SHX/trunk/SeismicHandler/commands/meta.py

    r1108 r1119  
    77from SeismicHandler.basics.command import BaseCommand 
    88from SeismicHandler.core import Traces 
    9 from SeismicHandler.modules.traces import Traces as BaseTraces, traces_from_list 
     9from SeismicHandler.modules.traces import Traces as BaseTraces, \ 
     10    traces_from_list, get_meta_status, META_STATUS_LOCATION, \ 
     11    META_STATUS_COMPLETE, META_STATUS_EMPTY 
    1012from SeismicHandler.modules.stations import ChannelMeta, Stations 
    1113from SeismicHandler.config import Settings 
     
    6163            print "idx net sta     cha   location       gain   response-ok" 
    6264            for trc in traces: 
    63                 print self.infostring( trc ) 
     65                itext, metastatus = self.infostring( trc ) 
     66                print itext 
     67                trc.stats.sh.METASTATUS = metastatus 
    6468        elif subcmd in ('complete','complete_location','complete_response'): 
    6569            self.completeMetadata( fdsnadr, traces, subcmd ) 
     
    8084        metatime = trc.stats.starttime \ 
    8185            + (trc.stats.endtime-trc.stats.starttime)/2 
     86        metastatus = META_STATUS_EMPTY 
    8287        try: 
    8388            r = self.stations[(sname, metatime)] 
     
    8893            slon = float( r.longitude ) 
    8994            locstring = "(%6.2f,%6.2f)" % (slat,slon) 
     95            metastatus = META_STATUS_LOCATION 
    9096        except: 
    9197            locstring = "(------,------)" 
     
    100106        if r and r.poles and r.poles != '[]': 
    101107            respstr = "resp_given" 
     108            metastatus = META_STATUS_COMPLETE 
    102109        else: 
    103110            respstr = "---" 
     
    105112            trc.stats.network,trc.stats.station,trc.stats.location, 
    106113            trc.stats.channel,locstring,gainstr,respstr) 
    107         return infostr 
     114        return (infostr,metastatus) 
    108115     
    109     def isMetaComplete( self, trc ): 
    110         "Returns boolean 2-tuple (location-ok,response-ok)." 
    111         locok = False 
    112         respok = False 
    113         sname = "%s.%s.%s.%s" % (trc.stats.network, trc.stats.station, 
    114             trc.stats.location, trc.stats.channel) 
    115         metatime = trc.stats.starttime \ 
    116             + (trc.stats.endtime-trc.stats.starttime)/2 
    117         try: 
    118             r = self.stations[(sname, metatime)] 
    119         except: 
    120             return (False,False) 
    121         try: 
    122             slat = float( r.latitude ) 
    123             slon = float( r.longitude ) 
    124         except: 
    125             return (False,False) 
    126         locok = True 
    127         try: 
    128             gain = float( r.gain ) 
    129         except: 
    130             return (locok,False) 
    131         if gain == 1.0: 
    132             return (locok,False) 
    133         if r.poles and r.poles != '[]': 
    134             respok = True 
    135         return (locok,respok) 
    136  
    137116    def completeMetadata( self, fdsnadr, traces, subcmd ): 
    138117        "Completes metadata of selected traces using FDSN WS." 
     
    140119        startend = {} 
    141120        for trc in traces: 
    142             locok, respok = self.isMetaComplete( trc ) 
    143             if locok and respok: 
    144                 continue 
    145             if locok and subcmd == 'complete_location': 
     121            metastatus = get_meta_status( trc ) 
     122            if metastatus == META_STATUS_COMPLETE: 
     123                continue 
     124            if metastatus == META_STATUS_LOCATION \ 
     125                and subcmd == 'complete_location': 
    146126                continue 
    147127            incomplete.append(( 
     
    211191        # reread DB due to bug in Db interface 
    212192        Stations().read( clear=True ) 
     193        for trc in traces: 
     194            trc.set_info( 'METASTATUS', get_meta_status( trc ) ) 
    213195     
    214196    def listIncompleteTraces( self, traces, subcmd ): 
     
    216198        incomplete = [] 
    217199        for trc in traces: 
    218             locok, respok = self.isMetaComplete( trc ) 
    219             if locok and respok: 
    220                 continue 
    221             if locok and subcmd == 'complete_location': 
     200            metastatus = get_meta_status( trc ) 
     201            if metastatus == META_STATUS_COMPLETE: 
     202                continue 
     203            if metastatus == META_STATUS_LOCATION \ 
     204                and subcmd == 'complete_location': 
    222205                continue 
    223206            incomplete.append( trc ) 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1118 r1119  
    1313from SeismicHandler.config import Settings, set_dsptrcs, set_tottrcs 
    1414from SeismicHandler.modules.stations import Stations 
     15 
     16 
     17META_STATUS_EMPTY    = 0 
     18META_STATUS_LOCATION = 1 
     19META_STATUS_COMPLETE = 2 
    1520 
    1621 
     
    8489                msg = "Applied gain factor of %f to %s" 
    8590                log_message("debug.traces", msg % (gain, t.id)) 
     91             
     92            t.set_info( 'METASTATUS', self.getMetaStatus(t) ) 
    8693         
    8794        self.traces.visible += stream 
     
    118125    def getNetcode( self, station ): 
    119126        return self.netdict.get( station.upper(), None ) 
     127     
     128    def getMetaStatus( self, trace ): 
     129        "Returns 0, 1 or 2 depending on metadata status." 
     130        stations = Stations() 
     131        sname = "%s.%s.%s.%s" % (trace.stats.network, trace.stats.station, 
     132            trace.stats.location, trace.stats.channel) 
     133        metatime = trace.stats.starttime \ 
     134            + (trace.stats.endtime-trace.stats.starttime)/2 
     135        try: 
     136            r = stations[(sname, metatime)] 
     137        except: 
     138            return META_STATUS_EMPTY 
     139        try: 
     140            slat = float( r.latitude ) 
     141            slon = float( r.longitude ) 
     142        except: 
     143            return META_STATUS_EMPTY 
     144        try: 
     145            gain = float( r.gain ) 
     146        except: 
     147            return META_STATUS_LOCATION 
     148        if gain == 1.0: 
     149            return META_STATUS_LOCATION 
     150        if r.poles and r.poles != '[]': 
     151            return META_STATUS_COMPLETE 
     152        else: 
     153            return META_STATUS_LOCATION 
     154         
    120155 
    121156 
     
    185220        print 'overlay allidx', self.allidx 
    186221        print 'overlay pos', self.posdict 
    187          
    188  
    189222 
    190223#@timeit 
     
    353386    Traces().addreplace(stream, applyGain=gain) 
    354387 
     388def get_meta_status( trace ): 
     389    return Traces().getMetaStatus( trace ) 
     390 
    355391 
    356392#@timeit 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1118 r1119  
    1111import os 
    1212from SeismicHandler.basics.messages import msgs, subscribe_ui_event, \ 
    13                                             log_message, get_style#, get_runtime 
     13                                ui_event, log_message, get_style#, get_runtime 
    1414from SeismicHandler.config import get_runtime 
    1515from SeismicHandler.core import Traces, Overlays 
    1616from SeismicHandler.basics.codes import NAME, VERSION 
    17 from SeismicHandler.basics.tools import AttributeBlock, timeit 
     17from SeismicHandler.basics.tools import get_default_attrib, timeit 
    1818from SeismicHandler.basics.analysispar import PhaseList, AnalysisPar 
    1919from obspy.core import read, UTCDateTime 
     
    383383            self._timewindow = get_runtime("timewindow") 
    384384            self._normtype = get_runtime("normtype") 
     385            wx.BeginBusyCursor( cursor=wx.StockCursor(_cursorNameToID("wait")) ) 
    385386            self._resetTimeRange() 
    386387            self._drawTraces() 
    387388            self._drawPicksAndZoom() 
     389            wx.EndBusyCursor() 
    388390            self.refresh = False 
    389391 
     
    966968                style = get_style(attrib) 
    967969            except KeyError: 
    968                 style = AttributeBlock() 
     970                style = get_default_attrib(t.get_info("METASTATUS")) #AttributeBlock() 
    969971            cmode = None 
    970972            try: 
     
    14331435def _sendShCommand( cmdstring, name="default" ): 
    14341436    "Send command to command line interpreter." 
     1437    wx.BeginBusyCursor() 
    14351438    msgs.sendMessage("ui.command", cmd=cmdstring, name=name ) 
    1436  
    1437      
     1439    wx.EndBusyCursor() 
     1440 
    14381441 
    14391442def ui_events(func): 
     
    14471450 
    14481451 
    1449 @ui_events 
    1450 def __set_cursor(mode): 
    1451     """ 
    1452     Interface method for altering cursor style on canvas. Thread-safe. 
    1453     """ 
     1452def _cursorNameToID( mode ): 
    14541453    mode = mode.lower() 
    14551454    if mode == "cross": 
     
    14611460    elif mode == "right": 
    14621461        _c = wx.CURSOR_POINT_RIGHT 
     1462    elif mode == "busy": 
     1463        _c = wx.CURSOR_WAIT 
     1464    elif mode == "wait": 
     1465        _c = wx.CURSOR_ARROWWAIT 
     1466    return _c 
     1467 
     1468 
     1469@ui_events 
     1470def __set_cursor(mode): 
     1471    """ 
     1472    Interface method for altering cursor style on canvas. Thread-safe. 
     1473    """ 
     1474    _c = _cursorNameToID( mode ) 
    14631475    myCursor = wx.StockCursor(_c) 
    14641476    global plotter 
  • SHX/trunk/SeismicHandler/patches/obspy_.py

    r1107 r1119  
    105105             (windowstart, windowend, "%.5f" % pixel_width, height, zoom, norm) 
    106106    try: 
    107         cachedX = CacheTraceID[:3] == self.shx.CacheTraceID[:3] 
    108         cachedY = cachedX and CacheTraceID[3:] == self.shx.CacheTraceID[3:] 
     107        cachedX = CacheTraceID[:3] == shx_graphics.CacheTraceID[:3] 
     108        cachedY = cachedX and CacheTraceID[3:] == shx_graphics.CacheTraceID[3:] 
    109109    except: 
    110110        cachedX = False 
    111111        cachedY = False 
    112     # disable caching 
    113     cachedX = cachedY = False 
    114112 
    115113    if not cachedX: 
     
    365363        if name in ('T-ORIGIN',): 
    366364            self.stats.sh[name] = float(value) 
     365        elif name in ('METASTATUS',): 
     366            self.stats.sh[name] = int(value) 
    367367        else: 
    368368            self.stats.sh[name] = value 
     
    389389    self.shx._established = True 
    390390    self.shx._parent = Traces 
     391    if not hasattr(self.shx,'original'): 
     392        self.shx.original = None 
     393    isoriginal = self.shx.original == None 
    391394 
    392395    self.stats.sh.ZOOM = get_runtime("zoom", 1.) 
     
    401404    self.stats.sh.USFLG2 = False 
    402405    self.stats.sh.UNIQUE_ID = uuid.uuid4().hex 
     406    self.stats.sh.METASTATUS = 0 
     407    self.stats.sh.ORIGINAL = isoriginal 
    403408 
    404409    # unknown 
Note: See TracChangeset for help on using the changeset viewer.