[seiscomp, scanloc] Install, add .gitignore
This commit is contained in:
960
share/doc/seiscomp/html/base/concepts/configuration.html
Normal file
960
share/doc/seiscomp/html/base/concepts/configuration.html
Normal file
@ -0,0 +1,960 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Configuration — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Magnitudes" href="magnitudes.html" />
|
||||
<link rel="prev" title="Inventory" href="inventory.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="magnitudes.html" title="Magnitudes"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="inventory.html" title="Inventory"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="configuration">
|
||||
<span id="concepts-configuration"></span><h1>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter describes the configuration of a processing system and how all
|
||||
the pieces gear into each other. It will cover module specific
|
||||
configuration, inventory (station metadata) and module station bindings.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The <cite>SeisComP</cite> framework defines a common schema to read configuration parameters.
|
||||
This schema is used by all <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">SeisComP modules</span></a> with names
|
||||
starting with <strong>sc</strong>, e.g. <cite>scautopick</cite>. Other modules might be available
|
||||
as well such as third party modules which use other naming conventions.</p>
|
||||
<p>A way to discover a module that uses the <cite>SeisComP</cite> configuration schema
|
||||
is to call it with <code class="docutils literal notranslate"><span class="pre">--help</span></code>. The first lines of a typical output look like
|
||||
this:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>Generic:
|
||||
<span class="w"> </span>-h<span class="w"> </span><span class="o">[</span><span class="w"> </span>--help<span class="w"> </span><span class="o">]</span><span class="w"> </span>Produce<span class="w"> </span><span class="nb">help</span><span class="w"> </span>message
|
||||
<span class="w"> </span>-V<span class="w"> </span><span class="o">[</span><span class="w"> </span>--version<span class="w"> </span><span class="o">]</span><span class="w"> </span>Show<span class="w"> </span>version<span class="w"> </span>information
|
||||
<span class="w"> </span>--config-file<span class="w"> </span>arg<span class="w"> </span>Use<span class="w"> </span>alternative<span class="w"> </span>configuration<span class="w"> </span>file
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The reason for that is that there are also other modules which do not
|
||||
use the <cite>SeisComP</cite> core and client libraries such Seedlink plugins, Seedlink
|
||||
itself and some others which are not part of the trunk source package. Those
|
||||
modules need translators to generate their native configuration when
|
||||
the configuration is updated (<code class="docutils literal notranslate"><span class="pre">seiscomp</span> <span class="pre">update-config</span></code>).</p>
|
||||
<p>Again, the two indicators that a module uses the following configuration
|
||||
schema are:</p>
|
||||
<ul class="simple">
|
||||
<li><p>The module name is prefixed with <strong>sc</strong>, e.g. <em>scautopick</em></p></li>
|
||||
<li><p>The output of <code class="docutils literal notranslate"><span class="pre">--help</span></code> looks like the text fragment above</p></li>
|
||||
</ul>
|
||||
<p>A typical configuration requires the following steps:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Generation and import of an inventory (station meta data): Read the concept
|
||||
section <a class="reference internal" href="inventory.html#concepts-inventory"><span class="std std-ref">Inventory</span></a>,</p></li>
|
||||
<li><p><a class="reference internal" href="#global-modules-config"><span class="std std-ref">Configuration of modules</span></a>,</p></li>
|
||||
<li><p><a class="reference internal" href="#global-bindings-config"><span class="std std-ref">Configuration of bindings</span></a>.</p></li>
|
||||
</ol>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p><a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">Standalone modules</span></a> can also run without inventory.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="configuration-of-modules">
|
||||
<span id="concepts-configuration-configs"></span><h2>Configuration of Modules<a class="headerlink" href="#configuration-of-modules" title="Permalink to this heading">¶</a></h2>
|
||||
<p><cite>SeisComP</cite> modules provide 2 types of configurations:</p>
|
||||
<ul>
|
||||
<li><p><a class="reference internal" href="#global-modules-config"><span class="std std-ref">Module configurations</span></a> define module control
|
||||
parameters which are equally applied to all operations on waveforms, event
|
||||
parameters, graphical user interfaces, etc.</p>
|
||||
<p><strong>All</strong> <a class="reference internal" href="modules.html#concepts-modules-daemon"><span class="std std-ref">daemon modules</span></a> and <strong>some</strong>
|
||||
<a class="reference internal" href="modules.html#concepts-modules-commandline"><span class="std std-ref">command-line tools</span></a> provide module
|
||||
configurations. <em>Module configurations are overridden by bindings
|
||||
configurations.</em></p>
|
||||
</li>
|
||||
<li><p><a class="reference internal" href="#global-bindings-config"><span class="std std-ref">Binding configurations</span></a> define control
|
||||
parameters per station and even stream. They are used for station- and even
|
||||
stream-specific definitions, e.g. the data acquisition from a particular
|
||||
station or server using <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a> or the phase detection by
|
||||
<a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a>.</p>
|
||||
<p>In contrast to module configuration, <strong>only some</strong>
|
||||
<a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">daemon modules</span></a> and a very few
|
||||
<a class="reference internal" href="../glossary.html#term-GUI"><span class="xref std std-term">GUI modules</span></a> provide bindings. <em>Binding configurations override
|
||||
module configurations.</em></p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Whether or not a module considers bindings configurations can be read in the
|
||||
module configuration panel of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.</p>
|
||||
<div class="two column layout"><figure class="align-default" id="id3">
|
||||
<img alt="scconfig: no bindings configurations" src="../../_images/scconfig_no_bindings.png" />
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scconfig modules panel indicating that no bindings can be configured.</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<figure class="align-default" id="id4">
|
||||
<img alt="scconfig: no bindings configurations" src="../../_images/scconfig_has_bindings.png" />
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scconfig modules panel indicating that bindings can be configured.</span><a class="headerlink" href="#id4" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</div><section id="module-configuration">
|
||||
<span id="global-modules-config"></span><h3>Module configuration<a class="headerlink" href="#module-configuration" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Configurations for modules are saved as <code class="file docutils literal notranslate"><span class="pre">*.cfg</span></code> files. There are three
|
||||
directories involved where configuration files can be stored:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/defaults/</span></code>: This directory ships with the distribution
|
||||
of <cite>SeisComP</cite> and should never be touched. All contained files might be
|
||||
overwritten with the next software update.</p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/</span></code>: This directory will never be populated by a software
|
||||
update and it is save to store global module configuration files there.
|
||||
Depending on the system setup this directory might be read-only to users.
|
||||
It is called the system configuration directory.</p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$HOME/.seiscomp/</span></code>: This directory is in the user’s home directory and
|
||||
it is meant to provide configurations which override default and system
|
||||
configurations.
|
||||
It is called the user configuration directory.</p></li>
|
||||
</ol>
|
||||
<p>Furthermore there are two file names involved in each directory:
|
||||
<code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code> and <code class="file docutils literal notranslate"><span class="pre">[module].cfg</span></code>. The file <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code>
|
||||
will be loaded by all modules and it is a good place to store common
|
||||
parameters such as messaging connections or logging configurations.</p>
|
||||
<p>The three directories and two files result in 6 locations to read all of a
|
||||
module’s configuration parameters:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/defaults/global.cfg</span></code></p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/defaults/[module].cfg</span></code></p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/global.cfg</span></code></p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/[module].cfg</span></code></p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$HOME/.seiscomp/global.cfg</span></code></p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$HOME/.seiscomp/[module].cfg</span></code></p></li>
|
||||
</ol>
|
||||
<p>The order of the configuration files above also represents the order of loading.
|
||||
Parameters can be available in any of these files. The last occurrence of a
|
||||
parameter takes priority such as configurations in <code class="file docutils literal notranslate"><span class="pre">$HOME/.seiscomp/</span></code>.</p>
|
||||
<section id="adjusting">
|
||||
<h4>Adjusting<a class="headerlink" href="#adjusting" title="Permalink to this heading">¶</a></h4>
|
||||
<p><a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> provides a user-friendly graphical interface to adjust the
|
||||
global and the module configuration parameters.</p>
|
||||
<figure class="align-center" id="id5">
|
||||
<a class="reference internal image-reference" href="../../_images/scconfig_config_modules.png"><img alt="scconfig: module configuration" src="../../_images/scconfig_config_modules.png" style="width: 18cm;" /></a>
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scconfig modules module configuration panel.</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>Alternatively, you may adjust the module configuration files corresponding to
|
||||
a module. An easy way of getting started is to copy the default configuration
|
||||
file in <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/defaults/</span></code> to <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/</span></code> and
|
||||
adjust it there.</p>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>Do not adjust any parameter in the default configuration files located in
|
||||
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/defaults/</span></code> as they will be overwritten by future
|
||||
software updates.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="application">
|
||||
<h4>Application<a class="headerlink" href="#application" title="Permalink to this heading">¶</a></h4>
|
||||
<p>Module configurations are usually read when starting a module and cannot be
|
||||
changed during runtime. For applying any change on module configuration</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Save the configuration,</p></li>
|
||||
<li><p>Restart or execute all affected modules.</p></li>
|
||||
</ol>
|
||||
<p>In addition to a permanent configuration you may temporally override any
|
||||
configuration parameter when executing a module. Provide the full structure of
|
||||
the configuration parameter on the command line along with “=” between parameter
|
||||
and value. This will identify the parameter as a configuration parameter
|
||||
overridden on the command line. E.g. refer to the codes parameter of
|
||||
<a class="reference internal" href="../../apps/scrttv.html#scrttv"><span class="std std-ref">scrttv</span></a> in the streams section as <cite>codes.streams</cite>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scrttv<span class="w"> </span>--streams.codes<span class="o">=</span><span class="s2">"GR.*.*.HH?"</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="bindings-configuration">
|
||||
<span id="global-bindings-config"></span><h3>Bindings configuration<a class="headerlink" href="#bindings-configuration" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Bindings configure parameters specific to stations and for a certain module.
|
||||
A station might require a custom set of parameters for e.g. data acquisition from
|
||||
a remote data logger or server, for processing or
|
||||
displaying. <cite>SeisComP</cite> design is that bindings will be stored
|
||||
in the database. All modules requiring this information read them from the
|
||||
database. In this way consistent inventory and its bindings will be distributed
|
||||
to all modules running locally or on remote computers.</p>
|
||||
<div class="admonition hint">
|
||||
<p class="admonition-title">Hint</p>
|
||||
<p>Bindings can be conveniently configured in the Bindings panel of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.
|
||||
Read the section <a class="reference internal" href="../../apps/scconfig.html#scconfig-bindings"><span class="std std-ref">Bindings panel</span></a> for instructions.</p>
|
||||
</div>
|
||||
<figure class="align-center" id="id6">
|
||||
<span id="config-fig-binding"></span><img alt="../../_images/binding.png" src="../../_images/binding.png" />
|
||||
<figcaption>
|
||||
<p><span class="caption-text">Binding</span><a class="headerlink" href="#id6" title="Permalink to this image">¶</a></p>
|
||||
<div class="legend">
|
||||
<p>A binding holds the configuration how a station is used in a module.</p>
|
||||
</div>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>Parameters defined in bindings override parameters in module configurations.
|
||||
Bindings configurations are saved as stations bindings or as bindings profiles with
|
||||
given names:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p><strong>Station binding parameters:</strong> <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/[module]/station_NET_STA</span></code>
|
||||
is used only be one station NET.STA.</p></li>
|
||||
<li><p><strong>Binding profile parameters:</strong> <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/[module]/profile_[name]</span></code>
|
||||
can be used by many stations. Then any update of this file applies to all stations
|
||||
bound to this profile.</p></li>
|
||||
</ol>
|
||||
<p>Like in this list, the actual binding parameters for each module are
|
||||
expected in either <code class="file docutils literal notranslate"><span class="pre">etc/key/$MODULE/station_$NET_$STA</span></code> or
|
||||
<code class="file docutils literal notranslate"><span class="pre">etc/key/$MODULE/profile_$PROFILE</span></code>. That depends if a profile should
|
||||
be used or not. If the station key file registers a module with a colon
|
||||
following a name then this name is the profile name. If just a module is given
|
||||
then the station binding file will be read.</p>
|
||||
<p>The bindings themselves are links from the module to the station. They are written
|
||||
into key files, e.g.</p>
|
||||
<ul class="simple">
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/station_NET_STA</span></code></p></li>
|
||||
</ul>
|
||||
<p>Example of bindings profiles:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># Binding references</span>
|
||||
<span class="na">global</span><span class="o">:</span><span class="s">__HH</span>
|
||||
<span class="na">scautopick</span><span class="o">:</span><span class="s">default</span>
|
||||
<span class="na">seedlink</span><span class="o">:</span><span class="s">geofon</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Example of bindings profiles and a station binding for slarchive:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># Binding references</span>
|
||||
<span class="na">global</span><span class="o">:</span><span class="s">__HH</span>
|
||||
<span class="na">scautopick</span><span class="o">:</span><span class="s">default</span>
|
||||
<span class="na">seedlink</span><span class="o">:</span><span class="s">geofon</span>
|
||||
<span class="na">slarchive</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The key files are named like <code class="file docutils literal notranslate"><span class="pre">station_$NET_$STA</span></code>, e.g. <code class="file docutils literal notranslate"><span class="pre">station_GE_MORC</span></code>.
|
||||
The names within the key files define for which modules the station registers. In the
|
||||
above example it is the <strong>global</strong>, <strong>scautopick</strong>, <strong>seedlink</strong> and slarchive.</p>
|
||||
<p>To list all modules a particular station is configured for is very simple by printing the content
|
||||
of the station key file:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>cat<span class="w"> </span>etc/key/station_GE_MORC
|
||||
seedlink:geofon
|
||||
global:BH
|
||||
scautopick
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Another way is a bit more complicated but at least all information is
|
||||
there. To show all stations configured for SeedLink could be done this way:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="k">for</span><span class="w"> </span>i<span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="sb">`</span>find<span class="w"> </span>etc/key<span class="w"> </span>-type<span class="w"> </span>f<span class="w"> </span>-maxdepth<span class="w"> </span><span class="m">1</span><span class="w"> </span>-name<span class="w"> </span><span class="s2">"station_*_*"</span><span class="sb">`</span><span class="p">;</span><span class="w"> </span><span class="k">do</span>
|
||||
><span class="w"> </span>egrep<span class="w"> </span>-q<span class="w"> </span><span class="s1">'^seedlink(:.*){0,1}$'</span><span class="w"> </span><span class="nv">$i</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="nv">$i</span><span class="p">;</span>
|
||||
><span class="w"> </span><span class="k">done</span>
|
||||
etc/key/station_GE_MORC
|
||||
etc/key/station_GE_UGM
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Modules usually read the bindings configuration from the database but not from files.
|
||||
Therefore, the bindings are stored in the database when executing</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>update-config
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The database tables involved are <code class="docutils literal notranslate"><span class="pre">ConfigModule</span></code>, <code class="docutils literal notranslate"><span class="pre">ConfigStation</span></code>, <code class="docutils literal notranslate"><span class="pre">Setup</span></code>,
|
||||
<code class="docutils literal notranslate"><span class="pre">ParameterSet</span></code> and <code class="docutils literal notranslate"><span class="pre">Parameter</span></code>.</p>
|
||||
<figure class="align-center" id="id7">
|
||||
<span id="config-fig-configdb-schema"></span><img alt="../../_images/configdb-schema.png" src="../../_images/configdb-schema.png" />
|
||||
<figcaption>
|
||||
<p><span class="caption-text">Configuration database schema</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>To illustrate the contents of the objects, the XML representation
|
||||
is used below.</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Config></span>
|
||||
<span class="w"> </span><span class="nt"><module</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Config/trunk"</span><span class="w"> </span><span class="na">name=</span><span class="s">"trunk"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span>...
|
||||
<span class="w"> </span><span class="nt"></module></span>
|
||||
<span class="nt"></Config></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>A ConfigModule with publicID <em>Config/trunk</em> is created with name <em>trunk</em>. This
|
||||
ConfigModule is managed by the global initialization script (<code class="file docutils literal notranslate"><span class="pre">etc/init/trunk.py</span></code>)
|
||||
and will be synchronized with configured bindings of all trunk modules. The
|
||||
ConfigModule trunk is the one that is actually used by all configurations unless
|
||||
configured otherwise with:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scapp<span class="w"> </span>--config-module<span class="w"> </span><span class="nb">test</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Here <strong class="program">scapp</strong> would read ConfigModule <em>test</em>. Because a ConfigModule <em>test</em>
|
||||
is not managed by <strong class="program">seiscomp update-config</strong> it is up to the user to create
|
||||
it.</p>
|
||||
<p>For each station that has at least one binding, a ConfigStation object is
|
||||
attached to the ConfigModule:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Config></span>
|
||||
<span class="w"> </span><span class="nt"><module</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Config/trunk"</span><span class="w"> </span><span class="na">name=</span><span class="s">"trunk"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><station</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Config/trunk/GE/UGM"</span>
|
||||
<span class="w"> </span><span class="na">networkCode=</span><span class="s">"GE"</span><span class="w"> </span><span class="na">stationCode=</span><span class="s">"UGM"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span>...
|
||||
<span class="w"> </span><span class="nt"></station></span>
|
||||
<span class="w"> </span><span class="nt"></module></span>
|
||||
<span class="nt"></Config></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>and finally one Setup per module:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Config></span>
|
||||
<span class="w"> </span><span class="nt"><module</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Config/trunk"</span><span class="w"> </span><span class="na">name=</span><span class="s">"trunk"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><station</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Config/trunk/GE/UGM"</span>
|
||||
<span class="w"> </span><span class="na">networkCode=</span><span class="s">"GE"</span><span class="w"> </span><span class="na">stationCode=</span><span class="s">"UGM"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><setup</span><span class="w"> </span><span class="na">name=</span><span class="s">"default"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><parameterSetID></span>
|
||||
<span class="w"> </span>ParameterSet/trunk/Station/GE/UGM/default
|
||||
<span class="w"> </span><span class="nt"></parameterSetID></span>
|
||||
<span class="w"> </span><span class="nt"></setup></span>
|
||||
<span class="w"> </span><span class="nt"><setup</span><span class="w"> </span><span class="na">name=</span><span class="s">"scautopick"</span><span class="w"> </span><span class="na">enabled=</span><span class="s">"true"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><parameterSetID></span>
|
||||
<span class="w"> </span>ParameterSet/trunk/Station/GE/UGM/scautopick
|
||||
<span class="w"> </span><span class="nt"></parameterSetID></span>
|
||||
<span class="w"> </span><span class="nt"></setup></span>
|
||||
<span class="w"> </span><span class="nt"></station></span>
|
||||
<span class="w"> </span><span class="nt"></module></span>
|
||||
<span class="nt"></Config></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Here two setups have been created: <em>default</em> (which is a special case for
|
||||
module <em>global</em> to be backwards compatible) and <em>scautopick</em> where each
|
||||
refers to a ParameterSet by its publicID. The next XML fragment shows
|
||||
the ParameterSet referred by the scautopick setup of station GE.UGM:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Config></span>
|
||||
<span class="w"> </span><span class="nt"><parameterSet</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"ParameterSet/trunk/Station/GE/UGM/scautopick"</span>
|
||||
<span class="w"> </span><span class="na">created=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><baseID></span>ParameterSet/trunk/Station/GE/UGM/default<span class="nt"></baseID></span>
|
||||
<span class="w"> </span><span class="nt"><moduleID></span>Config/trunk<span class="nt"></moduleID></span>
|
||||
<span class="w"> </span><span class="nt"><parameter</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><name></span>timeCorr<span class="nt"></name></span>
|
||||
<span class="w"> </span><span class="nt"><value></span>-0.8<span class="nt"></value></span>
|
||||
<span class="w"> </span><span class="nt"></parameter></span>
|
||||
<span class="w"> </span><span class="nt"><parameter</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><name></span>detecFilter<span class="nt"></name></span>
|
||||
<span class="w"> </span><span class="nt"><value></span>
|
||||
<span class="w"> </span>RMHP(10)<span class="ni">&gt;&gt;</span>ITAPER(30)<span class="ni">&gt;&gt;</span>BW(4,0.7,2)<span class="ni">&gt;&gt;</span>STALTA(2,80)
|
||||
<span class="w"> </span><span class="nt"></value></span>
|
||||
<span class="w"> </span><span class="nt"></parameter></span>
|
||||
<span class="w"> </span><span class="nt"><parameter</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><name></span>trigOff<span class="nt"></name></span>
|
||||
<span class="w"> </span><span class="nt"><value></span>1.5<span class="nt"></value></span>
|
||||
<span class="w"> </span><span class="nt"></parameter></span>
|
||||
<span class="w"> </span><span class="nt"><parameter</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><name></span>trigOn<span class="nt"></name></span>
|
||||
<span class="w"> </span><span class="nt"><value></span>3<span class="nt"></value></span>
|
||||
<span class="w"> </span><span class="nt"></parameter></span>
|
||||
<span class="w"> </span><span class="nt"></parameterSet></span>
|
||||
<span class="nt"></Config></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The mapping to the binding configuration files is 1:1. Each parameter in
|
||||
the configuration file is exactly one parameter in the database and their
|
||||
names are matching exactly.</p>
|
||||
<p>The concept of global bindings which are specialized for each module is
|
||||
reflected by the <em>baseID</em> of the ParameterSet which points to setup <em>default</em>
|
||||
of station GE.UGM:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="nt"><Config></span>
|
||||
<span class="w"> </span><span class="nt"><parameterSet</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"ParameterSet/trunk/Station/GE/UGM/default"</span>
|
||||
<span class="w"> </span><span class="na">created=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><moduleID></span>Config/trunk<span class="nt"></moduleID></span>
|
||||
<span class="w"> </span><span class="nt"><parameter</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"..."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><name></span>detecStream<span class="nt"></name></span>
|
||||
<span class="w"> </span><span class="nt"><value></span>BH<span class="nt"></value></span>
|
||||
<span class="w"> </span><span class="nt"></parameter></span>
|
||||
<span class="w"> </span><span class="nt"></parameterSet></span>
|
||||
<span class="nt"></Config></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This ends up with a final configuration for scautopick and station GE.UGM:</p>
|
||||
<table class="docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Name</p></th>
|
||||
<th class="head"><p>Value</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>detecStream</p></td>
|
||||
<td><p>BH</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>timeCorr</p></td>
|
||||
<td><p>-0.8</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>detecFilter</p></td>
|
||||
<td><p>RMHP(10)>>ITAPER(30)>>BW(4,0.7,2)>>STALTA(2,80)</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>trigOff</p></td>
|
||||
<td><p>1.5</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>trigOn</p></td>
|
||||
<td><p>3</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>which is the concatenation of the two files <code class="file docutils literal notranslate"><span class="pre">etc/key/global/station_GE_UGM</span></code>
|
||||
and <code class="file docutils literal notranslate"><span class="pre">etc/key/scautopick/station_GE_UGM</span></code>. The filter grammar is explained in
|
||||
<a class="reference internal" href="../filter-grammar.html#filter-grammar"><span class="std std-ref">filter grammar section</span></a>.</p>
|
||||
<p>The <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code> directory is only used to ease the configuration of bindings.
|
||||
They are finally transferred to the database or converted to other
|
||||
representations a module might require to access them. The directory <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code> is meant
|
||||
for backup and used for copying bindings from one computer to another.</p>
|
||||
<section id="id1">
|
||||
<h4>Adjusting<a class="headerlink" href="#id1" title="Permalink to this heading">¶</a></h4>
|
||||
<p><a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> provides a graphical interface to adjust the global and the module
|
||||
bindings parameters and to create the bindings. It populates the <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code>
|
||||
directory and it takes care that they synchronize with the database when processing
|
||||
<em>Update configuration</em> in the <em>System</em> panel.</p>
|
||||
<figure class="align-center" id="id8">
|
||||
<a class="reference internal image-reference" href="../../_images/scconfig_config_bindings.png"><img alt="scconfig: bindings configuration" src="../../_images/scconfig_config_bindings.png" style="width: 18cm;" /></a>
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scconfig modules bindings configuration panel.</span><a class="headerlink" href="#id8" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>Alternatively, you may manually generate the binding parameter file
|
||||
<code class="file docutils literal notranslate"><span class="pre">etc/key/global/station_GE_UGM</span></code> and
|
||||
<code class="file docutils literal notranslate"><span class="pre">etc/key/scautopick/station_GE_UGM</span></code> and add the binding to the key file
|
||||
corresponding to the station, e.g.,
|
||||
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/station_GE_UGM</span></code>.´</p>
|
||||
</section>
|
||||
<section id="seiscomp-shell">
|
||||
<h4>SeisComP shell<a class="headerlink" href="#seiscomp-shell" title="Permalink to this heading">¶</a></h4>
|
||||
<p>Instead of creating bindings in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> or by adjusting key files
|
||||
manually you may assign binding profiles to stations or networks or remove them
|
||||
using the <cite>SeisComP</cite> shell which is a specific shell:</p>
|
||||
<ol class="arabic">
|
||||
<li><p>Start the <cite>SeisComP</cite> shell:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>shell
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>Issue a shell command. Examples:</p>
|
||||
<ul>
|
||||
<li><p>Read the help of the new shell:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="o">================================================================================</span>
|
||||
SeisComP<span class="w"> </span><span class="nv">shell</span>
|
||||
<span class="o">================================================================================</span>
|
||||
|
||||
Welcome<span class="w"> </span>to<span class="w"> </span>the<span class="w"> </span>SeisComP<span class="w"> </span>interactive<span class="w"> </span>shell.<span class="w"> </span>You<span class="w"> </span>can<span class="w"> </span>get<span class="w"> </span><span class="nb">help</span><span class="w"> </span>about
|
||||
available<span class="w"> </span>commands<span class="w"> </span>with<span class="w"> </span><span class="s1">'help'</span>.<span class="w"> </span><span class="s1">'exit'</span><span class="w"> </span>leaves<span class="w"> </span>the<span class="w"> </span>shell.
|
||||
|
||||
$<span class="w"> </span><span class="nb">help</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>add the existing scautopick binding profile, <em>default</em>, to the station
|
||||
<em>GE.UGM</em>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">set</span><span class="w"> </span>profile<span class="w"> </span>scautopick<span class="w"> </span>default<span class="w"> </span>GE.UGM
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or to all stations of the network <em>GE</em>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">set</span><span class="w"> </span>profile<span class="w"> </span>scautopick<span class="w"> </span>default<span class="w"> </span>GE.UGM
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>remove the scautopick binding profile, <em>default</em>, from the station <em>GE.UGM</em>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>remove<span class="w"> </span>profile<span class="w"> </span>scautopick<span class="w"> </span>default<span class="w"> </span>GE.UGM
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>exit the shell and get back to the Linux shell:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">exit</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</section>
|
||||
<section id="example-global-bindings">
|
||||
<h4>Example: global bindings<a class="headerlink" href="#example-global-bindings" title="Permalink to this heading">¶</a></h4>
|
||||
<p>A binding is a set of name value pairs just like a configuration file but for
|
||||
a station. In the file system a binding looks like this:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">detecLocid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">""</span>
|
||||
<span class="na">detecStream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">HH</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Simple. These are actually two parameters from the global binding and it solves
|
||||
a common issue elegantly: a station might provide a couple of channels, often
|
||||
data in various sampling rates, e.g. LH, BH, SH and HH. Co-located stations
|
||||
with velocity and acceleration sensors also provide at least two channel groups,
|
||||
e.g. HL and HH. Those groups are also provided with different location code,
|
||||
e.g. 00 and 10. To process a station a module needs to know which channel
|
||||
it should process. To display a representative data channel a viewer needs to
|
||||
know which channel to show. Global bindings solve that issue by defining the
|
||||
“preferred” location code and channel code with the two parameters <cite>detecLocid</cite>
|
||||
and <cite>detecStream</cite>. The TraceView, <a class="reference internal" href="../../apps/scrttv.html#scrttv"><span class="std std-ref">scrttv</span></a> can read all available station
|
||||
bindings, compose a fully qualified channel name from network code (part of the
|
||||
binding), station code, detecLocid and detecStream. It will then lookup the
|
||||
inventory information for that channel and display it.</p>
|
||||
<p>The meta data of a binding are:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Network code,</p></li>
|
||||
<li><p>Station code,</p></li>
|
||||
<li><p>Module name.</p></li>
|
||||
</ul>
|
||||
<p>The actual binding data are the key value pairs.</p>
|
||||
</section>
|
||||
<section id="reading-bindings">
|
||||
<h4>Reading bindings<a class="headerlink" href="#reading-bindings" title="Permalink to this heading">¶</a></h4>
|
||||
<p>Binding configuration parameters are read during a module start after the module
|
||||
configuration parameters.
|
||||
They override the module configuration.
|
||||
Like module configurations, parameters defined in the global bindings can be
|
||||
overridden in module bindings. The order of loading is:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/global/</span></code>: Global bindings configurations</p></li>
|
||||
<li><p><code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/etc/key/[module]</span></code>: Bindings configurations for a particular module.</p></li>
|
||||
</ol>
|
||||
<p>If the module connects to a messaging server then it will receive the database parameters,
|
||||
connect to it and read the bindings. Otherwise the user has to provide the
|
||||
database address. A module never reads the key directory. It only
|
||||
gets the bindings from the configuration tables.</p>
|
||||
<p>As with inventory information there might are cases when a module should
|
||||
not connect to a database and work offline, in particular when <code class="docutils literal notranslate"><span class="pre">--ep</span></code> is being
|
||||
used.</p>
|
||||
<p>In order to
|
||||
read the bindings configuration from XML files (again in SCML format),
|
||||
use <a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a> to dump the configuration XML file and let
|
||||
the module use this XML file, <code class="docutils literal notranslate"><span class="pre">--config-db</span></code> must be used:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>myapp<span class="w"> </span>--config-db<span class="w"> </span>config.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>That will completely bypass the database (even if used for event information or
|
||||
inventory) for reading station bindings.</p>
|
||||
<p>To extract a configuration XML file from the database, <a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a> can be used:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scxmldump<span class="w"> </span>-fC<span class="w"> </span>-d<span class="w"> </span>localhost<span class="w"> </span>-o<span class="w"> </span>config.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>One can also create a config XML file straight from the <code class="docutils literal notranslate"><span class="pre">etc/key</span></code> directory
|
||||
with <code class="docutils literal notranslate"><span class="pre">bindings2cfg</span></code>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>bindings2cfg<span class="w"> </span>-o<span class="w"> </span>config.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>To create an XML file from a temporary key directory, an alternative directory
|
||||
can be specified with <code class="docutils literal notranslate"><span class="pre">--key-dir</span></code>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>bindings2cfg<span class="w"> </span>--key-dir<span class="w"> </span>/tmp/key<span class="w"> </span>-o<span class="w"> </span>config.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="id2">
|
||||
<h4>Application<a class="headerlink" href="#id2" title="Permalink to this heading">¶</a></h4>
|
||||
<p>Binding configurations are read when starting a module and cannot be
|
||||
changed during runtime. For applying any change on binding configurations</p>
|
||||
<ol class="arabic">
|
||||
<li><p>Save the configuration,</p></li>
|
||||
<li><p>Update the configuration</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>update-config
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>Restart or execute all affected modules.</p></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section id="summary">
|
||||
<h4>Summary<a class="headerlink" href="#summary" title="Permalink to this heading">¶</a></h4>
|
||||
<ul class="simple">
|
||||
<li><p>Bindings are maintained as key files in <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code>,</p></li>
|
||||
<li><p>Key files are another human readable representation of bindings,</p></li>
|
||||
<li><p><code class="docutils literal notranslate"><span class="pre">seiscomp</span> <span class="pre">update-config</span></code> or <code class="docutils literal notranslate"><span class="pre">seiscomp</span> <span class="pre">update-config</span> <span class="pre">trunk</span></code> writes the
|
||||
information from <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code> to the database,</p></li>
|
||||
<li><p>A module never reads <code class="file docutils literal notranslate"><span class="pre">etc/key</span></code>,</p></li>
|
||||
<li><p>Bindings are being read from the database or an XML file.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section id="validation">
|
||||
<h3>Validation<a class="headerlink" href="#validation" title="Permalink to this heading">¶</a></h3>
|
||||
<p>After changing configuration the affected modules should be tested, e.g. by
|
||||
running with informative debug logging output. You may use <a class="reference internal" href="../../apps/scdumpcfg.html#scdumpcfg"><span class="std std-ref">scdumpcfg</span></a> for
|
||||
dumping the module an binding parameters into a summary file.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="format-of-parameters">
|
||||
<span id="concepts-configuration-parameters"></span><h2>Format of Parameters<a class="headerlink" href="#format-of-parameters" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The <a class="reference internal" href="../glossary.html#term-trunk"><span class="xref std std-term">trunk</span></a> configuration files are simple text files where each line
|
||||
is a name-value pair containing the parameter name and its value.</p>
|
||||
<p>Parameter values can be provided as</p>
|
||||
<ul class="simple">
|
||||
<li><p>plain values or comma-separated lists on single or multiple lines
|
||||
(read sections below) or as</p></li>
|
||||
<li><p><a class="reference internal" href="#concepts-configuration-variables"><span class="std std-ref">variables</span></a>, allowing to refer to
|
||||
previously defined parameters, e.g., in <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code> or to define relative
|
||||
directories related to the <cite>SeisComP</cite> installation or the Linux system.</p></li>
|
||||
</ul>
|
||||
<div class="admonition warning">
|
||||
<p class="admonition-title">Warning</p>
|
||||
<p>In contrast to previous versions of <cite>SeisComP</cite> the parameter names are now
|
||||
case-sensitive. Use :ref`scchkcfg` to check configurations from previous
|
||||
versions regarding case-sensitivity.</p>
|
||||
</div>
|
||||
<section id="basic">
|
||||
<h3>Basic<a class="headerlink" href="#basic" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Module and binding configuration files are simple text file where each line is a
|
||||
name-value pair for one parameter. The parameter names are case-sensitive. The
|
||||
format is a simple as:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">agencyID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">gempa</span>
|
||||
<span class="na">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">slink://localhost:18000</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Spaces in string parameters must be protected by quotes:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">eventlist.filter.types.blacklist</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"not existing"</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Parameter groups are indicated by a separating dot (“.”). The dot separates the
|
||||
group from the parameter name or other groups. The item after the last dot is
|
||||
the parameter.</p>
|
||||
<p>Later assignments of parameters override previous ones so the order of lines in the
|
||||
configuration file is important. The file is parsed top-down.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Values are not type-checked. Type checking is part of the module
|
||||
logic and will be handled there. The configuration file parser will not raise
|
||||
an error if a string is assigned to a parameter that is expected to be an
|
||||
integer.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="comments">
|
||||
<h3>Comments<a class="headerlink" href="#comments" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Everything following an unescaped <strong>#</strong> (hash) is a comment and is going to
|
||||
be ignored. Blank lines and white spaces are ignored by the parser as well
|
||||
unless quoted or escaped. Escaping is done by prepending a backslash (<strong>\\</strong>)
|
||||
to the character that needs escaping. It backslash should be part of the
|
||||
string, two backslashes should be used (<strong>\\\\</strong>).</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">agencyID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">gempa # This is a comment</span>
|
||||
|
||||
<span class="c1"># The preceding empty line is ignored. Now the value of skyColor is replaced</span>
|
||||
<span class="c1"># with 'blue'.</span>
|
||||
<span class="c1"># The final value of a parameter is the result of the last assignment parsed</span>
|
||||
<span class="c1"># from top to bottom.</span>
|
||||
<span class="na">agencyID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">gempa</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="lists">
|
||||
<h3>Lists<a class="headerlink" href="#lists" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Values can be either scalar values or lists. List items are separated by commas.</p>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is a list definition</span>
|
||||
<span class="n">rainbowColors</span> <span class="o">=</span> <span class="n">red</span><span class="p">,</span> <span class="n">orange</span><span class="p">,</span> <span class="n">yellow</span><span class="p">,</span> <span class="n">green</span><span class="p">,</span> <span class="n">blue</span><span class="p">,</span> <span class="n">indigo</span><span class="p">,</span> <span class="n">violet</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>If a value needs to include a comma, white space or any other special
|
||||
character it can either be escaped with backslash (’\’) or quoted with double
|
||||
quotes (“). Whitespaces are removed in unquoted and unescaped values.</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># This is a comment</span>
|
||||
|
||||
<span class="c1"># The following list definitions have 2 items: 1,2 and 3,4</span>
|
||||
<span class="c1"># quoted values</span>
|
||||
<span class="na">tuples</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"1,2", "3,4"</span>
|
||||
<span class="c1"># escaped values</span>
|
||||
<span class="na">tuples</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">1</span><span class="se">\,</span><span class="s">2, 3</span><span class="se">\,</span><span class="s">4</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The value of the parameter tuples is now <cite>[“1,2”, “3,4”]</cite>.</p>
|
||||
</section>
|
||||
<section id="multi-line">
|
||||
<h3>Multi-line<a class="headerlink" href="#multi-line" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Values can extend over multiple lines if a backslash is appended to each line</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="c1"># Multi-line string</span>
|
||||
<span class="na">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Hello world. "</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">"This text spawns 3 lines in the configuration file "</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">"but only one line in the final value."</span>
|
||||
|
||||
<span class="c1"># Multiline list definition</span>
|
||||
<span class="na">rainbowColors</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">red,</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">orange,</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">yellow,</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">green, blue,</span><span class="se">\</span>
|
||||
<span class="w"> </span><span class="s">indigo, violet</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="control-characters">
|
||||
<h3>Control characters<a class="headerlink" href="#control-characters" title="Permalink to this heading">¶</a></h3>
|
||||
<p>A limited set of control characters is allowed within strings.</p>
|
||||
<table class="docutils align-left">
|
||||
<colgroup>
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 90.0%" />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr class="row-odd"><td><p>\n</p></td>
|
||||
<td><p>new line</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>\t</p></td>
|
||||
<td><p>tab</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Example of a string consisting of two lines:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">a</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"123 456"</span><span class="se">\n</span><span class="s">"This is a new line with text"</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The control characters must be outside of double quotes. Everything <strong>within</strong>
|
||||
double quotes will <strong>not</strong> be decoded. Hence, “n” will end up as the string
|
||||
“n” and not a new line character.</p>
|
||||
</section>
|
||||
<section id="namespaces">
|
||||
<h3>Namespaces<a class="headerlink" href="#namespaces" title="Permalink to this heading">¶</a></h3>
|
||||
<p>A basic usage of variable names is to organize them in namespaces. A common
|
||||
habit is to separate namespaces and variable names with a period character:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">colors.sky</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">blue</span>
|
||||
<span class="na">colors.grass</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">green</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Here a namespace called <code class="docutils literal notranslate"><span class="pre">colors</span></code> is used. The configuration file parser does
|
||||
not care about namespaces at all. The final name (including the periods) is what
|
||||
counts. But to avoid repeating namespaces again and again, declarations can
|
||||
be wrapped in a namespace block. See the following example:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">colors</span><span class="w"> </span><span class="s">{</span>
|
||||
<span class="w"> </span><span class="na">sky</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">blue</span>
|
||||
<span class="w"> </span><span class="na">grass</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">green</span>
|
||||
<span class="na">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Application code will still access <code class="docutils literal notranslate"><span class="pre">colors.sky</span></code> and <code class="docutils literal notranslate"><span class="pre">colors.grass</span></code>.
|
||||
Namespaces can be arbitrarily nested and even survive includes.</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">A</span><span class="w"> </span><span class="s">{</span>
|
||||
<span class="w"> </span><span class="na">B1</span><span class="w"> </span><span class="s">{</span>
|
||||
<span class="w"> </span><span class="na">var1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">123</span>
|
||||
<span class="w"> </span><span class="na">}</span>
|
||||
|
||||
<span class="w"> </span><span class="na">B2</span><span class="w"> </span><span class="s">{</span>
|
||||
<span class="w"> </span><span class="na">var1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">456</span>
|
||||
<span class="w"> </span><span class="na">}</span>
|
||||
<span class="na">}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The final list of parameter names is:</p>
|
||||
<ul class="simple">
|
||||
<li><p>A.B1.var1</p></li>
|
||||
<li><p>A.B2.var1</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
<section id="variables">
|
||||
<span id="concepts-configuration-variables"></span><h2>Variables<a class="headerlink" href="#variables" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Environment or preceding configuration variables (configuration parameters) can
|
||||
be used as values for <a class="reference internal" href="#concepts-configuration-parameters"><span class="std std-ref">parameters</span></a> in
|
||||
the configuration of SeisComP modules with <cite>${var}</cite>, e.g.</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}, hypo71</span>
|
||||
|
||||
<span class="na">homeDir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${HOME}</span>
|
||||
<span class="na">myPath</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${homeDir}/test</span>
|
||||
<span class="na">myseiscomp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${SEISCOMP_ROOT}</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p><cite>SeisComP</cite> knows internal variables defining the it environment. The can be used
|
||||
with <cite>@var@</cite>, e.g.</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">autoloc.stationConfig</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">@DATAGDIR@/autoloc/station.conf</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Available internal <cite>SeisComP</cite> variables are:</p>
|
||||
<table class="docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Variable</p></th>
|
||||
<th class="head"><p>Value</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>ROOTDIR</p></td>
|
||||
<td><p>$SEISCOMP_ROOT</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>DEFAUTLCONFIGDIR</p></td>
|
||||
<td><p>$SEISCOMP_ROOT/etc/defaults</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>SYSTEMCONFIGDIR</p></td>
|
||||
<td><p>$SEISCOMP_ROOT/etc</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>DATADIR</p></td>
|
||||
<td><p>$SEISCOMP_ROOT/share</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>CONFIGDIR</p></td>
|
||||
<td><p>$HOME/.seiscomp</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>LOGDIR</p></td>
|
||||
<td><p>$HOME/.seiscomp/log</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>The list of internal <cite>SeisComP</cite> variables can also be read in the information
|
||||
panel of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.</p>
|
||||
<figure class="align-center" id="id9">
|
||||
<a class="reference internal image-reference" href="../../_images/scconfig_information.png"><img alt="scconfig: information panel" src="../../_images/scconfig_information.png" style="width: 18cm;" /></a>
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scconfig information panel indicating the internal <cite>SeisComP</cite> variables.</span><a class="headerlink" href="#id9" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>The internal <cite>SeisComP</cite> variable CONFIGDIR can be re-defined by the SHELL
|
||||
environment variable SEISCOMP_LOCAL_CONFIG. Setting SEISCOMP_LOCAL_CONFIG will
|
||||
also effect LOGDIR which is automatically set to
|
||||
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_LOCAL_CONFIG/log</span></code>.
|
||||
Example:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nb">export</span><span class="w"> </span><span class="nv">SEISCOMP_LOCAL_CONFIG</span><span class="o">=</span>/var/log/seiscomp
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="related-tools">
|
||||
<h2>Related Tools<a class="headerlink" href="#related-tools" title="Permalink to this heading">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../../apps/bindings2cfg.html#bindings2cfg"><span class="std std-ref">bindings2cfg</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scchkcfg.html#scchkcfg"><span class="std std-ref">scchkcfg</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scdumpcfg.html#scdumpcfg"><span class="std std-ref">scdumpcfg</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a></p></li>
|
||||
</ul>
|
||||
</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="#">Configuration</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#configuration-of-modules">Configuration of Modules</a><ul>
|
||||
<li><a class="reference internal" href="#module-configuration">Module configuration</a><ul>
|
||||
<li><a class="reference internal" href="#adjusting">Adjusting</a></li>
|
||||
<li><a class="reference internal" href="#application">Application</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#bindings-configuration">Bindings configuration</a><ul>
|
||||
<li><a class="reference internal" href="#id1">Adjusting</a></li>
|
||||
<li><a class="reference internal" href="#seiscomp-shell">SeisComP shell</a></li>
|
||||
<li><a class="reference internal" href="#example-global-bindings">Example: global bindings</a></li>
|
||||
<li><a class="reference internal" href="#reading-bindings">Reading bindings</a></li>
|
||||
<li><a class="reference internal" href="#id2">Application</a></li>
|
||||
<li><a class="reference internal" href="#summary">Summary</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#validation">Validation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#format-of-parameters">Format of Parameters</a><ul>
|
||||
<li><a class="reference internal" href="#basic">Basic</a></li>
|
||||
<li><a class="reference internal" href="#comments">Comments</a></li>
|
||||
<li><a class="reference internal" href="#lists">Lists</a></li>
|
||||
<li><a class="reference internal" href="#multi-line">Multi-line</a></li>
|
||||
<li><a class="reference internal" href="#control-characters">Control characters</a></li>
|
||||
<li><a class="reference internal" href="#namespaces">Namespaces</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#variables">Variables</a></li>
|
||||
<li><a class="reference internal" href="#related-tools">Related Tools</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="inventory.html"
|
||||
title="previous chapter">Inventory</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="magnitudes.html"
|
||||
title="next chapter">Magnitudes</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/configuration.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
280
share/doc/seiscomp/html/base/concepts/database.html
Normal file
280
share/doc/seiscomp/html/base/concepts/database.html
Normal file
@ -0,0 +1,280 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Database — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Waveform archives" href="waveformarchives.html" />
|
||||
<link rel="prev" title="SeisComP plugins" href="plugins.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="waveformarchives.html" title="Waveform archives"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="plugins.html" title="SeisComP plugins"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="database">
|
||||
<span id="concepts-database"></span><h1>Database<a class="headerlink" href="#database" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter provides an overview over databases supported by <cite>SeisComP</cite>.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p><cite>SeisComP</cite> can store and read information from a relational database management
|
||||
system (RDBMS). Supported are basically all existing RDBMS for which a plugin
|
||||
can be written. Currently, <a class="reference internal" href="plugins.html#concepts-plugins"><span class="std std-ref">database plugins</span></a> are
|
||||
provided for</p>
|
||||
<table class="docutils align-left">
|
||||
<colgroup>
|
||||
<col style="width: 50.0%" />
|
||||
<col style="width: 50.0%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Database</p></th>
|
||||
<th class="head"><p>Plugin Name</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>MySQL / MariaDB</p></td>
|
||||
<td><p><em>dbmysql</em></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>PostgreSQL</p></td>
|
||||
<td><p><em>dbpostgresql</em></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>SQLite3</p></td>
|
||||
<td><p><em>dbsqlite3</em></p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<section id="database-access">
|
||||
<h3>Database access<a class="headerlink" href="#database-access" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Typically, the database is accessed by the messaging (<a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>) for
|
||||
reading and writing.
|
||||
Most other modules can only read from the database but do not write into it.
|
||||
Among the few exceptions which can also directly write to the database are
|
||||
<a class="reference internal" href="../../apps/scdb.html#scdb"><span class="std std-ref">scdb</span></a> and <a class="reference internal" href="../../apps/scardac.html#scardac"><span class="std std-ref">scardac</span></a>.</p>
|
||||
<p>The database connection provided by the messaging is configured by the
|
||||
<a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster module configuration</span></a>. <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">Modules</span></a>
|
||||
connected to the messaging receive the read connection parameters through the
|
||||
messaging connection. However, the default read connection by these and all
|
||||
other modules may be set with <a class="reference internal" href="../../apps/global.html#confval-database"><code class="xref std std-confval docutils literal notranslate"><span class="pre">database</span></code></a> in
|
||||
<a class="reference internal" href="../../apps/global.html#global-configuration"><span class="std std-ref">global configuration</span></a> or set on the command line
|
||||
using <code class="xref std std-option docutils literal notranslate"><span class="pre">--database</span></code> or simply <code class="xref std std-option docutils literal notranslate"><span class="pre">-d</span></code>.
|
||||
Read the sections <a class="reference internal" href="../installation.html#installation"><span class="std std-ref">SeisComP Installation</span></a> and <a class="reference internal" href="../getting-started.html#getting-started"><span class="std std-ref">Getting Started with SeisComP</span></a> on the
|
||||
installation and the configuration of the database backend and the initial setup
|
||||
of the database itself, respectively.</p>
|
||||
<p>The database connection may be used together with the <em>debug</em> option to print
|
||||
the database commands along with debug log output. Example for using
|
||||
<a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> in offline mode with database debug output:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>-d<span class="w"> </span>localhost?debug<span class="w"> </span>--offline<span class="w"> </span>--debug
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="database-schema">
|
||||
<h3>Database schema<a class="headerlink" href="#database-schema" title="Permalink to this heading">¶</a></h3>
|
||||
<p>The used database schema is well defined and respected by all modules which
|
||||
access the database. It is similar to the SeisComML schema (<a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a>,
|
||||
a version of XML) and the C++ / Python class hierarchy of the datamodel
|
||||
namespace / package.</p>
|
||||
<p>Information of the following objects can be stored in the database as set out in
|
||||
the <a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">documentation of the data model</span></a>.</p>
|
||||
<table class="docutils align-left">
|
||||
<colgroup>
|
||||
<col style="width: 25.0%" />
|
||||
<col style="width: 75.0%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Object</p></th>
|
||||
<th class="head"><p>Description</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p><a class="reference internal" href="configuration.html#concepts-configuration"><span class="std std-ref">Config</span></a></p></td>
|
||||
<td><p>station bindings</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">DataAvailability</span></a></p></td>
|
||||
<td><p>information on continuous data records</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">EventParameters</span></a></p></td>
|
||||
<td><p>derived objects like picks, amplitudes, magnitudes origins, events, etc.</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference internal" href="inventory.html#concepts-inventory"><span class="std std-ref">Inventory</span></a></p></td>
|
||||
<td><p>station meta data</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">Journaling</span></a></p></td>
|
||||
<td><p>information on commands and actions, e.g., by <a class="reference internal" href="../../apps/scevent.html#scevent-journals"><span class="std std-ref">scevent</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">QualityControl</span></a></p></td>
|
||||
<td><p>waveform quality control parameters</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>The Config parameters just cover station bindings. Application/module specific
|
||||
configurations (all .cfg files) are not stored in the database and only kept
|
||||
in files.</p>
|
||||
</div>
|
||||
<p>The currently supported version of the database schema can be queried by any
|
||||
module connecting to the data base using the option <code class="xref std std-option docutils literal notranslate"><span class="pre">-V</span></code>. Example:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scm<span class="w"> </span>-V
|
||||
|
||||
<span class="w"> </span>scm
|
||||
<span class="w"> </span>Framework:<span class="w"> </span><span class="m">6</span>.0.0<span class="w"> </span>Development
|
||||
<span class="w"> </span>API<span class="w"> </span>version:<span class="w"> </span><span class="m">16</span>.0.0
|
||||
<span class="w"> </span>Data<span class="w"> </span>schema<span class="w"> </span>version:<span class="w"> </span><span class="m">0</span>.12
|
||||
<span class="w"> </span>GIT<span class="w"> </span>HEAD:<span class="w"> </span>5e16580cc
|
||||
<span class="w"> </span>Compiler:<span class="w"> </span>c++<span class="w"> </span><span class="o">(</span>Ubuntu<span class="w"> </span><span class="m">11</span>.4.0-1ubuntu1~22.04<span class="o">)</span><span class="w"> </span><span class="m">11</span>.4.0
|
||||
<span class="w"> </span>Build<span class="w"> </span>system:<span class="w"> </span>Linux<span class="w"> </span><span class="m">6</span>.2.0-26-generic
|
||||
<span class="w"> </span>OS:<span class="w"> </span>Ubuntu<span class="w"> </span><span class="m">22</span>.04.3<span class="w"> </span>LTS<span class="w"> </span>/<span class="w"> </span>Linux
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="related-modules">
|
||||
<h2>Related Modules<a class="headerlink" href="#related-modules" title="Permalink to this heading">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../../apps/scardac.html#scardac"><span class="std std-ref">scardac</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scdb.html#scdb"><span class="std std-ref">scdb</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scdbstrip.html#scdbstrip"><span class="std std-ref">scdbstrip</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scdispatch.html#scdispatch"><span class="std std-ref">scdispatch</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scquery.html#scquery"><span class="std std-ref">scquery</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scqueryqc.html#scqueryqc"><span class="std std-ref">scqueryqc</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a></p></li>
|
||||
</ul>
|
||||
</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="#">Database</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a><ul>
|
||||
<li><a class="reference internal" href="#database-access">Database access</a></li>
|
||||
<li><a class="reference internal" href="#database-schema">Database schema</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#related-modules">Related Modules</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="plugins.html"
|
||||
title="previous chapter">SeisComP plugins</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="waveformarchives.html"
|
||||
title="next chapter">Waveform archives</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/database.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
359
share/doc/seiscomp/html/base/concepts/inventory.html
Normal file
359
share/doc/seiscomp/html/base/concepts/inventory.html
Normal file
@ -0,0 +1,359 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Inventory — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Configuration" href="configuration.html" />
|
||||
<link rel="prev" title="RecordStream" href="recordstream.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="configuration.html" title="Configuration"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="recordstream.html" title="RecordStream"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="inventory">
|
||||
<span id="concepts-inventory"></span><h1>Inventory<a class="headerlink" href="#inventory" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter describes the concept of inventories.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>In <cite>SeisComP</cite> the term <a class="reference internal" href="../glossary.html#term-inventory"><span class="xref std std-term">inventory</span></a> refers to the meta data of data recording
|
||||
stations.
|
||||
Many <cite>SeisComP</cite> <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">modules</span></a> require inventory information to
|
||||
operate correctly and a correct inventory is therefore fundamental to <cite>SeisComP</cite>.</p>
|
||||
<p>The inventory will be read from the <a class="reference internal" href="database.html#concepts-database"><span class="std std-ref">database</span></a>
|
||||
by default. To insert or update the inventory in the database, this information
|
||||
needs to be created or downloaded and converted. The following sections will
|
||||
describe the process of populating the database and how applications get access
|
||||
to it.</p>
|
||||
<p>The format used for inventory is known as <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a>. Correct inventory in
|
||||
<a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format can be generated by <span id="id1"><em>SMP</em> [<a class="reference internal" href="../references.html#id268" title="SMP. Station Management Portal by gempa GmbH. URL: https://smp.gempa.de/.">22</a>]</span>. Some modules for
|
||||
<strong>converting from other formats</strong> are listed in section
|
||||
<a class="reference internal" href="#concepts-inventory-format"><span class="std std-ref">Inventory Format</span></a>. Tools for <strong>processing inventory</strong> are
|
||||
listed in section <a class="reference internal" href="#concepts-inventory-tools"><span class="std std-ref">Related Tools</span></a>.</p>
|
||||
<p>The inventory shall contain all meta data describing the full recording system
|
||||
and the
|
||||
pre-processing of the raw data stream provided to the data processing modules
|
||||
using the <a class="reference internal" href="recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream</span></a>. Inventories should be
|
||||
always complete w.r.t the
|
||||
processed data streams, correct and up-to-date. Beside network, station, location
|
||||
and stream information they must include the full sensor and datalogger responses.</p>
|
||||
<p>Older version used key files to configure available networks and stations.
|
||||
Because the support of response meta-data was very limited, tools were build to
|
||||
add this functionality. Since the release of Seattle the concept of key files
|
||||
for station meta-data has been completely removed from the system. Now <cite>SeisComP</cite>
|
||||
only handles station meta-data in its own XML format called <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a>.
|
||||
The task of supporting old key files, dataless SEED and other formats has been
|
||||
out-sourced to external applications. The inventory synchronization is a
|
||||
<a class="reference internal" href="#config-fig-inventory-sync"><span class="std std-ref">two-stage process</span></a>:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Convert <a class="reference internal" href="#concepts-inventory-format"><span class="std std-ref">external formats</span></a> into <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a></p></li>
|
||||
<li><p>Synchronize inventory pool with the database: merged all inventory files and
|
||||
synchronize with the database using <strong class="program">scinv snyc</strong>.</p></li>
|
||||
</ol>
|
||||
<figure class="align-center" id="id5">
|
||||
<span id="config-fig-inventory-sync"></span><a class="reference internal image-reference" href="../../_images/inventory-sync.png"><img alt="../../_images/inventory-sync.png" src="../../_images/inventory-sync.png" style="width: 12cm;" /></a>
|
||||
<figcaption>
|
||||
<p><span class="caption-text">Inventory synchronization as a two-stage process</span><a class="headerlink" href="#id5" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>All station meta-data are stored in <code class="file docutils literal notranslate"><span class="pre">etc/inventory</span></code>
|
||||
and can be organized as needed. Either one file per network, a file containing the
|
||||
complete inventory or one file for all instruments and one file per station.
|
||||
The update script</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scinv<span class="w"> </span>sync
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>loads the existing inventory from the database and merges each file in <code class="file docutils literal notranslate"><span class="pre">etc/inventory</span></code>.
|
||||
Finally it removes all unreferenced objects and sends all updates to the database.</p>
|
||||
<p>The <cite>SeisComP</cite> <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">configuration</span></a> does not deal with station
|
||||
meta-data anymore.
|
||||
It only configures parameters for modules and module-station associations.
|
||||
The management of the inventory can and should be handled by external tools
|
||||
e.g. <span id="id2"><em>SMP</em> [<a class="reference internal" href="../references.html#id268" title="SMP. Station Management Portal by gempa GmbH. URL: https://smp.gempa.de/.">22</a>]</span>.</p>
|
||||
<p>The <cite>SeisComP</cite> documentation describes the
|
||||
<a class="reference internal" href="../api-python.html#api-datamodel-python"><span class="std std-ref">data model including the inventory</span></a>.</p>
|
||||
</section>
|
||||
<section id="inventory-format">
|
||||
<span id="concepts-inventory-format"></span><h2>Inventory Format<a class="headerlink" href="#inventory-format" title="Permalink to this heading">¶</a></h2>
|
||||
<p>A typical inventory file in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> looks like this:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
|
||||
<span class="nt"><seiscomp</span><span class="w"> </span><span class="na">xmlns=</span><span class="s">"http://geofon.gfz-potsdam.de/ns/seiscomp-schema/0.11"</span><span class="w"> </span><span class="na">version=</span><span class="s">"0.11"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><Inventory></span>
|
||||
<span class="w"> </span><span class="nt"><sensor></span>...
|
||||
<span class="w"> </span><span class="nt"><datalogger></span>...
|
||||
<span class="w"> </span><span class="nt"><network></span>...
|
||||
<span class="w"> </span><span class="nt"></Inventory></span>
|
||||
<span class="nt"></seiscomp></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The version attribute of the <code class="docutils literal notranslate"><span class="pre">seiscomp</span></code> tag represents the schema version of
|
||||
the <cite>SeisComP</cite> data model which is consistent with the database schema version
|
||||
and the version of all other representations.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>All geographic coordinates (latitudes, longitudes, elevation) are assumed in the
|
||||
World Geodetic System 1984 (WGS84) reference system (National Imagery and
|
||||
Mapping Agency 2000). Latitudes, longitudes are provided in degrees but
|
||||
elevations are given in meters.</p>
|
||||
</div>
|
||||
<p>Inventories must be provided to <cite>SeisComP</cite> in XML files in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format. A
|
||||
convenient way to generate clean and correct inventory files in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a>
|
||||
format is <span id="id3"><em>SMP</em> [<a class="reference internal" href="../references.html#id268" title="SMP. Station Management Portal by gempa GmbH. URL: https://smp.gempa.de/.">22</a>]</span>. Tools are provided to convert between other formats:</p>
|
||||
<table class="docutils align-left">
|
||||
<colgroup>
|
||||
<col style="width: 50.0%" />
|
||||
<col style="width: 50.0%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>Module namespace</p></th>
|
||||
<th class="head"><p>Conversion</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>arclink2inv</p></td>
|
||||
<td><p>Arclink XML to SeisComPML</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference internal" href="../../apps/dlsv2inv.html#dlsv2inv"><span class="std std-ref">dlsv2inv</span></a></p></td>
|
||||
<td><p>dataless SEED to SeisComPML</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><a class="reference internal" href="../../apps/inv2dlsv.html#inv2dlsv"><span class="std std-ref">inv2dlsv</span></a></p></td>
|
||||
<td><p>SeisComPML to dataless SEED</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><a class="reference internal" href="../../apps/fdsnxml2inv.html#fdsnxml2inv"><span class="std std-ref">fdsnxml2inv</span></a></p></td>
|
||||
<td><p>FDSN StationXML to SeisComPML and back</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
<section id="adding-updating-inventory">
|
||||
<h2>Adding / Updating Inventory<a class="headerlink" href="#adding-updating-inventory" title="Permalink to this heading">¶</a></h2>
|
||||
<p>To add inventory information to the <cite>SeisComP</cite> database one either has to write directly
|
||||
to the database with custom script (not recommended) or place <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> files
|
||||
in <code class="file docutils literal notranslate"><span class="pre">@SYSTEMCONFIGDIR@/inventory</span></code>. The service to import all data in that
|
||||
directory can be called with</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>update-config<span class="w"> </span>inventory
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This command runs <a class="reference internal" href="../../apps/scinv.html#scinv"><span class="std std-ref">scinv</span></a> finally. <a class="reference internal" href="../../apps/scinv.html#scinv"><span class="std std-ref">scinv</span></a> merges all XML files and
|
||||
synchronizes the merged local inventory tree with the database. That is a
|
||||
rather complex process and for more information it is recommended to study
|
||||
the source code of <a class="reference internal" href="../../apps/scinv.html#scinv"><span class="std std-ref">scinv</span></a>. The bottom line is that inventory data is created
|
||||
from <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> files.</p>
|
||||
<p>Because nobody will ever create such XML files by hand, tools are necessary.
|
||||
A quite popular tools is the online station management portal (SMP)
|
||||
<span id="id4">[<a class="reference internal" href="../references.html#id268" title="SMP. Station Management Portal by gempa GmbH. URL: https://smp.gempa.de/.">22</a>]</span>. SMP will output XML in version of <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> directly.</p>
|
||||
<p>Another source is the FDSN station webservice (FDSNWS). If the <cite>SeisComP</cite>
|
||||
implementation of FDSNWS is used, the SeisComP XML format can be requested
|
||||
directly as an extension. Otherwise FDSN StationXML will be provided. Inventory
|
||||
in FDSN StationXML needs to be converted with either <a class="reference internal" href="../../apps/fdsnxml2inv.html#fdsnxml2inv"><span class="std std-ref">fdsnxml2inv</span></a> or
|
||||
<a class="reference internal" href="../../apps/import_inv.html#import-inv"><span class="std std-ref">import_inv</span></a>. The latter is a more versatile application that also supports
|
||||
several import formats.</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>import_inv<span class="w"> </span>fdsnxml<span class="w"> </span>download-1234.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>This will automatically place the output XML file in
|
||||
<code class="file docutils literal notranslate"><span class="pre">@SYSTEMCONFIGDIR@/inventory</span></code>. Afterwards call</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>update-config<span class="w"> </span>inventory
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>to synchronize the changes with the database. If <strong class="program">scconfig</strong> is used,
|
||||
then either the <code class="docutils literal notranslate"><span class="pre">Sync</span></code> button of the <cite>Inventory</cite> panel or the
|
||||
<code class="docutils literal notranslate"><span class="pre">Update</span> <span class="pre">configuration</span></code> button of the <code class="docutils literal notranslate"><span class="pre">System</span></code> panel must pressed.</p>
|
||||
<p><strong>Summary</strong></p>
|
||||
<p>In order to populate the database with inventory information, the following
|
||||
steps have to be performed:</p>
|
||||
<ol class="arabic">
|
||||
<li><p>Convert existing station meta data formats to <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a></p></li>
|
||||
<li><p>Place all <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> files at <code class="file docutils literal notranslate"><span class="pre">@SYSTEMCONFIGDIR@/inventory</span></code></p></li>
|
||||
<li><p>Synchronize the inventory files and write the meta data to the database. Run</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>scinv<span class="w"> </span>sync
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>update-config<span class="w"> </span>inventory
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
</ol>
|
||||
</section>
|
||||
<section id="reading-inventory">
|
||||
<h2>Reading Inventory<a class="headerlink" href="#reading-inventory" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Applications usually connect to the database and read the necessary inventory
|
||||
information. An application can decide whether it requires full response
|
||||
information including sensor and data logger response functions or just channel
|
||||
information without instrument descriptions. The latter performs faster and
|
||||
some applications do not require full instrument information.</p>
|
||||
<p>An application usually does not require special configuration to read inventory
|
||||
information. A database connection is enough and it comes usually along with the
|
||||
handshake message of the messaging server.</p>
|
||||
<p>If the messaging is not involved, the database can be specified by the
|
||||
command-line option <code class="docutils literal notranslate"><span class="pre">-d</span></code>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>myapp<span class="w"> </span>-d<span class="w"> </span><span class="o">[</span>type<span class="o">]</span>://<span class="o">[</span>user<span class="o">]</span>:<span class="o">[</span>password<span class="o">]</span>@<span class="o">[</span>host<span class="o">]</span>:<span class="o">[</span>port<span class="o">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>There are cases when an application should be run without a database connection
|
||||
but requires inventory information, particularly in combination with the
|
||||
<code class="docutils literal notranslate"><span class="pre">--ep</span></code> command line argument. To direct an application to an inventory XML file
|
||||
(again in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format), <code class="docutils literal notranslate"><span class="pre">--inventory-db</span></code> must be used:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>myapp<span class="w"> </span>--inventory-db<span class="w"> </span>inventory.xml
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The option <code class="docutils literal notranslate"><span class="pre">--inventory-db</span></code> will cause the module to completely bypass
|
||||
the database for reading inventory information even if used for event
|
||||
information. The file <code class="file docutils literal notranslate"><span class="pre">inventory.xml</span></code> can be created from the database
|
||||
using <a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a>.</p>
|
||||
</section>
|
||||
<section id="related-tools">
|
||||
<span id="concepts-inventory-tools"></span><h2>Related Tools<a class="headerlink" href="#related-tools" title="Permalink to this heading">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p>arclink2inv</p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/dlsv2inv.html#dlsv2inv"><span class="std std-ref">dlsv2inv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/fdsnxml2inv.html#fdsnxml2inv"><span class="std std-ref">fdsnxml2inv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/import_inv.html#import-inv"><span class="std std-ref">import_inv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/invextr.html#invextr"><span class="std std-ref">invextr</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/inv2dlsv.html#inv2dlsv"><span class="std std-ref">inv2dlsv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/sccnv.html#sccnv"><span class="std std-ref">sccnv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scinv.html#scinv"><span class="std std-ref">scinv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/tab2inv.html#tab2inv"><span class="std std-ref">tab2inv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/tabinvmodifier.html#tabinvmodifier"><span class="std std-ref">tabinvmodifier</span></a></p></li>
|
||||
</ul>
|
||||
</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="#">Inventory</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#inventory-format">Inventory Format</a></li>
|
||||
<li><a class="reference internal" href="#adding-updating-inventory">Adding / Updating Inventory</a></li>
|
||||
<li><a class="reference internal" href="#reading-inventory">Reading Inventory</a></li>
|
||||
<li><a class="reference internal" href="#related-tools">Related Tools</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="recordstream.html"
|
||||
title="previous chapter">RecordStream</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="configuration.html"
|
||||
title="next chapter">Configuration</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/inventory.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
478
share/doc/seiscomp/html/base/concepts/locators.html
Normal file
478
share/doc/seiscomp/html/base/concepts/locators.html
Normal file
@ -0,0 +1,478 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Locators — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="../glossary.html" />
|
||||
<link rel="prev" title="Magnitudes" href="magnitudes.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="../glossary.html" title="Glossary"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="magnitudes.html" title="Magnitudes"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="locators">
|
||||
<span id="concepts-locators"></span><h1>Locators<a class="headerlink" href="#locators" title="Permalink to this heading">¶</a></h1>
|
||||
<p>Locators receive <a class="reference internal" href="../glossary.html#term-pick"><span class="xref std std-term">phase picks</span></a> from modules such as <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a>,
|
||||
<a class="reference internal" href="../../apps/screloc.html#screloc"><span class="std std-ref">screloc</span></a> or <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> for locating seismic or non-seismic sources. The
|
||||
solutions may include source time and location with or without uncertainties.
|
||||
They are used to form new <a class="reference internal" href="../glossary.html#term-origin"><span class="xref std std-term">origins</span></a> which can be treated
|
||||
further.</p>
|
||||
<p><cite>SeisComP</cite> ships with built-in locators:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../../apps/global_fixedhypocenter.html#global-fixedhypocenter"><span class="std std-ref">FixedHypocenter</span></a> (FH)</p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_hypo71.html#global-hypo71"><span class="std std-ref">Hypo71</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_iloc.html#global-iloc"><span class="std std-ref">iLoc</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_locsat.html#global-locsat"><span class="std std-ref">LOCSAT</span></a>, the default locator in <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a> and <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_nonlinloc.html#global-nonlinloc"><span class="std std-ref">NonLinLoc</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_stdloc.html#global-stdloc"><span class="std std-ref">StdLoc</span></a></p></li>
|
||||
</ul>
|
||||
<p>and a none built-in locator:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../../apps/global_locext.html#global-locext"><span class="std std-ref">LocExt</span></a>.</p></li>
|
||||
</ul>
|
||||
<p>While the built-in locators are well defined and documented, any other external
|
||||
locator routine can be added to <cite>SeisComP</cite> by configuration of the locator
|
||||
<a class="reference internal" href="../../apps/global_locext.html#global-locext"><span class="std std-ref">LocExt</span></a> and custom scripts.
|
||||
LOCSAT and FixedHypocenter are native to <cite>SeisComP</cite>. All other locators are
|
||||
implemented as <a class="reference internal" href="../glossary.html#term-plugin"><span class="xref std std-term">plugins</span></a>. A <a class="reference internal" href="../glossary.html#term-plugin"><span class="xref std std-term">plugin</span></a>
|
||||
needs to be added to the list of loaded plugins by configuration of the global
|
||||
parameter <a class="reference internal" href="../../apps/global.html#confval-plugins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">plugins</span></code></a> for making the corresponding locator available to
|
||||
<cite>SeisComP</cite> applications.</p>
|
||||
<p>A comparison of the locators is given in the table below.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>The specifications given below may depend on the configuration of the
|
||||
respective locator. Please carefully read the documentation of the locators
|
||||
for optimizing their performance.</p>
|
||||
</div>
|
||||
<table class="docutils align-center">
|
||||
<colgroup>
|
||||
<col style="width: 30.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
<col style="width: 10.0%" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"></th>
|
||||
<th class="head"><p>FH</p></th>
|
||||
<th class="head"><p>Hypo71</p></th>
|
||||
<th class="head"><p>iLoc</p></th>
|
||||
<th class="head"><p>LocExt</p></th>
|
||||
<th class="head"><p>LOCSAT</p></th>
|
||||
<th class="head"><p>NonLinLoc</p></th>
|
||||
<th class="head"><p>StdLoc</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p><strong>Applications</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>phases considered by default</p></td>
|
||||
<td><p>seismic / infrasound</p></td>
|
||||
<td><p>seismic</p></td>
|
||||
<td><p>seismic / infrasound / hydroacoustic</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>seismic / infrasound</p></td>
|
||||
<td><p>seismic</p></td>
|
||||
<td><p>seismic</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>distance ranges of application</p></td>
|
||||
<td><p>local / regional / teleseismic</p></td>
|
||||
<td><p>local / regional</p></td>
|
||||
<td><p>local / regional / teleseismic</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>local / regional / teleseismic</p></td>
|
||||
<td><p>local / regional / teleseismic</p></td>
|
||||
<td><p>local / regional [4]</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>application with default configuration</p></td>
|
||||
<td><p>regional / teleseismic</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>regional / global</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>regional / teleseismic</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>local / regional [1]</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><strong>Algorithm</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>inversion algorithm</p></td>
|
||||
<td><p>linear</p></td>
|
||||
<td><p>iterative</p></td>
|
||||
<td><p>configurable</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>grid search</p></td>
|
||||
<td><p>probabilistic</p></td>
|
||||
<td><p>configurable</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>automatic phase renaming</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>considers network code</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅ [1]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>positive station elevation</p></td>
|
||||
<td><p>✅ [2/4]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅ [2]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>negative station elevation</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>considers pick time</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>considers pick slowness</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>considers pick backazimuth</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>speed</p></td>
|
||||
<td><p>fast</p></td>
|
||||
<td><p>fast</p></td>
|
||||
<td><p>fast - intermediate</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>fast</p></td>
|
||||
<td><p>intermediate</p></td>
|
||||
<td><p>fast - intermediate</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><strong>Velocity model</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>velocity model</p></td>
|
||||
<td><p>1D [4]</p></td>
|
||||
<td><p>1D</p></td>
|
||||
<td><p>1D</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>1D</p></td>
|
||||
<td><p>1D / 3D</p></td>
|
||||
<td><p>1D / 3D [4]</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>independent Vp and Vs</p></td>
|
||||
<td><p>✅ [4]</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅ [4]</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>default velocity model</p></td>
|
||||
<td><p>iasp91 / tab</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>iasp91 / ak135</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>iasp91 / tab</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>iasp91 / tab [1]</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>applies RSTT</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><strong>Hypocenter solution</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>inverts for hypocenter location</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>inverts for hypocenter time</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>supports negative source depth</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>[3]</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><strong>Configuration</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>native or plugin to load</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><em>hypo71</em></p></td>
|
||||
<td><p><em>lociloc</em></p></td>
|
||||
<td><p><em>locext</em></p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><em>locnll</em></p></td>
|
||||
<td><p><em>stdloc</em></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p><cite>SeisComP</cite> provides locator</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>operates without external files</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>operates without custom scripts</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p>✅</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p><strong>Others</strong></p></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>remarks</p></td>
|
||||
<td><p>intended for ground-truth tests / single-station location / any travel-time interface</p></td>
|
||||
<td></td>
|
||||
<td><p>operational at EMSC and ISC (earlier version)</p></td>
|
||||
<td><p>any external locator can be called by a custom script</p></td>
|
||||
<td><p>currently the fastest locator in <cite>SeisComP</cite> and the only one available to <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a></p></td>
|
||||
<td><p>considers model uncertainties</p></td>
|
||||
<td><p>uses travel-times from any travel-time interface</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>point of contact</p></td>
|
||||
<td><p><span id="id1"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
<td><p><span id="id2"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
<td><p><a class="reference external" href="mailto:ibondar2014%40gmail.com">ibondar2014 <span>@</span>gmail<span>.</span>com</a></p></td>
|
||||
<td><p><span id="id3"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
<td><p><span id="id4"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
<td><p><span id="id5"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
<td><p><span id="id6"><em>SeisComP forum</em> [<a class="reference internal" href="../references.html#id256" title="SeisComP forum. GFZ. URL: https://forum.seiscomp.de/.">24</a>]</span></p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<ul class="simple">
|
||||
<li><p>[1]: requires initial or specific configuration</p></li>
|
||||
<li><p>[2]: requires correction file</p></li>
|
||||
<li><p>[3]: depends on selected locator</p></li>
|
||||
<li><p>[4]: depends on selected travel-time interface</p></li>
|
||||
</ul>
|
||||
</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>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="magnitudes.html"
|
||||
title="previous chapter">Magnitudes</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="../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/base/concepts/locators.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
299
share/doc/seiscomp/html/base/concepts/magnitudes.html
Normal file
299
share/doc/seiscomp/html/base/concepts/magnitudes.html
Normal file
@ -0,0 +1,299 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Magnitudes — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Locators" href="locators.html" />
|
||||
<link rel="prev" title="Configuration" href="configuration.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="locators.html" title="Locators"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="configuration.html" title="Configuration"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="magnitudes">
|
||||
<span id="concepts-magnitudes"></span><h1>Magnitudes<a class="headerlink" href="#magnitudes" title="Permalink to this heading">¶</a></h1>
|
||||
<p>Magnitudes are computed based on amplitudes measured from waveforms. Different
|
||||
types of amplitudes and magnitudes are available which are listed in
|
||||
<a class="reference internal" href="../../apps/scamp.html#scamp"><span class="std std-ref">scamp</span></a> and <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>.</p>
|
||||
<section id="amplitudes">
|
||||
<h2>Amplitudes<a class="headerlink" href="#amplitudes" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Amplitudes can be measured automatically from waveforms</p>
|
||||
<ul class="simple">
|
||||
<li><p>During phase picking by <a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a> with generally fixed time windows
|
||||
due to the absence of knowledge about source parameters or by,</p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scamp.html#scamp"><span class="std std-ref">scamp</span></a> as soon as <a class="reference internal" href="../glossary.html#term-origin"><span class="xref std std-term">origins</span></a> are available. Depending
|
||||
on the magnitude type, fixed or distance-dependent time windows apply.</p></li>
|
||||
</ul>
|
||||
<p>and interactively using <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a>.</p>
|
||||
<section id="instrument-simulation">
|
||||
<h3>Instrument simulation<a class="headerlink" href="#instrument-simulation" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Amplitude measurements for some magnitude types require or allow the simulation
|
||||
of instruments such as <a class="reference internal" href="../filter-grammar.html#WA" title="WA"><code class="xref py py-func docutils literal notranslate"><span class="pre">Wood-Anderson</span> <span class="pre">torsion</span> <span class="pre">seismometers</span></code></a>
|
||||
(<span id="id1">Richter [<a class="reference internal" href="../references.html#id62" title="C.F. Richter. An instrumental earthquake magnitude scale. Bull. Seismol. Soc. Am., 1:1 - 32, 1935. URL: https://resolver.caltech.edu/CaltechAUTHORS:20140804-143558638, doi:10.1785/BSSA0250010001.">57</a>], Uhrhammer and Collins [<a class="reference internal" href="../references.html#id81" title="R.A. Uhrhammer and E.R. Collins. Synthesis of Wood-Anderson seismograms from broadband digital records. Bull. Seismol. Soc. Am., 80(3):702–716, 1990. doi:10.1785/BSSA0800030702.">64</a>]</span>), <a class="reference internal" href="../filter-grammar.html#WWSSN_SP" title="WWSSN_SP"><code class="xref py py-func docutils literal notranslate"><span class="pre">WWSSN_SP()</span></code></a> or <a class="reference internal" href="../filter-grammar.html#WWSSN_LP" title="WWSSN_LP"><code class="xref py py-func docutils literal notranslate"><span class="pre">WWSSN_LP()</span></code></a>.
|
||||
The calibration parameters describing the Wood-Anderson seismometer are
|
||||
configurable in global bindings or global module configuration:
|
||||
<a class="reference internal" href="../../apps/global.html#confval-2"><code class="xref std std-confval docutils literal notranslate"><span class="pre">amplitudes.WoodAnderson.gain</span></code></a>, <a class="reference internal" href="../../apps/global.html#confval-3"><code class="xref std std-confval docutils literal notranslate"><span class="pre">amplitudes.WoodAnderson.T0</span></code></a>,
|
||||
<a class="reference internal" href="../../apps/global.html#confval-4"><code class="xref std std-confval docutils literal notranslate"><span class="pre">amplitudes.WoodAnderson.h</span></code></a>. Specifically, the difference in magnitude
|
||||
due to configuration using original values listed in
|
||||
<span id="id2">Richter [<a class="reference internal" href="../references.html#id62" title="C.F. Richter. An instrumental earthquake magnitude scale. Bull. Seismol. Soc. Am., 1:1 - 32, 1935. URL: https://resolver.caltech.edu/CaltechAUTHORS:20140804-143558638, doi:10.1785/BSSA0250010001.">57</a>]</span> and updated ones given in <span id="id3">Uhrhammer and Collins [<a class="reference internal" href="../references.html#id81" title="R.A. Uhrhammer and E.R. Collins. Synthesis of Wood-Anderson seismograms from broadband digital records. Bull. Seismol. Soc. Am., 80(3):702–716, 1990. doi:10.1785/BSSA0800030702.">64</a>]</span>
|
||||
result in a constant offset of 0.13 in those magnitudes which apply
|
||||
Wood-Anderson simulation, e.g. <a class="reference internal" href="../glossary.html#term-magnitude-local-ML"><span class="xref std std-term">ML</span></a>,
|
||||
<a class="reference internal" href="../glossary.html#term-magnitude-local-vertical-MLv"><span class="xref std std-term">MLv</span></a>, <a class="reference internal" href="../glossary.html#term-magnitude-local-custom-MLc"><span class="xref std std-term">MLc</span></a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="station-magnitudes">
|
||||
<h2>Station Magnitudes<a class="headerlink" href="#station-magnitudes" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Station magnitudes are computed automatically by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a> or interactively
|
||||
by <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> from measured amplitudes based on distance-dependent
|
||||
calibration curves which depend on magnitude type. When computing a set of
|
||||
magnitudes in <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> which is different from the set configured in
|
||||
<a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>, then scmag may later add the missing magnitudes automatically.
|
||||
Magnitude types for which the evaluation status is set to “rejected”, e.g., in
|
||||
scolv, will not be recomputed by scmag.</p>
|
||||
<section id="station-corrections">
|
||||
<span id="concepts-magnitudes-correction"></span><h3>Station corrections<a class="headerlink" href="#station-corrections" title="Permalink to this heading">¶</a></h3>
|
||||
<p>Linear station corrections applied to station magnitudes can be configured by
|
||||
global <a class="reference internal" href="configuration.html#global-bindings-config"><span class="std std-ref">binding parameters</span></a>:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p>Add a magnitude type profile where the name of the profile is the name of the
|
||||
magnitude itself,</p></li>
|
||||
<li><p>Configure the correction parameters.</p></li>
|
||||
</ol>
|
||||
<p>When using binding profiles, all referencing stations will be affected equally
|
||||
which is typically not intended. In contrast, applying station bindings requires
|
||||
to set up many bindings which may not be intended either.</p>
|
||||
<p>Therefore, you may add lines to the global module configuration in
|
||||
<code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code> where one line corresponds to one station with one magnitude
|
||||
and the corresponding correction parameter. The groups and the name of the
|
||||
parameters are identical to the global bindings parameters. All lines start with
|
||||
“<em>module.trunk</em>”. Example for an offset correction of
|
||||
<a class="reference internal" href="../glossary.html#term-magnitude-local-vertical-MLv"><span class="xref std std-term">MLv</span></a> measured station GE.UGM:</p>
|
||||
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">module.trunk.GE.UGM.magnitudes.MLv.offset</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">0.1</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>The configuration of parameters starting with <em>module.trunk.</em> is not
|
||||
supported by <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>. All corresponding configurations must be done
|
||||
by direclty editing the configuration file, e.g.,
|
||||
<code class="file docutils literal notranslate"><span class="pre">seiscomp/etc/global.cfg</span></code>.</p>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="network-magnitudes">
|
||||
<h2>Network Magnitudes<a class="headerlink" href="#network-magnitudes" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Network magnitudes are computed automatically by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a> or interactively
|
||||
by <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> from station magnitudes based on averaging station magnitudes.
|
||||
The averaging methods applied by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a> are configurable by
|
||||
<a class="reference internal" href="../../apps/scmag.html#confval-magnitudes.average"><code class="xref std std-confval docutils literal notranslate"><span class="pre">magnitudes.average</span></code></a>. Available are (<span id="id4">Rosenberger and Gasko [<a class="reference internal" href="../references.html#id70" title="J.L. Rosenberger and M. Gasko. Comparing location estimators: trimmed means, medians, and trimean. In D.C. Hoaglin, F. Mosteller, and J.W. Tukey, editors, Understanding Robust and Exploratory Data Analysis, pages 297-336. Wiley, New York, NY, 1983.">59</a>]</span>):</p>
|
||||
<ul class="simple">
|
||||
<li><p><em>mean</em>: the mean value from all station magnitudes.</p></li>
|
||||
<li><p><em>median</em>: the mean value from all station magnitudes.</p></li>
|
||||
<li><p><em>trimmedMean(X)</em>: gnores outlier station magnitudes by first removing the
|
||||
largest and the smallest <em>X</em> % of the observed values (percentiles). The mean is
|
||||
formed from the remaining station magnitudes.</p></li>
|
||||
<li><p><em>trimmedMedian(X)</em>: forms the median from all station magnitudes but returns
|
||||
the uncertainty by ignoring the largest and the smallest <em>X</em> % station
|
||||
magnitudes.</p></li>
|
||||
<li><p><em>medianTrimmedMean(X)</em>: returns the mean magnitude from all station magnitudes
|
||||
differing less than <em>X</em> magnitudes from the median.</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="aliases">
|
||||
<h2>Aliases<a class="headerlink" href="#aliases" title="Permalink to this heading">¶</a></h2>
|
||||
<p>New magnitude types (aliases) can be created based on existing magnitude and
|
||||
amplitude types but configured specifically.
|
||||
The setup procedure is outlined in the
|
||||
<a class="reference internal" href="../tutorials/magnitude-regionalization.html#tutorials-magnitude-aliases"><span class="std std-ref">tutorial on magnitude aliases</span></a>.</p>
|
||||
</section>
|
||||
<section id="regionalization">
|
||||
<span id="concepts-magnitudes-regionalization"></span><h2>Regionalization<a class="headerlink" href="#regionalization" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The computation of station magnitudes can be regionalized. This means that for
|
||||
a specific region specific conditions apply when computing magnitudes. The
|
||||
conditions include any parameter available for configuring a magnitude
|
||||
including global binding parameters such as magnitude calibration, distance
|
||||
and depth ranges, etc. As an example you may wish to apply different
|
||||
attenuation curves for computing MLv magnitudes to earthquakes in Eastern and
|
||||
in Western Canada.</p>
|
||||
<p>Regionalization is achieved by adding magnitude-type profiles in the magnitudes
|
||||
section of global module configuration parameters. Regionalization assumes
|
||||
defaults from global bindings but overrides the values when configured. The
|
||||
setup procedure including
|
||||
<a class="reference internal" href="#concepts-magnitudes-correction"><span class="std std-ref">station corrections</span></a> is outlined in the
|
||||
<a class="reference internal" href="../tutorials/magnitude-regionalization.html#tutorials-magnitude-region-aliases"><span class="std std-ref">tutorial on regionalization</span></a>.</p>
|
||||
</section>
|
||||
<section id="moment-magnitudes">
|
||||
<h2>Moment Magnitudes<a class="headerlink" href="#moment-magnitudes" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Moment magnitudes can be derived from all other network magnitudes by mapping of
|
||||
the original network magnitude, e.g., <em>Mx</em>, to a new moment magnitude <em>Mw(Mx)</em>.</p>
|
||||
<p>The mapping function can be configured for all original magnitude types except
|
||||
<a class="reference internal" href="../glossary.html#term-magnitude-derived-mB-Mw-mB"><span class="xref std std-term">mB</span></a> and
|
||||
<a class="reference internal" href="../glossary.html#term-magnitude-derived-Mwp-Mw-Mwp"><span class="xref std std-term">Mwp</span></a> where the mapping is hardcoded.
|
||||
Read the <a class="reference internal" href="../tutorials/magnitude-regionalization.html#tutorials-mags-moment"><span class="std std-ref">tutorial on moment magnitudes</span></a> for the
|
||||
configuration.</p>
|
||||
</section>
|
||||
<section id="summary-magnitude">
|
||||
<span id="concepts-magnitudes-summary"></span><h2>Summary Magnitude<a class="headerlink" href="#summary-magnitude" title="Permalink to this heading">¶</a></h2>
|
||||
<p>In order to account for different phenomena related to magnitude computation
|
||||
including magnitude saturation and application of different magnitude types at
|
||||
specific distance and depth ranges of the sources a summary magnitude can be
|
||||
computed from network magnitudes by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>. The summary magnitude is
|
||||
usually referred to as <em>M</em>. The name is configurable.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>Station, network and summary magnitudes are contained uniquely in one
|
||||
<a class="reference internal" href="../glossary.html#term-origin"><span class="xref std std-term">origin</span></a>.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="preferred-magnitude">
|
||||
<h2>Preferred Magnitude<a class="headerlink" href="#preferred-magnitude" title="Permalink to this heading">¶</a></h2>
|
||||
<p>From the list of computed network magnitudes and the summary magnitude,
|
||||
<a class="reference internal" href="../../apps/scevent.html#scevent"><span class="std std-ref">scevent</span></a> can automatically determine the preferred magnitude of the
|
||||
<a class="reference internal" href="../glossary.html#term-event"><span class="xref std std-term">event</span></a>. This may also be done interactively by operators in the
|
||||
<a class="reference internal" href="../../apps/scolv.html#scolv-sec-event-tab"><span class="std std-ref">Event tab of scolv</span></a> or by
|
||||
<a class="reference internal" href="../../apps/scolv.html#sec-scolv-custom-commit"><span class="std std-ref">custom commit buttons in scolv</span></a>.</p>
|
||||
</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="#">Magnitudes</a><ul>
|
||||
<li><a class="reference internal" href="#amplitudes">Amplitudes</a><ul>
|
||||
<li><a class="reference internal" href="#instrument-simulation">Instrument simulation</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#station-magnitudes">Station Magnitudes</a><ul>
|
||||
<li><a class="reference internal" href="#station-corrections">Station corrections</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#network-magnitudes">Network Magnitudes</a></li>
|
||||
<li><a class="reference internal" href="#aliases">Aliases</a></li>
|
||||
<li><a class="reference internal" href="#regionalization">Regionalization</a></li>
|
||||
<li><a class="reference internal" href="#moment-magnitudes">Moment Magnitudes</a></li>
|
||||
<li><a class="reference internal" href="#summary-magnitude">Summary Magnitude</a></li>
|
||||
<li><a class="reference internal" href="#preferred-magnitude">Preferred Magnitude</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="configuration.html"
|
||||
title="previous chapter">Configuration</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="locators.html"
|
||||
title="next chapter">Locators</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/magnitudes.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
344
share/doc/seiscomp/html/base/concepts/messaging.html
Normal file
344
share/doc/seiscomp/html/base/concepts/messaging.html
Normal file
@ -0,0 +1,344 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Messaging system — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="SeisComP modules" href="modules.html" />
|
||||
<link rel="prev" title="Concepts" href="../concepts.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="modules.html" title="SeisComP modules"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="../concepts.html" title="Concepts"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="messaging-system">
|
||||
<span id="concepts-messaging"></span><h1>Messaging system<a class="headerlink" href="#messaging-system" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter describes the messaging system used for exchanging parameter messages between
|
||||
different <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">SeisComP modules</span></a> during runtime.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>A typical real-time <cite>SeisComP</cite> system consists of data processing and other
|
||||
modules (clients) and a messaging bus. The messaging bus connects all the
|
||||
clients letting them exchange information by messages through this bus.
|
||||
The messaging system is a fundamental concept of SeisComP following the
|
||||
publish-subscribe pattern <span id="id1">[<a class="reference internal" href="../references.html#id186" title="Publish–subscribe pattern. Wikipedia. URL: https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern.">21</a>]</span>. It is provided by the <cite>SeisComP</cite>
|
||||
module <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>.</p>
|
||||
<p>Clients can be producers (sending messages) and/or consumers (receiving
|
||||
messages). The basic concept is really simple: A producer sends a message
|
||||
(some event parameter, arbitrary content) and a consumer read that message and tries to
|
||||
process it. That’s it. That is a very generic approach which requires clients
|
||||
to understand the message content of each other.</p>
|
||||
<p>In <cite>SeisComP</cite> this common messaging language consists of well defined message
|
||||
types and contents. The vast majority of messages sent around are so called
|
||||
<strong>notifiers</strong>.</p>
|
||||
<p>Notifiers inform about changes on the data model. They carry just three
|
||||
attributes:</p>
|
||||
<ul class="simple">
|
||||
<li><p>The unique identifier of the parent object</p></li>
|
||||
<li><p>The operation to apply (add, update or remove)</p></li>
|
||||
<li><p>The subject</p></li>
|
||||
</ul>
|
||||
<p>Speaking XML, a notifier looks like this:</p>
|
||||
<div class="highlight-xml notranslate"><div class="highlight"><pre><span></span><span class="cp"><?xml version="1.0" encoding="UTF-8"?></span>
|
||||
<span class="nt"><seiscomp</span><span class="w"> </span><span class="na">xmlns=</span><span class="s">"http://geofon.gfz-potsdam.de/ns/seiscomp-schema/0.11"</span><span class="w"> </span><span class="na">version=</span><span class="s">"0.11"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><Notifier</span><span class="w"> </span><span class="na">parentID=</span><span class="s">"EventParameters"</span><span class="w"> </span><span class="na">operation=</span><span class="s">"add"</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="nt"><Pick</span><span class="w"> </span><span class="na">publicID=</span><span class="s">"Pick/...."</span><span class="nt">></span>
|
||||
<span class="w"> </span><span class="cm"><!-- All pick attributes will be placed here --></span>
|
||||
<span class="w"> </span><span class="nt"></Pick></span>
|
||||
<span class="w"> </span><span class="nt"></Notifier></span>
|
||||
<span class="nt"></seiscomp></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Each client that receives such a notifier will take further actions if the
|
||||
information meets its interest. A simple example is <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a>. It
|
||||
receives Pick objects in the form as written above. It stores the pick to its
|
||||
internal data structures and when there are enough picks to form an Origin,
|
||||
it does its processing and probably sends an Origin as a result (again as
|
||||
notifier).</p>
|
||||
<figure class="align-center" id="id2">
|
||||
<img alt="sketch of a distributed system" src="../../_images/system.png" />
|
||||
<figcaption>
|
||||
<p><span class="caption-text">Schematic view on a distributed SeisComP system.</span><a class="headerlink" href="#id2" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</section>
|
||||
<section id="queues">
|
||||
<span id="messaging-queue"></span><h2>Queues<a class="headerlink" href="#queues" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The messaging server (<a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>) manages a set of queues. Each queue is
|
||||
independent and clients can only connect to <em>one</em> queue at a time within one
|
||||
connection. Messages sent to a queue are sorted by their arrival time and
|
||||
forwarded to clients in exactly that order. That is called a FIFO (first in
|
||||
first out) queue.</p>
|
||||
<p>For each queue a set of processors can be added where each message is
|
||||
piped through. One example is the dbstore processor which applies notifiers to
|
||||
a configured relational database management system (RDBMS).</p>
|
||||
<p>One could configure scmaster with two queues, one for production which
|
||||
populates a database and one for playbacks which does not populate a database.</p>
|
||||
<p>A client can be directed to either the one or the other queue:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>connection.server<span class="w"> </span><span class="o">=</span><span class="w"> </span>localhost/production
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>or</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scautopick<span class="w"> </span>-H<span class="w"> </span>localhost/production
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="groups">
|
||||
<span id="messaging-groups"></span><h2>Groups<a class="headerlink" href="#groups" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Groups are like topic filters for a message. A message is always being sent to
|
||||
a specific group or a specific client (peer-to-peer). A client can subscribe
|
||||
to one or many groups and it will only receive messages tagged with a group it
|
||||
has subscribed to.</p>
|
||||
<p>For example <a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a> processes waveforms sending detections or
|
||||
picks as pick notifiers to the PICK group. All clients subscribed to that group
|
||||
would also receive this information. If the queue is configured with the
|
||||
dbstore processor then it is guaranteed that the pick has been stored already
|
||||
in the database at the time of message arrival at the clients.</p>
|
||||
<p>A consumer of the PICK group messages is <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a>. Whenever it receives
|
||||
a new pick it will try to associate it or to locate a seismic event. After it
|
||||
succeeded it will send an origin to the LOCATION group and so on.</p>
|
||||
</section>
|
||||
<section id="scheme">
|
||||
<span id="messaging-scheme"></span><h2>Scheme<a class="headerlink" href="#scheme" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The messaging allows unencrypted or encrypted connections which are specified by
|
||||
the scheme parameter of the connection:</p>
|
||||
<ul class="simple">
|
||||
<li><p><cite>scmp</cite> (default): unencrypted,</p></li>
|
||||
<li><p><cite>scmps</cite>: encrypted.</p></li>
|
||||
</ul>
|
||||
<p>Scheme, host, port and <a class="reference internal" href="#messaging-scheme"><span class="std std-ref">queue</span></a> together form the
|
||||
connection URL of the messaging system which is configurable in
|
||||
<a class="reference internal" href="../../apps/global.html#confval-connection.server"><code class="xref std std-confval docutils literal notranslate"><span class="pre">connection.server</span></code></a> or set by the command-line option <code class="docutils literal notranslate"><span class="pre">-H</span></code>.</p>
|
||||
<p>Examples:</p>
|
||||
<ul>
|
||||
<li><p>Connect to the production queue of the messaging on localhost with default port.
|
||||
Not using encryption <cite>scmp</cite> can be assumed implicitly in global configuration</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">connection</span><span class="o">.</span><span class="n">server</span> <span class="o">=</span> <span class="n">localhost</span><span class="o">/</span><span class="n">production</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>On the command line use, e.g.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ scolv -H localhost
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
<li><p>Connect to the production queue of the messaging on localhost with default port.
|
||||
Using non-default secure encryption and port the scheme and the port must be
|
||||
provided explicitly in global configuration</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">connection</span><span class="o">.</span><span class="n">server</span> <span class="o">=</span> <span class="n">scmps</span><span class="p">:</span><span class="o">//</span><span class="n">localhost18181</span><span class="o">/</span><span class="n">production</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>On the command line use, e.g.</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ scolv -H scmps://localhost:18181/production
|
||||
</pre></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="database">
|
||||
<span id="messaging-db"></span><h2>Database<a class="headerlink" href="#database" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The <a class="reference internal" href="database.html#concepts-database"><span class="std std-ref">database</span></a> is populated by <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> with all
|
||||
kind of information which might depend on
|
||||
each other. It is crucial for operations that write operations are well
|
||||
synchronized. Part of the messaging contract is that clients get read-only
|
||||
database access from <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> and that they will never attempt to write
|
||||
into the database. In a fully-fledged <cite>SeisComP</cite> system the only instance that is
|
||||
allowed to populate the database is the dbstore plugin of <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>.</p>
|
||||
<p>When connecting from a client to the messaging, the database connection parameters
|
||||
are reported by <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>. They can be overridden by the global configuration
|
||||
or command-line option <code class="docutils literal notranslate"><span class="pre">-d</span></code>.</p>
|
||||
<p>Example:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">scolv</span> <span class="o">-</span><span class="n">H</span> <span class="n">localhost</span> <span class="o">-</span><span class="n">d</span> <span class="n">mysql</span><span class="p">:</span><span class="o">//</span><span class="n">sysop</span><span class="p">:</span><span class="n">sysop</span><span class="nd">@localhost</span><span class="o">/</span><span class="n">seiscomp</span><span class="o">-</span><span class="n">test</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="module-distribution">
|
||||
<span id="messaging-distribution"></span><h2>Module distribution<a class="headerlink" href="#module-distribution" title="Permalink to this heading">¶</a></h2>
|
||||
<p>The messaging server accepts TCP/IP connections enabling a module actually
|
||||
running anywhere in the network. It happens that this concept is not understood
|
||||
and users run on each computer another <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> instance to offload
|
||||
processing to more computers. Unfortunately each scmaster instance is
|
||||
configured with the same database connection which will most likely cause data
|
||||
inconsistencies because each group of modules which is connected to an scmaster
|
||||
instance does not know about the other scmaster clients and therefore ignore
|
||||
the sent updates.</p>
|
||||
<p>The correct approach is to run <strong>one</strong> scmaster on computer A which populates
|
||||
database X. Modules running on computer A, use</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>connection.server<span class="w"> </span><span class="o">=</span><span class="w"> </span>localhost/production
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>while modules running on computer B use</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>connection.server<span class="w"> </span><span class="o">=</span><span class="w"> </span>computerA/production
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>The database connection which is used by <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> will be reported to the
|
||||
clients when they connect so no explicit database configuration is necessary.</p>
|
||||
<p>The messaging connection can be explicitly provided on the command line using
|
||||
the option <code class="docutils literal notranslate"><span class="pre">-H</span></code> considering the comments on the
|
||||
<a class="reference internal" href="#messaging-scheme"><span class="std std-ref">scheme</span></a> and <a class="reference internal" href="#messaging-queue"><span class="std std-ref">queue</span></a>, e.g.</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>-H<span class="w"> </span>computerA/production
|
||||
</pre></div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="web-frontend">
|
||||
<h2>Web Frontend<a class="headerlink" href="#web-frontend" title="Permalink to this heading">¶</a></h2>
|
||||
<p>When running <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> a web frontend is available which can be adjusted to
|
||||
provide system information. The default port to access the web frontend is 18180:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>firefox<span class="w"> </span>localhost:18180
|
||||
</pre></div>
|
||||
</div>
|
||||
<figure class="align-center" id="id3">
|
||||
<a class="reference internal image-reference" href="../../_images/scmaster_web.png"><img alt="scmaster: web frontend" src="../../_images/scmaster_web.png" style="width: 10cm;" /></a>
|
||||
<figcaption>
|
||||
<p><span class="caption-text">scmaster: Web frontend</span><a class="headerlink" href="#id3" title="Permalink to this image">¶</a></p>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</section>
|
||||
<section id="related-modules">
|
||||
<h2>Related Modules<a class="headerlink" href="#related-modules" title="Permalink to this heading">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scm.html#scm"><span class="std std-ref">scm</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scmm.html#scmm"><span class="std std-ref">scmm</span></a></p></li>
|
||||
</ul>
|
||||
</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="#">Messaging system</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#queues">Queues</a></li>
|
||||
<li><a class="reference internal" href="#groups">Groups</a></li>
|
||||
<li><a class="reference internal" href="#scheme">Scheme</a></li>
|
||||
<li><a class="reference internal" href="#database">Database</a></li>
|
||||
<li><a class="reference internal" href="#module-distribution">Module distribution</a></li>
|
||||
<li><a class="reference internal" href="#web-frontend">Web Frontend</a></li>
|
||||
<li><a class="reference internal" href="#related-modules">Related Modules</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="../concepts.html"
|
||||
title="previous chapter">Concepts</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="modules.html"
|
||||
title="next chapter">SeisComP modules</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/messaging.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
317
share/doc/seiscomp/html/base/concepts/modules.html
Normal file
317
share/doc/seiscomp/html/base/concepts/modules.html
Normal file
@ -0,0 +1,317 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>SeisComP modules — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="SeisComP plugins" href="plugins.html" />
|
||||
<link rel="prev" title="Messaging system" href="messaging.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="plugins.html" title="SeisComP plugins"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="messaging.html" title="Messaging system"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="seiscomp-modules">
|
||||
<span id="concepts-modules"></span><h1>SeisComP modules<a class="headerlink" href="#seiscomp-modules" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This document describes the difference between command-line and daemon modules.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>SeisComP is not a single executable but it provides a set of <a class="reference internal" href="../glossary.html#term-trunk"><span class="xref std std-term">trunk</span></a> and
|
||||
<a class="reference internal" href="../glossary.html#term-standalone-module"><span class="xref std std-term">standalone</span></a> <a class="reference internal" href="../glossary.html#term-module"><span class="xref std std-term">modules</span></a>. Trunk modules
|
||||
can be</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="#concepts-modules-commandline"><span class="std std-ref">Command-line modules</span></a>,</p></li>
|
||||
<li><p><a class="reference internal" href="#concepts-modules-daemon"><span class="std std-ref">Daemon modules</span></a>.</p></li>
|
||||
</ul>
|
||||
<p>Modules are <a class="reference internal" href="#concepts-modules-config"><span class="std std-ref">configured by configuration files</span></a>
|
||||
either to be used directly or to generate its native configuration. Modules that
|
||||
need to convert the configuration or do not use the default configuration
|
||||
options (see below) are called <a class="reference internal" href="../glossary.html#term-standalone-module"><span class="xref std std-term">standalone modules</span></a>.
|
||||
All other modules are called <a class="reference internal" href="../glossary.html#term-trunk"><span class="xref std std-term">trunk</span></a> modules.</p>
|
||||
<p>Examples for standalone modules are <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a>, <a class="reference internal" href="../../apps/slarchive.html#slarchive"><span class="std std-ref">slarchive</span></a> and <a class="reference internal" href="../../apps/slmon.html#slmon"><span class="std std-ref">slmon</span></a>.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>In order to start or execute modules without <strong class="command">seiscomp exec</strong>
|
||||
(see below), the <cite>SeisComP</cite> SHELL environment variables must be known to the
|
||||
system. The variables and their values can be printed giving the full path to
|
||||
the <a class="reference internal" href="../../apps/seiscomp.html#seiscomp"><span class="std std-ref">seiscomp</span></a> tool. Example:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>/home/sysop/seiscomp/bin/seiscomp<span class="w"> </span>print<span class="w"> </span>env
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="daemon-tools">
|
||||
<span id="concepts-modules-daemon"></span><h2>Daemon Tools<a class="headerlink" href="#daemon-tools" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Daemon tools are <cite>SeisComP</cite> modules that can run automatically in the background
|
||||
without user interaction, e.g., for automatic data acquisition or data
|
||||
processing. The names of all daemon modules are listed when executing the
|
||||
<a class="reference internal" href="../../apps/seiscomp.html#seiscomp"><span class="std std-ref">seiscomp</span></a> tool with <strong class="command">list modules</strong>:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>list<span class="w"> </span>modules
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Daemon modules can be started to run in the background:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>scautopick
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When starting a daemon module, all verbosity output is logged to
|
||||
<a class="reference internal" href="#concepts-modules-logging"><span class="std std-ref">log files</span></a>. Daemon modules can also be executed
|
||||
as <a class="reference internal" href="#concepts-modules-commandline"><span class="std std-ref">command-line tools</span></a>.</p>
|
||||
</section>
|
||||
<section id="command-line-tools">
|
||||
<span id="concepts-modules-commandline"></span><h2>Command-Line Tools<a class="headerlink" href="#command-line-tools" title="Permalink to this heading">¶</a></h2>
|
||||
<p>All non-daemon modules are command-line modules. These command-line modules
|
||||
and most <a class="reference internal" href="#concepts-modules-daemon"><span class="std std-ref">daemon modules</span></a> can be executed on
|
||||
demand from the SHELL command-line. These modules can also be
|
||||
utilities or <a class="reference internal" href="../glossary.html#term-GUI"><span class="xref std std-term">graphical user interfaces (GUIs)</span></a>.
|
||||
For executing use the full path to the <a class="reference internal" href="../../apps/seiscomp.html#seiscomp"><span class="std std-ref">seiscomp</span></a> tool or, when the
|
||||
<cite>SeisComP</cite> environment is known, just call the module name along with command-line
|
||||
options, e.g.</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scolv<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
|
||||
scolv<span class="w"> </span><span class="o">[</span>options<span class="o">]</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Command-line modules are found in <code class="file docutils literal notranslate"><span class="pre">@ROOTDIR@/bin/</span></code> but they are <strong>NOT</strong>
|
||||
listed when executing</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>list<span class="w"> </span>modules
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Using options like <code class="xref std std-option docutils literal notranslate"><span class="pre">-h</span></code> the list of available command-line options can
|
||||
be learned.</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scbulletin<span class="w"> </span>-h
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In addition, any module configuration parameter can be specified on
|
||||
the command line overriding the configured parameter. For indicating that a
|
||||
module configuration parameter is set on the command line separate the value
|
||||
from the parameter by ‘=’ and provide the full set of sections separated by ‘.’.
|
||||
Example:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>--picker.loadAllPicks<span class="o">=</span><span class="nb">true</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When executing a module, all verbosity output is logged to
|
||||
<a class="reference internal" href="#concepts-modules-logging"><span class="std std-ref">log files</span></a>. The logging level can be controlled
|
||||
by configuration or by the command-line option <code class="xref std std-option docutils literal notranslate"><span class="pre">-v</span></code>.</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scbulletin<span class="w"> </span>-vvvv
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Detailed debugging information can also be printed on the command line during
|
||||
runtime using the <code class="xref std std-option docutils literal notranslate"><span class="pre">--debug</span></code> option:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scbulletin<span class="w"> </span>--debug
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>When starting a daemon module all verbosity output is stored in <code class="file docutils literal notranslate"><span class="pre">@LOGDIR@</span></code>
|
||||
or <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/var/log</span></code>. Daemon modules can also be executed as
|
||||
<a class="reference internal" href="#concepts-modules-commandline"><span class="std std-ref">command-line tools</span></a>.</p>
|
||||
</section>
|
||||
<section id="configuration">
|
||||
<span id="concepts-modules-config"></span><h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Each <a class="reference internal" href="../glossary.html#term-standalone-module"><span class="xref std std-term">standalone module</span></a> tries to read from three module configuration
|
||||
files whereas <a class="reference internal" href="../glossary.html#term-trunk"><span class="xref std std-term">trunk</span></a> modules try to read the six files. Note that
|
||||
configuration parameters defined earlier are overwritten if defined in files
|
||||
read in later:</p>
|
||||
<table class="docutils align-default">
|
||||
<thead>
|
||||
<tr class="row-odd"><th class="head"><p>File</p></th>
|
||||
<th class="head"><p>Standalone</p></th>
|
||||
<th class="head"><p>Trunk</p></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>$SEISCOMP_ROOT/etc/defaults/global.cfg</p></td>
|
||||
<td></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>$SEISCOMP_ROOT/etc/defaults/module.cfg</p></td>
|
||||
<td><p>X</p></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>$SEISCOMP_ROOT/etc/global.cfg</p></td>
|
||||
<td></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>$SEISCOMP_ROOT/etc/module.cfg</p></td>
|
||||
<td><p>X</p></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>~/.seiscomp/global.cfg</p></td>
|
||||
<td></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>~/.seiscomp/module.cfg</p></td>
|
||||
<td><p>X</p></td>
|
||||
<td><p>X</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>In addition to the module configuration files some modules such as
|
||||
<a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a> or <a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a> consider <a class="reference internal" href="../glossary.html#term-binding"><span class="xref std std-term">bindings</span></a>.
|
||||
Bindings provide parameters specific to stations. They are configured as
|
||||
per-station bindings or profiles used for multiple stations.</p>
|
||||
<p>The <a class="reference internal" href="../../apps/global.html#global-configuration"><span class="std std-ref">global configuration section</span></a> describes all
|
||||
available global configuration parameters for a trunk module. Modules typically
|
||||
do not make use of all available global parameters because they may be disabled,
|
||||
e.g., the messaging component. So the configuration of the messaging server is
|
||||
disabled, too.</p>
|
||||
<p>The concept section <a class="reference internal" href="configuration.html#concepts-configuration"><span class="std std-ref">Configuration</span></a> provides more
|
||||
details about configurations.</p>
|
||||
</section>
|
||||
<section id="logging">
|
||||
<span id="concepts-modules-logging"></span><h2>Logging<a class="headerlink" href="#logging" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Whenever operated, modules report the state of operation to log files. Trunk
|
||||
modules report the module and the start up log to <code class="file docutils literal notranslate"><span class="pre">@LOGDIR@/[module].log</span></code> and
|
||||
<code class="file docutils literal notranslate"><span class="pre">@ROOTDIR@/var/log/[module].log</span></code>, respectively. Standalone modules log to
|
||||
<code class="file docutils literal notranslate"><span class="pre">@ROOTDIR@/var/log/[module].log</span></code> only. The log files are rotated and the
|
||||
level of detail can be configured by <a class="reference internal" href="../../apps/global.html#confval-logging.level"><code class="xref std std-confval docutils literal notranslate"><span class="pre">logging.level</span></code></a>. More parameters
|
||||
in <code class="xref std std-confval docutils literal notranslate"><span class="pre">logging.*</span></code> provide more control over logging, e.g., the log file
|
||||
rotation.</p>
|
||||
</section>
|
||||
<section id="alias-modules">
|
||||
<span id="concepts-modules-aliaes"></span><h2>Alias Modules<a class="headerlink" href="#alias-modules" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Many <a class="reference internal" href="../glossary.html#term-trunk"><span class="xref std std-term">trunk</span></a> and <a class="reference internal" href="../glossary.html#term-standalone-module"><span class="xref std std-term">standalone modules</span></a> allow
|
||||
generating aliases as symbolic links to another module.
|
||||
These aliases are useful for running multiple instances of the same module with
|
||||
different configuration.</p>
|
||||
<p>Alias modules can be created or removed using the <a class="reference internal" href="../../apps/seiscomp.html#seiscomp"><span class="std std-ref">seiscomp</span></a> tool by
|
||||
providing the commands <strong class="command">alias create</strong> or <strong class="command">alias remove</strong>,
|
||||
respectively. Read the documentation of <a class="reference internal" href="../../apps/seiscomp.html#sec-seiscomp-aliases"><span class="std std-ref">seiscomp</span></a>
|
||||
for the details.</p>
|
||||
</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="#">SeisComP modules</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#daemon-tools">Daemon Tools</a></li>
|
||||
<li><a class="reference internal" href="#command-line-tools">Command-Line Tools</a></li>
|
||||
<li><a class="reference internal" href="#configuration">Configuration</a></li>
|
||||
<li><a class="reference internal" href="#logging">Logging</a></li>
|
||||
<li><a class="reference internal" href="#alias-modules">Alias Modules</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="messaging.html"
|
||||
title="previous chapter">Messaging system</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="plugins.html"
|
||||
title="next chapter">SeisComP plugins</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/modules.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
219
share/doc/seiscomp/html/base/concepts/plugins.html
Normal file
219
share/doc/seiscomp/html/base/concepts/plugins.html
Normal file
@ -0,0 +1,219 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>SeisComP plugins — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Database" href="database.html" />
|
||||
<link rel="prev" title="SeisComP modules" href="modules.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="database.html" title="Database"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="modules.html" title="SeisComP modules"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="seiscomp-plugins">
|
||||
<span id="concepts-plugins"></span><h1>SeisComP plugins<a class="headerlink" href="#seiscomp-plugins" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter describes the general use of plugins in SeisComP.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Plugins expand the functionality of <a class="reference internal" href="modules.html#concepts-modules"><span class="std std-ref">applications</span></a>.
|
||||
They are C++ shared object libraries which are dynamically loaded at runtime
|
||||
into an application.</p>
|
||||
<p>Typical plugins provide access to:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="database.html#concepts-database"><span class="std std-ref">Databases</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/global_recordstream.html#global-recordstream"><span class="std std-ref">Recordstream implementations</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../index.html#sec-index-extensions"><span class="std std-ref">Locator routines</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../index.html#sec-index-extensions"><span class="std std-ref">Amplitude and magnitude types</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scqc.html#scqc"><span class="std std-ref">Waveform quality</span></a>.</p></li>
|
||||
</ul>
|
||||
<p>The plugin files themselves are located in <code class="file docutils literal notranslate"><span class="pre">share/plugins</span></code>.</p>
|
||||
<p>By just loading a plugin an application does not change
|
||||
it’s way to function magically. Common plugins just implement a certain
|
||||
interface (see e.g. messaging or RecordStream) and exhibit that functionality
|
||||
by adding a new entry to the internal interface factory. As an example an
|
||||
application makes use of interface <code class="docutils literal notranslate"><span class="pre">DatabaseInterface</span></code>. Technically it
|
||||
creates a new object implementing a certain interface by calling the C++
|
||||
method:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">db</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>DatabaseInterface::Create<span class="o">(</span><span class="s2">"mysql"</span><span class="o">)</span><span class="p">;</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>Without having a plugin loaded the returned object will be NULL or to put it
|
||||
in other words, there is not implementation for mysql available.</p>
|
||||
<p>Once the plugin <code class="docutils literal notranslate"><span class="pre">dbmysql</span></code> is loaded into the application, an implementation
|
||||
for type mysql is added and will be available to the application. It is
|
||||
still required for the application to explicitly ask for a particular
|
||||
interface. That is most likely left to the user by adding a corresponding
|
||||
configuration option to the configuration file.</p>
|
||||
<p>That means, if an application loads two plugins, e.g. <code class="docutils literal notranslate"><span class="pre">dbmysql</span></code> and
|
||||
<code class="docutils literal notranslate"><span class="pre">dbpostgresql</span></code> that does not mean that it will not read from two database
|
||||
at a time. It means the user has now the option to either use a MySQL database
|
||||
or a PostgreSQL database. He still needs to make his choice in the
|
||||
configuration file.</p>
|
||||
<p>Trunk plugins are only supported as shared object libraries and therefore are
|
||||
required to be written in C++. Implementations for all available interfaces
|
||||
can be added. An incomplete list of SeisComP C++ interfaces:</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="messaging.html#concepts-messaging"><span class="std std-ref">Messaging</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="database.html#concepts-database"><span class="std std-ref">Database</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream</span></a></p></li>
|
||||
<li><p>Record formats</p></li>
|
||||
<li><p>Map projections</p></li>
|
||||
<li><p><a class="reference internal" href="../filter-grammar.html#filter-grammar"><span class="std std-ref">Time domain filters</span></a></p></li>
|
||||
<li><p>Importer</p></li>
|
||||
<li><p>Exporter</p></li>
|
||||
<li><p><strong>Amplitude processors</strong></p></li>
|
||||
<li><p><strong>Magnitude processors</strong></p></li>
|
||||
</ul>
|
||||
<p>This is just a subset of available extensible interface factories. The
|
||||
emphasized entries refer to the factories which are most commonly extended.</p>
|
||||
</section>
|
||||
<section id="location-and-configuration">
|
||||
<h2>Location and Configuration<a class="headerlink" href="#location-and-configuration" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Plugins are located in <code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/share/pugins</span></code>. In order to make a
|
||||
plugins available for a module it must be added to the configuration of
|
||||
<a class="reference internal" href="../../apps/global.html#confval-plugins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">plugins</span></code></a> of the global parameters of a module or in
|
||||
<a class="reference internal" href="../../apps/global.html#id1"><span class="std std-ref">Module Configuration</span></a>.</p>
|
||||
<p>Configuring <a class="reference internal" href="../../apps/global.html#confval-plugins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">plugins</span></code></a> with the name of a plugin will let the exclusively
|
||||
use this plugin and no other ones, e.g. default plugins. Example:</p>
|
||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">plugins</span> <span class="o">=</span> <span class="n">evrc</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In order to add a plugin to the default plugins or plugins loaded by before, e.g.
|
||||
by the global configuration, load these</p>
|
||||
</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="#">SeisComP plugins</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#location-and-configuration">Location and Configuration</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="modules.html"
|
||||
title="previous chapter">SeisComP modules</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="database.html"
|
||||
title="next chapter">Database</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/plugins.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
200
share/doc/seiscomp/html/base/concepts/recordstream.html
Normal file
200
share/doc/seiscomp/html/base/concepts/recordstream.html
Normal file
@ -0,0 +1,200 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>RecordStream — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="Inventory" href="inventory.html" />
|
||||
<link rel="prev" title="Waveform archives" href="waveformarchives.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="inventory.html" title="Inventory"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="waveformarchives.html" title="Waveform archives"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="recordstream">
|
||||
<span id="concepts-recordstream"></span><h1>RecordStream<a class="headerlink" href="#recordstream" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This document describes the RecordStream interface for accessing waveform data.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>A RecordStream refers to the interface which allows to retrieve records
|
||||
(time series) from arbitrary sources. An implementation can either be real-time
|
||||
and stream records continuously or time window based and just deliver what is
|
||||
available at the time of requesting data.
|
||||
A comprehensive list of RecordStream implementations is available in the
|
||||
<a class="reference internal" href="../../apps/global_recordstream.html#global-recordstream"><span class="std std-ref">technical documentation</span></a>.</p>
|
||||
<p>RecordStream implementations have a name such as “slink”, “fdsnws” or “file”
|
||||
which is used as scheme in the configuration URL. The location part of the URL
|
||||
is passed to the implementation. The scheme part is used to create the
|
||||
implementation. As one might have noticed, that RecordStream
|
||||
implementations can be added to existing applications with plugins.</p>
|
||||
<p>What do they do actually?</p>
|
||||
<p>Well, first of all they connect to or open the data source. If that fails, an
|
||||
error is logged. Then they are configured with time windows and channel
|
||||
identifieres. Once done, they are simply asked for new records in a loop. A
|
||||
RecordStream implementation can run forever or finish after a short time.
|
||||
The behavior depends on the implementation and configuration.</p>
|
||||
<p>The application uses RecordStreams like that:</p>
|
||||
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="c1"># The RecordStream URL passed is slink://localhost:18000</span>
|
||||
<span class="n">scheme</span> <span class="o">=</span> <span class="n">URL</span><span class="o">.</span><span class="n">scheme</span><span class="p">()</span> <span class="c1"># scheme = 'slink'</span>
|
||||
<span class="n">location</span> <span class="o">=</span> <span class="n">URL</span><span class="o">.</span><span class="n">location</span><span class="p">()</span> <span class="c1"># location = 'localhost:18000'</span>
|
||||
<span class="n">rs</span> <span class="o">=</span> <span class="n">RecordStream</span><span class="o">.</span><span class="n">Create</span><span class="p">(</span><span class="n">scheme</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">rs</span><span class="p">:</span>
|
||||
<span class="n">throw</span> <span class="n">Error</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">rs</span><span class="o">.</span><span class="n">setSource</span><span class="p">(</span><span class="n">location</span><span class="p">):</span>
|
||||
<span class="n">throw</span> <span class="n">Error</span><span class="p">()</span>
|
||||
|
||||
<span class="n">rs</span><span class="o">.</span><span class="n">setStartTime</span><span class="p">(</span><span class="n">Time</span><span class="p">(</span><span class="mi">2019</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">))</span>
|
||||
<span class="n">rs</span><span class="o">.</span><span class="n">addStream</span><span class="p">(</span><span class="s1">'GE'</span><span class="p">,</span> <span class="s1">'UGM'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'BH?'</span><span class="p">)</span>
|
||||
<span class="n">rs</span><span class="o">.</span><span class="n">addStream</span><span class="p">(</span><span class="s1">'GE'</span><span class="p">,</span> <span class="s1">'MORC'</span><span class="p">,</span> <span class="s1">''</span><span class="p">,</span> <span class="s1">'BH?'</span><span class="p">)</span>
|
||||
|
||||
<span class="k">while</span> <span class="p">(</span> <span class="n">rec</span> <span class="o">=</span> <span class="n">rs</span><span class="o">.</span><span class="n">next</span><span class="p">()</span> <span class="p">)</span>
|
||||
<span class="n">do_something_with</span><span class="p">(</span><span class="n">rec</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>In the example above the end time is not set, so actually an open time window
|
||||
should be read. That works pretty well for the Seedlink implemtation but the
|
||||
FDSNWS implementation would complain and issue an error because no end time
|
||||
was set. So configuring a RecordStream for an application requires some
|
||||
knowledge of the context and the supported features of the configured
|
||||
implementation.</p>
|
||||
<p>Although <cite>SeisComP</cite> ships with the Seedlink server, the processing application
|
||||
are not aware of the fact that they connect to Seedlink. All time series
|
||||
retrieval is done with the RecordStream concept. There is no knowledge about
|
||||
the underlying implementation. This leads to a high flexibility and
|
||||
implementations can be added without the need to modify the base <cite>SeisComP</cite>
|
||||
sources.</p>
|
||||
</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="#">RecordStream</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="waveformarchives.html"
|
||||
title="previous chapter">Waveform archives</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="inventory.html"
|
||||
title="next chapter">Inventory</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/recordstream.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
204
share/doc/seiscomp/html/base/concepts/waveformarchives.html
Normal file
204
share/doc/seiscomp/html/base/concepts/waveformarchives.html
Normal file
@ -0,0 +1,204 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<title>Waveform archives — SeisComP Release documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/seiscomp.css" type="text/css" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=72bcf2f2" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/seiscomp.css?v=c6da7ce6" />
|
||||
<link rel="stylesheet" type="text/css" href="../../_static/graphviz.css?v=eafc0fe6" />
|
||||
<script type="text/javascript" src="../../_static/seiscomp.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=823bb831"></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="RecordStream" href="recordstream.html" />
|
||||
<link rel="prev" title="Database" href="database.html" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<div class="container">
|
||||
<div class="brand">
|
||||
<img class="logo" src="../../_static/brands/seiscomp/text/white.svg"/>
|
||||
<!-- span class="title">SeisComP Release</span -->
|
||||
<span class="version">6.9.0</span>
|
||||
</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="recordstream.html" title="RecordStream"
|
||||
accesskey="N">
|
||||
next
|
||||
</a>
|
||||
</li>
|
||||
<li class="right">
|
||||
<a href="database.html" title="Database"
|
||||
accesskey="P">
|
||||
previous
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-0">
|
||||
<a href="../../index.html">Home</a>
|
||||
</li>
|
||||
<li class="nav-item nav-item-1">
|
||||
<a href="../concepts.html" accesskey="U">Concepts</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="fitted content" id="anchors-container">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section id="waveform-archives">
|
||||
<span id="concepts-waveformarchives"></span><h1>Waveform archives<a class="headerlink" href="#waveform-archives" title="Permalink to this heading">¶</a></h1>
|
||||
<section id="scope">
|
||||
<h2>Scope<a class="headerlink" href="#scope" title="Permalink to this heading">¶</a></h2>
|
||||
<p>This chapter describes waveform archives for long-term storage of miniSEED data.</p>
|
||||
</section>
|
||||
<section id="overview">
|
||||
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading">¶</a></h2>
|
||||
<p>While real-time data sources provide data for a rather short amount of time,
|
||||
long-term access to waveforms can be established through waveform archives.
|
||||
The <a class="reference internal" href="recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream interface</span></a> allows a combined access
|
||||
to real-time data and data in <a class="reference internal" href="#concepts-sds"><span class="std std-ref">SDS</span></a> or other archives.</p>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">Note</p>
|
||||
<p>It is assumed that instrument corrections applied to the recorded
|
||||
waveform data result in data in units of the real observations and their unmodified value.
|
||||
Therefore, it is recommended to store only unprocessed raw data in units of digital counts
|
||||
in the waveform archives and to provide the complete <a class="reference internal" href="inventory.html#concepts-inventory"><span class="std std-ref">inventory</span></a>
|
||||
referring to input data given in counts.</p>
|
||||
</div>
|
||||
</section>
|
||||
<section id="sds-archives">
|
||||
<span id="concepts-sds"></span><h2>SDS archives<a class="headerlink" href="#sds-archives" title="Permalink to this heading">¶</a></h2>
|
||||
<p>SeisComP uses the SeisComP Data Structure (SDS) for archiving miniSEED waveform data.
|
||||
It has the structure:</p>
|
||||
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>archive
|
||||
<span class="w"> </span>+<span class="w"> </span>year
|
||||
<span class="w"> </span>+<span class="w"> </span>network<span class="w"> </span>code
|
||||
<span class="w"> </span>+<span class="w"> </span>station<span class="w"> </span>code
|
||||
<span class="w"> </span>+<span class="w"> </span>channel<span class="w"> </span>code
|
||||
<span class="w"> </span>+<span class="w"> </span>one<span class="w"> </span>file<span class="w"> </span>per<span class="w"> </span>day<span class="w"> </span>and<span class="w"> </span>location,<span class="w"> </span>e.g.<span class="w"> </span>NET.STA.LOC.CHAN.D.YEAR.DOY
|
||||
</pre></div>
|
||||
</div>
|
||||
<p>SeisComP ships with <a class="reference internal" href="../../apps/slarchive.html#slarchive"><span class="std std-ref">slarchive</span></a> to create SDS archives from a miniSEED waveform
|
||||
buffer by <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a> in real time and with <a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a> to intergrate miniSEED
|
||||
records from files into an SDS archive. <a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a> can also be used to retrieve
|
||||
miniSEED records from an SDS archive.</p>
|
||||
</section>
|
||||
<section id="access-to-waveform-archives">
|
||||
<h2>Access to waveform archives<a class="headerlink" href="#access-to-waveform-archives" title="Permalink to this heading">¶</a></h2>
|
||||
<p>Access from SeisComP processing and GUI modules to waveform archives is realized by
|
||||
<a class="reference internal" href="recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream implementations</span></a>.
|
||||
The continuity of SDS archives can be monitored by <a class="reference internal" href="../../apps/scardac.html#scardac"><span class="std std-ref">scardac</span></a> and exposed by
|
||||
the <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws availability feature</span></a>.
|
||||
miniSEED waveforms in SDS archives, can interactively retrieved using <a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a>.
|
||||
Waveforms stored in SDS archives can be served to clients, e.g. using <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a>.</p>
|
||||
</section>
|
||||
<section id="related-modules">
|
||||
<h2>Related modules<a class="headerlink" href="#related-modules" title="Permalink to this heading">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><span class="xref std std-ref">caps_plugin</span></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scardac.html#scardac"><span class="std std-ref">scardac</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a></p></li>
|
||||
<li><p><a class="reference internal" href="../../apps/slarchive.html#slarchive"><span class="std std-ref">slarchive</span></a></p></li>
|
||||
</ul>
|
||||
</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="#">Waveform archives</a><ul>
|
||||
<li><a class="reference internal" href="#scope">Scope</a></li>
|
||||
<li><a class="reference internal" href="#overview">Overview</a></li>
|
||||
<li><a class="reference internal" href="#sds-archives">SDS archives</a></li>
|
||||
<li><a class="reference internal" href="#access-to-waveform-archives">Access to waveform archives</a></li>
|
||||
<li><a class="reference internal" href="#related-modules">Related modules</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="database.html"
|
||||
title="previous chapter">Database</a></p>
|
||||
</div>
|
||||
<div>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="recordstream.html"
|
||||
title="next chapter">RecordStream</a></p>
|
||||
</div>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="../../_sources/base/concepts/waveformarchives.rst.txt"
|
||||
rel="nofollow">Show Source</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<div class="horizontal layout content">
|
||||
<a class="fade-in" href="https://www.gempa.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gempa.svg"/>
|
||||
</a>
|
||||
<div class="stretched align-center fitted content">
|
||||
<div>
|
||||
Version <b>6.9.0</b> Release
|
||||
</div>
|
||||
<div class="copyright">
|
||||
Copyright © gempa GmbH, GFZ Potsdam.
|
||||
</div>
|
||||
</div>
|
||||
<a class="fade-in" href="https://www.gfz-potsdam.de" target="_blank">
|
||||
<img class="brand" src="../../_static/brands/gfz.svg"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user