Home

The TauP Toolkit Manual - University of South Carolina

image

Contents

1. h 200 ph S P deg 57 4 would give you pierce points for S and P for a 200 kilometer deep source at a distance of 57 4 degrees While taup pierce turn mod prem h 200 ph S P deg 57 4 would give you just the points that each ray turns from downgoing to upgoing Using rev would give you all points that the ray changes direction and under gives just the underside reflec tions Using the pierce option taup pierce mod prem h 200 ph S sta 12 34 2 evt 28 122 pierce 2591 nodiscon would give you just the points at which S crossed a depth of 2591 kilometers from an event at 28 S 122 E to a station at 12 N 34 2 E Because we specified the latitudes and longitudes we also get the latitudes and longitudes of the pierce points useful for making a map view of where the rays encounter the chosen depth Here is the output distance depth latitude and longitude respectively gt S at 1424 1 seconds at 93 7 degrees for a 200 0 km deep source in the prem model 31 58 2591 00 17 86 89 39 61 44 2591 00 3 90 62 43 3 4 TauP Path TauP Path uses a model like TauP Time but generates the angular distances from the epicenter at which the spec ified rays pierce path that the phases travel The output is in GMT Wessel and Smith 1995 psxy format and is placed into the file taup_path gmt If you specify the gmt flag then this is a complete script with the appropriate psxy command prepended so if you have
2. 8 0 0 9 9 3500 9 0 O20 10 8 5149 5 1043 00 1242 inner core 5149 5 11 335 127 5500 Tt 34 6 1209 6371 Tiss 37 T3 Note that we have chosen the named discontinuities format so that we could specify the location of the major boundaries The file consists of two types of lines those that specify velocity at a depth and those that specify the name of a discontinuity See section 5 1 for more details 7 2 Creating the Model If we put this into a file called simpleMod nd then we can run taup create to create a model sampling We use the verbose option to get some additional output In particular it outputs the radius to the surface for this model Having an incorrect radius which could happen for instance if the last line of the model file was lost will generate incorrect times for phases that otherwise appear fine This can be a difficult error to track down after the fact because there is nothing wrong with the model it is just not what was intended As they say garbage in garbage out piglet 10 gt taup_create nd simpleMod nd verbose TauP_Create starting filename simpleMod nd Done reading velocity model Radius of model simpleMod is 6371 0 User s Guide 26 Parameters are taup create minDeltaP 0 1 sec radian taup create maxDeltaP 8 0 sec radian taup create maxDepthInterval 115 0 kilometers taup create maxRangelnterval 1 75 degrees taup create maxInterpError 0
3. GMT installed you can just taup path mod iasp91 h 550 deg 74 ph S ScS sS sScS gmt User s Guide 9 sh taup_path gmt ghostview taup_path ps and you have a plot of the ray paths To avoid possible plotting errors for phases like Sdiff the ray paths are interpolated to less than 1 degree increments The usage is piglet 5 gt taup_path help Usage taup_path arguments or for purists java edu sc seis TauP TauP_Path arguments Arguments are ph phase list comma separated phase list pf phasefile file containing phases mod el modelnam use velocity model modelname for calculations Default is iasp91 h depth source depth in km Distance is given by deg degrees distance in degrees km kilometers distance in kilometers assumes radius of earth is 6371km or by giving the station and event latitude and lonitude assumes a spherical earth sta tion lat lon sets the station latitude and longitude evt lat lon sets th vent latitude and longitude gmt outputs path as a complete GMT script o outfile output is redirected to outfile debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that 3 5 TauP TauP is unlike the rest of the tools in that it doesn t have any functionality beyond the other tools It is just a GUI that uses TauP_Time TauP_Pierce and T
4. by a purist using our nomenclature 4 Numbers except velocities for kmps phases see 10 below represent depths at which interactions take place For example P410s represents a P to S conversion at a discontinuity at 410km depth Since the S leg is given by a lower case symbol and no reflection indicator is included this represents a P wave converting to an S wave when it hits the interface from below The numbers given need not be the actual depth the closest depth corresponding to a discontinuity in the model will be used For example if the time for P410s is requested in a model where the discontinuity was really located at 406 7 kilometers depth User s Guide 15 the time returned would actually be for P406 7s The code taup time would note that this had been done Obviously care should be taken to ensure that there are no other discontinuities closer than the one of interest but this approach allows generic interface names like 410 and 660 to be used without knowing the exact depth in a given model 5 If a number appears between two phase legs e g S410P it represents a transmitted phase conversion not a reflection Thus S410P would be a transmitted conversion from S to P at 410km depth Whether the conversion occurs on the down going side or up going side is determined by the upper or lower case of the following leg For instance the phase S410P propagates down as an S converts at the 410 to a P continues dow
5. ee eR ee eee ERA ER Ee Re ee 19 G2 Wael i hh havea we bbb bees Gh eee we NN 20 DS ei ieh hate MPR ee NN 22 7 Examples 24 TA Neat Model FICS ES ba DAL AUD de OPES e 24 fee Keene he Model be se Be Ree EEE AE eee OOS EEE EEE 24 Pe ANAL IMMER 6 2 05 2b es Cae OBR Oe ERS Ou Beye ek Oo Sea o e o 25 Pe ad AAN 26 Vo Path isa eres e A AA Se be 27 User s Guide da Travel IMEI o cosis a cee hho a Gis Reales dare ego A S O ca Gis SS do we Ee A Installing B Troubleshooting 27 28 28 29 29 30 User s Guide ili Disclaimer and License The TauP Toolkit Flexible Seismic Travel Time and Raypath Utilities Copyright C 1998 2010 University of South Carolina This program is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 of the License or at your option any later version This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program if not write to the Free Software Foundation Inc 59 Temple Plac Suite 330 Boston MA 02111 1307 USA The current version of The TauP Toolkit can be found at http www seis sc e
6. first argument and the phase names are passed as a comma or space separated string in the second argument All of the User s Guide 24 phase names that can be used in the interactive code can be used here Also duplicates are checked for and eliminated before being added The method signature is int TauPAppendPhases TauPStruct taup char phaseString TauPCalculate calculates all arrivals for all of the current phases for the distance specified in the second argu ment An initialized TauPStruct is passed as the first argument The method signature is int TauPCalculate TauPStruct taup double degrees TauPGetNumArrivals returns the number of arrivals found with the last call to TauPCalculate above A negative number indicates an error An initialized TauPStruct is passed as the first argument The method signature is int TauPGetNumArrivals TauPStruct taup TauPGetArrival returns the ith arrival found with the last call to TauPCalculate above The arrival is returned as a jobject which is mainly useful if it will be used as an argument for another java method call NULL is returned if an error occurs An initialized TauPStruct is passed as the first argument The method signature is jobject TauPGetArrival TauPStruct taup int arrivalNum TauPGetArrivalName returns the name of the ith arrival found with the last call to TauPCalculate above as a character pointer An initialized TauPStruct is passed as the first argument and the arr
7. only one can be put into the choosen header TauP_SetSac assumes that the first arrival is the most important and uses it An improved method would allow a phase to have several header variables User s Guide 11 associated with it so that all arrivals could be marked Currently however only the first arrival for a phase name is used Warning TauP_SetSac assumes the EVDP header has depth in meters unless the evdpkm flag is used in which case kilometers are assumed This may be a problem for users that improperly use kilometers for the depth units Due to much abuse of the SAC depth header units a warning message is printed if the depth appears to be in kilometers i e it is lt 1000 and evdpkm is not used This can be safely ignored if the event really is less than 1000 meters deep See the SAC manual Tull 1989 for confirmation The SAC files must have EVDP and the O marker set Also if GCARC or DIST is not set then TauP_SetSac can calculate a distance only if STLA STLO EVLA and EVLO are set The user should be very careful about previously set header variables TauP_SetSac will overwrite any previously set t user headers A future feature may do more careful checking but the current version makes no effort to verify that the header is undefined before writing 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 p
8. pierce tool with the prem model and add the phases we are interested in We will only do P and S in PREM for simplicity set taup java new list edu sc seis TauP TauP Pierce String prem Staup clearPhaseNames Staup parsePhaseList java lang String P S Here we get and then loop over all the discontinuities in the model in order to find the one closest to 400 kilometers depth set disconArray Staup getDisconDepths set maxDiff 99999999 User s Guide 22 set bestDepth 0 for set i 0 i lt SdisconArray length incr i set depth disconArray get i if expr abs Sdepth 400 lt SmaxDiff set maxDiff expr abs depth 400 set bestDepth Sdepth Loop over all events and stations and output the pierce point at the 400 kilometer discontinuity We use the getLastPiercePoint depth method as we want the receiver side pierce point If we wanted the source side point we could have used the getFirstPiercePoint depth method for set eventIndex 0 SeventIndex lt array size elat incr eventIndex Staup depthCorrect Sedepth Sevent Index for set staIndex 0 SstaIndex lt array size slat incr staIndex set gcarc java call edu sc seis TauP SphericalCoords distance Selat Sevent Index Selon SeventIndex Sslat stalndex slon stalndex set az java call edu sc seis TauP SphericalCoords azimuth Selat SeventIndex Selon SeventIndex Sslat stalndex Sslon SstaIndex Staup calculate gca
9. synthetics The calculation of 7 is a necessary step for WKBJ synthetics and so this is a natural direction It likely involves significant effort however User s Guide 4 3 Tools Tools included with the TauP package taup time calculates travel times taup_pierce calculates pierce points at model discontinuities and spec ified depths taup path calculates ray paths depth versus epicentral distance taup a GUI that incorporates the time pierce and path tools This requires swing and hence may not work on some javal 1 systems taup curve calculates travel time curves time versus epicentral dis tance taup table outputs travel times for a range of depths and distances in an ASCII file taup setsac puts theoretical arrival times into sac header variables taup create creates a taup model from a velocity model taup console Python scripting of TauP Each tool is a Java application and has an associated wrapper to make execution easier sh scripts for UNIX and bat files for windows The applications are machine independent but the wrappers are OS specific For example to invoke TauP_Time under UNIX you could type java Dtaup model path S TAUPPATH edu sc seis TauP TauP_Time mod prem or simply use the script that does the same thing taup time mod prem Each tool has a help flag that will print a usage summary as well as a version flag that will print the version 3 1 Default Parameters Each of the tools use
10. that the use of TauP Create is no longer required as the various tools can read velocity models directly and effectively call TauP Create internally However if a model file will be used repeatedly using a precomputed taup file is more efficient The usage is piglet 8 gt taup create help TauP Create starting Usage taup create arguments or for purists java edu sc seis TauP TauP Create arguments Arguments are To specify the velocity model nd modelfile named discontinuities velocity file tvel modelfil tvel velocity file ala ttimes User s Guide 13 debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that model file is the ASCII text file holding the velocity model The nd format is preferred because the depths and thus identities of the major internal boundaries can be unambiguously determined making phase name pars ing easier See section 7 for an example For compatiblity we support the t vel format currently used by the latest ttimes package Kennett et al 1995 The output will be a file named after the name of the velocity file followed by taup For example taup_create nd prem nd produces prem taup 3 10 TauP Console TauP Console is an instance of the Jython http www jython org interpreter with the TauP classes preloaded along with some helper functionality This allows pyt
11. time curves for these phases we can do that using taup curve It works very similarly to taup path except that we don t need to specify a distance piglet 12 gt taup curve mod simpleMod h 143 2 ph P S PcP ScS SKS sS SS PKKP o simpleModCurves gmt gmt piglet 13 gt 1s simpleModCurves gmt simpleMod nd simpleModPaths gmt simpleMod taup simpleModPaths ps piglet 14 gt sh simpleModCurves gmt piglet 15 gt ls simpleMod nd simpleModCurves gmt simpleModPaths gmt simpleMod taup simpleModCurves ps simpleModPaths ps Again we have a Postscript file to view Both of these commands generate scripts that are ok for a quick look but you will almost certainly want to modify them for any important use User s Guide 29 A Installing The installation for TauP under UNIX is quite simple And with Java s platform independence the package should be usable on a Mac or Windows machine A 1 Unix 1 Install a Java 1 4 or better virtual machine If your system already has Java 1 4 or better installed then you can skip to the next step You can test this with java version If it isn t there or the version is less than 1 4 you need to get and install Java If you have a Sun Solaris workstation you need only down load the version from JavaSoft Point your browser to http www javasoft com products and download either the Java Development Kit or the Java Runtime Environment The Java Runtime Environment jre is the small
12. velocity model modelname for calculations Default is iasp9l h depth source depth in km gmt outputs curves as a complete GMT script reddeg velocity outputs curves with a reducing velocity deg sec redkm velocity outputs curves with a reducing velocity km sec o outfile output is redirected to outfile instead of taup_curve gmt debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that 3 7 TauP_SetSac TauP_SetSac uses the depth and distance information in SAC Tull 1989 file headers to put theoretical arrival times into the t0 t 9 header variables The header variable for a phase can be specified with by a dash followed by a number for instance S 9 puts the S arrival time in t 9 If no header is specified then the time will be inserted in the first header variable not allocated to another phase starting with O If there are no header variables not already allocated to a phase then the additional phases will not be added to the header Note that this does not refer to times that are already in the SAC file before TauP_SetSac is run They will be overwritten The ray parameter in seconds per radian is also inserted into the corresponding user 0 user9 header Note that triplicated phases are a problem as there is only one spot to put a time For example in iasp91 S has three arrivals at 20 degrees but
13. with taup phase list There is no default value but the default value for taup phase list will not be used if there is a taup phase file property taup depth precision precision for depth output the default is 1 decimal digit Note that this is precision not accuracy Just because you get more digits doesn t imply that they have any meaning taup distance precision precision for distance output the default is 2 decimal digits Note that this is precision not accuracy Just because you get more digits doesn t imply that they have any meaning taup latlon precision precision for latitude and longitude output the default is 2 decimal digits Note that this is precision not accuracy Just because you get more digits doesn t imply that they have any meaning taup time precision precision for time the default is 2 decimal digits Note that this is precision not accuracy Just because you get more digits doesn t imply that they have any meaning taup rayparam precision precision for ray parameter the default is 3 decimal digits Note that this is precision not accuracy Just because you get more digits doesn t imply that they have any meaning taup maxRefraction The maximum degrees that a Pn or Sn can refract along the moho Note this is not the total distance only the segment along the moho The default is 20 degrees taup maxDiffraction The maximum degrees that a Pdiff or Sdiff can diffract along the CMB Note this is not the tot
14. 00 51 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 37 30 2891 00 gt ScS at 1298 74 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 37 29 2891 00 User s Guide 28 gt SKS at 1293 35 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 37 31 2975 11 gt sS at 1326 73 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 37 82 LOTT LEY gt SS at 1571 74 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 18 09 1001 76 56 03 1001 76 7 5 Path Perhaps now we should make a plot of the paths Lets use only command line options and send the output to the file simpleModPaths gmt instead of the default taup_path gmt piglet 8 gt taup_path mod simpleMod h 143 2 deg 75 ph P S PcP ScS SKS sS SS PKKP o simpleModPaths gmt gmt piglet 9 gt ls simpleMod taup simpleMod nd simpleModPaths gmt piglet 10 gt sh simpleModPaths gmt piglet 11 gt 1s simpleMod taup simpleModPaths ps simpleMod nd simpleModPaths gmt Now we have a Postscript file simpleModPaths ps that we can look at or print Notice that we used the gmt flag so that the output is a complete GMT script If you don t use gmt then the output is just the XY points which might be later used by another script Of course this only works if you have GMT installed 7 6 Travel Time Curves If we want to see the travel
15. 03 seconds taup create allowInnerCores tru Slow model time 39714 801 P layers 907 S layers T model time 7480 Done Saving simpleMod taup Done Done piglet 11 gt 1s simpleMod nd simpleMod taup The file simpleMod taup contains all of the information about the model This process needs to be done only once for each velocity model The times appearing in the output are in milliseconds and do not reflect the startup time for Java 7 3 Travel Times Now that we have the model sampled computing travel times is easy We will use taup_time to get the travel times for some familiar phases P S PcP ScS SKS sS and SS in our simple model for a 143 2 kilometer deep source and at a distance of 75 degrees We use the mod command line flag to specify the model and then do the rest after it starts First taup time reads a standard Java Properties file taup that it finds in my home directory See section 3 1 for more details If there are phases you are interested in frequently or model you use often or source depth then you can put them in this file as your defaults Then we enter a depth for the source 143 2 kilometers using the h option By default the model is for a surface source Some phase names have been read in from the file but we want to specify our own phase list so we use the c option to clear the phases and are prompted to enter the new phases Enter them separated by commas or spaces After th
16. 1998 that is intended to be used as a companion to this manual While this manual mainly focuses on the praticalities of using the codes the paper is able to go into more detail on the methodology User s Guide 2 Distribution 2 1 What and Where The current distribution of the TauP package is 2 0 dated August 3 2010 The distribution directory obtained from either the gzipped tar file or the jar file contains README exampleProperties HISTORY COPYING StdModels bin lib doc apidocs jacl native Maple src modelFiles The taup jar file contains everything needed for a working version of the package This greatly simplifies the getting started information example properties file change log the GNU GPL license standard models included in the jar in lib directory containing wrapper scripts to start the tools each will print a usage with a help command line argument all the Java classes included in the package along with saved models for prem iasp91 and ak135 in the TauP jar file a directory with Postscript and pdf versions of this manual installation instructions are in the appendix a directory with the javadoc output from the source code mainly useful for writing new java programs that use the TauP package a directory with Jacl examples for accessing the TauP package directly within scripts a directory with a C library and example program that use the Java Native Interface providing
17. 4 3 3 410 8 9 4 7 3 5 410 9 1 4 9 3 7 670 10 2 5 5 4 0 670 10 7 5 9 4 4 2891 13 7 7 2 5 6 outer core outer core designates that this is the core mantle boundary 2891 8 0 0 0 9 9 5149 35 10 3 0 0 1252 inner core inner core makes this the inner outer core boundary 5149 5 11 345 12 7 6371 11 35 347 13 User s Guide 18 5 2 Using Saved Tau Models There are three ways of finding a previously generated model file First as a standard model as part of the distribution Second a list of directories and jar files to be searched can be specified with the taup model path property Lastly the path to the actual model file may be specified TauP searches each of these places in order until it finds a model that matches the name 1 Standard Model TauP first checks to see if the model name is associated with a standard model Several standard models are included within the distributed jar file They include iasp91 Kennett and Engdahl 1991 prem Dziewon ski and Anderson 1984 ak135 Kennett Engdahl and Buland 1995 jb Jeffreys and Bullen 1940 1066a Gilbert and Dziewonski 1975 1066b Gilbert and Dziewonski 1975 pwdk Weber and Davis 1990 sp6 Morelli and Dziewonski 1993 and herrin Herrin 1968 Lastly we have included qdt which is a coarsely sampled version of iasp91 Kennett and Engdahl 1991 It is samller and thus loads quicker but has significantly reduced accuracy We will consider adding ot
18. Java Properties to allow the user to specify values for various parameters The properties all have default values which are overridden by values from a Properties file The tools use taup in the current directory which overwrites values read in from taup in the user s home directory In addition many of the properties can be overridden by command line arguments The form of the properties file is very simple Each property is set using the form taup property name value one property per line Comment lines are allowed and begin with a Additionally the names of all of the properties follow a convention of prepending taup to the name of the property This helps to avoid name collisions when new properties are added The currently used properties are taup model name the name of the initial model to be loaded iasp91 by default taup model path search path for models There is no default but the value in the taup file will be concatinated with any value of taup model path from the system properties For example the environment variable TAUPPATH is put into the system property taup model path by the wrapper shell scripts User s Guide 5 taup source depth initial depth of the source 0 0 km by default taup phase list initial phase list combined with taup phase file The defaults are p s P S Pn Sn PcP ScS Pdiff Sdiff PKP SKS PKiKP SKiKS PKIKP SKIKS taup phase file initial phase list combined
19. PcP 700 51 4 312 T50 PCP Foe 0 143 2 S 1263 17 11 040 75 0 8 TISO 143 2 SKS 1293335 7 283 75 0 SKS 75 0 143 2 Scs 1298 74 S135 75 0 ScS 75 0 143 2 ss 1326 73 11 192 75 0 ss 75 0 143 2 SS 1571 74 14 640 75 0 SS Enter Distance or Option hrpclseabmg q We could also have done this same example by just using the command line options piglet 5 gt taup time mod simpleMod h 143 2 deg 75 ph P S PcP ScS SKS sS SS PKKP Model simpleMod Distance Depth Phase Travel Ray Param Purist Purist deg km Name Time s p s deg Distance Name 75 0 143 2 P 686 33 5 721 75 0 P 75 0 143 2 PcP 700 51 4 312 75 0 PcP 75 0 143 2 S 1263 17 11 040 75 0 8 FS 0 143 2 SKS 1293 35 7 283 75 0 SKS 75 0 143 2 sas 1298 74 8 135 75 0 Ses Pdi 0 143 2 ss 1326 73 11 152 75 0 ss 750 143 2 ss 1571 74 14 640 75 0 SS 7 4 Pierce Points Now where are the turning points for these rays We can run taup_pierce with the turn flag and find out Lets specify the parameters on the command line The output is distance in degrees followed by depth in kilometers Note that SS has two turning points piglet 7 gt taup_pierce mod simpleMod h 143 2 deg 75 ph P S PcP ScS SKS sS SS PKKP turn gt P at 686 33 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 31 23 210 32 gt S at 1263 17 seconds at 75 0 degrees for a 143 2 km deep source in the simpleMod model 37 20 2005 24 gt PcP at 7
20. TauModel a collection of phases is also needed Again there are several ways of accomplish ing this parsePhaseList String is likely the easiest method A String is passed with the phase names separated by commas and the phases are extracted and appended Phases can also be input more directly with setPhaseNames String which sets the phases to be those in the array and appendPhaseName String which appends a phase to the list Note that these methods do not do any checking to assure the names are valid phases this is done at a later stage Of additional interest are clearPhaseNames which deletes all current phase names and getPhaseNames which returns an array of Strings with the phase names timeTool parsePhaseList P Pdiff S Sdiff PKP SKS The next step is to correct the TauModel for the source depth The TauModel is created with a surface source but can be corrected for a source at depth given in kilometers with the depthCorrect double method In addition if a correction was actually needed it calls recalcPhases which verifies that the times and distances for the phases in the phase list are compatible with the current model and depth recalcPhases is also called by calculate in case changes were made to the list of phase names timeTool depthCorrect 100 0 It remains only to calculate arrivals for a particular distance using the calculate double method which takes an angular distance in degrees The arri
21. The TauP Toolkit Flexible Seismic Travel Time and Raypath Utilities Version 2 0beta Documentation H Philip Crotwell Thomas J Owens Department of Geological Sciences University of South Carolina http www seis sc edu crotwell seis sc edu Copyright c 1998 2010 Board of Trustees of the University of South Carolina All Rights Reserved User s Guide 1 Contents 1 Overview 1 2 Distribution 2 24 Whatand Where sas aa es sa ee a Ae aR a eee E 2 2 2 Advantages ol the Current Release o ek ee a ae E ee eG 2 23 POTES Plans o gk a a O wa eek he RLS Bho sk aS Shale A a EL 3 3 Tools 4 2 1 Default Parameters gt goes cn hee beak OES Boe oe eek ee a eS 4 Se TP DME ca kya a eek Ca ee we ek ye do E Soe Cee ea bb ee eo 6 Sa TP PEES t pra Soh Ge aed es See GES GD A ROD E A AGE ae a AS 7 a oes ka SA Ra ee AGE KS GS AR ea eG A ER E 8 SI DANESE je os go es Sons Se a ee ae ge CRT eB gh ar a el Ae A ae RN 9 Se TAME MWe aa Go A a She Se aes AGE RG cd a A A Gr as 10 Dol A es soe bo a RO Be Ae AE Behar ace a Ae a aw he as 10 Dost SAM Ne a a a ERA ENE tye A eee Be Koa 11 3 A A e ae Ge et Se Eee Ey ee Sine Bae Eee ee tye Re es Bow ARG 12 SAO TARP Onsale ui Do BO YEA BE SOS Bae Ey eRe OR MS Bw i ee 13 4 Phase naming in TauP 14 5 Creating and Saving Velocity Models 17 SAd Velocity Model Piles passas be bea eee EAE REE awe A 17 32 Using Saved Tat Models a Go mass cas a ama geo ba BG ee ba ee a ore 18 6 Programming Interface 19 CL Java 2 ee
22. a basic interface between C programs and the TauP package a directory with Maple scripts showing the time and distance equations used a directory with all of the java source code a directory with the text files for each of the velocity models installation process and reduces potential errors See appendix A for detailed installation instructions 2 2 Advantages of the Current Release The increased flexibility of this package provides significant advantages Among these are 1 The ability to use many different models We include a variety of previously created models as well as the option of creating your own models A conscious effort was made to make as few assumptions as possible about the nature of the model Therefore even models that have very different structures than common global models can be used 2 Phase parsing Phases are not hard coded into the program instead the phase names are parsed This creates an opportunity for the study of less common phases that are not present in previous travel time calculators 3 Programming interface for Java Because of the use of the Java programming language all of the tools exist simultaneously as both applications and libraries Thus any Java code that has a need for travel times can load and manipulate the objects within this package In addition Jacl the Java implementation of the popular Tcl scripting language provides a simple means of directly accessing the public methods w
23. acent rays is greater than this then a new slowness sample is inserted halfway between the two existing slowness samples The default is 1 75 degrees taup create maxInterpError Maximum error for linear interpolation between successive sample in seconds TauP_Create uses this to try to insure that the maximum error due to linear interpolation is less than this amount Of course this is only an approximation based upon an estimate of the curvature of the travel time curve for surface focus turning waves In particular the error for more complicated phases is greater For instance if the true error for P at 30 degrees is 0 03 seconds then the error for PP at 60 degrees would be twice that 0 06 seconds Used by TauP_Create to create new models The default is 0 03 seconds User s Guide 6 taup create allowInnerCoreS Should we allow J phases S in the inner core Used by TauP_Create to create new models The default is true Setting it to false slightly reduces storage and model load time Phase files specified with the taup phase file property are just text files with phase names separated by either spaces commas or newlines In section 4 the details of the phase naming convention are introduced By and large it is compatible with traditional seismological naming conventions with a few additions and exceptions Also for compatiblity with ttimes you may specify ttp ttp tts tts ttbasic or ttall to get a phase list corresponding to the tt
24. al distance only the segment along the CMB The default is 60 degrees taup path maxPathInc maximum distance in degrees between points of a path This does a simple linear inter polant between nearby values in order to make plots look better There is noo improvement in the accuracy of the path taup table locsat maxdiff maximum distance in degrees for which Pdiff or Sdiff are put into a locsat table Be yond this distance Pdiff and Sdiff will not be added to the table even though they may show up in the output of TauP_Time Instead the next later arriving phase if any will be used instead The default is 105 degrees taup create minDeltaP Minimum difference in slowness between successive slowness samples This is used to decide when to stop adding new samples due to the distance check Used by TauP_Create to create new models The default is 0 1 sec rad taup create maxDeltaP Maximum difference in slowness between successive slowness samples This is used to split any layers that exceed this slowness gap Used by TauP_Create to create new models The default is 8 0 sec rad taup create maxDepthInterval Maximum difference between successive depth samples This is used immedi ately after reading in a velocity model with layers being split as needed Used by TauP_Create to create new models The default is 115 km taup create maxRangelnterval Maximum difference between successive ranges in degrees If the difference in distance for two adj
25. at we just need to enter the distance 75 degrees The arrivals are printed as distance depth phase name time and then ray parameter The last two entries represent a purists view of the distance and phase name For instance PKKP travels the long way around the earth and so the true distance traveled is not the event to station distance The purist s view of the name is to show the difference between the true depths of discontinuities and the depth specified in the phase name For instance Pv400P in our simple model is really a reflection off of the discontinuity at 410 kilometers depth The purist s name reflects this and is preceded by an asterisk to make the difference easier to notice The distance is repeated to make it easier to parse the output from within scripts piglet 4 gt taup time mod simpleMod Enter for new depth to recalculate to append phases to clear phases to list phases for new station lat lon for new event lat lon for new azimuth for new back azimuth for new model or to quit QsocoouHham so User s Guide 27 Enter Distance or Option hrpclseabmq h Enter Depth 143 2 Enter Distance or Option hrpclseabmq c Enter phases ie P p PcP S P S PcP ScS SKS sS SS PKKP Enter Distance or Option hrpclseabmg 75 Model simpleMod Distance Depth Phase Travel Ray Param Purist Purist deg km Name Time s p s deg Distance Name 75 0 143 2 P 686 33 5 721 75 0 P 75 0 143 2
26. auP_Path This is a nice feature of the java language in that each of these applications exists simultaneously as a library The GUI does not currently have full access to all the things that these three tools can do and certainly has a few rough edges but can be useful for browsing Lastly it currently does more work than it has to in that it always calculates times pierce points and paths even if only one is actually needed So it may be a bit pokey User s Guide 10 3 6 TauP Curve TauP Curve creates a GMT style xy formated file of time versus distance This can be used to create the familar travel time curves but for only the specified phases and depth The curves are linearly interpolated between known sample points and can thus be used to get a feel for the coarseness of sampling For example curves for s S ScS and Sdiff for a 500 kilometer deep event in PREM could be generated by taup curve mod prem h 500 ph s S ScS Sdiff gmt The gmt option prepends a GMT psxy command to the output file creating a runnable script instead of just a data file The output is put in taup curve gmt by default so to view the results sh taup curve gmt ghostview taup curve ps The uasage is piglet 6 gt taup curve help Usage taup curve arguments or for purists java edu sc seis TauP TauP Curve arguments Arguments are ph phase list comma separated phase list pf phasefile file containing phases mod el modelnam use
27. be converted using TauP_Create to avoid reprocessing them each time the tool starts User s Guide 20 6 Programming Interface In addition to the command line interface there are three ways to access the toolkit from within other programs The most straightforward is through Java Using Jacl provides a very nice way to write scripts that use the tools without repeatedly starting up the Java virtual machine and reloading models Lastly there is a C language interface but it is a bit less friendly Descriptions of all three with example programs are below 6 1 Java The TauP package should be easily used by future Java programs An example is given illustrating the basics of using the package to generate travel times First instantiate a TauP_Time object This provides methods for generating and using travel times and should be sufficient for most purposes However in order to actually generate anything useful the TauP_Time object needs a TauModel It can be loaded within the constructor for TauP_Time as a TauModel or with the model name It can changed later using either the TauP_Time setTauModel TauModel method of TauP_Time or by passing the modelname to TauP_Time loadTauModel String The later is likely easier and has the advantage of searching for the model in the distribution jar file the locations in the taup model path property and the current directory TauP Time timeTool new TauP Time mymodel In addition to the
28. bout them I can be reached via email at crotwell O seis sc edu A 2 MacOS Please read the Unix instructions since all of it is applicable to Mac OSX There is no longer support for the older Mac Classic OS A 3 Windows Please read the Unix instructions since much of it is applicable to all platforms You will likely want to add the bin directory containing the bat files that start up the tools to your PATH User s Guide 31 B Troubleshooting There are a few idiosyncrocies about the codes and Java in general that you may run into 1 Out of memory errors Java s default maximum memory for most uses should be fine but some very complicated models using a large number of phases may exceed this limit A simple fix is to change the maximum memory to be a larger amount The Xmx command line argument to the java command does this So to set the maximum amount of memory to 128 megabytes you could say java Xmx128m edu sc seis TauP TauP_Path For convenience you may wish to make this change more permanent by adding it to the scripts i e taup time etc Also note that the m at the end specifies megabytes if you omit it then the value is 128 bytes which is probably not what you want 2 Garbled jar files Care should be taken with the jar files when transferring them from one operating system to another Certain file transfer utilities make an attempt to fix text files by changing RETURN LINEFEED sequences to just LINEFEED or jus
29. by placing the jar file into the jre lib ext subdirectory of your java installation We no longer believe this is a good practice and if you have done this in the past you will need to remove the old version in order to prevent a conflict 5 Set the location of the TauP directory in your TAUP_HOME environment variable This should be done in your cshre or login For instance if you put Taup 1 1 5 in usr local share then you could set the TAUP_HOME to be setenv TAUP_HOME usr local share TauP 1 1 5 for csh tcsh or for bash export TAUP_HOME usr local share TauP 1 1 5 Please make sure that an old version of taup jar is not on your CLASSPATH as this will cause a conflict 6 Put the bin directory of the distribution directory in your PATH environment variable S TAUP_HOME bin User s Guide 30 for instance These wrapper scripts are not essential but they cut down on typing They are in the bin directory of the distribution and are simple UNIX sh scripts and bat files for windows 7 Lastly you may need to either source your login and cshrc files or execute the rehash command to make the shell reevaluate the contents of your PATH That s it If you have problems or encounter bugs please mail them to me Please try to be as specific as possible I am also interested in ideas for additional features that might make this a more useful program Of course I can make no promises but I would be glad to hear a
30. d with the last call to TauPCalculate above An initialized TauPStruct is passed as the first argument and the arrival number is passed as the second A negative number is returned if there is an error The method signature is double TauPGetArrivalRayParam TauPStruct taup int arrivalNum TauPGetArrivalSourceDepth returns the source depth of the ith arrival found with the last call to TauPCalculate above An initialized TauPStruct is passed as the first argument and the arrival number is passed as the second A negative number is returned if there is an error The method signature is double TauPGetArrivalSourceDepth TauPStruct taup int arrivalNum TauPDestroy destroys the java virtual machine and frees the used memory An initialized TauPStruct is passed as the first argument A nonzero error is returned if there is an error The method signature is int TauPDestroy TauPStruct taup User s Guide 25 7 Examples Here is a walk through of a use of the tools on a UNIX system 7 1 Velocity Model Files First we want to create a model There are several models contained within the TauP distribution but for com pleteness we will create a new one from scratch A very simple model file might look like this 0 0 5 0 3 0 Zt 20 5 0 3 0 264 20 Quo 347 2 49 33 6 50 37 249 mantle 33 7 8 4 4 343 410 8 9 4 7 SD 410 9 1 4 9 Se 670 10 2 5 5 4 0 670 10 7 5 9 4 4 1000 11 5 6 4 4 6 2000 12 9 6 9 Swed 2891 13 7 Tie 5x6 outer core 2891
31. delDir usr local lib localModels jar or you could place a line in the taup file in your home directory that accomplished the same thing again all one line taup model path home xxx MyModels jar home xxx ModelDir usr local lib localModels jar If you place models in a jar TauP assumes that they are placed in a directory called Models before they are jarred For example you might use taup_create to create several taup models in the Models directory and then create a jar file jar cf MyModels jar Models Including a for the current working directory with the taup model path is not necessary since we always check there see 3 below but it may be used to change the search order 3 The last place TauP looks is for a model file specified on the command line So if you generate new Model taup and want to get some times you can just say taup_tim mod newModel taup or even User s Guide 19 just taup_tim mod newModel as TauP can add the taup suffix if necessary A relative or absolute pathname may precede the model e g taup time mod OtherDir newModel taup New in version 2 0 is the ability of the tools to load a velocity model directly and handle the create functionality internall so in addition to taup files the nd and tvel model files can be loaded if there is not a taup file found Note that there is extra work involved in processing the velocity file and so frequently used models should still
32. du Bug reports and comments should be directed to H Philip Crotwell or Tom Owens at the TauP email list taup seis sc edu The TauP Toolkit is available free under the terms of the GNU General Public License found in the gpl 3 0 txt file within the distribution It gives you specific rights to use modify and redistribute this software Please be aware of section 5 of the license which specifically prevents you from redistributing this software incorporated in whole or on part into to a work unless that work is also covered by the GNU General Public License Please see the Free Software Foundation s web site www fsf org for more information User s Guide 1 1 Overview The algorithms employed within the TauP package are based on the method of Buland and Chapman 1983 The IASPEI ttimes package is a widely used implementation of the methodology The main benefit of this new package is a marked increase in flexibility It will handle many types of velocity models instead of being limited to just a few A new phase parser allows times to be computed for virtually any seismic phase The use of Java enables this code to be run on a variety of machine and operating system types without recompiling This package also offers the extraction of derivative information such as ray paths through the earth pierce and turning points as well as travel time curves A paper has been submitted to Seismological Research Letters Crotwell et al
33. er of the two only allowing you to run java applications and applets The Java Development Kit jdk is larger but allows you to compile and run java programs Unless space is at a premium I suggest getting the jdk A quick test to see if you have the jdk is to see if javac the java compiler is installed The command which javac or just javac should tell you There are ports of Java for many other operating systems and as long as they are a Java 1 4 or better compatible implementation the tools should execute correctly JavaSoft maintains a list of these ports at http www javasoft com cgi bin java ports cgi Just follow the instructions that come with your Java distribution 2 Download TauP X X X tar gz or TauP X X X zip Make sure to get the most recent version replacing the X s in the file name They can be found at http www seis sc edu 3 Unpack the distribution gunzip TauP X X X tar gz tar xvf TauP X X X tar or jar xvf TauP X X X zip or unzip TauP X X X zip This will create a directory called TauP X X X Inside will be the files and directories listed in chapter 2 Distribution 4 Put this directory someplace It really doesn t matter where although a central place might make admin istration easier usr local or usr local share are good choices If you don t have superuser privileges then your home directory is fine Previous versions of TauP recommended installing taup jar as a standard extension
34. for shear waves Only depth V and V are required The remaining parameters while not needed for travel time calculations are included to allow the model to be used for other purposes in the future The model is assumed to be linear between given depths and repeated depths are used to represent discontinuities The second type of line within the nd format specifies one of the three major internal boundaries mantle for the crust mantle boundary outer core for the outer core mantle boundary or inner core for the inner core outer core boundary These labels are placed on a line by themselves between the two lines representing the sample points above and below the depth of the discontinuity These help to determine where a particular phase propagates For instance in a model that has many crustal and upper mantle layers from which discontinuity does the phase PvmP reflect Explicit labeling eliminates potential ambiguity One further enhancement to these model file formats is the support for comments embedded within the model files As in shell scripting everything after a on a line is ignored In addition C style and C style comments are recognized A very simple named discontinuities model file might look like this x below is a simple named discontinuities model x 0 0 50 3 0 2a7 20 Swi 3200 Bad 20 6 0 3 7 2 29 33 6 5 Sak 29 mantle the word mantle designates that this is the moho 33 7 8 4
35. hases and easy to understand is an essential and somewhat challenging step The rules that we have developed are described here Most of phases resulting from these conventions should be familiar to seismologists e g pP PP PcS PKiKP etc However the uniqueness required for parsing results in some new names for other familiar phases In traditional whole earth seismology there are 3 major interfaces the free surface the core mantle boundary and the inner outer core boundary Phases interacting with the core mantle boundary and the inner core boundary are easy to describe because the symbol for the wave type changes at the boundary i e the symbol P changes to K within the outer core even though the wave type is the same Phase multiples for these interfaces and the free surface are also easy to describe because the symbols describe a unique path The challenge begins with the description of interactions with interfaces within the crust and upper mantle We have introduced two new symbols to existing nomenclature to provide unique descriptions of potential paths Phase names are constructed from a sequence of symbols and numbers with no spaces that either describe the wave type the interaction a wave makes with an interface or the depth to an interface involved in an interaction 1 Symbols that describe wave type are P compressional wave upgoing or downgoing in the crust or mantle strictly upgoing P wave in the crust or mantle s
36. hear wave upgoing or downgoing in the crust or mantle strictly upgoing S wave in the crust or mantle compressional wave in the outer core compressional wave in the inner core shear wave in the inner core GHAR QD Wd 2 Symbols that describe interactions with interfaces are m interaction with the moho g appended to P or S to represent a ray turning in the crust n appended to P or S to represent a head wave along the moho e topside reflection off the core mantle boundary i topside reflection off the inner core outer core boundary underside reflection used primarily for crustal and mantle interfaces v topside reflection used primarily for crustal and mantle interfaces diff appended to P or S to represent a diffracted wave along the core mantle boundary kmps appended to a velocity to represent a horizontal phase velocity see 10 below 3 The characters p and s always represent up going legs An example is the source to surface leg of the phase pP from a source at depth P and S can be turning waves but always indicate downgoing waves leaving the source when they are the first symbol in a phase name Thus to get near source direct P wave arrival times you need to specify two phases p and P or use the ttimes compatibility phases described below However P may represent a upgoing leg in certain cases For instance PcP is allowed since the direction of the phase is unambiguously determined by the symbol c but would be named P cp
37. her models to the distribution if they are of wide interest They are included within the distribution jar file but taup can locate them with just the model name 2 Within the taup model path property Users can create custom models and place the stored models in a convenient location If the taup model path property includes those directories or jar files then they can be located The search is done in the order of taup model path until a model matching the model name is found While taup model path is a Java property the shell scripts provided translate the environment variable TAUPPATH into this property The user generally need not be aware of this fact except when the tools are invoked without using the provided shell scripts A more desirable method is to set the taup model path in a properties file See section 3 1 for more details The taup model path property is constructed in the manner of standard Java CLASSPATH which is itself based loosely on the manner of the UNIx PATH The only real differences between CLASSPATH and PATH are that a jar file may be placed directly in the path and the path separator character is machine dependent UNIX is but other systems may vary The taup model path allows you to have directories containing saved model files as well as jar files of models For instance in a UNIX system using the c shell you could set your TAUPPATH to be all one line setenv TAUPPATH home xxx MyModels jar home xxx Mo
38. hon scripting with TauP The usage is taup console scriptfile If scriptfile is given then that file is executed directly if not then an interactive console is started An example of a simple console script is crotwellS taup console taup gt taup gt Set up some parameters taup gt stla 13 taup gt stlo 14 taup gt evla 6 taup gt evlo 3 taup gt evdp 100 taup gt dist ellipDist stla stlo evla evlo taup gt phNameList P S p s p taup gt taup sourceDepth evdp taup gt tMod loadTauModel ak135 taup gt tModDepth tMod depthCorrect evdp taup gt phases taup gt for phName in phNameList phases append SeismicPhase phName tModDepth taup gt for phase in phases a phase getEarliestArrival dist if a None print Ss 3 2f phase name a time P 31737 S 576 18 taup gt User s Guide 14 4 Phase naming in TauP A major feature of the TauP Toolkit is the implementation of a phase name parser that allows the user to define essentially arbitrary phases through the earth Thus the TauP Toolkit is extremely flexible in this respect since it is not limited to a pre defined set of phases Phase names are not hard coded into the software rather the names are interpreted and the appropriate propagation path and resulting times are constructed at run time Designing a phase naming convention that is general enough to support arbitrary p
39. imes options 3 2 TauP Time TauP Time takes a either a taup file generated by TauP Create or a velocity model in nd or tvel format and generates travel times for specified phases through the given earth model The usage is piglet 1 gt taup time help Usage taup time arguments or for purists java edu sc seis TauP TauP Time arguments Arguments are ph phase list comma separated phase list pf phasefile file containing phases mod el modelnam use velocity model modelname for calculations Default is iasp9l h depth source depth in km Distance is given by deg degrees distance in degrees km kilometers distance in kilometers assumes radius of earth is 6371km or by giving the station and event latitude and lonitude assumes a spherical earth sta tion lat lon sets the station latitude and longitude evt lat lon sets th vent latitude and longitude rayp only output the ray parameter time only output travel time o outfile output is redirected to outfile debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that The modelname is from modelname taup a previously created file from TauP Create or a modelname nd or modelname tvel velocity model file If there is insufficient information given on the command line then you start in interactive mode o
40. ithin the package User s Guide 3 2 3 Future Plans There are several ideas for improvements that we may pursue such as 1 A GUI A graphical user interface would greatly improve the usefulness of this package especially for non command line uses such as on the Macintosh or within web browsers The beginings of such a GUI are there in the TauP tool but at present it cannot access all of the functionality of the tools 2 Use of the 7 function In spite of the name TauP does not yet use Tau splines At present I do not believe that this would provide a large improvement over the current linear interpolation but it is likely worth doing 3 Web based applet One of Java s main uses currently is for the development of web based applets An applet is a small application that is downloaded and executed within a web browser This is an attractive opportunity and we have a simple example of one included in this distribution There are difficulties as the network time to download the model files may be unacceptable as well as the lack of support for Java 1 1 in current browsers A client server architecture as well as the continued improvement of commercial web browsers may be able to address these issues 4 1 1D models There is nothing in the method that requires the source and receiver velocity models to be the same With this idea a separate crustal model appropriate to each region could be used for the source and receiver 5 WKBJ
41. ival number is passed as the second NULL is returned if there is an error The method signature is char TauPGetArrivalName TauPStruct taup int arrivalNum TauPGetArrivalPuristName returns the purist s version of the name of the ith arrival found with the last call to TauPCalculate above as a character pointer The puris s name replaces depths with the true depth of interfaces in the phase name for example Pv410P might really be Pv400P An initialized TauPStruct is passed as the first argument and the arrival number is passed as the second NULL is returned if there is an error The method signature is char TauPGetArrivalPuristName TauPStruct taup int arrivalNum TauPGetArrivalTime returns the travel time of the ith arrival found with the last call to TauPCalculate above An initialized TauPStruct is passed as the first argument and the arrival number is passed as the second A negative number is returned if there is an error The method signature is double TauPGetArrivalTime TauPStruct taup int arrivalNum TauPGetArrivalDist returns the travel distance of the ith arrival found with the last call to TauPCalculate above An initialized TauPStruct is passed as the first argument and the arrival number is passed as the second A negative number is returned if there is an error The method signature is double TauPGetArrivalDist TauPStruct taup int arrivalNum TauPGetArrivalRayParam returns the ray parameter of the ith arrival foun
42. n Springer Gilbert F and A M Dziewonski 1975 An application of normal mode theory to the retrieval of structural parameters and source mechanisms from seismic spectra Philisophical Transactions of the Royal Society London A 278 187 269 Herrin E 1968 1968 seismological tables for P phases Bull Seism Soc Am 58 4 1193 1241 Jeffreys H and K E Bullen 1940 Seismological Tables London British Association for the Advancement of Science Burlington House Kennett B L N and E R Engdahl 1991 Traveltimes for global earthquake location and phase identification Geophysical Journal International 105 429 465 Kennett B L N E R Engdahl and R Buland 1995 Constraints on seismic velocities in the Earth from traveltimes Geophysical Journal International 122 108 124 Morelli A and A M Dziewonski 1993 Body wave traveltimes and a spherically symmetric P and S wave velocity model Geophysics Journal International 112 2 178 194 Tull J E 1989 SAC Seismic Analysis Code User s Manual Revision 2 ed Livermore CA Lawrence Livermore National Laboratory Weber M and J P Davis 1990 Evidence of a laterally variable lower mantle structure from P and S waves Geophysics Journal International 102 1 231 255 Wessel P and W H F Smith 1995 New Version of the Generic Mapping Tools released Eos 76 329
43. n turns as a P wave and propagates back across the 410 and to the surface S410p on the other hand propagates down as a S through the 410 turns as an S hits the 410 from the bottom converts to a p and then goes up to the surface In these cases the case of the phase symbol P vs p is critical because the direction of propagation upgoing or downgoing is not unambiguously defined elsewhere in the phase name The importance is clear when you consider a source depth below 410 compared to above 410 For a source depth greater than 410 km S410P technically cannot exist while S410p maintains the same path a receiver side conversion as it does for a source depth above the 410 The first letter can be lower case to indicate a conversion from an up going ray e g p410S is a depth phase from a source at greater than 410 kilometers depth that phase converts at the 410 discontinuity It is strictly upgoing over its entire path and hence could also be labeled p410s p410S is often used to mean a reflection in the literature but there are too many possible interactions for the phase parser to allow this If the underside reflection is desired use the p 4108S notation from rule 7 6 Due to the two previous rules P410P and S410S are over specified but still legal They are almost equivalent to P and S respectively but restrict the path to phases transmitted through turning below the 410 This notation is useful to limit arrivals to just those that t
44. o ttp gives you the phase list corresponding to P in ttimes Similarly there are tts ttp tts ttbasicandttall User s Guide 17 5 Creating and Saving Velocity Models 5 1 Velocity Model Files There are currently two variations of velocity model files that can be read Both are piecewise linear between given depth points Support for cubic spline velocity models would be useful and is planned for a future release The first format is that used by the most recent ttimes codes Kennett et al 1995 t vel This format has two comment lines followed by lines composed of depth Vp Vs and density all separated by whitespace TauP ignores the first two lines of this format and reads the remaining lines The second format is based on the format used by Xgbm Davis and Henson 1993a Davis and Henson 1993b It is referred to here as the nd format for named discontinuities Its biggest advantage is that it can specify the location of the major boundaries and this makes it the preferred format The file consists of two types of lines those that specify velocity at a depth and those that specify the name of a discontinuity The first type of line has between 3 and 6 numbers on a line separated by whitespace They are in order depth in kilometers to the sample point P velocity in kilometers per second S velocity in kilometers per second density in grams per cubic centimeter Qp attenuation for compressional waves and Q attenuation
45. one instance of both the virtual machine as well as the tool to remain active for the whole script You may download jacl from http www scriptics com java Jacl allows a script to create Java objects call any public method of those objects and manipulate their attributes Thus creating a script to do many similar calcuations or a custom application that makes these tools usable in the way you want is as easy as writing a tcl script We present a brief walkthrough of a Jacl script that calculates pierce points for numerous station event pairs The first three lines of the script should start up jacl The second line is a bit of trickery it hides the third line from jacl while allowing sh to see it Jacl takes the backslash to be a line continuation marker and therefore accepts the third line as part of the comment started on the second line This just makes it easier to start up jacl without having to know the exact path in advance bin sh exec jacl 0 x Next we will set up latitudes and longitudes for our stations and events This was modified from a script that read from a CSS database but in order to keep the script self contained we have hardwired it here set slat 0 35 set slon 0 5 set elat 0 125 set elon 0 5 set edepth 0 100 set elat 1 10 set elon 1 110 set edepth 1 100 set elat 2 40 set elon 2 140 set edepth 2 200 set elat 3 65 set elon 3 5 set edepth 3 10 Now we start up the
46. rc set numArrivals Staup getNumArrivals if SnumArrivals 0 puts No arrivals for event SeventIndex for set k 0 S k lt SnumArrivals incr k set OneArrival Staup getArrival k set name SOneArrival getName if catch set OnePierce SOneArrival getLastPiercePoint SbestDepth puts Sname doesn t pierce SbestDepth for event SeventIndex continue set dist SOnePierce getDist set dist expr Sdist 180 3 14159 set plat java call edu sc seis TauP SphericalCoords latFor Selat SeventIndex Selon SeventIndex dist Saz set plon java call edu sc seis TauP SphericalCoords lonFor Selat SeventIndex Selon SeventIndex dist Saz puts format 7 3f 7 3f Sname from event number SeventIndex Splat Splon And here is the output piglet 56 gt pierce jacl No arrivals for event 0 User s Guide 23 218 36 679 214 36 676 189 394266 7 from event number gt 2 2 205 35 264 3 3 from event number from event number from event number from event number from event number 262 34 492 142 34 457 nuUuNn UN id WU NN RE This script along with another simple travel time script is included in the distribution in the jacl subdirectory 63 C AC language interface to the TauP package is provided A shared library libtaup so provides access to the core functionality for generating
47. rocessed easily The usage is piglet 7 gt taup_setsac help Usage taup_setsac arguments or for purists java edu sc seis TauP TauP_SetSac arguments Arguments are ph phase list comma separated phase list use phase to specify the sac header for example ScS 8 puts ScS in t8 pf phasefile file containing phases mod el modelnam use velocity model modelname for calculations Default is iasp9l evdpkm sac depth header is in km default is meters debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that sacfilename sacfilename Ex taup_setsac mod prem ph S 8 ScS 9 wmq r wmq t wmq z puts the first S arrival in T8 and ScS in T9 3 8 TauP Table TauP Table creates an ASCII table of arrival times for a range of depths and distances Its main use is for gener ating travel time tables for earthquake location programs such as LOCSAT The generic flag generates a flat table with all arrivals at each depth and distance one arrival per line The locsat flag generates a LOCSAT style travel time table with only the first arrival of all the phases listed at each distance and depth Thus the pro gram must be run several times in order to generate files for several phases Also both options write to standard out unless a file is given with the o flag User s Guide 12 There is a default phase di
48. s references to the java virtual machine each of the method calls and the current model This structure is always the first argument to all of the method calls While I believe this is the least complicated style of interaction it is not particularly memory or processor efficient for uses involving more than one travel time calculator active simultaneously Primarily this is due to having more than one java virtual machine running at the same time Still it is a good example of how C can interact with Java The currently implemented method calls are TauPInit initializes the java virtual machine and properly fills in the TauPStruct passed as the first argument The second argument is the name of the model to be used The method signature is int TauPInit TauPStruct taupptr char modelName TauPSetDepth sets the source depth within the model A initialized TauPStruct is passed as the first argument with the source depth passed as the second With the exception of creating a new model this is the most CPU intensive operation The method signature is int TauPSetDepth TauPStruct taup double depth TauPClearPhases clears any previously added phases This should be followed by a call to TauPAppendPhases below to add new phases An initialized TauPStruct is passed as the first argument The method signature is int TauPClearPhases TauPStruct taup TauPAppendPhases appends new phases for calculation An initialized TauPStruct is passed as the
49. stance and depth list but this is easily customizable with the header option An ex ample LOCSAT style file for use as a header can be generated with taup_table locsat o example locsat The first three sections specify the phase list distances and depths to use After editing a custom table can be created with taup_tabl header example locsat The usage is piglet l gt taup_table help Usage taup_table arguments or for purists java edu sc seis TauP TauP_Table arguments Arguments are ph phase list comma separated phase list pf phasefile file containing phases mod el modelnam use velocity model modelname for calculations Default is iasp91 header filenam reads depth and distance spacing data from a LOCSAT style file generic outputs a generic ascii table locsat outputs a locsat style ascii table o outfile output is redirected to outfile debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that 3 9 TauP Create TauP Create takes a ASCII velocity model file samples the model and saves the tau model to a binary file The output file holds all information about the model and need only be computed once It is used by all of the other tools There are several parameters controlling the density of sampling Their values can be set with properties See section 3 1 above Note
50. t RETURN or vice versa This is useful for real text files but dangerous for jar files I have noticed this when transferring files between UNIX and Macintosh and it likely can happen between any two operating systems with differing end of line identifiers Using binary mode for ftp transactions is likely wise 3 Trouble with bat files I don t use windows and so I do not know if the bat files are really useful or not If you find a better method I would be happy to include it User s Guide 32 References Buland R and C H Chapman 1983 The Computation of Seismic Travel Times Bull Seism Soc Am 73 5 1271 1302 Crotwell H P T J Owens and J Ritsema 1998 The TauP ToolKit Flexible Seismic Travel Time and Raypath Utilities Seismological Research Letters In Preperation Davis J P and I H Henson 1993a Development of an X Windows tool to compute Gaussian bean synthetic seismograms Technical Report TGAL 93 03 Phillip Laboratory Hancom AFB MA Davis J P and I H Henson 1993b User s Guide to Xgbm An X Windows System to compute Gaussian bean synthetic seismograms 1 1 ed Alexandria VA Teledyne Geotech Alexandria Laboratories Dziewonski A M and D L Anderson 1984 Structure elastic and rheological properties and density of the earth s interior gravity and pressure In K Fuch and H Soffel Eds Landoldt B nstein Group V Volume 2a pp 84 96 Berli
51. therwise it assumes you only want one set of times User s Guide 7 The phases are specified on the command line with the ph option in a phase file with the pf option or in a properties file The model phases depth and distance can be changed within the interactive section of TauP_Time For example taup time mod prem h 200 ph S P deg 57 4 gives you arrival times for S and P for a 200 kilometer deep source at a distance of 57 4 degrees piglet 2 gt taup_time mod prem h 200 ph S P deg 57 4 Model prem Distance Depth Phase Travel Ray Param Purist Purist deg km Name Time s p s deg Distance Name 57 4 200 0 P 566 77 6 968 57 4 P 57 4 200 0 S 1028 60 13 018 57 4 S 3 3 TauP_Pierce TauP_Pierce uses a model like TauP_Time but determines the angular distances from the epicenter at which the specified rays pierce discontinuities or specified depths in the model The usage is piglet 3 gt taup_pierce help Usage taup_pierce arguments or for purists java edu sc seis TauP TauP_Pierce arguments Arguments are ph phase list comma separated phase list pf phasefile file containing phases mod el modelnam use velocity model modelname for calculations Default is iasp91 h depth source depth in km Distance is given by deg degrees distance in degrees km kilometers distance in kilometers assumes radius of earth is 6371km or by giving the station and event latitude and lonit
52. travel times An example program using these interface routines is also provided gettimes c The native interface is distributed as C source code that you must compile on your local machine A makefile is provided to generate a shared library and an example code to call the library The makefile was created for use under Solaris but doesn t do anything particularly special and should be easily modifiable for other operating systems Of course the system must be able to find this library as well as the Java libraries Under Solaris this can be accomplished with the LD LIBRARY PATH environment variable Other systems may vary The CLASSPATH environment variable must also contain the taup jar file as well as the default java jar files Note that under Java1 2 the command line tools may work fine while the C interface has problems This is due to the java executable finding the standard files without the CLASSPATH The C interface bypasses the executable and so does not benefit from this Properly setting the CLASSPATH is thus even more important for calling Java from C The current C interface only provides method calls for the most basic operations for getting travel times If less common methods need to be called then a quick look at the source code in the native directory should be sufficient to create new hooks into those methods The state of the travel time calculator is preserved from call to call within a TauPStruct structure This contain
53. ude assumes a spherical earth sta tion lat lon sets the station latitude and longitude evt lat lon sets th vent latitude and longitude az azimuth sets the azimuth event to station used to output lat and lon of pierce points if the event lat lon and distance are also given Calculated if station and event lat and lon are given baz backazimuth sets the back azimuth station to event User s Guide 8 used to output lat and lon of pierce points if the station lat lon and distance are also given Calculated if station and event lat and lon are given rev only prints underside and bottom turn points e g and v turn only prints bottom turning points e g v under only prints underside reflection points e g pierce depth adds depth for calculating pierce points nodiscon only prints pierce points for the depths added with pierce o outfile output is redirected to outfile debug enable debugging output verbose nable verbose output version print the version help print this out but you already know that The rev turn and under flags are useful for limiting the output to just those points you care about The pierce depth option allows you to specify a pierce depth that does not correspond to an actual disconti nuity For instance where does a ray pierce 300 kilometers above the CMB For example taup_pierce mod prem
54. urn deeper than a discontinuity thus avoiding travel time curve triplications even though they have no real interaction with it 7 The characters and v are new symbols introduced here to represent bottom side and top side reflections respectively They are followed by a number to represent the approximate depth of the reflection or a letter for standard discontinuities m c or i Reflections from discontinuities besides the core mantle boundary c or inner core outer core boundary i must use the and v notation For instance in the TauP convention p 410S is used to describe a near source underside reflection Underside reflections except at the surface PP sS etc core mantle boundary PKKP SKKKS etc or outer core inner core boundary PKIIKP SKJJKS SKIIKS etc must be specified with the notation For example P 410P and P mP would both be underside reflections from the 410km discontinuity and the Moho respectively The phase PmP the traditional name for a top side reflection from the Moho discontinuity must change names under our new convention The new name is PvmP or Pvmp while PmP just describes a P wave that turns beneath the Moho The reason the Moho must be handled differently from the core mantle boundary is that traditional nomenclature did not introduce a phase symbol change at the Moho Thus while PcP makes sense since a P wave in the core would be labeled K PmP could have several meanings The m symbol j
55. ust allows the user to describe phases interaction with the Moho without knowing its exact depth In all other respects the v nomenclature is maintained 8 Currently and v for non standard discontinuities are allowed only in the crust and mantle Thus there are no reflections off non standard discontinuities within the core reflections such as PKKP PKiKP and PKIIKP are still fine There is no reason in principle to restrict reflections off discontinuities in the core but until there is interest expressed these phases will not be added Also a naming convention would have to be created since p is to P is not the same as i is to 1 9 Currently there is no support for PKPab PKPbc or PKPdf phase names They lead to increased algorith mic complexity that at this point seems unwarranted Currently in regions where triplications develop the triplicated phase will have multiple arrivals at a given distance So PKPab and PKPbc are both labeled just PKP while PKPdf is called PKIKP User s Guide 16 10 The symbol kmps is used to get the travel time for a specific horizontal phase velocity For example 2kmps 11 represents a horizontal phase velocity of 2 kilometers per second While the calculations for these are trivial it is convenient to have them available to estimate surface wave travel times or to define windows of interest for given paths As a convenience a ftimes phase name compatibility mode is available S
56. vals are stored as Arrival objects which contain time dist rayParam sourceDepth and name fields The Arrivals can be accessed through either the getArrival int method which returns the ith arrival or the get Arrivals method which returns an array of Arrivals Of ad ditional interest is the get NumArrivals method that returns the number of arrivals timeTool calculate 40 Arrival arrivals timeTool getArrivals for int i 0 i lt arrivals length i System out println arrivals i getName arrives at arrivals i getDist 180 0 Math PI degrees after 4 arrivals i getTime seconds It is important to realize that all internal angular distances are stored as radians hence the conversion and times in seconds This also means that the ray parameters are stored as seconds per radian User s Guide 21 6 2 Jacl One of the problems with Java based tools is that there is overhead associated with starting a Java program due to the fact that the virtual machine must first be started While with normal interactive computing this is not such a large problem it can become very wastful when repeated calling a tool from within a script Significant time savings can be had if the tool and its associated virtual machine can be kept alive for the duration of the script Jacl a Java implementation of the popular Tool Command Language or Tcl makes writing scripts that use the TauP Toolkit easy and allows

Download Pdf Manuals

image

Related Search

Related Contents

Product Leaflet: Cream Dock for iPod/iPhone Original radio  Zmodo KDS4-BARBZ4ZN  RESTECH NORWAY AS  T'nB ETGPXDL  7 x 9 - Les agendas PREMIER  User Manual - Projector Central  iCast Transmitter Owners Manual  e-STUDIO170F Service Manual  2003年1月版  User`s Manual PrintCenter 24  

Copyright © All rights reserved.
Failed to retrieve file