SIGMA Plugins for Amplitude Processing

The package provides the plugins

  • sigmaamps.
  • sigmaampsp1.
  • sigmaampsp2.

for computing SeisComP amplitudes.

If these plugins are added to the SeisComP modules scautopick or scamp and available amplitudes are configured, the modules compute the configured amplitudes from waveforms. The amplitudes include types which are typically required for

  • Earthquake Early Warning (EEW).
  • Strong motion earthquake analysis.
  • Seismic engineering purposes.

Concept

The plugins compute 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:

  • CAV: Cumulative absolute velocity
  • CI: Characteristic intensity
  • duration: Duration (95%-5%)
  • I05: Arias intensity at 5%
  • I95: Arias intensity at 95%
  • pga: Peak ground acceleration
  • pgv: Peak ground velocity
  • pgd: Peak ground disaplacement
  • SED: Specific energy density
  • Tm: Mean period
  • Tp: Predominant period

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: l = \sqrt {v^2 + h_1^2 + h_2^2}

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 component:

    sigma_pga
    
  • pga computed by the sigmaampsp1 plugin on the first horizontal 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 and phaseEnd 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. If phaseStart or phaseEnd 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.

  1. Plugins selection: Add the plugins to the list of loaded plugins. E.g. in the global module configuration (global.cfg) or in the module configurations of scautopick (scautopick.cfg) or scamp (scamp.cfg):

    plugins = ${plugins}, sigmaamps, sigmaampsp1, sigmaampsp2
    
  2. 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
    

    Warning

    The names of amplitude types are case sensitive and may not be fully consistent with names used in scientific literature.

  3. 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.

Execution

  1. 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:

      scautopick --ep origins.xml -I [waveform data source] -d [database] > amplitudes.xml
      
  2. 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>