Learn R Programming

IRISSeismic (version 1.0.5)

getTraveltime: Retrieve seismic traveltime information from IRIS DMC

Description

The getTraveltime method obtains seismic traveltime data from the IRIS DMC traveltime web service and returns it in a dataframe.

Usage

getTraveltime(obj, latitude, longitude, depth, staLatitude, staLongitude)

Arguments

obj
an IrisClient object
latitude
latitude of seismic event
longitude
longitude of seismic event
depth
depth of seismic event
staLatitude
latitude of seismic station
staLongitude
longitude of seismic station

Value

  • A dataframe with the following columns:distance, depth, phaseName, travelTime, rayParam, takeoff, incident puristDistance, puristName

    Rows are ordered by travelTime.

Details

The traveltime web service calculates travel-times for seismic phases using a 1-D spherical earth model.

References

The IRIS DMC traveltime web service:

http://service.iris.edu/irisws/traveltime/1/

See Also

IrisClient-class

Examples

Run this code
# Open a connection to IRIS DMC webservices
iris <- new("IrisClient")

# Two days around the "Nisqually Quake"
starttime <- as.POSIXct("2001-02-27", tz="GMT")
endtime <- starttime + 3600 * 24 * 2

# Find biggest seismic event over these two days -- it's the "Nisqually"
events <- getEvent(iris, starttime, endtime, minmag=5.0)
bigOneIndex <- which(events$magnitude == max(events$magnitude))
bigOne <- events[bigOneIndex,]

# Find US stations that are available within an hour of the event
start <- bigOne$time
end <- start + 3600
availability <- getAvailability(iris, "US", "", "", "BHZ",
                                starttime=start, endtime=end,
                                latitude=bigOne$latitude, longitude=bigOne$longitude,
                                minradius=0, maxradius=10)
    
# Get the station the furthest East
minLonIndex <- which(availability$longitude == max(availability$longitude))
snclE <- availability[minLonIndex,]

# Plot the BHZ signal from this station
st <- getDataselect(iris,snclE$network,snclE$station,snclE$location,snclE$channel,
                    start,end)

# Check that there is only a single trace and then plot it
length(st@traces)
tr <- st@traces[[1]]
plot(tr, subsampling=1) # need subsmpling=1 to add vertical lines with abline()

# Find travel times to this station
traveltimes <- getTraveltime(iris, bigOne$latitude, bigOne$longitude, bigOne$depth,
                             snclE$latitude, snclE$longitude)

# Look at the list                             
traveltimes

# mark the P and S arrival times
pArrival <- start + traveltimes$travelTime[traveltimes$phaseName=="P"]
sArrival <- start + traveltimes$travelTime[traveltimes$phaseName=="S"] 
abline(v=pArrival, col='red')
abline(v=sArrival, col='blue')

Run the code above in your browser using DataLab