Changeset 1154 for SHX


Ignore:
Timestamp:
03.02.2016 14:02:30 (4 years ago)
Author:
klaus
Message:

bugfix: Uniquechannel; FDSN Combi read; add stations around epicenter

Location:
SHX/trunk/SeismicHandler
Files:
5 edited

Legend:

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

    r1136 r1154  
    1313from SeismicHandler.basics import timeit, timestore 
    1414from SeismicHandler.config import Settings 
    15 from SeismicHandler.modules.stations import ChannelMeta, Stations 
     15from SeismicHandler.modules.stations import ChannelMeta, Stations, \ 
     16    resolveStations 
    1617from obspy.sh.core import toUTCDateTime, UTCDateTime 
    1718from obspy.fdsn.client import Client 
     
    106107            elif reqmode == 'byradius': 
    107108                lat, lon, radius = reqpars 
    108                 print reqmode, lat, lon, radius 
    109109                client = Client(fdsnadr) 
    110110                inv = client.get_stations( starttime=reqtime, 
     
    122122                        channel, reqtime, reqlength ) 
    123123                print bulk 
     124                st = client.get_waveforms_bulk( StringIO.StringIO(bulk) ) 
     125            elif reqmode == 'bystationset': 
     126                print "dbg: reqpars:", reqpars 
     127                bulk = "" 
     128                for netsta in reqpars: 
     129                    try: 
     130                        net, station, loc = netsta.split('.') 
     131                    except: 
     132                        print "error parsing netsta '%s'" % netsta 
     133                        continue 
     134                    bulk += "%s\n" % self.getBulkLine( net, station, loc, 
     135                        channel, reqtime, reqlength ) 
     136                print bulk 
     137                client = Client(fdsnadr) 
    124138                st = client.get_waveforms_bulk( StringIO.StringIO(bulk) ) 
    125139            else: 
     
    142156            msg = "No data found at all for requested stations: %s" 
    143157            log_message("warning.fetch", msg % ", ".join(stations)) 
    144         add_traces(st, gain=True) 
     158        add_traces(st, gain=True, uniquechannel=self.switches.Uniquechannel) 
    145159     
    146160    def parseReqMode( self, reqstr ): 
     161        if len(reqstr) > 2 and reqstr.count(',') == 0: 
     162            return ('bystationset',resolveStations(reqstr)) 
    147163        tmp = reqstr.split(',') 
    148164        if len(tmp) < 3: 
  • SHX/trunk/SeismicHandler/commands/switch.py

    r1067 r1154  
    8787        log_message("debug.command.switch", 
    8888                     "Setting '%s' to '%s' in local scope" % (name, str(mode))) 
    89  
     89         
    9090        # update global switch 
    9191        if self.qualifiers.get("GLOBAL", False): 
  • SHX/trunk/SeismicHandler/modules/parse.py

    r1136 r1154  
    11311131        """ 
    11321132        return self._switches.keys() 
     1133     
     1134    def dump(self): 
     1135        for k in self.keys(): 
     1136            print "%s" % k, self.__getattr__(k) 
    11331137 
    11341138 
  • SHX/trunk/SeismicHandler/modules/traces.py

    r1150 r1154  
    4646 
    4747    #@timeit 
    48     def addreplace(self, stream, applyGain=False): 
     48    def addreplace(self, stream, applyGain=False, uniquechannel=False): 
    4949        """ 
    5050        Adds or replaces visible streams depending on runtime setting. 
     
    6363 
    6464        for t in stream: 
    65             if Settings.swUniquechannel and self.alreadyReadIn(t): 
    66                 print "dbg: dropping trace", t.stats.station, t.stats.channel 
     65            if (Settings.swUniquechannel or uniquechannel)\ 
     66                and self.alreadyReadIn(t): 
     67                print "dbg: uniquechanel, dropping trace", t.stats.station, t.stats.channel 
    6768                stream.remove(t) 
    6869                continue 
     
    421422 
    422423 
    423 def add_traces(stream, gain=False): 
     424def add_traces(stream, gain=False, uniquechannel=False): 
    424425    """ 
    425426    Helper method for "Traces().addreplace(...) 
    426427    """ 
    427     Traces().addreplace(stream, applyGain=gain) 
     428    Traces().addreplace(stream, applyGain=gain, uniquechannel=uniquechannel) 
    428429 
    429430def get_meta_status( trace, addgain=False ): 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1153 r1154  
    225225            'y': plotter.OnSortByDistance, 
    226226        } 
    227         print "dbg: pressed key", char 
    228227        if evt.ControlDown(): 
    229228            if char in shortcut_control.keys(): 
     
    20412040            self.OnWriteDataFile ) 
    20422041        fileMenu.AppendSeparator() 
    2043         self.addEntry( fileMenu, 'Read FDSN net/station list', 
    2044             'Read station list from FDSN webserver', self.OnReadFdsnStations ) 
    2045         self.addEntry( fileMenu, 'Read FDSN circle area', 
    2046             'Read stations in circle area from FDSN webserver', 
     2042        self.addEntry( fileMenu, 'Read FDSN Webservice', 
     2043            'Read network and stations network/station list '\ 
     2044            +'+ circle area from FDSN webserver', 
     2045            self.OnReadFdsnCombi ) 
     2046        self.addEntry( fileMenu, 'Add stations around epicenter (FDSN-ws)', 
     2047            'Read stations in circle area around epicener from FDSN webserver', 
    20472048            self.OnReadFdsnCircle ) 
    20482049        fileMenu.AppendSeparator() 
     
    24652466        _sendShCommand( cmd ) 
    24662467     
    2467     def OnReadFdsnStations( self, e ): 
     2468    def OnReadFdsnCombi( self, e ): 
    24682469        "plotterWindow: file menu entry." 
    24692470        ap = AnalysisPar() 
    2470         cmd = "fdsnws %s %s %s %s %s %s /addr=%s" % ( 
    2471             ap.getValueAsString( 'readws_net' ), 
    2472             ap.getValueAsString( 'readws_station' ), 
    2473             ap.getValueAsString( 'readws_loc' ), 
    2474             ap.getValueAsString( 'readws_chan' ), 
    2475             ap.getValueAsString( 'read_time' ), 
    2476             ap.getValueAsString( 'read_length' ), 
    2477             ap.getValueAsString( 'readws_server' ), 
    2478         ) 
    2479         cmd += "\nmeta all complete /addr=%s" \ 
    2480             % ap.getValueAsString('readws_server') 
    2481         _sendShCommand( cmd )         
    2482  
     2471        cmds = ['switch uniquechannel on'] 
     2472        if ap.getValueAsString('readws_net'): 
     2473            cmd = "fdsnws %s %s %s %s %s %s /addr=%s" % ( 
     2474                ap.getValueAsString( 'readws_net' ), 
     2475                ap.getValueAsString( 'readws_station' ), 
     2476                ap.getValueAsString( 'readws_loc' ), 
     2477                ap.getValueAsString( 'readws_chan' ), 
     2478                ap.getValueAsString( 'read_time' ), 
     2479                ap.getValueAsString( 'read_length' ), 
     2480                ap.getValueAsString( 'readws_server' ), 
     2481            ) 
     2482            cmds.append( cmd ) 
     2483        circle = ap.getValue('sta_radius') 
     2484        if circle != None and circle > 0.: 
     2485            cmd = "fdsnws %s,%s,%s * * %s %s %s /addr=%s" % ( 
     2486                ap.getValueAsString( 'sta_latitude' ), 
     2487                ap.getValueAsString( 'sta_longitude' ), 
     2488                ap.getValueAsString( 'sta_radius' ), 
     2489                ap.getValueAsString( 'readws_chan' ), 
     2490                ap.getValueAsString( 'read_time' ), 
     2491                ap.getValueAsString( 'read_length' ), 
     2492                ap.getValueAsString( 'readws_server' ), 
     2493            ) 
     2494            cmds.append( cmd ) 
     2495        cmds.append( "meta all complete /addr=%s" \ 
     2496            % ap.getValueAsString('readws_server') ) 
     2497        _sendShCommand( '\n'.join(cmds) ) 
     2498     
    24832499    def OnReadFdsnCircle( self, e ): 
    24842500        "plotterWindow: file menu entry." 
    24852501        ap = AnalysisPar() 
     2502        cmds = ['switch uniquechannel on'] 
    24862503        cmd = "fdsnws %s,%s,%s * * %s %s %s /addr=%s" % ( 
    2487             ap.getValueAsString( 'sta_latitude' ), 
    2488             ap.getValueAsString( 'sta_longitude' ), 
     2504            ap.getValueAsString( 'epi_latitude' ), 
     2505            ap.getValueAsString( 'epi_longitude' ), 
    24892506            ap.getValueAsString( 'sta_radius' ), 
    24902507            ap.getValueAsString( 'readws_chan' ), 
     
    24932510            ap.getValueAsString( 'readws_server' ), 
    24942511        ) 
    2495         cmd += "\nmeta all complete /addr=%s" \ 
    2496             % ap.getValueAsString('readws_server') 
    2497         _sendShCommand( cmd ) 
     2512        cmds.append( cmd ) 
     2513        cmds.append( "meta all complete /addr=%s" \ 
     2514            % ap.getValueAsString('readws_server') ) 
     2515        _sendShCommand( '\n'.join(cmds) ) 
    24982516     
    24992517    def OnCompleteMeta( self, e ): 
     
    27312749    def OnTheoPhaseLocal( self, e ): 
    27322750        "plotterWindow: phase menu entry." 
    2733         plist = AnalysisPar().getValue('phaselist') 
     2751        ap = AnalysisPar() 
     2752        for vname in ('epi_latitude','epi_longitude','source_depth', 
     2753            'origin_time'): 
     2754            val = ap.getValue(vname) 
     2755            if val == None or val == '': 
     2756                self.showMessage( "No location determined yet." ) 
     2757                return 
     2758        plist = ap.getValue('phaselist') 
    27342759        if plist == None or plist == "": 
    27352760            plist = "Pg,Sg,Pn,Sn" 
     
    27812806    def OnMagnMlPlot( self, e ): 
    27822807        "plotterWindow: magnitude menu entry." 
     2808        _infodisplayStatus( 'ml Plot magnitudes' ) 
    27832809        _sendShCommand( "magnitude plot ml" ) 
    27842810 
     
    28432869            else: 
    28442870                # phase names need capcnv switched off 
    2845                 cmd = "@PARAM SET %s %s" % (pname,result) 
     2871                if result.startswith("$"): 
     2872                    cmd = "@PARAM SET %s |$DOLLAR|%s|" % (pname,result[1:]) 
     2873                else: 
     2874                    cmd = "@PARAM SET %s %s" % (pname,result) 
    28462875            _sendShCommand( cmd ) 
    28472876        else: 
     
    29542983        raise exc 
    29552984 
     2985def _infodisplayStatus( text ): 
     2986    "Local routine for info display status text." 
     2987    global statusinfotext 
     2988    statusinfotext = text 
     2989    if plotter: 
     2990        plotter._setStatusText( 'Message' ) 
     2991 
    29562992 
    29572993def ui_events(func): 
Note: See TracChangeset for help on using the changeset viewer.