[seiscomp, scanloc] Install, add .gitignore

This commit is contained in:
2025-10-09 15:07:02 +02:00
commit 20f5301bb1
2848 changed files with 1315858 additions and 0 deletions

View File

@ -0,0 +1,295 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Add a new station &#8212; 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="Get real-time data from a remote Seedlink server (single station)" href="waveforms.html" />
<link rel="prev" title="Upgrading SeisComP" href="upgrading.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="waveforms.html" title="Get real-time data from a remote Seedlink server (single station)"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="upgrading.html" title="Upgrading SeisComP"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="add-a-new-station">
<span id="tutorials-addstation"></span><h1>Add a new station<a class="headerlink" href="#add-a-new-station" title="Permalink to this heading"></a></h1>
<p>This tutorial guides you through the most common activities
involved in configuring a single new station in your existing SeisComP system.
Depending on your needs, you will use parts of other tutorials to do this.</p>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p><a class="reference internal" href="postinstall.html#tutorials-postinstall"><span class="std std-ref">Installation on Ubuntu</span></a></p></li>
<li><p>An understanding of <a class="reference internal" href="../concepts/inventory.html#concepts-inventory"><span class="std std-ref">Inventory</span></a>.</p></li>
</ul>
<p>You may also need to consult</p>
<ul class="simple">
<li><p><a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a></p></li>
<li><p><a class="reference internal" href="processing.html#tutorials-processing"><span class="std std-ref">Configure real-time processing</span></a></p></li>
<li><p><a class="reference internal" href="archiving.html#tutorials-archiving"><span class="std std-ref">Set up local waveform archiving</span></a></p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>Optionally, data for the new station are acquired and archived in real time.</p></li>
<li><p>Optionally, the new station is used for automatic real-time data processing.</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>Variable</p></li>
</ul>
<hr class="docutils" />
<section id="before-you-start">
<h2>Before you start<a class="headerlink" href="#before-you-start" title="Permalink to this heading"></a></h2>
<p>Try to answer the questions:</p>
<ul class="simple">
<li><p>where will you get data?</p></li>
<li><p>if you want to process data locally, where will you get inventory?</p></li>
<li><p>which data will you share?</p></li>
<li><p>how long will you archive, and what streams?</p></li>
</ul>
<p>For this example, well add the GRSN Station Collm (CLL)
from the GR network.</p>
<ul class="simple">
<li><p>If you want to process data on this system, you will need
inventory (metadata).
Metadata can be obtained from many different sources or created from scratch.</p></li>
<li><p>If you dont want to process on this system, you wont need inventory,
but you will have to create key file by hand for acquisition and archiving.</p></li>
</ul>
</section>
<section id="obtaining-inventory-for-your-station">
<h2>Obtaining inventory for your station<a class="headerlink" href="#obtaining-inventory-for-your-station" title="Permalink to this heading"></a></h2>
<p>For processing, you will need inventory for the new station.
How to obtain this will vary.
You can fetch inventory from:</p>
<ul class="simple">
<li><p>Other SeisComP systems. Use <a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a> to fetch inventories.</p></li>
<li><p>EIDA nodes <span id="id1">[<a class="reference internal" href="../references.html#id103" title="EIDA. European Integrated Data Archive, Orfeus. URL: https://www.orfeus-eu.org/data/eida/.">4</a>]</span>. Use web interfaces such as web browsers or <cite>wget</cite>
to fetch an inventory.</p></li>
<li><p>Data centers providing <span id="id2"><em>FDSNWS</em> [<a class="reference internal" href="../references.html#id110" title="FDSNWS. International Federation of Digital Seismograph Networks. URL: http://www.fdsn.org/webservices/.">8</a>]</span>. Use web interfaces such as web browsers
or <cite>wget</cite> to fetch an inventory.</p></li>
<li><p>Your own or shared user repositories on <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>.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Create and share inventories</p>
<p>gempas <span id="id4"><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> is a tool for creating inventory from scratch and
community sharing. Create inventories for new or old networks and stations
from permanent or temporary deployments.
SMP provides inventories in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format in multiple versions
which can be used without modification.</p>
</div>
</section>
<section id="configuring-inventory">
<h2>Configuring inventory<a class="headerlink" href="#configuring-inventory" title="Permalink to this heading"></a></h2>
<p>Suppose that, by one of the methods above,
we have it in a single file, <code class="file docutils literal notranslate"><span class="pre">inventory_CLL.xml</span></code>.
This must be converted from StationXML to SeisComP XML.
The resulting file goes into
<code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/inventory</span></code>.
See the chapter on <a class="reference internal" href="../concepts/inventory.html#concepts-inventory"><span class="std std-ref">Inventory</span></a>.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>~/seiscomp/bin/seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>import_inv<span class="w"> </span>fdsnxml<span class="w"> </span>~/inventory_CLL.xml
Generating<span class="w"> </span>output<span class="w"> </span>to<span class="w"> </span>/home/user/seiscomp/etc/inventory/inventory_CLL.xml
No<span class="w"> </span>inventory<span class="w"> </span><span class="nb">read</span><span class="w"> </span>from<span class="w"> </span>inventory<span class="w"> </span>db
Create<span class="w"> </span>empty<span class="w"> </span>one
Processing<span class="w"> </span>/home/user/inventory_CLL.xml
<span class="w"> </span>-<span class="w"> </span>parsing<span class="w"> </span>StationXML
<span class="w"> </span>-<span class="w"> </span>converting<span class="w"> </span>into<span class="w"> </span>SeisComP-XML
Finished<span class="w"> </span>processing
Writing<span class="w"> </span>inventory<span class="w"> </span>to<span class="w"> </span>/home/user/seiscomp/etc/inventory/inventory_CLL.xml
</pre></div>
</div>
<p>When inventory is loaded, you will see your station in the results
of <a class="reference internal" href="../../apps/scinv.html#scinv"><span class="std std-ref">scinv</span></a> with the <cite>ls</cite> option:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp/bin/seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scinv<span class="w"> </span>ls
WARNING:<span class="w"> </span>/home/user/seiscomp/etc/inventory/README<span class="w"> </span>ignored:<span class="w"> </span>wrong<span class="w"> </span>extension
<span class="o">[</span>..<span class="o">]</span>
Parsing<span class="w"> </span>/home/user/seiscomp/etc/inventory/MY.xml<span class="w"> </span>...<span class="w"> </span><span class="k">done</span>
Parsing<span class="w"> </span>/home/user/seiscomp/etc/inventory/GE.xml<span class="w"> </span>...<span class="w"> </span><span class="k">done</span>
<span class="o">[</span>..<span class="o">]</span>
Merging<span class="w"> </span>inventory<span class="w"> </span>...<span class="w"> </span><span class="k">done</span>
<span class="w"> </span>network<span class="w"> </span>GR<span class="w"> </span>German<span class="w"> </span>Regional<span class="w"> </span>Seismic<span class="w"> </span>Network,<span class="w"> </span>BGR<span class="w"> </span>Hannover
<span class="w"> </span>epoch<span class="w"> </span><span class="m">1976</span>-02-17
<span class="w"> </span>station<span class="w"> </span>CLL<span class="w"> </span>GRSN<span class="w"> </span>Station<span class="w"> </span>Collm
<span class="w"> </span>epoch<span class="w"> </span><span class="m">1993</span>-04-01
<span class="w"> </span>location<span class="w"> </span>__
<span class="w"> </span>epoch<span class="w"> </span><span class="m">2007</span>-02-07
<span class="w"> </span>channel<span class="w"> </span>BHE
<span class="w"> </span>epoch<span class="w"> </span><span class="m">2007</span>-02-07
<span class="w"> </span>channel<span class="w"> </span>BHN
<span class="w"> </span>epoch<span class="w"> </span><span class="m">2007</span>-02-07
<span class="w"> </span>channel<span class="w"> </span>BHZ
<span class="w"> </span>epoch<span class="w"> </span><span class="m">2007</span>-02-07
<span class="w"> </span>channel<span class="w"> </span>HHE
<span class="w"> </span>epoch<span class="w"> </span><span class="m">2007</span>-02-07
</pre></div>
</div>
<p>This shows the networks, stations, and channels, and the time spans for
which they are known.
For active stations, there must be an epoch (time span) with a start date
but no end date shown for the desired channel.</p>
<p>The inventory is not yet synchronized with the database. To finalize
inventory configuration, run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ seiscomp update-config
</pre></div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>If you get an error, make sure that MySQL/MariaDB is running and the
database has been created correctly (see <a class="reference internal" href="postinstall.html#tutorials-postinstall"><span class="std std-ref">Installation on Ubuntu</span></a>).</p>
</div>
</section>
<section id="configuring-for-acquisition">
<h2>Configuring for acquisition<a class="headerlink" href="#configuring-for-acquisition" title="Permalink to this heading"></a></h2>
<p>If youve configured inventory above, youll already have a top-level
key file for the station in the <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/key</span></code> directory.</p>
<ul class="simple">
<li><p>You will need to know the waveform source, channels to be acquired,
location code used, if any.
See <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a> for the remaining details.</p></li>
</ul>
</section>
<section id="configuring-processing">
<h2>Configuring processing<a class="headerlink" href="#configuring-processing" title="Permalink to this heading"></a></h2>
<p>Now you can enable the station for processing.
Follow the <a class="reference internal" href="processing.html#tutorials-processing"><span class="std std-ref">Configure real-time processing</span></a> tutorial.</p>
</section>
<section id="configuring-for-archiving">
<h2>Configuring for archiving<a class="headerlink" href="#configuring-for-archiving" title="Permalink to this heading"></a></h2>
<p>If you want to archive waveforms, consider how long they should be retained.
See <a class="reference internal" href="archiving.html#tutorials-archiving"><span class="std std-ref">Set up local waveform archiving</span></a> for how to do this.</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="#">Add a new station</a><ul>
<li><a class="reference internal" href="#before-you-start">Before you start</a></li>
<li><a class="reference internal" href="#obtaining-inventory-for-your-station">Obtaining inventory for your station</a></li>
<li><a class="reference internal" href="#configuring-inventory">Configuring inventory</a></li>
<li><a class="reference internal" href="#configuring-for-acquisition">Configuring for acquisition</a></li>
<li><a class="reference internal" href="#configuring-processing">Configuring processing</a></li>
<li><a class="reference internal" href="#configuring-for-archiving">Configuring for archiving</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="upgrading.html"
title="previous chapter">Upgrading SeisComP</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="waveforms.html"
title="next chapter">Get real-time data from a remote Seedlink server (single station)</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/addstation.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 &copy; 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>

View File

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Set up local waveform archiving &#8212; 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="Configure real-time processing" href="processing.html" />
<link rel="prev" title="Get real-time data from a remote Seedlink server (single station)" href="waveforms.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="processing.html" title="Configure real-time processing"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="waveforms.html" title="Get real-time data from a remote Seedlink server (single station)"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="set-up-local-waveform-archiving">
<span id="tutorials-archiving"></span><h1>Set up local waveform archiving<a class="headerlink" href="#set-up-local-waveform-archiving" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Set up <a class="reference internal" href="../../apps/slarchive.html#slarchive"><span class="std std-ref">slarchive</span></a> with its necessary bindings</p></li>
<li><p>Set up <cite>purge_datafiles</cite> in crontab</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Have SeisComP installed</p></li>
<li><p>Tutorial on <a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">adding a new station</span></a></p></li>
<li><p>Tutorial on <a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">real-time data acquisition</span></a>
so that you have local data for GE stations.
Alternatively you may already obtain real-time waveform data from
somewhere else (see <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a>).</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>Save real-time data in a local archive for later processing.</p></li>
<li><p>See <a class="reference internal" href="../glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a> day files for GE stations in your local <a class="reference internal" href="../concepts/waveformarchives.html#concepts-waveformarchives"><span class="std std-ref">waveform archive</span></a>.</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>5 minutes</p></li>
</ul>
<p>Related tutorial(s):</p>
<ul class="simple">
<li><p>Tutorial on <a class="reference internal" href="servefdsnws.html#tutorials-servefdsnws"><span class="std std-ref">Enable local FDSNWS server</span></a></p></li>
<li><p>Tutorial on <a class="reference internal" href="waveformplayback.html#tutorials-waveformplayback"><span class="std std-ref">Play back archived waveforms</span></a></p></li>
</ul>
<hr class="docutils" />
<p><strong>Motivation</strong>:
Without activating archiving, your local Seedlink server
will only keep waveforms for a short time.
This makes it hard to review old events, for example.</p>
<p>In this example, well arrange for keeping waveforms for one week.
Before starting, youll need bindings for your stations;
see the tutorials <a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">Add real-time stations from GEOFON</span></a>
or <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a>.</p>
<p>The <strong class="program">slarchive</strong> collects data and archives it
locally using a <a class="reference internal" href="../glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> file system structure of
nested subdirectories and systematically named files.</p>
<section id="in-scconfig">
<h2>In scconfig<a class="headerlink" href="#in-scconfig" title="Permalink to this heading"></a></h2>
<ol class="arabic">
<li><p>Under the Modules tab, go to Acquisition, and select <strong class="program">slarchive</strong>.
Here you can see the default parameters used.
By default, <strong class="program">slarchive</strong> connects to your local Seedlink server,
and archives to your local disk.</p></li>
<li><p>Under the System tab, select the line for <strong class="program">slarchive</strong>, and click
“Enable module(s)” button at the top.</p></li>
<li><p>Under Bindings:
On RHS right-click “slarchive” to add an slarchive profile.
Name it week, to keep waveforms for 7 days, and click Ok.
The new profile appears in the (bottom right corner of <strong class="program">scconfig</strong>.
Double click on the profile to open its settings.
Unlock the box labeled “keep”, and change the default from 30 to 7.</p>
<p>Once you have a binding profile, drag it over all the stations it
should apply to, under “Networks” on the left-hand side of the
bindings tool.</p>
</li>
</ol>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>The name week is just a label.
Its functionality comes from changing the value of the <cite>keep</cite> parameter.
Changing the <em>name</em> of a binding profile does not change its function.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>You can also choose which channels should be archived,
using the “<a class="reference internal" href="../../apps/slarchive.html#confval-selectors"><code class="xref std std-confval docutils literal notranslate"><span class="pre">selectors</span></code></a>” box.
For instance, you may collect data at several sample rates,
and only wish to archive the highest rate.
If you collect LH, BH, HH streams at 0.1, 20, and 100 samples
per second, respectively, you might retain only the HH streams,
by setting “<a class="reference internal" href="../../apps/slarchive.html#confval-selectors"><code class="xref std std-confval docutils literal notranslate"><span class="pre">selectors</span></code></a>” to “HH”.</p>
</div>
<ol class="arabic simple">
<li><p>Then return to System, and click Update configuration.
Make sure the <strong class="program">slarchive</strong> module, or no module, is selected.</p></li>
<li><p>Restart <strong class="program">slarchive</strong>.</p></li>
<li><p>Adjust the <a class="reference internal" href="../concepts/recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream</span></a> for making use of the archived waveforms
from within a <a class="reference internal" href="../glossary.html#term-GUI"><span class="xref std std-term">GUI</span></a> or automatic data processing modules.</p></li>
</ol>
</section>
<section id="command-line">
<h2>Command line<a class="headerlink" href="#command-line" title="Permalink to this heading"></a></h2>
<p>You will need to edit each of your top-level key files to refer to
a new binding profile.
e.g.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd ~/seiscomp/etc/key
$ vi station_GR_CLL
</pre></div>
</div>
<p>Add the line <cite>slarchive:week</cite> to whatever lines are already there.
Afterwards it will look something like this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Binding references</span>
<span class="k">global</span><span class="p">:</span><span class="n">BH</span>
<span class="n">scautopick</span><span class="p">:</span><span class="n">default</span>
<span class="n">seedlink</span><span class="p">:</span><span class="n">geofon</span>
<span class="n">slarchive</span><span class="p">:</span><span class="n">week</span>
</pre></div>
</div>
<p>Repeat this for the top-level key file of each station
you wish this binding to apply to.
Now create the binding profile in the key directory.
This is a file with a name corresponding to the binding profile name; here: week</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ cd ~/seiscomp/etc/key
$ mkdir slarchive
$ vi slarchive/profile_week
# Number of days the data is kept in the archive. This requires purge_datafile
# to be run as cronjob.
keep = 7
$ seiscomp enable slarchive
$ seiscomp update-config slarchive
$ seiscomp restart slarchive
slarchive is not running
starting slarchive
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Left unattended, your disk will eventually fill up with archived data.
To prevent this you will need a script like <cite>purge_database</cite>,
which is provided with SeisComP.
This can be run once per day using the <cite>cron</cite> feature of your system.
The command:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ seiscomp print crontab
</pre></div>
</div>
<p>will print a number of lines to the terminal.
Type <cite>crontab -e</cite> and insert these lines into the crontab file for your
user (typically <cite>sysop</cite>).
Exit your crontab editor.
Displaying your crontab should now show a line for <cite>purge_database</cite>.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ crontab -l
20 3 * * * /home/sysop/seiscomp/var/lib/slarchive/purge_datafiles &gt;/dev/null 2&gt;&amp;1
[There may be other lines too.]
</pre></div>
</div>
<p>This shows you that the <cite>purge_datafiles</cite> script
will run every day at 3:20 a.m.</p>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you examine the <cite>purge_datafiles</cite> script, you will see that all it does
is look for files with a last modified time older than a certain number
of days ago.
The number of days to keep can be set station-by-station using the
ARCH_KEEP feature.
A convenient way to do this for many stations is with
multiple binding profiles, one for each length of time desired.</p>
</div>
</section>
<section id="checking-archiving-is-functioning">
<h2>Checking archiving is functioning<a class="headerlink" href="#checking-archiving-is-functioning" title="Permalink to this heading"></a></h2>
<ul>
<li><p>If <strong class="program">seedlink</strong> is configured correctly, a new stations streams
appears in output from <strong class="program">slinktool</strong>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ slinktool -Q : | grep CLL
GR CLL HHZ D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:49.0299
GR CLL HHE D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:45.0299
GR CLL HHN D 2020/04/01 01:11:57.6649 - 2020/04/01 07:28:39.2299
</pre></div>
</div>
<p>This shows three streams being acquired from station CLL.
The second time shown is the time of the most recent data for each stream.</p>
</li>
<li><p>If <strong class="program">slarchive</strong> is configured correctly, waveform data for the
station appears in <strong class="program">slarchive</strong>s SDS archive directory:</p>
<blockquote>
<div><div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>ls<span class="w"> </span>-l<span class="w"> </span>seiscomp/var/lib/archive/2020/GR/CLL
total<span class="w"> </span><span class="m">12</span>
drwxr-xr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>user<span class="w"> </span>user<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Apr<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">06</span>:30<span class="w"> </span>HHE.D
drwxr-xr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>user<span class="w"> </span>user<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Apr<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">06</span>:30<span class="w"> </span>HHN.D
drwxr-xr-x<span class="w"> </span><span class="m">2</span><span class="w"> </span>user<span class="w"> </span>user<span class="w"> </span><span class="m">4096</span><span class="w"> </span>Apr<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">06</span>:30<span class="w"> </span>HHZ.D
$<span class="w"> </span>ls<span class="w"> </span>-l<span class="w"> </span>seiscomp/var/lib/archive/2020/GR/CLL/HHZ.D/
total<span class="w"> </span><span class="m">12728</span>
-rw-r--r--<span class="w"> </span><span class="m">1</span><span class="w"> </span>user<span class="w"> </span>user<span class="w"> </span><span class="m">5492224</span><span class="w"> </span>Mar<span class="w"> </span><span class="m">31</span><span class="w"> </span><span class="m">00</span>:04<span class="w"> </span>GR.CLL..BHZ.D.2020.090
-rw-r--r--<span class="w"> </span><span class="m">1</span><span class="w"> </span>user<span class="w"> </span>user<span class="w"> </span><span class="m">7531008</span><span class="w"> </span>Apr<span class="w"> </span><span class="m">1</span><span class="w"> </span><span class="m">00</span>:03<span class="w"> </span>GR.CLL..BHZ.D.2020.091
</pre></div>
</div>
</div></blockquote>
</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="#">Set up local waveform archiving</a><ul>
<li><a class="reference internal" href="#in-scconfig">In scconfig</a></li>
<li><a class="reference internal" href="#command-line">Command line</a></li>
<li><a class="reference internal" href="#checking-archiving-is-functioning">Checking archiving is functioning</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="waveforms.html"
title="previous chapter">Get real-time data from a remote Seedlink server (single station)</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="processing.html"
title="next chapter">Configure real-time processing</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/archiving.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 &copy; 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>

View File

@ -0,0 +1,460 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Add real-time stations from GEOFON &#8212; 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="Enable local FDSNWS server" href="servefdsnws.html" />
<link rel="prev" title="Configure real-time processing" href="processing.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="servefdsnws.html" title="Enable local FDSNWS server"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="processing.html" title="Configure real-time processing"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="add-real-time-stations-from-geofon">
<span id="tutorials-geofon-waveforms"></span><h1>Add real-time stations from GEOFON<a class="headerlink" href="#add-real-time-stations-from-geofon" title="Permalink to this heading"></a></h1>
<p>You will use <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> to:</p>
<ul class="simple">
<li><p>Add stations of the GEOFON seismic network, obtained from GEOFON,
as a source of data.</p></li>
<li><p>Configure bindings to see these in your local system.</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p><a class="reference internal" href="postinstall.html#tutorials-postinstall"><span class="std std-ref">Installation</span></a></p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p><strong class="program">slinktool -Q</strong> locally shows GE streams are available</p></li>
<li><p><a class="reference internal" href="../../apps/scrttv.html#scrttv"><span class="std std-ref">scrttv</span></a> locally shows the GE station traces</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>10-15 minutes</p></li>
</ul>
<p>Related tutorial(s):</p>
<ul class="simple">
<li><p>Tutorial on <a class="reference internal" href="archiving.html#tutorials-archiving"><span class="std std-ref">Set up local waveform archiving</span></a></p></li>
<li><p>Tutorial on <a class="reference internal" href="servefdsnws.html#tutorials-servefdsnws"><span class="std std-ref">Enable local FDSNWS server</span></a></p></li>
</ul>
<hr class="docutils" />
<p>GEOFON operates a global broadband seismic network jointly with many
partner institutions with focus on EuroMed and Indian Ocean regions.
As of 2020, the network consists presently of 78 high-quality active stations,
for which data is acquired in real-time.
This network has been assigned the network code <em>GE</em> by the
International Federation of Digital Seismograph Networks (FDSN).</p>
<p>The GEOFON data centre in Potsdam provides real-time data feeds for these
stations.
This tutorial demonstrates how to use this data in your own SeisComP system.</p>
<p>The steps involved are:</p>
<ul class="simple">
<li><p>Download metadata for the stations of interest.</p></li>
<li><p>Import them into your SeisComP system, and create bindings.</p></li>
<li><p>View the stations and their traces in the SeisComP GUIs.</p></li>
</ul>
<section id="check-data-are-available">
<h2>Check data are available<a class="headerlink" href="#check-data-are-available" title="Permalink to this heading"></a></h2>
<p>First, well query the upstream Seedlink server, which runs on
host <cite>geofon.gfz-potsdam.de</cite> at port 18000.
We do this with SeisComPs <a class="reference internal" href="../../apps/slinktool.html#slinktool"><span class="std std-ref">slinktool</span></a> command, giving the <code class="docutils literal notranslate"><span class="pre">-L</span></code> option
to <a class="reference internal" href="../../apps/slinktool.html#slinktool"><span class="std std-ref">slinktool</span></a></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>slinktool<span class="w"> </span>-L<span class="w"> </span>geofon.gfz-potsdam.de
6C<span class="w"> </span>GF01<span class="w"> </span>GF01
6C<span class="w"> </span>GF02<span class="w"> </span>GF02
6C<span class="w"> </span>GF03<span class="w"> </span>GF03
<span class="o">[</span>..<span class="o">]</span>
ZB<span class="w"> </span>URD20<span class="w"> </span>URD20
ZB<span class="w"> </span>VAL41<span class="w"> </span>VAL41
ZB<span class="w"> </span>VOS<span class="w"> </span>VOS
</pre></div>
</div>
<p>This is a long list.
It shows the network code and station code of each
of the stations for which data is available from this Seedlink server.
Well just be interested in a few stations, namely those corresponding
to broadband 20 sps vertical channels - with channel code BHZ, and with network
code GE</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>slinktool<span class="w"> </span>-Q<span class="w"> </span>geofon.gfz-potsdam.de<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>^GE.*BHZ
GE<span class="w"> </span>ACRG<span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">06</span>:51:48.7500<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">09</span>:18:32.1000
GE<span class="w"> </span>APE<span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">07</span>:40:52.0400<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">12</span>:22:00.3950
GE<span class="w"> </span>ARPR<span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/27<span class="w"> </span><span class="m">23</span>:23:27.4400<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">09</span>:41:22.1500
GE<span class="w"> </span>ARPR<span class="w"> </span>BHZ<span class="w"> </span>E<span class="w"> </span><span class="m">2019</span>/11/27<span class="w"> </span><span class="m">23</span>:23:27.4400<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">09</span>:16:25.0400
<span class="o">[</span>..<span class="o">]</span>
GE<span class="w"> </span>KBS<span class="w"> </span><span class="m">00</span><span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/24<span class="w"> </span><span class="m">13</span>:22:12.9695<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/24<span class="w"> </span><span class="m">22</span>:46:17.4195
GE<span class="w"> </span>KBS<span class="w"> </span><span class="m">10</span><span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/24<span class="w"> </span><span class="m">13</span>:22:12.9695<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/24<span class="w"> </span><span class="m">22</span>:46:19.5945
GE<span class="w"> </span>KBU<span class="w"> </span>BHZ<span class="w"> </span>D<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">06</span>:53:21.8450<span class="w"> </span>-<span class="w"> </span><span class="m">2019</span>/11/28<span class="w"> </span><span class="m">12</span>:22:18.2450
<span class="o">[</span>..<span class="o">]</span>
</pre></div>
</div>
<p>The -Q option provides a formatted stream list,
with one line for each stream available from the server.
The columns are described in <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a>;
the <cite>grep</cite> command here limits output to just those GE stations;
without it, this server provides over 16000 lines of output.)</p>
<p>For an active station, with low latency, the last data time (on the
right) will typically be just a few seconds in the past.
If a station or its network connection to the GEOFON server is down,
then it will be a longer time ago.</p>
</section>
<section id="download-station-metadata">
<h2>Download station metadata<a class="headerlink" href="#download-station-metadata" title="Permalink to this heading"></a></h2>
<p>There are several possible ways to obtain inventory.</p>
<ul class="simple">
<li><p>Use WebDC3 <a class="footnote-reference brackets" href="#webdc" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a> or network pages <a class="footnote-reference brackets" href="#netpages" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a>
to obtain metadata for existing seismic networks.</p></li>
<li><p>Other sources of inventory, like a dataless SEED file, can also be used.</p></li>
<li><p>The Gempa Station Management Portal, <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>,
is another important source of station metadata.
If you would like to create your own inventory you may use this online tool.
Before doing so, you will need to create an account on SMP.</p></li>
</ul>
<section id="option-1-using-fdsn-web-services">
<h3>Option 1: Using FDSN web services<a class="headerlink" href="#option-1-using-fdsn-web-services" title="Permalink to this heading"></a></h3>
<p>The FDSN web services <span id="id4">[<a class="reference internal" href="../references.html#id110" title="FDSNWS. International Federation of Digital Seismograph Networks. URL: http://www.fdsn.org/webservices/.">8</a>]</span> are the standard adopted by the FDSN and have been
deployed at almost every data centre.
One of them is called <em>fdsnws-station</em> and
is the service to contact to get all information related to stations, sensors,
responses, etc.</p>
<p>To get data from the <em>fdsnws-station</em> web service you can use any web client (browser or command
line). For instance, the <em>wget</em> command. The file you will receive will be in
StationXML format.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>wget<span class="w"> </span><span class="s2">&quot;http://geofon.gfz-potsdam.de/fdsnws/station/1/query?net=GE&amp;level=response&quot;</span><span class="w"> </span>-O<span class="w"> </span>ge.xml
</pre></div>
</div>
</section>
<section id="option-2-using-webdc3">
<h3>Option 2: Using WebDC3<a class="headerlink" href="#option-2-using-webdc3" title="Permalink to this heading"></a></h3>
<p>WebDC3 is a graphical interface which allows you not only to send requests to
FDSN webservice servers, but also to explore available stations
and query event catalogs
from different data centres among other possibilities.</p>
<p>You can find detailed information about WebDC3 in the on-line documentation at
<span id="id5"><em>WebDC3</em> [<a class="reference internal" href="../references.html#id287" title="WebDC3. Documentation. URL: https://webdc3.readthedocs.io/.">26</a>]</span>.</p>
<ul>
<li><p>Go to <a class="reference external" href="http://eida.gfz-potsdam.de/webdc3">http://eida.gfz-potsdam.de/webdc3</a> with a browser.</p></li>
<li><p>Click on “Explore stations” and move the slider to select only the current year
and only “Public permanent nets” on the Network type list.
Select the GE network, “All Stations”, BH channels, and click “Search”.</p></li>
<li><p>About 80 stations should appear on the map, and on the list below it.</p>
<figure class="align-center" id="id6">
<a class="reference internal image-reference" href="../../_images/geofon_webdc_stations.png"><img alt="../../_images/geofon_webdc_stations.png" src="../../_images/geofon_webdc_stations.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Stations of the GE network shown in WebDC, ready for a metadata request.</span><a class="headerlink" href="#id6" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</li>
<li><p>Go to the third tab, named “Submit request”.</p></li>
<li><p>Click on “Absolute Mode” for the “Time Window Selection” and select time
window from some time ago to the present.</p></li>
<li><p>In the “Request type” section, click on “Metadata (StationXML)”.
Set “Metadata level” to “Response”.
<strong>Response-level inventory is essential for SeisComP configuration</strong>.</p></li>
<li><p>For metadata requests, no token should be required.
(This is only used for requests for restricted waveform data.)</p></li>
<li><p>If everything looks correctly click on “Submit”.</p></li>
<li><p>Go to the fourth tab, called “Download Data”.</p></li>
<li><p>In the “FDSNWS Requests” block, click on “Save” to mkae your request
to the GEOFON fdsnws-station web service.</p></li>
<li><p>When its ready, you will be prompted to save an XML file to your local computer.</p></li>
</ul>
<p>Now find where your web browser has saved the file.</p>
</section>
</section>
<section id="import-the-inventory">
<h2>Import the inventory<a class="headerlink" href="#import-the-inventory" title="Permalink to this heading"></a></h2>
<p>It is easiest to use the import function of the <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> GUI.
Alternatively, you can import from the command line:</p>
<ul>
<li><p>From FDSN StationXML:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>fdsnxml2inv<span class="w"> </span>-f<span class="w"> </span>station.xml<span class="w"> </span>&gt;<span class="w"> </span>etc/inventory/mynetwork.xml
</pre></div>
</div>
</li>
<li><p>From SeisComP XML with filtering:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>invextr<span class="w"> </span>-f<span class="w"> </span>--chans<span class="w"> </span><span class="s1">&#39;NE.STA.*&#39;</span><span class="w"> </span>mynetwork.xml<span class="w"> </span>&gt;<span class="w"> </span>etc/inventory/mynetwork.xml
</pre></div>
</div>
</li>
</ul>
<p>Either way, afterwards, inventory is in <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/inventory</span></code>.
It now needs to be loaded in to the SeisComP database.</p>
<section id="import-the-metadata-for-your-stations">
<h3>Import the metadata for your stations<a class="headerlink" href="#import-the-metadata-for-your-stations" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Open <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> from the terminal.
Click on the “Inventory” tab on the left side bar.</p></li>
<li><p>Select “Import” and at “Source:”, browse to the file with the inventory
(e.g. ~/Downloads/inventory.xml).
For “format”, select “fdsnxml”.</p>
<figure class="align-center" id="id7">
<a class="reference internal image-reference" href="../../_images/geofon_waveforms_old_fig5.png"><img alt="../../_images/geofon_waveforms_old_fig5.png" src="../../_images/geofon_waveforms_old_fig5.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">The Inventory tab of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>, during import of FDSN Station XML.
<em>TODO</em> Update this figure.</span><a class="headerlink" href="#id7" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</li>
<li><p>Click on OK, wait a couple of seconds, check that the process was successful -
it should display
“Writing inventory to /home/sysop/seiscomp/etc/inventory/{PACKAGE NAME}.xml”
and “Program exited normally” at the bottom.
Close the modal window.</p></li>
<li><p>Sync or Sync keys.
Make sure <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> and Spread are running.
SeisComP reads the inventory files in <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/inventory</span></code>
and loads them into the database.
You will see messages like “Sending notifiers: 2%” as this occurs.
Eventually you should see “Program exited normally” again.</p></li>
</ul>
<p>Alternatively, go to “System” (second icon in the left column),
click on “Update configuration” and restart SeisComP (Stop and Start buttons).</p>
</section>
</section>
<section id="configure-bindings">
<h2>Configure bindings<a class="headerlink" href="#configure-bindings" title="Permalink to this heading"></a></h2>
<p>As for individual stations (see the <a class="reference internal" href="processing.html#tutorials-processing"><span class="std std-ref">processing tutoriual</span></a>),
we will need to create bindings for every GE station to the
“global”, “scautopick” and “seedlink” applications, as follows:</p>
<ul>
<li><p>Create a global profile named “BH” by clicking with the right button on “global”
in the top right panel. Double click on it and set BH as <em>detectStream</em> and
empty location code as <em>detecLocID</em> information.</p>
<figure class="align-center" id="id8">
<a class="reference internal image-reference" href="../../_images/geofon_waveforms_old_fig6.png"><img alt="../../_images/geofon_waveforms_old_fig6.png" src="../../_images/geofon_waveforms_old_fig6.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">The “Bindings” tab in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.
A profile for global, called “BH” is being created.</span><a class="headerlink" href="#id8" title="Permalink to this image"></a></p>
<div class="legend">
<p><em>TODO</em> CX stations are visible too.</p>
</div>
</figcaption>
</figure>
</li>
<li><p>Create a <em>scautopick</em> profile named “default” (no changes necessary).</p></li>
<li><p>Create a <em>seedlink</em> profile named “geofon”. Double click on the profile.
Add a chain source with the green plus button on the left
(no other changes are necessary for data from GEOFONs server,
as it is the default).</p></li>
<li><p>Drag and drop all profiles from the right side to the network icon on the
left side (you may do that also at the station level).</p></li>
<li><p>Press Ctrl+S to save the configuration.
This writes configuration files in <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/key</span></code>.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>A few GEOFON stations (including KBS, LVC, SUMG) are distributed
with a non-blank location code, typically either “00” or “10”.
Configuring these requires additional work.
You can create a profile setting <code class="xref std std-confval docutils literal notranslate"><span class="pre">detecLocID</span></code> to “10”,
called “10BHZ”, and apply this to the appropriate stations.
Repeat this for stations where location code “00” is desired (e.g. SFJD).</p>
</div>
</section>
<section id="update-the-configuration">
<h2>Update the configuration<a class="headerlink" href="#update-the-configuration" title="Permalink to this heading"></a></h2>
<p>The SeisComP database must be updated with the inventory and bindings.
SeisComPs modules then require restarting to load the updated information.</p>
<ul>
<li><p>Go to the System tab and press ESC (the Escape key, to de-select all modules).</p>
<ol class="arabic simple">
<li><p>Click on “Update configuration”, at the right of the window.
(<strong>Not</strong> “Update”, - that just refreshes <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>s
display of what is running!)</p></li>
<li><p>Press <em>Start</em> to start acquiring data from the already configured stations.</p></li>
</ol>
</li>
<li><p>Alternatively, on the command line</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>seiscomp<span class="w"> </span>restart
</pre></div>
</div>
</li>
</ul>
</section>
<section id="check-it-works">
<h2>Check it works<a class="headerlink" href="#check-it-works" title="Permalink to this heading"></a></h2>
<ul>
<li><p>To confirm that you have waveform data for the station locally,
run <a class="reference internal" href="../../apps/slinktool.html#slinktool"><span class="std std-ref">slinktool</span></a>.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>slinktool<span class="w"> </span>-Q
</pre></div>
</div>
</li>
<li><p>Open <a class="reference internal" href="../../apps/scmv.html#scmv"><span class="std std-ref">scmv</span></a> to see a map view of the configured stations.</p></li>
<li><p>Open <a class="reference internal" href="../../apps/scrttv.html#scrttv"><span class="std std-ref">scrttv</span></a> to see the incoming real-time streams.</p></li>
</ul>
<p>If you see colored triangles and traces incoming it means that
you have configured your system properly.
With this last step the configuration of these stations is considered to be finished.</p>
</section>
<section id="further-steps">
<h2>Further steps<a class="headerlink" href="#further-steps" title="Permalink to this heading"></a></h2>
<p>At this point,
you can follow the same procedure for other networks/stations, provided you</p>
<ol class="arabic simple">
<li><p>Have metadata available.</p></li>
<li><p>Know the location of a Seedlink server for, and have access to, the waveforms.</p></li>
</ol>
</section>
<section id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this heading"></a></h2>
<aside class="footnote-list brackets">
<aside class="footnote brackets" id="webdc" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id1">1</a><span class="fn-bracket">]</span></span>
<p>The WebDC3 service is available at <a class="reference external" href="http://eida.gfz-potsdam.de">http://eida.gfz-potsdam.de</a>.
See also
M. Bianchi, <em>et al.</em> (2015): WebDC3 Web Interface. GFZ Data Services.
doi:<a class="reference external" href="http://dx.doi.org/10.5880/GFZ.2.4/2016.001">10.5880/GFZ.2.4/2016.001</a></p>
</aside>
<aside class="footnote brackets" id="netpages" role="doc-footnote">
<span class="label"><span class="fn-bracket">[</span><a role="doc-backlink" href="#id2">2</a><span class="fn-bracket">]</span></span>
<p>For instance that of the GEOFON Program, at
<a class="reference external" href="https://geofon.gfz-potsdam.de/waveform/archive/network.php?ncode=GE">https://geofon.gfz-potsdam.de/waveform/archive/network.php?ncode=GE</a>.</p>
</aside>
</aside>
</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="#">Add real-time stations from GEOFON</a><ul>
<li><a class="reference internal" href="#check-data-are-available">Check data are available</a></li>
<li><a class="reference internal" href="#download-station-metadata">Download station metadata</a><ul>
<li><a class="reference internal" href="#option-1-using-fdsn-web-services">Option 1: Using FDSN web services</a></li>
<li><a class="reference internal" href="#option-2-using-webdc3">Option 2: Using WebDC3</a></li>
</ul>
</li>
<li><a class="reference internal" href="#import-the-inventory">Import the inventory</a><ul>
<li><a class="reference internal" href="#import-the-metadata-for-your-stations">Import the metadata for your stations</a></li>
</ul>
</li>
<li><a class="reference internal" href="#configure-bindings">Configure bindings</a></li>
<li><a class="reference internal" href="#update-the-configuration">Update the configuration</a></li>
<li><a class="reference internal" href="#check-it-works">Check it works</a></li>
<li><a class="reference internal" href="#further-steps">Further steps</a></li>
<li><a class="reference internal" href="#references">References</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="processing.html"
title="previous chapter">Configure real-time processing</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="servefdsnws.html"
title="next chapter">Enable local FDSNWS server</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/geofon_waveforms.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 &copy; 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>

View File

@ -0,0 +1,405 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Help! Im stuck! Now what? &#8212; 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="Create a new tutorial" href="template.html" />
<link rel="prev" title="Play back archived waveforms" href="waveformplayback.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="template.html" title="Create a new tutorial"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="waveformplayback.html" title="Play back archived waveforms"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="help-i-m-stuck-now-what">
<span id="tutorials-help"></span><h1>Help! Im stuck! Now what?<a class="headerlink" href="#help-i-m-stuck-now-what" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Troubleshoot and resolve problems with SeisComP</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Have your SeisComP installation and configuration available</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>Improved understanding of ways to solve issues when operating SeisComP</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>30 minutes</p></li>
</ul>
<hr class="docutils" />
<section id="outline">
<h2>Outline<a class="headerlink" href="#outline" title="Permalink to this heading"></a></h2>
<p>Inevitably you will encounter difficulties using SeisComP.
This tutorial reviews a few ways to diagnose your problems and
get help to resolve them:</p>
<ul class="simple">
<li><p>Detailed <a class="reference internal" href="#sec-tutorial-help-documentation"><span class="std std-ref">HTML documentation</span></a></p></li>
<li><p><a class="reference internal" href="#sec-tutorial-help-commandline"><span class="std std-ref">Commandline help</span></a></p></li>
<li><p>The <a class="reference internal" href="#sec-tutorial-help-forum"><span class="std std-ref">SeisComP Forum</span></a></p></li>
<li><p>Reviewing <a class="reference internal" href="#sec-tutorial-help-logging"><span class="std std-ref">logging options</span></a></p></li>
<li><p>The <a class="reference internal" href="#sec-tutorial-help-debugging"><span class="std std-ref">debugging options</span></a></p></li>
<li><p><a class="reference internal" href="#sec-tutorial-help-commercial"><span class="std std-ref">Commercial support</span></a></p></li>
</ul>
</section>
<section id="ways-to-diagnose-and-to-get-help">
<h2>Ways to diagnose and to get help<a class="headerlink" href="#ways-to-diagnose-and-to-get-help" title="Permalink to this heading"></a></h2>
<section id="html-documentation">
<span id="sec-tutorial-help-documentation"></span><h3>HTML documentation<a class="headerlink" href="#html-documentation" title="Permalink to this heading"></a></h3>
<p>Most modules have HTML documentation. When installed, it can be found in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>
under <em>Docs</em>. The HTML documentation can also be reached from the <em>Help</em> menu of all GUIs.
It contains the description of configuration and command-line parameters along with
an overview with many detailed information.</p>
<figure class="align-center" id="id5">
<a class="reference internal image-reference" href="../../_images/gui_help.png"><img alt="../../_images/gui_help.png" src="../../_images/gui_help.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text"><a class="reference internal" href="../../apps/scmv.html#scmv"><span class="std std-ref">scmv</span></a> with access to the HTML documentation.</span><a class="headerlink" href="#id5" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<p>The description of most configuration parameters is also available from
within <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.
Look under <em>Modules</em>, and choose the relevant module.
For each parameter, the first few lines of description are shown;
hovering over these reveals the full text.</p>
<p>The HTML documentation is built regularly and available online, e.g.
<a class="reference external" href="https://docs.gempa.de">gempas documentation</a>.</p>
</section>
<section id="commandline-help">
<span id="sec-tutorial-help-commandline"></span><h3>Commandline help<a class="headerlink" href="#commandline-help" title="Permalink to this heading"></a></h3>
<p>In addition to the HTML documentation, many SeisComP commands have manual
pages which can be read on the command line:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>man<span class="w"> </span><span class="o">[</span>module<span class="w"> </span>name<span class="o">]</span>
</pre></div>
</div>
<p>and help on command-line options:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="o">[</span>module<span class="w"> </span>name<span class="o">]</span><span class="w"> </span>-h
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The command-line option <em>-h</em> can be used with almost all modules. No matter how many
other command-line parameters were given, <em>-h</em> will stop the module and print
the help on the command-line.</p>
</div>
</section>
<section id="configuration-parameters">
<span id="sec-tutorial-help-config-params"></span><h3>Configuration parameters<a class="headerlink" href="#configuration-parameters" title="Permalink to this heading"></a></h3>
<p>The <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> GUI tool can be conveniently used to adjust the <a class="reference internal" href="../glossary.html#term-module"><span class="xref std std-term">module</span></a>
and <a class="reference internal" href="../glossary.html#term-binding"><span class="xref std std-term">bindings</span></a> configuration. It also displays help on each individual
configuration parameter for every module. Read the <a class="reference internal" href="../concepts/configuration.html#concepts-configuration"><span class="std std-ref">concepts
section on configuration</span></a> for a comprehensive overview.</p>
<div class="two column layout"><figure class="align-default" id="id6">
<img alt="scconfig: tool tips" src="../../_images/scconfig-tooltips.png" />
<figcaption>
<p><span class="caption-text">Tool tips provide information on parameters.</span><a class="headerlink" href="#id6" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-default" id="id7">
<img alt="scconfig: parameter evaluation" src="../../_images/scconfig-evaluation.png" />
<figcaption>
<p><span class="caption-text">scconfig evaluates the syntax of input values.</span><a class="headerlink" href="#id7" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</div></section>
<section id="command-line-parameters">
<span id="sec-tutorial-help-cmdline-params"></span><h3>Command-line parameters<a class="headerlink" href="#command-line-parameters" title="Permalink to this heading"></a></h3>
<p>Command-line parameters provide additional flexibility when executing modules.
To learn about them read the <a class="reference internal" href="#sec-tutorial-help-documentation"><span class="std std-ref">HTML documentation</span></a> or execute</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="o">[</span>module<span class="w"> </span>name<span class="o">]</span><span class="w"> </span>-h
</pre></div>
</div>
</section>
<section id="the-seiscomp-forum">
<span id="sec-tutorial-help-forum"></span><h3>The SeisComP Forum<a class="headerlink" href="#the-seiscomp-forum" title="Permalink to this heading"></a></h3>
<figure class="align-center" id="id8">
<a class="reference internal image-reference" href="../../_images/help_forum.png"><img alt="../../_images/help_forum.png" src="../../_images/help_forum.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">The <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>.</span><a class="headerlink" href="#id8" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<p>The <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> is the place to discuss <cite>SeisComP</cite>.
Announcements about updates, training courses and more are posted
here by the developers, and users can post questions or discuss
new developments.
Anyone can browse the forum, while registration is required to post there.</p>
<p>If you have specific technical problems, it helps to have tried
some of the ideas below.
Please include version information (the -V option described below)
if you report a problem.</p>
</section>
<section id="logging">
<span id="sec-tutorial-help-logging"></span><h3>Logging<a class="headerlink" href="#logging" title="Permalink to this heading"></a></h3>
<p>Most SeisComP applications use a standard logging approach.
By default, they log to files in your <code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/log</span></code> directory,
such as <code class="file docutils literal notranslate"><span class="pre">scamp.log</span></code>.
Further options for logging are described in
<a class="reference internal" href="../concepts/configuration.html#concepts-configuration"><span class="std std-ref">Configuration</span></a>.</p>
<p>You can control how often these are rotated
(old log files are closed, and moved to a new file name, such as scamp.log.1, e.g. daily).
Alternatively you can use the system-wide logging facility <cite>syslog</cite>
and send logs to /var/log or another “standard” place.</p>
<p>There are four levels of severity of SeisComP log messages,
and applications can be configured to show only those which
are more severe than a given threshold.</p>
<ul class="simple">
<li><p>1 = ERROR</p></li>
<li><p>2 = WARNING</p></li>
<li><p>3 = INFO</p></li>
<li><p>4 = DEBUG.</p></li>
</ul>
<p>Default is 2.
Setting <cite>logging.level = 4</cite> results in the most messages.</p>
<p>For other modules such as <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a>, the log files are written to
<code class="file docutils literal notranslate"><span class="pre">seiscomp/var/log/</span></code></p>
</section>
<section id="debugging-options">
<span id="sec-tutorial-help-debugging"></span><h3>Debugging options<a class="headerlink" href="#debugging-options" title="Permalink to this heading"></a></h3>
<p>Most SeisComP applications support two important command line options:</p>
<ul class="simple">
<li><p>Use <cite>console</cite> to send output to the terminal instead of the usual
log location.</p></li>
<li><p><cite>-v</cite> for increased verbosity, or use <cite>verbosity=</cite> <em>n</em> where <em>n</em>
is one of the four severity levels above.</p></li>
</ul>
<p>In addition:</p>
<ul>
<li><p><cite>debug</cite> sets logging.level (see above) to 4 (DEBUG),
and sends logging output to the console (terminal) instead of the usual
log location.
(This is just an easier way of specifying <cite>verbosity=4 console=1</cite>.)
For example:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp/bin/seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scmag<span class="w"> </span>--debug
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>.
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/.seiscomp/plugins
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/lib/plugins
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/lib
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/share/plugins
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/lib
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/lib
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Adding<span class="w"> </span>plugin<span class="w"> </span>path:<span class="w"> </span>/home/user/seiscomp/share/plugins/scmag
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Trying<span class="w"> </span>to<span class="w"> </span>open<span class="w"> </span>plugin<span class="w"> </span>at<span class="w"> </span>/home/user/seiscomp/share/plugins/dbmysql.so
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Plugin<span class="w"> </span>dbmysql<span class="w"> </span>registered
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span>
Plugins:
--------
<span class="w"> </span><span class="o">[</span><span class="m">1</span><span class="o">]</span>
<span class="w"> </span>description:<span class="w"> </span>MySQL<span class="w"> </span>database<span class="w"> </span>driver
<span class="w"> </span>author:<span class="w"> </span>GFZ<span class="w"> </span>Potsdam<span class="w"> </span>&lt;seiscomp-devel@gfz-potsdam.de&gt;
<span class="w"> </span>version:<span class="w"> </span><span class="m">0</span>.9.2
<span class="w"> </span>API:<span class="w"> </span><span class="m">12</span>.1.0
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Connect<span class="w"> </span>to<span class="w"> </span>messaging
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Trying<span class="w"> </span>to<span class="w"> </span>connect<span class="w"> </span>to<span class="w"> </span>scmag@localhost<span class="w"> </span>with<span class="w"> </span>primary<span class="w"> </span><span class="nv">group</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>MAGNITUDE
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Connecting<span class="w"> </span>to<span class="w"> </span>server:<span class="w"> </span>localhost
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Connected<span class="w"> </span>to<span class="w"> </span>message<span class="w"> </span>server:<span class="w"> </span>localhost
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Joining<span class="w"> </span>MASTER_GROUP<span class="w"> </span>group
<span class="m">11</span>:47:50<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Sending<span class="w"> </span>connect<span class="w"> </span>message<span class="w"> </span>to<span class="w"> </span>server:<span class="w"> </span>localhost
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Server<span class="w"> </span>version<span class="w"> </span>is<span class="w"> </span><span class="s1">&#39;Jakarta 2018.327.p15&#39;</span>
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Outgoing<span class="w"> </span>messages<span class="w"> </span>are<span class="w"> </span>encoded<span class="w"> </span>to<span class="w"> </span>match<span class="w"> </span>schema<span class="w"> </span>version<span class="w"> </span><span class="m">0</span>.11
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>user<span class="w"> </span><span class="s2">&quot;scmag&quot;</span><span class="w"> </span>connected<span class="w"> </span>successfully<span class="w"> </span>to<span class="w"> </span>localhost
</pre></div>
</div>
<p>The above reveals that <strong class="program">scmag</strong> was able to load, and connect to the
messaging system.
Note that the <em>verbosity</em> of each message (“info”, “debug”, etc) is also
shown.
However a moment later we see:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Connect<span class="w"> </span>to<span class="w"> </span>database
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>skipping<span class="w"> </span>unknown<span class="w"> </span>network<span class="w"> </span>message
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>skipping<span class="w"> </span>unknown<span class="w"> </span>network<span class="w"> </span>message
<span class="m">11</span>:47:51<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>skipping<span class="w"> </span>unknown<span class="w"> </span>network<span class="w"> </span>message
<span class="m">11</span>:47:56<span class="w"> </span><span class="o">[</span>error<span class="o">]</span><span class="w"> </span>Timeout<span class="w"> </span><span class="k">while</span><span class="w"> </span>waiting<span class="w"> </span><span class="k">for</span><span class="w"> </span>database<span class="w"> </span>provide<span class="w"> </span>message
<span class="m">11</span>:47:56<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Leaving<span class="w"> </span>::done
<span class="m">11</span>:47:56<span class="w"> </span><span class="o">[</span>info<span class="o">]</span><span class="w"> </span>Shutting<span class="w"> </span>down<span class="w"> </span>MagTool
-<span class="w"> </span>database<span class="w"> </span>accesses<span class="w"> </span><span class="k">while</span><span class="w"> </span>runtime:<span class="w"> </span><span class="m">0</span>
</pre></div>
</div>
<p>This suggests that <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> was not running to provide a
connection to the database.
To resolve this, you could next check that <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> is
running as expected.</p>
</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Instead of <cite>debug</cite> in the example above, you could run</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp/bin/seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scmag<span class="w"> </span>-vvvv
</pre></div>
</div>
<p>The output is the same, but it is sent to your normal logging file,
typically <cite>~/.seiscomp/log/scmag.log</cite>.</p>
</div>
<p>In <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>, logging can be set globally.
Go to the Modules tab, then System &gt; global (see “logging”)
or per module.</p>
<p>e.g. set “logging.level = 3” in $SEISCOMP_ROOT/etc/scamp.log
to set level to <em>INFO</em> only for <a class="reference internal" href="../../apps/scamp.html#scamp"><span class="std std-ref">scamp</span></a>.</p>
<p>You should also be aware of the version of SeisComP that you are running.
The -V or version option provides this for many SeisComP modules.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp3/bin/seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scmag<span class="w"> </span>-V
scmag:<span class="w"> </span>Jakarta<span class="w"> </span><span class="m">2018</span>.327.p15
API<span class="w"> </span>version:<span class="w"> </span><span class="m">12</span>.1.0
GIT<span class="w"> </span>HEAD:
Compiler:<span class="w"> </span>c++<span class="w"> </span><span class="o">(</span>Ubuntu<span class="w"> </span><span class="m">7</span>.3.0-16ubuntu3<span class="o">)</span><span class="w"> </span><span class="m">7</span>.3.0
Build<span class="w"> </span>system:<span class="w"> </span>Linux<span class="w"> </span><span class="m">4</span>.15.0-20-generic
OS:<span class="w"> </span>Ubuntu<span class="w"> </span><span class="m">18</span>.04<span class="w"> </span>LTS<span class="w"> </span>/<span class="w"> </span>Linux
</pre></div>
</div>
</section>
<section id="commercial-support">
<span id="sec-tutorial-help-commercial"></span><h3>Commercial support<a class="headerlink" href="#commercial-support" title="Permalink to this heading"></a></h3>
<p>Professional commercial support to SeisComP users is available from
<span id="id3"><em>gempa GmbH</em> [<a class="reference internal" href="../references.html#id122" title="gempa GmbH. The SeisComP development and maintenance company. URL: https://www.gempa.de/.">28</a>]</span>.</p>
</section>
</section>
<section id="next-time-you-have-a-problem">
<h2>Next time you have a problem<a class="headerlink" href="#next-time-you-have-a-problem" title="Permalink to this heading"></a></h2>
<ul class="simple">
<li><p>Try some of the above techniques.</p></li>
<li><p>If you find a solution, dont forget to share it at the <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></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="#">Help! Im stuck! Now what?</a><ul>
<li><a class="reference internal" href="#outline">Outline</a></li>
<li><a class="reference internal" href="#ways-to-diagnose-and-to-get-help">Ways to diagnose and to get help</a><ul>
<li><a class="reference internal" href="#html-documentation">HTML documentation</a></li>
<li><a class="reference internal" href="#commandline-help">Commandline help</a></li>
<li><a class="reference internal" href="#configuration-parameters">Configuration parameters</a></li>
<li><a class="reference internal" href="#command-line-parameters">Command-line parameters</a></li>
<li><a class="reference internal" href="#the-seiscomp-forum">The SeisComP Forum</a></li>
<li><a class="reference internal" href="#logging">Logging</a></li>
<li><a class="reference internal" href="#debugging-options">Debugging options</a></li>
<li><a class="reference internal" href="#commercial-support">Commercial support</a></li>
</ul>
</li>
<li><a class="reference internal" href="#next-time-you-have-a-problem">Next time you have a problem</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="waveformplayback.html"
title="previous chapter">Play back archived waveforms</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="template.html"
title="next chapter">Create a new tutorial</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/help.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 &copy; 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>

View File

@ -0,0 +1,406 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Magnitudes: Regionalization, Aliases, Mw &#8212; 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="Play back archived waveforms" href="waveformplayback.html" />
<link rel="prev" title="Enable local FDSNWS server" href="servefdsnws.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="waveformplayback.html" title="Play back archived waveforms"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="servefdsnws.html" title="Enable local FDSNWS server"
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="../tutorials.html" accesskey="U">Tutorials</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-regionalization-aliases-mw">
<span id="tutorials-magnitude-region-aliases"></span><h1>Magnitudes: Regionalization, Aliases, Mw<a class="headerlink" href="#magnitudes-regionalization-aliases-mw" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Regionalize magnitude</p></li>
<li><p>Create new magnitude types as aliases from other magnitudes and amplitudes.</p></li>
<li><p>Map magnitudes to the moment magnitude, Mw</p></li>
</ul>
<dl class="field-list simple">
<dt class="field-odd">Pre-requisites for this tutorial<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p>Read the <a class="reference internal" href="../concepts/magnitudes.html#concepts-magnitudes"><span class="std std-ref">concepts section on magnitudes</span></a>.</p></li>
<li><p>Real-time data for the station must be available locally.
See <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a> or <a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">Add real-time stations from GEOFON</span></a>.</p></li>
<li><p>Inventory must be loaded locally.</p></li>
</ul>
</dd>
<dt class="field-even">Afterwards/Results/Outcomes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p>Regionalized magnitudes,</p></li>
<li><p>New magnitude types as aliases.</p></li>
<li><p>Moment magnitudes</p></li>
</ul>
</dd>
<dt class="field-odd">Time range estimate<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p>30 minutes</p></li>
</ul>
</dd>
</dl>
<hr class="docutils" />
<section id="regionalize-magnitudes">
<span id="tutorials-magnitude-region"></span><h2>Regionalize Magnitudes<a class="headerlink" href="#regionalize-magnitudes" title="Permalink to this heading"></a></h2>
<p>By regionalization, magnitudes can be computed with region-dependent properties.
The procedure to set up magnitude regionalization is:</p>
<ol class="arabic">
<li><p>Create one file which contains the polygons surrounding the regions within
which magnitude parameters shall apply. The polygon files are provided in
<a class="reference internal" href="../../apps/global_gui.html#sec-gui-layers-vector-format-bna"><span class="std std-ref">BNA</span></a> or
<a class="reference internal" href="../../apps/global_gui.html#sec-gui-layers-vector-format-geojson"><span class="std std-ref">GeoJSON format</span></a> and located as
set out in the <a class="reference internal" href="../../apps/global_gui.html#sec-gui-layers"><span class="std std-ref">documentation of map layers</span></a>. The file
can be created from any <cite>SeisComP</cite> GUI application providing maps, e.g.,
<a class="reference internal" href="../../apps/scmv.html#scmv"><span class="std std-ref">scmv</span></a>.</p></li>
<li><p>For the desired magnitude type create a magnitude-type profile in global
module configuration. The name of the profile matches the name of the
magnitude, e.g., <em>MLc</em> for the <a class="reference internal" href="../../apps/global_mlc.html#global-mlc"><span class="std std-ref">MLc magnitude</span></a>.</p></li>
<li><p>Configure the <code class="xref std std-confval docutils literal notranslate"><span class="pre">magnitudes.MLc.regionFile</span></code> parameter with the full
path and name of the polygon file created above.</p></li>
<li><p>Within the magnitude-type profile create one or more magnitude-region
profile(s) for defining the regionalized parameters applied to the region(s).
The name of a profile corresponds to the name of the polygon contained in the
polygon file to which the parameters shall apply. Use <em>world</em> for all regions
not covered by any polygon.</p></li>
<li><p>Configure the regionalized magnitude parameters of the magnitude-region
profile. Activate the <em>enable</em> parameter if you wish to apply this profile.</p></li>
<li><p>Restart the data processing:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>restart
</pre></div>
</div>
<p>or execute a GUI module.</p>
</li>
</ol>
<div class="admonition important">
<p class="admonition-title">Important</p>
<ul class="simple">
<li><p>Parameters which can be configured along with regionalization assume
defaults from global binding parameters but override global bindings
parameters when configured.</p></li>
<li><p>Once regionalization is active, magnitudes for events outside the
defined region(s) will not be computed. For considering such events add
another magnitude-region profile with the name “<em>world</em>”.
Magnitudes for events outside any other magnitude-region profile will then
be computed according to this profile.</p></li>
</ul>
</div>
<section id="station-corrections">
<h3>Station corrections<a class="headerlink" href="#station-corrections" title="Permalink to this heading"></a></h3>
<p><a class="reference internal" href="../concepts/magnitudes.html#concepts-magnitudes-correction"><span class="std std-ref">Magnitude station corrections</span></a> can also
be applied in case of regionalization. Simply add the names of the
magnitude-region profile along with the correction parameter to the original
parameter in global module configuration, <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code>, for the respective
magnitude type and station. Use comma separation for multiple regions and colon
for separating the region name from the value.</p>
<p>Example for correcting MLv computed at 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, europe:0.2, asia:-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 directly 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="magnitude-aliases">
<span id="tutorials-magnitude-aliases"></span><h2>Magnitude Aliases<a class="headerlink" href="#magnitude-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.</p>
<p>The procedure to set up magnitude aliases is:</p>
<ol class="arabic">
<li><p>Create a magnitude alias in <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code> by configuring
<a class="reference internal" href="../../apps/global.html#confval-magnitudes.aliases"><code class="xref std std-confval docutils literal notranslate"><span class="pre">magnitudes.aliases</span></code></a>. Example:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">magnitudes.aliases</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">MLc1:MLc:MLc</span>
</pre></div>
</div>
</li>
<li><p>Configure the alias magnitudes in either way:</p>
<ul class="simple">
<li><p>Write bindings parameters to global module configuration or</p></li>
<li><p>Set up <a class="reference internal" href="#tutorials-magnitude-region"><span class="std std-ref">regionalization</span></a>:</p></li>
</ul>
<p><strong>Binding parameters in global module configuration:</strong></p>
<ol class="arabic">
<li><p>Read the relevant parameter names of the original magnitude from global
binding, e.g., in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>. The names must include the full
hierarchy including all sections. Example:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">magnitudes.MLc01.parametric.c1</span>
</pre></div>
</div>
</li>
<li><p>Open the module configuration file, e.g.,
<code class="file docutils literal notranslate"><span class="pre">seiscomp/etc/global.cfg</span></code> in a text editor.</p></li>
<li><p>Prepend <em>module.trunk.global.</em> to the parameter name and add it along with
its value to the configuration file. Example:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">module.trunk.global.magnitudes.MLc01.parametric.c1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">0.7</span>
</pre></div>
</div>
</li>
<li><p>Add the new magnitude name to the configuration of all relevant modules,
e.g., <a class="reference internal" href="../../apps/scamp.html#scamp"><span class="std std-ref">scamp</span></a>, <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>, <a class="reference internal" href="../../apps/scevent.html#scevent"><span class="std std-ref">scevent</span></a>, <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a>.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The parameters starting with <em>module.trunk.</em> are not available for
configuration in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.</p>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Binding parameters configured in global module configuration should only
be considered exceptionally. These parameters will</p>
<ul class="simple">
<li><p>Override the corresponding parameters configured by regionalization
using the region <em>world</em>.</p></li>
<li><p>Not be written to the database and cannot be accessed by SeisComP
modules running on other computers.</p></li>
</ul>
</div>
<p><strong>Regionalization:</strong></p>
<ul>
<li><p>Consider the tutorial on
<a class="reference internal" href="#tutorials-magnitude-region"><span class="std std-ref">magnitude regionalization</span></a> above.</p></li>
<li><p>For the name of the new magnitude-type profile now use the alias name.</p>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>When adding the magnitude-region profile in
<a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>, scconfig does not know about the referenced original
magnitude. Therefore, not all possible configuration parameters may be
listed depending on the magnitude, e.g. for MLc. For getting the full
list, first create and configure a magnitude-region profile for the
referenced magnitude.</p>
<ol class="arabic simple">
<li><p>Close scconfig</p></li>
<li><p>Open the configuration file <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code></p></li>
<li><p>Rename the name of the referenced magnitude in the parameters to the
name of the alias.</p></li>
</ol>
</div>
</li>
</ul>
</li>
</ol>
</section>
<section id="moment-magnitudes">
<span id="tutorials-mags-moment"></span><h2>Moment Magnitudes<a class="headerlink" href="#moment-magnitudes" title="Permalink to this heading"></a></h2>
<p>All magnitudes, Mx, can be mapped to a moment magnitude, Mw(Mx).
The configuration procedure is:</p>
<ol class="arabic">
<li><p>Set up a magnitude-type profile for the original magnitude type in global
module configuration. Use <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> for creating the profile.</p></li>
<li><p>Configure the parameter <em>MwMapping</em>, which will become available along with
the new profile, e.g., <code class="xref std std-confval docutils literal notranslate"><span class="pre">magnitudes.MLc.MwMapping</span></code>. Alternatively,
add the parameter to <code class="file docutils literal notranslate"><span class="pre">seiscomp/etc/global.cfg</span></code>. The parameter is
configured as a list of sample points of a piecewise linear function mapping
from the original magnitude, Mx, to Mw(Mx).
Example for Mw(MLc) based on MLc:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">magnitudes.MLc.MwMapping</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">MLc_0:Mw(MLc)_0,MLc_1:Mw(MLc)_1,...,MLc_N:Mw(MLc)_N</span>
</pre></div>
</div>
<p>Any magnitude value outside the configured range is ignored.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Do not map the magnitudes <a class="reference internal" href="../glossary.html#term-magnitude-broadband-body-wave-mB"><span class="xref std std-term">mB</span></a>
and <a class="reference internal" href="../glossary.html#term-magnitude-broadband-P-wave-moment-Mwp"><span class="xref std std-term">Mwp</span></a> to Mw since
this is hardcoded already and done automatically by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>.</p>
</div>
</li>
</ol>
<p>The new moment magnitudes will be available along with the original magnitudes
and can be viewed in <span class="xref std std-ref">scolv`or :ref:`scesv</span> and considered by <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>
or <a class="reference internal" href="../../apps/scevent.html#scevent"><span class="std std-ref">scevent</span></a>.</p>
<p>In order to avoid that <a class="reference internal" href="../concepts/magnitudes.html#concepts-magnitudes-summary"><span class="std std-ref">summary magnitudes</span></a>
are computed from original magnitudes and mapped Mw together and biased to both,
the original magnitudes can be blocklisted in <a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a>
(<a class="reference internal" href="../../apps/scmag.html#confval-summaryMagnitude.blacklist"><code class="xref std std-confval docutils literal notranslate"><span class="pre">summaryMagnitude.blacklist</span></code></a>).</p>
</section>
<section id="final-tests">
<span id="tutorials-mags-regionalize-testing"></span><h2>Final Tests<a class="headerlink" href="#final-tests" title="Permalink to this heading"></a></h2>
<ul>
<li><p>Regionalization:</p>
<ol class="arabic">
<li><p>Start <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> with the option <code class="xref std std-option docutils literal notranslate"><span class="pre">--debug</span></code> and load an event of
interest</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>--debug
</pre></div>
</div>
</li>
<li><p>Relocate the event for generating a new origin.</p></li>
<li><p>Compute magnitudes selecting the magnitude of interest.</p></li>
<li><p>Inspect the computed magnitudes in the
<a class="reference internal" href="../../apps/scolv.html#scolv-sec-magnitude-tab"><span class="std std-ref">Magnitude tab of scolv</span></a> or read the
debug output listing the considered magnitudes and stations along with
the regionalized parameters.</p></li>
</ol>
</li>
<li><p>Magnitude aliases:</p>
<ol class="arabic">
<li><p>Start <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> with the option <code class="xref std std-option docutils literal notranslate"><span class="pre">--debug</span></code> and load an event of
interest</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>--debug
</pre></div>
</div>
</li>
<li><p>Relocate the event for generating a new origin.</p></li>
<li><p>Compute magnitudes selecting the magnitude of interest including the new
alias.</p></li>
<li><p>Inspect the computed magnitudes in the
<a class="reference internal" href="../../apps/scolv.html#scolv-sec-magnitude-tab"><span class="std std-ref">Magnitude tab of scolv</span></a> or read the
debug output listing the considered magnitude names and aliases along with
the considered parameters and their values. Example where MLc1 is derived
from MLc with a modified maximum depth:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>...
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>GE.UGM:<span class="w"> </span>MLc1:<span class="w"> </span>effective<span class="w"> </span>correction<span class="w"> </span><span class="o">(</span>no<span class="w"> </span>locale<span class="o">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>.00:0.00
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>Parameters<span class="w"> </span><span class="k">for</span><span class="w"> </span>magnitude<span class="w"> </span>MLc1
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>+<span class="w"> </span>maximum<span class="w"> </span>depth:<span class="w"> </span><span class="m">50</span>.000<span class="w"> </span>km
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>+<span class="w"> </span>distance<span class="w"> </span>mode:<span class="w"> </span>hypocentral
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>+<span class="w"> </span>minimum<span class="w"> </span>distance:<span class="w"> </span>-1.000<span class="w"> </span>km
<span class="m">13</span>:30:46<span class="w"> </span><span class="o">[</span>debug<span class="o">]</span><span class="w"> </span>+<span class="w"> </span>maximum<span class="w"> </span>distance:<span class="w"> </span><span class="m">889</span>.561<span class="w"> </span>km
...
</pre></div>
</div>
</li>
</ol>
</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="#">Magnitudes: Regionalization, Aliases, Mw</a><ul>
<li><a class="reference internal" href="#regionalize-magnitudes">Regionalize Magnitudes</a><ul>
<li><a class="reference internal" href="#station-corrections">Station corrections</a></li>
</ul>
</li>
<li><a class="reference internal" href="#magnitude-aliases">Magnitude Aliases</a></li>
<li><a class="reference internal" href="#moment-magnitudes">Moment Magnitudes</a></li>
<li><a class="reference internal" href="#final-tests">Final Tests</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="servefdsnws.html"
title="previous chapter">Enable local FDSNWS server</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="waveformplayback.html"
title="next chapter">Play back archived waveforms</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/magnitude-regionalization.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 &copy; 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>

View File

@ -0,0 +1,443 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Installation on Ubuntu &#8212; 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="Upgrading SeisComP" href="upgrading.html" />
<link rel="prev" title="Tutorials" href="../tutorials.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="upgrading.html" title="Upgrading SeisComP"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="../tutorials.html" title="Tutorials"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="installation-on-ubuntu">
<span id="tutorials-postinstall"></span><h1>Installation on Ubuntu<a class="headerlink" href="#installation-on-ubuntu" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Make a basic <cite>SeisComP</cite> installation</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Internet access</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>Run a <cite>SeisComP</cite> executable</p></li>
<li><p>Run a <cite>SeisComP</cite> GUI program</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>10-15 minutes</p></li>
</ul>
<p>Related tutorial(s):</p>
<ul class="simple">
<li><p><a class="reference internal" href="upgrading.html#tutorials-upgrade"><span class="std std-ref">Upgrading SeisComP</span></a></p></li>
<li><p><a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">Add a new station</span></a></p></li>
<li><p><a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">Add real-time stations from GEOFON</span></a></p></li>
</ul>
<hr class="docutils" />
<p>You may install <cite>SeisComP</cite> by:</p>
<ol class="arabic simple">
<li><p><a class="reference internal" href="#tutorials-postinstall-compile"><span class="std std-ref">Compiling the source code</span></a>,</p></li>
<li><p><a class="reference internal" href="#tutorials-postinstall-package"><span class="std std-ref">Installing pre-compiled release packages</span></a>
including binaries, maps and documentation.</p></li>
</ol>
<section id="get-your-linux-system-ready">
<h2>Get your Linux System ready<a class="headerlink" href="#get-your-linux-system-ready" title="Permalink to this heading"></a></h2>
<p>First you need to get your Linux system ready.
The following documentation refers to Ubuntu 20.04,
but the steps for other Ubuntu versions are similar.</p>
<ol class="arabic">
<li><p>Add a new user. Throughout our documentation, this user is called <cite>sysop</cite>.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>adduser<span class="w"> </span>sysop
$<span class="w"> </span>sudo<span class="w"> </span>addgroup<span class="w"> </span>admin
$<span class="w"> </span>sudo<span class="w"> </span>usermod<span class="w"> </span>-a<span class="w"> </span>-G<span class="w"> </span>admin,adm,audio<span class="w"> </span>sysop
</pre></div>
</div>
</li>
<li><p>Check the size and the architecture. This is espcially required when installing
<a class="reference internal" href="#tutorials-postinstall-package"><span class="std std-ref">pre-compiled packages</span></a>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ df -h
$ cat /etc/issue
$ uname -m
</pre></div>
</div>
<p>Compare the available disk space with the requirements given in
the <a class="reference internal" href="../installation.html#installation"><span class="std std-ref">SeisComP Installation</span></a> section.
If uname shows i686, you have a 32-bit system;
if you see x86_64, you have 64-bit.</p>
</li>
</ol>
</section>
<section id="install-from-source-code">
<span id="tutorials-postinstall-compile"></span><h2>Install from source code<a class="headerlink" href="#install-from-source-code" title="Permalink to this heading"></a></h2>
<p>To compile SeisComP from the source code follow the
<a class="reference internal" href="../build.html#build"><span class="std std-ref">instructions in the development section</span></a>. You may later download and add
maps as described below in the <a class="reference internal" href="#tutorials-postinstall-package"><span class="std std-ref">package section</span></a>.</p>
</section>
<section id="install-pre-compiled-release-packages">
<span id="tutorials-postinstall-package"></span><h2>Install pre-compiled release packages<a class="headerlink" href="#install-pre-compiled-release-packages" title="Permalink to this heading"></a></h2>
<p>You may download and installed pre-compile SeisComP binary package, maps and documentation.</p>
<ol class="arabic">
<li><p>Download the appropriate <cite>SeisComP</cite> binary package taking into
account your Linux distribution and the architecture.
Get the package from the download site of <cite>SeisComP</cite> <span id="id1">[<a class="reference internal" href="../references.html#id257" title="Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH. The SeisComP seismological software package. GFZ Data Services. 2008. URL: https://www.seiscomp.de, doi:10.5880/GFZ.2.4.2020.003.">67</a>]</span> or from
<span id="id2"><em>Public download site of gempa</em> [<a class="reference internal" href="../references.html#id124" title="Public download site of gempa. URL: https://data.gempa.de/packages/Public/seiscomp/.">20</a>]</span>. Packages are available for Ubuntu and other Linux
flavors such as RHEL/CentOS and Debian.</p></li>
<li><p>When downloading the <cite>SeisComP</cite> binary packages you should also download</p>
<ul>
<li><p>maps for <cite>SeisComP</cite></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>wget<span class="w"> </span><span class="s2">&quot;https://www.seiscomp.de/downloader/seiscomp-maps.tar.gz&quot;</span>
</pre></div>
</div>
</li>
<li><p>the documentation package. Make sure, the documentation matches your
SeisComP version.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <cite>SeisComP</cite> packages received from gempa GmbH contain the documentation
for the respective version and no separate download is required.</p>
</div>
</li>
</ul>
</li>
<li><p>Untar the <code class="file docutils literal notranslate"><span class="pre">seiscomp*</span></code> files (binary package, maps and documentation)
you will find in your home or downloads directory. For SeisComP in version
4.0.0 this is:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">cd</span>
$<span class="w"> </span>tar<span class="w"> </span>xzf<span class="w"> </span>seiscomp-4.0.0-ubuntu20.04-x86_64.tar.gz
$<span class="w"> </span>tar<span class="w"> </span>xzf<span class="w"> </span>seiscomp-maps.tar.gz
$<span class="w"> </span>tar<span class="w"> </span>xzf<span class="w"> </span>seiscomp-4.0.0-doc.tar.gz
$<span class="w"> </span>ls<span class="w"> </span>seiscomp
bin<span class="w"> </span>etc<span class="w"> </span>include<span class="w"> </span>lib<span class="w"> </span>man<span class="w"> </span>sbin<span class="w"> </span>share
</pre></div>
</div>
</li>
<li><p>Install all dependencies needed and prepare the environment.</p>
<ul>
<li><p>This should be automatic for most distributions.
Simply run the install script</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp/bin/seiscomp<span class="w"> </span>install-deps<span class="w"> </span>base
Distribution:<span class="w"> </span>Ubuntu<span class="w"> </span><span class="m">20</span>.04
</pre></div>
</div>
<p>This will generally prompt for your users password to allow <cite>sudo</cite> to
install packages on your system.</p>
</li>
<li><p>On Ubuntu 18, Python 3 is installed, but not Python.
Get it first</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>python<span class="w"> </span>libqtgui4
</pre></div>
</div>
</li>
<li><p>On Ubuntu 20 and newer, you may need libpython3-dev before you can use
“install-deps”</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>libpython3-dev
</pre></div>
</div>
</li>
<li><p>Alternatively, for Mint 18 (Ubuntu 16.04):</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>update
$<span class="w"> </span>sudo<span class="w"> </span>apt-get<span class="w"> </span>install<span class="w"> </span>libxml2<span class="w"> </span>libboost-filesystem1.58.0
libboost-iostreams1.58.0<span class="w"> </span>libboost-thread1.58.0<span class="w"> </span>libboost-program-options1.58.0
libboost-regex1.58.0<span class="w"> </span>libboost-signals1.58.0<span class="w"> </span>libboost-system1.58.0<span class="w"> </span>libssl1.0.0
libncurses5<span class="w"> </span>libmysqlclient20<span class="w"> </span>libpq5<span class="w"> </span>libpython2.7<span class="w"> </span>python-numpy<span class="w"> </span>mysql-server
mysql-client<span class="w"> </span>libqtgui4<span class="w"> </span>libqt4-xml<span class="w"> </span>libqt4-opengl<span class="w"> </span>libqt4-sql-sqlite
</pre></div>
</div>
</li>
</ul>
</li>
<li><p>Database. For a MariaDB installation:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>install-deps<span class="w"> </span>mariadb-server
</pre></div>
</div>
<p>or a MySQL installation:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>install-deps<span class="w"> </span>mysql-server
</pre></div>
</div>
<p>Also, for better performance with a MariaDB/MySQL database,
adjust the memory pool size and the restart MariaDB/MySQL server, as described
in the <a class="reference internal" href="../installation.html#database-configuration"><span class="std std-ref">Database Server Configuration</span></a> section.</p>
<p>For PostgreSQL, also see the detailed <a class="reference internal" href="../installation.html#installation"><span class="std std-ref">SeisComP Installation</span></a> instructions.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>For Ubuntu 18.04 and newer, take care with MariaDB/MySQL installation.
Before the next step, you must set a root password <em>for MariaDB/MySQL</em>
(not the Linux root password!).</p>
<p>MariaDB:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>mysql<span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;SET old_passwords=0; ALTER USER root@localhost IDENTIFIED BY &#39;MyNewPassword&#39;; FLUSH PRIVILEGES;&quot;</span>
</pre></div>
</div>
<p>MySQL:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>sudo<span class="w"> </span>mysql<span class="w"> </span>-e<span class="w"> </span><span class="s2">&quot;ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY &#39;MyNewPassword&#39;; FLUSH PRIVILEGES;&quot;</span>
</pre></div>
</div>
<p>Substitute <em>MyNewPassword</em> by your own password and remember it
you will need it in the next step.
In case of problems, search the Internet, or the
<a class="reference external" href="https://forum.seiscomp.de/t/upgraded-to-ubuntu-18-04-and-i-broke-my-seiscomp3/1139">SeisComP forum thread</a>
(for logged-in forum members).</p>
</div>
</li>
</ol>
</section>
<section id="configuration">
<h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading"></a></h2>
<p>Find a detailed description in section <a class="reference internal" href="../getting-started.html#getting-started"><span class="std std-ref">Getting Started with SeisComP</span></a> and short guide below.</p>
<ol class="arabic">
<li><p>You may set some system environment variables.
For bash users, print the environment variables and copy them to your
<code class="file docutils literal notranslate"><span class="pre">.bashrc</span></code></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>~/seiscomp/bin/seiscomp<span class="w"> </span>print<span class="w"> </span>env
<span class="nb">export</span><span class="w"> </span><span class="nv">SEISCOMP_ROOT</span><span class="o">=</span>/home/sysop/seiscomp
<span class="nb">export</span><span class="w"> </span><span class="nv">PATH</span><span class="o">=</span>/home/sysop/seiscomp/bin:<span class="nv">$PATH</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">LD_LIBRARY_PATH</span><span class="o">=</span>/home/sysop/seiscomp/lib:<span class="nv">$LD_LIBRARY_PATH</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">PYTHONPATH</span><span class="o">=</span>/home/sysop/seiscomp/lib/python:<span class="nv">$PYTHONPATH</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">MANPATH</span><span class="o">=</span>/home/sysop/seiscomp/share/man:<span class="nv">$MANPATH</span>
<span class="nb">export</span><span class="w"> </span><span class="nv">LC_ALL</span><span class="o">=</span>C
<span class="nb">source</span><span class="w"> </span>/home/sysop/seiscomp/share/shell-completion/seiscomp.bash
</pre></div>
</div>
<p>The path to your home directory will likely differ from <cite>/home/sysop</cite> as shown above.
Therefore, do not copy and paste what you see here but use for your own
system the output from the command</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>~/seiscomp/bin/seiscomp<span class="w"> </span>print<span class="w"> </span>env
</pre></div>
</div>
<p>Add the output from the command to your file <code class="file docutils literal notranslate"><span class="pre">~/.bashrc</span></code></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>vi<span class="w"> </span>~/.bashrc
</pre></div>
</div>
<p>Then reload the content of <code class="file docutils literal notranslate"><span class="pre">~/.bashrc</span></code> in your current environment</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">source</span><span class="w"> </span>~/.bashrc
</pre></div>
</div>
<p>After this, you wont have to type <cite>~/seiscomp/bin/seiscomp</cite> as
the <a class="reference internal" href="../../apps/seiscomp.html#seiscomp"><span class="std std-ref">seiscomp</span></a> command will be added to your shells path.</p>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<p>If, when you attempt to run a SeisComP command such as <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> or
<a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a>, you receive an error message like</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scconfig:<span class="w"> </span><span class="nb">command</span><span class="w"> </span>not<span class="w"> </span>found
</pre></div>
</div>
<p>then the most likely explanation is that you have not set your SeisComP
environment variables correctly.</p>
<p>Run the <cite>seiscomp</cite> command with the full path to
where you installed.
The seven lines of output are not actually run by the seiscomp print env
command; you need to cut and paste them into your shell to run them.
You can also add these to your <code class="file docutils literal notranslate"><span class="pre">~/.bashrc</span></code>, <code class="file docutils literal notranslate"><span class="pre">~/.profile</span></code>,
or equivalent file with commands to be run every time you log in.</p>
</div>
</li>
<li><p>Run <cite>seiscomp setup</cite> and enter your preferred IDs and password. For the other
fields, you can always accept the default values.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>setup
</pre></div>
</div>
<p>You should enter an appropriate short name (without spaces) for Agency ID and
Datacenter ID. These are used for Arclink and Seedlink, and in the information
describing data model objects such as origins and events.</p>
</li>
<li><p>The <cite>seiscomp</cite> command is a wrapper, which controls the SeisComP modules.
See <a class="reference internal" href="../management.html#system-management"><span class="std std-ref">System management</span></a>.
Run something by typing seiscomp followed by a command</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="w"> </span>$<span class="w"> </span>seiscomp<span class="w"> </span><span class="nb">help</span>
<span class="w"> </span>Available<span class="w"> </span>commands:
<span class="w"> </span>install-deps
<span class="w"> </span>setup
<span class="w"> </span>shell
<span class="w"> </span><span class="nb">enable</span>
<span class="w"> </span>disable
<span class="w"> </span>print
<span class="w"> </span><span class="nb">help</span>
Use<span class="w"> </span><span class="s1">&#39;help [command]&#39;</span><span class="w"> </span>to<span class="w"> </span>get<span class="w"> </span>more<span class="w"> </span><span class="nb">help</span><span class="w"> </span>about<span class="w"> </span>a<span class="w"> </span><span class="nb">command</span>
</pre></div>
</div>
</li>
<li><p>Start <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a>.
As described in the <a class="reference internal" href="../overview.html#overview"><span class="std std-ref">Overview</span></a>, these are needed for
communication between the SeisComP database and the individual
SeisComP modules.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>start<span class="w"> </span>scmaster
starting<span class="w"> </span>scmaster
</pre></div>
</div>
</li>
<li><p>Install all dependencies needed for the GUI</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>install-deps<span class="w"> </span>gui
</pre></div>
</div>
</li>
<li><p>Start the <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> GUI</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scconfig
</pre></div>
</div>
<p>Learn more about <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> in this documentation.
You should see a screen/window like this.</p>
<figure class="align-center" id="id3">
<a class="reference internal image-reference" href="../../_images/postinstall_scconfig.png"><img alt="../../_images/postinstall_scconfig.png" src="../../_images/postinstall_scconfig.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">First view of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> configurator.</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</li>
<li><p>Run <a class="reference internal" href="../../apps/scrttv.html#scrttv"><span class="std std-ref">scrttv</span></a></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span><span class="nb">exec</span><span class="w"> </span>scrttv
</pre></div>
</div>
<p>After seeing the SeisComP splash screen,
youll likely get an error message “Could not read inventory (NULL)”.
After a new installation, thats okay.
Click that box away, and youll see a screen with
“Enabled”, and “Disabled” tabs, and time along bottom axis as in the figure below.
To see stations and data you will later need to
<a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">add inventory</span></a> and
<a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">waveforms</span></a> to your system.</p>
<figure class="align-center" id="id4">
<a class="reference internal image-reference" href="../../_images/postinstall_scrttv.png"><img alt="../../_images/postinstall_scrttv.png" src="../../_images/postinstall_scrttv.png" style="width: 14.6cm;" /></a>
<figcaption>
<p><span class="caption-text">First view of the <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> configuration tool.</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</li>
</ol>
<p>Congratulations, youre done with this tutorial.</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="#">Installation on Ubuntu</a><ul>
<li><a class="reference internal" href="#get-your-linux-system-ready">Get your Linux System ready</a></li>
<li><a class="reference internal" href="#install-from-source-code">Install from source code</a></li>
<li><a class="reference internal" href="#install-pre-compiled-release-packages">Install pre-compiled release packages</a></li>
<li><a class="reference internal" href="#configuration">Configuration</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="../tutorials.html"
title="previous chapter">Tutorials</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="upgrading.html"
title="next chapter">Upgrading SeisComP</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/postinstall.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 &copy; 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>

View File

@ -0,0 +1,266 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Configure real-time processing &#8212; 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="Add real-time stations from GEOFON" href="geofon_waveforms.html" />
<link rel="prev" title="Set up local waveform archiving" href="archiving.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="geofon_waveforms.html" title="Add real-time stations from GEOFON"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="archiving.html" title="Set up local waveform archiving"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="configure-real-time-processing">
<span id="tutorials-processing"></span><h1>Configure real-time processing<a class="headerlink" href="#configure-real-time-processing" title="Permalink to this heading"></a></h1>
<p>You will enable processing by your existing local SeisComP system.</p>
<dl class="field-list simple">
<dt class="field-odd">Pre-requisites for this tutorial<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p>Real-time data for the station must be available locally.
See <a class="reference internal" href="waveforms.html#tutorials-waveforms"><span class="std std-ref">Get real-time data from a remote Seedlink server (single station)</span></a> or <a class="reference internal" href="geofon_waveforms.html#tutorials-geofon-waveforms"><span class="std std-ref">Add real-time stations from GEOFON</span></a>.</p></li>
<li><p>Inventory must be loaded locally.</p></li>
</ul>
</dd>
<dt class="field-even">Afterwards/Results/Outcomes<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p>The new station is available for visualization and general data processing.</p></li>
<li><p>The new station is used for automatic real-time phase picking.</p></li>
</ul>
</dd>
<dt class="field-odd">Time range estimate<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p>10 minutes.</p></li>
</ul>
</dd>
<dt class="field-even">Related tutorial(s)<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">Add a new station</span></a></p></li>
</ul>
</dd>
</dl>
<hr class="docutils" />
<section id="create-bindings">
<h2>Create bindings<a class="headerlink" href="#create-bindings" title="Permalink to this heading"></a></h2>
<p>In SeisComP terminology, <em>bindings</em> are the connection between modules
and individual stations.
See the “Bindings” section of <a class="reference internal" href="../concepts/configuration.html#concepts-configuration"><span class="std std-ref">Configuration</span></a> for full details.</p>
<p>You can create the necessary bindings for your new station
using <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.
Go to the “Bindings” tab on the left side bar of <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.</p>
<ul>
<li><p>You will need to add “global” and “scautopick” bindings.</p>
<ul class="simple">
<li><p>Create a global profile named “BH” by clicking with the right button on “global”
in the top right panel. Double click on it and set BH as <em>detectStream</em> and
empty location code as <em>detecLocID</em> information.
Adjust these as appropriate for your station.</p></li>
<li><p>Create a <em>scautopick</em> profile named “default” (no changes necessary).</p></li>
<li><p>Drag and drop all profiles from the right side to the network icon on the
left side (you may do that also at the station level).</p></li>
<li><p>Press <kbd class="kbd compound docutils literal notranslate"><kbd class="kbd docutils literal notranslate">Ctrl`</kbd>+<kbd class="kbd docutils literal notranslate">:kbd:`S</kbd></kbd> to save the configuration.
This writes configuration files in <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/key</span></code>.</p></li>
</ul>
</li>
<li><p>Alternatively, you can add the scautopick and global bindings
by editing the relevant top-level key file.
(For station CLL of the GR network, this would be <code class="file docutils literal notranslate"><span class="pre">etc/key/station_GR_CLL</span></code>.)
It would contain:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Binding references</span>
<span class="k">global</span>
<span class="n">scautopick</span><span class="p">:</span><span class="n">default</span>
</pre></div>
</div>
<p>in addition to any other bindings that might be defined for this station.</p>
</li>
</ul>
<p>Then execute:</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>seiscomp<span class="w"> </span>restart<span class="w"> </span>scautopick
</pre></div>
</div>
<p>or use <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a> for these actions.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<ul class="simple">
<li><p>Station inventory must be available at least on channel level and the global
bindings must match the inventory and the available waveforms.</p></li>
<li><p>Global bindings are required for data visualization and general data
processing.</p></li>
<li><p>Enable <a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a> for running it by default.</p></li>
<li><p>Generated picks may be used by other modules, such as <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a>
which must be set up independently.</p></li>
<li><p>The default parameters for <a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a> have been optimized for
monitoring earthquakes at teleseismic distances and the must be adjusted
for other types.</p></li>
</ul>
</div>
</section>
<section id="check-the-station-is-used-for-processing">
<h2>Check the station is used for processing<a class="headerlink" href="#check-the-station-is-used-for-processing" title="Permalink to this heading"></a></h2>
<p>If you have correctly configured the station for processing, then:</p>
<ul>
<li><p>On restarting <strong class="program">scautopick</strong>, the station appears in the
<code class="file docutils literal notranslate"><span class="pre">scautopick.log</span></code> log
file in <code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/log</span></code>:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="mi">2020</span><span class="o">/</span><span class="mi">03</span><span class="o">/</span><span class="mi">01</span> <span class="mi">18</span><span class="p">:</span><span class="mi">01</span><span class="p">:</span><span class="mi">00</span> <span class="p">[</span><span class="n">info</span><span class="o">/</span><span class="n">Autopick</span><span class="p">]</span> <span class="n">Adding</span> <span class="n">detection</span> <span class="n">channel</span> <span class="n">GR</span><span class="o">.</span><span class="n">CLL</span><span class="o">..</span><span class="n">BHZ</span>
</pre></div>
</div>
<p>After some time, a nearby event will occur and phases recorded on this station
should be picked. If <a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a> was running at the time and
<a class="reference internal" href="../../apps/scautoloc.html#confval-autoloc.pickLogEnable"><code class="xref std std-confval docutils literal notranslate"><span class="pre">autoloc.pickLogEnable</span></code></a> was activated, the pick should appear in the
latest <code class="file docutils literal notranslate"><span class="pre">autoloc-picklog</span></code> file in <code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/log</span></code>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>grep<span class="w"> </span><span class="s2">&quot;CLL&quot;</span><span class="w"> </span>.seiscomp/log/autoloc-picklog.2020-03-01
<span class="m">2020</span>-03-01<span class="w"> </span><span class="m">18</span>:31:47.1<span class="w"> </span>GR<span class="w"> </span>CLL<span class="w"> </span>BHZ<span class="w"> </span>__<span class="w"> </span><span class="m">40</span>.9<span class="w"> </span><span class="m">177</span>.433<span class="w"> </span><span class="m">1</span>.1<span class="w"> </span>A<span class="w"> </span><span class="m">20200301</span>.183147.13-AIC-GR.CLL..BHZ
</pre></div>
</div>
</li>
<li><p>The station should now also appear in the GUIs.
After reopening them,</p>
<ul class="simple">
<li><p>The station should now show up in <strong class="program">scmv</strong>
(as a new triangle at the expected location on the map,
which is not black if the station is active).</p></li>
<li><p>In <strong class="program">scrttv</strong> a trace or at least the line for the configured stream
should be visible.</p></li>
<li><p>In <strong class="program">scolv</strong>, the new station is either already included
in automatic locations, or can be added manually.</p></li>
</ul>
</li>
</ul>
<p>In case of problems, check that <a class="reference internal" href="../../apps/global.html#confval-detecStream"><code class="xref std std-confval docutils literal notranslate"><span class="pre">detecStream</span></code></a> and
<a class="reference internal" href="../../apps/global.html#confval-detecLocid"><code class="xref std std-confval docutils literal notranslate"><span class="pre">detecLocid</span></code></a> are set correctly.
They must match both what is in inventory and the waveforms provided
from the upstream server.</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="#">Configure real-time processing</a><ul>
<li><a class="reference internal" href="#create-bindings">Create bindings</a></li>
<li><a class="reference internal" href="#check-the-station-is-used-for-processing">Check the station is used for processing</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="archiving.html"
title="previous chapter">Set up local waveform archiving</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="geofon_waveforms.html"
title="next chapter">Add real-time stations from GEOFON</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/processing.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 &copy; 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>

View File

@ -0,0 +1,285 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Enable local FDSNWS server &#8212; 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: Regionalization, Aliases, Mw" href="magnitude-regionalization.html" />
<link rel="prev" title="Add real-time stations from GEOFON" href="geofon_waveforms.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="magnitude-regionalization.html" title="Magnitudes: Regionalization, Aliases, Mw"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="geofon_waveforms.html" title="Add real-time stations from GEOFON"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="enable-local-fdsnws-server">
<span id="tutorials-servefdsnws"></span><h1>Enable local FDSNWS server<a class="headerlink" href="#enable-local-fdsnws-server" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Enable FDSN web service by <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a> to serve waveforms and inventory for
a configured station</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Tutorial on <a class="reference internal" href="archiving.html#tutorials-archiving"><span class="std std-ref">Set up local waveform archiving</span></a></p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>The station meta data and waveforms are available from a local web server</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>10 minutes</p></li>
</ul>
<hr class="docutils" />
<p>By default, <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a> will serve the three FDSN web services</p>
<ul class="simple">
<li><p>fdsnws-dataselect</p></li>
<li><p>fdsnws-event</p></li>
<li><p>fdsnws-station</p></li>
</ul>
<p>on a server running locally on port 8080.</p>
<p>The additional <em>availability</em> feature allows users to obtain information
on continuous data segments in the waveform archive.
This information is written to the
<a class="reference internal" href="../concepts/database.html#concepts-database"><span class="std std-ref">database</span></a> by <a class="reference internal" href="../../apps/scardac.html#scardac"><span class="std std-ref">scardac</span></a>.
To active the availability feature set <a class="reference internal" href="../../apps/fdsnws.html#confval-serveAvailability"><code class="xref std std-confval docutils literal notranslate"><span class="pre">serveAvailability</span></code></a> and
<a class="reference internal" href="../../apps/fdsnws.html#confval-dataAvailability.enable"><code class="xref std std-confval docutils literal notranslate"><span class="pre">dataAvailability.enable</span></code></a> to true.
The availability information can be retrieved using <a class="reference internal" href="../../apps/scxmldump.html#scxmldump"><span class="std std-ref">scxmldump</span></a> or <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a>.</p>
<section id="set-up">
<h2>Set-up<a class="headerlink" href="#set-up" title="Permalink to this heading"></a></h2>
<ol class="arabic">
<li><p>Configure <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a>:</p>
<ul class="simple">
<li><p>set the <a class="reference internal" href="../concepts/recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream</span></a> to point to archived data.</p></li>
<li><p>configured and enable the desired services.</p></li>
</ul>
</li>
<li><p>Enable and start fdsnws locally:</p>
<ul>
<li><p>in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>, go to the System tab.
Click on the line for the “fdsnws” module, and press “Enable module(s)”.
Then restart SeisComP.</p></li>
<li><p>or from the command line</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>fdsnws
$<span class="w"> </span>seiscomp<span class="w"> </span>start<span class="w"> </span>fdsnws
</pre></div>
</div>
</li>
</ul>
</li>
<li><p>Test by <a class="reference internal" href="#tutorials-servefdsnws-visit"><span class="std std-ref">visiting the locally started fdsnws</span></a>.</p></li>
</ol>
<p>Logging information goes to <code class="file docutils literal notranslate"><span class="pre">~/.seiscomp/log/fdsnws.log</span></code> by default.
Information about requests handled goes to the file named in <cite>accessLog</cite>,
if you set this.</p>
<p>To see the available configuration options, go to the Modules tab in
<a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.
Under Utilities open “fdsnws” to reveal the options.
To disable fdsnws-event, for instance, unlock the “serveEvent” area
and uncheck this parameter.</p>
<p>You can limit the choice of stations shared to be less than what is in your
SeisComP <a class="reference internal" href="../concepts/inventory.html#concepts-inventory"><span class="std std-ref">inventory</span></a> using the <cite>allowRestricted</cite>,
<cite>dataSelectFilter</cite> and <cite>stationFilter</cite> options.</p>
</section>
<section id="visiting-the-service">
<span id="tutorials-servefdsnws-visit"></span><h2>Visiting the Service<a class="headerlink" href="#visiting-the-service" title="Permalink to this heading"></a></h2>
<p>Once <a class="reference internal" href="../../apps/fdsnws.html#fdsnws"><span class="std std-ref">fdsnws</span></a> is running, you can visit the local web server
that it runs.
In your browser, visit <a class="reference external" href="http://localhost:8080/fdsnws/dataselect/1/">http://localhost:8080/fdsnws/dataselect/1/</a></p>
<figure class="align-center" id="id2">
<a class="reference internal image-reference" href="../../_images/servefdsnws_dataselect.png"><img alt="../../_images/servefdsnws_dataselect.png" src="../../_images/servefdsnws_dataselect.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Information screen shown by fdsnws-dataselect at
<a class="reference external" href="http://localhost:8080/fdsnws/dataselect/1/">http://localhost:8080/fdsnws/dataselect/1/</a></span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="check-it-works">
<h2>Check it Works<a class="headerlink" href="#check-it-works" title="Permalink to this heading"></a></h2>
<ul>
<li><p>If you visit the URL <a class="reference external" href="http://localhost:8080/fdsnws/dataselect/1/version">http://localhost:8080/fdsnws/dataselect/1/version</a>
you should receive a version number string - currently <cite>1.1.0</cite>.</p></li>
<li><p>To view all activated services visit <a class="reference external" href="http://localhost:8080/fdsnws/">http://localhost:8080/fdsnws/</a></p></li>
<li><p>The fdsnws-station service should give a list of networks configured
and served by the service, e.g. visiting
<a class="reference external" href="http://localhost:8080/fdsnws/station/1/query?level=network&amp;format=text">http://localhost:8080/fdsnws/station/1/query?level=network&amp;format=text</a>
produces</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1">#Network|Description|StartTime|EndTime|TotalStations</span>
GE<span class="p">|</span>GEOFON<span class="w"> </span>Program,<span class="w"> </span>GFZ<span class="w"> </span>Potsdam,<span class="w"> </span>Germany<span class="p">|</span><span class="m">1993</span>-01-01T00:00:00<span class="o">||</span><span class="m">84</span>
</pre></div>
</div>
<p>Omitting the <cite>format=text</cite> argument in the query string of the above URL
results in the service returning a StationXML file.</p>
</li>
</ul>
<figure class="align-center" id="id3">
<a class="reference internal image-reference" href="../../_images/servefdsnws_stationxml.png"><img alt="../../_images/servefdsnws_stationxml.png" src="../../_images/servefdsnws_stationxml.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Example of StationXML returned by the fdsnws-station service at</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
<div class="legend">
<p><a class="reference external" href="http://localhost:8080/fdsnws/station/1/query?level=network">http://localhost:8080/fdsnws/station/1/query?level=network</a></p>
</div>
</figcaption>
</figure>
</section>
<section id="further-information">
<h2>Further Information<a class="headerlink" href="#further-information" title="Permalink to this heading"></a></h2>
<ul class="simple">
<li><p>The <a class="reference external" href="https://geofon.gfz-potsdam.de/waveform/builder.php">URL Builder at GEOFON</a>
lets you fill out a form to tailor your request.
The URL to use to make your request is displayed at the bottom of that page.</p></li>
<li><p>More example requests are at the
<a class="reference external" href="https://geofon.gfz-potsdam.de/waveform/webservices.php">FDSNWS description at GEOFON</a></p></li>
<li><p>The FDSN Web Services specification document <span id="id1">[<a class="reference internal" href="../references.html#id111" title="FDSN Web Service Specifications. International Federation of Digital Seismograph Networks. URL: http://www.fdsn.org/webservices/FDSN-WS-Specifications-1.2.pdf.">5</a>]</span> provides the
technical documentation and examples.</p></li>
</ul>
</section>
<section id="final-tests">
<h2>Final Tests<a class="headerlink" href="#final-tests" title="Permalink to this heading"></a></h2>
<ul>
<li><p>The station should now be visible when you query your local fdsnws instance.
In your browser, visit
<a class="reference external" href="http://localhost:8080/fdsnws/station/1/query?format=text">http://localhost:8080/fdsnws/station/1/query?format=text</a>
to see a list of all channels available from your fdsnws server.</p></li>
<li><p>Request waveform data like this:</p>
<p><a class="reference external" href="http://localhost:8080/fdsnws/dataselect/1/query?start=2020-01-01T01:01:01&amp;end=2020-01-01T02:00:00">http://localhost:8080/fdsnws/dataselect/1/query?start=2020-01-01T01:01:01&amp;end=2020-01-01T02:00:00</a></p>
<p>Dont forget to adjust your start and end times to match the data
actually present in your archive.
The above example is just for the first hour of 2020.</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="#">Enable local FDSNWS server</a><ul>
<li><a class="reference internal" href="#set-up">Set-up</a></li>
<li><a class="reference internal" href="#visiting-the-service">Visiting the Service</a></li>
<li><a class="reference internal" href="#check-it-works">Check it Works</a></li>
<li><a class="reference internal" href="#further-information">Further Information</a></li>
<li><a class="reference internal" href="#final-tests">Final Tests</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="geofon_waveforms.html"
title="previous chapter">Add real-time stations from GEOFON</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="magnitude-regionalization.html"
title="next chapter">Magnitudes: Regionalization, Aliases, Mw</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/servefdsnws.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 &copy; 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>

View File

@ -0,0 +1,213 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Create a new tutorial &#8212; 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="Graphical User Interfaces" href="../../gui.html" />
<link rel="prev" title="Help! Im stuck! Now what?" href="help.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="../../gui.html" title="Graphical User Interfaces"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="help.html" title="Help! Im stuck! Now what?"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="create-a-new-tutorial">
<span id="tutorials-template"></span><h1>Create a new tutorial<a class="headerlink" href="#create-a-new-tutorial" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Add something</p></li>
<li><p>Configure something else</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Have the source code of SeisComP available</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>A new tutorial</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>30 minutes</p></li>
</ul>
<hr class="docutils" />
<section id="set-up">
<h2>Set-up<a class="headerlink" href="#set-up" title="Permalink to this heading"></a></h2>
<p>To use this template, youll need to:</p>
<ol class="arabic simple">
<li><p>Get the source code of the SeisComP documentation, e.g. from
<span id="id1"><em>SeisComP on GitHub</em> [<a class="reference internal" href="../references.html#id258" title="Seiscomp on github. URL: https://github.com/SeisComP.">1</a>]</span></p></li>
<li><p>Copy this tutorial file (<code class="file docutils literal notranslate"><span class="pre">doc/base/tutorials/template.rst</span></code>) to the tutorials directory
with a new name, <code class="file docutils literal notranslate"><span class="pre">doc/base/tutorials/</span><em><span class="pre">nn</span></em><span class="pre">_</span><em><span class="pre">something</span></em><span class="pre">.rst</span></code>.</p></li>
<li><p>Change the reference at the top (first line); it must be
<em>.. _tutorials_{something}</em>.</p></li>
<li><p>Change the title: start with a verb, describe what the student is
trying to do.</p></li>
<li><p>Set the tutorial task and a final confirmation action for the student
to verify check that it worked correctly.</p></li>
<li><p>Add the file name without the ending <em>.rst</em> to the table of contents in <code class="file docutils literal notranslate"><span class="pre">doc/base/tutorials.rst</span></code>
assigning a position for your new tutorial within the sequence of
existing tutorials.</p></li>
<li><p>Build the HTML documentation for viewing and <a class="reference internal" href="#tutorials-template-testing"><span class="std std-ref">testing</span></a>.</p></li>
<li><p>Optionally, provide your new tutorial to the public repository:</p>
<ul class="simple">
<li><p>Create a new git branch</p></li>
<li><p>Push the new branch to GitHub</p></li>
<li><p>Create a merge request to get your branch merged into the master branch</p></li>
</ul>
</li>
</ol>
</section>
<section id="final-tests">
<span id="tutorials-template-testing"></span><h2>Final Tests<a class="headerlink" href="#final-tests" title="Permalink to this heading"></a></h2>
<ul>
<li><p>If youve applied this template,</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>ls<span class="w"> </span>doc/base/tutorials
</pre></div>
</div>
<p>will show your new tutorial.</p>
</li>
<li><p>Rebuild the documentation</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span><span class="nb">cd</span><span class="w"> </span>doc
$<span class="w"> </span>python3<span class="w"> </span>build-doc.py
</pre></div>
</div>
</li>
<li><p>View the new files in <cite>build-doc/base/html/tutorials</cite> using a web browser, e.g. firefox:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>firefox<span class="w"> </span>build-doc/html/basetutorials.html
</pre></div>
</div>
</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="#">Create a new tutorial</a><ul>
<li><a class="reference internal" href="#set-up">Set-up</a></li>
<li><a class="reference internal" href="#final-tests">Final Tests</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="help.html"
title="previous chapter">Help! Im stuck! Now what?</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="../../gui.html"
title="next chapter">Graphical User Interfaces</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/template.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 &copy; 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>

View File

@ -0,0 +1,762 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Upgrading SeisComP &#8212; 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="Add a new station" href="addstation.html" />
<link rel="prev" title="Installation on Ubuntu" href="postinstall.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="addstation.html" title="Add a new station"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="postinstall.html" title="Installation on Ubuntu"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="upgrading-seiscomp">
<span id="tutorials-upgrade"></span><h1>Upgrading SeisComP<a class="headerlink" href="#upgrading-seiscomp" title="Permalink to this heading"></a></h1>
<p>You will …</p>
<ul class="simple">
<li><p>Upgrade a SeisComP system</p></li>
<li><p>Migrate a SeisComP3 system to a newer SeisComP version</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Tutorial on <a class="reference internal" href="postinstall.html#tutorials-postinstall"><span class="std std-ref">installation</span></a> and SeisComP previously installed</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>Upgraded SeisComP</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>60 minutes</p></li>
</ul>
<hr class="docutils" />
<section id="background">
<h2>Background<a class="headerlink" href="#background" title="Permalink to this heading"></a></h2>
<p>Installing a new SeisComP <a class="reference internal" href="#tutorials-upgrade-versions"><span class="std std-ref">release version</span></a>
is typically simple and the step described in <a class="reference internal" href="#tutorials-upgrade-normal"><span class="std std-ref">Normal Upgrade</span></a>
can be applied. <strong>More actions</strong> are required when</p>
<ul class="simple">
<li><p>Upgrading the major version of SeisComP as described in <a class="reference internal" href="#tutorials-upgrade-normal"><span class="std std-ref">Normal Upgrade</span></a>.</p></li>
<li><p>Upgrading <a class="reference internal" href="#tutorials-upgrade-v4"><span class="std std-ref">from SeisComP3 to SeisComP in version 4.0.0. or higher</span></a>.</p></li>
<li><p>Upgrading <a class="reference internal" href="#tutorials-upgrade-seedlink"><span class="std std-ref">from SeisComP3 Jakarta-2018.327 or older to Jakarta-2020.330 or
SeisComP in version 4 or higher</span></a>.</p></li>
</ul>
<section id="seiscomp-versions">
<span id="tutorials-upgrade-versions"></span><h3>SeisComP versions<a class="headerlink" href="#seiscomp-versions" title="Permalink to this heading"></a></h3>
<p>SeisComP has <a class="reference internal" href="../history.html#history"><span class="std std-ref">developed over time</span></a>. The versions can be distinguished
by the name of the release:</p>
<ul>
<li><p><strong>SeisComP since version 4.0.0</strong> uses release version numbers such as <em>5.2.1</em>
where</p>
<ul class="simple">
<li><p>5: major version with changes in API and database schema version, new features,
bug fixed, optimizations,</p></li>
<li><p>2: minor version with new features, bug fixed, optimizations,</p></li>
<li><p>1: patch number with bug fixes, optimizations.</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>When increasing the major version number, an upgrade of
the database is required.</p>
</div>
</li>
<li><p><strong>SeisComP3</strong> uses release versions, names, numbers and patch numbers.</p>
<p>Full example: <em>SeisComP3-jakarta-2020.330.02</em></p>
<ul class="simple">
<li><p>3: release version</p></li>
<li><p>jakarta: release name</p></li>
<li><p>2020.330: release number</p></li>
<li><p>02: patch number</p></li>
</ul>
<p>Names are adjusted depending on changes in source code:</p>
<ul class="simple">
<li><p><strong>Release version:</strong> major changes in module groups, functionality, concepts, data model.
Example: SeisComp3 is SeisComP in version 3.0
in comparison to version 2.5 the GUIs were introduced.</p></li>
<li><p><strong>Release name:</strong> major changes in functionality, concepts, data model.
Example: with SeisComP3-Seattle the new user friendly configuration GUI <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>
was introduced.</p></li>
<li><p><strong>Release number:</strong> changes in data model version and/or major changes in applications and optimizations.
The numbers include the year and the day of the year of the software release.
Example: Jakarta-2018.327</p></li>
<li><p><strong>Patch number:</strong> optimizations of applications without changes in the data model version.</p></li>
</ul>
</li>
</ul>
</section>
<section id="upgrade-seiscomp-on-multiple-machines">
<h3>Upgrade SeisComP on multiple machines<a class="headerlink" href="#upgrade-seiscomp-on-multiple-machines" title="Permalink to this heading"></a></h3>
<p>Applications can only connect to a messaging system that runs with a database
in an equal or lower data base schema version. In distributed <cite>SeisComP</cite> systems
one machine host the messaging system and the database and all other machines
are connected to this messaging or are running independently, the <cite>SeisComP</cite>
installation on the machine operating the messaging is always updated last.</p>
<p><strong>Example:</strong> A distributed system includes a processing system with the
messaging system and database and a GUI work station connected to the processing
system:</p>
<ol class="arabic simple">
<li><p>Upgrade the GUI work station</p></li>
<li><p>Upgrade the processing system, take actions to
<a class="reference internal" href="#tutorials-upgrade-db"><span class="std std-ref">upgrade the database version</span></a>.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Always stop all SeisComP modules before upgrading:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>stop
</pre></div>
</div>
</div>
</section>
</section>
<section id="package-download">
<span id="tutorials-upgrade-download"></span><h2>Package Download<a class="headerlink" href="#package-download" title="Permalink to this heading"></a></h2>
<p>Get the SeisComP package in the latest version or older ones from gempa GmbH or
from the download website of <span id="id1">Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH [<a class="reference internal" href="../references.html#id257" title="Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH. The SeisComP seismological software package. GFZ Data Services. 2008. URL: https://www.seiscomp.de, doi:10.5880/GFZ.2.4.2020.003.">67</a>]</span>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>gempa provides <span id="id2"><em>gsm - gempa software management tool</em> [<a class="reference internal" href="../references.html#id129" title="gsm - gempa software management tool. gempa solution. URL: https://data.gempa.de/packages/Public/gsm/.">29</a>]</span> for convenient and consistent download and
installation of SeisComP and other packages.</p>
</div>
</section>
<section id="documentation-of-changes">
<span id="tutorials-upgrade-changelog"></span><h2>Documentation of Changes<a class="headerlink" href="#documentation-of-changes" title="Permalink to this heading"></a></h2>
<p>The important novelties, optimizations and changes that are available after upgrading
are documented in the change log which can be read
<a class="reference external" href="https://www.seiscomp.de/doc/base/changelog.html">online</a>.
It is recommend to read the change log before taking further actions.</p>
<p>The details can also be found locally in the file</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">$SEISCOMP_ROOT</span>/share/doc/seiscomp/CHANGELOG
</pre></div>
</div>
<p>which is integrated in the <a class="reference internal" href="../changelog.html#sc-changelog"><span class="std std-ref">documentation</span></a> or accessible
from the <em>Docs</em> panel in <a class="reference internal" href="../../apps/scconfig.html#scconfig"><span class="std std-ref">scconfig</span></a>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>New features are regularly advertised and described in detail on the
<a class="reference external" href="https://www.gempa.de/news/">News website of gempa GmbH</a> and on the
<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>
</div>
</section>
<section id="normal-upgrade">
<span id="tutorials-upgrade-normal"></span><h2>Normal Upgrade<a class="headerlink" href="#normal-upgrade" title="Permalink to this heading"></a></h2>
<p>The normal upgrade including upgrading the major version of SeisComP takes only
a few steps:</p>
<ol class="arabic">
<li><p><a class="reference internal" href="#tutorials-upgrade-download"><span class="std std-ref">Download</span></a> the SeisComP package.</p></li>
<li><p>Stop all SeisComP modules:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>stop
</pre></div>
</div>
</li>
<li><p>Install the new packages.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Users of external, e.g., <cite>gempa</cite> modules must ensure that these external
modules match the SeisComP release version if they depend on SeisComP
libraries.</p>
</div>
</li>
<li><p>Test the database schema version and update bindings</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
</pre></div>
</div>
<p><a class="reference internal" href="#tutorials-upgrade-db"><span class="std std-ref">Upgrade the database schema version</span></a> if
mismatches are reported.</p>
</li>
<li><p>After a successful upgrade, start all modules again and observe the status:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start
seiscomp<span class="w"> </span>status<span class="w"> </span>started
</pre></div>
</div>
</li>
</ol>
</section>
<section id="upgrade-database-schema-version">
<span id="tutorials-upgrade-db"></span><h2>Upgrade database schema version<a class="headerlink" href="#upgrade-database-schema-version" title="Permalink to this heading"></a></h2>
<p>When installing a new SeisComP release with a higher major version number,
upgrading the database may be required. The database version will be tested and
the required actions will be shown when executing:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
</pre></div>
</div>
<p>or when pressing the Update Configuration button in scconfig.
An upgrade from version SeisComP3 jakarta-2017.334 to SeisComP in version 5.1.0
will give, e.g.:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
*<span class="w"> </span>starting<span class="w"> </span>kernel<span class="w"> </span>modules
starting<span class="w"> </span>scmaster
*<span class="w"> </span>configure<span class="w"> </span>kernel
*<span class="w"> </span>configure<span class="w"> </span>scmaster
INFO:<span class="w"> </span>checking<span class="w"> </span>DB<span class="w"> </span>schema<span class="w"> </span>version<span class="w"> </span>of<span class="w"> </span>queue:<span class="w"> </span>production
<span class="w"> </span>*<span class="w"> </span>check<span class="w"> </span>database<span class="w"> </span>write<span class="w"> </span>access<span class="w"> </span>...<span class="w"> </span>OK
<span class="w"> </span>*<span class="w"> </span>database<span class="w"> </span>schema<span class="w"> </span>version<span class="w"> </span>is<span class="w"> </span><span class="m">0</span>.10
<span class="w"> </span>*<span class="w"> </span>last<span class="w"> </span>migration<span class="w"> </span>version<span class="w"> </span>is<span class="w"> </span><span class="m">0</span>.12
<span class="w"> </span>*<span class="w"> </span>migration<span class="w"> </span>to<span class="w"> </span>the<span class="w"> </span>current<span class="w"> </span>version<span class="w"> </span>is<span class="w"> </span>required.<span class="w"> </span>apply<span class="w"> </span>the<span class="w"> </span>following
<span class="w"> </span>scripts<span class="w"> </span><span class="k">in</span><span class="w"> </span>exactly<span class="w"> </span>the<span class="w"> </span>given<span class="w"> </span>order:
<span class="w"> </span>*<span class="w"> </span>mysql<span class="w"> </span>-u<span class="w"> </span>sysop<span class="w"> </span>-p<span class="w"> </span>-D<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>&lt;<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/mysql/0_10_to_0_11.sql
<span class="w"> </span>*<span class="w"> </span>mysql<span class="w"> </span>-u<span class="w"> </span>sysop<span class="w"> </span>-p<span class="w"> </span>-D<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>&lt;<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/mysql/0_11_to_0_12.sql
error:<span class="w"> </span>updating<span class="w"> </span>configuration<span class="w"> </span><span class="k">for</span><span class="w"> </span>scmaster<span class="w"> </span>failed
</pre></div>
</div>
<p>The shown migration scripts can be used directly as given and in the given order:</p>
<ul>
<li><p>MySQL / MariaDB:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>mysql<span class="w"> </span>-u<span class="w"> </span>sysop<span class="w"> </span>-p<span class="w"> </span>-D<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>&lt;<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/mysql/0_10_to_0_11.sql
mysql<span class="w"> </span>-u<span class="w"> </span>sysop<span class="w"> </span>-p<span class="w"> </span>-D<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>&lt;<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/mysql/0_11_to_0_12.sql
</pre></div>
</div>
</li>
<li><p>PostgreSQL:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>psql<span class="w"> </span>-U<span class="w"> </span>sysop<span class="w"> </span>-d<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>-W<span class="w"> </span>-f<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/postgresql/0_10_to_0_11.sql
psql<span class="w"> </span>-U<span class="w"> </span>sysop<span class="w"> </span>-d<span class="w"> </span>seiscomp<span class="w"> </span>-h<span class="w"> </span>localhost<span class="w"> </span>-W<span class="w"> </span>-f<span class="w"> </span>/home/sysop/seiscomp/share/db/migrations/postgresql/0_11_to_0_12.sql
</pre></div>
</div>
</li>
</ul>
<p>Using the migration scripts provides a more user friendly way than copying the
lines of MySQL code from the changelog. In future versions we might add the option
to automatically run the migrations.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Upgrading the database make take some time. Do no interrupt the process!
During this time, the <cite>SeisComP</cite> messaging system is unavailable causing a downtime of the system.</p>
</div>
<p>After applying the migration scripts the database should be at the correct version.
Test again with:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
</pre></div>
</div>
<p>After successfully upgrading the database continue your previous upgrade procedure.</p>
</section>
<section id="seiscomp3-to-version-4">
<span id="tutorials-upgrade-v4"></span><h2>SeisComP3 to version &gt;=4<a class="headerlink" href="#seiscomp3-to-version-4" title="Permalink to this heading"></a></h2>
<p>SeisComP in version 4 has some major differences to SeisComP3 which require adjustments.
The main differences are in the <a class="reference internal" href="#sec-tutorials-upgrading-path"><span class="std std-ref">directories of the SeisComP installation</span></a>
and the <a class="reference internal" href="#sec-tutorials-upgrading-messaging"><span class="std std-ref">messaging system</span></a>.
The changes and the required actions are explained below. They must be considered
in addition to the steps set out in section <a class="reference internal" href="#tutorials-upgrade-normal"><span class="std std-ref">Normal Upgrade</span></a>.</p>
<section id="files-and-directories">
<span id="sec-tutorials-upgrading-path"></span><h3>Files and directories<a class="headerlink" href="#files-and-directories" title="Permalink to this heading"></a></h3>
<p>With <strong>SeisComP3</strong> all the default installation typically required all modules and configurations
in the directories</p>
<ul class="simple">
<li><p>seiscomp3/ , typically $HOME/seiscomp3 or /opt/seiscomp3/</p></li>
<li><p>$HOME/.seiscomp3/</p></li>
</ul>
<p>As of <strong>SeisComP in version 4</strong> the directories are:</p>
<ul class="simple">
<li><p>seiscomp/ , typically $HOME/seiscomp/ or /opt/seiscomp/</p></li>
<li><p>$HOME/.seiscomp/</p></li>
</ul>
<p><strong>All configuration files</strong> must be migrated to the new structures. This
includes:</p>
<ul>
<li><p>Configurations and inventory in seiscomp3/:</p>
<ul class="simple">
<li><p>seiscomp3/etc/*.cfg</p></li>
<li><p>seiscomp3/etc/inventory/</p></li>
<li><p>seiscomp3/etc/keys/</p></li>
</ul>
</li>
<li><p>Configurations in $HOME/.seiscomp3/</p></li>
<li><p>Logs in $HOME/.seiscomp3/log (optional)</p></li>
<li><p>All user-defined files and directories in seiscomp3/share/</p></li>
<li><p>All user-defined <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a> and other templates in seiscomp3/share/templates/</p></li>
<li><p>The waveform archive and other archives typically in seiscomp3/var/lib/</p></li>
<li><p>User-defined files and directories in other places.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Some configuration default and description files have changed. Spread, arclink
and arclinkproxy are not part of <cite>SeisComP</cite> anymore. <strong>Therefore, do not migrate:</strong></p>
<ul>
<li><p>any default configuration, description and init files. Better enable the desired
daemon modules again:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp/bin/seiscomp<span class="w"> </span><span class="nb">enable</span><span class="w"> </span><span class="o">[</span>module<span class="o">]</span>
</pre></div>
</div>
</li>
<li><p>any file related to spread or the arclink and arclinkproxy servers.</p></li>
</ul>
</div>
</li>
</ul>
<p>Configurations containing absolute paths, e.g. <code class="file docutils literal notranslate"><span class="pre">/home/sysop/seiscomp3/share/scautoloc/grid_custom.conf</span></code>,
must be adjusted. Better use <a class="reference internal" href="../concepts/configuration.html#concepts-configuration-variables"><span class="std std-ref">internal SeisComP variables</span></a>
such as <em>&#64;DATADIR&#64;</em> instead of <em>seiscomp3/share</em> or <em>seiscomp/share</em>.</p>
</section>
<section id="software-dependencies">
<h3>Software dependencies<a class="headerlink" href="#software-dependencies" title="Permalink to this heading"></a></h3>
<p>The software dependencies may have changed.
<a class="reference internal" href="../installation.html#software-dependencies"><span class="std std-ref">Install the missing ones</span></a>.</p>
</section>
<section id="system-variables">
<h3>System variables<a class="headerlink" href="#system-variables" title="Permalink to this heading"></a></h3>
<p>The system environment variables must be updated, e.g. in <code class="file docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code>.
Remove or uncomment the lines <code class="file docutils literal notranslate"><span class="pre">$HOME/.bashrc</span></code> referring to the depreciated SeisComP3
version. Then execute</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp/bin/seiscomp<span class="w"> </span>print<span class="w"> </span>env<span class="w"> </span>&gt;&gt;<span class="w"> </span><span class="nv">$HOME</span>/.bashrc
<span class="nb">source</span><span class="w"> </span><span class="nv">$HOME</span>/.bashrc
</pre></div>
</div>
</section>
<section id="pipelines">
<h3>Pipelines<a class="headerlink" href="#pipelines" title="Permalink to this heading"></a></h3>
<p>When using pipelines or alias modules, create and enable the alias module names again, e.g.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span><span class="nb">alias</span><span class="w"> </span>create<span class="w"> </span><span class="o">[</span>alias<span class="o">]</span><span class="w"> </span><span class="o">[</span>module<span class="o">]</span>
seiscomp<span class="w"> </span><span class="nb">enable</span><span class="w"> </span><span class="o">[</span>alias<span class="o">]</span>
</pre></div>
</div>
<p>Migrate the module and bindings configurations of the alias modules including all related additional files which are referred to
in the configurations.</p>
</section>
<section id="messaging-system">
<span id="sec-tutorials-upgrading-messaging"></span><h3>Messaging system<a class="headerlink" href="#messaging-system" title="Permalink to this heading"></a></h3>
<p>One of the main changes SeisComP3 to SeisComP in version 4.0 is the <a class="reference internal" href="../concepts/messaging.html#concepts-messaging"><span class="std std-ref">messaging system</span></a>.
Spread does not exist anymore and only <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> is started initially for
the messaging system. <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> allows to operate several queues in parallel with
different databases. This flexibility comes with additional parameters which require
configuration. Migrate the legacy database parameters and configure the new one:</p>
<ol class="arabic">
<li><p>Remove or comment the obsolete <em>dbplugin</em> plugin manually from
<code class="file docutils literal notranslate"><span class="pre">scmaster.cfg</span></code> and <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code></p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># plugins = dbplugin</span>
</pre></div>
</div>
</li>
<li><p>Set up the messaging queues in the configuration of <a class="reference internal" href="../../apps/scmaster.html#scmaster"><span class="std std-ref">scmaster</span></a> in
<code class="file docutils literal notranslate"><span class="pre">scmaster.cfg</span></code>.</p>
<ul>
<li><p>Add and configure a new queue or stay with the default ones.</p>
<ul class="simple">
<li><p><em>production</em> considers a database by default.</p></li>
<li><p><em>playback</em> considers no database by default. Here, parameters can be
exchanged through the messaging without storing in the database.</p></li>
</ul>
<p>In the following examples, the <em>production</em> queue shall be assumed.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The <em>production</em> queue is used by default by all modules connected
to the messaging system. When removing this queue and a database shall be
used, another queue must exist
and the queue name must be configured for all modules in the global
<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> parameter. See below for an example.</p>
</div>
<ul>
<li><p>Add the required plugins per queue. Currently only <em>dbstore</em> is supported.
Example for the <em>production</em> queue:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues.production.plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dbstore</span>
</pre></div>
</div>
</li>
<li><p>Add non-default message groups, e.g. <em>L1PICK</em> and <em>L1LOCATION</em> to the list
of groups <strong>in one of the ways</strong>:</p>
<ul>
<li><p><strong>Recommended:</strong> Add groups per queues to defaults in
<a class="reference internal" href="../../apps/scmaster.html#confval-queues.-name.groups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">queues.$name.groups</span></code></a>, e.g. for the <em>production</em> group.
This convenient configuration per queue
considers the default groups in <a class="reference internal" href="../../apps/scmaster.html#confval-defaultGroups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultGroups</span></code></a> and simply adds
new groups in the configuration of queues</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues.production.groups</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${defaultGroups}, L1PICK, L1LOCATION</span>
</pre></div>
</div>
</li>
<li><p>Set groups per queue in <a class="reference internal" href="../../apps/scmaster.html#confval-queues.-name.groups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">queues.$name.groups</span></code></a>,
ignoring groups in <a class="reference internal" href="../../apps/scmaster.html#confval-defaultGroups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultGroups</span></code></a></p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues.production.groups</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">L1PICK, L1LOCATION, AMPLITUDE, PICK, LOCATION, MAGNITUDE, FOCMECH, EVENT, QC, PUBLICATION, GUI, INVENTORY, ROUTING, CONFIG, LOGGING, IMPORT_GROUP, SERVICE_REQUEST, SERVICE_PROVIDE</span>
</pre></div>
</div>
</li>
<li><p>Set groups in <a class="reference internal" href="../../apps/scmaster.html#confval-defaultGroups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultGroups</span></code></a></p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">defaultGroups</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">L1PICK, L1LOCATION, AMPLITUDE, PICK, LOCATION, MAGNITUDE, FOCMECH, EVENT, QC, PUBLICATION, GUI, INVENTORY, ROUTING, CONFIG, LOGGING, IMPORT_GROUP, SERVICE_REQUEST, SERVICE_PROVIDE</span>
</pre></div>
</div>
</li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>When setting groups in the queues all groups configured in
<a class="reference internal" href="../../apps/scmaster.html#confval-defaultGroups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultGroups</span></code></a> will be ignored unless <cite>${defaultGroups}</cite> is used.
Add all groups from <a class="reference internal" href="../../apps/scmaster.html#confval-defaultGroups"><code class="xref std std-confval docutils literal notranslate"><span class="pre">defaultGroups</span></code></a> to the queues to keep the
default groups.</p>
</div>
</li>
<li><p>Add the interface name, currently only <em>dbstore</em> is supported. Example for
a queue names <em>production</em></p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues.production.processors.messages</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">dbstore</span>
</pre></div>
</div>
</li>
<li><p>Add the database parameters which can be used from the legacy configuration</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues.production.processors.messages.dbstore.driver</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">mysql</span>
<span class="na">queues.production.processors.messages.dbstore.read</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">sysop:sysop@localhost/seiscomp3</span>
<span class="na">queues.production.processors.messages.dbstore.write</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">sysop:sysop@localhost/seiscomp3</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The name of the database can be freely chosen. The example assumes that
the database named <em>seiscomp3</em> exists already and that it shall be continued
to be used with the new SeisComP in version 4.x.x.</p>
</div>
</li>
</ul>
</li>
<li><p>Add one or more of the queues to the <a class="reference internal" href="../../apps/scmaster.html#confval-queues"><code class="xref std std-confval docutils literal notranslate"><span class="pre">queues</span></code></a> parameter to register
them by their names</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">queues</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">production, playback</span>
</pre></div>
</div>
</li>
</ul>
</li>
<li><p>Configure the connection parameters of all modules connecting to the messaging
system in the global configuration, e.g. in <code class="file docutils literal notranslate"><span class="pre">global.cfg</span></code>.
As in SeisComP3 the connection server is
localhost. The queue name is added to the host by “/”. The default queue
is <em>production</em>, e.g.</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">connection.server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">localhost/production</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If <em>production</em> shall be used, then no additional configuration is required.</p>
</div>
</li>
</ol>
</section>
<section id="database">
<h3>Database<a class="headerlink" href="#database" title="Permalink to this heading"></a></h3>
<p>After adjusting the structure, variables and configuration parameters, check if the
<a class="reference internal" href="#tutorials-upgrade-db"><span class="std std-ref">database requires an upgrade</span></a> as well.</p>
</section>
<section id="seedlink">
<h3>Seedlink<a class="headerlink" href="#seedlink" title="Permalink to this heading"></a></h3>
<p>When upgrading from SeisComp3 Jakrata-2018.327 or older and using <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a>,
consider the sections <a class="reference internal" href="#tutorials-upgrade-seedlink"><span class="std std-ref">SeedLink buffer</span></a> and
<a class="reference internal" href="#tutorials-proc-seedlink"><span class="std std-ref">SeedLink stream processor</span></a>.</p>
</section>
<section id="automatic-module-check">
<h3>Automatic module check<a class="headerlink" href="#automatic-module-check" title="Permalink to this heading"></a></h3>
<p>If applied, adjust the settings for automatic module status check, e.g. crontab entries.
For crontab use:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>crontab<span class="w"> </span>-e
</pre></div>
</div>
</section>
<section id="system-daemon">
<h3>System daemon<a class="headerlink" href="#system-daemon" title="Permalink to this heading"></a></h3>
<p>If <cite>SeisComP</cite> is controlled by the system daemon, e.g. to start enabled <cite>SeisComP</cite>
modules automatically during computer startup, then the startup script must be
adjusted.</p>
</section>
</section>
<section id="upgrade-from-seiscomp3-jakarta-2018-327-or-before">
<h2>Upgrade From SeisComP3 Jakarta-2018.327 or Before<a class="headerlink" href="#upgrade-from-seiscomp3-jakarta-2018-327-or-before" title="Permalink to this heading"></a></h2>
<section id="seedlink-buffer">
<span id="tutorials-upgrade-seedlink"></span><h3>SeedLink buffer<a class="headerlink" href="#seedlink-buffer" title="Permalink to this heading"></a></h3>
<p>In SeisComP3 prior to Jakarta-2020.330 two stations with the same
station but different network code were mixed in one buffer directory.
As of Jakarta-2020.330 and SeisComP in version 4 the buffer directories are now
unique!
Before upgrading <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a>, you should therefore rename the buffer directories
accordingly.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>You may discover data gaps if you do not rename the buffer directories.</p>
</div>
<p><strong>Example:</strong></p>
<ol class="arabic">
<li><p>Check the current situation:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sysop@host:~/seiscomp3/var/lib/seedlink/buffer$<span class="w"> </span>ls
<span class="w"> </span>PB02
</pre></div>
</div>
</li>
<li><p>Rename the directories properly:</p>
<ol class="arabic">
<li><p>Stop seedlink:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>sysop@host:seiscomp<span class="w"> </span>stop<span class="w"> </span>seedlink
</pre></div>
</div>
</li>
<li><p>Upgrade to SeisComP3-jakarta-2020.330 or SeisComP in version 4 or higher.</p></li>
<li><p>Rename all seedlink buffer directories to NET.STA, e.g.</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sysop@host:~/seiscomp3/var/lib/seedlink/buffer$<span class="w"> </span>mv<span class="w"> </span>PB02<span class="w"> </span>CX.PB02
sysop@host:~/seiscomp3/var/lib/seedlink/buffer$<span class="w"> </span>ls
<span class="w"> </span>CX.PB02
</pre></div>
</div>
</li>
<li><p>Update configuration:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sysop@host:seiscomp<span class="w"> </span>update-config
</pre></div>
</div>
</li>
<li><p>Start SeedLink</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>sysop@host:seiscomp<span class="w"> </span>start<span class="w"> </span>seedlink
</pre></div>
</div>
</li>
</ol>
</li>
</ol>
<p id="seedlink-buffer-script">Script for renaming the seedlink buffer directories:</p>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="ch">#!/bin/bash</span>
<span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="si">${</span><span class="nv">SEISCOMP_ROOT</span><span class="p">+x</span><span class="si">}</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Environment variable SEISCOMP_ROOT is not set.&quot;</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Either use &#39;seiscomp exec [script]&#39; or set SEISCOMP_ROOT to the installation &quot;</span>
<span class="w"> </span><span class="nb">exit</span><span class="w"> </span><span class="m">1</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;path of your SeisComP installation.&quot;</span>
<span class="k">fi</span>
grep<span class="w"> </span>-A<span class="w"> </span><span class="m">2</span><span class="w"> </span>^station<span class="w"> </span><span class="nv">$SEISCOMP_ROOT</span>/var/lib/seedlink/seedlink.ini<span class="w"> </span><span class="p">|</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="nb">read</span><span class="w"> </span>a<span class="w"> </span>b<span class="w"> </span>c<span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$a</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>station<span class="w"> </span>-a<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$b</span><span class="s2">&quot;</span><span class="w"> </span>!<span class="o">=</span><span class="w"> </span>.dummy<span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nv">id</span><span class="o">=</span><span class="nv">$b</span>
<span class="w"> </span><span class="nv">sta</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
<span class="w"> </span><span class="nv">net</span><span class="o">=</span><span class="s2">&quot;&quot;</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="nb">read</span><span class="w"> </span>a<span class="w"> </span>b<span class="w"> </span>c<span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="nv">$a</span><span class="w"> </span><span class="k">in</span>
<span class="w"> </span>--<span class="o">)</span><span class="w"> </span><span class="k">break</span><span class="p">;;</span>
<span class="w"> </span>name<span class="o">)</span><span class="w"> </span><span class="nb">eval</span><span class="w"> </span><span class="nv">sta</span><span class="o">=</span><span class="nv">$c</span><span class="p">;;</span>
<span class="w"> </span>network<span class="o">)</span><span class="w"> </span><span class="nb">eval</span><span class="w"> </span><span class="nv">net</span><span class="o">=</span><span class="nv">$c</span><span class="p">;;</span>
<span class="w"> </span><span class="k">esac</span>
<span class="w"> </span><span class="k">done</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$id</span><span class="s2">&quot;</span><span class="w"> </span>-o<span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$sta</span><span class="s2">&quot;</span><span class="w"> </span>-o<span class="w"> </span>-z<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$net</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;Error parsing seedlink.ini&quot;</span>
<span class="w"> </span><span class="k">break</span>
<span class="w"> </span><span class="k">fi</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$id</span><span class="s2">&quot;</span><span class="w"> </span>!<span class="o">=</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$net</span><span class="s2">.</span><span class="nv">$sta</span><span class="s2">&quot;</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">then</span>
<span class="w"> </span>mv<span class="w"> </span>-v<span class="w"> </span><span class="s2">&quot;</span><span class="nv">$SEISCOMP_ROOT</span><span class="s2">/var/lib/seedlink/buffer/</span><span class="nv">$id</span><span class="s2">&quot;</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$SEISCOMP_ROOT</span><span class="s2">/var/lib/seedlink/buffer/</span><span class="nv">$net</span><span class="s2">.</span><span class="nv">$sta</span><span class="s2">&quot;</span>
<span class="w"> </span><span class="k">else</span>
<span class="w"> </span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;</span><span class="nv">$id</span><span class="s2">: No renaming required&quot;</span>
<span class="w"> </span><span class="k">fi</span>
<span class="w"> </span><span class="k">fi</span>
<span class="k">done</span>
</pre></div>
</div>
</section>
<section id="seedlink-stream-processor">
<span id="tutorials-proc-seedlink"></span><h3>SeedLink stream processor<a class="headerlink" href="#seedlink-stream-processor" title="Permalink to this heading"></a></h3>
<p>Since SeisComP3 in version Jakarta-2020.030 and SeisComP in version 4.0.0,
SeedLink stream processors (<code class="docutils literal notranslate"><span class="pre">proc</span></code> parameter) can be attached to both, stations
and plugin instances. In order to distinguish between the two cases, either
<code class="docutils literal notranslate"><span class="pre">proc</span></code> (attach to station) or <code class="docutils literal notranslate"><span class="pre">sources.*.proc</span></code> (attach to plugin instance)
parameter (or both) can be used in SeedLink bindings.</p>
<section id="chain-plugin">
<h4>chain plugin<a class="headerlink" href="#chain-plugin" title="Permalink to this heading"></a></h4>
<p>In case of the <a class="reference internal" href="../../apps/seedlink.html#seedlink-sources-chain-label"><span class="std std-ref">chain plugin</span></a> for
<a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a>, there is
normally just one instance, so stream processors attached to this instance apply
to all stations. <strong>This is normally not what we want.</strong> Therefore the
chain plugin does not support the <code class="docutils literal notranslate"><span class="pre">sources.*.proc</span></code> option.</p>
<p>Before SeisComP3 in version Jakarta-2020.030 and SeisComP in version 4.0.0,
stream processors were always attached to stations, even when <code class="docutils literal notranslate"><span class="pre">sources.*.proc</span></code>
was used. This means when upgrading:</p>
<ol class="arabic simple">
<li><p><code class="docutils literal notranslate"><span class="pre">sources.chain.proc</span></code> must be renamed to <code class="docutils literal notranslate"><span class="pre">proc</span></code></p></li>
<li><p>streams_*.tpl templates must be moved one level up, from
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/seiscomp/share/templates/seedlink/chain/</span></code> to
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/seiscomp/share/templates/seedlink/</span></code>.</p></li>
</ol>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Using a stream processor with chain_plugin makes only sense when raw
data is generated (<a class="reference internal" href="../../apps/seedlink.html#confval-sources.chain.channels.unpack"><code class="xref std std-confval docutils literal notranslate"><span class="pre">sources.chain.channels.unpack</span></code></a>).</p>
</div>
</section>
<section id="id4">
<h4>Background<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h4>
<p>A stream processor is an object defined in XML, which is used to create MiniSEED
from raw data and optionally downsample the data. What is the difference between
attaching a stream processor to station and plugin instance?</p>
<p>Lets take a look at the following stream processor definition in
<code class="file docutils literal notranslate"><span class="pre">$SEISCOMP_ROOT/share/templates/seedlink/streams_stream100.tpl</span></code>:</p>
<div class="highlight-XML notranslate"><div class="highlight"><pre><span></span><span class="nt">&lt;proc</span><span class="w"> </span><span class="na">name=</span><span class="s">&quot;stream100&quot;</span><span class="nt">&gt;</span>
<span class="w"> </span><span class="nt">&lt;tree&gt;</span>
<span class="w"> </span><span class="nt">&lt;input</span><span class="w"> </span><span class="na">name=</span><span class="s">&quot;Z&quot;</span><span class="w"> </span><span class="na">channel=</span><span class="s">&quot;Z&quot;</span><span class="w"> </span><span class="na">location=</span><span class="s">&quot;&quot;</span><span class="w"> </span><span class="na">rate=</span><span class="s">&quot;100&quot;</span><span class="nt">/&gt;</span>
<span class="w"> </span><span class="nt">&lt;input</span><span class="w"> </span><span class="na">name=</span><span class="s">&quot;N&quot;</span><span class="w"> </span><span class="na">channel=</span><span class="s">&quot;N&quot;</span><span class="w"> </span><span class="na">location=</span><span class="s">&quot;&quot;</span><span class="w"> </span><span class="na">rate=</span><span class="s">&quot;100&quot;</span><span class="nt">/&gt;</span>
<span class="w"> </span><span class="nt">&lt;input</span><span class="w"> </span><span class="na">name=</span><span class="s">&quot;E&quot;</span><span class="w"> </span><span class="na">channel=</span><span class="s">&quot;E&quot;</span><span class="w"> </span><span class="na">location=</span><span class="s">&quot;&quot;</span><span class="w"> </span><span class="na">rate=</span><span class="s">&quot;100&quot;</span><span class="nt">/&gt;</span>
<span class="w"> </span><span class="nt">&lt;node</span><span class="w"> </span><span class="na">filter=</span><span class="s">&quot;FS2D5&quot;</span><span class="w"> </span><span class="na">stream=</span><span class="s">&quot;BH&quot;</span><span class="nt">&gt;</span>
<span class="w"> </span><span class="nt">&lt;node</span><span class="w"> </span><span class="na">filter=</span><span class="s">&quot;F96C&quot;</span><span class="nt">&gt;</span>
<span class="w"> </span><span class="nt">&lt;node</span><span class="w"> </span><span class="na">filter=</span><span class="s">&quot;ULP&quot;</span><span class="w"> </span><span class="na">stream=</span><span class="s">&quot;LH&quot;</span><span class="nt">&gt;</span>
<span class="w"> </span><span class="nt">&lt;node</span><span class="w"> </span><span class="na">filter=</span><span class="s">&quot;VLP&quot;</span><span class="w"> </span><span class="na">stream=</span><span class="s">&quot;VH&quot;</span><span class="nt">/&gt;</span>
<span class="w"> </span><span class="nt">&lt;/node&gt;</span>
<span class="w"> </span><span class="nt">&lt;/node&gt;</span>
<span class="w"> </span><span class="nt">&lt;/node&gt;</span>
<span class="w"> </span><span class="nt">&lt;/tree&gt;</span>
<span class="nt">&lt;/proc&gt;</span>
</pre></div>
</div>
<p>This creates 20Hz BH*, 1Hz LH* and 0.1Hz VH* streams from 100Hz Z, N, E raw
data. If one plugin instance is used for the station, it does not make a
difference whether this is attached to station or plugin instance. But suppose
the station is using two plugin instances—one for broad-band and the other for
strong-motion data—, both sending Z, N and E channels. Now if the stream processor
is attached to station, data from both plugin instances would mixed up. We must
attach a different stream processor to each plugin instance—one producing BH*,
LH* and VH* and the other one producing BN* and so on.</p>
</section>
</section>
</section>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h3><a href="../../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Upgrading SeisComP</a><ul>
<li><a class="reference internal" href="#background">Background</a><ul>
<li><a class="reference internal" href="#seiscomp-versions">SeisComP versions</a></li>
<li><a class="reference internal" href="#upgrade-seiscomp-on-multiple-machines">Upgrade SeisComP on multiple machines</a></li>
</ul>
</li>
<li><a class="reference internal" href="#package-download">Package Download</a></li>
<li><a class="reference internal" href="#documentation-of-changes">Documentation of Changes</a></li>
<li><a class="reference internal" href="#normal-upgrade">Normal Upgrade</a></li>
<li><a class="reference internal" href="#upgrade-database-schema-version">Upgrade database schema version</a></li>
<li><a class="reference internal" href="#seiscomp3-to-version-4">SeisComP3 to version &gt;=4</a><ul>
<li><a class="reference internal" href="#files-and-directories">Files and directories</a></li>
<li><a class="reference internal" href="#software-dependencies">Software dependencies</a></li>
<li><a class="reference internal" href="#system-variables">System variables</a></li>
<li><a class="reference internal" href="#pipelines">Pipelines</a></li>
<li><a class="reference internal" href="#messaging-system">Messaging system</a></li>
<li><a class="reference internal" href="#database">Database</a></li>
<li><a class="reference internal" href="#seedlink">Seedlink</a></li>
<li><a class="reference internal" href="#automatic-module-check">Automatic module check</a></li>
<li><a class="reference internal" href="#system-daemon">System daemon</a></li>
</ul>
</li>
<li><a class="reference internal" href="#upgrade-from-seiscomp3-jakarta-2018-327-or-before">Upgrade From SeisComP3 Jakarta-2018.327 or Before</a><ul>
<li><a class="reference internal" href="#seedlink-buffer">SeedLink buffer</a></li>
<li><a class="reference internal" href="#seedlink-stream-processor">SeedLink stream processor</a><ul>
<li><a class="reference internal" href="#chain-plugin">chain plugin</a></li>
<li><a class="reference internal" href="#id4">Background</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="postinstall.html"
title="previous chapter">Installation on Ubuntu</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="addstation.html"
title="next chapter">Add a new station</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/upgrading.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 &copy; 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>

View File

@ -0,0 +1,360 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Play back archived waveforms &#8212; 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="Help! Im stuck! Now what?" href="help.html" />
<link rel="prev" title="Magnitudes: Regionalization, Aliases, Mw" href="magnitude-regionalization.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="help.html" title="Help! Im stuck! Now what?"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="magnitude-regionalization.html" title="Magnitudes: Regionalization, Aliases, Mw"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="play-back-archived-waveforms">
<span id="tutorials-waveformplayback"></span><h1>Play back archived waveforms<a class="headerlink" href="#play-back-archived-waveforms" title="Permalink to this heading"></a></h1>
<p>Aims:</p>
<ul class="simple">
<li><p>Use previously recorded waveform files to re-run the analysis
of an old event using SeisComP. This is known as a <em>waveform playback</em>.</p></li>
<li><p>Insert results into your current SeisComP database for later processing.</p></li>
<li><p>Review the results from playbacks.</p></li>
</ul>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p>Have SeisComP installed and configured</p></li>
<li><p>Have access to <a class="reference internal" href="../glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a> waveforms</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p>The results from the playback are in your SeisComP system, e.g. <a class="reference internal" href="../glossary.html#term-pick"><span class="xref std std-term">picks</span></a>,
<a class="reference internal" href="../glossary.html#term-origin"><span class="xref std std-term">origins</span></a>, <a class="reference internal" href="../glossary.html#term-amplitude"><span class="xref std std-term">amplitudes</span></a>, <a class="reference internal" href="../glossary.html#term-event"><span class="xref std std-term">events</span></a></p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>60 minutes</p></li>
</ul>
<p>Related tutorial(s):</p>
<ul class="simple">
<li><p>Tutorial on <a class="reference internal" href="help.html#tutorials-help"><span class="std std-ref">getting help</span></a></p></li>
</ul>
<hr class="docutils" />
<p>Playbacks are an important way of testing module and whole-system configurations,
operator trainings, system demonstrations and validations and tuning of the SeisComP modules
used for detecting and locating events, e.g. involving</p>
<ul class="simple">
<li><p><a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</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>
<li><p><a class="reference internal" href="../../apps/scautopick.html#scautopick"><span class="std std-ref">scautopick</span></a></p></li>
<li><p><a class="reference internal" href="../../apps/scautoloc.html#scautoloc"><span class="std std-ref">scautoloc</span></a></p></li>
<li><p><a class="reference internal" href="../../apps/scamp.html#scamp"><span class="std std-ref">scamp</span></a></p></li>
<li><p><a class="reference internal" href="../../apps/scmag.html#scmag"><span class="std std-ref">scmag</span></a></p></li>
<li><p><a class="reference internal" href="../../apps/scevent.html#scevent"><span class="std std-ref">scevent</span></a></p></li>
<li><p>others.</p></li>
</ul>
<p>Playbacks rely on miniSEED data which are obtained from the <a class="reference internal" href="../glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> archive or
other sources. The miniSEED data records in the data files must be sorted by end time!</p>
<p>There are two types of playbacks:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#tutorials-rtplayback"><span class="std std-ref">Real-time playbacks</span></a>.</p></li>
<li><p><a class="reference internal" href="#tutorials-nonrtplayback"><span class="std std-ref">Non-real-time playbacks</span></a>.</p></li>
</ul>
<section id="data-preparation">
<h2>Data preparation<a class="headerlink" href="#data-preparation" title="Permalink to this heading"></a></h2>
<p>First extract the data. Make sure the miniSEED records are sorted by end time.
The data extraction depends on the data source.</p>
<p>Examples:</p>
<ul>
<li><p><strong>SDS archive:</strong> Extract the data from your own SDS archive using <a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a>
and save it in a new miniSEED file <code class="file docutils literal notranslate"><span class="pre">[your</span> <span class="pre">miniSEED</span> <span class="pre">file]</span></code>, sorted by
end time of the records.</p>
<p>Examples:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scart<span class="w"> </span>-dsE<span class="w"> </span>-l<span class="w"> </span><span class="o">[</span>list<span class="w"> </span>file<span class="o">]</span><span class="w"> </span><span class="nv">$SEISCOMP_ROOT</span>/var/lib/archive<span class="w"> </span>&gt;<span class="w"> </span><span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
</li>
<li><p><strong>FDSNWS:</strong> Get the miniSEED data from an external FDSNWS server. The obtained
data are initially sorted by station and must therefore be sorted by end time
using <a class="reference internal" href="../../apps/scmssort.html#scmssort"><span class="std std-ref">scmssort</span></a>. Use the resulting file <code class="file docutils literal notranslate"><span class="pre">[your</span> <span class="pre">miniSEED</span> <span class="pre">file]</span></code>
for your playback.</p>
<p>Example for one hour of data from the GE network from
<a class="reference external" href="https://geofon.gfz-potsdam.de/waveform/webservices/fdsnws.php">FDSNWS at GEOFON</a>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>wget<span class="w"> </span>-O<span class="w"> </span>data.mseed<span class="w"> </span><span class="s2">&quot;http://geofon.gfz-potsdam.de/fdsnws/dataselect/1/query?net=GE&amp;cha=BH*&amp;starttime=2021-04-01T06:00:00Z&amp;endtime=2021-04-01T07:00:00Z&quot;</span>
scmssort<span class="w"> </span>-u<span class="w"> </span>-E<span class="w"> </span>data.mseed<span class="w"> </span>&gt;<span class="w"> </span><span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
</li>
<li><p><strong>CAPS server:</strong> Extract the data from gempas CAPS server <span id="id1">[<a class="reference internal" href="../references.html#id91" title="CAPS. gempa module. URL: https://docs.gempa.de/caps/current/index.html.">3</a>]</span>
using <span id="id2"><em>capstool</em> [<a class="reference internal" href="../references.html#id94" title="capstool. gempa plugin. URL: https://docs.gempa.de/caps/current/apps/capstool.html.">27</a>]</span>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>capstool<span class="w"> </span>-H<span class="w"> </span><span class="o">[</span>host<span class="o">]</span>:<span class="o">[</span>port<span class="o">]</span><span class="w"> </span><span class="o">[</span>request<span class="w"> </span>file<span class="o">]</span><span class="w"> </span>&gt;<span class="w"> </span>data.mseed
</pre></div>
</div>
<p>or <a class="reference internal" href="../../apps/scart.html#scart"><span class="std std-ref">scart</span></a> with the <em>caps</em> <a class="reference internal" href="../glossary.html#term-RecordStream"><span class="xref std std-term">recordstream</span></a>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scart<span class="w"> </span>-I<span class="w"> </span>caps://<span class="o">[</span>host<span class="o">]</span>:<span class="o">[</span>port<span class="o">]</span><span class="w"> </span>-l<span class="w"> </span><span class="o">[</span>list<span class="w"> </span>file<span class="o">]</span><span class="w"> </span>--stdout<span class="w"> </span>&gt;<span class="w"> </span>data.mseed
</pre></div>
</div>
<p>Eventually, sort the downloaded data by end time with <a class="reference internal" href="../../apps/scmssort.html#scmssort"><span class="std std-ref">scmssort</span></a> creating
a new file, <code class="file docutils literal notranslate"><span class="pre">[your</span> <span class="pre">miniSEED</span> <span class="pre">file]</span></code>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scmssort<span class="w"> </span>-u<span class="w"> </span>-E<span class="w"> </span>data.mseed<span class="w"> </span>&gt;<span class="w"> </span><span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
</li>
</ul>
<p>Use the resulting file <code class="file docutils literal notranslate"><span class="pre">[your</span> <span class="pre">miniSEED</span> <span class="pre">file]</span></code> for your playback.</p>
</section>
<section id="playbacks">
<h2>Playbacks<a class="headerlink" href="#playbacks" title="Permalink to this heading"></a></h2>
<section id="real-time-playbacks">
<span id="tutorials-rtplayback"></span><h3>Real-time playbacks<a class="headerlink" href="#real-time-playbacks" title="Permalink to this heading"></a></h3>
<p>In a real-time playback data are injected into the seedlink buffer from a file
using the command-line tool <a class="reference internal" href="../../apps/msrtsimul.html#msrtsimul"><span class="std std-ref">msrtsimul</span></a>. Therefore, seedlink requires a configuration.</p>
<ol class="arabic">
<li><p>Prepare <a class="reference internal" href="../../apps/seedlink.html#seedlink"><span class="std std-ref">seedlink</span></a> to except data from msrtsimul:</p>
<ul>
<li><p>In the <a class="reference internal" href="../concepts/configuration.html#concepts-configuration"><span class="std std-ref">module configuration</span></a>
of seedlink set</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">msrtsimul</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span>
</pre></div>
</div>
</li>
<li><p>Save the configuration, update the configuration and restart seedlink:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
seiscomp<span class="w"> </span>restart<span class="w"> </span>seedlink
</pre></div>
</div>
<p>Open :scrttv: to verify the success of this re-configuration. No new data must arrive.</p>
</li>
</ul>
</li>
<li><p>Restart all automatic data processing modules you wish to involve. Additionally start
<a class="reference internal" href="../../apps/slarchive.html#slarchive"><span class="std std-ref">slarchive</span></a> to archive the miniSEED data in the SDS archive for post-processing.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>restart<span class="w"> </span>scmaster<span class="w"> </span>scautopick<span class="w"> </span>scautoloc<span class="w"> </span>scamp<span class="w"> </span>scmag<span class="w"> </span>scevent<span class="w"> </span>slarchive
</pre></div>
</div>
</li>
<li><p>Start all desired <a class="reference internal" href="../glossary.html#term-GUI"><span class="xref std std-term">GUI</span></a> modules to observe the data acquisition and processing
and the event results, e.g.:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scrttv<span class="w"> </span><span class="p">&amp;</span><span class="w"> </span>scmv<span class="w"> </span><span class="p">&amp;</span><span class="w"> </span>scesv<span class="w"> </span><span class="p">&amp;</span><span class="w"> </span>scolv
</pre></div>
</div>
</li>
<li><p>Start the playback using msrtsimul:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>msrtsimul<span class="w"> </span>-v<span class="w"> </span><span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
<p>This will play back the data as if they where perfectly recorded and received now.
To preserve the time of the records use <strong class="program">msrtsimul</strong> with the historic
mode:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>msrtsimul<span class="w"> </span>-v<span class="w"> </span>-m<span class="w"> </span>historic<span class="w"> </span><span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Using <strong class="program">msrtsimul</strong> with the historic mode requires to reset the
seedlink buffer and the buffer of other processing modules by removing
the buffer files and restarting the modules. This mode may
therefore be exclusively used by experienced users.</p>
</div>
</li>
</ol>
<p>Revert the seedlink configuration after the playback to return to the original real-time
data acquisition.</p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Be careful with executing real-time playbacks on production SeisComP systems:</p>
<ul class="simple">
<li><p>You potentially disrupt the real-time data acquisition</p></li>
<li><p>You potentially add data at wrong times to seedlink and your SDS waveform archive</p></li>
<li><p>You modify the history of the created events</p></li>
<li><p>You potentially add events at wrong origin times to your database.</p></li>
</ul>
<p>Better use separate test systems for real-time playbacks.</p>
</div>
</section>
<section id="non-real-time-playbacks">
<span id="tutorials-nonrtplayback"></span><h3>Non-real-time playbacks<a class="headerlink" href="#non-real-time-playbacks" title="Permalink to this heading"></a></h3>
<p>In non-real-time playbacks, also referred to as offline playbacks, data are processed
by each module as fast as possible. The results can be communicated by</p>
<ul class="simple">
<li><p>Messages: message-based playback</p></li>
<li><p>XML files in <a class="reference internal" href="../glossary.html#term-SCML"><span class="xref std std-term">SCML</span></a> format: XML playback. They require the processing
modules to provide the <em>- -ep</em> option.</p></li>
</ul>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>In non-real-time playbacks scheduling and the creation history are not representative of
real-time situations.</p>
</div>
</section>
</section>
<section id="reviewing-results">
<h2>Reviewing results<a class="headerlink" href="#reviewing-results" title="Permalink to this heading"></a></h2>
<p>Use <a class="reference internal" href="../../apps/scolv.html#scolv"><span class="std std-ref">scolv</span></a> or other <a class="reference internal" href="../glossary.html#term-GUI"><span class="xref std std-term">GUIs</span></a> to review the results:</p>
<ul>
<li><p>Event parameters are in the default database. Configure <a class="reference internal" href="../concepts/recordstream.html#concepts-recordstream"><span class="std std-ref">RecordStream</span></a>
if the waveforms are in the seedlink or in the <a class="reference internal" href="../glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> archive:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>-d<span class="w"> </span>mysql://sysop:sysop@localhost/seiscomp
</pre></div>
</div>
</li>
<li><p>Event parameters are in the default database but the waveforms are read from the miniSEED file:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>-d<span class="w"> </span>mysql://sysop:sysop@localhost/seiscomp<span class="w"> </span>-I<span class="w"> </span>file://<span class="o">[</span>your<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Reading from the original file will only work if the actual times of the data
are preserved during the playback. This is <strong>not</strong> the case when starting
<strong class="program">msrtsimul</strong> without the historic mode.</p>
</div>
</li>
<li><p>Event parameters are available in one XML file and the waveforms are read from the miniSEED file:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scolv<span class="w"> </span>--offline<span class="w"> </span>-d<span class="w"> </span>mysql://sysop:sysop@localhost/seiscomp<span class="w"> </span>-I<span class="w"> </span>file://<span class="o">[</span>your<span class="w"> </span>miniSEED<span class="w"> </span>file<span class="o">]</span>
</pre></div>
</div>
<p>To open the XML file click on the <em>File</em> menu of scolv. When results are available in several
XML files, the files can be merged beforehand using <a class="reference internal" href="../../apps/scxmlmerge.html#scxmlmerge"><span class="std std-ref">scxmlmerge</span></a>.</p>
</li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Adjust the arguments to match your configuration. Use your own values for arguments enclosed by
brackets, e.g. [your file]</p>
</div>
</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="#">Play back archived waveforms</a><ul>
<li><a class="reference internal" href="#data-preparation">Data preparation</a></li>
<li><a class="reference internal" href="#playbacks">Playbacks</a><ul>
<li><a class="reference internal" href="#real-time-playbacks">Real-time playbacks</a></li>
<li><a class="reference internal" href="#non-real-time-playbacks">Non-real-time playbacks</a></li>
</ul>
</li>
<li><a class="reference internal" href="#reviewing-results">Reviewing results</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="magnitude-regionalization.html"
title="previous chapter">Magnitudes: Regionalization, Aliases, Mw</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="help.html"
title="next chapter">Help! Im stuck! Now what?</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/waveformplayback.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 &copy; 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>

View File

@ -0,0 +1,297 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Get real-time data from a remote Seedlink server (single station) &#8212; 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="Set up local waveform archiving" href="archiving.html" />
<link rel="prev" title="Add a new station" href="addstation.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="archiving.html" title="Set up local waveform archiving"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="addstation.html" title="Add a new station"
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="../tutorials.html" accesskey="U">Tutorials</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="get-real-time-data-from-a-remote-seedlink-server-single-station">
<span id="tutorials-waveforms"></span><h1>Get real-time data from a remote Seedlink server (single station)<a class="headerlink" href="#get-real-time-data-from-a-remote-seedlink-server-single-station" title="Permalink to this heading"></a></h1>
<p>You will use <strong class="program">scconfig</strong> to add waveforms for a single station
which is already in inventory.</p>
<p>Pre-requisites for this tutorial:</p>
<ul class="simple">
<li><p><a class="reference internal" href="postinstall.html#tutorials-postinstall"><span class="std std-ref">Installation</span></a></p></li>
<li><p>Inventory for the station already loaded.</p></li>
</ul>
<p>Afterwards/Results/Outcomes:</p>
<ul class="simple">
<li><p><strong class="program">slinktool -Q</strong> locally shows the stations streams are available.</p></li>
</ul>
<p>Time range estimate:</p>
<ul class="simple">
<li><p>10 minutes</p></li>
</ul>
<p>Related tutorial(s):</p>
<ul class="simple">
<li><p><a class="reference internal" href="archiving.html#tutorials-archiving"><span class="std std-ref">Set up local waveform archiving</span></a></p></li>
<li><p><a class="reference internal" href="servefdsnws.html#tutorials-servefdsnws"><span class="std std-ref">Enable local FDSNWS server</span></a></p></li>
<li><p><a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">Add a new station</span></a></p></li>
</ul>
<hr class="docutils" />
<p>We suppose there is an upstream Seedlink server, such as that
from GEOFON, IRIS, or some other public source.</p>
<section id="check-data-are-available">
<h2>Check data are available<a class="headerlink" href="#check-data-are-available" title="Permalink to this heading"></a></h2>
<p>First, well query the upstream Seedlink server,
to confirm that it has current data.
We do this with SeisComPs <strong class="program">slinktool</strong> command,
giving it the -L option to list the available stations.
For this example, well use the server at host <cite>geofon.gfz-potsdam.de</cite>
on port 18000 (the default)</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ slinktool -L geofon.gfz-potsdam.de
AW VNA1 VNA1
AW VNA2 VNA2
[..]
GR BSEG BSEG
GR BUG BUG
GR CLL CLL
GR CLZ CLZ
[..]
</pre></div>
</div>
<p>This can be a long list. It shows the network code and station code of each
of the stations for which data is available from this Seedlink server.
We can restrict the output to our station of interest using <cite>grep</cite>.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ slinktool -Q geofon.gfz-potsdam.de | grep GR.CLL
GR CLL LHN D 2020/05/06 15:13:41.2249 - 2020/05/06 21:15:28.0299
GR CLL BHZ D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:13.1300
GR CLL BHN D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:15.4300
GR CLL HHE D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:50.3450
GR CLL HHN D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:52.4650
GR CLL HHZ D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:53.6850
GR CLL LOG L 2020/05/06 15:13:41.2249 - 2020/05/06 19:59:53.3850
GR CLL BHE D 2020/05/06 15:13:41.2249 - 2020/05/06 21:22:08.9300
[..]
</pre></div>
</div>
<p>The -Q option provides a formatted stream list,
with one line for each stream available from the server.
The columns are: network code, station code, location code (which may
be empty) and channel code, a flag, and then the (UTC) time of the
first and last data available at the server.
(The <cite>grep</cite> command here is used to limit output to just those CLL streams;
without it, this server provides thousands of lines of output.)</p>
<p>For an active station the last data time (shown on the
right) will be very recent.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><strong>(Advanced)</strong>
You can restrict who has access to a stations data (from your server)
in your Seedlink bindings.
This sets the <a class="reference internal" href="../../apps/seedlink.html#confval-0"><code class="xref std std-confval docutils literal notranslate"><span class="pre">access</span></code></a> variable in your <code class="file docutils literal notranslate"><span class="pre">seedlink.ini</span></code> file.
This can be done for all stations, or per station.
The documentation for <strong class="program">seedlink</strong> gives details.</p>
</div>
</section>
<section id="configure-bindings">
<h2>Configure bindings<a class="headerlink" href="#configure-bindings" title="Permalink to this heading"></a></h2>
<p>In <strong class="program">scconfig</strong>, under the Bindings tab:</p>
<ol class="arabic simple">
<li><p>Create a <em>seedlink</em> profile named “geofon”, named after the upstream server.</p>
<ul class="simple">
<li><p>Double click on the profile.</p></li>
<li><p>Select the chain plugin for the souce from the drop-down menu</p></li>
<li><p>To add the plugin click on the green “plus” button on the left. Name it anything or even leave the name blank.</p></li>
<li><p>Open this and set the name of the server (<a class="reference internal" href="../../apps/slmon.html#confval-address"><code class="xref std std-confval docutils literal notranslate"><span class="pre">address</span></code></a>)
and its TCP port, <a class="reference internal" href="../../apps/slmon.html#confval-port"><code class="xref std std-confval docutils literal notranslate"><span class="pre">port</span></code></a>. Normally you leave the port at 18000 which is the default.</p></li>
<li><p>If you wish to limit the data requested to particular channels,
based on channel or location code,
set Seedlinks <a class="reference internal" href="../../apps/seedlink.html#confval-sources.chain.selectors"><code class="xref std std-confval docutils literal notranslate"><span class="pre">selectors</span></code></a> to “BH?.D” say
for fetch all BH stream and no auxiliary streams. Add the location code without
a space to limit by location as well, e.g. 00BH?.D. You may add a comma-separated
list of streams, e.g. “00BH?.D, 10BH?.D”.
Otherwise you will be requesting all streams available for this
station, potentially wasting bandwidth and slowing your system.
No other changes are normally necessary.</p></li>
</ul>
</li>
<li><p>Drag and drop this profile from the right side to the network icon on the
left side (you may do that also at the station level)
to apply it to your station.</p></li>
<li><p>Press Ctrl+S to save the configuration.
This writes configuration files in <code class="file docutils literal notranslate"><span class="pre">~/seiscomp/etc/key</span></code>.</p></li>
</ol>
</section>
<section id="update-the-configuration">
<h2>Update the configuration<a class="headerlink" href="#update-the-configuration" title="Permalink to this heading"></a></h2>
<p>The SeisComP database must already be updated with the inventory
(see Tutorial <a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">Add a new station</span></a>).
SeisComPs modules then require restarting to load the updated information.</p>
<ul>
<li><p>Go to the System tab and press ESC (the Escape key, to de-select all modules).</p>
<ol class="arabic simple">
<li><p>Click on “Update configuration”, at the right of the window.
(<strong>Not</strong> “Refresh”, - that just refreshes <strong class="program">scconfig</strong>s
display of what is running!)</p></li>
<li><p>Press <em>Start</em> to start acquiring data from the already configured stations.</p></li>
</ol>
</li>
<li><p>Alternatively, at the command line:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ seiscomp update-config seedlink
$ seiscomp restart seedlink
</pre></div>
</div>
</li>
</ul>
</section>
<section id="check-it-works">
<h2>Check it works<a class="headerlink" href="#check-it-works" title="Permalink to this heading"></a></h2>
<ul>
<li><p>To confirm that you have waveform data for the station locally,
run</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">slinktool</span> <span class="o">-</span><span class="n">Q</span> <span class="n">localhost</span>
</pre></div>
</div>
</li>
</ul>
</section>
<section id="further-steps">
<h2>Further steps<a class="headerlink" href="#further-steps" title="Permalink to this heading"></a></h2>
<p>At this point,
you can follow the same procedure for other networks/stations, provided you</p>
<ol class="arabic simple">
<li><p>Have metadata available. You may follow the tutorial <a class="reference internal" href="addstation.html#tutorials-addstation"><span class="std std-ref">Add a new station</span></a>.</p></li>
<li><p>Know the location of a Seedlink server for, and have access to, the waveforms.</p></li>
</ol>
</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="#">Get real-time data from a remote Seedlink server (single station)</a><ul>
<li><a class="reference internal" href="#check-data-are-available">Check data are available</a></li>
<li><a class="reference internal" href="#configure-bindings">Configure bindings</a></li>
<li><a class="reference internal" href="#update-the-configuration">Update the configuration</a></li>
<li><a class="reference internal" href="#check-it-works">Check it works</a></li>
<li><a class="reference internal" href="#further-steps">Further steps</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="addstation.html"
title="previous chapter">Add a new station</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="archiving.html"
title="next chapter">Set up local waveform archiving</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../../_sources/base/tutorials/waveforms.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 &copy; 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>