twistpy.array_processing.BeamformingArray#
- class BeamformingArray(name: str = '', coordinates: Optional[ndarray] = None, reference_receiver: int = 0)[source]#
Beamforming for arbitrarily-shaped arrays.
This class serves as an interface to apply various beamforming techniques to single-component data recorded on arbitrarly-shaped arrays. It makes use of the multi-taper method for spectral estimation [1],[2]. Currently, the available beamforming methods are: BARTLETT beamforming, MVDR (Capon) beamforming, and the MUSIC algorithm.
Example usage:
# Instantiate an array object with a name and receiver coordinates array = BeamformingArray(name='My Array', coordinates=coordinates) # Provide waveform data to the array object: array.add_data(data=ObsPyStream) # Pre-compute the phase delays inside the array for a set of candidate # plane-waves (so-called steering vectors): array.compute_steering_vectors(frequency=50, intra_array_velocity=(2000, 3000, 100), inclination=(0, 90, 1), azimuth=(0, 360, 1)) # Perform beamforming, which yields the estimation function P: P = array.beamforming(method='MUSIC', eventtime = UTCDateTime, frequency_band=(45, 55), window=5, number_of_sources=1)
Hint
[1] Meng et al. (2011). A window into the complexity of the dynamic rupture of the 2011 Mw 9 Tohoku-Oki earthquake, GRL, https://doi.org/10.1029/2011GL048118
[2] Meng et al. (2012). High-resoultion backprojection at regional distance. JGR: https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2011JB008702
- Parameters
- name
str
Array name
- coordinates
ndarray
Coordinates of each receiver. Array of dimensions (Nx3), with N being the number of receivers
- reference_receiver
int
Index of receiver to use as a reference station (time delays are computed relative to this receiver). Defaults to 0 (the first receiver that is passed)
- name
- Attributes
Methods
add_data
(data)Add data in ObsPy stream format to this instance of class BeamformingArray.
beamforming
([method, event_time, ...])Compute beam power at specified time window location for this instance of class BeamformingArray.
compute_steering_vectors
(frequency[, ...])Precompute the steering vectors