Giter Site home page Giter Site logo

crotwell / taup Goto Github PK

View Code? Open in Web Editor NEW
56.0 11.0 17.0 37.99 MB

Flexible Seismic Travel-Time and Raypath Utilities

License: GNU Lesser General Public License v3.0

Java 86.11% Fortran 0.63% Perl 0.01% C 1.86% Shell 0.17% Python 0.33% Makefile 0.21% TeX 10.22% Roff 0.03% Groovy 0.03% HTML 0.33% Ruby 0.05%

taup's Introduction

Alt TauP Maven Central javadoc taup DOI

                       The TauP Toolkit

        Flexible Seismic Travel-Time and Raypath Utilities
                          Version 2.6
                  http://www.seis.sc.edu/taup/

The TauP Toolkit is a seismic travel time calculator. In addition to travel times, it can calculate derivative information such as ray paths through the earth, pierce and turning points. It handles many types of velocity models and can calculate times for virtually any seismic phase with a phase parser. It is written in Java so it should run on any Java enabled platform.

The manual for the TauP Toolkit can be found in doc/taup.pdf. A copy of the TauP paper published in SRL can be found in doc/SRL_paper/taup_srl_with_figs.pdf.

Scripts for the various tool for both unix (sh) and windows (bat) are in the bin directory.

The website for the TauP Toolkit is: http://www.seis.sc.edu/TauP

If you like TauP and would like to cite it, please use the following: Crotwell, H. P., T. J. Owens, and J. Ritsema (1999). The TauP Toolkit: Flexible seismic travel-time and ray-path utilities, Seismological Research Letters 70, 154โ€“160.

Comments, criticism and random remarks may be sent to [email protected].

Install

Macintosh

Using homebrew:

brew tap crotwell/crotwell
brew install taup
taup --help

Linux

Using snap:

sudo snap install taup
taup --help

Note: I have only tested this on Ubuntu on amd64.

You may also get the lastest development version via

sudo snap install taup --channel=--channel=latest/edge

Manually

Download tarball here: https://www.seis.sc.edu/downloads/TauP/TauP-2.6.0.tgz or from the releases section on Github https://github.com/crotwell/TauP/releases

tar zxf and add the bin to your PATH.

Rebuilding

You should not need to rebuild TauP unless you are trying to help debug, but if you do, you can build it using the Gradle wrapper script.

gradlew eB

will build TauP in build/explode.

taup's People

Contributors

crotwell avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

taup's Issues

Support core phase names PKPab, PKPbc, PKPcd and PKPdf

In core studies, PKIKP is often named as PKPdf, PKiKP is sometimes named as PKPcd.

In the distance of ~146 - 152 degree, there are two arrivals for PKP phase. These two PKP arrivals are always named as PKPab and PKPbc in core studies, which turns in the upper and lower outer core, respectively.

I think it's very useful if TauP can support these core phase names, especially PKPab and PKPbc.

Reference: http://www.isc.ac.uk/standards/phases/

Nonunique results or predicts no results.

Hi, Philip.
I am trying to use TauP program to estimate the takeoff angles of the seismic rays. But it gives me more than one result. In some case, it gives me no result. Could you please explain to me why this happen?

In this case, it gives no result and I am trying estimate the takeoff-angle of P-wave.

1994.289.05.10.04.0280.IU.YSS.00.BHZ.M.SAC
4.63018
Model: iasp91
Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist |
(deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name
4.63 102.1 P

In this case, it gives me more than one results.
1994.289.05.12.10.0280.IU.MA2.00.BHZ.M.SAC
13.8884

Model: iasp91
Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist
(deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name

13.89 102.1 P 192.31 13.001 72.99 42.70 13.89 = P
13.89 102.1 P 197.13 11.112 54.82 35.42 13.89 = P
13.89 102.1 P 197.19 11.230 55.69 35.86 13.89 = P

Thanks!

PKP_Bdiff and PKP_Cdiff

Dear Philip,

The message is just for reminder to add support for the two phases into Taup package in the future.

All the best,

Xiaobo

Incorrect travel time if station depth is nonzero

TauP version:

taup_time --version                    
edu.sc.seis:TauP:2.4.2 Fri Mar 10 17:38:18 EST 2017

This issue can be reproduces with following steps:

  1. PcP travel time with receiver depth=0 km:
taup_time -mod prem -ph PcP -h 500 -deg 0   

Model: prem
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name 
-----------------------------------------------------------------------------------
    0.00   500.0   PcP      450.81     0.000      0.00     0.00     0.00   = PcP
  1. PcP travel time with receiver depth=200 km:
 taup_time -mod prem -ph PcP -h 500 -deg 0 --stadepth 200

Model: prem  Receiver Depth: 200.0 km
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name 
-----------------------------------------------------------------------------------
    0.00   500.0   PcP      446.84     0.000      0.00     0.00     0.00   = PcP 
  1. Travel time of upgoing P wave, with the source at 200 km and receiver at 0 km:
taup_time -mod prem -ph p -h 200 -deg 0                  

Model: prem
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name 
-----------------------------------------------------------------------------------
    0.00   200.0   p         25.76     0.000    180.00     0.00     0.00   = p    

The result shows: 450.81 != 446.84 + 25.76.

negative depths in taup velmerge

merging a crustal model with negative depths (from elevation) throws error:

Error starting tool: velmerge edu.sc.seis.TauP.NoSuchLayerException: TauP Exception: VelocityModel Exception: No layer contains radius -0.3 in this velocity model.
edu.sc.seis.TauP.NoSuchLayerException: TauP Exception: VelocityModel Exception: No layer contains radius -0.3 in this velocity model.
at edu.sc.seis.TauP.VelocityModel.layerNumberBelow(VelocityModel.java:353)
at edu.sc.seis.TauP.VelocityModel.replaceLayers(VelocityModel.java:474)
at edu.sc.seis.TauP.TauP_VelocityMerge.start(TauP_VelocityMerge.java:38)
at edu.sc.seis.TauP.ToolRun.main(ToolRun.java:134)

Maybe should increase "radius of earth" to compensate, or redo layers in crustal model to make all depths positive.

Problem with taup pierce for multiple diffractions

There seems to be a bug in the times outputted by taup pierce with multiple diffractions. An example is

taup pierce -deg 210 -ph PdiffPdiff
PdiffPdiff at  1697.88 seconds at   210.00 degrees for a      0.0 km deep source in the iasp91 model with rayParam    4.439 s/deg.
    0.00     0.0     0.0
   -0.04    20.0     3.5
   -0.08    35.0     5.9
   -0.64   210.0    28.8
   -1.38   410.0    53.6
   -2.54   660.0    81.9
  -49.20  2889.0   409.8
  -55.80  2889.0   424.5
 -102.46   660.0   752.4
 -103.62   410.0   780.7
 -104.36   210.0   805.5
 -104.92    35.0   828.4
 -104.96    20.0   830.7
 -105.00     0.0   834.3
 -105.04    20.0   837.8
 -105.08    35.0   840.2
 -105.64   210.0   863.1
 -106.38   410.0   887.9
 -107.54   660.0   916.2
 -154.20  2889.0  1244.1
 -160.80  2889.0  1258.8
 -207.46   660.0  1586.7
 -208.62   410.0  1615.0
 -209.36   210.0  1639.8
 -209.92    35.0  1662.6
 -209.96    20.0  1665.0
 -210.00     0.0  1668.6

The discrepancy is between the first time quoted (1697.88 seconds) and the last time of the pierce points (1668.6 seconds). I think it arises in line 2944 of SeismicPhase.java.

double refractTime = (refractDist*currArrival.getRayParam()) / headOrDiffractSeq.size()

I don't think it should be / headOrDiffractSeq.size() as that's already taken care of in refractDist

Need help with creating custom velocity model in TauP

Hello all,

I wanted to create a velocity model based on the CRUST1.0 dataset for my analysis work, is there any tutorial or if anyone can give me some leads on how to start with that I would really be thankful. Currently I have downloaded the CRUST1.0 data as fortran files and also matlab file.

optional arg to use geocentric distance calc for station event

TauP is spherical, and event lat/lon to station lat/lon calculation is currently always spherical. This seems the most honest way to calc distances, but for the earth it might be better to allow using geocentric, ie use flattening of earth 1/298 when calculating the angular distance. Maybe also allow specify flattening param in case of other planets.

compilation error

when I use gradle or gradle build.gradle it faces an error listed below:

`nima@NimaDa:~/TauP-2.4.5$ gradle

FAILURE: Build failed with an exception.

  • Where:
    Build file '/home/nima/TauP-2.4.5/build.gradle' line: 10

  • What went wrong:
    A problem occurred evaluating root project 'TauP'.

Could not find method mavenRepo() for arguments [{url=http://www.seis.sc.edu/software/maven2}] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 0s
nima@NimaDa:~/TauP-2.4.5$`

what is the problem and how to fix it?

Zoom feature in TauP window for Travel Path?

Hello, so I'm using Taup in WSL both in command line and TauP GUI window, but in GUI window the travel paths look very much minimised so is there any way to zoom in/out for clear visibility of paths. I have tried using cursor, keyboard shortcuts like Ctrl+Shift++ but it isn't working. Thanks

Unexpected Core Diffracted phases

Hi,

I'm using taup_curve to generate travel-time curves for a Poisson solid model of the Sun.

The travel times look fine, except for the occurrence of Pdiff and Sdiff phases (at 120 degrees and 180 degrees only), with exactly the same travel time. I can't see that there would be anything physical for these phases to diffract off of (there are no discontinuities, only gradual transitions).

Do you have any idea why this might be?

Files attached (I have saved the .tvel as a .txt because I cannot upload .tvel).

Thanks,
Ben

solar_constant_density_backup copy.txt

solartt.pdf

Blocking of admissable diffracted paths?

First off, thank you @crotwell for the taup toolkit!

I've noted a change in behaviour from TauP 2.5.0 and 2.6.0 that seems to block diffracted paths that were once admissable. For example, on 2.5.0 one can do:

taup time -deg 220 -ph PedPdiffKP

Model: iasp91
Distance   Depth   Phase        Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name         Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name 
----------------------------------------------------------------------------------------
  140.00     0.0   PedPdiffKP   1506.17     4.439     13.39    13.39   220.00   = PedPdiffKP

Whereas on 2.6.0 the toolkit states

Warning: Error with phase=PedPdiffKP
TauP Exception: TauModel Exception: can't be downgoing as we are already below: 6 5
Skipping this phase

I think the problem lies in this commit:
b534c8e
which maybe too zealous in blocking allowable phases. I understand this was introduced to block phases like ScScS, and a similar bug report on this has been filed for obspy (obspy/obspy#2774). I'm hoping to port your fix to obspy to correct the bad phases there, but I want to make sure I don't kill off phases that are ok.

Add time column in taup_path

Hi,

I would like to add the time column in the output of taup_path. The code is easy to modify and I have done that (by appending calcTime after radius) without any Java experience. However, I have been stuck with re-compiling the code on Mac OS (Sierra).

The re-compiling issue is the same as here:
#6

Since this is a piece of cake for you, I am wondering if you could spend a few minutes to compile the code for me? The modified source code is attached.

Thanks a lot,
Kuangdai

protected void printDistRadius(Writer out, double calcDist, double radius, double calcTime) throws IOException {
        if (outputFormat.equals(JSON)) {
            throw new RuntimeException("JSON output for TauP_Path not yet supported.");
        } else if (outputFormat.equals(SVG)) {
            double radian = (calcDist-90)*Math.PI/180;
            double x = radius*Math.cos(radian);
            double y = radius*Math.sin(radian);
            out.write(outForms.formatDistance(x)
                      + "  "
                      + outForms.formatDistance(y)
                      + "  "
                      + outForms.formatTime(calcTime));
        } else {
            out.write(outForms.formatDistance(calcDist)
                      + "  "
                      + outForms.formatDepth(radius)
                      + "  "
                      + outForms.formatTime(calcTime));
        }
        if (!gmtScript && !outputFormat.equals(SVG)) {
            printLatLon(out, calcDist);
        }
    }

// as well as four calls to the above function, e.g., line 195 & 222:
printDistRadius(out, calcDist, radiusOfEarth - calcDepth, calcTime);

use arrival other than first in setsac

from Luis:

I want to use taup_setsac to tag the arrival time of phases
that have traveled more than 180 deg but for which there is
also a minor-arc arrival ( e.g. SKKS at 255 deg, h = 35km ).

sac automatically setc gcarc to the minor arc distance.

Is there some trick to tell taup_setsac about to use the
major arc distance ?

^ and v notations for the inner core discontinuities

Hi Philip,
The Taup manual that I have says that ^ and v notations are not implemented for the inner core. I, however, believe that time has come to implement these for the inner core. There are a few inner core models, in which internal discontinuities are predicted. Thus, it would be nice to verify multipathing effects due to these discontinuities with taup toolkit.

Thanks !

Januka

taup_time -km gives wrong results if the model radius is not 6371

Here are the results using the standard iasp91 model:

$ taup_time -mod iasp91 -ph P -deg 60

Model: iasp91
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   60.00     0.0   P        608.28     6.876     21.02    21.02    60.00   = P

$ taup_time -mod iasp91 -ph P -km 6672

Model: iasp91
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   60.00     0.0   P        608.30     6.876     21.02    21.02    60.00   = P

Then I create a custom model, by removing the innermost 400 km from the iasp91 mode.
Here the custom model is attached (custom.txt)

# smaller radius leads to smaller travel time. Correct!
$ taup_time -mod custom.tvel -ph P -deg 60

Model: custom
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   60.00     0.0   P        575.92     6.511     21.27    21.27    60.00   = P

However, the following command gives the wrong results. 6672 km is not equivalent to 60ยฐ for non-Earth models, so the traveltime is also wrong.

$ taup_time -mod custom.tvel -ph P -km 6672

Model: custom
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   60.00     0.0   P        575.94     6.511     21.27    21.27    60.00   = P

Problem with underside reflections

I cannot seem to get the syntax correct for an underside reflection. From the manual, if I wanted to predict the travel-time of a P-wave reflected off an internal crustal interface at 20 km depth (i.e. similar path as a pP but the reflection point is an interface in the crust rather than the free surface), the phase should be named 'p^20P' and the TauP call would be,

taup_time -mod ak135 -deg 60 -h 100 -ph p^20P

But TauP returns the error,

Error starting tool: time java.lang.NumberFormatException: empty String

Am I doing something wrong in defining the phase name or is there a problem with the TauP phase parsing? Interestingly, P^20P phase gives a valid result.

Thanks for the help!

Question: is it possible to take into consideration a station elevation?

Dear @crotwell ,

after you helped me with the issue #25 I was able to make use of the TauP output as the travel time tables for my locator. The locator uses the tables to compute the travel times of an event pick from the pick station to the event location: that is it fetches the TauP output values at station-to-event-location distance and event-location depth (it actually interpolates multiple values to reach the desired resolution).

That is working fine at regional scale, but on a small scale the station elevations might become a relevant component of the travel time and that is not considered at the moment in my locator.

A workaround I thought of would be to generate multiple travel time tables, one for each station. Each travel time table would be created altering the velocity model by adjusting the depth of the first layer accordingly to the station elevation. I believe this would work but It would also mean to generate a travel time table for each station, which is quite annoying.

So I was wondering if there is an equation that I can use to approximate the TauP output values to adjust for a station elevation. I am asking this because it might be obvious for you and you might have already done it.

thanks
Luca

taup_setsac can not accept a directory name

The TauP documentation says:

If the given filename is a directory, TauP SetSac will recursively look for files within that directory to process. Thus, a large directory structure of Sac files can be processed easily.

but it doesn't work as expected:

taup_setsac -mod iasp91 -ph p-0,s-1 -evdpkm ./SACDIR/
./SACDIR/ is not a file.
Warning: I don't understand the following arguments, continuing:
./SACDIR/

Give the ray path length for a phase

Ray path length, is the path length of the wave from the source to the receiver. For a certain velocity model, hypocenter, and station location, I want TAUP to give the path length of a certain phase.

Update the GMT scripts to GMT >=5 syntax

GMT 4.5.18 was released on July 1, 2018 and is the final release of GMT 4.x series. Now there are more and more people using GMT 5.x or 6.x, but TauP tools (e.g., taup_time and taup_curve are still generating GMT 4 scripts. It would be better if TauP can produce GMT 5 scripts.

Add --stadepth to taup table documentation

It would be nice to be able to specify the station depth when computing travel time tables. An --stadepth argument could be passed to taup_table in the same way as taup_time.

Question: can derivatives and take-off angles be computed?

Dear developers, I am not an advanced user of the tool, so please forgive me if my question is naive. I used TauP Toolkit to generate travel time tables and it worked very well. Thank you!

Since I would like to use TauP Toolkit for a locator, I would like to have some additional information other than the travel times, that is the take-off angles and the partial derivatives. Is there a way to generate this information with TauP Toolkit?

scattering as phase

Propagate phase to a scattering point (depth, distance from source), scatterer acts as new source with travel time and distance then added to the true source to scatterer leg.

  • Phase naming for the scatter point within a phase name?
  • Can phase have multiple paths to the scatterer, eg from above and from below, triplications?
  • Perhaps a range of scattering distances within one calc, or grid of depth,distance pairs for efficiency?
  • Should off-azimuth scattering be allowed, so scatterer is (depth, distance, azimuth) and receiver is also (distance, azimuth)?
  • Consider both forward and backwards scattering.
  • Upgoing and downgoing from scatterer. Probably existing nomenclature can handle this.
  • Output of the ray parameter of the source to scatterer leg, which will be different from the arrival ray parameter?

Surface ocean phase propagation

Hi,

Is it possible to include a fluid surface layer (i.e. v_s =0) in TauP?

I'm trying to test calculations for a 4km thick layer of ocean (with source and receivers below the ocean bottom); but at present I have to set v_s to be very small (about 10e-3) to get TauP to run. That makes even the direct S-waves very slow (for some reason that I don't quite understand, as I would expect them not to propagate through the low v_s region at all).

Thanks
Ben

`taup_pierce -pierce` of TauP v2.4.0 does not work

taup_pierce -pierce of TauP v2.4.0 does not output the travel time at the depth specified by -pierce option.

Ouput from TauP v2.3.0:

$ /opt/TauP-2.3.0/bin/taup_pierce -mod prem -h 600 -deg 45 -ph PKiKP -pierce 5049.5
> PKiKP at   944.86 seconds at    45.00 degrees for a    600.0 km deep source in the prem model with rayParam    1.023 s/deg.
    0.00   600.0     0.0
    0.07   670.0     6.9
    4.96  2891.0   188.1
   21.23  5049.5   427.9        <--- travel time at depth 5049.5
   22.26  5149.5   437.5
   23.29  5049.5   447.1        <--- travel time at depth 5049.5
   39.55  2891.0   686.9
   44.44   670.0   868.1
   44.52   600.0   875.0
   44.71   400.0   895.8
   44.85   220.0   916.5
   44.99    24.4   940.9
   44.99    15.0   942.3
   45.00     0.0   944.9

Output from TauP v2.4.0:

$ /opt/TauP-2.4.0/bin/taup_pierce -mod prem -h 600 -deg 45 -ph PKiKP -pierce 5049.5
> PKiKP at   944.83 seconds at    45.00 degrees for a    600.0 km deep source in the prem model with rayParam    0.973 s/deg.
    0.00   600.0     0.0
    0.07   670.0     6.9
    4.69  2891.0   187.8
   22.27  5149.5   437.5
   39.86  2891.0   687.2
   44.47   670.0   868.1
   44.54   600.0   875.0
   44.72   400.0   895.8
   44.86   220.0   916.5
   44.99    24.4   940.9
   44.99    15.0   942.3
   45.00     0.0   944.9

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.