signal_motion {eseis} | R Documentation |
Calculate particle motion parameters
Description
The function calculates from a data set of three seismic components of the same signal the following particle motion paramters using a moving window approach: horizontal-vertical eigenvalue ratio, azimuth and inclination.
Usage
signal_motion(data, time, dt, window, step, order = "xyz")
Arguments
data |
|
time |
|
dt |
|
window |
|
step |
|
order |
|
Details
The function code is loosely based on the function GAZI() from the package RSEIS with removal of unnecessary content and updated or rewritten loop functionality. In its current form, it also uses additional workflows from obspy.signal.polarisation, specifically following the Flinn (1965) approach. It windows the input signals, calculates the covariance matrix and performs a singular values decomposition to use the eigen values and vectors to determine the ratios corresponding to the output values rectilinearity, angularity, azimuth and incidence.
Note that the names of the output objects as well as the calculation routine have changed from the earlier version (V. 0.6.0), to increase computational efficiency and fix a bug in the windowing implementation.
Value
A List object with rectilinearity (rectilinearity
),
angularity (polarity
), azimuth (azimuth
) and incidence
(incidence
), as well as the corresponding time vector for
these values.
Author(s)
Michael Dietze
Examples
## load example data set
data(earthquake)
## filter seismic signals
s <- eseis::signal_filter(data = s,
dt = 1/200,
f = c(1, 3))
## convert list of signal vectors to column-wise matrix
s <- do.call(cbind, s)
## calculate particle motion parameters
pm <- signal_motion(data = s,
dt = 1 / 200,
window = 500,
step = 250)
## plot function output
par_original <- par(no.readonly = TRUE)
par(mfcol = c(2, 2))
plot(pm$time, pm$rect, type = "b")
plot(pm$time, pm$plan, type = "b")
plot(pm$time, pm$azimuth, type = "b")
plot(pm$time, pm$incidence, type = "b")
par(par_original)