Changeset 1165 for SHX


Ignore:
Timestamp:
07.02.2016 20:02:18 (4 years ago)
Author:
klaus
Message:

unfinished code for comparing tele locations with other sources

Location:
SHX/trunk/SeismicHandler
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • SHX/trunk/SeismicHandler/cmdscripts/SHX_MENU_LOCATE_TELE.SHC

    r1163 r1165  
    55sdef depth 
    66sdef depth_type 
     7sdef clat 
     8sdef clon 
    79 
    810param get source_depth &depth 
     
    1214depthok: 
    1315 
    14 locate_tele p "depth &origin &lat &lon 
     16locate_tele p "depth &origin &lat &lon &clat &clon 
    1517param set epi_latitude "lat 
    1618param set epi_longitude "lon 
    1719param set origin_time "origin 
     20param set sta_latitude "clat 
     21param set sta_longitude "clon 
    1822 
    1923param get depth_type &depth_type 
  • SHX/trunk/SeismicHandler/commands/locate_tele.py

    r1163 r1165  
    1616    URI:http://www.seismic-handler.org/portal/wiki/ShLocateTele 
    1717    """ 
    18     numberOfParameters = [1,2,5] 
     18    numberOfParameters = [1,2,5,7] 
    1919    parameterQueries = [ 
    2020        { 
     
    4040        { 
    4141            "text": "symbol lon", 
     42            "type": "str", 
     43            "question": False, 
     44        }, 
     45        { 
     46            "text": "symbol center lat", 
     47            "type": "str", 
     48            "question": False, 
     49        }, 
     50        { 
     51            "text": "symbol center lon", 
    4252            "type": "str", 
    4353            "question": False, 
     
    6777        if len(self.parameters) > 4: 
    6878            lonsym = self.parameters[4][1:] 
     79        clatsym = None 
     80        if len(self.parameters) > 5: 
     81            clatsym = self.parameters[5][1:] 
     82        clonsym = None 
     83        if len(self.parameters) > 6: 
     84            clonsym = self.parameters[6][1:] 
    6985        #try: 
    70         origin, lat, lon = locateTeleEvent( phase, depth ) 
     86        origin, lat, lon, clat, clon = locateTeleEvent( phase, depth ) 
    7187        #except: 
    7288        #    return 
     
    7490        self.symbols.set( latsym, "%g" % lat ) 
    7591        self.symbols.set( lonsym, "%g" % lon ) 
     92        if clatsym: 
     93            self.symbols.set( clatsym, "%g" % clat ) 
     94        if clonsym: 
     95            self.symbols.set( clonsym, "%g" % clon ) 
  • SHX/trunk/SeismicHandler/modules/seismics.py

    r1163 r1165  
    1515from SeismicHandler.modules.stations import Stations 
    1616from obspy.core.util.geodetics import gps2DistAzimuth 
     17from obspy.fdsn.client import Client 
    1718try: 
    1819    from geographiclib.geodesic import Geodesic 
     
    7273        origin = xphase.picktime - ttrav - residtime 
    7374 
    74     return (origin,elat,elon) 
     75    return (origin,elat,elon,center_lat,center_lon) 
    7576 
    7677 
     
    444445 
    445446#------------------------------------------------------------------------------- 
     447 
     448 
     449def compareLocation( origin, lat, lon, depth, cmplist, 
     450    centerlat=None, centerlon=None ): 
     451 
     452    """ 
     453    Compare location with results from other sources using FDSN webservice. 
     454    """ 
     455 
     456    toltime = 120. 
     457    evpar = {} 
     458    evpar['latitude'] = lat 
     459    evpar['longitude'] = lon 
     460    evpar['maxradius'] = 5. 
     461    evpar['minmagnitude'] = 4.0 
     462    evpar['starttime'] = origin - toltime 
     463    evpar['endtime'] = origin + toltime 
     464    evpar['includeallorigins'] = False 
     465    evpar['includeallmagnitudes'] = False 
     466    for src in cmplist.split(','): 
     467        client = Client( src ) 
     468        evlist = client.get_events( **evpar ) 
     469        for ev in evlist: 
     470            if len(ev.origins) < 0: 
     471                continue 
     472            orig = ev.origins[0] 
     473            magn = ev.magnitudes[0] 
     474            origdiff = origin - orig.time 
     475            dist, az, baz = gps2DistAzimuth( lat, lon, orig.latitude, 
     476                orig.longitude ) 
     477            kmdist = dist / 1000. 
     478            degdist = kmdist / DEG_TO_KM 
     479            print "%s: locdiff %3.1f km or %4.2f deg, timediff %3.1f s" % (src, 
     480                kmdist,degdist,origdiff) 
     481            if centerlat == None or centerlon == None: 
     482                continue 
     483            dist, az, baz = gps2DistAzimuth( centerlat, centerlon, 
     484                orig.latitude, orig.longitude ) 
     485            evdist = dist / (1000.*DEG_TO_KM) 
     486            pslo = getPhaseSlownesses() 
     487            model = TauPyModel(model="iasp91") 
     488            arr = model.get_travel_times( source_depth_in_km=depth, 
     489                distance_in_degree=evdist, phase_list=pslo.keys() ) 
     490            for phase in pslo.keys(): 
     491                ownslowness, ownaz, sloerr, azerr = pslo[phase] 
     492                print "dbg:", phase, ownslowness 
     493                cmpval = None 
     494                for a in arr: 
     495                    print "dbg: arr dump", a.phase.name, a.ray_param_sec_degree 
     496                    if a.phase.name == phase: 
     497                        cmpval = a.ray_param_sec_degree 
     498                        break 
     499                if cmpval != None: 
     500                    print "dbg: slownesses", phase, ownslowness, cmpval 
     501 
     502 
     503#------------------------------------------------------------------------------- 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1164 r1165  
    22172217        self.addEntry( eventsMenu, 'Plot Location', 
    22182218            'Simple map with stations and epicenter', self.OnPlotLocation ) 
     2219        self.addEntry( eventsMenu, 'Compare Location', 
     2220            'Compare own location with others', self.OnCompareLocation ) 
    22192221        # phase menu 
    22202222        phaseMenu = wx.Menu() 
     
    27272729            % (lat,lon,title) ) 
    27282730         
     2731    def OnCompareLocation( self, e ): 
     2732        "plotterWindow: events menu entry." 
     2733        _sendShCommand( "shx_menu_compare_location" ) 
     2734         
    27292735    def OnSaveTracesAndParamsQuick( self, e ): 
    27302736        "plotterWindow: control menu entry." 
Note: See TracChangeset for help on using the changeset viewer.