Amplitude Processing and Onsite Early Warning¶
In earthquake early warning (EEW) systems speed matters and is of highest priority along with the reliability of the measured or predicted parameters. Instead of measuring amplitudes and predicting parameters in a data center after the location of a seismic event is available, the most relevant parameters can be measured during phase detection before a hypocenter is available. The amplitude measurements can even be made at the station allowing for a rapid onsite early warning system.
For measuring these amplitudes the sigma package provides the plugins for application by external modules outside of AUTOSIGMA or SIGMA:
sigmaamps,
sigmaampsp1,
sigmaampsp2.
If these plugins are added to the SeisComP modules scautopick or scamp and available amplitudes are configured, the modules measure configured amplitudes from waveforms. The amplitudes include types which are typically required for
Onsite early warning,
Earthquake Early Warning (EEW),
Strong motion earthquake analysis,
Seismic engineering purposes.
Concept¶
The plugins measure the amplitudes of a particular type in a specific time window on the respective components of the amplitude type. One plugin can take exactly one configuration for one amplitude type. In order to facilitate the computation of the same amplitude type with up to three different set of parameters, e.g. different time windows around P and S waves, the plugin exists three times in the same form with the different names.
Amplitude types¶
The plugins compute values for the following quantities as SeisComP amplitude objects of different kind.
Available amplitude types are:
CAV: Cumulative absolute velocity
CI: Characteristic intensity
duration: Duration (95%-5%)
I05: Arias intensity at 5%
I95: Arias intensity at 95%
pdPvR:
ratio. The actual values are given by pgd and pgv amplitudes which must be configured.
Note
snrPd and pdPvR are implemented according to Caruso et al. [14] without the threshold check suggested therein. The check can be made by an external script after reading the amplitudes.
For computing snrPd and pdPvR identical time windows for pgd and pgv amplitudes must be configured to be complient with Caruso et al. [14].
The incrementation of the time window for measuring pgd and pgv (e.g. 1 s, 2 s, 3 s) can be realized by running 3 the different plugins in parallel with their specific configuration of the time windows. The sections Configuration parameters and Setup provide examples.
pga: Peak ground acceleration, PGA
pgd: Peak ground disaplacement, PGD
psa_0_3: Pseudo Spectral Amplitude measured at 0.3 s period
psa_1_0: Pseudo Spectral Amplitude measured at 1.0 s period
psa_3_0: Pseudo Spectral Amplitude measured at 3.0 s period
pgv: Peak ground velocity, PGV
SED: Specific energy density
snrPd: Signal-to-Noise ratio of PGD in the data time window after the trigger and the PGD within the noise time window before (
):
is the measured pgd amplitude and
is PGD measured in the noise time window.
Tm: Mean period
Tp: Predominant period
Data streams and time windows¶
The amplitude types can be computed on four different data streams, the components:
NONE: vertical component
h1: first horizontal component
h2: second horizontal component
l: the sample-wise vector sum of the vertical and the horizontal components:
The time windows for computation of amplitudes are relative to a reference time: either a pick time or a predicted phase onset. Generally a noise and a signal window are considered. While the noise window typically starts and ends before the reference time, the signal window is around or after it. Reference time and window parameters are configurable per component. Read Configuration parameters for more details.
Amplitude names¶
The names of the amplitude types start with the name of the used plugin:
sigma: sigmaamps plugin
sigma_p1: sigmaampsp1 plugin
sigma_p2: sigmaampsp2 plugin
The names of the computed amplitude types are formed from the plugin name, the name of the quantity and the components:
[plugin]_[type][_component]
Examples:
pga computed by the sigmaamps plugin on the vertical (NONE) component:
sigma_pga
pga computed by the sigmaampsp1 plugin on the first horizontal (h1) component:
sigma_p1_pga_h1
Configuration parameters¶
Each amplitude type takes up to 8 parameters defining the time windows for computing the amplitudes and the waveform filtering.
Reference phase types for calculating time windows (optional, only used considered by scamp):
phaseStart: phase type defining the reference for the start of the time window, e.g.
phaseStart = P
phaseEnd: phase type defining the reference for the end of the time window, e.g.
phaseEnd = S
Note
The parameters
phaseStart
andphaseEnd
are optional configuration parameters. They are used for prediction of arrival times of the configured phase types. They are only considered when computing the amplitudes by scamp where origins exist and the arrival times of P and S waves can be predicted. IfphaseStart
orphaseEnd
are not set, the respective time-window parameters are relative to the pick time.Phase-type or pick-related time windows:
noiseBegin: start of the noise window relative to phaseStart or pick time. Default:
noiseBegin = -8
noiseEnd: end of the noise window relative to phaseStart or pick time. Default:
noiseEnd = -4
signalBegin: start of the noise window relative to phaseStart or pick time. Default:
signalBegin = -4
signalEnd: end of the noise window relative to phaseEnd or pick time. Default:
signalEnd = 4
Note
The default values apply if the parameter is not explicitly configured.
The noise time window parameters are used to compute the SNR which is written to the resulting amplitude.
Filter parameters for band-pass filtering. Positive values of frequencies refer to frequencies in units of Hz (1/s, not angular frequency!). Negative values refer to the fraction of the Nyquist frequency:
loFilterFreq: lower cut-off frequency. Example setting the frequency to 1 Hz:
loFilterFreq = 1
hiFilterFreq: upper cut-off frequency. Example setting the frequency to 80% of the Nyquist frequency:
highFilterFreq = -0.8
order: order of the Butterworth filter frequency. Default:
order = 4
Note
The filter frequency parameters are optional. If not set, no filtering is applied.
The actual configuration parameters for the sigma amplitudes are currently NOT configurable in the global bindings as other amplitude types. Instead, the alternative configuration in the global configuration can be used. It takes the structure
module.trunk.global.amplitudes.[name].[parameter] = [value]
where [name], [parameter] and [value] are to be replaced by actual values.
While the filter parameters are set to values common for all plugin amplitude parameters, e.g.
module.trunk.global.amplitudes.sigma.loFilterFreq = -loFF-
module.trunk.global.amplitudes.sigma.hiFilterFreq = -hiFF-
module.trunk.global.amplitudes.sigma.order = -order-
the time windows are configured for each amplitude type individually, e.g. for the amplitude type sigma_I05:
module.trunk.global.amplitudes.sigma_I05.phaseStart = -P-
module.trunk.global.amplitudes.sigma_I05.phaseEnd = -S-
module.trunk.global.amplitudes.sigma_I05.noiseBegin = -noiseBegin-
module.trunk.global.amplitudes.sigma_I05.noiseEnd = -noiseEnd-
module.trunk.global.amplitudes.sigma_I05.signalBegin = -signalBegin-
module.trunk.global.amplitudes.sigma_I05.signalEnd = -signalEnd-
where the values enclosed by “-” are to be replaced in the configuration by actual values.
Setup¶
The configuration of the amplitude computation requires the steps set out below. Make all configurations for the considered modules either in the
Global module configuration (
global.cfg
) orModule configurations of scautopick (
scautopick.cfg
) or scamp (scamp.cfg
).
Plugins selection: Add the plugins to the list of loaded plugins:
plugins = ${plugins}, sigmaamps, sigmaampsp1, sigmaampsp2
Choose amplitude names: Add the amplitude names to be calculated by scautopick or scamp and the respective plugin and component, e.g.
amplitudes = sigma_I05, sigma_I95, sigma_duration, sigma_CI, sigma_SED, sigma_CAV, \ sigma_Tp, sigma_Tm, sigma_pga, sigma_pgv, sigma_pgd, \ sigma_I05_h1, sigma_I95_h1, sigma_duration_h1, sigma_CI_h1, sigma_SED_h1, sigma_CAV_h1, sigma_Tp_h1, \ sigma_Tm_h1, sigma_pga_h1, sigma_pgv_h1, sigma_pgd_h1, \ sigma_I05_h2, sigma_I95_h2, sigma_duration_h2, sigma_CI_h2, sigma_SED_h2, sigma_CAV_h2, sigma_Tp_h2, \ sigma_Tm_h2, sigma_pga_h2, sigma_pgv_h2, sigma_pgd_h2, \ sigma_I05_l, sigma_I95_l, sigma_duration_l, sigma_CI_l, sigma_SED_l, sigma_CAV_l, sigma_Tp_l, sigma_Tm_l, \ sigma_pga_l, sigma_pgv_l, sigma_pgd_l, \ sigma_p1_I05, sigma_p1_I95, sigma_p1_duration, sigma_p1_CI, sigma_p1_SED, sigma_p1_CAV, sigma_p1_Tp, \ sigma_p1_Tm, sigma_p1_pga, sigma_p1_pgv, sigma_p1_pgd, \ sigma_p1_I05_h1, sigma_p1_I95_h1, sigma_p1_duration_h1, sigma_p1_CI_h1, sigma_p1_SED_h1, \ sigma_p1_CAV_h1, sigma_p1_Tp_h1, sigma_p1_Tm_h1, sigma_p1_pga_h1, sigma_p1_pgv_h1, sigma_p1_pgd_h1, \ sigma_p1_I05_h2, sigma_p1_I95_h2, sigma_p1_duration_h2, sigma_p1_CI_h2, sigma_p1_SED_h2, sigma_p1_CAV_h2, \ sigma_p1_Tp_h2, sigma_p1_Tm_h2, sigma_p1_pga_h2, sigma_p1_pgv_h2, sigma_p1_pgd_h2, \ sigma_p1_I05_l, sigma_p1_I95_l, sigma_p1_duration_l, sigma_p1_CI_l, sigma_p1_SED_l, sigma_p1_CAV_l, sigma_p1_Tp_l, sigma_p1_Tm_l, sigma_p1_pga_l, sigma_p1_pgv_l, sigma_p1_pgd_l, \ sigma_p2_I05, sigma_p2_I95, sigma_p2_duration, sigma_p2_CI, sigma_p2_SED, sigma_p2_CAV, sigma_p2_Tp, \ sigma_p2_Tm, sigma_p2_pga, sigma_p2_pgv, sigma_p2_pgd, \ sigma_p2_I05_h1, sigma_p2_I95_h1, sigma_p2_duration_h1, sigma_p2_CI_h1, sigma_p2_SED_h1, sigma_p2_CAV_h1, \ sigma_p2_Tp_h1, sigma_p2_Tm_h1, sigma_p2_pga_h1, sigma_p2_pgv_h1, sigma_p2_pgd_h1, \ sigma_p2_I05_h2, sigma_p2_I95_h2, sigma_p2_duration_h2, sigma_p2_CI_h2, sigma_p2_SED_h2, sigma_p2_CAV_h2, \ sigma_p2_Tp_h2, sigma_p2_Tm_h2, sigma_p2_pga_h2, sigma_p2_pgv_h2, sigma_p2_pgd_h2, \ sigma_p2_I05_l, sigma_p2_I95_l, sigma_p2_duration_l, sigma_p2_CI_l, sigma_p2_SED_l, \ sigma_p2_CAV_l, sigma_p2_Tp_l, sigma_p2_Tm_l, sigma_p2_pga_l, sigma_p2_pgv_l, sigma_p2_pgd_l
Hint
The list of amplitude names is long and may be incompletely documented. To see a complete list, simply add the plugins to scolv and re-compute magnitudes from the scolv Location tab. When prompted to select the types you may read the amplitude names.
Warning
The names of amplitude types are case sensitive and may not be fully consistent with names used in scientific literature.
Configure the amplitude parameters: Add the set of configuration parameters for each configured amplitude type.
Example configuration for the amplitude type sigma_pga, time window parameters are related to actual pick times:
module.trunk.global.amplitudes.sigma.loFilterFreq = 2 module.trunk.global.amplitudes.sigma.hiFilterFreq = 6 module.trunk.global.amplitudes.sigma.order = 4 module.trunk.global.amplitudes.sigma_pga.noiseBegin = -8 module.trunk.global.amplitudes.sigma_pga.noiseEnd = -4 module.trunk.global.amplitudes.sigma_pga.signalBegin = -4 module.trunk.global.amplitudes.sigma_pga.signalEnd = 4
Example configuration for the amplitude type sigma_p2_pga_l, time window parameters are related to predicted arrival times of the first arrival P phase. No filtering is applied:
module.trunk.global.amplitudes.sigma_p2_pga_l.phaseStart = P module.trunk.global.amplitudes.sigma_p2_pga_l.phaseEnd = P module.trunk.global.amplitudes.sigma_p2_pga_l.noiseBegin = -8 module.trunk.global.amplitudes.sigma_p2_pga_l.noiseEnd = -4 module.trunk.global.amplitudes.sigma_p2_pga_l.signalBegin = -4 module.trunk.global.amplitudes.sigma_p2_pga_l.signalEnd = 4
Repeat the configuration for all amplitude types selected in
amplitudes
. Default values apply for amplitudes and parameters without a configuration.
Application¶
Run scautopick or scamp in real time or in non-real-time XML-based playbacks. In non-real-time XML-based playbacks the created XML files contain the amplitudes among all other parameters.
Examples of non-real-time XML-based playbacks:
For scautopick simply provide the waveforms:
$ scautopick --ep --playback -I [waveform data source] -d [database] > picks.xml
For scamp: provide the waveforms and the Origins with Arrivals and Picks in
origins.xml
:$ scamp --ep origins.xml -I [waveform data source] -d [database] > amplitudes.xml
Read the amplitude values from the created XML files or from the database.
Results¶
The computed values are written to amplitude objects which can be found in the database or the XML files.
Example for I05 and CAV amplitudes computed by the plugins sigmaamps and sigmaampsp2, respectively:
<?xml version="1.0" encoding="UTF-8"?>
<seiscomp xmlns="http://geofon.gfz-potsdam.de/ns/seiscomp3-schema/0.11" version="0.11">
<EventParameters>
...
<amplitude publicID="Amplitude/20200824082953.802835.11139">
<type>sigma_I05</type>
<amplitude>
<value>0.04988864196</value>
</amplitude>
<timeWindow>
<reference>2020-08-01T11:00:00.000000Z</reference>
<begin>-4</begin>
<end>4</end>
</timeWindow>
<snr>45.57455237</snr>
<pickID>20000621.005250.79-GR.CLL..BHZ</pickID>
<waveformID networkCode="GR" stationCode="CLL" channelCode="BHE"/>
<creationInfo>
<agencyID>gempa</agencyID>
<author>scamp@localhost</author>
<creationTime>2020-08-01T12:00:00.000000Z</creationTime>
</creationInfo>
</amplitude>
...
<amplitude publicID="Amplitude/20200824082953.829365.11156">
<type>sigma_p2_CAV</type>
<amplitude>
<value>0.2932203282</value>
</amplitude>
<timeWindow>
<reference>2020-08-01T11:00:00.000000Z</reference>
<begin>-4</begin>
<end>4</end>
</timeWindow>
<snr>45.57455237</snr>
<pickID>20000621.005250.79-GR.CLL..BHZ</pickID>
<waveformID networkCode="GR" stationCode="CLL" channelCode="BHE"/>
<creationInfo>
<agencyID>gempa</agencyID>
<author>scamp@localhost</author>
<creationTime>2020-08-01T12:00:00.000000Z</creationTime>
</creationInfo>
</amplitude>
...
</EventParameters>
</seiscomp>