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:
datanumpy.ndarray

Data of shape \(n_r \times n_t\)

xnumpy.ndarray

Imaging area grid vector in X-axis

ynumpy.ndarray

Imaging area grid vector in Y-axis

znumpy.ndarray

Imaging area grid vector in Z-axis

ttnumpy.ndarray

Traveltime table of size \(n_r \times n_x \times n_y \times n_z\)

dtfloat

Time step

stwfloat

Short time window in seconds (must be more than two time steps)

ltwfloat

Long time window in seconds (must be more than two time steps)

gtwfloat, optional, default: 0

Gap time window in seconds (must be non-negative)

gtwfloat, optional, default: 0

Gap time window in seconds (must be non-negative)

stack_typestr, 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).

swsizeint, optional, default: 0

Sliding time window size for semblance-based type, amount of time steps

polcor_typestr, 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.

recsnumpy.ndarray, optional, default: None

Array of shape (3, nrec) containing receiver coordinates. Must be provided if polcor_type is not None

Returns:
msfnumpy.ndarray

Time-dependent maximum stack function

slfnumpy.ndarray

Time-dependent STA/LTA function

idpnumpy.ndarray

Integer array of time indices of determined peaks

eotnumpy.ndarray

Array of estimated origin times for each of the determined peaks

ds_fullnumpy.ndarray

Diffraction stack full 4D array of shape (nt, nx, ny, nz)

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