Changeset 1216 for SHX


Ignore:
Timestamp:
22.02.2017 21:33:49 (3 years ago)
Author:
klaus
Message:

bugfixes; possibility to save requested data in ml estimator

Location:
SHX/trunk/SeismicHandler
Files:
3 edited

Legend:

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

    r1191 r1216  
    88from obspy.core import AttribDict, UTCDateTime 
    99from obspy.io.sh.core import to_utcdatetime as toUTCDateTime 
     10from obspy.geodetics import gps2dist_azimuth 
     11from obspy.taup import TauPyModel 
     12 
    1013 
    1114__all__ = ["Property", "Singleton","timeit","timestore"] 
     
    230233        self.parser = [ 
    231234            self.EmscWebline, 
     235            self.SzoWebservice, 
    232236            self.SzoWebline, 
    233237            self.SzoAmplDecayAlert, 
     
    323327            return None 
    324328        return(origin,lat,lon) 
     329     
     330    def SzoWebservice( self, text ): 
     331        """ 
     332        SZO webservice page. 
     333        Example: 
     334        25 21-Feb-2017_13:12:22 Q 4DR *first (offline) det*  49.64   11.44 \ 
     335            (Pegnitz, S of Bayreuth   ) m:1.9 trc  amp  res  mag  
     336        Time in column 2 is usually onset time (at GRA1) not origin. 
     337        """ 
     338        tmp = text.split() 
     339        try: 
     340            lineno = int( tmp[0] ) 
     341        except: 
     342            return None 
     343        try: 
     344            origin = toUTCDateTime( tmp[1] ) 
     345        except: 
     346            return None 
     347        if len(tmp[2]) != 1: 
     348            return None 
     349        if tmp[2].upper() != tmp[2]: 
     350            return None 
     351        if not '(' in text: 
     352            return None 
     353        tmp = text.split('(') 
     354        try: 
     355            latlontext = tmp[-2] 
     356        except: 
     357            return None 
     358        tmp = latlontext.split() 
     359        try: 
     360            lat = float( tmp[-2] ) 
     361            lon = float( tmp[-1] ) 
     362        except: 
     363            return None 
     364        # correct onset (at GRA1) to origin 
     365        dist, az, baz = gps2dist_azimuth( lat, lon, 49.6918877, 11.2217202 ) 
     366        dist /= (1000.*111.19) 
     367        if dist < 0.5: 
     368            corrtime = 0. 
     369        else: 
     370            plist = ['P','PKIKP','Pdiff'] 
     371            model = TauPyModel(model='iasp91') 
     372            arrivals = model.get_travel_times( source_depth_in_km=5., 
     373                distance_in_degree=dist, phase_list=plist ) 
     374            corrtime = None 
     375            for phase in plist: 
     376                for res in arrivals: 
     377                    if res.name == phase: 
     378                        corrtime = res.time 
     379                        break 
     380                if corrtime != None: break 
     381            else: 
     382                print "cannot compute travel time for distance", dist 
     383                return None 
     384        return ((origin-corrtime),lat,lon) 
    325385     
    326386    def SzoAmplDecayAlert( self, text ): 
  • SHX/trunk/SeismicHandler/cmdscripts/LOCAL_MAGNITUDE_ESTIMATOR.SHC

    r1207 r1216  
    99default 4  ;;  plotfile 
    1010default 5  ;;  result file 
     11default 6  ;;  save file 
    1112 
    1213sdef rtime 
     
    3132meta all complete /del_incomplete 
    3233sort_by_distance #2 #3 
     34if #6 eqs ;; goto saveok: 
     35    writeo #6 all mseed 
     36saveok: 
    3337@THEOPHASE LOCAL ALL Pg,Sg,Pn,Sn 
    3438calc i &trcno = $dsptrcs 
  • SHX/trunk/SeismicHandler/cmdscripts/SHX_UTIL_EVENTINFO.SHC

    r1155 r1216  
    3636 
    3737@CALC S &PHASE = Pg 
     38goto phaseok: 
    3839 
    3940pn: 
Note: See TracChangeset for help on using the changeset viewer.