twistpy.polarization.EstimatorConfiguration#
- class EstimatorConfiguration(wave_types: List[str] = ['R', 'L', 'P', 'SV', 'SH'], method: str = 'ML', free_surface: bool = True, scaling_velocity: float = 1.0, use_ml_classification: bool = True, svm: Optional[SupportVectorMachine] = None, eigenvector: int = 0, music_signal_space_dimension: int = 1, vp: Tuple[float, float, float] = (100.0, 2000.0, 100.0), vp_to_vs: Tuple[float, float, float] = (1.7, 2.2, 0.1), vs: Tuple[float, float, float] = (50.0, 1000.0, 100.0), vl: Tuple[float, float, float] = (100, 2000, 100), vr: Tuple[float, float, float] = (100, 2000, 100), phi: Tuple[float, float, float] = (0, 360, 1), theta: Tuple[float, float, float] = (0, 90, 1), xi: Tuple[float, float, float] = (-90, 90, 1))[source]#
Configure the type of estimator used for 6C polarization analysis.
- Parameters
- wave_types
list
ofstr
, default = [‘R’, ‘L’, ‘P’, ‘SV’, ‘SH’] List of wave types for which wave parameters are estimated.
- method
str
, default=’ML’ Method that is used for the estimation of wave parameters and polarization attributes.
Hint
‘ML’: Machine Learning: Initially classify the wave types using a machine learning model. Wave parameters are then directly estimated from the specified eigenvector. This is the most efficient way to estimate wave parameters with 6C polarization analysis
‘MUSIC’: Wave parameters are estimated using multiple signal classification. This is a grid search approach and can be computationally expensive to compute. Enables the estimation of wave parameters for multiple overlapping signals.
‘MVDR’: Wave parameters are estimated using the minimum variance distortionless response or Capon method (grid search approach).
‘BARTLETT’: Wave parameters are estimated using the Bartlett method (grid search approach).
‘DOT’: Minimize great-circle distance / dot product (corresponding to the angle between the model polarization vector and the polarization direction in the data) on the 5-sphere between the measured and tested polarization vector
- free_surface
bool
, default=True Specify whether free-surface polarization models should be used
- scaling_velocity
float
, default = 1. Scaling velocity applied to the translational components in m/s
- use_ml_classification
bool
, default = True For grid-search approaches: Specify whether an initial step of wave classification is performed using a machine learning model. Wave parameters are then only estimated in windows where the wave type of interest is detected. Results in a speed-up.
- svm
SupportVectorMachine
, optional Pre-trained support vector machine for wave type classification. Needs to be provided if method=’ML’ or use_ml_classification = True.
- eigenvector
int
, default=0 Integer value identifying the eigenvector that will be used for wave parameter estimation. The eigenvectors are sorted in descending order of their corresponding eigenvalue
If 0: first eigenvector, corresponding to the dominant signal in the time window (associated with the largest eigenvalue).- music_signal_space_dimension:obj:´int´, default=1
Specify the number of overlapping waves for which wave parameters will be estimated using the MUSIC algorithm.
- vp
tuple
(vp_min, vp_max, increment) Define the search space for the P-wave velocity in m/s for grid-search methods.
- vp_to_vs
tuple
(vp_to_vs_min, vp_to_vs_max, increment) Define the search space for the P-wave to S-wave velocity ratio.
- vl
tuple
(vl_min, vl_max, increment) Define the search space for the Love wave velocity in m/s.
- vr
tuple
(vr_min, vr_max, increment) Define the search space for the Rayleigh wave velocity in m/s.
- vs
tuple
(vr_min, vr_max, increment) Define the search space for the S wave velocity in m/s. Only relevant for SH waves for P-, and SV-waves, the S-wave velocity is computed over the vp-/vs-ratio
- phi
tuple
(phi_min, phi_max, increment) Define the search space for the Azimuth in degrees.
- theta
tuple
(theta_min, theta_max, increment) Define the search space for the inclination angle in degrees.
- xi
tuple
(xi_min, xi_max, increment) Define the search space for the Rayleigh wave ellipticity angle in degrees.
- wave_types
Methods
compute_steering_vectors
(wave_type)Compute steering vectors for polarization analysis with grid search methods for the specified wave type.
Examples using twistpy.polarization.EstimatorConfiguration
#
6-C Polarization Analysis: Time-domain wave parameter estimation
6-C Wave parameter estimation: gulf of alaska earthquake