twistpy.polarization.TimeDomainAnalysis6C#

class TimeDomainAnalysis6C(traN: Trace, traE: Trace, traZ: Trace, rotN: Trace, rotE: Trace, rotZ: Trace, window: dict, scaling_velocity: float = 1.0, free_surface: bool = True, verbose: bool = True, timeaxis: str = 'utc')[source]#

Time domain six-component polarization analysis.

Single-station six degree-of-freedom polarization analysis in the time domain. Polarization analysis is performed in a sliding time window using the complex analytic signal [1].

[1] Sollberger et al. (2018). 6-C polarization analysis using point measurements of translational and rotational ground-motion: theory and applications, Geophysical Journal International, 213(1), https://doi.org/10.1093/gji/ggx542

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
traNTrace

North component of translation

traETrace

East component of translation

traZTrace

Vertical component of translation (positive downwards!)

rotNTrace

North component of rotation

rotETrace

East component of rotation

rotZTrace

Vertical component of rotation (right-handed, pointing downwards!)

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).
scaling_velocityfloat, default=1.

Scaling velocity (in m/s) to ensure numerical stability. The scaling velocity is applied to the translational data only (amplitudes are divided by scaling velocity) and ensures that both translation and rotation amplitudes are on the same order of magnitude and dimensionless. Ideally, v_scal is close to the S-Wave velocity at the receiver. After applying the scaling velocity, translation and rotation signals amplitudes should be similar.

free_surfacebool, default=True

Specify whether the recording station is located at the free surface in order to use the corresponding polarization models.

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
classificationdict

Dictionary containing the labels of classified wave types at each position of the sliding time window. The dictionary has up to six entries corresponding to classifications for each eigenvector.

classification = {‘0’: list_with_classifications_of_first_eigenvector, ‘1’: list_with_classification_of_second_eigenvector, … , ‘5’: list_with_classification_of_last_eigenvector}
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.

Methods

classify(svm[, eigenvector_to_classify, ...])

Classify wave types using a support vector machine

plot(estimator_configuration[, dop_clip])

polarization_analysis([...])

Perform polarization analysis.

save(name)

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

Examples using twistpy.polarization.TimeDomainAnalysis6C#

6-C Polarization Analysis: Time-domain wave parameter estimation

6-C Polarization Analysis: Time-domain wave parameter estimation

6-C wave type fingerprinting

6-C wave type fingerprinting