Changeset 1166 for SHX


Ignore:
Timestamp:
08.02.2016 10:01:34 (4 years ago)
Author:
klaus
Message:

obspy import/export commands; begin of GUI help text

Location:
SHX/trunk/SeismicHandler
Files:
3 added
5 edited

Legend:

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

    r1163 r1166  
    514514        for station in phaselist.phasedict.keys(): 
    515515            for phase in phaselist.phasedict[station]: 
     516                if phase.comp == None: 
     517                    comp = "" 
     518                else: 
     519                    comp = phase.comp 
    516520                fp.write( "@PHASE DEFINE %s %s %s %s %s\n" % (station, 
    517521                    fromUTCDateTime(phase.picktime),phase.name, 
    518                     phaselist.picktypeName(phase.picktype),phase.comp) ) 
     522                    phaselist.picktypeName(phase.picktype),comp) ) 
    519523        for station in maglist.getStations(): 
    520524            for magtype in maglist.getMagnitudeTypes(station): 
  • SHX/trunk/SeismicHandler/commands/beam.py

    r1158 r1166  
    112112    def absToRelLocations( self, traces ): 
    113113        """ 
    114         Should use obspy utlGeoKm. !!! 
    115114        Returns relative locations of stations. 
    116115        """ 
  • SHX/trunk/SeismicHandler/commands/help.py

    r1152 r1166  
    99from SeismicHandler.modules.traces import Traces as BaseTraces, traces_from_list 
    1010from SeismicHandler.basics import timeit 
     11from SeismicHandler.config import Settings 
    1112import os 
    1213 
     
    160161        cmd = self.parameters[0] 
    161162 
    162         if cmd: 
     163        if cmd == 'GUI': 
     164            tpath = os.path.join(os.path.split(__file__)[0], 
     165                "..", "data", "help.txt") 
     166            textdisplay = Settings.config.misc.textdisplay[0] 
     167            os.system( "%s %s &" % (textdisplay,tpath) ) 
     168        elif cmd: 
    163169            url = "https://www.seismic-handler.org/wiki/Sh%s" % cmd.capitalize() 
    164170            shellcmd = "wget -O - %s | html2text" % url 
  • SHX/trunk/SeismicHandler/commands/phase.py

    r1161 r1166  
    225225        ax.set_xlabel( "time since origin (s)" ) 
    226226        mind = min(dists) 
    227         maxd = max(dists)*1.1 
    228         for pname,slope,color in lineinfo: 
     227        maxd = mind + (max(dists)-mind)*1.1 
     228        for pname,slope,offset,color in lineinfo: 
    229229            if islocal: 
    230230                slope /= DEG_TO_KM 
     231                offset *= DEG_TO_KM 
    231232                lab = "%s (%4.2f km/s)" % (pname,(1./slope)) 
    232233            else: 
    233                 lab = "%s (%g s/deg)" % (pname,slope) 
    234             ax.plot( [mind*slope, maxd*slope], [mind, maxd], c=color ) 
    235             plt.annotate( lab, xy=(maxd*slope,maxd*1.01), fontsize=9, 
     234                lab = "%s (%4.2f s/deg)" % (pname,slope) 
     235            ax.plot( [offset+mind*slope, offset+maxd*slope], 
     236                [mind, maxd], c=color ) 
     237            maxdan = mind + (maxd-mind)*1.01 
     238            plt.annotate( lab, xy=(offset+maxd*slope,maxdan), fontsize=9, 
    236239                horizontalalignment='center', color=color ) 
    237240        ax.scatter( times, dists, c=colors, edgecolors=colors ) 
     
    290293        lineinfo = [] 
    291294        for pname in phasedict.keys(): 
    292             slope = 0. 
    293             for dist,ptime in phasedict[pname]: 
    294                 slope += ptime/dist 
    295             slope /= float(len(phasedict[pname])) 
    296             lineinfo.append( (pname,slope,coldict[pname]) ) 
     295            ## simple mean of slopes: 
     296            #slope = 0. 
     297            #for dist,ptime in phasedict[pname]: 
     298            #    slope += ptime/dist 
     299            #slope /= float(len(phasedict[pname])) 
     300            # line fit 
     301            xv, yv = zip(*phasedict[pname]) 
     302            m, b = np.polyfit( xv, yv, 1 ) 
     303            print "dbg: polyfit", m, b 
     304            lineinfo.append( (pname,m,b,coldict[pname]) ) 
    297305        return (zip(*(tinfo+info)),lineinfo) 
    298306                 
  • SHX/trunk/SeismicHandler/modules/wx_.py

    r1165 r1166  
    20972097            'Complete metadata of traces using FDSN webserver', 
    20982098            self.OnCompleteMeta ) 
     2099        fileMenu.AppendSeparator() 
     2100        self.addEntry( fileMenu, 'Import ObsPy Traces', 
     2101            'Read data traces (pickle-)dumped in obspy', self.OnImportObspy ) 
     2102        self.addEntry( fileMenu, 'Export Traces to ObsPy', 
     2103            'Write data traces ready for obspy (pickle-)loading', 
     2104            self.OnExportObspy ) 
    20992105        fileMenu.AppendSeparator() 
    21002106        self.addEntry( fileMenu, '&Quit\tCtrl+Q', 'Quit Graphics', self.OnQuit ) 
     
    23082314        self.addEntry( controlMenu, 'Refresh', 
    23092315            'Refresh display', self.OnUserRefresh ) 
     2316        # help menu 
     2317        helpMenu = wx.Menu() 
     2318        self.addEntry( helpMenu, 'Help', 
     2319            'Help on GUI', self.OnHelp ) 
    23102320        # test menu 
    23112321        testMenu = wx.Menu() 
     
    23242334        menubar.Append( magnMenu, 'Magnitude' ) 
    23252335        menubar.Append( controlMenu, 'Control' ) 
    2326         menubar.Append( testMenu, 'Test' ) 
     2336        menubar.Append( helpMenu, 'Help' ) 
     2337        #menubar.Append( testMenu, 'Test' ) 
    23272338        self._menuitems['TraceScrollOff'].Enable(False) 
    23282339        self._menuitems['TraceScrollUp'].Enable(False) 
     
    25792590            "meta all complete /addr=%s" % ap.getValueAsString('readws_server') 
    25802591        ) 
     2592     
     2593    def OnImportObspy( self, e ): 
     2594        "plotterWindow: file menu entry, import obspy data." 
     2595        style = wx.FD_OPEN | wx.FD_FILE_MUST_EXIST 
     2596        dlg = wx.FileDialog( self, "Select Data File", defaultDir=os.getcwd(), 
     2597            style=style ) 
     2598        dlg.ShowModal() 
     2599        filelist = dlg.GetPaths() 
     2600        retcode = dlg.GetReturnCode() 
     2601        dlg.Destroy() 
     2602        if retcode != wx.ID_OK: 
     2603            return 
     2604        cmd = '\n'.join(["@IMPORT %s" % fname.replace('/','\\') \ 
     2605            for fname in filelist]) 
     2606        _sendShCommand( cmd ) 
     2607 
     2608    def OnExportObspy( self, e ): 
     2609        "plotterWindow: file menue entry, export traces for obspy use." 
     2610        style = wx.FD_SAVE | wx.FD_OVERWRITE_PROMPT 
     2611        dlg = wx.FileDialog( self, "Select Output File", defaultDir=os.getcwd(), 
     2612            style=style ) 
     2613        dlg.ShowModal() 
     2614        outfile = dlg.GetPath() 
     2615        retcode = dlg.GetReturnCode() 
     2616        dlg.Destroy() 
     2617        if retcode != wx.ID_OK: 
     2618            return 
     2619        cmd = "@EXPORT %s ALL" % outfile.replace('/','\\') 
     2620        _sendShCommand( cmd ) 
    25812621 
    25822622    def OnSortByDistance( self, e ): 
     
    28942934        _infodisplayStatus( 'ml Plot magnitudes' ) 
    28952935        _sendShCommand( "magnitude plot ml" ) 
     2936     
     2937    def OnHelp( self, a ): 
     2938        "plotterWindow: help menu entry." 
     2939        _sendShCommand( "help gui" ) 
    28962940 
    28972941 
Note: See TracChangeset for help on using the changeset viewer.