| sumatra {Rsac} | R Documentation |
Example of class "rsac" object containing 32
recordings of the 2004 Sumatra-Andaman Earthquake.
data(sumatra)
Vector containing 23 recordings. Each is a LHZ channel at a different recording station (L = long period, H = high gain, Z = vertical component).
The 2004 Sumatra-Andaman Earthquake. There is extensive literature on this event. I include it here simply as an interesting example.
Eric M. Thompson <eric.thompson@tufts.edu>
data(sumatra)
getstas <- function(X)
gsub(" ", "", X$sta)
stas <- sapply(X = sumatra, getstas)
getunits(sumatra)
sumatra <- mul(sumatra, 1e-9)
# Bandpass filter
sumatra <- bp(int(taper(rtrend(sumatra))),
c = c(0.01, 0.3))
getdelta <- function(X)
{
delta <- gcp(s = list(lat = X$stla, lon = X$stlo),
e = list(lat = X$evla, lon = X$evlo))$a
}
del <- sapply(X = sumatra, getdelta)
st <- sapply(sumatra, fstart)
par(las = 1, mar = c(1, 5, 5, 1), xaxs = "i", yaxs = "i",
cex.main = 1, mfrow = c(1, 1))
plot(1, 1, type = "n", axes = FALSE,
xlim = c(60, 60 + 350)*60, ylim = c(200, 0),
xlab = "", ylab = "")
udel <- sort(unique(del))
cols <- (1:length(udel))%%6 + 1
for(i in 1:length(sumatra))
{
x <- 100 * sumatra[[i]]$amp + del[i]
start <- st[i] + sumatra[[i]]$b
deltat <- sumatra[[i]]$dt
time <- seq(from = start, by = deltat, length = length(x))
lines(time, x, col = cols[del[i] == udel])
}
axis(side = 2, at = seq(0, 180, by = 30))
axis(side = 3, at = (seq(0, 360, by = 60)*60 + 60*60),
lab = seq(0, 360, by = 60))
title(main = "Time, minutes")
title(ylab = expression(paste(Delta, ", Degrees")))
if(require(maps)){
par(mar = c(3,7,2,1))
map(col = grey(0.8))
for(i in 1:length(stas)){
GCPATH <- gcp(s = list(lat = sumatra[[i]]$stla, lon = sumatra[[i]]$stlo),
e = list(lat = sumatra[[i]]$evla, lon = sumatra[[i]]$evlo)
)
if(any(abs(diff(GCPATH$lon)) > 180)){
l <- length(GCPATH$lon)
j <- which(abs(diff(GCPATH$lon)) > 180)
lines(GCPATH$lon[1:j], GCPATH$lat[1:j], col = "blue")
lines(GCPATH$lon[(j+1):l], GCPATH$lat[(j+1):l], col = "blue")
}else{
lines(GCPATH$lon, GCPATH$lat, col = "blue")
}
points(sumatra[[i]]$stlo, sumatra[[i]]$stla, pch = 17)
text(sumatra[[i]]$stlo, sumatra[[i]]$stla, stas[i], pos = 1)
}
points(sumatra[[1]]$evlo, sumatra[[1]]$evla, col = "red", pch = 16)
axis(side = 1, at = seq(-180, 180, by = 30))
axis(side = 2, at = seq(-60, 60, by = 30))
title(main = "Sumatra-Andaman Earthquake",
xlab = "Longitude", ylab = "Latitude")
}