4.10. synth_seis¶
Early development functions to do very basic simulations of seismograms to be used as general matched-filter templates and see how well a simple model would fit with real data.
This file is part of EQcorrscan.
EQcorrscan is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
EQcorrscan is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with EQcorrscan. If not, see <http://www.gnu.org/licenses/>.
All copyright and ownership of this module belongs to Calum Chamberlain, 2015 & 2016
-
synth_seis.
SVD_sim
(SP, lowcut, highcut, samp_rate, amp_range=<mock.Mock object at 0x50355d0>)[source]¶ Function to generate a basis vectors of a set of simulated seismograms with a range of S-P amplitude ratios.
Parameters: - SP (int) – S-P time in seconds - will be converted to samples according to samp_rate.
- lowcut (float) – Low-cut for bandpass filter in Hz
- highcut (float) – High-cut for bandpass filter in Hz
- samp_rate (float) – Sampling rate in Hz
- amp_range (np.ndarray) – Amplitude ratio range to generate synthetics for.
Returns: nd.ndarray, set of output basis vectors
-
synth_seis.
seis_sim
(SP, amp_ratio=1.5, flength=False, phaseout=u'all')[source]¶ Function to generate a simulated seismogram from a given S-P time. Will generate spikes separated by a given S-P time, which are then convolved with a decaying sine function. The P-phase is simulated by a positive spike of value 1, the S-arrival is simulated by a decaying boxcar of maximum amplitude 1.5. These ampitude ratios can be altered by changing the amp_ratio, which is the ratio S amplitude:P amplitude.
Note
In testing this can achieve 0.3 or greater cross-correlations with data.
Parameters: Returns: np.ndarray
-
synth_seis.
template_grid
(stations, nodes, travel_times, phase, PS_ratio=1.68, samp_rate=100, flength=False, phaseout=u'all')[source]¶ Function to generate a group of synthetic seismograms to simulate phase arrivals from a grid of known sources in a three-dimensional model. Lags must be known and supplied, these can be generated from the bright_lights function: read_tt, and resampled to fit the desired grid dimensions and spacing using other functions therein. These synthetic seismograms are very simple models of seismograms using the seis_sim function herein. These approximate body-wave P and S first arrivals as spikes convolved with damped sine waves.
Parameters: - stations (list) – List of the station names
- nodes (list of tuple) – List of node locations in (lon,lat,depth)
- travel_times (np.ndarray) – Array of travel times where travel_times[i][:] refers to the travel times for station=stations[i], and travel_times[i][j] refers to stations[i] for nodes[j]
- phase (str) – Can be either ‘P’ or ‘S’
- PS_ratio (float) – P/S velocity ratio, defaults to 1.68
- samp_rate (float) – Desired sample rate in Hz, defaults to 100.0
- flength (int) – Length of template in samples, defaults to False
- phaseout (str) – Either ‘S’, ‘P’, ‘all’ or ‘both’, determines which phases to clip around. ‘all’ Encompasses both phases in one channel, but will return nothing if the flength is not long enough, ‘both’ will return two channels for each stations, one SYN_Z with the synthetic P-phase, and one SYN_H with the synthetic S-phase.
Returns: List of :class:obspy.Stream