You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

290 lines
14 KiB
HTML

<!DOCTYPE html>
<html >
<head>
<meta charset="utf-8" />
<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/graphviz.css" />
<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 src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/language_data.js"></script>
<link rel="shortcut icon" href="../../_static/favicon.ico"/>
<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">5.3.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">
<div class="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 headline"></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>
<div class="section" id="check-data-are-available">
<h2>Check data are available<a class="headerlink" href="#check-data-are-available" title="Permalink to this headline"></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-access"><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>
</div>
<div class="section" id="configure-bindings">
<h2>Configure bindings<a class="headerlink" href="#configure-bindings" title="Permalink to this headline"></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>
</div>
<div class="section" id="update-the-configuration">
<h2>Update the configuration<a class="headerlink" href="#update-the-configuration" title="Permalink to this headline"></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>
</div>
<div class="section" id="check-it-works">
<h2>Check it works<a class="headerlink" href="#check-it-works" title="Permalink to this headline"></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>
</div>
<div class="section" id="further-steps">
<h2>Further steps<a class="headerlink" href="#further-steps" title="Permalink to this headline"></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>
</div>
</div>
<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" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<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>
<h4>Previous topic</h4>
<p class="topless"><a href="addstation.html"
title="previous chapter">Add a new station</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="archiving.html"
title="next chapter">Set up local waveform archiving</a></p>
<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>5.3.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>