fracspy.detection.stacking.diffstack_detect#
- fracspy.detection.stacking.diffstack_detect(data, x, y, z, tt, dt, stw, ltw, gtw=0, slt=3, stack_type=None, swsize=0, polcor_type=None, recs=None)[source]#
Microseismic event detection based on diffraction stacking.
The time-dependent maximum stack function (MSF) obtained by diffraction stacking is analysed using STA/LTA.
- Parameters:
- data
numpy.ndarray
Data of shape \(n_r \times n_t\)
- x
numpy.ndarray
Imaging area grid vector in X-axis
- y
numpy.ndarray
Imaging area grid vector in Y-axis
- z
numpy.ndarray
Imaging area grid vector in Z-axis
- tt
numpy.ndarray
Traveltime table of size \(n_r \times n_x \times n_y \times n_z\)
- dt
float
Time step
- stw
float
Short time window in seconds (must be more than two time steps)
- ltw
float
Long time window in seconds (must be more than two time steps)
- gtw
float
, optional, default: 0 Gap time window in seconds (must be non-negative)
- gtw
float
, optional, default: 0 Gap time window in seconds (must be non-negative)
- stack_type
str
, optional, default: None Diffraction stacking type (imaging condition), default None is the same as
squared
. Types:absolute
(absolute value),squared
(squared-value),semblance
(semblance-based).- swsize
int
, optional, default: 0 Sliding time window size for semblance-based type, amount of time steps
- polcor_type
str
, optional, default: None Polarity correction type to be used for amplitudes. None is default for no polarity correction,
mti
is for polarity correction based on moment tensor inversion.- recs
numpy.ndarray
, optional, default: None Array of shape (3, nrec) containing receiver coordinates. Must be provided if polcor_type is not None
- data
- Returns:
- msf
numpy.ndarray
Time-dependent maximum stack function
- slf
numpy.ndarray
Time-dependent STA/LTA function
- idp
numpy.ndarray
Integer array of time indices of determined peaks
- eot
numpy.ndarray
Array of estimated origin times for each of the determined peaks
- ds_full
numpy.ndarray
Diffraction stack full 4D array of shape (nt, nx, ny, nz)
- msf
Notes
The local maxima of the maximum stack function [1] (MSF) occur at the times linked to the origin times of microseismic events. These local maxima can be found by the STA/LTA (Short Term Average / Long Term Average) method [3]. Local maxima are detected by measuring the ratio of average stack energy in short and long sliding time windows and comparing this ratio with the pre-defined STA/LTA threshold (SLT). The number of detected events depends on the signal-to-noise ratio (SNR) of the maximum stack function measured by STA/LTA [2]. If the SLT is too high, too few events are detected, but there is a high certainty that the detected events are real. If a too low threshold is used, false events will be detected as real.
References
[1]Anikiev, D. (2015). Joint detection, location and source mechanism determination of microseismic events (Doctoral dissertation). St. Petersburg State University. St. Petersburg. https://disser.spbu.ru/files/phdspsu2015/Anikiev_PhD_web_final.pdf
[2]Anikiev, D., Valenta, J., Staněk, F. & Eisner, L. (2014). Joint location and source mechanism inversion of microseismic events: Benchmarking on seismicity induced by hydraulic fracturing. Geophysical Journal International, 198(1), 249–258. https://doi.org/10.1093/gji/ggu126
[3]Trnkoczy, A. (2012). Understanding and parameter setting of STA/LTA trigger algorithm. In: Bormann, P. (Ed.), New Manual of Seismological Observatory Practice 2 (NMSOP-2), Potsdam: Deutsches GeoForschungsZentrum GFZ, 1-20. https://doi.org/10.2312/GFZ.NMSOP-2_IS_8.1