
ccloc¶
Event detector based on template matching by waveform cross-correlation.
Description¶
ccloc detects events by template matching. It finds similarities of waveforms to templates from pre-defined master events based on cross-correlation of characteristic functions.
ccloc declares a new origin if the waveform fit parameters are above the configured thresholds. The origin location and depth are taken from the matched master event whereas the origin time is determined from the processed time window.
An efficient configuration strategy is described in the section Getting started.
Note
The hypocenter locations and times are not found by locating but are derived from the time of the master template and the time of the processed time window. Relocate the origin for more precise parameters. For relocation provide the origin to other modules such as scanloc [1], screloc [2] or use scolv [3] for interactive analysis.
Event type¶
The new origin contains the event type of the master event as a comment. The type comment is evaluated by the evccloc plugin for scevent [5]. When applying this plugin the type of the event is set according to the type of the master event. In this way, ccloc can also be used for event discrimination.
Workflow¶
The full workflow consists of
ccloc subscribes to all streams (channels) for which the master event has picks. 3-component
data are considered if use3C
is enabled. On each received
record the common time window of all channels is computed. If sufficient data
are available the time windows are processed.

Processing of a data time window of contiuous channels. The step of each processing step is the time of one sample. See Data processing for how each time window is processed.
Each processed time window is matched with the master
event. If the overall fit exceeds the configured threshold
,
the detector is started searching for the maximum fit within the
configured timewindow
. The timestamp of the maximum
fit is taken as event time and an origin with a magnitude
is sent to the messaging.
Data processing¶
The data processing before applying cross-correlation consists of
- Data selection
- Computation of the characteristic function used for detection.
For increased speed the data are processed according to the configuration in the time domain. The schema is illustrated below.

Processing schema in the time domain. data are the template waveforms and continuous input waveforms corrected for sensitivity. data are also the output waveforms used by subsequent steps.
Note
The processing is applied to the data of the master events as well as to the continuous data. Processing is done in the time domain as it is much faster than in the frequency domain.
Data selection¶
The waveform data of the master event template and of the matched input data, e.g. real-time waveforms, are selected and
loaded according to the streams corresponding to the picks defined by the
master event.
The parameter use3C
configured in the ccloc binding profile controls
whether the data from all available stream components are loaded or only for the
stream component on which a pick was defined. By default, use3C
is enabled and all stream components are used. If disabled and the S-wave picks
are defined on one horizontal
component then the other complementary component is considered as well. If the S pick
is defined on the vertical component, then only vertical-component data are considered.
Characteristic functions¶
Supported characteristic functions are:
- Processed waveforms where the processing can comprise any SeisComP filters.
- Envelopes formed from processed waveforms.
- Logarithm applied to processed waveforms.
Processed waveforms¶
Processed waveforms can be used as characteristic function. Here, any
available filter [7]
or filter chains can be provided by configuring the parameter
processing.filter.definition
. In this way more complex characteristic
functions such as STALTA or user-defined envelopes can be formed.
Bandstops at 50 Hz and 100 Hz are applied when enabling processing.filter.bandStop
.
As filter chains can be applied to waveforms and viewed in scolv [3] or scrttv [6], they can be interactively designed and tested before.
Envelope¶
The cross-correlation can be computed on the processed seismograms or on
the envelopes of the processed waveforms.
Using the envelope of seismograms instead of the seismograms themselves, the
cross-correlation becomes less sensitive to small changes in the source location
and in source mechanism between master signal and the earthquake to be detected.
For envelope computation enable processing.envelope.enable
.
ccloc computes the envelope in the time domain using a running root mean square:
(2)¶
Here yij is the output signal of the single trace operation, which in this case is the envelope of the signal. ykj is the input signal of the single trace operation, which in this case is the filtered seismogram. i and j are counters for time and trace number, respectively. N is the number of samples used for the RMS. N is calculated as:
(3)¶
N will be set to 1 for a processing.envelope.hiFreq
value less than
or equal to 0.
The parameters processing.envelope.samplingFrequency
and processing.envelope.hiFreq
are configurable.
Logarithm¶
The logarithm trace can be computed from the processed waveforms or from envelopes.
By enabling processing.logarithm.enable
the logarithm is computed and
used as the characteristic function:
(4)¶
Application of this single trace operation will generally amplify the noise level with respect to the signals from events. This may be an unwanted effect. On the other hand using this option increases the importance of small-amplitude waves like coda waves in comparison to direct P- and S-waves. It may also increase the importance of recordings at distant stations in comparison with close stations (if the network cross-correlation is applied).
Noise removal¶
If we use seismogram envelopes, the constant background noise level causes a problem in the computation of the cross-correlation. Even if we remove the mean value in the seismograms, a constant offset appears in the envelopes. This offset value in the envelopes corresponds to the standard deviation of noise in the original seismograms. Correlating a constant (noise) trace with the master event results in a large correlation coefficient possibly causing wrong detections. A simple solution to this problem is to remove the noise level from the master event traces as well as from the current time window traces. We estimate the noise level yj in a time window j before the potential signal at envelope trace yij:
(5)¶
Here i is the counter for time samples, Nn is the number of time samples in the time window to estimate the noise level, and j is a counter for the traces (seismometers times components). Then we remove the noise level, which is a constant offset in the envelopes:
(6)¶
Here, the time window, where we remove the offset (and where we later compute the correlation) is generally different from the time window, where we estimate the noise level.
Detection by cross correlation¶
After data processing, the processed waveform templates are cross-correlated with the measured waveform data.
Single trace¶
In a first step we compute the single trace cross-correlation coefficient with zero lag at channel j:
(7)¶
Here i is the sample index of the channel, N is the number of time samples in the used correlation time window, xj is the filtered seismogram or envelope of the master event after single trace operations described in Data processing, yj is the filtered seismogram or envelope of the current time window after applying the same operations as to the master traces, and j is a counter for the traces (seismometers times components).
This cross-correlation coefficient is computed for all traces j=1,…,J, where
J/3 is the total number of stations of the master event, if we use
three-component seismograms.
Using three-component seismograms is controlled by parameter use3C
defined in the ccloc binding profile.
The first condition for a detection is, that
(8)¶
for at least Jmin channels.
Rj is defined in equation (7). R1 is the configurable input
threshold detector.channelThreshold
. It is typically chosen in
the order of R1 ≈ 0.6 - 0.8.
Jmin is the minimum number of matched seismograms, that is where the event is
detected. j>=Jmin is required.
Jmin is implicitly given through detector.minimumChannelRatio
as the minimum ratio between matched and available channels.
In other words: This condition requires that the current time window and the master event show similar waveforms (Rj > R1) for at least Jmin seismograms. We use the parameter Jmin to account for the fact that some seismograms may show large local noise (Rj < R1), when a small earthquake occurs.
When the data transmission of some sensors is interrupted the respective correlation coefficient is set to zero: Rj = 0 < R1 and the result is similar to a local noise disturbance. A detection is only possible if the number of noisy or otherwise disturbed traces does not exceed J - Jmin.
Network¶
In a next step ccloc computes the network cross-correlation with
zero lag, where two options, trace (A) and total (B), are available. The option
is selected with processing.normalization
.
Note
The network cross-correlation is only computed if the ratio of time
window traces and master event traces does not fall below detector.minimumChannelRatio
and if the ratio of time window stations and master event stations does not fall
below detector.minimumStationRatio
. Otherwise the network cross-correlation
is set to 0.
In option A ccloc computes the average single trace cross-correlation coefficient of the Jmin traces with the highest single trace cross-correlation coefficient:
(9)¶
In option B ccloc computes the matrix cross-correlation with zero lag, where one dimension of the matrix is time and the other dimension is the different traces:
(10)¶
The major difference between Rtrace and Rtotal is that in equation (9) the relative amplitudes between stations and components are neglected. They are taken into account in equation (10), meaning that only events of similar magnitude are detected.
The second condition for a detection is either
(11)¶
or:
(12)¶
Here detector.threshold
is a configurable threshold, which judges the
similarity across the network and should be set roughly detector.threshold
≈ 0.6 - 0.8.
Declaration of origins¶
Once the detector thresholds are met, a new origin is created containing the origin parameters, picks and arrivals as well as the event type of the master event as a comment.
The origin time is the time of the detection. The pick times are derived from the traveltimes of the master event added to the origin time of the detection.
In case of larger differences in source location, the matched and the real arrivals may be significantly different. The matched picks may hence be of limited accuracy and of limited use for relocating. Therefore, the picks somewhat represent theoretical onsets and are flagged by adding a T to the beginning of the phase hint, e.g. TP and TS for P and S phases, respectively. Hereby, the original phase names, e.g. P, S, Pn, Sg, etc., originating from the template event are preserved.
All arrivals starting with T are given a weight of 0. Therefore, they cannot be used for relocation, e.g. by scanloc or screloc as typically no corresponding traveltime tables exist. Viewing these picks in scrttv or scolv provides more advanced control over the functioning of ccloc.
Apply repicking to refine the picks by the AIC method
and make the refined picks applicable to locator routines.
When repicking, a minimum score
based on
the repicked phases may be defined as a threshold which must be exceeded before
sending the origins.
Note
The detections by template matching can only have phase detections for which the master event has arrivals. That is, if the master event misses an S arrival at a station, then the detection cannot have a TS arrival for the corresponding station.
Pick refinement¶
The T-picks found from template matching may be inaccurate. Therefore they should be re-picked by a second-stage AIC picker. Once the AIC can find a pick exceeding the configured minimum SNR, the leading T of the phase name is removed and the arrival is given a weight of 1. The re-picked phase picks are typically more accurate and can now be used for re-locating. AIC picks not exceeding the minimum SNR receive trailing A, e.g. APg instead of Pg and a weight of 0. As for the T picks the A picks cannot be used automatically for re-locating e.g. by scanloc or screloc as typically no corresponding travel-time tables exist.
To use the T or the A picks for re-locating, the phase names can be replaced interactively in the phase table of scolv.
Note
Sending all T- and A-type picks (see below) may results in an unnecessary and large amount of output and is therefore disabled by default. On the other hand, the A picks may be considered by operators. Simply adjusting the phase names to supported ones allows to use them by SeisComP locators. To enable the sending of T or A picks configure in the module configuration:
repicking.sendTheoreticalPicks
for T picks.repicking.sendAICPicks
for A picks.
As a result of re-picking one station may deliver two different picks for the same phase type with different given phase hints, e.g. P and TP or AP. The picks are shown in scolv:
- Red for automatically re-picked picks with weight 1.
- Gray for arrivals with weight 0 from template matching.
The AIC configuration parameters are configured in the ccloc configuration and in the ccloc binding profile:
- enable
repicking.enableAIC
in the module configuration in order to activate re-picking by AIC - set the
ppicker.AIC.*
parameters for re-picking P-type phases. The parameters are configured in the ccloc binging profile. The time window parameters are use with respect to the TP picks. Ensure that AIC windows for P wave do not overlap with S phases. - set the
spicker.AIC.*
parameters for re-picking S-type phases. The parameters are configured in the ccloc binging profile. The time window parameters are use with respect to the TS picks. As the approximate arrival time is known from the template, the parametersspicker.AIC.step
andspicker.AIC.minCnt
are unused and can be ignored.
Showing these picks provides more advanced control over the functioning of ccloc.
Getting started¶
This section describes the main steps to configure ccloc.
Stations participating in template matching must have ccloc bindings with
detecEnable
being activated.
At least one master event must be configured. Multiple master events
can be defined and processed in parallel to account for different waveforms or
seismicity regions. For a verification of the configuration read the section
Verification.
ccloc can be configured with the following hierarchy, the last read parameter value takes priority:
- Module configuration:
- general parameters
- template parameters
- data processing
- event detection
- Bindings confguration:
- template parameters
- data processing
- AIC re-picker parameters
To get started, it is sufficient to define a master template and a few general parameters.
Create the new event template to generate the miniSEED data and event XML files defining the template:
Choose the event in scolv, re-pick P and S phases and disable picks (remove arrival) from stations which shall not participate in template matching. Only streams for which picks exist are considered for template matching. Therefore, phases should be picked on the component on which they can be observed best and on which the automatic picks are made, e.g. by scautopick.
Note
When picks for the same phase type from ccloc and other pickers such as scautoloc exist but they are made on different streams, e.g. HHN and HHZ, they may both be associated to the same origin and bias the solution. Therefore, the picks provided with the master event must match in component with the picks from the other phase pickers.
Relocate the origin.
Set the event type of the template event to automatically set the event type of detection. This step required the plugin evccloc to be configured in scevent.
Commit the solution, note the originID and the eventID: expand the event in the scolv Events list and read the IDs
Dump the related template waveform into a miniSEED file. You can use a combination of scevtstreams [8] and capstool [9] or scart [10].
Create a subdirectory of @DATADIR@ and save the XML and the miniSEED file therein. E.g.:
mkdir -p $SEISCOMP_ROOT/share/ccloc/[eventID] cp [XML file] [miniSEED file] $SEISCOMP_ROOT/share/ccloc/[eventID]
Note
When regularly clearing the database or the waveform archive, the master event information may get lost. In this case it is recommended to store the master event information and waveforms in files. Check above for the procedure.
Hint
You may write a skript and configure one of the configurable buttons in scolv to extract the template interactively by a mouse click.
Example script, e.g.
@DATADIR@/ccloc/configure-ccloc-template.sh
:#!/bin/bash cclocConfig="$SEISCOMP_ROOT/share/ccloc" # Get the event and origin ID eventID=$2 originID=$1 # database db="-d mysql://sysop:sysop@localhost/seiscomp" mkdir -p $cclocConfig/$eventID cd $cclocConfig/$eventID # Prepare template, provide miniSEED records sorted by time! scxmldump -E $eventID -PAMf -vvvv $db > $eventID.xml scevtstreams -i $eventID.xml -E $eventID -m 120 -vvvv -L 0 > $eventID.list scart -I caps://localhost:18002 --list $eventID.list --stdout | scmssort -u -E > $eventID.mseed if [ `stat --format %s $eventID.mseed` == 0 ]; then echo "no data found" rm -r $eventID.mseed fi echo "generated template files in " $cclocConfig/$eventID echo "files: " $eventID.xml $eventID.list $eventID.mseed echo "use the files to configure ccloc" echo "event ID: " $eventID echo "origin ID: " $originID
Example scolv configuration in
scolv.cfg
:# Label of button that triggers user defined script0. button0 = MakeCclocTemplate # Full path to the script executed when hitting the button labeled with button0. scripts.script0 = "@DATADIR@/ccloc/configure-ccloc-template.sh"
Start scolv with –debug to observe the output information about the template when hitting the new button.
Configure the event template in the module configuration:
Choose an existing ccloc instance for adding the template events or create a new ccloc instance.
Create an event profile for the new template in the module configuration. The name of the event profile is typically the eventID.
For the new profile configure at least:
event.$name.baseID
for the ID of the event if the event parameters are read from the seiscomp database.event.$name.originID
for the ID of the considered origin associated to the event. By default, the preferred origin is selected. However, the preferred origin may change by reprocessing or other origins may be specifically prepared for template matching. Therefore, it is recommended to provide a unique originID.event.$name.noiseBegin
andevent.$name.noiseEnd
defining the noise window and to account for any effects due to filtering.event.$name.signalBegin
andevent.$name.signalEnd
according to the waveform of the master event template.event.$name.signalBegin
andevent.$name.signalEnd
are relative to the first picked P and the first picked S arrivals, respectively.Note
If the master event contains no P or not S arrival for a station, then the P or the S arrival time, respectively, is predicted from the first S or P arrival assuming vp/vs = 1.73.
event.$name.processing.filter.definition
for the filter to be applied before template matching. Remove long- and short-period noise!processing.envelope.samplingFrequency
to resample the envelope ifprocessing.envelope.enable
= true. Resampling is performed by simply removing or adding samples. Downsampling boosts the performance of ccloc in terms of speed.Detection thresholds:
Note
Events may have several P and S picks on the same station, e.g. Pg, Pn, Sg or Sn. Currently only the first arriving P and the first arriving S picks are used. Late P and S arrivals are currently not considered.
Configure
events
using the name of the event profile.
Configure general parameters in the module configuration: the general parameters are inherited by the event profiles and the processing profiles where they can be overwritten. Configure
detector.fitWindow
to allow searching for matches on all waveforms from all stations within that time window. This parameter is important to account for hypocentre differences with respect to the master event which will result in traveltime differences.detector.window
to search for more detections after the initial trigger. ccloc will aggregate all found detections withindetector.window
and select the detection with the best overall match to create a new origin. All other detections will be ignored.
Create ccloc bindings: only stations with bindings will be considered. Create at least one profile and configure the AIC parameters for the re-picker if applied.
Update the bindings configration of the configured ccloc instance. E.g. for new-ccloc:
seiscomp update-config new-ccloc
First test: execute ccloc on the command line for matching the template event to its own waveforms. Use an offline playback for testing.
- The event must be found by its own template with a high match. The match is printed to the command line.
- To compare the results, use the option –ep and redirect the output to a XML file which can be opened in scolv.
- Inspect the waveform files. Dump them with the command line option –dump.
Imporant other parameters¶
- Data processing: Set parameter
use3C
in the ccloc binding profile to decide whether or not to use 3 components for matching. If disabled, only the component for which the selected origin of the master event has an arrival will be considered. - Re-picking: Decide if matched phases should be refined by using an AIC repicker.
Configure
repicking.enableAIC
accordingly. Ifrepicking.enableAIC
is enabled the AIC parameters must be configured in the ccloc bindings profiles. - Event specific parameters:
event.$name.group
defining the membership of the master template to a group. The origins resulting from templates belonging to the same group are jointly evaluated if they were created within a timespan defined inprocessing.interval
. Only the resulting origin with the highest overall match is sent to the messaging.
Multiple template events¶
Multiple template events can be defined in order to account for events of different sources for the same or for different regions.
- Different sources in the same region: add all template events to the same ccloc instance. Adjust the configuration parameters separately for each template in the module and binding configuration.
- Sources in different regions: create a new ccloc instance for each region or add to a existing instance. Configure individually.
One new event may be detected by several template event of the same ccloc
instance. In this case keeping
only the best solution with the highest overall fit instead of all may be desired.
To keep only the best solution, template events can be grouped by event.$name.group
.
The best solution will
then be selected from all solutions found from the template events of the same
group arriving within a configured time window configured by detector.window
.
Verification¶
A first verification test should include to find the master event itself by template matching: Verify that time windows and data processing is appropriate. Filter effects must not disturb the data signal used for cross-correlation.
Run ccloc on the command line in dump mode on a dataset that contains the template event with all waveforms. In dump mode ccloc will generate output files from all processing steps in the ${event} directory which is created for all considered master events.
- set dump output directory:
output.dump.directory
= ${DUMP_PATH} - enable dumping with the command line option –dump
Note
The output files may be very large. To minimize the file sizes we recommended to use small input files. The output files are created in
output.dump.directory
for the template and the processed signal. Indices indicate the content:0: raw waveforms
1: waveforms without gain
2: waveforms with subtracted mean
3: filtered waveforms
4: enveloped waveforms
5: resampled waveforms
6: logarithm of waveforms
7: prepared waveforms
8: data used for cross-correlation
- set dump output directory:
Verify the time window settings
Display filtered template waveforms of the master event on top of filtered input data.
scrttv ${DUMP_PATH}/${event}/real/3_filtered.mseed ${DUMP_PATH}/${event}/master/3_filtered.mseed
Navigate to the master template and check for differences between the signal of the master event template and the input signal
- in scrttv press 4 to sort the traces and zoom into the individual channels
- the template waveforms include the configured time windows of the noise and the signal
- the overlapping of the template and the input signal is indicated in scrttv in pink
- note that yellow areas indicate gaps which are expected in the order of one sample due uncertainties when cutting out the time windows
- depending on the configured filter, differences at the beginning of the master template within the noise window are normal
- however, make sure that the differences do not reach the signal window which is considered for template matching
- decrease parameter event.${event}.noiseBegin until you are satisfied with the results
Example:
Assume the following configuration example for the master event gempa2018abcd:
configuration:
events = gempa2018abcd event.gempa2018abcd.data = gempa2018abcd.mseed output.dump.directory = /tmp/ccloc_dump/
execution:
ccloc -I gempa2018abcd.mseed --dump scrttv /tmp/ccloc_dump/gempa2018abcd/real/3_filtered.mseed /tmp/ccloc_dump/gempa2018abcd/master/3_filtered.mseed
Verify filter, envelope and time window settings.
Run ccloc in dump mode as described above.
Display raw and signal data of the master template side by side.
$ scrttv ${DUMP_PATH}/${event}/master/0_raw.mseed ${DUMP_PATH}/${event}/master/8_signal.mseed
- ccloc uses location code ‘09’ to highlight the signal data used for cross-correlation
- press 4 to bring related channels close to each other
- load picks of master event (File -> Open XML)
- verify that the envelopes created by ccloc match your expectations (make sure P- and S-waves are covered correctly)
- adjust parameters event.${event}.signalBegin and event.${event}.signalEnd until you are satisfied with the results
Review matching results.
Run ccloc in dump mode as described above.
Compare envelopes of template with real data.
scrttv ${DUMP_PATH}/${event}//master/4_enveloped.mseed ${DUMP_PATH}/${event}/real/4_enveloped.mseed
navigate to a location where you expect a match in both windows
compare the envelopes with each other - both should match
Pipeline or multi-area application¶
ccloc can be applied in different processing pipelines and for different purposes simultaneously. In order to avoid clashes in configuration parameters for such applications or to separate the processing, different instances of ccloc can be configured and executed. E.g. for a new instance named “l1” create a ccloc alias and treat it separately.
seiscomp alias create l1ccloc ccloc
Origin evaluation¶
ccloc adds a comment field to the new origins containing the match parameters of
the origin. These informations are also written to the log files of ccloc at output
level 4 (debug) or on the commandline when starting ccloc with the option –debug.
The comment field can be shown in the Events tab of scolv and the other
event lists. To show the comment
configure a custom column in the scolv configuration scolv.cfg
:
# Default value to display if the specified origin or event comment id was not
# found.
eventlist.customColumn.default = "-"
# Define the comment id to be used
eventlist.customColumn.originCommentID = configID
# Define the column header label
eventlist.customColumn = ccloc-config
To view the comment values in scolv, expand the event entry in the Events table and list the origins. The origins created with ccloc will show the comment values in the configured custom column:
- overall (mean) fit calculated from the fit values of all matched channels.
- number of traces which have match vs. number of tested traces
- number of stations which have a match vs. number of tested stations.
Event Classification¶
ccloc ships with evccloc, a plugin for scevent [5] used for classifying events based on the event type of the template event.
If the template event has an event type, then ccloc writes a comment to the new origin created by ccloc. The comment contains the event type. The evclcoc plugin reads the event type from the comment and sets the type of the new event accordingly.
scevent procedure¶
The plugin evccloc can be used by scevent. Events in SeisComP are tested for comments created by ccloc. When events have multiple origins with ccloc comments containg the event type, the comment of the latest of these origins containing is considered for setting the event type.
Overwriting an existing event type is enabled by default but can be disbled by
configuring ccloc.overwriteEventType
.
Setting the event type if the event
contains manual origins is disabled by default but can be enabled by configuring
ccloc.overwriteManual
.
Setup¶
Add the evccloc plugin to the configuration of scevent:
plugins = evccloc
Set the plugin parameters in the scevent configuration:
ccloc.setEventType
: Read the event type comment set by ccloc for the origin and apply it to the event. If enabled, all origins of the event are tested for the ccloc event type comment. The type comment of the last origin is used to set the comment.ccloc.overwriteEventType
: Overwrite existing event types by the type set by ccloc. Disabling ignores all type comments if the event has a type.ccloc.overwriteManual
: Allow setting the event type if the event has a manual origin. Disabling ignores all type comments if the event has a manual origin.
Examples¶
Print the commandline help of ccloc:
ccloc -h
Real-time applications
Run ccloc in real time on the commandline with descriptive debug output and configured values:
ccloc --debug
Run ccloc in real time as a daemon whenever seiscomp is started:
seiscomp enable ccloc seiscomp start ccloc
Run ccloc in real time on the commandline while reading the binding configuration from a dedicated database on a specific host:
ccloc -d localhost/seiscomp
Offline applications
Execute ccloc offline with a multiplexed miniseed volume and an inventory XML file. Neither a messaging nor a database connection is required. The resulting origin parameters are not printed.
ccloc --offline --inventory-db inventory.xml --config-db config.xml -I test-sorted.mseed
Execute ccloc offline with a multiplexed miniseed volume and connecting to the seiscomp database on localhost. A messaging system is not required. The resulting origin parameters are output to standard output and redirected to an XML file. Eventually the origins parameters are sent to the SeisComP messaging system on localhost. After sending the origins they can be treated by other configured and running modules such as scanloc, screloc, scamp, scmag or scevent.
ccloc --ep -d localhost/seiscomp -I test-sorted.mseed > origins_ccloc.xml scdispatch -i origins_ccloc.xml -H localhost
Execute ccloc offline with a multiplexed miniseed volume and an inventory XML file. Neither a messaging nor a database connection is required. The resulting origin parameters are output to standard output and redirected to an XML file. The origins parameters can be sent to a SeisComP messaging system or dumped to the seiscomp database.
ccloc --ep --inventory-db inventory.xml --config-db config.xml -I test-sorted.mseed > origins_ccloc.xml
References¶
[1] | https://docs.gempa.de/scanloc/current/ |
[2] | https://docs.gempa.de/seiscomp/4/current/apps/screloc.html |
[3] | (1, 2) https://docs.gempa.de/seiscomp/4/current/apps/scolv.html |
[4] | https://docs.gempa.de/seiscomp/4/current/apps/scxmldump.html |
[5] | (1, 2) https://docs.gempa.de/seiscomp/4/current/apps/scevent.html |
[6] | https://docs.gempa.de/seiscomp/4/current/apps/scrttv.html |
[7] | https://docs.gempa.de/seiscomp/4/current/base/filter-grammar.html |
[8] | https://docs.gempa.de/seiscomp/4/current/apps/scevtstreams.html |
[9] | https://docs.gempa.de/caps/current/apps/capstool.html |
[10] | https://docs.gempa.de/seiscomp/4/current/apps/scart.html |
Configuration¶
etc/defaults/global.cfg
etc/defaults/ccloc.cfg
etc/global.cfg
etc/ccloc.cfg
~/.seiscomp/global.cfg
~/.seiscomp/ccloc.cfg
ccloc inherits global options.
-
events
¶ Type: list:string
Profile names for one or more template events defined in the events section. It can be a single name or a list of event profile names. In a list the names are separated by comma.
-
profiles
¶ Type: list:string
Add one or more available processing profiles defined in the profile section below. It can be a single name or a list of profile names.
Processing profiles can be created and used for processing with different template events. Profiles must be registered here for further use.
Note: This option is deprecated. Please configure per channel properties in the ccloc bindings.
-
before
¶ Unit: s
The timespan in seconds before now to start processing. Use -1 to let ccloc choose a timespan to speed up the initial window filling. Default is
0
.
Note
restart.* ccloc can save its state on module shutdown to be able to continue seamlessly after a restart. This section provides options to configure the restart behavior.
-
restart.maxTimeGap
¶ Type: double
Unit: min
Defines the maximum time duration between last shutdown and current restart that is tolerated by ccloc. The saved state will be reset if this threshold is exceeded. Missed events may get lost.
Use a value of 0 to disable stateful restarts entirely. Default is
0
.
Note
processing.* Data processing before correlation detection. ** Many of these parameters can be overwritten per template event in the module configuration and per processing profile in the ccloc bindings.
-
processing.bufferSize
¶ Type: int
Unit: s
Data buffer size (integer values). This parameter is important when testing with record volumes where records are not ordered by time. Default is
600
.
-
processing.interval
¶ Type: int
Unit: s
Processing interval (integer values). If records are received it will process the data every n seconds and not more often. 0 disables the interval and starts processing whenever a new record is received and enough data is available. Default is
0
.
-
processing.maximumLatency
¶ Type: double
Unit: s
Defines the maximum data latency in seconds tolerated by the detector. If data latency is higher than this value processing is triggered without this particular channel. Default is
10
.
-
processing.maximumStepFrequency
¶ Type: int
The maximum frequency of processing steps per time window. If the data sampling frequency is much higher, this parameter reduces processing time by increasing the time steps. A value of zero derives the time steps from the data or envelopes sampling frequency.
Please note: Changing this parameter might have a strong negative impact on the matching results. Choose carefully. Default is
0
.
-
processing.maxAllowedGap
¶ Type: double
Unit: s
Sets the maximum allowed gap between two samples.
This parameter can be overwritten per template event. Default is
0.5
.
-
processing.maxAllowedOverlap
¶ Type: double
Unit: s
Sets the maximum allowed overlap between two samples.
This parameter can be overwritten per template event. Default is
0.5
.
-
processing.normalization
¶ Type: string
Flag for normalization: trace or total. Default is
total
.
-
processing.filter.definition
¶ Type: string
Filter applied to the raw waveforms. Make sure to define a noise window that is large enough to avoid unwanted filter effects at the beginning of the signal.
This parameter can be overwritten per template event and processing profile.
-
processing.filter.bandStop
¶ Type: boolean
Enables a bandstop filter at 50Hz and 100Hz.
This parameter can be overwritten per template event and processing profile. Default is
false
.
Note
processing.envelope.* Waveform envelopes can be used as characteristic functions. Envelopes are formed from pre-processed data.
-
processing.envelope.enable
¶ Type: boolean
Use envelope as characteristic function for fitting.
This parameter can be overwritten per template event and processing profile. Default is
true
.
-
processing.envelope.samplingFrequency
¶ Type: int
Unit: Hz
Sampling frequency of the envelope (0 = no resampling). Low sampling frequencies speed up the computations. Resampling at least twice the upper corner frequency of the filter.
This parameter can be overwritten per template event and processing profile. Default is
0
.
-
processing.envelope.hiFreq
¶ Type: double
Unit: Hz
Frequency for smoothing the envelope (0 = no smoothing). This parameter will be set to the samplingFrequency for values less than or equal to 0. See documentation section “Envelope” for details.
This parameter can be overwritten per template event and processing profile. Default is
20
.
-
processing.envelope.resampleAverage
¶ Type: boolean
Enables averaging of neighboring samples when downsampling. The width of the kernel is the ratio of SF/samplingFrequency. SF is the sampling rate of the original data before resampling.
This parameter can be overwritten per template event and processing profile. Default is
false
.
-
processing.logarithm.enable
¶ Type: boolean
Use the logarithm of the characteristic function (either waveforms or envelope).
This parameter can be overwritten per template event and processing profile. Default is
false
.
Note
detector.* Detection by cross-correlation including detection thresholds after data pre-processing. ** Many of these parameters can be overwritten per template event.
-
detector.channelThreshold
¶ Type: double
Minimum channel fit to be reached for declaring a match on the channel. Formed by cross-correlating with waveforms of the template event. Parameter range: 0 - 1.
This parameter can be overwritten per template event. Default is
0.55
.
-
detector.threshold
¶ Type: double
Minimum overall (mean) fit of all matched channels. Formed from the channel fits of all matched channels. Needs to be reached to declare a new origin. Parameter range: 0 - 1.
This parameter can be overwritten per template event. Default is
0.55
.
-
detector.minimumChannelRatio
¶ Type: double
Minimum ratio of the number of all matched channels vs. the number of all channels in template event. Needs to be reached to declare a new origin. Parameter range: 0 - 1.
This parameter can be overwritten per template event. Default is
0.55
.
-
detector.minimumStationRatio
¶ Type: double
Minimum ratio of the number of all matched stations vs. the number of stations in template event. A station is matched if it has at least one matched channel. Needs to be reached to declare a new origin. Parameter range: 0 - 1.
This parameter can be overwritten per template event. Default is
0.55
.
-
detector.fitWindow
¶ Type: double
Unit: s
Time window to search for the best match on all waveforms for a given detection. Important parameter to account for traveltime uncertainties w.r.t. the template. Default is
0.5
.
-
detector.window
¶ Type: double
Unit: s
Time window to search for other detections after triggering. Only the detection with the best overall match is reported. Set this window for avoiding multiple detections on the same event. Default is
2
.
-
detector.minimumProcessingWindow
¶ Type: double
Unit: s
Sets the minimum processing time window length to minimize processing steps on each record arrival. 0 s processes the data as fast as possible.
This parameter can be overwritten per template event. Default is
0
.
-
detector.groupPublicationTimeout
¶ Type: int
Unit: s
If event groups are used and an event is declared which still needs to wait for all other events in the group to be processed this timeout is used to publish the best event of this group after a certain amount of time regardless of unprocessed events in the group. A negative value disables this feature and a queued event never times out. Default is
10
.
Note
repicking.* Refinement of picks after detection.
-
repicking.enableAIC
¶ Type: boolean
Run AIC to refine P and S picks found from template matching. The AIC parameters can be configured via ccloc station bindings.
This parameter can be overwritten per template event. Default is
true
.
-
repicking.sendTheoreticalPicks
¶ Type: boolean
Send theoretical picks from template matching like TP and TS. Default is
false
.
-
repicking.sendAICPicks
¶ Type: boolean
Send picks repicked by AIC after template matching which do not reach the minimum SNR as AP, AS, etc.. Default is
false
.
-
repicking.score.minScore
¶ Type: double
Score to be reached to send origin. Default is
0
.
-
repicking.score.pWeight
¶ Type: double
Defines the weight of P arrivals for scoring. Default is
1
.
-
repicking.score.sWeight
¶ Type: double
Defines the weight of S arrivals for scoring. Default is
2
.
Note
output.* Output origin properties and auxilliary information for debugging and tuning.
-
output.events.file
¶ Type: string
Output file for reporting matched events. Each match creates a new line with format yyyy mm dd HH MM SS.FFF Lat Long Mag city CF usedPhases (cha:fit, …). If not set no event file is created.
-
output.origins.status
¶ Type: string
Status given to new origins. “preliminary” is default since origins by ccloc are not located. Empty value: do not set the status.
Possible values:
“”, rejected, reported, preliminary, confirmed, reviewed, final Default is
preliminary
.
Note
output.dump.* Configuration of waveform dumping. Run ccloc with –dump to enable these parameters.
-
output.dump.directory
¶ Type: string
Define location of dump files as a path to an already existing directory.
-
output.dump.eachStep
¶ Type: boolean
Dump each step. An appropriate time window can be configured with parameters output.dump.startTime and output.dump.endTime. Note that this may produce a lot of files. It can be necessary to increase the number of maximum opened files on your system. Enable this option only with small input files or short time windows. Default is
false
.
-
output.dump.startTime
¶ Type: string
Time to start dumping of single steps (requires parameter output.dump.eachStep to be enabled).
-
output.dump.endTime
¶ Type: string
Time to stop dumping of single steps (requires parameter output.dump.eachStep to be enabled).
Note
event.* Define template events and data processing per template event. Processing profiles can be defined and used instead of defining the parameters per template event.
Note
event.$name.*
Defines one template event. The template event contains the eventID,
the event type (optional), the origin parameters, arrivals
and picks. The configuration parameters for processing, detector
and repicking overwrite the module-wide defined values which
are used otherwise.
$name is a placeholder for the name to be used and needs to be added to events
to become active.
events = a,b
event.a.value1 = ...
event.b.value1 = ...
# c is not active because it has not been added
# to the list of events
event.c.value1 = ...
-
event.$name.baseID
¶ Type: string
Defines the eventID to use. The considered origin is configured by originID. Using baseID reads the event from the database if no XML file is defined. Otherwise, the event is loaded from the XML file.
-
event.$name.xml
¶ Type: string
Defines an event parameter XML file to extract the information from the XML file: eventID, event type, originID, origin time, magnitude, latitude, longitude and depth. Furthermore arrivals and picks are collected to define the arrival times and the phase hints. If xml is not set, the parameters are read from the SeisComP3 database.
EXAMPLE: @DATADIR@/ccloc/baseID/baseID.xml
-
event.$name.originID
¶ Type: string
Defines the origin ID used to extract the following information from the XML file or the database: origin time, magnitude, latitude, longitude and depth. Furthermore arrivals and picks are collected and used to create the final origin. If not set, the preferred origin is considered. Default is
preferred
.
-
event.$name.magnitudeID
¶ Type: string
Defines the magnitude ID. The magnitude will be read from the database if no XML file is defined. Otherwise, it will be loaded from the XML file. Default is
preferred
.
-
event.$name.data
¶ Type: string
Defines the data URI for fetching the waveforms. The format is equal to the –record-url parameter. E.g. it can point to a file, an archive or a server. If not set, the template waveforms are requested using the configured RecordStream.
-
event.$name.noiseBegin
¶ Type: double
Unit: s
Defines the begin of the noise window. The mean is computed from the noise window and removed from the whole envelope. This value is relative to the first P arrival. If not given then noiseBegin is set to signalBegin. The minimum mean of both defined noise windows is used finally.
This parameter can be overwritten in a processing profile.
-
event.$name.noiseEnd
¶ Type: double
Unit: s
Defines the end of the noise window. The mean is computed from the noise window and removed from the whole envelope. This value is relative to the first P arrival. If not given then noiseEnd is set to signalBegin + 1. The minimum mean of both defined noise windows is used finally.
This parameter can be overwritten in a processing profile.
-
event.$name.noise2Begin
¶ Type: double
Unit: s
Defines the begin of the second noise window. This value is relative to the first P arrival. If not given then noise2Begin is set to signalBegin. The minimum mean of both defined noise windows is used finally. This parameter is optional and set to noiseBegin if not given.
Please note: In most cases it is not necessary to set this parameter.
This parameter can be overwritten in a processing profile.
-
event.$name.noise2End
¶ Type: double
Unit: s
Defines the end of the second noise window. This value is relative to the first P arrival. If not given then noiseEnd is set to signalBegin + 1. The minimum mean of both defined noise windows is used finally. This parameter is optional and set to noiseEnd if not given.
Please note: In most cases it is not necessary to set this parameter.
This parameter can be overwritten in a processing profile.
-
event.$name.signalBegin
¶ Type: double
Unit: s
Defines the begin of the signal window used for cross-correlation. Relative to the first P arrival. Mandatory unless defined in a processing profile.
This parameter can be overwritten in a processing profile.
-
event.$name.signalEnd
¶ Type: double
Unit: s
Defines the end of the signal window used for cross-correlation. Relative to the first S arrival. Mandatory unless defined in a processing profile.
This parameter can be overwritten in a processing profile.
-
event.$name.deltaM
¶ Type: double
Defines a magnitude offset which is applied to the final magnitude.
-
event.$name.enable
¶ Type: boolean
Enables or disables processing of template event data. If disabled the data is used as provided. Incoming data are processed in any way. If disabled the provided data must have been processed the same way as the current configuration. Default is
true
.
-
event.$name.profiles
¶ Type: list:string
Assigns a list of processing profiles for processing the current template event. The profiles must be defined in the profile configuration section.
Note: This option is deprecated. Please configure per channel properties in the ccloc bindings.
-
event.$name.group
¶ Type: string
Defines a group name for detected events. Results from template events belonging to the same group are jointly evaluated. Only the result with the best match is considered. Therefore, only one event of a group can occur at one time. If the group is empty the event is independent and forms a group containing only this event. Configure groupPublicationTimeout for defining the wait time.
-
event.$name.negative
¶ Type: boolean
If enabled this event is a negative event. Negative event detections don’t create an origin. They can be used to suppress false alarms. Default is
false
.
Note
event.$name.tolerances.* The following options define thresholds used by ccloc to decide whether a template should be used even if errors occur. Use these options with caution. It should be preferred to use well prepared templates to avoid unexpected results.
-
event.$name.tolerances.maxImproperChannels
¶ Type: int
Sets the maximum number of improper channels tolerated by ccloc. Use -1 to tolerate any number of improper channels. Default is
0
.
-
event.$name.tolerances.maxImproperStations
¶ Type: int
Sets the maximum number of improper stations tolerated by ccloc. Use -1 to tolerate any number of improper stations. Default is
0
.
-
event.$name.tolerances.minProperChannels
¶ Type: int
Sets the minimum required number of properly configured channels. Default is
0
.
-
event.$name.tolerances.minProperStations
¶ Type: int
Sets the minimum required number of properly configured stations. Default is
0
.
-
event.$name.tolerances.ignoreImproperEvent
¶ Type: boolean
Defines whether this event should be ignored if classified as improper. If set to ‘false’, processing will be aborted if this event is not properly configured. Default is
false
.
-
event.$name.processing.maxAllowedGap
¶ Type: double
Unit: s
Sets the maximum allowed gap between two samples. Default is
0.5
.
-
event.$name.processing.maxAllowedOverlap
¶ Type: double
Unit: s
Sets the maximum allowed overlap between two samples. Default is
0.5
.
-
event.$name.processing.filter.definition
¶ Type: string
Filter applied to the raw waveforms. Make sure to define a noise window that is large enough to avoid unwanted filter effects at the beginning of the signal.
This parameter can be overwritten in a processing profile.
-
event.$name.processing.filter.bandStop
¶ Type: boolean
Enables a bandstop filter at 50Hz and 100Hz.
This parameter can be overwritten in a processing profile. Default is
false
.
Note
event.$name.processing.envelope.* Waveform envelopes can be used as characteristic functions. Envelopes are formed from pre-processed data.
-
event.$name.processing.envelope.enable
¶ Type: boolean
Compute envelope to be used for fitting.
This parameter can be overwritten in a processing profile. Default is
true
.
-
event.$name.processing.envelope.samplingFrequency
¶ Type: int
Unit: Hz
Defines the target sampling frequency of the envelope (0 = no resampling).
This parameter can be overwritten in a processing profile.
-
event.$name.processing.envelope.hiFreq
¶ Type: double
Unit: Hz
Frequency for smoothing the envelope (0 = no smoothing). This parameter will be set to the samplingFrequency for values less than or equal to 0. See documentation section “Envelope” for details.
This parameter can be overwritten in a processing profile.
-
event.$name.processing.envelope.resampleAverage
¶ Type: boolean
Enables averaging of neighbor samples when downsampling. The width of the kernel is the ratio of SR/samplingFrequency.
This parameter can be overwritten in a processing profile. Default is
false
.
-
event.$name.processing.logarithm.enable
¶ Type: boolean
Use the logarithm of the characteristic function (either waveforms or envelope).
This parameter can be overwritten in a processing profile. Default is
false
.
Note
event.$name.detector.* Parameters defining the detection thresholds. ** These parameters overwrite the corresponding entries of the global configuration. The general settings are used for parameters that are not explicitly defined here.
-
event.$name.detector.channelThreshold
¶ Type: double
Minimum channel fit to be reached for declaring a match on the channel. Formed by cross-correlating with the template waveforms. Default is
0.70
.
-
event.$name.detector.threshold
¶ Type: double
Minimum overall (mean) fit of all matched channels. Formed from all channel fits. Needs to be reached to declare a new origin. Default is
0.75
.
-
event.$name.detector.minimumChannelRatio
¶ Type: double
Minimum ratio of the number of all matched channels vs. the number of all proper channels in the event. Needs to be reached to declare a new origin. Default is
0.60
.
-
event.$name.detector.minimumStationRatio
¶ Type: double
Minimum ratio of the number of all matched stations vs. the number of proper stations in the event. A station is matched if it has at least one matched channel. Needs to be reached to declare a new origin. Default is
0.60
.
-
event.$name.detector.minimumProcessingWindow
¶ Type: double
Unit: s
Sets the minimum processing time window length in seconds to minimize processing steps on each record arrival. 0 processes the data as fast as possible. Default is
0
.
-
event.$name.repicking.enableAIC
¶ Type: boolean
Run AIC to refine P and S picks found from template matching. The AIC parameters can be configured via the ccloc station bindings. A processing profile is required to change the default filter settings. Default is
true
.
Note
profile.* Defines processing profiles. If a processing profile is defined it can be referred to in the event configuration. The profile parameters overwrite parameters in the event definition. ** Note: Processing profiles are deprecated. Please configure per channel properties via the ccloc bindings.
Note
profile.$name.*
Defines a profile. Filter options can be overwritten
on a per stream basis, otherwise the global values are used.
$name is a placeholder for the name to be used and needs to be added to profiles
to become active.
profiles = a,b
profile.a.value1 = ...
profile.b.value1 = ...
# c is not active because it has not been added
# to the list of profiles
profile.c.value1 = ...
-
profile.$name.streams
¶ Type: list:string
Defines a list of stream patterns for which filter values shall be overwritten.
-
profile.$name.filter.definition
¶ Type: string
Specifies a filter definition.
-
profile.$name.filter.bandStop
¶ Type: boolean
Enables a bandstop filter at 50Hz and 100Hz. Default is
false
.
Bindings¶
Configuration¶
-
detecEnable
¶ Type: boolean
Enable data processing. If disabled the station is not considered. Default is
true
.
-
use3C
¶ Type: boolean
Use all three components for processing. If disabled ccloc uses only the channel on which the pick in the template event was made. Default is
true
.
-
profiles
¶ Type: list:string
Add one or more processing profiles defined in the profiles section below. It can be a single name or a list of profile names. Profiles must be defined here for further use.
Example: profile1,profile2
Note
profile.* Definition of processing profiles. The profile parameters overwrite parameters with the same name from the event definition in the module configuration. ** A profile definition is required to set custom AIC filter settings.
Note
profile.$name.*
Definition of the named profile. Parameters can be overwritten on a per
stream basis, otherwise the global values are used. Add profile
name to the list of profiles for using it.
$name is a placeholder for the name to be used and needs to be added to profiles
to become active.
profiles = a,b
profile.a.value1 = ...
profile.b.value1 = ...
# c is not active because it has not been added
# to the list of profiles
profile.c.value1 = ...
-
profile.$name.events
¶ Type: list:string
Defines a list of events for which parameter values shall be overwritten. Wildcards can be used to declare multiple events per list entry. By default, all defined events will be used. Default is
*
.
-
profile.$name.streams
¶ Type: list:string
Defines a list of streams for which parameter values shall be overwritten. Wildcards can be used to declare multiple streams per list entry. By default, all available streams will be used. Default is
*
.
-
profile.$name.detecEnable
¶ Type: boolean
Enable data processing. If disabled the selected streams are not considered. Default is
true
.
-
profile.$name.noiseBegin
¶ Type: double
Unit: s
Defines the begin of the noise window if envelope is enabled. The mean is computed from the noise window and removed from the whole envelope. This value is relative to the first P arrival. If not given then noiseBegin is set to signalBegin. The minimum mean of both defined noise windows is used finally.
-
profile.$name.noiseEnd
¶ Type: double
Unit: s
Defines the end of the noise window if envelope is enabled. The mean is computed from the noise window and removed from the whole envelope. This value is relative to the first P arrival. If not given then noiseEnd is set to signalBegin + 1. The minimum mean of both defined noise windows is used finally.
-
profile.$name.noise2Begin
¶ Type: double
Unit: s
Defines the begin of the second noise window if envelope is enabled. This value is relative to the first P arrival. If not given then noise2Begin is set to signalBegin. The minimum mean of both defined noise windows is used finally. This parameter is optional and set to noiseBegin if not given.
Please note: In most cases it is not necessary to set this parameter.
-
profile.$name.noise2End
¶ Type: double
Unit: s
Defines the end of the second noise window if envelope is enabled. This value is relative to the first P arrival. If not given then noiseEnd is set to signalBegin + 1. The minimum mean of both defined noise windows is used finally. This parameter is optional and set to noiseEnd if not given.
Please note: In most cases it is not necessary to set this parameter.
-
profile.$name.signalBegin
¶ Type: double
Unit: s
Defines the begin of the signal window used for cross-correlation. Relative to the first P arrival. Mandatory if not specified in the module configuration.
-
profile.$name.signalEnd
¶ Type: double
Unit: s
Defines the end of the signal window used for cross-correlation. Relative to the first S arrival. Mandatory if not specified in the module configuration.
Note
profile.$name.processing.* Data processing before matching. These parameters overwrite the corresponding entries of the module configuration. If a parameter is not defined it will be used from the module configuration.
Note
profile.$name.processing.filter.* Data filtering. If envelope calculation is disabled, the filtering can be used to create any characteristic function for data matching.
-
profile.$name.processing.filter.definition
¶ Type: string
Filter applied to the raw waveforms. The deprecated parameters order, loFreq and hiFreq of this group are ignored if a value is set.
-
profile.$name.processing.filter.bandStop
¶ Type: boolean
Enables a bandstop filter at 50Hz and 100Hz. Default is
false
.
Note
profile.$name.processing.envelope.* Waveform envelopes can be used as characteristic functions. Envelopes are formed from pre-processed data.
-
profile.$name.processing.envelope.enable
¶ Type: boolean
Compute envelope to be used for fitting. Default is
true
.
-
profile.$name.processing.envelope.samplingFrequency
¶ Type: int
Unit: Hz
Defines the target sampling frequency of the envelope (0 = no resampling). Default is
20
.
-
profile.$name.processing.envelope.hiFreq
¶ Type: double
Unit: Hz
Frequency for smoothing the envelope (0 = no smoothing). This parameter will be set to the samplingFrequency for values less than or equal to 0. See documentation section “Envelope” for details. Default is
20
.
-
profile.$name.processing.envelope.resampleAverage
¶ Type: boolean
Enables averaging of neighbor samples when downsampling. The width of the kernel is the ratio of SR/samplingFrequency. Default is
false
.
-
profile.$name.processing.logarithm.enable
¶ Type: boolean
Use the logarithm of the characteristic function (either waveforms or envelope). Default is
false
.
Note
profile.$name.ppicker.* Parameters controlling the refinement of P-type phase picks using the AIC methods. P-type phase picks include any phase arriving at the station as a P phase, e.g. P, pP, Pn, PKP, etc. The AIC is applied to the component on which the P pick of the event was made.
-
profile.$name.ppicker.procMargin
¶ Type: double
Unit: s
Begin of processing time window relative to the TP pick. As filtering may result in artefacts, the processing window should start before the AIC window allowing all artefacts to be diminished. Default is
-3
.
-
profile.$name.ppicker.signalBegin
¶ Type: double
Unit: s
Begin of AIC time window relative to the TP pick. Default is
-1
.
-
profile.$name.ppicker.signalEnd
¶ Type: double
Unit: s
End of AIC time window relative to the TP pick. Default is
1
.
-
profile.$name.ppicker.filter
¶ Type: string
Filter applied to the data before AIC analysis. Filtering starts at procMargin.
This parameter also accepts a list of filters separated by semicolon. In this case multiple AIC runs will be performed and the result with the highest SNR value will be used further. Default is
RMHP(2)>>ITAPER(1)>>BW(3,2,20)
.
-
profile.$name.ppicker.minSNR
¶ Type: double
Minimum SNR which must be reached at the detection time of the AIC. Otherwise no pick is created. Default is
3
.
Note
profile.$name.spicker.* Parameters controlling the refinement of S-type phase picks using the AIC methods. S-type phase picks include any phase arriving at the station as an S phase, e.g. S, sS, Sn, PKS, etc. The AIC is applied on the L2 norm of the horizontal components or on the vertical component of the if the S pick was made on the vertical component.
-
profile.$name.spicker.procMargin
¶ Type: double
Unit: s
Begin of processing time window relative to the TS pick. As filtering may result in artefacts, the processing window should start before the AIC window allowing all artefacts to be diminished. Default is
-3
.
-
profile.$name.spicker.signalBegin
¶ Type: double
Unit: s
Begin of AIC time window relative to the TS pick. Default is
-1
.
-
profile.$name.spicker.signalEnd
¶ Type: double
Unit: s
End of AIC time window relative to the TS pick. Default is
1
.
-
profile.$name.spicker.filter
¶ Type: string
Filter applied to the raw data before forming the L2 norm of the horizontal seismograms. This filter is recommended to account for DC offset of individual components. Filtering starts at procMargin.
This parameter also accepts a list of filters separated by semicolon. In this case multiple AIC runs will be performed and the result with the highest SNR value will be used further.
Please note that the number of filters must either be one or match the number of filters defined in parameter detecFilter. Default is
RMHP(2)>>ITAPER(1)>>BW(3,2,10)
.
-
profile.$name.spicker.detecFilter
¶ Type: string
Filter applied to the L2 trace of the data before AIC analysis. Filtering starts at procMargin. Leave this parameter empty to apply no further filtering. This is often the case.
This parameter also accepts a list of filters separated by semicolon. In this case multiple AIC runs will be performed and the result with the highest SNR value will be used further.
Please note that the number of filters must either be one or match the number of filters defined in parameter filter.
-
profile.$name.spicker.minSNR
¶ Type: double
Minimum SNR which must be reached at the detection time of the AIC. Otherwise no pick is created. Default is
5
.
Command-line¶
Generic¶
-
-h
,
--help
¶
show help message.
-
-V
,
--version
¶
show version information
-
--config-file
arg
¶ Use alternative configuration file. When this option is used the loading of all stages is disabled. Only the given configuration file is parsed and used. To use another name for the configuration create a symbolic link of the application or copy it, eg scautopick -> scautopick2.
-
--plugins
arg
¶ Load given plugins.
-
-D
,
--daemon
¶
Run as daemon. This means the application will fork itself and doesn’t need to be started with &.
-
--auto-shutdown
arg
¶ Enable/disable self-shutdown because a master module shutdown. This only works when messaging is enabled and the master module sends a shutdown message (enabled with –start-stop-msg for the master module).
-
--shutdown-master-module
arg
¶ Sets the name of the master-module used for auto-shutdown. This is the application name of the module actually started. If symlinks are used then it is the name of the symlinked application.
-
--shutdown-master-username
arg
¶ Sets the name of the master-username of the messaging used for auto-shutdown. If “shutdown-master-module” is given as well this parameter is ignored.
Verbosity¶
-
--verbosity
arg
¶ Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info, 4:debug
-
-v
,
--v
¶
Increase verbosity level (may be repeated, eg. -vv)
-
-q
,
--quiet
¶
Quiet mode: no logging output
-
--component
arg
¶ Limits the logging to a certain component. This option can be given more than once.
-
-s
,
--syslog
¶
Use syslog logging back end. The output usually goes to /var/lib/messages.
-
-l
,
--lockfile
arg
¶ Path to lock file.
-
--console
arg
¶ Send log output to stdout.
-
--debug
¶
Debug mode: –verbosity=4 –console=1
-
--log-file
arg
¶ Use alternative log file.
Messaging¶
-
-u
,
--user
arg
¶ Overrides configuration parameter
connection.username
.
-
-H
,
--host
arg
¶ Overrides configuration parameter
connection.server
.
-
-t
,
--timeout
arg
¶ Overrides configuration parameter
connection.timeout
.
-
-g
,
--primary-group
arg
¶ Overrides configuration parameter
connection.primaryGroup
.
-
-S
,
--subscribe-group
arg
¶ A group to subscribe to. This option can be given more than once.
-
--encoding
arg
¶ Overrides configuration parameter
connection.encoding
.
-
--start-stop-msg
arg
¶ Sets sending of a start- and a stop message.
-
--test
¶
Runs the detector without sending any objects to the messaging system.
Database¶
-
--db-driver-list
¶
List all supported database drivers.
-
-d
,
--database
arg
¶ The database connection string, format: service://user:pwd@host/database. “service” is the name of the database driver which can be queried with “–db-driver-list”.
-
--config-module
arg
¶ The configmodule to use.
-
--inventory-db
arg
¶ Load the inventory from the given database or file, format: [service://]location
-
--db-disable
¶
Do not use the database at all
Records¶
-
--record-driver-list
¶
List all supported record stream drivers
-
-I
,
--record-url
arg
¶ The recordstream source URL, format: [service://]location[#type]. “service” is the name of the recordstream driver which can be queried with “–record-driver-list”. If “service” is not given “file://” is used.
-
--record-file
arg
¶ Specify a file as record source.
-
--record-type
arg
¶ Specify a type for the records being read.
Output¶
-
--ep
¶
Do not connect to messing system and print processing results in XML format to standard out.
-
--progress
¶
Print current processing time to stderr.
-
--progress-int
arg
¶ Set the time interval to print the execution progress. Units: s. Default: 3600 s.
-
--dump
¶
Write each stage to file. Requires definition of configuration parameters in section ‘output.dump’.