twistpy.polarization.DispersionAnalysis#
- class DispersionAnalysis(traN: Optional[Trace] = None, traE: Optional[Trace] = None, traZ: Optional[Trace] = None, rotN: Optional[Trace] = None, rotE: Optional[Trace] = None, rotZ: Optional[Trace] = None, fmin: float = 1.0, fmax: float = 20.0, octaves: float = 0.5, window: dict = {'number_of_periods': 1, 'overlap': 0.0}, scaling_velocity: float = 1.0, svm: Optional[SupportVectorMachine] = None, verbose: bool = True)[source]#
Single-station six-component surface wave dispersion estimation for Love and Rayleigh waves.
Under the hood, the DispersionAnalysis class runs a
TimeDomainAnalysis6C
. The data is filtered to different frequency bands of interest, and the wave parameters are estimated at each frequency independently.- Parameters
- traN
Trace
North component of translation
- traE
Trace
East component of translation
- traZ
Trace
Vertical component of translation (positive downwards!)
- rotN
Trace
North component of rotation
- rotE
Trace
East component of rotation
- rotZ
Trace
Vertical component of rotation (right-handed, pointing downwards!)
- fmin
float
Minimum frequency to be considered in the analysis (in Hz)
- fmax
float
Maximum frequency to be considered in the analysis (in Hz)
- octaves
float
Width of the frequency band used for bandpass filtering in octaves
- window
dict
Window parameters defined as:
Overlap should be on the interval 0 (no overlap between subsequent time windows) and 1 (complete overlap, window is moved by 1 sample only). The window is frequency dependent and extends over number_of_periods times the dominant period at the current frequency band- scaling_velocity
float
, 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. svm
- verbose
bool
, default=True Run in verbose mode.
- traN
- Attributes
- parameters
list
ofdict
List containing the estimated surface wave parameters at each frequency. The parameters for each frequency are saved in a dictionary with the following keys:
‘xi’: Rayleigh wave ellipticity angle (degrees)‘phi_r’: Rayleigh wave back-azimuth (degrees)‘c_r’: Rayleigh wave phase-velocity (m/s)‘phi_l’: Love wave back azimuth (degrees)‘c_l’: Love wave phase velocity (m/s)‘wave_types’: Wave type classification labels‘dop’: Degree of polarization- f
numpy.ndarray
offloat
Frequency vector for parameters.
- parameters
Methods
plot
([nbins, velocity_range, quantiles, ...])Plot estimated Love- and Rayleigh-wave dispersion curves and Rayleigh wave ellipticity angle.
plot_baz
([freq, nbins, show])Plot the back-azimuth of Love and Rayleigh wave sources as a polar plot.
save
(name)Save the current DispersionAnalysis object to a file on the disk in the current working directory.
Examples using twistpy.polarization.DispersionAnalysis
#
Six-component dispersion analysis