spatial_migrate {eseis} | R Documentation |
Migrate signals of a seismic event through a grid of locations.
Description
The function performs signal migration in space in order to determine the location of a seismic signal.
Usage
spatial_migrate(
data,
d_stations,
d_map,
snr,
v,
dt,
normalise = TRUE,
verbose = FALSE
)
Arguments
data |
|
d_stations |
|
d_map |
|
snr |
|
v |
|
dt |
|
normalise |
|
verbose |
|
Details
With the switch from the package raster to the package terra, the resulting distance maps can no longer be saved in lists as distance maps. Thus, the function re-defines the distance SpatRaster objects by a list of data on crs, extent, resolution and raster values. As a consequence, plotting the data requires turning them into a SpatRaster object, first (see examples).
Value
A SpatialGridDataFrame-object with Gaussian probability density function values for each grid cell.
Author(s)
Michael Dietze
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 = 500, sd = 50),
dnorm(x = 1:1000, mean = 500, sd = 50),
dnorm(x = 1:1000, mean = 500, 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]]$values)
## plot distance map
terra::plot(D_map_1)
## locate signal
e <- spatial_migrate(data = s,
d_stations = D$matrix,
d_map = D$maps,
v = 1000,
dt = 1/100)
## get most likely location coordinates
e_max <- spatial_pmax(data = e)
## plot location estimate, most likely location estimate and stations
terra::plot(e)
points(e_max[1],
e_max[2],
pch = 20)
points(sta[,1:2])
## End(Not run)