spatial_parabola function

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 DEM dem <- terra::rast(nrows = 20, ncols = 20, xmin = 0, xmax = 10000, ymin= 0, ymax = 10000, vals = rep(0, 400)) ## define station coordinates sta <- 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 stations terra::plot(dem) text(x = sta$x, y = sta$y, labels = sta$ID) ## calculate spatial distance maps and inter-station distances D <- spatial_distance(stations = sta[,1:2], dem = dem) ## restore SpatRaster object for plotting purpose D_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 map terra::plot(D_map_1) ## locate signal e <- spatial_parabola(data = s, d_map = D$maps, v = 1000, dt = 1/100, plot = "parabola", zlim = c(0, 2)) ## End(Not run)

Author(s)

Michael Dietze, Clement Hibert (ITES Strasbourg)

  • Maintainer: Michael Dietze
  • License: GPL-3
  • Last published: 2025-03-25

Useful links