twistpy.polarization.TimeDomainAnalysis3C#

class TimeDomainAnalysis3C(N: Trace, E: Trace, Z: Trace, window: dict, verbose: bool = True, timeaxis: str = 'utc')[source]#

Time domain three-component polarization analysis.

Single-station three-component polarization analysis in the time domain. Polarization analysis is performed in a sliding time window using the complex analytic signal [1].

[1] Vidale, J. E. (1986). Complex polarization analysis of particle motion, BSSA, 76(5), https://doi.org/10.1785/BSSA0760051393

Note

It is recommended to bandpass filter the data to a narrow frequency band before attempting a time-domain polarization analysis in order to avoid that dispersion effects and wave type interference affect the polarization.

Parameters
NTrace

North component seismogram

ETrace

East component seismogram

ZTrace

Vertical component seismogram

windowdict

Window parameters defined as:

window = {‘window_length_seconds’: float, ‘overlap’: float}
Overlap should be on the interval 0 (no overlap between subsequent time windows) and 1 (complete overlap, window is moved by 1 sample only).
verbosebool, default=True

Run in verbose mode.

timeaxisstr, default=’utc’

Specify whether the time axis of plots is shown in UTC (timeaxis=’utc’) or in seconds relative to the first sample (timeaxis=’rel’).

Attributes
t_windowslist of UTCDateTime

Window positions of the sliding time window on the time axis (center point of the window)

Cndarray of complex128

Complex covariance matrices at each window position

timelist of UTCDateTime

Time axis of the input traces

deltafloat

Sampling interval of the input data in seconds

window_length_samplesint

Window length in samples.

dopnumpy.ndarray of float

Degree of polarization estimated at each window position.

Hint

The definition of the degree of polarization follows the one from Samson & Olson (1980): Some comments on the descriptions of the polarization states of waves, Geophysical Journal of the Royal Astronomical Society, https://doi.org/10.1111/j.1365-246X.1980.tb04308.x. It is defined as:

\[P^2=\sum_{j,k=1}^{n}(\lambda_j-\lambda_k)^2/[2(n-1)(\sum_{j=1}^{n}(\lambda_j)^2)]\]

where \(P^2\) is the degree of polarization and \(\lambda_j\) are the eigenvalues of the covariance matrix.

ellinumpy.ndarray of float

Ellipticity estimated at each window position

inc1numpy.ndarray of float

Inclination of the major semi-axis of the polarization ellipse estimated at each window position

inc2numpy.ndarray of float

Inclination of the minor semi-axis of the polarization ellipse estimated at each window position

azi1numpy.ndarray of float

Azimuth of the major semi-axis of the polarization ellipse estimated at each window position

azi2numpy.ndarray of float

Azimuth of the minor semi-axis of the polarization ellipse estimated at each window position

Methods

filter([suppress, smooth_mask, ...])

Filter data based on polarization attributes.

plot([show, alpha, seismograms])

Plot polarization analysis.

polarization_analysis()

Perform polarization analysis.

save(name)

Save the current TimeDomainAnalysis3C object to a file on the disk in the current working directory.

Examples using twistpy.polarization.TimeDomainAnalysis3C#

3-C Polarization analysis and filtering in the time domain

3-C Polarization analysis and filtering in the time domain