Locate signals of a seismic event by time difference parabola overlay
Locate signals of a seismic event by time difference parabola overlay
The function performs event location in space by finding the grid cell with minimum average travel time difference using the parabola approach. For further information see also Hibert et al. (2014) DOI: 10.1002/2013JF002970.
spatial_parabola(data, d_map, v, dt, plot,...)
Arguments
data: Numeric matrix or eseis object, seismic signals to cross-correlate.
d_map: List object, distance maps for each station. Output of spatial_distance.
v: Numeric value or vector, apparent seismic wave velocity (m/s).
dt: Numeric value, sampling period.
plot: Character value, keyword defining if or which output is to be plotted. If omitted, no plot output is generated. If set to "parabola", a plot with all overlaid station pair parabolas is created. If set to "offset", a plot of the average time offset of each grid cell is created.
...: Additional arguments passed to the plot function.
Returns
A terra raster with average travel time offsets for each grid cell, implying the most likely source location coinciding with the smallest offset value.
Examples
## Not run:## create synthetic DEMdem <- terra::rast(nrows =20, ncols =20, xmin =0, xmax =10000, ymin=0, ymax =10000, vals = rep(0,400))## define station coordinatessta <- data.frame(x = c(1000,9000,5000), y = c(1000,1000,9000), ID = c("A","B","C"))## create synthetic signal (source in the center of the DEM)s <- rbind(dnorm(x =1:1000, mean =400, sd =50), dnorm(x =1:1000, mean =400, sd =50), dnorm(x =1:1000, mean =800, sd =50))## plot DEM and stationsterra::plot(dem)text(x = sta$x, y = sta$y, labels = sta$ID)## calculate spatial distance maps and inter-station distancesD <- spatial_distance(stations = sta[,1:2], dem = dem)## restore SpatRaster object for plotting purposeD_map_1 <- terra::rast(crs = D$maps[[1]]$crs, ext = D$maps[[1]]$ext, res = D$maps[[1]]$res, val = D$maps[[1]]$val)## plot distance mapterra::plot(D_map_1)## locate signale <- spatial_parabola(data = s, d_map = D$maps, v =1000, dt =1/100, plot ="parabola", zlim = c(0,2))## End(Not run)