Files
2025/share/doc/scanloc/html/apps/scanloc.html

2803 lines
212 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>scanloc &#8212; scanloc: Phase Associator documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Glossary" href="../base/glossary.html" />
<link rel="prev" title="Introduction" href="../base/introduction.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">scanloc: Phase Associator </span>
<span class="version">2025.281#4efc2c878</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="../base/glossary.html" title="Glossary"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="../base/introduction.html" title="Introduction"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="scanloc">
<span id="id1"></span><h1>scanloc<a class="headerlink" href="#scanloc" title="Permalink to this heading"></a></h1>
<p><strong>Module for locating local earthquakes and man-made seismicity by DBSCAN
cluster search.</strong></p>
<section id="description">
<h2>Description<a class="headerlink" href="#description" title="Permalink to this heading"></a></h2>
<section id="low-threshold-monitoring">
<h3>Low-threshold monitoring<a class="headerlink" href="#low-threshold-monitoring" title="Permalink to this heading"></a></h3>
<p><em>scanloc</em> associates detected P and S phases from local and regional earthquakes
and other seismic events for locating. It determines initial hypocenter
solutions by cluster search based on DBSCAN <span id="id2">[<a class="reference internal" href="../base/references.html#id125" title="DBSCAN. Data clustering algorithm. URL: http://en.wikipedia.org/wiki/DBSCAN.">2</a>]</span>. Additional P and S phases are associated
to existing internal solutions from cluster search or solutions incoming through the messaging
system from external modules.</p>
<p>Due to the clustering and subsequent phase association scanloc facilitates low-threshold
monitoring of high- and low-rate seismicity with high accuracy.</p>
<figure class="align-center" id="id56">
<span id="fig-scolv-location-tab"></span><a class="reference internal image-reference" href="../_images/scolv-location-tab.png"><img alt="../_images/scolv-location-tab.png" src="../_images/scolv-location-tab.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 1: scolv Location tab with an automatic earthquake solution from scanloc based on
P and S phases.</span><a class="headerlink" href="#id56" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="teleseismic-events">
<h3>Teleseismic events<a class="headerlink" href="#teleseismic-events" title="Permalink to this heading"></a></h3>
<p>For teleseismic events <em>scanloc</em> can also be used to:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">Associate more picks from P and S phases</span></a> to external origins,</p></li>
<li><p>Suppress fake events due to detections from large earthquakes recorded by dense local networks at teleseismic distances.
A <a class="reference internal" href="#scanloc-zero-weight"><span class="std std-ref">dedicated section</span></a> explains the setup and the requirements.</p></li>
</ul>
</section>
<section id="travel-time-tables">
<h3>Travel-time tables<a class="headerlink" href="#travel-time-tables" title="Permalink to this heading"></a></h3>
<p>The scanloc package ships with <a class="reference internal" href="../base/locsat-tables.html#scanloc-ttt"><span class="std std-ref">densely sampled travel-time tables</span></a> for
<span id="id3"><em>LOCSAT</em> [<a class="reference internal" href="../base/references.html#id180" title="LOCSAT. SeisComP locator. URL: https://docs.gempa.de/seiscomp/current/apps/global_locsat.html.">5</a>]</span> based on the IASP91 Earth model to enhance locating local earthquakes.</p>
</section>
<section id="s-phases">
<h3>S phases<a class="headerlink" href="#s-phases" title="Permalink to this heading"></a></h3>
<p>In order to deliver high-quality picks from S phases, the <a class="reference internal" href="#scanloc"><span class="std std-ref">scanloc</span></a> package
also includes the <em>saic</em> plugin with the enhanced <a class="reference internal" href="../base/sphase-detector.html#scanloc-spicker"><span class="std std-ref">S-phase picker</span></a>.
The S-phase picker can be applied to detect S phases on the horizontal components
or on the vertical component in case of 1-component sensors. In addition the scanloc
package comes with the <a class="reference internal" href="../base/sphase-detector.html#scanloc-spick-debugger"><span class="std std-ref">graphical debugger for the S-phase picker</span></a>
provided by the <em>spickdbg</em> plugin.</p>
</section>
<section id="array-measurements">
<h3>Array measurements<a class="headerlink" href="#array-measurements" title="Permalink to this heading"></a></h3>
<p>Detections from array measurements including detection time, slowness and
back azimuth can be fully considered by <a class="reference internal" href="#scanloc-scoring"><span class="std std-ref">scoring</span></a>
depending on the applied locator.</p>
</section>
<section id="auxiliary-tools">
<h3>Auxiliary tools<a class="headerlink" href="#auxiliary-tools" title="Permalink to this heading"></a></h3>
<p>The scanloc package also ships with auxiliary Python script for
<a class="reference internal" href="#scanloc-example"><span class="std std-ref">real-time or non-real-time playbacks</span></a> or tuning. Read the
<a class="reference internal" href="../base/auxiliary.html#sec-scanloc-aux-tools"><span class="std std-ref">dedicated section</span></a> for more details.</p>
</section>
</section>
<section id="workflow">
<h2>Workflow<a class="headerlink" href="#workflow" title="Permalink to this heading"></a></h2>
<p>scanloc processes picks and origins in the following order:</p>
<ol class="arabic">
<li><p>Buffering of <a class="reference internal" href="#scanloc-buffer"><span class="std std-ref">picks and origins</span></a>,</p></li>
<li><p><a class="reference internal" href="#scanloc-clustering"><span class="std std-ref">Clustering</span></a> of P picks:</p>
<ul class="simple">
<li><p>cluster formation,</p></li>
<li><p>splitting of clusters in case of multiple P picks from the same station.</p></li>
</ul>
<p>Clustering is skipped in case of an <a class="reference internal" href="#external-origins"><span class="std std-ref">external origin</span></a>.</p>
</li>
<li><p><a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">Association</span></a> of P and S picks to clusters and external
origins.</p></li>
<li><p><a class="reference internal" href="#scanloc-locator"><span class="std std-ref">Locating origins</span></a> and formation of
<a class="reference internal" href="#scanloc-internal"><span class="std std-ref">internal events</span></a>,</p></li>
<li><p><a class="reference internal" href="#scanloc-scoring"><span class="std std-ref">Scoring of origins</span></a> and setting the preferred origin
accordingly of an internal events.</p></li>
<li><p>Evaluation and <a class="reference internal" href="#scanloc-send"><span class="std std-ref">sending</span></a> of the preferred origin of an
internal event.</p></li>
</ol>
<figure class="align-center" id="id57">
<span id="fig-scanloc-workflow"></span><a class="reference internal image-reference" href="../_images/workflow.png"><img alt="../_images/workflow.png" src="../_images/workflow.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 2: Simplified work flow of scanloc.</span><a class="headerlink" href="#id57" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<section id="pick-and-origin-buffering">
<span id="scanloc-buffer"></span><h3>Pick and origin buffering<a class="headerlink" href="#pick-and-origin-buffering" title="Permalink to this heading"></a></h3>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>scanloc processes picks with unique public IDs. However, the accuracy of
public IDs currently generated by <span id="id4"><em>scautopick</em> [<a class="reference internal" href="../base/references.html#id237" title="scautopick. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautopick.html.">15</a>]</span> is limited to
10 ms by default. In systems with very frequent picks and in
<a class="reference internal" href="#scanloc-pipeline"><span class="std std-ref">pipeline systems</span></a>
this limitation may result in clashes. Therefore, we recommend to let
scautopick use the same high-resolution public ID scheme as all
other modules by configuring the ID pattern explicitly in global module
configuration (<code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code>):</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">publicIDPattern</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">@classname@/@time/%Y%m%d%H%M%S.%f@.@id@</span>
</pre></div>
</div>
<p>A solution for scautopick will be provided with <cite>SeisComP</cite> in a future release
with version &gt; 6.7.2.</p>
</div>
<p>The entry point of <em>scanloc</em> is the addObject method which handles incoming
objects from the messaging system. By default it is subscribed to the messaging
group <strong>PICK</strong> and <strong>LOCATION</strong>. Depending on which object type (pick or origin)
is incoming different working steps are proceeded.</p>
<ul class="simple">
<li><p>In case a <strong>pick</strong> arrives, <em>scanloc</em></p>
<ol class="arabic simple">
<li><p>tests the pick:</p>
<ul>
<li><p>evaluation status: Rejected picks are ignored unless the
command-line option <a class="reference internal" href="#cmdoption-allow-rejected-picks"><code class="xref std std-option docutils literal notranslate"><span class="pre">--allow-rejected-picks</span></code></a> is given.</p></li>
<li><p>tests the author information against <a class="reference internal" href="#confval-buffer.authorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.authorWhiteList</span></code></a>.
When the parameter is configured, the pick is ignored if its authors does
not match <a class="reference internal" href="#confval-buffer.authorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.authorWhiteList</span></code></a>.</p></li>
</ul>
</li>
<li><p>adds the pick after passing the tests to the pick buffer keeping it
for the time given by
<a class="reference internal" href="#confval-buffer.pickKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.pickKeep</span></code></a> or <a class="reference internal" href="#cmdoption-pick-keep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--pick-keep</span></code></a>,</p></li>
<li><p>tries to use the pick for <a class="reference internal" href="#scanloc-clustering"><span class="std std-ref">clustering</span></a>,</p></li>
<li><p>checks if the pick can be <a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">associate to origins</span></a> in
the origin buffer exceeding a configurable <a class="reference internal" href="#confval-minScore"><code class="xref std std-confval docutils literal notranslate"><span class="pre">minScore</span></code></a>.
In case the pick can be associated, the scores for all new origins are
calculated and the origin with the highest score is selected.</p></li>
</ol>
</li>
<li><p>In case an <strong>origin</strong> arrives, <em>scanloc</em></p>
<ol class="arabic simple">
<li><p>tests the origin:</p>
<ul>
<li><p>tests the evaluation mode. Manual origins are ignored unless
<a class="reference internal" href="#confval-buffer.ignoreManualOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.ignoreManualOrigins</span></code></a> = <em>false</em>,</p></li>
<li><p>tests the author information against <a class="reference internal" href="#confval-buffer.authorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.authorWhiteList</span></code></a>
and <a class="reference internal" href="#confval-buffer.originAuthorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originAuthorWhiteList</span></code></a>. When the parameters are
configured, the origin is ignored if its authors does not match the
configured values.</p></li>
</ul>
</li>
<li><p>adds the origin after passing the tests to the origin buffer keeping it the time given by
<a class="reference internal" href="#confval-buffer.originKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originKeep</span></code></a> or <a class="reference internal" href="#cmdoption-origin-keep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--origin-keep</span></code></a> seconds,</p></li>
<li><p>tries to <a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">associate additional picks</span></a> to the origin.</p></li>
</ol>
</li>
</ul>
<p>Adjust the <code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.*</span></code> parameters according to the times these objects
are required for processing.</p>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>You may use <a class="reference internal" href="../base/auxiliary.html#sec-scanloc-playback-picks"><span class="std std-ref">playback_picks</span></a> for printing
information on picks and amplitudes contained in XML files used, e.g., for
tuning or playbacks:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>playback_picks<span class="w"> </span>--print<span class="w"> </span>picks.xml
</pre></div>
</div>
</div>
</section>
<section id="clustering">
<span id="scanloc-clustering"></span><h3>Clustering<a class="headerlink" href="#clustering" title="Permalink to this heading"></a></h3>
<p>In case the pick cannot be associated, the cluster search is started. The
cluster search is based on the algorithm <span id="id5"><em>DBSCAN</em> [<a class="reference internal" href="../base/references.html#id125" title="DBSCAN. Data clustering algorithm. URL: http://en.wikipedia.org/wiki/DBSCAN.">2</a>]</span> which
takes the required number of neighbours (<a class="reference internal" href="#confval-clusterSearch.minSize"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.minSize</span></code></a>)
and <a class="reference internal" href="#confval-clusterSearch.maxSearchDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxSearchDist</span></code></a> as configuration parameters.</p>
<p>The algorithm forms clusters of picks by searching for neighboring stations
that have picks. <a class="reference internal" href="#scanloc-internal"><span class="std std-ref">Internal origins</span></a> are formed from clusters.
The number of origins from cluster search is limited by the configuration parameter
<a class="reference internal" href="#confval-clusterSearch.maxOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxOrigins</span></code></a>.</p>
<p>The cluster search considers picks from stations by <img class="math" src="../_images/math/a0f7bb243fde3a3e3a53ae61efc07ae562a153dc.svg" alt="distance"/> with:</p>
<div class="math">
<p><img src="../_images/math/88d3937322452b1c5ebc09f4bc31275d6db09cae.svg" alt="distance \le maxSearchDist"/></p>
</div><p>where maxSearchDist is configurable by <a class="reference internal" href="#confval-clusterSearch.maxSearchDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxSearchDist</span></code></a>.
<img class="math" src="../_images/math/a0f7bb243fde3a3e3a53ae61efc07ae562a153dc.svg" alt="distance"/> is the vector sum of the time difference <img class="math" src="../_images/math/b4ed9c2e208e08edeca8b1550ec0840acd090276.svg" alt="\Delta t"/>
between the picks in units of seconds and of a potential travel time
<img class="math" src="../_images/math/fcc9d39292b3558ec56e26ed0bc3889a4d125579.svg" alt="tt"/> between the stations in units of seconds:</p>
<div class="math">
<p><img src="../_images/math/c2d20bc51c248e11f726c9cef7d2c0ef81c9ef0f.svg" alt="distance = \sqrt{\Delta t^2 + tt^2}"/></p>
</div><p>and</p>
<div class="math">
<p><img src="../_images/math/f9c4e2bfa55c8d83af847c5cd16bc1c418720d6b.svg" alt="tt = \Delta x / v"/></p>
</div><p>where <img class="math" src="../_images/math/7c3282642d867109f551c02c4946b913e5c0a430.svg" alt="\Delta x"/> is the horizontal distance between the sensor locations
of stations in units of km and <img class="math" src="../_images/math/02d98909b5d6acd6a7ff927d4d42790bdd407d58.svg" alt="v"/> is the
<a class="reference internal" href="#confval-clusterSearch.averageVelocity"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.averageVelocity</span></code></a> in units of km/s. Activate
<a class="reference internal" href="#confval-use3D"><code class="xref std std-confval docutils literal notranslate"><span class="pre">use3D</span></code></a> for considering 3D distances between sensor
locations. Therefore, <img class="math" src="../_images/math/a0f7bb243fde3a3e3a53ae61efc07ae562a153dc.svg" alt="distance"/> and
<a class="reference internal" href="#confval-clusterSearch.maxSearchDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxSearchDist</span></code></a> take units of seconds.</p>
<p>As the cluster search is done over time and location, the additional configurable
velocity parameter, <a class="reference internal" href="#confval-clusterSearch.averageVelocity"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.averageVelocity</span></code></a>, is required to transform
the input parameters of the cluster search in the same dimension (time).
The velocity is a weighting factor between inter-station distances and
travel-time differences. A starting value should represent the average apparent
horizontal or the total medium P-wave velocity of the crust.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>When the number of buffered cluster origins reaches <a class="reference internal" href="#confval-clusterSearch.maxOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxOrigins</span></code></a>,
no more new origins can be formed and warnings are issued. Adjust accordingly:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#confval-buffer.originKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originKeep</span></code></a>,</p></li>
<li><p><a class="reference internal" href="#confval-buffer.pickKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.pickKeep</span></code></a>,</p></li>
<li><p><a class="reference internal" href="#confval-clusterSearch.maxOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxOrigins</span></code></a>.</p></li>
</ul>
</div>
<section id="limiting-in-time">
<span id="sec-scanloc-cluster-time"></span><h4>Limiting in time<a class="headerlink" href="#limiting-in-time" title="Permalink to this heading"></a></h4>
<p>In real time picks are received in the order of their creation times. They are
considered for clustering if their pick times are within a time window
before the <strong>cluster reference time</strong>. The time window is defined by
<a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> but the <strong>cluster reference time</strong> is defined
either by the</p>
<ul class="simple">
<li><p>Pick time of the latest pick of the received picks when
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = LastPick (default),</p></li>
<li><p>Pick time of the latest received pick which defines are group of <em>N</em>
picks within <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> when
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MaxPickDelay. Here, <em>N</em> is the
maximum of <a class="reference internal" href="#confval-clusterSearch.minSize"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.minSize</span></code></a>
and <a class="reference internal" href="#confval-association.minPhase"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.minPhase</span></code></a>. <strong>This mode is relevant if only very few
stations with significantly different data delay provide the picks.</strong>
Otherwise picks may not be available for clustering at the same time
preventing to form clusters and new origins.</p></li>
</ul>
<p>Thus, when setting <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MaxPickDelay
re-setting the cluster reference time is delayed depending on the amount and
density of incoming picks. With this option picks which have a larger delay can
be considered. Such delays occur, e.g., due to larger data delays or larger
record lengths.</p>
<div class="math">
<p><img src="../_images/math/97e3b6969ef8fad3f176377107b51a556602002a.svg" alt="pick delay = creationTime - pickTime"/></p>
</div><p>where</p>
<ul class="simple">
<li><p><img class="math" src="../_images/math/e77d42ccf592a5fa184b785dd7527f144b4a7176.svg" alt="pick.creationTime"/>:time at which the pick was made,</p></li>
<li><p><img class="math" src="../_images/math/fbbbd8002afdc67319658bde3d2b163aeba8285c.svg" alt="pickTime"/>: actual time of the phase arrival.</p></li>
</ul>
<p>Picks available within a trapezoid-like time window are considered for
clustering.
For a pick with zero delay, the cluster reference time is initially set and picks
within the <strong>blue trapezoid</strong> (figure below) are considered.
Normally, picks have some delay which delays defining the trapezoid. This makes accessible
other picks available with some delay, too, allowing these picks to be considered
(<strong>green trapezoid</strong>). Subsequently, the trapezoid is extended until the
cluster reference time is updated.
This may be the next pick with a larger pick time
(<strong>olive trapezoid</strong>, <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = LastPick) or
the time of the pick which is preceded by at least <a class="reference internal" href="#confval-clusterSearch.minSize"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.minSize</span></code></a>
picks within <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> (<strong>yellow trapezoid</strong>,
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MinPickDelay).
Thus, picks which have a long delay do not fall within the relevant trapezoid and
cannot be considered for clustering as they are not available at the time of clustering.</p>
<p>The trapezoid is set with respect to the cluster reference time, CRT1 in the figure below,
considering the delay of the defining pick and the time until the next relevant
pick which updates the reference time (CRT2):</p>
<ul class="simple">
<li><p>CRT2 with <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = LastPick or</p></li>
<li><p>Deleyed CRT2 since <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MaxPickDelay.</p></li>
</ul>
<p>The longer the time until the update, the
more picks with larger delays can be considered for clustering, e.g., the delayed
clustered pick in the figure below.</p>
<figure class="align-center" id="id58">
<a class="reference internal image-reference" href="../_images/cluster-reference.png"><img alt="../_images/cluster-reference.png" src="../_images/cluster-reference.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 3: Schematic view of pick time vs. pick delay time of picks for clustering.
The cluster reference time determines the trapezoid within which picks can be
considered for clustering.
Here, the delayed clustered pick only becomes part of the cluster with
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MaxPickDelay.</span><a class="headerlink" href="#id58" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-center" id="id59">
<a class="reference internal image-reference" href="../_images/picks_clustering-maxPickDelay10.png"><img alt="../_images/picks_clustering-maxPickDelay10.png" src="../_images/picks_clustering-maxPickDelay10.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 4: clusterSearch.maxPickDelay = 10 s.</span><a class="headerlink" href="#id59" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-center" id="id60">
<a class="reference internal image-reference" href="../_images/picks_clustering-maxPickDelay20.png"><img alt="../_images/picks_clustering-maxPickDelay20.png" src="../_images/picks_clustering-maxPickDelay20.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 5: clusterSearch.maxPickDelay = 20 s.
Real-life examples of picks considered for clustering with different values
for <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> and
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = MaxPickDelay. P picks with
green symbols are considered for clustering, picks with red symbols are not.
Clearly, the larger <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> the more picks are
available for clustering but the more clusters from unrelated picks (false
clusters) may be created.</span><a class="headerlink" href="#id60" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul class="simple">
<li><p>For small and similar delays of all P picks, <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>
can be directly read from travel-time curves. A small margin should be added
account for differences in delay.</p></li>
<li><p>In XML playbacks, the creation times may not be representative of
real-time conditions. Therefore, pick times may be used for the timing instead
of creation times. Read the section <a class="reference internal" href="#scanloc-example"><span class="std std-ref">Real-Time Applications</span></a> for more details
and the consequences.</p></li>
</ul>
</div>
<p>If picks arrive with a larger delay than others, there is a risk that they cannot
be considered anymore for the cluster. When only few picks are available the events
may then be missed. To overcome the issue, you may increase <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>
or set the parameter <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = “MaxPickDelay”.
While increasing <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a> may slow down the clustering
and increase the risk to cluster unrelated picks,
<a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = “MaxPickDelay” will only increase the
cluster reference time if at least <a class="reference internal" href="#confval-clusterSearch.minSize"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.minSize</span></code></a> P picks are
available in the considered time window. Run <strong class="program">scanloc</strong> on the command line
with the <a class="reference internal" href="#cmdoption-cluster-search-log-file"><code class="xref std std-option docutils literal notranslate"><span class="pre">--cluster-search-log-file</span></code></a> to learn about cluster reference
times and the considered picks. A suggestion for <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>
is provided in the summary section at the end of the resulting output. For more
options read the section <a class="reference internal" href="#sec-scanloc-tuning"><span class="std std-ref">Tuning and optimization</span></a>.</p>
<p>Within one cluster, the difference in the pick times between the
cluster reference time and any other pick must thus not exceed <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>.
Otherwise the pick is rejected from clustering. The parameter <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>
has a big impact on the performance of the cluster search. Choosing the parameter
as small as possible will speed up scanloc and will reduce the complexity of the
cluster search.</p>
<p>The DBSCAN algorithm can deliver multiple pick clusters. The cluster search can
be disabled using <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># Maximum allowed difference between P pick and cluster reference time(latest pick time).</span>
<span class="c1"># The cluster search ignores all picks which exceed the value. Using &quot;-1&quot; enables all picks</span>
<span class="c1"># regardless of the delay. Unit: seconds.</span>
<span class="na">clusterSearch.maxPickDelay</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">0</span>
</pre></div>
</div>
<p>Then, only <a class="reference internal" href="#external-origins"><span class="std std-ref">external origin</span></a> can be considered for
<a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">phase association</span></a>.</p>
<p>In combination with <a class="reference internal" href="#confval-buffer.futureTimeDelta"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.futureTimeDelta</span></code></a> or
<a class="reference internal" href="#cmdoption-future-time-delta"><code class="xref std std-option docutils literal notranslate"><span class="pre">--future-time-delta</span></code></a>
applying <a class="reference internal" href="#confval-clusterSearch.referenceTimeMode"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.referenceTimeMode</span></code></a> = “MaxPickDelay” may make
updating the cluster reference time more robust to singular data timing issues.
However, the timing issue of the waveforms and the pick times remain and may
impact the clustering itself. Therefore, <a class="reference internal" href="#confval-buffer.futureTimeDelta"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.futureTimeDelta</span></code></a>
should only be configured with positive values only in extraordinary
circumstances.</p>
</section>
<section id="limiting-in-space">
<h4>Limiting in space<a class="headerlink" href="#limiting-in-space" title="Permalink to this heading"></a></h4>
<p>The cluster search can be constraint to stations within a region given by the
coordinate of a central point and the radius around that point. The region constraint
is configured through <a class="reference internal" href="#confval-clusterSearch.regionFilter"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.regionFilter</span></code></a>. Applying this parameter
will disregard picks from stations outside the region for cluster search increasing
the speed and the complexity. Nevertheless, the excluded picks are available for
<a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">phase association</span></a>.</p>
<p>For running the cluster search in several regions in parallel, different instances
of scanloc taking picks from the same of different pickers can be created and started.</p>
</section>
<section id="cluster-splitting">
<h4>Cluster splitting<a class="headerlink" href="#cluster-splitting" title="Permalink to this heading"></a></h4>
<p>Originally, clusters may contain multiple phase picks from the same sensor but
only one pick per sensor shall be accepted. Therefore, the clusters with picks
from the same sensor are split into separate clusters with only one pick per
sensor.</p>
<p>Typcially, the sensors are discriminated by their sensor location codes, LOC, as
defined in the SEED manual <span id="id6">[<a class="reference internal" href="../base/references.html#id287" title="SEED Reference Manual. USGS, 2012. URL: http://www.fdsn.org/pdf/SEEDManual_V2.4.pdf.">29</a>]</span> using the NET.STA.LOC.CHA stream
representation. Since some stations provide data for different sensors on the
same sensor location code but with different channel codes (e.g. seismic and
infrasound sensors), the channel code, CHA, may be a better discrimination
measure for sensor identity. On the other hand, picks made on different sensor
location of the same station could be attributed to the same site, e.g., in
regional or telseismic monitoring. Then, the station code, STA, would be
preferred for discrimination. The parameter
<code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.streamCheckLevel</span></code> allows defining the stream level on
which to check sensor identity.</p>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>In order to consider picks from equal sensor location codes but with
different channel IDs, configure scanloc with</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">clusterSearch.streamCheckLevel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">cha</span>
</pre></div>
</div>
</div>
<p>All new clusters are considered new origins. By activating
<a class="reference internal" href="#confval-clusterSearch.checkOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.checkOrigins</span></code></a>, all new clusters are checked again.
Clusters not meeting the configured cluster criteria are removed from the buffer.
The check imposes an additional overhead on the cluster search but it typically
lowers the chance for fake solutions and it also lowers the load on the
<a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">phase association</span></a> and scanloc in general.</p>
</section>
<section id="tuning-and-optimization">
<span id="sec-scanloc-tuning"></span><h4>Tuning and optimization<a class="headerlink" href="#tuning-and-optimization" title="Permalink to this heading"></a></h4>
<p>Use the option <a class="reference internal" href="#cmdoption-cluster-search-log-file"><code class="xref std std-option docutils literal notranslate"><span class="pre">--cluster-search-log-file</span></code></a> to store detailed information
on the clustering process in a file, e.g., <em>cluster.log</em>. The given values can be
used to optimize the cluster search parameters.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scanloc<span class="w"> </span>--ep<span class="w"> </span>picks.xml<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--cluster-search-log-file<span class="w"> </span>cluster.log<span class="w"> </span>&gt;<span class="w"> </span>origins.xml
</pre></div>
</div>
<p>For optimizing the configuration of the parameter <a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>
use the default value first:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>clusterSearch.maxPickDelay<span class="w"> </span><span class="o">=</span><span class="w"> </span>-1
</pre></div>
</div>
<p>The given output file contains the clusters with the pick details. After each
cluster the maximum time interval between the first and the last pick in the
cluster is provided. A summary at the end of the file shows the largest value, e.g.:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>+<span class="w"> </span>cluster<span class="w"> </span>source:<span class="w"> </span>-69.6279,<span class="w"> </span>-21.4715,<span class="w"> </span><span class="m">1231891115</span>.191
<span class="w"> </span>+<span class="w"> </span>pick<span class="w"> </span>ID:<span class="w"> </span>*20090113.235827.36-AIC-CX.PB01..HHZ<span class="w"> </span>X:<span class="w"> </span>-69.4874<span class="w"> </span>Y:<span class="w"> </span>-21.0432<span class="w"> </span>time:<span class="w"> </span><span class="m">1231891107</span>.368<span class="w"> </span>distance:<span class="w"> </span><span class="m">14</span>.715<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>pick<span class="w"> </span>ID:<span class="w"> </span><span class="m">20090113</span>.235832.91-AIC-CX.PB02..HHZ<span class="w"> </span>X:<span class="w"> </span>-69.8960<span class="w"> </span>Y:<span class="w"> </span>-21.3197<span class="w"> </span>time:<span class="w"> </span><span class="m">1231891112</span>.918<span class="w"> </span>distance:<span class="w"> </span><span class="m">8</span>.443<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>pick<span class="w"> </span>ID:<span class="w"> </span><span class="m">20090113</span>.235839.53-AIC-CX.PB07..HHZ<span class="w"> </span>X:<span class="w"> </span>-69.8862<span class="w"> </span>Y:<span class="w"> </span>-21.7267<span class="w"> </span>time:<span class="w"> </span><span class="m">1231891119</span>.538<span class="w"> </span>distance:<span class="w"> </span><span class="m">10</span>.677<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>pick<span class="w"> </span>ID:<span class="w"> </span><span class="m">20090113</span>.235840.94-AIC-CX.PB09..HHZ<span class="w"> </span>X:<span class="w"> </span>-69.2419<span class="w"> </span>Y:<span class="w"> </span>-21.7964<span class="w"> </span>time:<span class="w"> </span><span class="m">1231891120</span>.940<span class="w"> </span>distance:<span class="w"> </span><span class="m">14</span>.645<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span><span class="m">1</span><span class="w"> </span>split<span class="w"> </span>cluster
<span class="w"> </span>+<span class="w"> </span>cluster
<span class="w"> </span>+<span class="w"> </span><span class="m">20090113</span>.235827.36-AIC-CX.PB01..HHZ
<span class="w"> </span>+<span class="w"> </span><span class="m">20090113</span>.235832.91-AIC-CX.PB02..HHZ
<span class="w"> </span>+<span class="w"> </span><span class="m">20090113</span>.235839.53-AIC-CX.PB07..HHZ
<span class="w"> </span>+<span class="w"> </span><span class="m">20090113</span>.235840.94-AIC-CX.PB09..HHZ
<span class="w"> </span>+<span class="w"> </span>maximum<span class="w"> </span>pick<span class="w"> </span><span class="nb">time</span><span class="w"> </span>interval<span class="w"> </span><span class="k">for</span><span class="w"> </span>this<span class="w"> </span>cluster:<span class="w"> </span><span class="m">13</span>.572<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>minimum<span class="w"> </span>maxPickDelay<span class="w"> </span>required<span class="w"> </span><span class="k">for</span><span class="w"> </span>this<span class="w"> </span>cluster:<span class="w"> </span><span class="m">13</span>.572<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>end
<span class="w"> </span>+<span class="w"> </span>end
<span class="w"> </span>+<span class="w"> </span>end
<span class="w"> </span>+<span class="w"> </span>end
<span class="w"> </span>+<span class="w"> </span>summary:
<span class="w"> </span>+<span class="w"> </span>maximum<span class="w"> </span>experienced<span class="w"> </span>cluster<span class="w"> </span><span class="nb">time</span><span class="w"> </span>interval:<span class="w"> </span><span class="m">40</span>.840<span class="w"> </span>s
<span class="w"> </span>+<span class="w"> </span>minimum<span class="w"> </span>value<span class="w"> </span>of<span class="w"> </span>clusterSearch.maxPickDelay<span class="w"> </span><span class="k">for</span><span class="w"> </span>all<span class="w"> </span>clusters:<span class="w"> </span><span class="m">13</span>.572<span class="w"> </span>s
</pre></div>
</div>
<p>The summary value can be used as a lower proxy to set
<a class="reference internal" href="#confval-clusterSearch.maxPickDelay"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxPickDelay</span></code></a>.</p>
</section>
<section id="locating">
<h4>Locating<a class="headerlink" href="#locating" title="Permalink to this heading"></a></h4>
<p>Clusters are located by the configured <a class="reference internal" href="#scanloc-locator"><span class="std std-ref">locator</span></a>. If the
location fails, the origin is ignored unless <a class="reference internal" href="#confval-clusterSearch.preliminary"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.preliminary</span></code></a>
is active. Then, preliminary values are chosen:</p>
<ul class="simple">
<li><p>Origin location is the center of the detecting stations,</p></li>
<li><p>Origin time is the time of the first phase pick,</p></li>
<li><p>Status is set to <cite>preliminary</cite>.</p></li>
</ul>
<p>The status will be unset if more phases can be associated and the new origin can
be located.</p>
</section>
</section>
<section id="phase-association">
<span id="scanloc-assoc"></span><h3>Phase Association<a class="headerlink" href="#phase-association" title="Permalink to this heading"></a></h3>
<p>When a cluster of P picks meeting <a class="reference internal" href="#confval-association.minPhase"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.minPhase</span></code></a> is found
or an <a class="reference internal" href="#external-origins"><span class="std std-ref">external origin</span></a> arrives, <strong class="program">scanloc</strong> tries
to associates additional P- and S-type phase picks which are
<a class="reference internal" href="#scanloc-buffer"><span class="std std-ref">buffered</span></a> and which meet the association criteria:</p>
<ul>
<li><p><strong>P-type picks:</strong></p>
<ul>
<li><p>the epicentral distance does not exceed <a class="reference internal" href="#confval-association.maxDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxDist</span></code></a>,</p></li>
<li><p>no other P pick from the same channel exists in the origin,</p></li>
<li><p>the pick time, <img class="math" src="../_images/math/f7d483a2293790337ad1ba440b6430f82ad420d6.svg" alt="t_p"/>, of the new pick is close to the arrival time
predicted by the travel-time interface, <img class="math" src="../_images/math/4fc2c4c7cae95ce65eae392f5d7932405938edd1.svg" alt="t_p^{pred}"/>, considering
<a class="reference internal" href="#confval-association.maxPResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxPResidual</span></code></a>:</p>
<div class="math">
<p><img src="../_images/math/925b380f38919c14db5def742bd8516a293c1646.svg" alt="t_p^{pred} - association.maxPResidual \le t_p \le t_p^{pred} + association.maxPResidual"/></p>
</div></li>
</ul>
</li>
<li><p><strong>S-type picks:</strong></p>
<ul>
<li><p>the epicentral distance does not exceed <a class="reference internal" href="#confval-association.maxDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxDist</span></code></a>,</p></li>
<li><p>the evaluation mode of the pick is manual <strong>or</strong> the pick references a P
pick which has been already associated. The reference to a P pick is given
as a comment of the S pick. Example:</p>
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;pick&gt;</span>
<span class="w"> </span>...
<span class="w"> </span><span class="nt">&lt;comment&gt;</span>
<span class="w"> </span><span class="nt">&lt;text&gt;</span>Pick/20230726100411.964268.1316601<span class="nt">&lt;/text&gt;</span>
<span class="w"> </span><span class="nt">&lt;id&gt;</span>RefPickID<span class="nt">&lt;/id&gt;</span>
<span class="w"> </span><span class="nt">&lt;/comment&gt;</span>
<span class="nt">&lt;/pick&gt;</span>
</pre></div>
</div>
<p>The reference check serves as a quality control feature. I can be dropped by
<a class="reference internal" href="#cmdoption-drop-reference-check"><code class="xref std std-option docutils literal notranslate"><span class="pre">--drop-reference-check</span></code></a> and
<a class="reference internal" href="#confval-association.dropReferenceCheck"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.dropReferenceCheck</span></code></a>.</p>
</li>
<li><p>the pick time, <img class="math" src="../_images/math/e0d5eedab4c227de4dcfb98e2481ed57e4867a29.svg" alt="t_s"/>, of the new pick is close to the arrival time
predicted by the travel-time interface, <img class="math" src="../_images/math/c3b5c4d26770a35d61147bdb6bd1980bc95188b1.svg" alt="t_s^{pred}"/>, considering
<a class="reference internal" href="#confval-association.maxSResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxSResidual</span></code></a>:</p>
<div class="math">
<p><img src="../_images/math/d7ed5376adec55ef1970e54a7d1fd3db3e998cef.svg" alt="t_s^{pred} - association.maxSResidual \le t_s \le t_s^{pred} + association.maxSResidual"/></p>
</div></li>
</ul>
</li>
</ul>
<p>The new set of picks are used for <a class="reference internal" href="#scanloc-locator"><span class="std std-ref">relocating</span></a>.</p>
<p>In case the buffered pick is a P pick the algorithm
directly attempts to associate the pick solely based on the residual. It tries
to relocate
the solution after each successful association. P picks with travel-time
residuals larger than <a class="reference internal" href="#confval-association.maxResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxResidual</span></code></a> are rejected.
After the P-picks are associated and relocated, <em>scanloc</em> tries to associate the
S picks. This association is not based
on the residual but on the P pick referenced by the S pick. The S pick is
only associated in case the reference P pick is already associated to the
origin. Also after each S pick a relocation is done. In case the relocation
fails or the event residual is larger than <a class="reference internal" href="#confval-maxRMS"><code class="xref std std-confval docutils literal notranslate"><span class="pre">maxRMS</span></code></a>,
the S pick is associated with a weight of 0. The score of the resulting
origin is compared with scores of origins belonging to the same event. In case
the score is higher than the rest of the origins, the origin is
<a class="reference internal" href="#scanloc-send"><span class="std std-ref">sent out</span></a>.</p>
<p>In addition to origins from the cluster search, <em>scanloc</em> can also treat external
origins that are created by other associators, e.g., <span id="id7"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span>.
In case an such origin is received <em>scanloc</em> tries to associate all picks in the
buffer to the origin. The association and the following processes are the same as
described above. See figure <a class="reference internal" href="#fig-scanloc-workflow"><span class="std std-ref">Simplified work flow of scanloc.</span></a> for an overview.</p>
<p>The maximum epicentral distance up to which picks are considered is configured
by <a class="reference internal" href="#confval-association.maxDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxDist</span></code></a>. However, this parameter can be overruled per
network and station by providing a station table in a file given by
<a class="reference internal" href="#confval-association.stationConfig"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.stationConfig</span></code></a>. As in <span id="id8"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span> each line of the
table consists of the network code, the station code, a switch and the maximum
epicentral distance in degrees. Wildcards can be used for the network and the
station code. The switch causes the associator to consider (=1) or to ignore
(=0) a network or a station.
The last occurrence of an item in a table overrules previous ones, e.g.</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">*</span><span class="w"> </span><span class="s">* 1 180</span>
<span class="na">GR</span><span class="w"> </span><span class="s">* 1 60</span>
<span class="na">GR</span><span class="w"> </span><span class="s">GRA1 1 20</span>
<span class="na">Z3</span><span class="w"> </span><span class="s">* 0 180</span>
</pre></div>
</div>
<p>For associating the picks, travel times from look-up tables are used. The
<a class="reference internal" href="#confval-association.tableType"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.tableType</span></code></a> and the <a class="reference internal" href="#confval-association.table"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.table</span></code></a> can be
configured to provide specific tables which may be more appropriate for specific
regions. Currently, only a limited number of travel-time table types
(<a class="reference internal" href="#confval-association.tableType"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.tableType</span></code></a>) are supported. scanloc provides
<a class="reference internal" href="../base/locsat-tables.html#scanloc-ttt"><span class="std std-ref">densely-sampled travel-time tables</span></a> for LOCSAT.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 13.0%" />
<col style="width: 87.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>types supported by association.tableType</p></th>
<th class="head"><p>location of tables for association.table</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>homogeneous</p></td>
<td><p>model is defined by <code class="xref std std-confval docutils literal notranslate"><span class="pre">ttt.homogeneous.$name.*</span></code> in global module configuration</p></td>
</tr>
<tr class="row-odd"><td><p>libtau</p></td>
<td><p>&#64;DATADIR&#64;/ttt</p></td>
</tr>
<tr class="row-even"><td><p>LOCSAT</p></td>
<td><p>&#64;DATADIR&#64;/locsat/tables, tables should not be modified</p></td>
</tr>
</tbody>
</table>
<p>Travel times from other sources can be considered by a plugin exposing
the travel times to the travel-time interface.
The considered table must provide the time for all considered phases.</p>
<p>Example configuration (<code class="file docutils literal notranslate"><span class="pre">scanloc.cfg</span></code>):</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># Type of travel-time tables for phase association. May be different from locator.</span>
<span class="c1"># Use e.g. libtau or LOCSAT.</span>
<span class="na">association.tableType</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">LOCSAT</span>
<span class="c1"># Name of travel-time table used for phase association. May be different from locator</span>
<span class="c1"># profile.</span>
<span class="na">association.table</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">iasp91_scanloc</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Travel-time tables used during association and location may be different.
Therefore the travel-time residuals visible after relocating may be different
from the travel-time residuals considered during association.
The differences must be considered when configuring <a class="reference internal" href="#confval-association.maxPResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxPResidual</span></code></a>
and <a class="reference internal" href="#confval-association.maxSResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxSResidual</span></code></a>.</p>
</div>
</section>
<section id="processing-external-origins">
<span id="external-origins"></span><h3>Processing external origins<a class="headerlink" href="#processing-external-origins" title="Permalink to this heading"></a></h3>
<p>Origins received from other modules through the messaging or provided by XML files
can be processed and <a class="reference internal" href="#scanloc-assoc"><span class="std std-ref">more phases can be associated</span></a>. In
order to ignore such external origins set <a class="reference internal" href="#confval-buffer.ignoreOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.ignoreOrigins</span></code></a>:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">buffer.ignoreOrigins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">true</span>
</pre></div>
</div>
<p>Processing of external origins may be undesired when</p>
<ul class="simple">
<li><p>Involving other modules excepting origins by the messaging system, e.g.,
<span id="id9"><em>screloc</em> [<a class="reference internal" href="../base/references.html#id275" title="screloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/screloc.html.">25</a>]</span>. These modules may run in a loop with scanloc.</p></li>
<li><p>Receiving origins from other systems.</p></li>
</ul>
<p>Configure <a class="reference internal" href="#confval-buffer.authorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.authorWhiteList</span></code></a> with the author names of
origins <strong>which shall be processed</strong>, e.g., <span id="id10"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span>:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">buffer.authorWhiteList</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">scautoloc@localhost</span>
</pre></div>
</div>
<p>Automatic and manual origins from all other authors will be ignored.</p>
</section>
<section id="status-of-origins">
<span id="scanloc-origin-status"></span><h3>Status of origins<a class="headerlink" href="#status-of-origins" title="Permalink to this heading"></a></h3>
<p>The status of origins can be set during pick processing</p>
<ul class="simple">
<li><p>Normally, the status of origins is <strong>unset</strong>.</p></li>
<li><p>The status of origins from cluster search which only be located with fixed
depth (<code class="xref std std-confval docutils literal notranslate"><span class="pre">fixDepth</span></code>, <code class="xref std std-confval docutils literal notranslate"><span class="pre">forceFixDepth</span></code>) is set to
<strong>preliminary</strong>.</p></li>
<li><p>The status of origins which can be relocated with a free-depth solution is set
to <strong>unset</strong> if the origin status of the origin was previously set.</p></li>
</ul>
<p>However, the evaluation status may be later changed at
different times by different modules, e.g., the gempa module <strong class="program">sceval</strong>.
In order to track this history a journal entry is created and sent
when running scanloc with a connection to the messaging or added to the
XML output long with the origins.
In future versions of SeisComP such journal entries will be made accessible in
<strong class="program">scolv</strong>.</p>
</section>
<section id="sending-of-origins">
<span id="scanloc-send"></span><h3>Sending of origins<a class="headerlink" href="#sending-of-origins" title="Permalink to this heading"></a></h3>
<p>Before sending a new <a class="reference internal" href="#scanloc-internal"><span class="std std-ref">internal origin</span></a> to the
messaging or to XML output (<a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>) it is tested against the
configuration:</p>
<ul class="simple">
<li><p>Picks are removed when their travel-time residual &gt; <a class="reference internal" href="#confval-association.maxResidual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.maxResidual</span></code></a>
and origins are <a class="reference internal" href="#scanloc-locator"><span class="std std-ref">relocated</span></a>,</p></li>
<li><p>Origins are skipped when the score &lt; <a class="reference internal" href="#confval-minScore"><code class="xref std std-confval docutils literal notranslate"><span class="pre">minScore</span></code></a>,</p></li>
<li><p>Origins are skipped when the depth &gt; <a class="reference internal" href="#confval-ignoreDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">ignoreDepth</span></code></a>.</p></li>
</ul>
<p>The remaining internal origins are evaluated based on <a class="reference internal" href="#scanloc-scoring"><span class="std std-ref">scoring</span></a>.
The best origin of the same <a class="reference internal" href="#scanloc-internal"><span class="std std-ref">internal event</span></a> is the one
which has the highest score. When meeting the parameters
<a class="reference internal" href="#confval-ignoreDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">ignoreDepth</span></code></a>, <a class="reference internal" href="#confval-maxRMS"><code class="xref std std-confval docutils literal notranslate"><span class="pre">maxRMS</span></code></a> and <a class="reference internal" href="#confval-minScore"><code class="xref std std-confval docutils literal notranslate"><span class="pre">minScore</span></code></a> it is sent to the
SeisComP <span id="id11"><em>messaging</em> [<a class="reference internal" href="../base/references.html#id189" title="messaging. SeisComP concept. URL: https://docs.gempa.de/seiscomp/current/base/concepts/messaging.html.">10</a>]</span> or to stdout in case of non-real-time playbacks
(<a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>).</p>
<p>In real-time operation, the sending of origins may be delayed allowing to find
new origins with higher score.
The delay reduces the amount of origins in SeisComP systems and the load of
other modules. The send interval is controlled by the <code class="xref std std-confval docutils literal notranslate"><span class="pre">publication</span></code>
configuration parameters.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>In non-real-time (<a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>) playbacks, the <code class="xref std std-confval docutils literal notranslate"><span class="pre">publication</span></code>
configuration parameters are ignored and all origins are sent without delay.</p>
</div>
</section>
<section id="performance-considerations">
<span id="scanloc-performance"></span><h3>Performance considerations<a class="headerlink" href="#performance-considerations" title="Permalink to this heading"></a></h3>
<p>In case of dense large-N networks and high seismicity situations,
very many phase picks, e.g., hundreds of picks for a single event may be
provided to and processed by scanloc. In such situations, scanloc was observed
to slow down with default parameters but a sensible configuration of
<a class="reference internal" href="#confval-clusterSearch.maxSize"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxSize</span></code></a> and <a class="reference internal" href="#confval-association.arrivalCountMinRes"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.arrivalCountMinRes</span></code></a>
could overcome the obstacles.</p>
<ul class="simple">
<li><dl class="simple">
<dt><cite>clusterSearch.maxSize</cite> controls the maximum number of picks in a cluster</dt><dd><p>after selecting core points and before adding more picks. Since core points
are first collected, clusters may have a higher number of picks. The goal of
this parameter is to speed up scanloc. The parameter may help to increase the
performance of scanloc in case of dense large-N networks where very many
cluster can be formed due to the proximity of stations or generous
configuration.</p>
</dd>
</dl>
</li>
<li><p><cite>association.arrivalCountMinRes</cite> controls the association of picks to origins.
For origins with a larger number of arrivals than configured, the association
of P and S picks is controlled by the minimum of (<cite>association.maxPResidual</cite>,
<cite>association.maxResidual</cite>) and (<cite>association.maxSResidual</cite>,
<cite>association.maxResidual</cite>), respectively. The goal of this parameter is to
speed up scanloc by only associating picks to already stable origins defined
by many arrivals where new picks later on are unlikely to be removed again
from origins by residual checks. The parameter may help to increase the
performance of scanloc in case of dense large-N networks where very stations
provide phase picks.</p></li>
</ul>
</section>
</section>
<section id="internal-origins-and-events">
<span id="scanloc-internal"></span><h2>Internal Origins and Events<a class="headerlink" href="#internal-origins-and-events" title="Permalink to this heading"></a></h2>
<p><em>scanloc</em> forms</p>
<ul>
<li><p><strong>Internal origins</strong> from the locations and the associated picks (arrivals) of
new arrival sets,</p></li>
<li><p><strong>Internal events</strong> from internal origins based on the
<code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.*</span></code> parameters. The procedure is similar to
<span id="id12"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span>. An origin is compared to the preferred origin of an
existing internal event. It is associated to the existing internal event if
one of the criteria applies:</p>
<ul class="simple">
<li><p>the origins share a minimum of
<a class="reference internal" href="#confval-eventAssociation.minMatchingArrivals"><code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.minMatchingArrivals</span></code></a> <a class="reference internal" href="../base/glossary.html#term-arrival"><span class="xref std std-term">arrivals</span></a>.
Arrivals must be identical by the ID of the referenced <a class="reference internal" href="../base/glossary.html#term-pick"><span class="xref std std-term">pick</span></a> unless
<a class="reference internal" href="#confval-eventAssociation.compareAllArrivalTimes"><code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.compareAllArrivalTimes</span></code></a> = <em>true</em>. Then, a margin
of <a class="reference internal" href="#confval-eventAssociation.maxMatchingArrivalTimeDiff"><code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.maxMatchingArrivalTimeDiff</span></code></a> applies for
considering different picks to be the same.</p></li>
<li><p>the differences in origin time <strong>AND</strong> <a class="reference internal" href="../base/glossary.html#term-epicenter"><span class="xref std std-term">epicenter</span></a> is within
<a class="reference internal" href="#confval-eventAssociation.maxTimeSpan"><code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.maxTimeSpan</span></code></a> <strong>AND</strong>
<a class="reference internal" href="#confval-eventAssociation.maxDist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">eventAssociation.maxDist</span></code></a>, respectively.</p></li>
</ul>
<p>Only if the <a class="reference internal" href="#scanloc-scoring"><span class="std std-ref">score</span></a> of a new origin exceeds the score
of the last sent origin of the same internal event, the new origin is
<a class="reference internal" href="#scanloc-send"><span class="std std-ref">sent out</span></a>.</p>
</li>
</ul>
</section>
<section id="locating-origins">
<span id="scanloc-locator"></span><h2>Locating Origins<a class="headerlink" href="#locating-origins" title="Permalink to this heading"></a></h2>
<p>scanloc locates internal origins based on the configuration by the
<a class="reference internal" href="#confval-locator.type"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.type</span></code></a> and <a class="reference internal" href="#confval-locator.profile"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.profile</span></code></a> parameters. The list of
available locators can be printed by <em>scanloc</em>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scanloc<span class="w"> </span>--locator-list
</pre></div>
</div>
<p>In order to make an alternative locator available to <em>scanloc</em>, the respective
plugin must be loaded.</p>
<p>Consider a fast locator (<a class="reference internal" href="#confval-locator.type"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.type</span></code></a>), e.g., LOCSAT or
<span id="id13"><em>Hypo71</em> [<a class="reference internal" href="../base/references.html#id159" title="Hypo71. SeisComP locator. URL: https://docs.gempa.de/seiscomp/current/apps/global_hypo71.html.">3</a>]</span> with an appropriate profile (<a class="reference internal" href="#confval-locator.profile"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.profile</span></code></a>).
For LOCSAT dense the provided <a class="reference internal" href="../base/locsat-tables.html#scanloc-ttt"><span class="std std-ref">dense travel-time tables</span></a> may
be more appropriate at short epicentral distance than the default one.</p>
<p>Example configuration (<code class="file docutils literal notranslate"><span class="pre">scanloc.cfg</span></code>):</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># The locator type to use</span>
<span class="na">locator.type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">LOCSAT</span>
<span class="c1"># The locator profile to use</span>
<span class="na">locator.profile</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">iasp91_scanloc</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Computational speed can be an issue when alternative locators are used
and when many picks are to be tested during association. In this case <em>scanloc</em>
can be configured with <span id="id14"><em>LOCSAT</em> [<a class="reference internal" href="../base/references.html#id180" title="LOCSAT. SeisComP locator. URL: https://docs.gempa.de/seiscomp/current/apps/global_locsat.html.">5</a>]</span> but <span id="id15"><em>screloc</em> [<a class="reference internal" href="../base/references.html#id275" title="screloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/screloc.html.">25</a>]</span> may be used
along with the preferred locator and profile to relocate the origin. The
locator NonLinLoc <span id="id16">[<a class="reference internal" href="../base/references.html#id201" title="A. Lomax. The NonLinLoc Software Guide. Manual. URL: http://alomax.free.fr/nlloc/.">34</a>]</span> is certainly too slow for being used in
<strong class="program">scanloc</strong> but is a good option for <strong class="program">screloc</strong>.</p>
</div>
<p>If the locator fails to locate and <a class="reference internal" href="#confval-locator.fixDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.fixDepth</span></code></a> is active, the
hypocenter depth is fixed to <a class="reference internal" href="#confval-defaultDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultDepth</span></code></a> and the origin is relocated.</p>
</section>
<section id="scoring-origins">
<span id="scanloc-scoring"></span><h2>Scoring Origins<a class="headerlink" href="#scoring-origins" title="Permalink to this heading"></a></h2>
<p>Each <a class="reference internal" href="#scanloc-internal"><span class="std std-ref">internal origin</span></a> is evaluated and ranked by
calculating a <img class="math" src="../_images/math/10c5221591d4858b98791acd7585140f948bfd16.svg" alt="score"/> in order for scanloc to define the preferred origin
of an internal event and for comparison against <a class="reference internal" href="#confval-minScore"><code class="xref std std-confval docutils literal notranslate"><span class="pre">minScore</span></code></a> before
eventually <a class="reference internal" href="#scanloc-send"><span class="std std-ref">sending an origin</span></a>.</p>
<p>The score is calculated by a score processor which
is provided by a plugin. Score plugins shipped with scanloc can be equally
applied to <strong class="program">scanloc</strong> and <span id="id17"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span>. The plugins currently
provided along with <strong class="program">scanloc</strong> are:</p>
<ul class="simple">
<li><p><em>scoresum</em> (default): <a class="reference internal" href="#scanloc-originscoresum"><span class="std std-ref">OriginSum</span></a> calculating
the score as a weighted sum of <a class="reference internal" href="../base/glossary.html#term-origin"><span class="xref std std-term">Origin</span></a> attributes.</p></li>
<li><p><em>scoremf</em>: <a class="reference internal" href="#scanloc-originscoremf"><span class="std std-ref">OriginMultiFeature</span></a> calculating
the score as a weighted sum of <a class="reference internal" href="../base/glossary.html#term-origin"><span class="xref std std-term">Origin</span></a> attributes like in
<a class="reference internal" href="#scanloc-originscoresum"><span class="std std-ref">OriginSum</span></a> but allowing to add additional
contributions by picks from infrasound, strong motion and low-gain
instruments, authors, gap, etc.</p></li>
</ul>
<p>but more processors can be implemented by <cite>gempa</cite> or anyone else. Read the
section <a class="reference internal" href="#scanloc-originscore-dev"><span class="std std-ref">Plugin development</span></a> for the details.</p>
<section id="originsum">
<span id="scanloc-originscoresum"></span><h3>OriginSum<a class="headerlink" href="#originsum" title="Permalink to this heading"></a></h3>
<p>The OriginSum score processor is provided by the plugin <em>scoresum</em> located in
<code class="file docutils literal notranslate"><span class="pre">&#64;DATADIR&#64;/plugins/scevent/scoresum.so</span></code>. The plugin calculates the
<img class="math" src="../_images/math/10c5221591d4858b98791acd7585140f948bfd16.svg" alt="score"/> for origins as a weighted sum from</p>
<ul class="simple">
<li><p>The number of associated and used P- (Is-) and S-phase picks considering
separately the number of used pick times, slowness and backazimuth
(<em>pTimeCount</em>, <em>pSloCount</em>, <em>pBazCount</em> and <em>sTimeCount</em>, <em>sSloCount</em>, <em>sBazCount</em>),</p></li>
<li><p>The number of loosely associated P and S picks (<em>p0Count</em> and <em>s0Count</em>).
Such picks are arrivals with 0 weight. They are not used at all for origin
location,</p></li>
<li><p>Source <em>depth</em> represented by <em>depthFactor</em> (see below) and</p></li>
<li><p><em>RMS</em> time residual represented by <em>residualFactor</em> (see below).</p></li>
</ul>
<section id="methodology">
<h4>Methodology<a class="headerlink" href="#methodology" title="Permalink to this heading"></a></h4>
<p>The score is computed as</p>
<div class="math">
<p><img src="../_images/math/c542f1420dcd2e579fdd838e489114b0f559e36e.svg" alt="score =\ &amp;score.sum.p[0] \times pTimeCount + score.sum.p[1] \times pSloCount + score.sum.p[2] \times pBazCount \\
+\ &amp;score.sum.p0 \times p0Count \\
+\ &amp;score.sum.s[0] \times sTimeCount + score.sum.s[1] \times sSloCount + score.sum.s[2] \times sBazCount \\
+\ &amp;score.sum.s0 \times s0Count \\
+\ &amp;score.sum.depth \times depthFactor \\
+\ &amp;score.sum.residual \times residualFactor"/></p>
</div><p>with</p>
<div class="math">
<p><img src="../_images/math/1ef8ee032bcc625147226401f6de772181eb55b0.svg" alt="residualFactor =\ \left(\frac{score.sum.normalizationRMS}{RMS + score.sum.normalizationRMS}\right)^4 \\
depthFactor =\ \left(\frac{score.sum.normalizationDepth}{depth + score.sum.normalizationDepth}\right)^4."/></p>
</div><p>where the weight factors <a class="reference internal" href="#confval-score.sum.p"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.p</span></code></a> [0:2], <a class="reference internal" href="#confval-score.sum.p0"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.p0</span></code></a> ,
<a class="reference internal" href="#confval-score.sum.s"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.s</span></code></a> [0:2], <a class="reference internal" href="#confval-score.sum.s0"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.s0</span></code></a> ,
<a class="reference internal" href="#confval-score.sum.depth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.depth</span></code></a> and <a class="reference internal" href="#confval-score.sum.residual"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.residual</span></code></a> can be configured.
The values for <em>depthFactor</em> and <em>residualFactor</em> are derived from origin
<em>depth</em> and <em>time residual</em> and the configured values for
<a class="reference internal" href="#confval-score.sum.normalizationDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.normalizationDepth</span></code></a> and <a class="reference internal" href="#confval-score.sum.normalizationRMS"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.normalizationRMS</span></code></a>.
Higher weight is given to origins with shallower depth. You may set
<a class="reference internal" href="#confval-score.sum.depth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.depth</span></code></a> to form the score independent of depth in regions with
shallow and deep seismicity:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">score.sum.depth</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">0</span>
</pre></div>
</div>
<p>Phase picks may not only provide measurements of time but also of slowness
and back azimuth. The existence of these additional values, if used by the
locator, may impact the solution quality which can be considered by the score.
If you believe that slowness and back azimuth may provide valuable information,
the contribution to score by these picks may be increased by configuring
<a class="reference internal" href="#confval-score.sum.p"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.p</span></code></a> and <a class="reference internal" href="#confval-score.sum.s"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.s</span></code></a> with additional weights for slowness
and backazimuth like</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">score.sum.p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1,0.5,0.5</span>
<span class="na">score.sum.s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1,0.5,0.5</span>
</pre></div>
</div>
<p>Read the documentation of the locators in <cite>SeisComP</cite> in order to understand if
slowness and back azimuth are considered. An overview over locators is given in
the concepts section of the <span id="id18"><em>SeisComP documentation</em> [<a class="reference internal" href="../base/references.html#id290" title="SeisComP documentation. start page. URL: https://docs.gempa.de/seiscomp/current/index.html.">6</a>]</span>.</p>
</section>
<section id="configuration">
<h4>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading"></a></h4>
<p>For utilizing the <em>scorsum</em> plugin with the OriginSum score processor in scanloc
configure scanloc as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},scoresum</span>
<span class="na">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">OriginSum</span>
</pre></div>
</div>
<p>For utilizing the <em>scoresum</em> plugin with the OriginSum score processor
in scevent configure scevent as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},scoresum</span>
<span class="na">eventAssociation.score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">OriginSum</span>
<span class="na">eventAssociation.properties</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">...,SCORE,...</span>
</pre></div>
</div>
</section>
</section>
<section id="originmultifeature">
<span id="scanloc-originscoremf"></span><h3>OriginMultiFeature<a class="headerlink" href="#originmultifeature" title="Permalink to this heading"></a></h3>
<p>The OriginMultiFeature score processor is provided by the plugin <em>scoremf</em>
located in <code class="file docutils literal notranslate"><span class="pre">&#64;DATADIR&#64;/plugins/scevent/scoremf.so</span></code>. The plugin calculates
the <img class="math" src="../_images/math/10c5221591d4858b98791acd7585140f948bfd16.svg" alt="score"/> for origins similar to
<a class="reference internal" href="#scanloc-originscoresum"><span class="std std-ref">OriginSum</span></a> but allowing to add additional
contributions by picks from infrasound, strong motion and low-gain instruments,
authors, azimuthal gap, etc.</p>
<section id="id19">
<h4>Methodology<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h4>
<p>The score is computed as</p>
<div class="math">
<p><img src="../_images/math/6312b253bea2c08344e50e1aa61dab0f34df522f.svg" alt="score =\ &amp;score.mf.weights.p[0] \times pTimeCount + score.mf.weights.p[1] \times pSloCount + score.mf.weights.p[2] \times pBazCount \\
+\ &amp;score.mf.weights.p0 \times p0Count \\
+\ &amp;score.mf.weights.s \times sTimeCount \\
+\ &amp;score.mf.weights.s0 \times s0Count \\
+\ &amp;score.mf.weights.strongMotion \times strongMotionCount \\
+\ &amp;score.mf.weights.infrasound \times infrasoundCount \\
+\ &amp;score.mf.weights.depth \times depthFactor \\
+\ &amp;score.mf.weights.residual \times residualFactor \\
+\ &amp;score.mf.weights.gaps \times gapFactor \\
+\ &amp;authorfactor"/></p>
</div><p>with</p>
<div class="math">
<p><img src="../_images/math/10d3eeae1d8afcf1ae6e8320bf94613160e56d69.svg" alt="depthFactor =\ \left(\frac{score.mf.weights.normalizationDepth}{depth + score.mf.weights.normalizationDepth}\right) \\
residualFactor =\ \left(\frac{score.mf.weights.normalizationRMS}{RMS + score.mf.weights.normalizationRMS}\right) \\
gapsFactor =\ 1.0 - score.mf.weights.gap * \left(\frac{azimuthal gap}{360.0}\right)"/></p>
</div><div class="math">
<p><img src="../_images/math/9456238acff1f82b19353f8615aa20d5aeb2f53b.svg" alt="authorfactor =\
\begin{cases}
0 &amp; \text{if author of pick is not found in score.mf.weights.authors.author} \\
score.mf.weights.authors.score &amp; \text{if author of pick is found as score.mf.weights.authors.author}
\end{cases}"/></p>
</div><p>However, when origin time residual or depth exceed
<a class="reference internal" href="#confval-score.mf.weights.normalizationRMS"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.mf.weights.normalizationRMS</span></code></a> and
<a class="reference internal" href="#confval-score.mf.weights.normalizationDepth"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.mf.weights.normalizationDepth</span></code></a>, respectively, then</p>
<div class="math">
<p><img src="../_images/math/9baf4ae8cb201b174ca68f763ae79c538a1af514.svg" alt="score = score.mf.defaultScore"/></p>
</div><p>which typically assigns a very low priority to an origin.</p>
<p>Phase picks may not only provide measurements of time but also of slowness
and back azimuth. The existence of these additional values, if used by the
locator, may impact the solution quality which can be considered by the score.
If you believe that slowness and back azimuth may provide valuable information,
the contribution to score by these picks may be increased by configuring
<a class="reference internal" href="#confval-score.sum.p"><code class="xref std std-confval docutils literal notranslate"><span class="pre">score.sum.p</span></code></a> with weights for slowness and backazimuth like</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">score.mf.weights.p</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1,0.5,0.5</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>All elements in the equations above starting with <em>score.mf.</em> are
configurable parameters. Read the section <a class="reference internal" href="#scanloc-scoremf"><span class="std std-ref">ScoreMF plugin</span></a> for the full
description of parameters.</p>
</div>
</section>
<section id="id20">
<h4>Configuration<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h4>
<p>For utilizing the <em>scoremf</em> plugin with the OriginMultiFeature score processor
in scanloc configure scanloc as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},scoremf</span>
<span class="na">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">OriginMultiFeature</span>
</pre></div>
</div>
<p>For utilizing the <em>scoremf</em> plugin with the OriginMultiFeature score processor
in scevent configure scevent as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},scoremf</span>
<span class="na">eventAssociation.score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">OriginMultiFeature</span>
<span class="na">eventAssociation.properties</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">...,SCORE,...</span>
</pre></div>
</div>
</section>
</section>
<section id="plugin-development">
<span id="scanloc-originscore-dev"></span><h3>Plugin development<a class="headerlink" href="#plugin-development" title="Permalink to this heading"></a></h3>
<p>Custom score processors may be implemented by additional plugins. You may
develop such plugins yourself or request a development from
<a class="reference external" href="https://www.gempa.de/contact/">gempa GmbH</a>. An
introduction into the development is given on:
<a class="reference external" href="https://github.com/gempa/seiscomp-programming-templates">GitHub</a> .</p>
<p>For utilizing the <em>pluginName</em> plugin with the <em>processorName</em> processor in
scanloc configure scanloc as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},scoresum</span>
<span class="na">score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">OriginSum</span>
</pre></div>
</div>
<p>For utilizing the <em>pluginName</em> plugin with the processorName processor in scevent
configure scevent as:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins},pluginName</span>
<span class="na">eventAssociation.score</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">processorName</span>
<span class="na">eventAssociation.properties</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">...,SCORE,...</span>
</pre></div>
</div>
</section>
</section>
<section id="pipeline-systems">
<span id="scanloc-pipeline"></span><h2>Pipeline Systems<a class="headerlink" href="#pipeline-systems" title="Permalink to this heading"></a></h2>
<p>When operating scanloc in a pipeline, configure <a class="reference internal" href="global.html#confval-connection.subscriptions"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.subscriptions</span></code></a>
to receive picks and origins from and <a class="reference internal" href="global.html#confval-connection.primaryGroup"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.primaryGroup</span></code></a> to send
origins to the right message group.</p>
<p>Alternatively you may configure <a class="reference internal" href="#confval-buffer.authorWhiteList"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.authorWhiteList</span></code></a> for receiving
picks and origins from modules with the listed authors. In this case, configuring
new message groups for receiving and sending objects may not be required depending
on the other modules involved in the pipeline.</p>
<p>Please also understand the note on public IDs of the
<a class="reference internal" href="#scanloc-buffer"><span class="std std-ref">buffer section</span></a>.</p>
</section>
<section id="redundant-systems">
<span id="scanloc-redundancy"></span><h2>Redundant Systems<a class="headerlink" href="#redundant-systems" title="Permalink to this heading"></a></h2>
<p>In redundant systems where origins are received from other machines with idential
or simialar setup you may wish to suppress re-processing these origins. Read
section <a class="reference internal" href="#external-origins"><span class="std std-ref">Processing external origins</span></a> for the configuration.</p>
</section>
<section id="association-of-teleseismic-phases">
<span id="scanloc-zero-weight"></span><h2>Association of Teleseismic Phases<a class="headerlink" href="#association-of-teleseismic-phases" title="Permalink to this heading"></a></h2>
<p>Dense local networks used to monitor local seismicity are often able to catch
also a significant number of phases from earthquakes at teleseismic distances.
Such phases include Pdiff or PKP.
Especially PKP may contain a significant amount of energy at higher frequencies.
Therefore PKP is often detected by networks that are tuned to detect
local earthquakes.
Due to the steep incidence and the low horizontal slowness of these phases, they
are sometimes located as fake deep earthquakes below the network.
<em>scanloc</em> can be used to suppress this type of fake events.</p>
<p>In a 2-pipeline setup, <em>scanloc</em> can associate such teleseismic phases recorded
by the local network with origins that were found by the pipeline for
monitoring teleseismic earthquakes. Then <span id="id21"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span>
will associate
the origins from the teleseismic pipeline with the fake origins from the
pipeline for local monitoring to the same event. The assumption is that the origins
from the teleseismic pipeline win over the origins from pipeline for local monitoring
because they have more associated arrivals. In this case the origins from pipeline
for teleseismic monitoring that has most phases becomes the preferred origin for
the event. This <a class="reference internal" href="#scanloc"><span class="std std-ref">scanloc</span></a> feature requires an extended license.</p>
<p><em>Setup of a 2-pipeline system</em></p>
<ol class="arabic">
<li><p>Generate a 2-pipeline system involving at least <span id="id22"><em>scautopick</em> [<a class="reference internal" href="../base/references.html#id237" title="scautopick. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautopick.html.">15</a>]</span>,
<strong class="program">scanloc</strong> and <span id="id23"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span> :</p>
<ul class="simple">
<li><p><strong>Pipeline 1</strong> monitors teleseismic earthquakes using <strong class="program">scautopick</strong>,
<strong class="program">scautoloc</strong>, <strong class="program">scanloc</strong> and default message groups.</p></li>
<li><p><strong>Pipeline 2</strong> monitors local earthquakes using <em>l1autopick</em>, <em>l1autoloc</em>
and <em>l1scanloc</em> using the message groups L1PICK and L1LOCATION.</p></li>
</ul>
</li>
<li><p>Let <em>scanloc</em> not perform cluster search (<a class="reference internal" href="#confval-clusterSearch.maxOrigins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">clusterSearch.maxOrigins</span></code></a> = 0)
but allow <em>scanloc</em> to only associate P picks from pipelines 2 based on origins
from <strong class="program">scautoloc</strong> (connection.subscriptions = “LOCATION, L1PICK” in the global
module parameters). Configure <em>scanloc</em> to associate the picks from pipeline 2
as picks with zero weight when they are, e.g., in the PKP or Pdiff distance
range. Use one zeroWeight profiles per phase.</p>
<p>In order to facilitate association of teleseismic picks, the picks and the origins
must be kept in memory for sufficient time. Increase <a class="reference internal" href="#confval-buffer.pickKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.pickKeep</span></code></a>
and <a class="reference internal" href="#confval-buffer.originKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originKeep</span></code></a> accordingly, e.g., to 1800 s.</p>
<p>In this way zero-weight picks will not be used for locating the event but are
part of the origin and can be considered by <em>scevent</em>.</p>
</li>
<li><p>Configure <em>scevent</em> to listen to the message groups from both pipelines (e.g.
LOCATION and L1LOCATION) and activate the <em>scevent</em> module parameter
<em>eventAssociation.allowLooseAssociatedArrivals</em> (<code class="file docutils literal notranslate"><span class="pre">scevent.cfg</span></code>).</p>
<figure class="align-center" id="id61">
<a class="reference internal image-reference" href="../_images/zeroweight_pipeline.png"><img alt="../_images/zeroweight_pipeline.png" src="../_images/zeroweight_pipeline.png" style="width: 10cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 6: Parameter exchange in a 2-pipeline system. The messaging system, responsible
for the parameter exchange, is representated by the circles, indicating the
message groups. Teleseismic monitoring is configured with scautopick,
scanloc, scautoloc and local monitoring with l1autopick,
l1scanloc, l1autoloc.</span><a class="headerlink" href="#id61" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</li>
</ol>
<p><em>Playback using picks and amplitudes from 2-pipeline system (real-event examples)</em></p>
<figure class="align-center" id="id62">
<span id="fig-zeroweight1"></span><a class="reference internal image-reference" href="../_images/scolv_zeroweight1.png"><img alt="../_images/scolv_zeroweight1.png" src="../_images/scolv_zeroweight1.png" style="width: 10cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 7: Location tab in <em>scolv</em> with zero-weight picks associated by <em>scanloc</em> as PKP phases.</span><a class="headerlink" href="#id62" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-center" id="id63">
<span id="fig-zeroweight2"></span><a class="reference internal image-reference" href="../_images/scolv_zeroweight2.png"><img alt="../_images/scolv_zeroweight2.png" src="../_images/scolv_zeroweight2.png" style="width: 10cm;" /></a>
<figcaption>
<p><span class="caption-text">Figure 8: Event tab in <em>scolv</em> showing the origins from the pipelines for local and
teleseismic monitoring. The preferred origin located near the Solomon
Islands is shown in bold on top. Fake origins in Europe located by pipeline
for local monitoring based on PKP phases falsely considered P phases are
associated to the event but do not form the preferred origin at any time.</span><a class="headerlink" href="#id63" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="real-time-applications">
<span id="scanloc-example"></span><h2>Real-Time Applications<a class="headerlink" href="#real-time-applications" title="Permalink to this heading"></a></h2>
<ul>
<li><p>Run <em>scanloc</em> during real-time processing:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>scanloc
</pre></div>
</div>
</li>
<li><p>Run <em>scanloc</em> on the command line for real-time processing or message-based
playbacks with debugging output:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scanloc<span class="w"> </span>--debug
</pre></div>
</div>
</li>
</ul>
</section>
<section id="playbacks">
<h2>Playbacks<a class="headerlink" href="#playbacks" title="Permalink to this heading"></a></h2>
<p>Playbacks are used to process waveforms or other data on demand as in real time
or non-real time, with or without connection to the <cite>SeisComP</cite> messaging. Objects
like picks and origins may be provided to scanloc by XML files or through the
messaging.</p>
<p>In playbacks of picks in XML files the performance of scanloc may differ
from real-time operation based on messaging:</p>
<ul>
<li><p>In real-time operation, the picks are made e.g., by <strong class="program">scautopick</strong> at
some time and considered by scanloc according to
their creation times. Delayed picks may become irrelevant for the processing.
Configure <a class="reference internal" href="#confval-buffer.pickKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.pickKeep</span></code></a> and <a class="reference internal" href="#confval-buffer.originKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originKeep</span></code></a> accordingly.</p>
<p>However, the <strong>creation times of picks and origins may be obscured</strong> when
created in a non-real-time playback or manually. Objects from non-real-time
playbacks may have almost identical creation times independent of their object
times (pick time, origin time, etc.).</p>
</li>
<li><p><a class="reference internal" href="#sec-scanloc-rt-playbacks"><span class="std std-ref">In message-based playbacks</span></a>, picks and
origins are provided to scanloc via the messaging system. When created in real
time, the <strong>creation times</strong> of these objects form a
realistic time reference for scanloc and should therefore considered using
<a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span></code></a>.</p></li>
<li><p><a class="reference internal" href="#sec-scanloc-xml-playbacks"><span class="std std-ref">In non-real-time XML playbacks</span></a>
(<a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>), scanloc considers picks and origins by default according to
their actual <strong>times</strong>.
For objects created in a non-real-time playback object times are most
reasonable as creation time is not a valid time reference anymore.
<strong>However, referencing to object time may result in a behavior which is
different from real-time conditions.</strong></p>
<p>Therefore, for mimicking real-time conditions in playbacks of objects obtained
in real-time conditions consider the command-line option
<a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span></code></a> with <em>creationTime</em>.</p>
</li>
</ul>
<section id="real-time-playbacks">
<span id="sec-scanloc-rt-playbacks"></span><h3>Real-time playbacks<a class="headerlink" href="#real-time-playbacks" title="Permalink to this heading"></a></h3>
<p>Message-based real-time playbacks are useful to test the behavior of scanloc in
real time based on objects like <span class="xref std std-term">Picks</span>, <span class="xref std std-term">Origins</span> and/or
<span class="xref std std-term">Amplitudes</span> generated before by picking/processing:</p>
<ul class="simple">
<li><p><strong>Real time</strong> where the order of the objects is represented by their
creation time.</p></li>
<li><p><strong>Non-real time</strong>, e.g. manually or by playbacks at high speed. In these cases
creation time is not a useful measure of the timing in real time.</p></li>
</ul>
<p>Real-time playbacks are supported by
<a class="reference internal" href="../base/auxiliary.html#sec-scanloc-aux-tools"><span class="std std-ref">auxiliary scripts</span></a> shipped with the scanloc
package.</p>
<ul>
<li><p><strong>Objects from real-time picking/processing:</strong> Obtain phase picks and origins
obtained in real-time and play them back using <strong class="program">dump_picks</strong>.
Amplitudes are useful if other modules such as <span id="id24"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span>,
<span id="id25"><em>scamp</em> [<a class="reference internal" href="../base/references.html#id236" title="scamp. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scamp.html.">12</a>]</span> or <span id="id26"><em>scmag</em> [<a class="reference internal" href="../base/references.html#id262" title="scmag. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scmag.html.">22</a>]</span> are involved as well.</p>
<p><strong>Procedure:</strong></p>
<ol class="arabic">
<li><p>Read picks, origins and amplitudes from the database and store them as
<a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> in a file, <code class="file docutils literal notranslate"><span class="pre">picks.xml</span></code>, for later playbacks. Additional
command-line options may be used to confine the retrieval:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>dump_picks<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>-t<span class="w"> </span><span class="s2">&quot;2022-04-01 08:00:00.00~2022-04-01 08:05:00.00&quot;</span><span class="w"> </span>-o<span class="w"> </span>objects.xml
</pre></div>
</div>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p><strong class="program">dump_picks</strong> allows playing back the objects at high speed by
<a class="reference internal" href="../base/auxiliary.html#cmdoption-speed"><code class="xref std std-option docutils literal notranslate"><span class="pre">--speed</span></code></a> and jumping in time by :<a class="reference internal" href="../base/auxiliary.html#cmdoption-j"><code class="xref std std-option docutils literal notranslate"><span class="pre">-j</span></code></a>.</p>
</div>
</li>
<li><p>Play back all objects sending them to the <cite>SeisComP</cite> messaging. Start
<em>scanloc</em> separately for debugging on the command line <strong>considering
default timing</strong> by creation time of all objects. When done, send all
objects to the messaging by <strong class="program">playback_picks</strong>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>stop
seiscomp<span class="w"> </span>start<span class="w"> </span>scmaster<span class="w"> </span>scamp<span class="w"> </span>scmag<span class="w"> </span>scevent
scanloc<span class="w"> </span>--debug
playback_picks<span class="w"> </span>picks.xml
</pre></div>
</div>
</li>
</ol>
</li>
<li><p><strong>Picks from playbacks:</strong> Play back picks and amplitudes created by a
non-real-time playback possibly in different
<span id="id27"><em>pipeline</em> [<a class="reference internal" href="../base/references.html#id215" title="pipeline. SeisComP3 wiki. URL: https://www.SeisComP3.org/wiki/recipes/multiple-pick-loc-pipeline.">11</a>]</span> sending them to the SeisComP messaging.</p>
<ul class="simple">
<li><p>Picks and amplitudes are created in playbacks by <span id="id28"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span> and
stored in XML files (<a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format).</p></li>
<li><p>Picks and amplitudes are sent specifically to the message groups PICK, L1PICK
and AMPLITUDE.</p></li>
<li><p><em>scanloc</em> and <em>l1scanloc</em> listen to picks from PICK and L1PICKS, respectively.</p></li>
<li><p><span id="id29"><em>scautoloc</em> [<a class="reference internal" href="../base/references.html#id238" title="scautoloc. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautoloc.html.">14</a>]</span> additionally needs the pick amplitudes from the
subscribed amplitude groups.</p></li>
</ul>
<p><strong>Procedure:</strong></p>
<ol class="arabic">
<li><p>Create the XML files by <span id="id30"><em>scautopick</em> [<a class="reference internal" href="../base/references.html#id237" title="scautopick. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautopick.html.">15</a>]</span> including picks and
amplitudes in a non-real-time playback by the modules as in your 2-pipeline
system. Since picks and amplitudes are created by the playback, their
creation times are not a relevant measure of the order in which they were
created.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scautopick<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>--playback<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>picks.xml
l1autopick<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>--playback<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>l1picks.xml
</pre></div>
</div>
</li>
<li><p>Start all required modules including the scanloc instances</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>scmaster<span class="w"> </span>scamp<span class="w"> </span>scmag<span class="w"> </span>scevent<span class="w"> </span>scautoloc<span class="w"> </span>l1autoloc<span class="w"> </span>scanloc<span class="w"> </span>l1scanloc
</pre></div>
</div>
</li>
<li><p>Execute <a class="reference internal" href="../base/auxiliary.html#sec-scanloc-playback-picks"><span class="std std-ref">playback_picks</span></a> with
<a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span> <span class="pre">pickTime</span></code></a> for sending the picks and
amplitudes created by different pickers at different times.
<strong>Consider timing by pick time of the picks:</strong>
<a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span> <span class="pre">pickTime</span></code></a> is used as an approixmation of the timing since
creation time is not meaningful in this XML playback.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>playback_picks<span class="w"> </span>picks.xml:PICK:AMPLITUDE<span class="w"> </span>l1picks.xml:L1PICK:AMPLITUDE<span class="w"> </span>--timing<span class="w"> </span>pickTime
</pre></div>
</div>
</li>
</ol>
</li>
</ul>
</section>
<section id="non-real-time-playbacks">
<span id="sec-scanloc-xml-playbacks"></span><h3>Non-real-time playbacks<a class="headerlink" href="#non-real-time-playbacks" title="Permalink to this heading"></a></h3>
<p>Non-real-time (<a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>) playbacks are used for very fast processing of
picks and origins which are provided in XML files (<a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format).
The objects were generated before in</p>
<ul class="simple">
<li><p>Real time and read from the database e.g., by
<a class="reference internal" href="../base/auxiliary.html#sec-scanloc-dump-picks"><span class="std std-ref">dump_picks</span></a> or</p></li>
<li><p>By non-real-time playbacks, e.g., involving <span id="id31"><em>scautopick</em> [<a class="reference internal" href="../base/references.html#id237" title="scautopick. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scautopick.html.">15</a>]</span>.</p></li>
<li><p>Manually by <span id="id32"><em>scolv</em> [<a class="reference internal" href="../base/references.html#id268" title="scolv. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scolv.html.">24</a>]</span>, <span id="id33"><em>LAMBDA</em> [<a class="reference internal" href="../base/references.html#id176" title="LAMBDA. gempa module. URL: https://docs.gempa.de/lambda/current/index.html.">4</a>]</span>, etc.</p></li>
</ul>
<p>In such playbacks, all objects are provided to scanloc
in an XML file with the option <a class="reference internal" href="#cmdoption-ep"><code class="xref std std-option docutils literal notranslate"><span class="pre">--ep</span></code></a>.
scanloc writes the results in <a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> to stdout which can be re-directed
into another file for further processing.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Execute scanloc always with the appropriate timing.
When picks are created in a non-real-time playback use scanloc with timing
by pick time corresponding to <a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span> <span class="pre">pickTime</span></code></a> which is the default in
playbacks. For picks obtained
in real time you should use scanloc with the command-line option
<a class="reference internal" href="#cmdoption-timing"><code class="xref std std-option docutils literal notranslate"><span class="pre">--timing</span> <span class="pre">creationTime</span></code></a> for setting the timing to creation time.</p>
</div>
<ul>
<li><p>Play back picks stored in XML format to locate events and to determined
the magnitude. Intermediate results are stored in XML files.
Inventory and bindings configuration are read from the database.
The playback is independent of the messaging. Execute scanloc with the
appropriate timing.</p>
<p><strong>Procedure:</strong></p>
<ol class="arabic">
<li><p>Run the playback</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scautopick<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>--playback<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span>&gt;<span class="w"> </span>picks.xml
scanloc<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>picks.xml<span class="w"> </span>--timing<span class="w"> </span><span class="o">[</span>timing<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>origins.xml
scamp<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>origins.xml<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>amps.xml
scmag<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>amps.xml<span class="w"> </span>&gt;<span class="w"> </span>mags.xml
scevent<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>mags.xml<span class="w"> </span>&gt;<span class="w"> </span>events.xml
</pre></div>
</div>
<p>You may jointly process picks from multiple instances of phase detectors
which are executed first. The picks and origins are provided to scanloc
after merging the XML files. Example:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scautopick<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>--playback<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>picks_sp.xml
dlpick<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>--playback<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>picks_dl.xml
ccloc<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--offline<span class="w"> </span>--ep<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>picks_origins_ccloc.xml
autothor<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--offline<span class="w"> </span>--ep<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>picks_origins_autothor.xml
scxmlmerge<span class="w"> </span>picks_sp.xml<span class="w"> </span>picks_dl.xml<span class="w"> </span>picks_origins_ccloc.xml<span class="w"> </span>picks_origins_autothor.xml<span class="w"> </span>&gt;<span class="w"> </span>objects.xml
scanloc<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>objects.xml<span class="w"> </span>--timing<span class="w"> </span><span class="o">[</span>timing<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>origins.xml
scamp<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>origins.xml<span class="w"> </span>-I<span class="w"> </span><span class="o">[</span>your_waveforms<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>amps.xml
scmag<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>amps.xml<span class="w"> </span>&gt;<span class="w"> </span>mags.xml
scevent<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>--ep<span class="w"> </span>mags.xml<span class="w"> </span>&gt;<span class="w"> </span>events.xml
</pre></div>
</div>
</li>
<li><p>Enter the results into the SeisComP system. Either:</p>
<ul>
<li><p><strong>Preferred: Events may exist</strong> in the database.
Update existing events by associating new origins or create new events.
Run the messaging system and all
modules that shall process the new parameters, e.g.
<span id="id34"><em>scamp</em> [<a class="reference internal" href="../base/references.html#id236" title="scamp. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scamp.html.">12</a>]</span>, <span id="id35"><em>scmag</em> [<a class="reference internal" href="../base/references.html#id262" title="scmag. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scmag.html.">22</a>]</span> , <span id="id36"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span>.
Use <span id="id37"><em>scdispatch</em> [<a class="reference internal" href="../base/references.html#id248" title="scdispatch. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdispatch.html.">17</a>]</span> to send the new objects to
the messaging system.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>scmaster<span class="w"> </span>scamp<span class="w"> </span>scmag<span class="w"> </span>scevent
scdispatch<span class="w"> </span>-H<span class="w"> </span>host<span class="w"> </span>-i<span class="w"> </span>mags.xml
</pre></div>
</div>
<p>Instead of the <code class="file docutils literal notranslate"><span class="pre">mags.xml</span></code>, other parameters created by the
playback may be dispatched, e.g., from <code class="file docutils literal notranslate"><span class="pre">origins.xml</span></code>. Use
<span id="id38"><em>scdispatch</em> [<a class="reference internal" href="../base/references.html#id248" title="scdispatch. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdispatch.html.">17</a>]</span> with <em>-e</em> to ultimately prevent sending event
objects.</p>
</li>
<li><p><strong>Events do not exist</strong> in the database, use <span id="id39"><em>scdb</em> [<a class="reference internal" href="../base/references.html#id246" title="scdb. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdb.html.">16</a>]</span> to populate
the database with all events in <code class="file docutils literal notranslate"><span class="pre">events.xml</span></code>.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scdb<span class="w"> </span>-i<span class="w"> </span>events.xml<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span>
</pre></div>
</div>
</li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Using <span id="id40"><em>scdb</em> [<a class="reference internal" href="../base/references.html#id246" title="scdb. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdb.html.">16</a>]</span> for writing event information to the database may
result in duplicates if the provided parameters, e.g., events, exist already
with another ID. In this case use <span id="id41"><em>scdispatch</em> [<a class="reference internal" href="../base/references.html#id248" title="scdispatch. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdispatch.html.">17</a>]</span> with <code class="file docutils literal notranslate"><span class="pre">mags.xml</span></code>
and running <span id="id42"><em>scmaster</em> [<a class="reference internal" href="../base/references.html#id263" title="scmaster. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scmaster.html.">23</a>]</span> and <span id="id43"><em>scevent</em> [<a class="reference internal" href="../base/references.html#id253" title="scevent. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scevent.html.">19</a>]</span>
instead of <span id="id44"><em>scdb</em> [<a class="reference internal" href="../base/references.html#id246" title="scdb. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scdb.html.">16</a>]</span>. However, <em>scdispatch</em> in newer versions of
SeisComP allows ignoring Event objects with the option <code class="docutils literal notranslate"><span class="pre">-e</span></code>. Then, also
<code class="file docutils literal notranslate"><span class="pre">events.xml</span></code> can be dispatched.</p>
</div>
</li>
</ol>
</li>
<li><p>Play back picks stored in XML format, without a database but inventory and
bindings in <a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> and with a local file for module configuration.</p>
<p><strong>Procedure:</strong></p>
<ol class="arabic">
<li><p>Set up a local module configuration file, e.g., <code class="file docutils literal notranslate"><span class="pre">./scanloc.cfg</span></code>
containing all parameters including <a class="reference internal" href="global.html#confval-core.plugins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">core.plugins</span></code></a>.</p></li>
<li><p>Store the station inventory and the binding configuration from a database
in <a class="reference internal" href="../base/glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scxmldump<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>-fI<span class="w"> </span>-o<span class="w"> </span>inventory.xml
scxmldump<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>database<span class="o">]</span><span class="w"> </span>-fC<span class="w"> </span>-o<span class="w"> </span>config.xml
</pre></div>
</div>
</li>
<li><p>Continue with the examples above replacing the database parameter
<a class="reference internal" href="global.html#cmdoption-d"><code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span> <span class="pre">[database]</span></code></a> with <a class="reference internal" href="global.html#cmdoption-inventory-db"><code class="xref std std-option docutils literal notranslate"><span class="pre">--inventory-db</span> <span class="pre">inventory.xml</span></code></a>
<a class="reference internal" href="global.html#cmdoption-config-db"><code class="xref std std-option docutils literal notranslate"><span class="pre">--config-db</span> <span class="pre">config.xml</span></code></a>
and adding the module configuration in <code class="file docutils literal notranslate"><span class="pre">scanloc.cfg</span></code>. Set the timing
accordingly:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scanloc<span class="w"> </span>--inventory-db<span class="w"> </span>inventory.xml<span class="w"> </span>--config-db<span class="w"> </span>config.xml<span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--ep<span class="w"> </span>picks.xml<span class="w"> </span>--timing<span class="w"> </span><span class="o">[</span>timing<span class="o">]</span><span class="w"> </span><span class="se">\</span>
<span class="w"> </span>--config-file<span class="w"> </span>scanloc.cfg<span class="w"> </span>&gt;<span class="w"> </span>origins.xml
</pre></div>
</div>
</li>
</ol>
</li>
</ul>
</section>
</section>
<section id="module-configuration">
<h2>Module Configuration<a class="headerlink" href="#module-configuration" title="Permalink to this heading"></a></h2>
<div class="line-block">
<div class="line"><code class="file docutils literal notranslate"><span class="pre">etc/defaults/global.cfg</span></code></div>
<div class="line"><code class="file docutils literal notranslate"><span class="pre">etc/defaults/scanloc.cfg</span></code></div>
<div class="line"><code class="file docutils literal notranslate"><span class="pre">etc/global.cfg</span></code></div>
<div class="line"><code class="file docutils literal notranslate"><span class="pre">etc/scanloc.cfg</span></code></div>
<div class="line"><code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/global.cfg</span></code></div>
<div class="line"><code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/scanloc.cfg</span></code></div>
</div>
<p>scanloc inherits <a class="reference internal" href="global.html#global-configuration"><span class="std std-ref">global options</span></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Modules/plugins may require a license file. The default path to license
files is <code class="file docutils literal notranslate"><span class="pre">&#64;DATADIR&#64;/licenses/</span></code> which can be overridden by global
configuration of the parameter <code class="xref std std-confval docutils literal notranslate"><span class="pre">gempa.licensePath</span></code>. Example:</p>
<div class="highlight-rst notranslate"><div class="highlight"><pre><span></span>gempa.licensePath = @CONFIGDIR@/licenses
</pre></div>
</div>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-defaultDepth">
<span class="sig-name descname"><span class="pre">defaultDepth</span></span><a class="headerlink" href="#confval-defaultDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Unit: <em>km</em></p>
<p>Type: <em>double</em></p>
<p>Default source depth used for locating origins. The range of
supported values depends on the configured
travel-time interface and locator.</p>
<p>When origin depth after locating is 0.0 or undefined, the depth
is corrected to &quot;defaultDepth&quot; without relocating
since the situation indicates issues.</p>
<p>Note: A similar parameter may require configuration for score
plugins.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-ignoreDepth">
<span class="sig-name descname"><span class="pre">ignoreDepth</span></span><a class="headerlink" href="#confval-ignoreDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">650.0</span></code></p>
<p>Unit: <em>km</em></p>
<p>Type: <em>double</em></p>
<p>Maximum depth of an origin to be sent.</p>
<p>Note: A similar parameter may require configuration for score
plugins.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-use3D">
<span class="sig-name descname"><span class="pre">use3D</span></span><a class="headerlink" href="#confval-use3D" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Compute distances in 3D for cluster search,
phase association and internal event association. Otherwise,
distances are measured from geographic coordinates ignoring elevation.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-maxRMS">
<span class="sig-name descname"><span class="pre">maxRMS</span></span><a class="headerlink" href="#confval-maxRMS" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.5</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed overall residual of an origin to be sent.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-minScore">
<span class="sig-name descname"><span class="pre">minScore</span></span><a class="headerlink" href="#confval-minScore" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Minimum score of an origin to be sent.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score">
<span class="sig-name descname"><span class="pre">score</span></span><a class="headerlink" href="#confval-score" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">OriginSum</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">OriginSum,OriginMultiFeature</span></code></p>
<p>Defines the score processor to be used for ranking origins of
events. Additional configuration of the plugin and the plugin
parameters is required.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-pickComparisonLevel">
<span class="sig-name descname"><span class="pre">pickComparisonLevel</span></span><a class="headerlink" href="#confval-pickComparisonLevel" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">loc</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">sta,loc,cha</span></code></p>
<p>The level up to which compare stream IDs of multiple picks in
order to avoid origins with multiple picks from identical stream
level, e.g., station (sta), sensor location (loc) or channel
(cha).</p>
<p>The level is derived from the NET.STA.LOC.CHA stream
representation. Picks with equal stream IDs on the given level
are treated as originating from the same stream no matter of the
ID on a lower level. Clusters having picks on streams equal on
the given level are split into new clusters with unique streams.
During association picks equal on the given level are ignored -
the first assigned pick is considered.</p>
</dd></dl>
<div class="admonition note" id="buffer">
<p class="admonition-title">Note</p>
<p><strong>buffer.*</strong>
<em>Define buffering of picks and origins. scanloc only treats picks</em>
<em>and origins kept in the buffer.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.pickKeep">
<span class="sig-name descname"><span class="pre">buffer.pickKeep</span></span><a class="headerlink" href="#confval-buffer.pickKeep" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">180.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Time to keep picks. Time comparison is based on the pick
times. In non-real time playbacks the time to keep picks is
usually compressed.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.pickIgnoreStreamID">
<span class="sig-name descname"><span class="pre">buffer.pickIgnoreStreamID</span></span><a class="headerlink" href="#confval-buffer.pickIgnoreStreamID" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>Ignore picks created on given stream ID(s). Stream IDs may
contain wildcards. Separate multiple IDs by comma.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.ignorePickTimeDifference">
<span class="sig-name descname"><span class="pre">buffer.ignorePickTimeDifference</span></span><a class="headerlink" href="#confval-buffer.ignorePickTimeDifference" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Generally, all available picks are added to the buffer and
made available for processing. Use this option to ignore new
picks made on the same data stream within the given time
difference to a previously buffered pick. A value of 0.0 s
ignores all picks with identical times.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.originKeep">
<span class="sig-name descname"><span class="pre">buffer.originKeep</span></span><a class="headerlink" href="#confval-buffer.originKeep" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">180.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Time to keep origins. Time comparison is based on the origin
times. In non-real time playbacks the time to keep orgins is
usually compressed.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.ignoreOrigins">
<span class="sig-name descname"><span class="pre">buffer.ignoreOrigins</span></span><a class="headerlink" href="#confval-buffer.ignoreOrigins" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Ignore and do not buffer external origins received from
messaging or from XML files.</p>
<p>Default: Accept external origins from messaging or XML and
associate more phases.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.ignoreManualOrigins">
<span class="sig-name descname"><span class="pre">buffer.ignoreManualOrigins</span></span><a class="headerlink" href="#confval-buffer.ignoreManualOrigins" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">true</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Ignore and do not buffer manual external origins received
from messaging or from XML files.</p>
<p>The parameter &quot;buffer.ignoreOrigins&quot; must be
inactive for this option to be effective.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.originStatusIgnore">
<span class="sig-name descname"><span class="pre">buffer.originStatusIgnore</span></span><a class="headerlink" href="#confval-buffer.originStatusIgnore" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">rejected,reported,preliminary,confirmed,reviewed,final</span></code></p>
<p>Ignore an external origin if its status has any of the given
states. The option is ignored for manual origins if
buffer.ignoreManualOrigins = false.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.authorWhiteList">
<span class="sig-name descname"><span class="pre">buffer.authorWhiteList</span></span><a class="headerlink" href="#confval-buffer.authorWhiteList" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>Only buffer picks or origins from the given authors.
Separate multiple authors by comma. Picks and origins from
other authors will be ignored. Wildcards are supported.
This parameter overrides
&quot;buffer.originAuthorWhiteList&quot;. Manual origins are
treated regardless of the author as defined by
&quot;buffer.ignoreManualOrigins&quot;.
The parameter allows operation of scanloc based on picks and
origins from a specific module, e.g., in a pipeline.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.originAuthorWhiteList">
<span class="sig-name descname"><span class="pre">buffer.originAuthorWhiteList</span></span><a class="headerlink" href="#confval-buffer.originAuthorWhiteList" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>Deprecated parameter which will be removed in 2025. Use
&quot;buffer.authorWhiteList&quot; instead which overrides
this parameter!</p>
<p>Only buffer external origins from the given authors to the.
Separate multiple authors by comma. Manual origins
are treated regardless of the author as defined by
&quot;buffer.ignoreManualOrigins&quot;.</p>
<p>The parameter &quot;buffer.ignoreOrigins&quot; must be
inactive for this option to be effective.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-buffer.futureTimeDelta">
<span class="sig-name descname"><span class="pre">buffer.futureTimeDelta</span></span><a class="headerlink" href="#confval-buffer.futureTimeDelta" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>The time delta to the future. Positive values allow objects
with times in the future to be buffered when the difference
to current time or to creation time is not larger than the
given value.</p>
<p>Normally, objects like picks and origins are created after
their actual times and all other objects are spurious and
should be ignored. In case of wrong sensor timing or
faster-than-real-time waveform playbacks, objects may be
generated with actual times (pick time or origin time) in
the future.</p>
<p>If less or equal to 0.0, then all objects created before
time of the object or with object times in the future are
ignored.</p>
</dd></dl>
<div class="admonition note" id="clustersearch">
<p class="admonition-title">Note</p>
<p><strong>clusterSearch.*</strong>
<em>Parameters controlling the cluster search based on phase</em>
<em>picks of configured phase type.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.phaseType">
<span class="sig-name descname"><span class="pre">clusterSearch.phaseType</span></span><a class="headerlink" href="#confval-clusterSearch.phaseType" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">P</span></code></p>
<p>Type: <em>string</em></p>
<p>Phase type of considered picks. Valid types: P or Is.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.minSize">
<span class="sig-name descname"><span class="pre">clusterSearch.minSize</span></span><a class="headerlink" href="#confval-clusterSearch.minSize" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">4</span></code></p>
<p>Type: <em>int</em></p>
<p>Minimum number of core points (picks) to form a cluster.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.maxSize">
<span class="sig-name descname"><span class="pre">clusterSearch.maxSize</span></span><a class="headerlink" href="#confval-clusterSearch.maxSize" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">-1</span></code></p>
<p>Type: <em>int</em></p>
<p>Maximum number of picks in a cluster when stopping
clustering. Eventual clusters may still be larger from core
points. Using values &lt; 0 deactivates the feature.</p>
<p>The parameter is meant to support large-N networks where the
high network density results in very many clusters with high
computational load effectively slowing down the processing
of picks. Using reasonable values such as 10 or 15 will
reduce the number of clusters while maintaining high quality
initial origins.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.maxPickDelay">
<span class="sig-name descname"><span class="pre">clusterSearch.maxPickDelay</span></span><a class="headerlink" href="#confval-clusterSearch.maxPickDelay" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">-1.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed difference between considered picks and cluster reference
time (latest pick time). Optimum values can be derived from
travel times.The cluster search ignores all
picks which exceed the value. Using &quot;-1&quot; enables all picks
regardless of the delay.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.referenceTimeMode">
<span class="sig-name descname"><span class="pre">clusterSearch.referenceTimeMode</span></span><a class="headerlink" href="#confval-clusterSearch.referenceTimeMode" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">LastPick</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">LastPick,MaxPickDelay</span></code></p>
<p>Mode to set the cluster reference time. Read the documentation
for the details. Available modes:</p>
<p>LastPick: The pick time of the last incoming P pick is the
cluster reference time.</p>
<p>MaxPickDelay: Setting the cluster reference time is delayed
until clusterSearch.minSize and association.minPhase picks
are available.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.regionFilter">
<span class="sig-name descname"><span class="pre">clusterSearch.regionFilter</span></span><a class="headerlink" href="#confval-clusterSearch.regionFilter" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:double</em></p>
<p>Cluster only picks which sensor locations are inside
the defined region. The region is defined by latitude,
longitude and a radius in km. By default the region filter
is disabled.</p>
<p>Example: 50.1,12.3,20</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.averageVelocity">
<span class="sig-name descname"><span class="pre">clusterSearch.averageVelocity</span></span><a class="headerlink" href="#confval-clusterSearch.averageVelocity" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">7.0</span></code></p>
<p>Unit: <em>km/s</em></p>
<p>Type: <em>double</em></p>
<p>Average velocity used for distance calculation.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.maxSearchDist">
<span class="sig-name descname"><span class="pre">clusterSearch.maxSearchDist</span></span><a class="headerlink" href="#confval-clusterSearch.maxSearchDist" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">60</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed distance over all core points and
maximum allowed distance for neighborhood search. Both account
for travel-time difference, inter-station distance and the
configured averageVelocity.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.maxOrigins">
<span class="sig-name descname"><span class="pre">clusterSearch.maxOrigins</span></span><a class="headerlink" href="#confval-clusterSearch.maxOrigins" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">128</span></code></p>
<p>Type: <em>uint</em></p>
<p>Maximum allowed origins derived from cluster search. Set this
option to zero to disable the cluster search completely.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.preliminary">
<span class="sig-name descname"><span class="pre">clusterSearch.preliminary</span></span><a class="headerlink" href="#confval-clusterSearch.preliminary" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Send origins based on cluster search as preliminary origins
if the location fails. Otherwise those origins are ignored.
Consider activating &quot;checkOrigins&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-clusterSearch.checkOrigins">
<span class="sig-name descname"><span class="pre">clusterSearch.checkOrigins</span></span><a class="headerlink" href="#confval-clusterSearch.checkOrigins" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Check, if derived origins fulfill the cluster search criteria
anymore. Activating this option may lower the number of events
and suppress fake events.</p>
</dd></dl>
<div class="admonition note" id="association">
<p class="admonition-title">Note</p>
<p><strong>association.*</strong>
<em>Parameters controlling the association of P and S phases to cluster</em>
<em>origins or external origins.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.minPhase">
<span class="sig-name descname"><span class="pre">association.minPhase</span></span><a class="headerlink" href="#confval-association.minPhase" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">4</span></code></p>
<p>Type: <em>int</em></p>
<p>Number picks in cluster origin to be reached for starting to
associate more P and S picks.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.maxDist">
<span class="sig-name descname"><span class="pre">association.maxDist</span></span><a class="headerlink" href="#confval-association.maxDist" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1000.0</span></code></p>
<p>Unit: <em>km</em></p>
<p>Type: <em>double</em></p>
<p>Maximum distance from origin to stations
for associating P and S picks.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.stationConfig">
<span class="sig-name descname"><span class="pre">association.stationConfig</span></span><a class="headerlink" href="#confval-association.stationConfig" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>file</em></p>
<p>The station configuration file contains lines consisting of
network code, station code, weight (0 or 1) and maximum
association distance given in degree. The maximum association
distance is the distance in degrees from the origin up to
which this station may contribute to a new origin. This
parameter overrides the global parameter
&quot;association.maxDist&quot;.
If this distance is 180 deg, this station may contribute to
new origins world-wide. However, if the distance is only 10
degree, the range of this station is limited. This is a helpful
setting in case of mediocre stations in a region where there
are numerous good and reliable stations nearby. The station
will then not pose a risk for locations generated
outside the maximum association distance. The last item found
in the list overrules previous ones.
Network and station codes may be wildcards (*) for
convenience. Example:</p>
<p>* * 1 10</p>
<p>GE * 1 180</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.maxPResidual">
<span class="sig-name descname"><span class="pre">association.maxPResidual</span></span><a class="headerlink" href="#confval-association.maxPResidual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">4.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed difference between measured and predicted arrival
times for associating P phases to origin.
Larger values allow significant correction of initial locations.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.dropReferenceCheck">
<span class="sig-name descname"><span class="pre">association.dropReferenceCheck</span></span><a class="headerlink" href="#confval-association.dropReferenceCheck" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Allow S-type picks without checking for a reference pick.
References to P picks are typically added to S picks by
scautopick but picks from other modules may not have this
feature. When this option is active, the reference pick is
not tested at all. Manual picks are always considered
without a reference check.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.maxSResidual">
<span class="sig-name descname"><span class="pre">association.maxSResidual</span></span><a class="headerlink" href="#confval-association.maxSResidual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">4.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed difference between measured and predicted arrival
time for associating S phases to origins. Larger values allow
significant correction of initial locations.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.maxResidual">
<span class="sig-name descname"><span class="pre">association.maxResidual</span></span><a class="headerlink" href="#confval-association.maxResidual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">2.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum allowed time residuals of picks after association and
relocation. Picks will be removed at exceedence starting with
largest residual and origins will be relocated.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.arrivalCountMinRes">
<span class="sig-name descname"><span class="pre">association.arrivalCountMinRes</span></span><a class="headerlink" href="#confval-association.arrivalCountMinRes" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">-1</span></code></p>
<p>Type: <em>int</em></p>
<p>The number of arrivals of an origin for controlling the
association of more picks. Beyond this number, the minimum
of maxPResidual or maxSResidual and maxResidual for
associating P or S phases, respectively, is tested before
association.</p>
<p>The parameter also speeds up the evaluation of origins with
more arrivals than configured: Instead of
testing residuals of arrivals individually and relocating
thereafter, all arrivals not passing the residual check are
removed in a bulk.</p>
<p>The parameter is meant to support large-N networks where the
high network density results in very many picks and high
computational load, effectively slowing down the quality
check of picks. Setting a reasonable value, e.g., &gt;20 will
only associate the best picks to origins already well
constraint.</p>
<p>Using values &lt;= 0 deactivates the feature.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.tableType">
<span class="sig-name descname"><span class="pre">association.tableType</span></span><a class="headerlink" href="#confval-association.tableType" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">LOCSAT</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">LOCSAT,libtau,homogeneous</span></code></p>
<p>Type of travel-time tables for phase association.
May be different from locator.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.table">
<span class="sig-name descname"><span class="pre">association.table</span></span><a class="headerlink" href="#confval-association.table" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">iasp91</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">iasp91,iasp91_scanloc</span></code></p>
<p>Name of travel-time table used for phase association.
May be different from locator profile. Using a different
table/profile may result in increased runtime.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.zeroWeightProfiles">
<span class="sig-name descname"><span class="pre">association.zeroWeightProfiles</span></span><a class="headerlink" href="#confval-association.zeroWeightProfiles" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>zeroWeight-profile name for associating the configured phases
with zero weight to origins. Multiples profile names may be set
separated by comma. The order of names determines order of
checked phases. Each profile can have different parameters.</p>
</dd></dl>
<div class="admonition note" id="association-zeroweight">
<p class="admonition-title">Note</p>
<p><strong>association.zeroWeight.*</strong>
<em>Zero-weight profiles containing the parameters for associating</em>
<em>phases with zero weight to origins.</em></p>
</div>
<div class="admonition note" id="association-zeroweight-name">
<p class="admonition-title">Note</p>
<p><strong>association.zeroWeight.$name.*</strong>
$name is a placeholder for the name to be used and needs to be added to <code class="xref std std-confval docutils literal notranslate"><span class="pre">zeroWeight.profiles</span></code> to become active.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>zeroWeight.profiles<span class="w"> </span><span class="o">=</span><span class="w"> </span>a,b
association.zeroWeight.a.value1<span class="w"> </span><span class="o">=</span><span class="w"> </span>...
association.zeroWeight.b.value1<span class="w"> </span><span class="o">=</span><span class="w"> </span>...
<span class="c1"># c is not active because it has not been added</span>
<span class="c1"># to the list of zeroWeight.profiles</span>
association.zeroWeight.c.value1<span class="w"> </span><span class="o">=</span><span class="w"> </span>...
</pre></div>
</div>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.zeroWeight.-name.phaseType">
<span class="sig-name descname"><span class="pre">association.zeroWeight.$name.phaseType</span></span><a class="headerlink" href="#confval-association.zeroWeight.-name.phaseType" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>String</em></p>
<p>One phase type to be associated with zero weight.
Examples: PKP or Pdiff.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.zeroWeight.-name.minDistance">
<span class="sig-name descname"><span class="pre">association.zeroWeight.$name.minDistance</span></span><a class="headerlink" href="#confval-association.zeroWeight.-name.minDistance" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">120.0</span></code></p>
<p>Unit: <em>degree</em></p>
<p>Type: <em>double</em></p>
<p>Minimum distance from origin to stations.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-association.zeroWeight.-name.maxResidual">
<span class="sig-name descname"><span class="pre">association.zeroWeight.$name.maxResidual</span></span><a class="headerlink" href="#confval-association.zeroWeight.-name.maxResidual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">5.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Maximum time residual of the associated phase.</p>
</dd></dl>
<div class="admonition note" id="locator">
<p class="admonition-title">Note</p>
<p><strong>locator.*</strong>
<em>Parameters controlling the locator for locating scanloc</em>
<em>origins.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-locator.type">
<span class="sig-name descname"><span class="pre">locator.type</span></span><a class="headerlink" href="#confval-locator.type" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">LOCSAT</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">External,FixedHypocenter,Hypo71,iLoc,LOCSAT,NonLinLoc,Router,StdLoc</span></code></p>
<p>The locator type to be used.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-locator.profile">
<span class="sig-name descname"><span class="pre">locator.profile</span></span><a class="headerlink" href="#confval-locator.profile" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">iasp91</span></code></p>
<p>Type: <em>string</em></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">iasp91,iasp91_scanloc</span></code></p>
<p>The locator profile to be used. Using a different profile/table
for locating and associating may result in increased runtime.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-locator.fixDepth">
<span class="sig-name descname"><span class="pre">locator.fixDepth</span></span><a class="headerlink" href="#confval-locator.fixDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>If enabled, the locator fixes the depth to the configured
default value &quot;defaultDepth&quot; in case that all
previous attempts to relocate fail.
This option may result in many more origins. It
prevents &quot;ignoreDepth&quot; from beeing
effective if &quot;defaultDepth&quot; &lt; &quot;ignoreDepth&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-locator.forceFixDepth">
<span class="sig-name descname"><span class="pre">locator.forceFixDepth</span></span><a class="headerlink" href="#confval-locator.forceFixDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>If enabled, the locator is forced to fix the depth to the
value configured by &quot;defaultDepth&quot;. Free-depth
solutions are thus excluded. Activating this option may be
useful for sources with known depths or in case of sparse
networks.</p>
</dd></dl>
<div class="admonition note" id="eventassociation">
<p class="admonition-title">Note</p>
<p><strong>eventAssociation.*</strong>
<em>Parameters controlling the association of interval scanloc</em>
<em>origins to internal scanloc events.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-eventAssociation.compareAllArrivalTimes">
<span class="sig-name descname"><span class="pre">eventAssociation.compareAllArrivalTimes</span></span><a class="headerlink" href="#confval-eventAssociation.compareAllArrivalTimes" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>This parameter is only used in conjunction with
&quot;eventAssociation.maximumMatchingArrivalTimeDiff&quot;.
If a station has multiple associated arrivals for a
particular event, this flag defines if the time distance
of a new pick to all arrivals must be within
&quot;eventAssociation.maximumMatchingArrivalTimeDiff&quot;
or if one matching arrival is enough.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-eventAssociation.minMatchingArrivals">
<span class="sig-name descname"><span class="pre">eventAssociation.minMatchingArrivals</span></span><a class="headerlink" href="#confval-eventAssociation.minMatchingArrivals" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">3</span></code></p>
<p>Type: <em>int</em></p>
<p>Minimum number of matching picks between two origins to be
associated to the same event.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-eventAssociation.maxMatchingArrivalTimeDiff">
<span class="sig-name descname"><span class="pre">eventAssociation.maxMatchingArrivalTimeDiff</span></span><a class="headerlink" href="#confval-eventAssociation.maxMatchingArrivalTimeDiff" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">-1</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>If this time window in seconds is negative, pickIDs
are compared to find matching arrivals. A non negative
value (including 0) compares pick times regardless
of the pickID. Pass: |pick1.time - pick2.time| &lt;= threshold.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-eventAssociation.maxDist">
<span class="sig-name descname"><span class="pre">eventAssociation.maxDist</span></span><a class="headerlink" href="#confval-eventAssociation.maxDist" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">500.0</span></code></p>
<p>Unit: <em>km</em></p>
<p>Type: <em>double</em></p>
<p>Allowed difference in epicenter between an incoming origin
compared with preferred origins to get associated.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-eventAssociation.maxTimeSpan">
<span class="sig-name descname"><span class="pre">eventAssociation.maxTimeSpan</span></span><a class="headerlink" href="#confval-eventAssociation.maxTimeSpan" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">60.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Associates an origin with an existing event if the origin
time differs not more than 60 seconds unless the
minimumMatchingArrivals criteria matches.</p>
</dd></dl>
<div class="admonition note" id="publication">
<p class="admonition-title">Note</p>
<p><strong>publication.*</strong>
<em>Parameters controlling the publication delay of origin for</em>
<em>internal events to the messaging system. The delay</em>
<em>time, t, is calculated as t = a x N + b where N is the number</em>
<em>of arrivals of the origin. After t seconds, the best origin</em>
<em>is published. The first origin is always published.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-publication.intervalTimeSlope">
<span class="sig-name descname"><span class="pre">publication.intervalTimeSlope</span></span><a class="headerlink" href="#confval-publication.intervalTimeSlope" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Unit: <em>s/count</em></p>
<p>Type: <em>double</em></p>
<p>Parameter &quot;a&quot; in the equation t = a x N + b.</p>
<p>Increasing the value reduces the amount of sent origins.
With the option --ep (playback mode) this value is set to 0.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-publication.intervalTimeIntercept">
<span class="sig-name descname"><span class="pre">publication.intervalTimeIntercept</span></span><a class="headerlink" href="#confval-publication.intervalTimeIntercept" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Parameter &quot;b&quot; in the equation t = a x N + b.</p>
<p>Increasing the value reduces the amount of sent origins.
With the option --ep (playback mode) this value is set to 0.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-publication.wakeUpInterval">
<span class="sig-name descname"><span class="pre">publication.wakeUpInterval</span></span><a class="headerlink" href="#confval-publication.wakeUpInterval" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">5</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>int</em></p>
<p>Integer interval to check the origin buffer for sending
origins if no other origins have been created.</p>
<p>Reducing the value may be required in EEW: it increases the
load on scanloc but allows to send origins more rapidly.</p>
</dd></dl>
<section id="scoremf-plugin">
<span id="scanloc-scoremf"></span><h3>ScoreMF plugin<a class="headerlink" href="#scoremf-plugin" title="Permalink to this heading"></a></h3>
<p>Plugin for computing a score for an origin by the OriginMultiFeature
score processor.</p>
<div class="admonition note" id="score">
<p class="admonition-title">Note</p>
<p><strong>score.*</strong>
<em>Origin score processor “OriginMultiFeature” returning a score</em>
<em>for an origin as a measure of goodness. The score is</em>
<em>then compared against minScore. Requires to configure</em>
<em>the global parameter *plugins</em> with “scoremf” in order to*
<em>load this gempa plugin and to set *minScore</em> and <em>score*</em>
<em>accordingly.</em></p>
</div>
<span class="target" id="score-mf"></span><dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.defaultScore">
<span class="sig-name descname"><span class="pre">score.mf.defaultScore</span></span><a class="headerlink" href="#confval-score.mf.defaultScore" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Type: <em>double</em></p>
<p>The default score returned for an origin that fails
completely or is filtered out by thresholds such as for
depth and RMS.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.strongMotionCodes">
<span class="sig-name descname"><span class="pre">score.mf.strongMotionCodes</span></span><a class="headerlink" href="#confval-score.mf.strongMotionCodes" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">L,N</span></code></p>
<p>Type: <em>list:string</em></p>
<p>List of one-letter instrument codes (2nd letter) in
channel codes identifying strong motion sensors, e.g.,
in HL?, HN?.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.infrasoundCodes">
<span class="sig-name descname"><span class="pre">score.mf.infrasoundCodes</span></span><a class="headerlink" href="#confval-score.mf.infrasoundCodes" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">D</span></code></p>
<p>Type: <em>list:string</em></p>
<p>List of one-letter instrument codes (2nd letter) in
channel codes identifying infrasound sensors, e.g., in
HDF.</p>
</dd></dl>
<span class="target" id="score-mf-weights"></span><dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.p">
<span class="sig-name descname"><span class="pre">score.mf.weights.p</span></span><a class="headerlink" href="#confval-score.mf.weights.p" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0,0.0,0.0</span></code></p>
<p>Type: <em>list:double</em></p>
<p>The weight for number of used P arrival measures.
Assumes only arrival time when exactly 1 value is set.
Use a comma-separated list, wT,wSlo,wBaz, for giving
specific weight to pick time, slowness and back azimuth,
respectively.
Example: 1.0,0.0,0.0 .</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.p0">
<span class="sig-name descname"><span class="pre">score.mf.weights.p0</span></span><a class="headerlink" href="#confval-score.mf.weights.p0" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per unused P pick.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.s">
<span class="sig-name descname"><span class="pre">score.mf.weights.s</span></span><a class="headerlink" href="#confval-score.mf.weights.s" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">2.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per used S pick.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.s0">
<span class="sig-name descname"><span class="pre">score.mf.weights.s0</span></span><a class="headerlink" href="#confval-score.mf.weights.s0" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per unused S pick.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.normalizationDepth">
<span class="sig-name descname"><span class="pre">score.mf.weights.normalizationDepth</span></span><a class="headerlink" href="#confval-score.mf.weights.normalizationDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">650.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Origin depth is normalized to this value for
computing the score contribution. Shallower depths
contribute to larger score.
This is also the maximum allowed depth. Origins with
depth greater then this value get a score equal to
&quot;defaultScore&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.depth">
<span class="sig-name descname"><span class="pre">score.mf.weights.depth</span></span><a class="headerlink" href="#confval-score.mf.weights.depth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight for depth-based quality score.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.normalizationRMS">
<span class="sig-name descname"><span class="pre">score.mf.weights.normalizationRMS</span></span><a class="headerlink" href="#confval-score.mf.weights.normalizationRMS" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.5</span></code></p>
<p>Type: <em>double</em></p>
<p>Origin RMS is normalized to this value for computing
the score contribution. Lower RMS contribute to
larger score.
This is also the maximum allowed RMS. Origins with
residual greater than this value score equal to
&quot;defaultScore&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.residual">
<span class="sig-name descname"><span class="pre">score.mf.weights.residual</span></span><a class="headerlink" href="#confval-score.mf.weights.residual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight for RMS-based quality score.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.gap">
<span class="sig-name descname"><span class="pre">score.mf.weights.gap</span></span><a class="headerlink" href="#confval-score.mf.weights.gap" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight for azimuthal gap score. The smaller the gap
the larger the score.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.manualPick">
<span class="sig-name descname"><span class="pre">score.mf.weights.manualPick</span></span><a class="headerlink" href="#confval-score.mf.weights.manualPick" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per used manual pick.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.strongMotion">
<span class="sig-name descname"><span class="pre">score.mf.weights.strongMotion</span></span><a class="headerlink" href="#confval-score.mf.weights.strongMotion" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per used strong motion pick as defined in
&quot;strongMotionCodes&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.infrasound">
<span class="sig-name descname"><span class="pre">score.mf.weights.infrasound</span></span><a class="headerlink" href="#confval-score.mf.weights.infrasound" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.0</span></code></p>
<p>Type: <em>double</em></p>
<p>Weight per used infrasound pick as defined in
&quot;infrasoundCodes&quot;.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.mf.weights.authors">
<span class="sig-name descname"><span class="pre">score.mf.weights.authors</span></span><a class="headerlink" href="#confval-score.mf.weights.authors" title="Permalink to this definition"></a></dt>
<dd><p>Unit: <em>author:score</em></p>
<p>Type: <em>list:string</em></p>
<p>List of tuple of authors and score contribution.
If an author matches, the corresponding score
contribution is added to the final score.</p>
<p>Example: &quot;scautoloc:1,scanloc:10,ccloc:100&quot;.</p>
</dd></dl>
</section>
<section id="scoresum-plugin">
<span id="scanloc-scoresum"></span><h3>ScoreSum plugin<a class="headerlink" href="#scoresum-plugin" title="Permalink to this heading"></a></h3>
<p>Plugin for scoring origins in scanloc by score processor OriginSum</p>
<div class="admonition note" id="score-sum">
<span id="id45"></span><p class="admonition-title">Note</p>
<p><strong>score.sum.*</strong>
<em>Origin score processor “OriginSum”: Compute origin scores as</em>
<em>weighted averages of number of used</em>
<em>P phases (p), number of unused P phases (p0), number of used</em>
<em>S phases (s), number of unused S phases (s0), origin depth and</em>
<em>residual. The score applies for ranking origins of events. Add</em>
<em>the plugin “scoresum” to the global parameter “plugins” and</em>
<em>“OriginSum” to the scanloc parameter “score” for applying this</em>
<em>score processor.</em></p>
</div>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.p">
<span class="sig-name descname"><span class="pre">score.sum.p</span></span><a class="headerlink" href="#confval-score.sum.p" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>list:double</em></p>
<p>The weight for number of used P arrival measures.
Assumes only arrival time when exactly 1 value is set.
Use a comma-separated list, wT,wSlo,wBaz, for giving
specific weight to pick time, slowness and back azimuth,
respectively.
Example: 1.0,0.0,0.0 .</p>
<p>The usage of slowness and back azimuth depends on locator.
They are not considered by Hypo71, NonLinLoc, StdLoc and
FixedHypocenter.</p>
<p>The parameter is used for Is infrasound phases when
considered in clustering.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.p0">
<span class="sig-name descname"><span class="pre">score.sum.p0</span></span><a class="headerlink" href="#confval-score.sum.p0" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Type: <em>double</em></p>
<p>The weight for number of added but unused P arrivals.</p>
<p>The parameter is used for Is infrasound phases when
considered in clustering.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.s">
<span class="sig-name descname"><span class="pre">score.sum.s</span></span><a class="headerlink" href="#confval-score.sum.s" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">2.0</span></code></p>
<p>Type: <em>list:double</em></p>
<p>The weight for number of used S arrival measures.
Assumes only arrival time when exactly 1 value is set.
Use a comma-separated list, wT,wSlo,wBaz, for giving
specific weight to pick time, slowness and back azimuth,
respectively.
Example: 2.0,0.0,0.0 .</p>
<p>The usage of slowness and back azimuth depends on locator.
They are not considered by Hypo71, NonLinLoc, StdLoc and
FixedHypocenter.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.s0">
<span class="sig-name descname"><span class="pre">score.sum.s0</span></span><a class="headerlink" href="#confval-score.sum.s0" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0.5</span></code></p>
<p>Type: <em>double</em></p>
<p>The weight for number of added but unused S arrivals.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.normalizationDepth">
<span class="sig-name descname"><span class="pre">score.sum.normalizationDepth</span></span><a class="headerlink" href="#confval-score.sum.normalizationDepth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">650.0</span></code></p>
<p>Unit: <em>km</em></p>
<p>Type: <em>double</em></p>
<p>Origin depth is normalized to this value for computing the
score contribution. Shallower depths contribute to larger
score.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.depth">
<span class="sig-name descname"><span class="pre">score.sum.depth</span></span><a class="headerlink" href="#confval-score.sum.depth" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>double</em></p>
<p>The weight of origin depth. Set this value to 0.0 for
scoring origins independent of depth whenever shallow and
deep sources are equally expected.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.normalizationRMS">
<span class="sig-name descname"><span class="pre">score.sum.normalizationRMS</span></span><a class="headerlink" href="#confval-score.sum.normalizationRMS" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.5</span></code></p>
<p>Unit: <em>s</em></p>
<p>Type: <em>double</em></p>
<p>Origin RMS is normalized to this value for computing the
score contribution. Lower RMS contribute to larger score.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.residual">
<span class="sig-name descname"><span class="pre">score.sum.residual</span></span><a class="headerlink" href="#confval-score.sum.residual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">1.0</span></code></p>
<p>Type: <em>double</em></p>
<p>The weight of origin RMS residual.</p>
</dd></dl>
<dl class="std confval">
<dt class="sig sig-object std" id="confval-score.sum.increaseManual">
<span class="sig-name descname"><span class="pre">score.sum.increaseManual</span></span><a class="headerlink" href="#confval-score.sum.increaseManual" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">false</span></code></p>
<p>Type: <em>boolean</em></p>
<p>Increase the weight for manual picks by a factor of 1.001.
This gives preference to manual picks in case
automatic ones co-exist for the same station.</p>
</dd></dl>
</section>
</section>
<section id="command-line-options">
<h2>Command-Line Options<a class="headerlink" href="#command-line-options" title="Permalink to this heading"></a></h2>
<p><strong class="program">scanloc [options]</strong></p>
<section id="generic">
<span id="id46"></span><h3>Generic<a class="headerlink" href="#generic" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-h">
<span id="cmdoption-help"></span><span class="sig-name descname"><span class="pre">-h</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--help</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-h" title="Permalink to this definition"></a></dt>
<dd><p>Show help message.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-V">
<span id="cmdoption-version"></span><span class="sig-name descname"><span class="pre">-V</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--version</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-V" title="Permalink to this definition"></a></dt>
<dd><p>Show version information.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-config-file">
<span class="sig-name descname"><span class="pre">--config-file</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-config-file" title="Permalink to this definition"></a></dt>
<dd><p>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. Example:
scautopick -&gt; scautopick2.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-plugins">
<span class="sig-name descname"><span class="pre">--plugins</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-plugins" title="Permalink to this definition"></a></dt>
<dd><p>Load given plugins.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-D">
<span id="cmdoption-daemon"></span><span class="sig-name descname"><span class="pre">-D</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--daemon</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-D" title="Permalink to this definition"></a></dt>
<dd><p>Run as daemon. This means the application will fork itself
and doesnt need to be started with &amp;.</p>
</dd></dl>
</section>
<section id="verbosity">
<span id="id47"></span><h3>Verbosity<a class="headerlink" href="#verbosity" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-verbosity">
<span class="sig-name descname"><span class="pre">--verbosity</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-verbosity" title="Permalink to this definition"></a></dt>
<dd><p>Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info,
4:debug.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-v">
<span id="cmdoption-v"></span><span class="sig-name descname"><span class="pre">-v</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--v</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-v" title="Permalink to this definition"></a></dt>
<dd><p>Increase verbosity level (may be repeated, eg. -vv).</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-q">
<span id="cmdoption-quiet"></span><span class="sig-name descname"><span class="pre">-q</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--quiet</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-q" title="Permalink to this definition"></a></dt>
<dd><p>Quiet mode: no logging output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-print-component">
<span class="sig-name descname"><span class="pre">--print-component</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-print-component" title="Permalink to this definition"></a></dt>
<dd><p>For each log entry print the component right after the
log level. By default the component output is enabled
for file output but disabled for console output.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-component">
<span class="sig-name descname"><span class="pre">--component</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-component" title="Permalink to this definition"></a></dt>
<dd><p>Limit the logging to a certain component. This option can
be given more than once.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-s">
<span id="cmdoption-syslog"></span><span class="sig-name descname"><span class="pre">-s</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--syslog</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-s" title="Permalink to this definition"></a></dt>
<dd><p>Use syslog logging backend. The output usually goes to
/var/lib/messages.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-l">
<span id="cmdoption-lockfile"></span><span class="sig-name descname"><span class="pre">-l</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--lockfile</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-l" title="Permalink to this definition"></a></dt>
<dd><p>Path to lock file.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-console">
<span class="sig-name descname"><span class="pre">--console</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-console" title="Permalink to this definition"></a></dt>
<dd><p>Send log output to stdout.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-debug">
<span class="sig-name descname"><span class="pre">--debug</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-debug" title="Permalink to this definition"></a></dt>
<dd><p>Execute in debug mode.
Equivalent to --verbosity=4 --console=1 .</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-trace">
<span class="sig-name descname"><span class="pre">--trace</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-trace" title="Permalink to this definition"></a></dt>
<dd><p>Execute in trace mode.
Equivalent to --verbosity=4 --console=1 --print-component=1
--print-context=1 .</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-log-file">
<span class="sig-name descname"><span class="pre">--log-file</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-log-file" title="Permalink to this definition"></a></dt>
<dd><p>Use alternative log file.</p>
</dd></dl>
</section>
<section id="messaging">
<span id="id48"></span><h3>Messaging<a class="headerlink" href="#messaging" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-u">
<span id="cmdoption-user"></span><span class="sig-name descname"><span class="pre">-u</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--user</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-u" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="global.html#confval-connection.username"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.username</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-H">
<span id="cmdoption-host"></span><span class="sig-name descname"><span class="pre">-H</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--host</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-H" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="global.html#confval-connection.server"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.server</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-t">
<span id="cmdoption-timeout"></span><span class="sig-name descname"><span class="pre">-t</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--timeout</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-t" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="global.html#confval-connection.timeout"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.timeout</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-g">
<span id="cmdoption-primary-group"></span><span class="sig-name descname"><span class="pre">-g</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--primary-group</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-g" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="global.html#confval-connection.primaryGroup"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.primaryGroup</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-S">
<span id="cmdoption-subscribe-group"></span><span class="sig-name descname"><span class="pre">-S</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--subscribe-group</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-S" title="Permalink to this definition"></a></dt>
<dd><p>A group to subscribe to.
This option can be given more than once.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-start-stop-msg">
<span class="sig-name descname"><span class="pre">--start-stop-msg</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-start-stop-msg" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">0</span></code></p>
<p>Set sending of a start and a stop message.</p>
</dd></dl>
</section>
<section id="database">
<span id="id49"></span><h3>Database<a class="headerlink" href="#database" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-db-driver-list">
<span class="sig-name descname"><span class="pre">--db-driver-list</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-db-driver-list" title="Permalink to this definition"></a></dt>
<dd><p>List all supported database drivers.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-d">
<span id="cmdoption-database"></span><span class="sig-name descname"><span class="pre">-d</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--database</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-d" title="Permalink to this definition"></a></dt>
<dd><p>The database connection string, format:
<a class="reference external" href="service://user:pwd&#64;host/database">service://user:pwd&#64;host/database</a>.
&quot;service&quot; is the name of the database driver which
can be queried with &quot;--db-driver-list&quot;.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-config-module">
<span class="sig-name descname"><span class="pre">--config-module</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-config-module" title="Permalink to this definition"></a></dt>
<dd><p>The config module to use.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-inventory-db">
<span class="sig-name descname"><span class="pre">--inventory-db</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-inventory-db" title="Permalink to this definition"></a></dt>
<dd><p>Load the inventory from the given database or file, format:
[<a class="reference external" href="service://]location">service://]location</a> .</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-db-disable">
<span class="sig-name descname"><span class="pre">--db-disable</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-db-disable" title="Permalink to this definition"></a></dt>
<dd><p>Do not use the database at all.</p>
</dd></dl>
</section>
<section id="input">
<span id="id50"></span><h3>Input<a class="headerlink" href="#input" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-ep">
<span class="sig-name descname"><span class="pre">--ep</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-ep" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>string</em></p>
<p>Name of input XML file (SCML) with all picks and origins
for offline processing. The database connection is not
received from messaging and must be provided. Results
are sent as XML to stdout.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-timing">
<span class="sig-name descname"><span class="pre">--timing</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-timing" title="Permalink to this definition"></a></dt>
<dd><p>Default: <code class="docutils literal notranslate"><span class="pre">pickTime</span></code></p>
<p>Values: <code class="docutils literal notranslate"><span class="pre">creationTime,pickTime</span></code></p>
<p>Timing reference in offline processing with --ep: Use
pickTime and creationTime for sorting picks according to
pick time and creation time, respectively. pickTime is
assumed if no timing is specified. Note: In real-time
processing picks are treated as they arrive corresponding to
creationTime and this option is irrelevant.</p>
</dd></dl>
</section>
<section id="id51">
<span id="id52"></span><h3>Buffer<a class="headerlink" href="#id51" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-allow-rejected-picks">
<span class="sig-name descname"><span class="pre">--allow-rejected-picks</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-allow-rejected-picks" title="Permalink to this definition"></a></dt>
<dd><p>Allow processing of picks with evaluation status rejected.
Otherwise these picks are ignored and not buffered.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-drop-reference-check">
<span class="sig-name descname"><span class="pre">--drop-reference-check</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-drop-reference-check" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-association.dropReferenceCheck"><code class="xref std std-confval docutils literal notranslate"><span class="pre">association.dropReferenceCheck</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-author-whitelist">
<span class="sig-name descname"><span class="pre">--author-whitelist</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-author-whitelist" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>list:string</em></p>
<p>Only consider picks and origins created by the given
author(s). Separate multiple authors by
comma. Wildcards are supported.Empty strings
allow all authors. Manual origins are treated regardless of
the author as defined by
&quot;buffer.ignoreManualOrigins&quot;. The option allows
operating scanloc based on picks and origins from a specific
module, e.g., in a pipeline.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-future-time-delta">
<span class="sig-name descname"><span class="pre">--future-time-delta</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-future-time-delta" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-buffer.futureTimeDelta"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.futureTimeDelta</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-origin-keep">
<span class="sig-name descname"><span class="pre">--origin-keep</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-origin-keep" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-buffer.originKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.originKeep</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-pick-keep">
<span class="sig-name descname"><span class="pre">--pick-keep</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-pick-keep" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-buffer.pickKeep"><code class="xref std std-confval docutils literal notranslate"><span class="pre">buffer.pickKeep</span></code></a>.</p>
</dd></dl>
</section>
<section id="id53">
<span id="id54"></span><h3>Locator<a class="headerlink" href="#id53" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-locator-type">
<span class="sig-name descname"><span class="pre">--locator-type</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-locator-type" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-locator.type"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.type</span></code></a>.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-locator-profile">
<span class="sig-name descname"><span class="pre">--locator-profile</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-locator-profile" title="Permalink to this definition"></a></dt>
<dd><p>Overrides configuration parameter <a class="reference internal" href="#confval-locator.profile"><code class="xref std std-confval docutils literal notranslate"><span class="pre">locator.profile</span></code></a>.</p>
<p>Type: <em>string</em></p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-locator-list">
<span class="sig-name descname"><span class="pre">--locator-list</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-locator-list" title="Permalink to this definition"></a></dt>
<dd><p>List all registered locators.</p>
</dd></dl>
</section>
<section id="output">
<span id="id55"></span><h3>Output<a class="headerlink" href="#output" title="Permalink to this heading"></a></h3>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-final-only">
<span class="sig-name descname"><span class="pre">--final-only</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-final-only" title="Permalink to this definition"></a></dt>
<dd><p>Limit result set to final origins only. This option is
available for non-real-time (--ep) processing only.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-dump-origins">
<span class="sig-name descname"><span class="pre">--dump-origins</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-dump-origins" title="Permalink to this definition"></a></dt>
<dd><p>Dont publish origins, write them to stdout. Useful for
tuning.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-cluster-search-log-file">
<span class="sig-name descname"><span class="pre">--cluster-search-log-file</span></span><span class="sig-prename descclassname"> <span class="pre">arg</span></span><a class="headerlink" href="#cmdoption-cluster-search-log-file" title="Permalink to this definition"></a></dt>
<dd><p>Type: <em>string</em></p>
<p>File name to output detailed cluster search information.
Useful for tuning.</p>
</dd></dl>
<dl class="std option">
<dt class="sig sig-object std" id="cmdoption-f">
<span id="cmdoption-formatted"></span><span class="sig-name descname"><span class="pre">-f</span></span><span class="sig-prename descclassname"></span><span class="sig-prename descclassname"><span class="pre">,</span> </span><span class="sig-name descname"><span class="pre">--formatted</span></span><span class="sig-prename descclassname"></span><a class="headerlink" href="#cmdoption-f" title="Permalink to this definition"></a></dt>
<dd><p>Use formatted XML output along with --ep. Otherwise XML
is unformatted.</p>
</dd></dl>
</section>
</section>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">scanloc</a><ul>
<li><a class="reference internal" href="#description">Description</a><ul>
<li><a class="reference internal" href="#low-threshold-monitoring">Low-threshold monitoring</a></li>
<li><a class="reference internal" href="#teleseismic-events">Teleseismic events</a></li>
<li><a class="reference internal" href="#travel-time-tables">Travel-time tables</a></li>
<li><a class="reference internal" href="#s-phases">S phases</a></li>
<li><a class="reference internal" href="#array-measurements">Array measurements</a></li>
<li><a class="reference internal" href="#auxiliary-tools">Auxiliary tools</a></li>
</ul>
</li>
<li><a class="reference internal" href="#workflow">Workflow</a><ul>
<li><a class="reference internal" href="#pick-and-origin-buffering">Pick and origin buffering</a></li>
<li><a class="reference internal" href="#clustering">Clustering</a><ul>
<li><a class="reference internal" href="#limiting-in-time">Limiting in time</a></li>
<li><a class="reference internal" href="#limiting-in-space">Limiting in space</a></li>
<li><a class="reference internal" href="#cluster-splitting">Cluster splitting</a></li>
<li><a class="reference internal" href="#tuning-and-optimization">Tuning and optimization</a></li>
<li><a class="reference internal" href="#locating">Locating</a></li>
</ul>
</li>
<li><a class="reference internal" href="#phase-association">Phase Association</a></li>
<li><a class="reference internal" href="#processing-external-origins">Processing external origins</a></li>
<li><a class="reference internal" href="#status-of-origins">Status of origins</a></li>
<li><a class="reference internal" href="#sending-of-origins">Sending of origins</a></li>
<li><a class="reference internal" href="#performance-considerations">Performance considerations</a></li>
</ul>
</li>
<li><a class="reference internal" href="#internal-origins-and-events">Internal Origins and Events</a></li>
<li><a class="reference internal" href="#locating-origins">Locating Origins</a></li>
<li><a class="reference internal" href="#scoring-origins">Scoring Origins</a><ul>
<li><a class="reference internal" href="#originsum">OriginSum</a><ul>
<li><a class="reference internal" href="#methodology">Methodology</a></li>
<li><a class="reference internal" href="#configuration">Configuration</a></li>
</ul>
</li>
<li><a class="reference internal" href="#originmultifeature">OriginMultiFeature</a><ul>
<li><a class="reference internal" href="#id19">Methodology</a></li>
<li><a class="reference internal" href="#id20">Configuration</a></li>
</ul>
</li>
<li><a class="reference internal" href="#plugin-development">Plugin development</a></li>
</ul>
</li>
<li><a class="reference internal" href="#pipeline-systems">Pipeline Systems</a></li>
<li><a class="reference internal" href="#redundant-systems">Redundant Systems</a></li>
<li><a class="reference internal" href="#association-of-teleseismic-phases">Association of Teleseismic Phases</a></li>
<li><a class="reference internal" href="#real-time-applications">Real-Time Applications</a></li>
<li><a class="reference internal" href="#playbacks">Playbacks</a><ul>
<li><a class="reference internal" href="#real-time-playbacks">Real-time playbacks</a></li>
<li><a class="reference internal" href="#non-real-time-playbacks">Non-real-time playbacks</a></li>
</ul>
</li>
<li><a class="reference internal" href="#module-configuration">Module Configuration</a><ul>
<li><a class="reference internal" href="#scoremf-plugin">ScoreMF plugin</a></li>
<li><a class="reference internal" href="#scoresum-plugin">ScoreSum plugin</a></li>
</ul>
</li>
<li><a class="reference internal" href="#command-line-options">Command-Line Options</a><ul>
<li><a class="reference internal" href="#generic">Generic</a></li>
<li><a class="reference internal" href="#verbosity">Verbosity</a></li>
<li><a class="reference internal" href="#messaging">Messaging</a></li>
<li><a class="reference internal" href="#database">Database</a></li>
<li><a class="reference internal" href="#input">Input</a></li>
<li><a class="reference internal" href="#id51">Buffer</a></li>
<li><a class="reference internal" href="#id53">Locator</a></li>
<li><a class="reference internal" href="#output">Output</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="../base/introduction.html"
title="previous chapter">Introduction</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="../base/glossary.html"
title="next chapter">Glossary</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/apps/scanloc.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.281#4efc2c878</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2014, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>