[installation] Init with inital config for global

This commit is contained in:
2025-10-30 15:08:17 +01:00
commit 7640b452ed
3678 changed files with 2200095 additions and 0 deletions

View File

@ -0,0 +1,355 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<section id="id1">
<h2>2025.101<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Improved performance significantly when requesting many channels from
an upstream caps server.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2025.069<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Ported code to latest SeisComP API 17 and fix deprecation
warnings.</p></li>
</ul>
</section>
</section>
<section id="id3">
<h2>2024.262<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="id4">
<h3>Fixed<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id5">
<h2>2023.234<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Command-line help and more module documentation.</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2023.257<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Added<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New configuration option <code class="docutils literal notranslate"><span class="pre">maxRealTimeGap</span></code> and <code class="docutils literal notranslate"><span class="pre">marginRealTimeGap</span></code>.
They allow to configure a dedicated backfilling stream and to
prefer real-time data. The consequence is the reception of
out of order records at clients.</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2022-02-28<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Added<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New config option <code class="docutils literal notranslate"><span class="pre">timeWindowUpdateInterval</span></code>. This option
sets the interval in seconds at which the relative request
time window defined by option <code class="docutils literal notranslate"><span class="pre">days</span></code> and/or <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> is
updated. Use a value less or equal zero to disable the update.
This feature is supported in archive mode only.
A typical use case is when data has to be transmitted
continuously with a time delay.</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">timeWindowUpdateInterval</span><span class="o">=</span><span class="m">86400</span>
</pre></div>
</div>
</section>
</section>
<section id="id10">
<h2>2022-02-25<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Wrong time window subscription after reconnect</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2020-12-22<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Added<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Configuration description for daysBefore in e.g. scconfig</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2020-12-17<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Added<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New config option <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> which can be used to set the end time
of the data acquisition time window n days before the current time, e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">daysBefore</span><span class="o">=</span><span class="m">10</span>
</pre></div>
</div>
</section>
</section>
<section id="id16">
<h2>2020-02-17<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Changed<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
<li><p>Use microsecond precision in data requests</p></li>
</ul>
</section>
</section>
<section id="id18">
<h2>2020-02-12<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h2>
<section id="id19">
<h3>Added<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Backfilling buffer which is a tool to mitigate out-of-order data. Whenever a
gap is detected, records will be held in a buffer and not sent out. Records
are flushed from front to back if the buffer size is exceeded.</p></li>
</ul>
</section>
</section>
<section id="id20">
<h2>2020-02-10<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h2>
<section id="id21">
<h3>Changed<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Subscribe to streams even if the requested end time is before the last
received timestamp. This is necessary to do not request data again in
case of wildcard requests.</p></li>
</ul>
</section>
</section>
<section id="id22">
<h2>2018-08-05<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h2>
<section id="id23">
<h3>Fixed<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>segfault in journal file parser</p></li>
<li><p>corrupt journal files</p></li>
</ul>
</section>
</section>
<section id="id24">
<h2>2018-03-19<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h2>
<section id="id25">
<h3>Added<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>SSL support for outgoing connections</p></li>
</ul>
</section>
</section>
<section id="id26">
<h2>2018-03-14<a class="headerlink" href="#id26" title="Permalink to this heading"></a></h2>
<section id="id27">
<h3>Fixed<a class="headerlink" href="#id27" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The journal file will be stored by default at &#64;ROOTDIR&#64;/var/run/[name]/journal
where name is the name of the application. In standard cases it is <code class="docutils literal notranslate"><span class="pre">caps2caps</span></code>
but not with aliases in use.</p></li>
</ul>
</section>
</section>
<section id="id28">
<h2>2017-03-21<a class="headerlink" href="#id28" title="Permalink to this heading"></a></h2>
<section id="id29">
<h3>Fixed<a class="headerlink" href="#id29" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>stream recovery in case of wild card request</p></li>
</ul>
</section>
</section>
<section id="id30">
<h2>2017-02-14<a class="headerlink" href="#id30" title="Permalink to this heading"></a></h2>
<section id="id31">
<h3>Added<a class="headerlink" href="#id31" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>out-of-order support</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2025.101</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2025.069</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2024.262</a><ul>
<li><a class="reference internal" href="#id4">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id5">2023.234</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2023.257</a><ul>
<li><a class="reference internal" href="#id7">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2022-02-28</a><ul>
<li><a class="reference internal" href="#id9">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2022-02-25</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2020-12-22</a><ul>
<li><a class="reference internal" href="#id13">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2020-12-17</a><ul>
<li><a class="reference internal" href="#id15">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2020-02-17</a><ul>
<li><a class="reference internal" href="#id17">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id18">2020-02-12</a><ul>
<li><a class="reference internal" href="#id19">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id20">2020-02-10</a><ul>
<li><a class="reference internal" href="#id21">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id22">2018-08-05</a><ul>
<li><a class="reference internal" href="#id23">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id24">2018-03-19</a><ul>
<li><a class="reference internal" href="#id25">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id26">2018-03-14</a><ul>
<li><a class="reference internal" href="#id27">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id28">2017-03-21</a><ul>
<li><a class="reference internal" href="#id29">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id30">2017-02-14</a><ul>
<li><a class="reference internal" href="#id31">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/CHANGELOG-caps.md.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,216 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to the python plugins will be documented in this file.</p>
<section id="id1">
<h2>2024.262<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2024.005<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Document the processing of SLIST files with multiple data blocks.</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id3">
<h2>2023.317<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>image2caps</p>
<ul>
<li><p>Enforce Python3</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id4">
<h2>2023.298<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Added<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Allow setting the network code explicitly by network`.</p></li>
</ul>
</li>
</ul>
</section>
<section id="id6">
<h3>Changed<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Read the sample rate numerator and denominator separately instead of
assuming denominator = 1.</p></li>
<li><p>For format unavco 1.0 the network code must be given explicitly.</p></li>
</ul>
</li>
</ul>
</section>
<section id="id7">
<h3>Fixed<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Send data in unavco data format which was not done before.</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id8">
<h2>2023.255<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Added<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Renamed from raw2caps.</p></li>
<li><p>Support reading slist files, add documentation.</p></li>
<li><p>Support reading strain &amp; seismic data files from www.unavco.org.</p></li>
</ul>
</li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2024.262</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.005</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2023.317</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2023.298</a><ul>
<li><a class="reference internal" href="#id5">Added</a></li>
<li><a class="reference internal" href="#id6">Changed</a></li>
<li><a class="reference internal" href="#id7">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2023.255</a><ul>
<li><a class="reference internal" href="#id9">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/CHANGELOG-python.md.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,375 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to rs plugin will be documented in this file.</p>
<section id="id1">
<h2>2025.051<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Option <code class="docutils literal notranslate"><span class="pre">days</span></code> that allows to set the start time of the data
time window n days before the current time., e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">days</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Option <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> that allows to set the end time of the data
time window n days before the current time., e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">daysBefore</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
</pre></div>
</div>
</section>
</section>
<section id="id2">
<h2>2024.262<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id3">
<h2>2024.173<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="id4">
<h3>Added<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Config option <code class="docutils literal notranslate"><span class="pre">streams.passthrough</span></code>. Until now, the feature could only
be activated via a command line option.</p></li>
</ul>
</section>
</section>
<section id="id5">
<h2>2024.156<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<section id="important">
<h3>Important<a class="headerlink" href="#important" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The command-line option <code class="docutils literal notranslate"><span class="pre">--addr</span></code>/<code class="docutils literal notranslate"><span class="pre">-a</span></code> has been renamed to
<code class="docutils literal notranslate"><span class="pre">--output</span></code>/<code class="docutils literal notranslate"><span class="pre">-O</span></code> in order to be consistent with other applications like
caps2caps. Scripts/processes using this parameter must be adjusted.</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2023.254<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Added<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make <code class="docutils literal notranslate"><span class="pre">output.maxFutureEndTime</span></code> configurable in scconfig.</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2023.135<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Fixed<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Inventory subscription</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2022.332<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Added<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Add poll mode for non-real-time inputs, e.g. fdsnws.</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2021-04-29<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Added<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Add SSL and authentication support for the output connection.
With this version the data output URL can be set with the
config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code>. The formal definition
of the field is: [[caps|capss]://][user:pass&#64;]host[:port] e.g.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">capss</span><span class="p">:</span><span class="o">//</span><span class="n">caps</span><span class="p">:</span><span class="n">caps</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
<p>The new output.address parameter superseds the output.host and
output.port parameter of previous versions and takes precedence.
The old parameters are kept for compatibility reasons but are
marked as deprecated.</p>
</li>
</ul>
</section>
</section>
<section id="id14">
<h2>2020-02-17<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
</ul>
</section>
</section>
<section id="id15">
<h2>2020-01-23<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h2>
<section id="id16">
<h3>Fixed<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make init script Python 2 and 3 compatible</p></li>
</ul>
</section>
</section>
<section id="id17">
<h2>2019-08-07<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h2>
<section id="id18">
<h3>Added<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>plugin version information</p></li>
</ul>
</section>
</section>
<section id="id19">
<h2>2019-01-30<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h2>
<section id="id20">
<h3>Fixed<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Loading inventory from file</p></li>
</ul>
</section>
</section>
<section id="id21">
<h2>2018-12-17<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h2>
<section id="id22">
<h3>Added<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added new option <code class="docutils literal notranslate"><span class="pre">--status-log</span></code>. With this option enabled
the plugin writes status information e.g. the number of bytes
buffered into a seperate log file <code class="docutils literal notranslate"><span class="pre">&#64;LOGDIR&#64;/rs2caps-stats.log</span></code>.</p></li>
</ul>
</section>
</section>
<section id="id23">
<h2>2018-01-24<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h2>
<section id="id24">
<h3>Added<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Optimized config script in combination with high station count</p></li>
</ul>
</section>
</section>
<section id="id25">
<h2>2018-01-17<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h2>
<section id="id26">
<h3>Added<a class="headerlink" href="#id26" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added optional bindings to synchronize the journal file with</p></li>
<li><p>Added option to synchronize journal file with bindings</p></li>
</ul>
</section>
</section>
<section id="id27">
<h2>2016-06-08<a class="headerlink" href="#id27" title="Permalink to this heading"></a></h2>
<section id="id28">
<h3>Added<a class="headerlink" href="#id28" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added option <code class="docutils literal notranslate"><span class="pre">--passthrough</span></code> which will not read the inventory from
the database and thus does not require a database connection and it will
not subscribe to any stream at the recordstream. Instead it will process
everything that it receives. This is most useful in combination with files.</p></li>
</ul>
</section>
</section>
<section id="id29">
<h2>2016-06-03<a class="headerlink" href="#id29" title="Permalink to this heading"></a></h2>
<section id="id30">
<h3>Added<a class="headerlink" href="#id30" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>backfilling support</p></li>
</ul>
</section>
</section>
<section id="id31">
<h2>2016-05-25<a class="headerlink" href="#id31" title="Permalink to this heading"></a></h2>
<section id="id32">
<h3>Added<a class="headerlink" href="#id32" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>support to load inventory from file or database. The configuration may be
adopted using the standard SeisComP3 options.</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2025.051</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.262</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2024.173</a><ul>
<li><a class="reference internal" href="#id4">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id5">2024.156</a><ul>
<li><a class="reference internal" href="#important">Important</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2023.254</a><ul>
<li><a class="reference internal" href="#id7">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2023.135</a><ul>
<li><a class="reference internal" href="#id9">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2022.332</a><ul>
<li><a class="reference internal" href="#id11">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2021-04-29</a><ul>
<li><a class="reference internal" href="#id13">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2020-02-17</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id15">2020-01-23</a><ul>
<li><a class="reference internal" href="#id16">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id17">2019-08-07</a><ul>
<li><a class="reference internal" href="#id18">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id19">2019-01-30</a><ul>
<li><a class="reference internal" href="#id20">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id21">2018-12-17</a><ul>
<li><a class="reference internal" href="#id22">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id23">2018-01-24</a><ul>
<li><a class="reference internal" href="#id24">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id25">2018-01-17</a><ul>
<li><a class="reference internal" href="#id26">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id27">2016-06-08</a><ul>
<li><a class="reference internal" href="#id28">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id29">2016-06-03</a><ul>
<li><a class="reference internal" href="#id30">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id31">2016-05-25</a><ul>
<li><a class="reference internal" href="#id32">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/CHANGELOG-rs.md.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,250 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to the slink2caps plugin will be documented in this file.</p>
<section id="id1">
<h2>2023.254<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make <code class="docutils literal notranslate"><span class="pre">output.maxFutureEndTime</span></code> configurable in scconfig.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2022.340<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="id3">
<h3>Added<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Support all Seedlink 3.3 features which includes plugin proc
definitions</p></li>
</ul>
</section>
</section>
<section id="id4">
<h2>2022-05-23<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Added<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul>
<li><p>CAPS authentication support for outgoing connections.
Use the config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code> to provide
the data output URL in the form
[[caps|capss]://][user:pass&#64;]host[:port], e.g.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">caps</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="k">pass</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
</li>
</ul>
</section>
</section>
<section id="id6">
<h2>2022-04-14<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Transient packets will be written to disk during shutdown to
prevent packet loss</p></li>
</ul>
</section>
</section>
<section id="id7">
<h2>2022-04-07<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Shutdown in case of no data could be sent to CAPS</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2022-03-03<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Fixed<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Fixed usage of <code class="docutils literal notranslate"><span class="pre">output.recordBufferSize</span></code> which hasnt been used yet</p></li>
<li><p>Set default buffer size to 128k</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2021-11-23<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>First shutdown plugins and then stop caps connection to avoid lost
records during shutdown</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2019-09-24<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Fixed<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Flush all transient packages before closing the connection to CAPS at exit</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2019-05-06<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Fixed<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Capturing of SeedLink plugins logs. Under certain conditions the data
acquisition could be affected causing packet loss.</p></li>
</ul>
</section>
</section>
<section id="id16">
<h2>2019-03-12<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Added<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Capture SeedLink plugins logs</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2023.254</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2022.340</a><ul>
<li><a class="reference internal" href="#id3">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2022-05-23</a><ul>
<li><a class="reference internal" href="#id5">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2022-04-14</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id7">2022-04-07</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2022-03-03</a><ul>
<li><a class="reference internal" href="#id9">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2021-11-23</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2019-09-24</a><ul>
<li><a class="reference internal" href="#id13">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2019-05-06</a><ul>
<li><a class="reference internal" href="#id15">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2019-03-12</a><ul>
<li><a class="reference internal" href="#id17">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/CHANGELOG-seedlink.md.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,310 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to sproc2caps will be documented in this file.</p>
<section id="id1">
<h2>2024.351<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Compatibility with upcoming SeisComP release</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2024.262<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="id3">
<h3>Fixed<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id4">
<h2>2024.257<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Fixed<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Memory leak</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2024.234<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Fixed<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Output sampling rate when input sampling rate is a fraction</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2024.233<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The option <code class="docutils literal notranslate"><span class="pre">--stop</span></code> terminates the data processing when the data input and
processing is complete.</p></li>
</ul>
</section>
</section>
<section id="id9">
<h2>2023.225<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make stream map reading slightly more error-tolerant</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2023.289<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>When using a stream as input several times just the last registered
stream was used.</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2023.151<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Fixed<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Inventory loading from file</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2021-04-29<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Added<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Add SSL and authentication support for the output connection.
With this version the data output URL can be set with the
config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code>. The formal definition
of the field is: [[caps|capss]://][user:pass&#64;]host[:port] e.g.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">capss</span><span class="p">:</span><span class="o">//</span><span class="n">caps</span><span class="p">:</span><span class="n">caps</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
<p>The new output.address parameter superseds the output.host and
output.port parameter of previous versions and takes precedence.
The old parameters are kept for compatibility reasons but are
marked as deprecated.</p>
</li>
</ul>
</section>
</section>
<section id="id16">
<h2>2021-04-27<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Fixed<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Expression handling. So far it was not possible to
overwrite expressions on stream level.</p></li>
</ul>
</section>
</section>
<section id="id18">
<h2>2020-04-07<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h2>
<section id="id19">
<h3>Fixed<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Sequential rules where the result stream is the input of another rule</p></li>
</ul>
</section>
</section>
<section id="id20">
<h2>2020-04-06<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h2>
<section id="id21">
<h3>Changed<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Support to set expression for each stream independently. If the expression
is omitted the expression configured in <code class="docutils literal notranslate"><span class="pre">streams.expr</span></code> is used.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>XX.TEST1..HHZ XX.TEST2..HHZ XX.TEST3..HHZ?expr=x1+x2
</pre></div>
</div>
</li>
</ul>
</section>
</section>
<section id="id22">
<h2>2020-02-17<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h2>
<section id="id23">
<h3>Changed<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
</ul>
</section>
</section>
<section id="id24">
<h2>2019-11-25<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h2>
<section id="id25">
<h3>Added<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Documentation</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2024.351</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.262</a><ul>
<li><a class="reference internal" href="#id3">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2024.257</a><ul>
<li><a class="reference internal" href="#id5">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2024.234</a><ul>
<li><a class="reference internal" href="#id7">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2024.233</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id9">2023.225</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2023.289</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2023.151</a><ul>
<li><a class="reference internal" href="#id13">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2021-04-29</a><ul>
<li><a class="reference internal" href="#id15">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2021-04-27</a><ul>
<li><a class="reference internal" href="#id17">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id18">2020-04-07</a><ul>
<li><a class="reference internal" href="#id19">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id20">2020-04-06</a><ul>
<li><a class="reference internal" href="#id21">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id22">2020-02-17</a><ul>
<li><a class="reference internal" href="#id23">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id24">2019-11-25</a><ul>
<li><a class="reference internal" href="#id25">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/CHANGELOG-sproc.md.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,597 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Data Management &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Execution and Automatic Startup" href="configuration.html" />
<link rel="prev" title="CAPS Server Application" href="server.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="configuration.html" title="Execution and Automatic Startup"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="server.html" title="CAPS Server Application"
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="server.html" accesskey="U">CAPS Server Application</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="data-management">
<span id="sec-archive"></span><h1>Data Management<a class="headerlink" href="#data-management" title="Permalink to this heading"></a></h1>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> uses the <a class="reference internal" href="glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> directory
structure for its archives shown in figure <a href="#fig-archive">5</a>. SDS organizes
the data in directories by year, network, station and channel.
This tree structure eases archiving of data. One complete year may be
moved to an external storage, e.g. a tape library.</p>
<figure class="align-default" id="id2">
<span id="fig-archive"></span><a class="reference internal image-reference" href="../_images/sds.png"><img alt="../_images/sds.png" src="../_images/sds.png" style="width: 12cm;" /></a>
<figcaption>
<p><span class="caption-text">SDS archive structure of a CAPS archive</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<p>The data are stored in the channel directories. One file is created per sensor
location for each day of the year. File names take the form
<code class="file docutils literal notranslate"><span class="pre">$net.$sta.$loc.$cha.$year.$yday.data</span></code> with</p>
<ul class="simple">
<li><p><strong>net</strong>: network code, e.g. II</p></li>
<li><p><strong>sta</strong>: station code, e.g. BFO</p></li>
<li><p><strong>loc</strong>: sensor location code, e.g. 00. Empty codes are supported</p></li>
<li><p><strong>cha</strong>: channel code, e.g. BHZ</p></li>
<li><p><strong>year</strong>: calender year, e.g. 2021</p></li>
<li><p><strong>yday</strong>: day of the year starting with 000 on 1 January</p></li>
</ul>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>In contrast to CAPS archives, in SDS archives created with
<a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/slarchive.html">slarchive</a>
the first day of the year, 1 January, is referred to by index 001.</p>
</div>
<section id="file-format">
<span id="sec-caps-archive-file-format"></span><h2>File Format<a class="headerlink" href="#file-format" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> uses the <a class="reference external" href="http://de.wikipedia.org/wiki/Resource_Interchange_File_Format">RIFF</a> file format
for data storage. A RIFF file consists of <code class="docutils literal notranslate"><span class="pre">chunks</span></code>. Each chunk starts with a 8
byte chunk header followed by data. The first 4 bytes denote the chunk type, the
next 4 bytes the length of the following data block. Currently the following
chunk types are supported:</p>
<ul class="simple">
<li><p><strong>SID</strong> - stream ID header</p></li>
<li><p><strong>HEAD</strong> - data information header</p></li>
<li><p><strong>DATA</strong> - data block</p></li>
<li><p><strong>BPT</strong> - b-tree index page</p></li>
<li><p><strong>META</strong> - meta chunk of the entire file containing states and a checksum</p></li>
</ul>
<p>Figure <a href="#fig-file-one-day">6</a> shows the possible structure of an archive
file consisting of the different chunk types.</p>
<figure class="align-default" id="id3">
<span id="fig-file-one-day"></span><a class="reference internal image-reference" href="../_images/file_one_day.png"><img alt="../_images/file_one_day.png" src="../_images/file_one_day.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Possible structure of an archive file</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<section id="sid-chunk">
<h3>SID Chunk<a class="headerlink" href="#sid-chunk" title="Permalink to this heading"></a></h3>
<p>A data file may start with a SID chunk which defines the stream id of the
data that follows in DATA chunks. In the absence of a SID chunk, the stream ID
is retrieved from the file name.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>content</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>id=”SID”</p></td>
<td><p>char[4]</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-odd"><td><p>chunkSize</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>networkCode + \0</p></td>
<td><p>char*</p></td>
<td><p>len(networkCode) + 1</p></td>
</tr>
<tr class="row-odd"><td><p>stationCode + \0</p></td>
<td><p>char*</p></td>
<td><p>len(stationCode) + 1</p></td>
</tr>
<tr class="row-even"><td><p>locationCode + \0</p></td>
<td><p>char*</p></td>
<td><p>len(locationCode) + 1</p></td>
</tr>
<tr class="row-odd"><td><p>channelCode + \0</p></td>
<td><p>char*</p></td>
<td><p>len(channelCode) + 1</p></td>
</tr>
</tbody>
</table>
</section>
<section id="head-chunk">
<h3>HEAD Chunk<a class="headerlink" href="#head-chunk" title="Permalink to this heading"></a></h3>
<p>The HEAD chunk contains information about subsequent DATA chunks. It has a fixed
size of 15 bytes and is inserted under the following conditions:</p>
<ul class="simple">
<li><p>before the first data chunk (beginning of file)</p></li>
<li><p>packet type changed</p></li>
<li><p>unit of measurement changed</p></li>
</ul>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>content</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>id=”HEAD”</p></td>
<td><p>char[4]</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-odd"><td><p>chunkSize (=7)</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>version</p></td>
<td><p>int16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>packetType</p></td>
<td><p>char</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>unitOfMeasurement</p></td>
<td><p>char[4]</p></td>
<td><p>4</p></td>
</tr>
</tbody>
</table>
<p>The <code class="docutils literal notranslate"><span class="pre">packetType</span></code> entry refers to one of the supported types described in
section <a class="reference internal" href="#sec-packet-types"><span class="std std-ref">Packet Types</span></a>.</p>
</section>
<section id="data-chunk">
<h3>DATA Chunk<a class="headerlink" href="#data-chunk" title="Permalink to this heading"></a></h3>
<p>The DATA chunk contains the actually payload, which may be further structured
into header and data parts.</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>content</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>id=”DATA”</p></td>
<td><p>char[4]</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-odd"><td><p>chunkSize</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>data</p></td>
<td><p>char*</p></td>
<td><p>chunkSize</p></td>
</tr>
</tbody>
</table>
<p>Section <a class="reference internal" href="#sec-packet-types"><span class="std std-ref">Packet Types</span></a> describes the currently supported packet types.
Each packet type defines its own data structure. Nevertheless <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a>
requires each type to supply a <code class="docutils literal notranslate"><span class="pre">startTime</span></code> and <code class="docutils literal notranslate"><span class="pre">endTime</span></code> information for
each record in order to create seamless data streams. The <code class="docutils literal notranslate"><span class="pre">endTime</span></code> may be
stored explicitly or may be derived from <code class="docutils literal notranslate"><span class="pre">startTime</span></code>, <code class="docutils literal notranslate"><span class="pre">chunkSize</span></code>,
<code class="docutils literal notranslate"><span class="pre">dataType</span></code> and <code class="docutils literal notranslate"><span class="pre">samplingFrequency</span></code>.</p>
<p>In contrast to a data streams, <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> also supports storing of individual
measurements. These measurements are indicated by setting the sampling frequency
to 1/0.</p>
</section>
<section id="bpt-chunk">
<h3>BPT Chunk<a class="headerlink" href="#bpt-chunk" title="Permalink to this heading"></a></h3>
<p>BPT chunks hold information about the file index. All data records are indexed
using a B+ tree. The index key is the tuple of start time and end time of each
data chunk to allow very fast time window lookup and to minimize disc accesses.
The value is a structure and holds the following information:</p>
<ul class="simple">
<li><p>File position of the format header</p></li>
<li><p>File position of the record data</p></li>
<li><p>Timestamp of record reception</p></li>
</ul>
<p>This chunk holds a single index tree page with a fixed size of 4kb
(4096 byte). More information about B+ trees can be found at
<a class="reference external" href="https://en.wikipedia.org/wiki/B%2B_tree">https://en.wikipedia.org/wiki/B%2B_tree</a>.</p>
</section>
<section id="meta-chunk">
<h3>META Chunk<a class="headerlink" href="#meta-chunk" title="Permalink to this heading"></a></h3>
<p>Each data file contains a META chunk which holds information about the state of
the file. The META chunk is always at the end of the file at a fixed position.
Because CAPS supports pre-allocation of file sizes without native file system
support to minimize disc fragmentation it contains information such as:</p>
<ul class="simple">
<li><p>effectively used bytes in the file (virtual file size)</p></li>
<li><p>position of the index root node</p></li>
<li><p>the number of records in the file</p></li>
<li><p>the covered time span</p></li>
</ul>
<p>and some other internal information.</p>
</section>
</section>
<section id="optimization">
<span id="sec-optimization"></span><h2>Optimization<a class="headerlink" href="#optimization" title="Permalink to this heading"></a></h2>
<p>After a plugin packet is received and before it is written to disk,
<a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> tries to optimize the file data in order reduce the overall data
size and to increase the access time. This includes:</p>
<ul class="simple">
<li><p><strong>merging</strong> data chunks for continuous data blocks</p></li>
<li><p><strong>splitting</strong> data chunks on the date limit</p></li>
<li><p><strong>trimming</strong> overlapped data</p></li>
</ul>
<section id="merging-of-data-chunks">
<h3>Merging of Data Chunks<a class="headerlink" href="#merging-of-data-chunks" title="Permalink to this heading"></a></h3>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> tries to create large continues blocks of data by reducing the
number of data chunks. The advantage of large chunks is that less disk space is
occupied by data chunk headers. Also seeking to a particular time stamp is
faster because less data chunk headers need to be read.</p>
<p>Data chunks can be merged if the following conditions apply:</p>
<ul class="simple">
<li><p>merging is supported by packet type</p></li>
<li><p>previous data header is compatible according to packet specification, e.g.
<code class="docutils literal notranslate"><span class="pre">samplingFrequency</span></code> and <code class="docutils literal notranslate"><span class="pre">dataType</span></code> matches</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">endTime</span></code> of last record equals <code class="docutils literal notranslate"><span class="pre">startTime</span></code> of new record (no gap)</p></li>
</ul>
<p>Figure <a href="#fig-file-merge">7</a> shows the arrival of a new plugin packet. In
alternative A) the merge failed and a new data chunk is created. In alternative B)
the merger succeeds. In the latter case the new data is appended to the existing
data block and the original chunk header is updated to reflect the new chunk
size.</p>
<figure class="align-default" id="id4">
<span id="fig-file-merge"></span><a class="reference internal image-reference" href="../_images/file_merge.png"><img alt="../_images/file_merge.png" src="../_images/file_merge.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Merging of data chunks for seamless streams</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="splitting-of-data-chunks">
<h3>Splitting of Data Chunks<a class="headerlink" href="#splitting-of-data-chunks" title="Permalink to this heading"></a></h3>
<p>Figure <a href="#fig-file-split">8</a> shows the arrival of a plugin packet containing
data of 2 different days. If possible, the data is split on the date limit. The
first part is appended to the existing data file. For the second part a new day
file is created, containing a new header and data chunk. This approach ensures
that a sample is stored in the correct data file and thus increases the access
time.</p>
<p>Splitting of data chunks is only supported for packet types providing the
<code class="docutils literal notranslate"><span class="pre">trim</span></code> operation.</p>
<figure class="align-default" id="id5">
<span id="fig-file-split"></span><a class="reference internal image-reference" href="../_images/file_split.png"><img alt="../_images/file_split.png" src="../_images/file_split.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Splitting of data chunks on the date limit</span><a class="headerlink" href="#id5" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="trimming-of-overlaps">
<h3>Trimming of Overlaps<a class="headerlink" href="#trimming-of-overlaps" title="Permalink to this heading"></a></h3>
<p>The received plugin packets may contain overlapping time spans. If supported by
the packet type <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> will trim the data to create seamless data streams.</p>
</section>
</section>
<section id="packet-types">
<span id="sec-packet-types"></span><h2>Packet Types<a class="headerlink" href="#packet-types" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> currently supports the following packet types:</p>
<ul class="simple">
<li><p><strong>RAW</strong> - generic time series data</p></li>
<li><p><strong>ANY</strong> - any possible content</p></li>
<li><p><strong>MiniSeed</strong> - native <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">MiniSeed</span></a></p></li>
</ul>
<section id="raw">
<span id="sec-pt-raw"></span><h3>RAW<a class="headerlink" href="#raw" title="Permalink to this heading"></a></h3>
<p>The RAW format is a lightweight format for uncompressed time series data with a
minimal header. The chunk header is followed by a 16 byte data header:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>content</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>dataType</p></td>
<td><p>char</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p><em>startTime</em></p></td>
<td><p>TimeStamp</p></td>
<td><p>[11]</p></td>
</tr>
<tr class="row-even"><td><p>     year</p></td>
<td><p>int16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>     yDay</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-even"><td><p>     hour</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>     minute</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>     second</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>     usec</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>samplingFrequencyNumerator</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>samplingFrequencyDenominator</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
</tbody>
</table>
<p>The number of samples is calculated by the remaining <code class="docutils literal notranslate"><span class="pre">chunkSize</span></code> divided by
the size of the <code class="docutils literal notranslate"><span class="pre">dataType</span></code>. The following data types value are supported:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>id</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>1</p></td>
<td><p>double</p></td>
<td><p>8</p></td>
</tr>
<tr class="row-odd"><td><p>2</p></td>
<td><p>float</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>100</p></td>
<td><p>int64</p></td>
<td><p>8</p></td>
</tr>
<tr class="row-odd"><td><p>101</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-even"><td><p>102</p></td>
<td><p>int16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>103</p></td>
<td><p>int8</p></td>
<td><p>1</p></td>
</tr>
</tbody>
</table>
<p>The RAW format supports the <code class="docutils literal notranslate"><span class="pre">trim</span></code> and <code class="docutils literal notranslate"><span class="pre">merge</span></code> operation.</p>
</section>
<section id="any">
<span id="sec-pt-any"></span><h3>ANY<a class="headerlink" href="#any" title="Permalink to this heading"></a></h3>
<p>The ANY format was developed to store any possible content in <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a>. The chunk
header is followed by a 31 byte data header:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>content</p></th>
<th class="head"><p>type</p></th>
<th class="head"><p>bytes</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>type</p></td>
<td><p>char[4]</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-odd"><td><p>dataType (=103, unused)</p></td>
<td><p>char</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p><em>startTime</em></p></td>
<td><p>TimeStamp</p></td>
<td><p>[11]</p></td>
</tr>
<tr class="row-odd"><td><p>     year</p></td>
<td><p>int16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-even"><td><p>     yDay</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>     hour</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>     minute</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-odd"><td><p>     second</p></td>
<td><p>uint8</p></td>
<td><p>1</p></td>
</tr>
<tr class="row-even"><td><p>     usec</p></td>
<td><p>int32</p></td>
<td><p>4</p></td>
</tr>
<tr class="row-odd"><td><p>samplingFrequencyNumerator</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-even"><td><p>samplingFrequencyDenominator</p></td>
<td><p>uint16</p></td>
<td><p>2</p></td>
</tr>
<tr class="row-odd"><td><p>endTime</p></td>
<td><p>TimeStamp</p></td>
<td><p>11</p></td>
</tr>
</tbody>
</table>
<p>The ANY data header extends the RAW data header by a 4 character <code class="docutils literal notranslate"><span class="pre">type</span></code>
field. This field is indented to give a hint on the stored data. E.g. an image
from a Web cam could be announced by the string <code class="docutils literal notranslate"><span class="pre">JPEG</span></code>.</p>
<p>Since the ANY format removes the restriction to a particular data type, the
<code class="docutils literal notranslate"><span class="pre">endTime</span></code> can no longer be derived from the <code class="docutils literal notranslate"><span class="pre">startTime</span></code> and
<code class="docutils literal notranslate"><span class="pre">samplingFrequency</span></code>. Consequently the <code class="docutils literal notranslate"><span class="pre">endTime</span></code> is explicitly specified in
the header.</p>
<p>Because the content of the ANY format is unspecified it neither supports the
<code class="docutils literal notranslate"><span class="pre">trim</span></code> nor the <code class="docutils literal notranslate"><span class="pre">merge</span></code> operation.</p>
</section>
<section id="miniseed">
<span id="sec-pt-miniseed"></span><h3>MiniSeed<a class="headerlink" href="#miniseed" title="Permalink to this heading"></a></h3>
<p><a class="reference external" href="http://www.iris.edu/data/miniseed.htm">MiniSeed</a> is the standard for the
exchange of seismic time series. It uses a fixed record length and applies data
compression.</p>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> adds no additional header to the <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">MiniSeed</span></a> data. The
<a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">MiniSeed</span></a> record is directly stored after the 8-byte data chunk header.
All meta information needed by <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> is extracted from the
<a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">MiniSeed</span></a> header. The advantage of this native <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">MiniSeed</span></a> support
is that existing plugin and client code may be reused. Also the transfer and
storage volume is minimized.</p>
<p>Because of the fixed record size requirement neither the <code class="docutils literal notranslate"><span class="pre">trim</span></code> nor the
<code class="docutils literal notranslate"><span class="pre">merge</span></code> operation is supported.</p>
</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="#">Data Management</a><ul>
<li><a class="reference internal" href="#file-format">File Format</a><ul>
<li><a class="reference internal" href="#sid-chunk">SID Chunk</a></li>
<li><a class="reference internal" href="#head-chunk">HEAD Chunk</a></li>
<li><a class="reference internal" href="#data-chunk">DATA Chunk</a></li>
<li><a class="reference internal" href="#bpt-chunk">BPT Chunk</a></li>
<li><a class="reference internal" href="#meta-chunk">META Chunk</a></li>
</ul>
</li>
<li><a class="reference internal" href="#optimization">Optimization</a><ul>
<li><a class="reference internal" href="#merging-of-data-chunks">Merging of Data Chunks</a></li>
<li><a class="reference internal" href="#splitting-of-data-chunks">Splitting of Data Chunks</a></li>
<li><a class="reference internal" href="#trimming-of-overlaps">Trimming of Overlaps</a></li>
</ul>
</li>
<li><a class="reference internal" href="#packet-types">Packet Types</a><ul>
<li><a class="reference internal" href="#raw">RAW</a></li>
<li><a class="reference internal" href="#any">ANY</a></li>
<li><a class="reference internal" href="#miniseed">MiniSeed</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="server.html"
title="previous chapter">CAPS Server Application</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="configuration.html"
title="next chapter">Execution and Automatic Startup</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/archive.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,379 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Change Log" href="changelog-slink2caps.html" />
<link rel="prev" title="Change Log" href="changelog-rs2caps.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-slink2caps.html" title="Change Log"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="changelog-rs2caps.html" title="Change Log"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<span id="sec-changelog-caps2caps"></span><h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<section id="id1">
<h2>2025.101<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Improved performance significantly when requesting many channels from
an upstream caps server.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2025.069<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Ported code to latest SeisComP API 17 and fix deprecation
warnings.</p></li>
</ul>
</section>
</section>
<section id="id3">
<h2>2024.262<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="id4">
<h3>Fixed<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id5">
<h2>2023.234<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Command-line help and more module documentation.</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2023.257<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Added<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New configuration option <code class="docutils literal notranslate"><span class="pre">maxRealTimeGap</span></code> and <code class="docutils literal notranslate"><span class="pre">marginRealTimeGap</span></code>.
They allow to configure a dedicated backfilling stream and to
prefer real-time data. The consequence is the reception of
out of order records at clients.</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2022-02-28<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Added<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New config option <code class="docutils literal notranslate"><span class="pre">timeWindowUpdateInterval</span></code>. This option
sets the interval in seconds at which the relative request
time window defined by option <code class="docutils literal notranslate"><span class="pre">days</span></code> and/or <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> is
updated. Use a value less or equal zero to disable the update.
This feature is supported in archive mode only.
A typical use case is when data has to be transmitted
continuously with a time delay.</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">timeWindowUpdateInterval</span><span class="o">=</span><span class="m">86400</span>
</pre></div>
</div>
</section>
</section>
<section id="id10">
<h2>2022-02-25<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Wrong time window subscription after reconnect</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2020-12-22<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Added<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Configuration description for daysBefore in e.g. scconfig</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2020-12-17<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Added<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>New config option <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> which can be used to set the end time
of the data acquisition time window n days before the current time, e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">daysBefore</span><span class="o">=</span><span class="m">10</span>
</pre></div>
</div>
</section>
</section>
<section id="id16">
<h2>2020-02-17<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Changed<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
<li><p>Use microsecond precision in data requests</p></li>
</ul>
</section>
</section>
<section id="id18">
<h2>2020-02-12<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h2>
<section id="id19">
<h3>Added<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Backfilling buffer which is a tool to mitigate out-of-order data. Whenever a
gap is detected, records will be held in a buffer and not sent out. Records
are flushed from front to back if the buffer size is exceeded.</p></li>
</ul>
</section>
</section>
<section id="id20">
<h2>2020-02-10<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h2>
<section id="id21">
<h3>Changed<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Subscribe to streams even if the requested end time is before the last
received timestamp. This is necessary to do not request data again in
case of wildcard requests.</p></li>
</ul>
</section>
</section>
<section id="id22">
<h2>2018-08-05<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h2>
<section id="id23">
<h3>Fixed<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>segfault in journal file parser</p></li>
<li><p>corrupt journal files</p></li>
</ul>
</section>
</section>
<section id="id24">
<h2>2018-03-19<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h2>
<section id="id25">
<h3>Added<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>SSL support for outgoing connections</p></li>
</ul>
</section>
</section>
<section id="id26">
<h2>2018-03-14<a class="headerlink" href="#id26" title="Permalink to this heading"></a></h2>
<section id="id27">
<h3>Fixed<a class="headerlink" href="#id27" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The journal file will be stored by default at &#64;ROOTDIR&#64;/var/run/[name]/journal
where name is the name of the application. In standard cases it is <code class="docutils literal notranslate"><span class="pre">caps2caps</span></code>
but not with aliases in use.</p></li>
</ul>
</section>
</section>
<section id="id28">
<h2>2017-03-21<a class="headerlink" href="#id28" title="Permalink to this heading"></a></h2>
<section id="id29">
<h3>Fixed<a class="headerlink" href="#id29" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>stream recovery in case of wild card request</p></li>
</ul>
</section>
</section>
<section id="id30">
<h2>2017-02-14<a class="headerlink" href="#id30" title="Permalink to this heading"></a></h2>
<section id="id31">
<h3>Added<a class="headerlink" href="#id31" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>out-of-order support</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2025.101</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2025.069</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2024.262</a><ul>
<li><a class="reference internal" href="#id4">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id5">2023.234</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2023.257</a><ul>
<li><a class="reference internal" href="#id7">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2022-02-28</a><ul>
<li><a class="reference internal" href="#id9">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2022-02-25</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2020-12-22</a><ul>
<li><a class="reference internal" href="#id13">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2020-12-17</a><ul>
<li><a class="reference internal" href="#id15">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2020-02-17</a><ul>
<li><a class="reference internal" href="#id17">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id18">2020-02-12</a><ul>
<li><a class="reference internal" href="#id19">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id20">2020-02-10</a><ul>
<li><a class="reference internal" href="#id21">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id22">2018-08-05</a><ul>
<li><a class="reference internal" href="#id23">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id24">2018-03-19</a><ul>
<li><a class="reference internal" href="#id25">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id26">2018-03-14</a><ul>
<li><a class="reference internal" href="#id27">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id28">2017-03-21</a><ul>
<li><a class="reference internal" href="#id29">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id30">2017-02-14</a><ul>
<li><a class="reference internal" href="#id31">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="changelog-rs2caps.html"
title="previous chapter">Change Log</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="changelog-slink2caps.html"
title="next chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/changelog-caps2caps.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,228 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="prev" title="Change Log" href="changelog-sproc2caps.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-sproc2caps.html" title="Change Log"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<span id="sec-changelog-python"></span><h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to the python plugins will be documented in this file.</p>
<section id="id1">
<h2>2024.262<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2024.005<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Document the processing of SLIST files with multiple data blocks.</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id3">
<h2>2023.317<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>image2caps</p>
<ul>
<li><p>Enforce Python3</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id4">
<h2>2023.298<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Added<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Allow setting the network code explicitly by network`.</p></li>
</ul>
</li>
</ul>
</section>
<section id="id6">
<h3>Changed<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Read the sample rate numerator and denominator separately instead of
assuming denominator = 1.</p></li>
<li><p>For format unavco 1.0 the network code must be given explicitly.</p></li>
</ul>
</li>
</ul>
</section>
<section id="id7">
<h3>Fixed<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Send data in unavco data format which was not done before.</p></li>
</ul>
</li>
</ul>
</section>
</section>
<section id="id8">
<h2>2023.255<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Added<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>data2caps</p>
<ul>
<li><p>Renamed from raw2caps.</p></li>
<li><p>Support reading slist files, add documentation.</p></li>
<li><p>Support reading strain &amp; seismic data files from www.unavco.org.</p></li>
</ul>
</li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2024.262</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.005</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2023.317</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2023.298</a><ul>
<li><a class="reference internal" href="#id5">Added</a></li>
<li><a class="reference internal" href="#id6">Changed</a></li>
<li><a class="reference internal" href="#id7">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2023.255</a><ul>
<li><a class="reference internal" href="#id9">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="changelog-sproc2caps.html"
title="previous chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/changelog-python.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,399 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Change Log" href="changelog-caps2caps.html" />
<link rel="prev" title="Change Log" href="changelog-server.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-caps2caps.html" title="Change Log"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="changelog-server.html" title="Change Log"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<span id="sec-changelog-rs2caps"></span><h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to rs plugin will be documented in this file.</p>
<section id="id1">
<h2>2025.051<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Option <code class="docutils literal notranslate"><span class="pre">days</span></code> that allows to set the start time of the data
time window n days before the current time., e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">days</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
</pre></div>
</div>
<ul class="simple">
<li><p>Option <code class="docutils literal notranslate"><span class="pre">daysBefore</span></code> that allows to set the end time of the data
time window n days before the current time., e.g.,</p></li>
</ul>
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">daysBefore</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span>
</pre></div>
</div>
</section>
</section>
<section id="id2">
<h2>2024.262<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id3">
<h2>2024.173<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h2>
<section id="id4">
<h3>Added<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Config option <code class="docutils literal notranslate"><span class="pre">streams.passthrough</span></code>. Until now, the feature could only
be activated via a command line option.</p></li>
</ul>
</section>
</section>
<section id="id5">
<h2>2024.156<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h2>
<section id="important">
<h3>Important<a class="headerlink" href="#important" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The command-line option <code class="docutils literal notranslate"><span class="pre">--addr</span></code>/<code class="docutils literal notranslate"><span class="pre">-a</span></code> has been renamed to
<code class="docutils literal notranslate"><span class="pre">--output</span></code>/<code class="docutils literal notranslate"><span class="pre">-O</span></code> in order to be consistent with other applications like
caps2caps. Scripts/processes using this parameter must be adjusted.</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2023.254<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Added<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make <code class="docutils literal notranslate"><span class="pre">output.maxFutureEndTime</span></code> configurable in scconfig.</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2023.135<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Fixed<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Inventory subscription</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2022.332<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Added<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Add poll mode for non-real-time inputs, e.g. fdsnws.</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2021-04-29<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Added<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Add SSL and authentication support for the output connection.
With this version the data output URL can be set with the
config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code>. The formal definition
of the field is: [[caps|capss]://][user:pass&#64;]host[:port] e.g.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">capss</span><span class="p">:</span><span class="o">//</span><span class="n">caps</span><span class="p">:</span><span class="n">caps</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
<p>The new output.address parameter superseds the output.host and
output.port parameter of previous versions and takes precedence.
The old parameters are kept for compatibility reasons but are
marked as deprecated.</p>
</li>
</ul>
</section>
</section>
<section id="id14">
<h2>2020-02-17<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
</ul>
</section>
</section>
<section id="id15">
<h2>2020-01-23<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h2>
<section id="id16">
<h3>Fixed<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make init script Python 2 and 3 compatible</p></li>
</ul>
</section>
</section>
<section id="id17">
<h2>2019-08-07<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h2>
<section id="id18">
<h3>Added<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>plugin version information</p></li>
</ul>
</section>
</section>
<section id="id19">
<h2>2019-01-30<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h2>
<section id="id20">
<h3>Fixed<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Loading inventory from file</p></li>
</ul>
</section>
</section>
<section id="id21">
<h2>2018-12-17<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h2>
<section id="id22">
<h3>Added<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added new option <code class="docutils literal notranslate"><span class="pre">--status-log</span></code>. With this option enabled
the plugin writes status information e.g. the number of bytes
buffered into a seperate log file <code class="docutils literal notranslate"><span class="pre">&#64;LOGDIR&#64;/rs2caps-stats.log</span></code>.</p></li>
</ul>
</section>
</section>
<section id="id23">
<h2>2018-01-24<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h2>
<section id="id24">
<h3>Added<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Optimized config script in combination with high station count</p></li>
</ul>
</section>
</section>
<section id="id25">
<h2>2018-01-17<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h2>
<section id="id26">
<h3>Added<a class="headerlink" href="#id26" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added optional bindings to synchronize the journal file with</p></li>
<li><p>Added option to synchronize journal file with bindings</p></li>
</ul>
</section>
</section>
<section id="id27">
<h2>2016-06-08<a class="headerlink" href="#id27" title="Permalink to this heading"></a></h2>
<section id="id28">
<h3>Added<a class="headerlink" href="#id28" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Added option <code class="docutils literal notranslate"><span class="pre">--passthrough</span></code> which will not read the inventory from
the database and thus does not require a database connection and it will
not subscribe to any stream at the recordstream. Instead it will process
everything that it receives. This is most useful in combination with files.</p></li>
</ul>
</section>
</section>
<section id="id29">
<h2>2016-06-03<a class="headerlink" href="#id29" title="Permalink to this heading"></a></h2>
<section id="id30">
<h3>Added<a class="headerlink" href="#id30" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>backfilling support</p></li>
</ul>
</section>
</section>
<section id="id31">
<h2>2016-05-25<a class="headerlink" href="#id31" title="Permalink to this heading"></a></h2>
<section id="id32">
<h3>Added<a class="headerlink" href="#id32" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>support to load inventory from file or database. The configuration may be
adopted using the standard SeisComP3 options.</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2025.051</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.262</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id3">2024.173</a><ul>
<li><a class="reference internal" href="#id4">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id5">2024.156</a><ul>
<li><a class="reference internal" href="#important">Important</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2023.254</a><ul>
<li><a class="reference internal" href="#id7">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2023.135</a><ul>
<li><a class="reference internal" href="#id9">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2022.332</a><ul>
<li><a class="reference internal" href="#id11">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2021-04-29</a><ul>
<li><a class="reference internal" href="#id13">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2020-02-17</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id15">2020-01-23</a><ul>
<li><a class="reference internal" href="#id16">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id17">2019-08-07</a><ul>
<li><a class="reference internal" href="#id18">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id19">2019-01-30</a><ul>
<li><a class="reference internal" href="#id20">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id21">2018-12-17</a><ul>
<li><a class="reference internal" href="#id22">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id23">2018-01-24</a><ul>
<li><a class="reference internal" href="#id24">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id25">2018-01-17</a><ul>
<li><a class="reference internal" href="#id26">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id27">2016-06-08</a><ul>
<li><a class="reference internal" href="#id28">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id29">2016-06-03</a><ul>
<li><a class="reference internal" href="#id30">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id31">2016-05-25</a><ul>
<li><a class="reference internal" href="#id32">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="changelog-server.html"
title="previous chapter">Change Log</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="changelog-caps2caps.html"
title="next chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/changelog-rs2caps.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,274 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Change Log" href="changelog-sproc2caps.html" />
<link rel="prev" title="Change Log" href="changelog-caps2caps.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-sproc2caps.html" title="Change Log"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="changelog-caps2caps.html" title="Change Log"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<span id="sec-changelog-slink2caps"></span><h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to the slink2caps plugin will be documented in this file.</p>
<section id="id1">
<h2>2023.254<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make <code class="docutils literal notranslate"><span class="pre">output.maxFutureEndTime</span></code> configurable in scconfig.</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2022.340<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="id3">
<h3>Added<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Support all Seedlink 3.3 features which includes plugin proc
definitions</p></li>
</ul>
</section>
</section>
<section id="id4">
<h2>2022-05-23<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Added<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul>
<li><p>CAPS authentication support for outgoing connections.
Use the config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code> to provide
the data output URL in the form
[[caps|capss]://][user:pass&#64;]host[:port], e.g.:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">caps</span><span class="p">:</span><span class="o">//</span><span class="n">user</span><span class="p">:</span><span class="k">pass</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
</li>
</ul>
</section>
</section>
<section id="id6">
<h2>2022-04-14<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Transient packets will be written to disk during shutdown to
prevent packet loss</p></li>
</ul>
</section>
</section>
<section id="id7">
<h2>2022-04-07<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Shutdown in case of no data could be sent to CAPS</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2022-03-03<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="id9">
<h3>Fixed<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Fixed usage of <code class="docutils literal notranslate"><span class="pre">output.recordBufferSize</span></code> which hasnt been used yet</p></li>
<li><p>Set default buffer size to 128k</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2021-11-23<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>First shutdown plugins and then stop caps connection to avoid lost
records during shutdown</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2019-09-24<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Fixed<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Flush all transient packages before closing the connection to CAPS at exit</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2019-05-06<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Fixed<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Capturing of SeedLink plugins logs. Under certain conditions the data
acquisition could be affected causing packet loss.</p></li>
</ul>
</section>
</section>
<section id="id16">
<h2>2019-03-12<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Added<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Capture SeedLink plugins logs</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2023.254</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2022.340</a><ul>
<li><a class="reference internal" href="#id3">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2022-05-23</a><ul>
<li><a class="reference internal" href="#id5">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2022-04-14</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id7">2022-04-07</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2022-03-03</a><ul>
<li><a class="reference internal" href="#id9">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2021-11-23</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2019-09-24</a><ul>
<li><a class="reference internal" href="#id13">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2019-05-06</a><ul>
<li><a class="reference internal" href="#id15">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2019-03-12</a><ul>
<li><a class="reference internal" href="#id17">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="changelog-caps2caps.html"
title="previous chapter">Change Log</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="changelog-sproc2caps.html"
title="next chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/changelog-slink2caps.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</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>Change Log &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Change Log" href="changelog-python.html" />
<link rel="prev" title="Change Log" href="changelog-slink2caps.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-python.html" title="Change Log"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="changelog-slink2caps.html" title="Change Log"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="change-log">
<span id="sec-changelog-sproc"></span><h1>Change Log<a class="headerlink" href="#change-log" title="Permalink to this heading"></a></h1>
<p>All notable changes to sproc2caps will be documented in this file.</p>
<section id="id1">
<h2>2024.351<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h2>
<section id="fixed">
<h3>Fixed<a class="headerlink" href="#fixed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Compatibility with upcoming SeisComP release</p></li>
</ul>
</section>
</section>
<section id="id2">
<h2>2024.262<a class="headerlink" href="#id2" title="Permalink to this heading"></a></h2>
<section id="id3">
<h3>Fixed<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>MiniSEED encoding allows half a sample timing tolerance
to detect contiguous records.</p></li>
</ul>
</section>
</section>
<section id="id4">
<h2>2024.257<a class="headerlink" href="#id4" title="Permalink to this heading"></a></h2>
<section id="id5">
<h3>Fixed<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Memory leak</p></li>
</ul>
</section>
</section>
<section id="id6">
<h2>2024.234<a class="headerlink" href="#id6" title="Permalink to this heading"></a></h2>
<section id="id7">
<h3>Fixed<a class="headerlink" href="#id7" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Output sampling rate when input sampling rate is a fraction</p></li>
</ul>
</section>
</section>
<section id="id8">
<h2>2024.233<a class="headerlink" href="#id8" title="Permalink to this heading"></a></h2>
<section id="added">
<h3>Added<a class="headerlink" href="#added" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>The option <code class="docutils literal notranslate"><span class="pre">--stop</span></code> terminates the data processing when the data input and
processing is complete.</p></li>
</ul>
</section>
</section>
<section id="id9">
<h2>2023.225<a class="headerlink" href="#id9" title="Permalink to this heading"></a></h2>
<section id="changed">
<h3>Changed<a class="headerlink" href="#changed" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Make stream map reading slightly more error-tolerant</p></li>
</ul>
</section>
</section>
<section id="id10">
<h2>2023.289<a class="headerlink" href="#id10" title="Permalink to this heading"></a></h2>
<section id="id11">
<h3>Fixed<a class="headerlink" href="#id11" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>When using a stream as input several times just the last registered
stream was used.</p></li>
</ul>
</section>
</section>
<section id="id12">
<h2>2023.151<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h2>
<section id="id13">
<h3>Fixed<a class="headerlink" href="#id13" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Inventory loading from file</p></li>
</ul>
</section>
</section>
<section id="id14">
<h2>2021-04-29<a class="headerlink" href="#id14" title="Permalink to this heading"></a></h2>
<section id="id15">
<h3>Added<a class="headerlink" href="#id15" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Add SSL and authentication support for the output connection.
With this version the data output URL can be set with the
config option <code class="docutils literal notranslate"><span class="pre">output.address</span></code>. The formal definition
of the field is: [[caps|capss]://][user:pass&#64;]host[:port] e.g.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">output</span><span class="o">.</span><span class="n">address</span> <span class="o">=</span> <span class="n">capss</span><span class="p">:</span><span class="o">//</span><span class="n">caps</span><span class="p">:</span><span class="n">caps</span><span class="nd">@localhost</span><span class="p">:</span><span class="mi">18003</span>
</pre></div>
</div>
<p>The new output.address parameter superseds the output.host and
output.port parameter of previous versions and takes precedence.
The old parameters are kept for compatibility reasons but are
marked as deprecated.</p>
</li>
</ul>
</section>
</section>
<section id="id16">
<h2>2021-04-27<a class="headerlink" href="#id16" title="Permalink to this heading"></a></h2>
<section id="id17">
<h3>Fixed<a class="headerlink" href="#id17" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Expression handling. So far it was not possible to
overwrite expressions on stream level.</p></li>
</ul>
</section>
</section>
<section id="id18">
<h2>2020-04-07<a class="headerlink" href="#id18" title="Permalink to this heading"></a></h2>
<section id="id19">
<h3>Fixed<a class="headerlink" href="#id19" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Sequential rules where the result stream is the input of another rule</p></li>
</ul>
</section>
</section>
<section id="id20">
<h2>2020-04-06<a class="headerlink" href="#id20" title="Permalink to this heading"></a></h2>
<section id="id21">
<h3>Changed<a class="headerlink" href="#id21" title="Permalink to this heading"></a></h3>
<ul>
<li><p>Support to set expression for each stream independently. If the expression
is omitted the expression configured in <code class="docutils literal notranslate"><span class="pre">streams.expr</span></code> is used.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>XX.TEST1..HHZ XX.TEST2..HHZ XX.TEST3..HHZ?expr=x1+x2
</pre></div>
</div>
</li>
</ul>
</section>
</section>
<section id="id22">
<h2>2020-02-17<a class="headerlink" href="#id22" title="Permalink to this heading"></a></h2>
<section id="id23">
<h3>Changed<a class="headerlink" href="#id23" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Increase default timeout for acknowledgement messages from 5s to 60s</p></li>
</ul>
</section>
</section>
<section id="id24">
<h2>2019-11-25<a class="headerlink" href="#id24" title="Permalink to this heading"></a></h2>
<section id="id25">
<h3>Added<a class="headerlink" href="#id25" title="Permalink to this heading"></a></h3>
<ul class="simple">
<li><p>Documentation</p></li>
</ul>
</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="#">Change Log</a><ul>
<li><a class="reference internal" href="#id1">2024.351</a><ul>
<li><a class="reference internal" href="#fixed">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id2">2024.262</a><ul>
<li><a class="reference internal" href="#id3">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id4">2024.257</a><ul>
<li><a class="reference internal" href="#id5">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id6">2024.234</a><ul>
<li><a class="reference internal" href="#id7">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id8">2024.233</a><ul>
<li><a class="reference internal" href="#added">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id9">2023.225</a><ul>
<li><a class="reference internal" href="#changed">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id10">2023.289</a><ul>
<li><a class="reference internal" href="#id11">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id12">2023.151</a><ul>
<li><a class="reference internal" href="#id13">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id14">2021-04-29</a><ul>
<li><a class="reference internal" href="#id15">Added</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id16">2021-04-27</a><ul>
<li><a class="reference internal" href="#id17">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id18">2020-04-07</a><ul>
<li><a class="reference internal" href="#id19">Fixed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id20">2020-04-06</a><ul>
<li><a class="reference internal" href="#id21">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id22">2020-02-17</a><ul>
<li><a class="reference internal" href="#id23">Changed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#id24">2019-11-25</a><ul>
<li><a class="reference internal" href="#id25">Added</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="changelog-slink2caps.html"
title="previous chapter">Change Log</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="changelog-python.html"
title="next chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/changelog-sproc2caps.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,481 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Access Data on a CAPS Server &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Examples and Recipes" href="examples.html" />
<link rel="prev" title="win2caps" href="../apps/win2caps.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="examples.html" title="Examples and Recipes"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="../apps/win2caps.html" title="win2caps"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="access-data-on-a-caps-server">
<span id="sec-caps-retrieval"></span><h1>Access Data on a CAPS Server<a class="headerlink" href="#access-data-on-a-caps-server" title="Permalink to this heading"></a></h1>
<p>A range of tools is available to access data and information on a CAPS server.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 15.0%" />
<col style="width: 15.0%" />
<col style="width: 70.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Name</p></th>
<th class="head"><p>SW Package</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="#sec-caps-capstool"><span class="std std-ref">capstool</span></a></p></td>
<td><p>caps-tools</p></td>
<td><p>A command-line tool for retrieving data and meta information from a CAPS server</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#sec-caps-file"><span class="std std-ref">rifftool</span></a></p></td>
<td><p>caps-tools</p></td>
<td><p>A command-line tool for data inspection and extraction from individual CAPS data files (RIFF), e.g., in a CAPS archive</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#sec-caps-file"><span class="std std-ref">capssds</span></a></p></td>
<td><p>caps-tools</p></td>
<td><p>A virtual overlay file system presenting a CAPS archive directory as a read-only SDS archive with no extra disk space requirement.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#sec-caps-seedlink"><span class="std std-ref">caps_plugin</span></a></p></td>
<td><p>seiscomp</p></td>
<td><p>The plugin fetches miniSEED and <a class="reference internal" href="archive.html#sec-pt-raw"><span class="std std-ref">RAW</span></a> data from a CAPS server and provides the data to <strong class="program">seedlink</strong></p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#sec-caps-recstream"><span class="std std-ref">caps / capss</span></a></p></td>
<td><p>seiscomp</p></td>
<td><p>The RecordStream implementations for <cite>CAPS</cite></p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#sec-caps2caps"><span class="std std-ref">cap2caps</span></a></p></td>
<td><p>caps-plugins</p></td>
<td><p>Automatic or interactive synchronization of two CAPS servers</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#sec-caps-web"><span class="std std-ref">web interface</span></a></p></td>
<td><p>caps-server</p></td>
<td><p>The web interface provided by the CAPS server</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#sec-caps-fdsnws"><span class="std std-ref">FDSNWS</span></a></p></td>
<td><p>caps-server</p></td>
<td><p>FDSNWS dataselect interface provided by the CAPS server</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="#sec-caps-wws"><span class="std std-ref">WWS</span></a></p></td>
<td><p>caps-server</p></td>
<td><p>Winston Waveform Server interface provided by the CAPS server</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="#sec-caps-dataavailability"><span class="std std-ref">scardac</span></a></p></td>
<td><p>seiscomp</p></td>
<td><p>A command-line tool for generating availability information from CAPS archive</p></td>
</tr>
</tbody>
</table>
<section id="recordstream-caps-capss">
<span id="sec-caps-recstream"></span><h2>RecordStream: caps/capss<a class="headerlink" href="#recordstream-caps-capss" title="Permalink to this heading"></a></h2>
<p><cite>SeisComP</cite> applications access waveform data through the
<a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> interface.
To fetch data from a CAPS server specific RecordStream implementations may be used:</p>
<ul class="simple">
<li><p><em>caps</em>: regular RecordStream implementation to access the CAPS server,</p></li>
<li><p><em>capss</em>: RecordStream implementation to access the CAPS server secured by SSL,
user name and password. Similar to <em>https</em>, <em>capss</em> will establish a Secure Socket
Layer (SSL) communication.</p></li>
</ul>
<section id="configuration">
<span id="sec-caps-rs-config"></span><h3>Configuration<a class="headerlink" href="#configuration" title="Permalink to this heading"></a></h3>
<p>In order to make use of the <em>caps</em> or the <em>capss</em> RecordStream configure the
RecordStream URL in <a class="reference internal" href="../apps/global.html#confval-recordstream"><code class="xref std std-confval docutils literal notranslate"><span class="pre">recordstream</span></code></a>. Let it point to the CAPS server
providing the data. Examples for <em>caps</em> and <em>capss</em>:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">caps://server:18002</span>
<span class="na">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">capss://foo:bar@server:18022</span>
</pre></div>
</div>
<p><a class="reference internal" href="#sec-caps-opt-params"><span class="std std-ref">Optional parameters</span></a> are available for
<em>caps</em>/<em>capss</em>.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>While the <em>caps</em>/<em>capss</em> <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> provides data in real time
and from archive, some modules, e.g., <span id="id1"><em>scart</em> [<a class="reference internal" href="references.html#id241" title="scart. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scart.html.">14</a>]</span>, <span id="id2"><em>fdsnws</em> [<a class="reference internal" href="references.html#id139" title="fdsnws. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/fdsnws.html.">11</a>]</span> or
<span id="id3"><em>GIS</em> [<a class="reference internal" href="references.html#id152" title="GIS. gempa Image Server. URL: https://docs.gempa.de/gis/current/index.html.">5</a>]</span> should be strictly limited to reading from archive only by
the option <code class="docutils literal notranslate"><span class="pre">arch</span></code>:</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">caps://server:18002?arch</span>
<span class="na">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">capss://foo:bar@server:18022?arch</span>
</pre></div>
</div>
<p>Otherwise requests attempting to fetch missing data may hang forever.</p>
</div>
</section>
<section id="optional-parameters">
<span id="sec-caps-opt-params"></span><h3>Optional Parameters<a class="headerlink" href="#optional-parameters" title="Permalink to this heading"></a></h3>
<p>Optional RecordStream parameters which can be combined:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">arch</span></code> - read from CAPS archive only,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ooo</span></code> - out of order, data are fetched and provided in the order of their arrival in the CAPS server, useful for analysing if data have arrived out of order,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">pass</span></code> - password if server requires authentication,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">request-file</span></code> - file specifying the streams to be requested. One stream per line. Per line: net sta loc stream startTime endTime,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">timeout</span></code> - timeout of acquisition in seconds. Data acquisition will be restarted,</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">user</span></code> - user name if server requires authentication.</p></li>
</ul>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>URL</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>caps://server:18002?arch</p></td>
<td><p>Read data from CAPS archive. Stop data acquisition when all available waveforms are fetched.</p></td>
</tr>
<tr class="row-odd"><td><p>caps://server:18002?ooo</p></td>
<td><p>Fetch data in the original order of arrival.</p></td>
</tr>
<tr class="row-even"><td><p>caps://server:18002?request-file=request.txt</p></td>
<td><p>Request only streams in time intervals given in request.txt</p></td>
</tr>
<tr class="row-odd"><td><p>caps://server:18002?timeout=5</p></td>
<td><p>Apply a timeout of 5 seconds.</p></td>
</tr>
<tr class="row-even"><td><p>capss://server:18022?user=foo&amp;pass=bar</p></td>
<td><p>Use secure protocol (SSL) with user
name and password. Read the section on <a class="reference internal" href="configuration.html#sec-conf-access-auth"><span class="std std-ref">Authentication by user name and password (shadow file)</span></a> for details
on the generation of user names and passwords.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="combination-with-other-recordstream-interfaces">
<h3>Combination with other RecordStream interfaces<a class="headerlink" href="#combination-with-other-recordstream-interfaces" title="Permalink to this heading"></a></h3>
<p>The caps and the capss RecordStream may be combined with other
<a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> interfaces.</p>
<p>Examples:</p>
<ol class="arabic">
<li><p>Decimation</p>
<p>Use the decimation <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> <span id="id4">[<a class="reference internal" href="references.html#id225" title="RecordStream. SeisComP interface. URL: https://docs.gempa.de/seiscomp/current/apps/global_recordstream.html.">6</a>]</span>
interface to fetch data from a CAPS server running on localhost decimated to
1 sample per second.</p>
<p><em>global configuration:</em></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>dec://caps/localhost:18002?rate<span class="o">=</span><span class="m">1</span>
</pre></div>
</div>
<p><em>command line parameter:</em></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>-I<span class="w"> </span>dec://caps/localhost:18002?rate<span class="o">=</span><span class="m">1</span>
</pre></div>
</div>
</li>
<li><p>Resample</p>
<p>Use the resample <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> <span id="id5">[<a class="reference internal" href="references.html#id225" title="RecordStream. SeisComP interface. URL: https://docs.gempa.de/seiscomp/current/apps/global_recordstream.html.">6</a>]</span>
interface to fetch data from a CAPS server running on localhost resampled to
16 samples per second.</p>
<p><em>global configuration:</em></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>resample://caps/localhost:18002?rate<span class="o">=</span><span class="m">16</span>
</pre></div>
</div>
<p><em>command line parameter:</em></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>-I<span class="w"> </span>resample://caps/localhost:18002?rate<span class="o">=</span><span class="m">16</span>
</pre></div>
</div>
</li>
</ol>
</section>
</section>
<section id="caps-command-line-interface-cli-client-capstool">
<span id="sec-caps-capstool"></span><h2>CAPS command-line interface (CLI) client: capstool<a class="headerlink" href="#caps-command-line-interface-cli-client-capstool" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a> is a CAPS client application for retrieving data and listing
available streams from an operational CAPS server. The CAPS server may run
locally or remotely as all communication is performed over the network
(option:<cite>-H</cite>).</p>
<p>Data requests are based on time windows and stream IDs. The data is provided in
its origin format on stdout or, with <a class="reference internal" href="../apps/capssds.html#cmdoption-o"><code class="xref std std-option docutils literal notranslate"><span class="pre">-o</span></code></a> as a single file. In
particular capstool may be used to fetch miniSEED data and create miniSEED
files.</p>
<p><a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a> can also be used for <a class="reference internal" href="server-testing.html#sec-caps-server-testing"><span class="std std-ref">testing the server</span></a> as it provides information on available streams with
their time window (<a class="reference internal" href="../apps/capstool.html#cmdoption-Q"><code class="xref std std-option docutils literal notranslate"><span class="pre">-Q</span></code></a>, <a class="reference internal" href="../apps/caps2caps.html#cmdoption-I"><code class="xref std std-option docutils literal notranslate"><span class="pre">-I</span></code></a>).</p>
</section>
<section id="data-file-access-rifftool-capssds">
<span id="sec-caps-file"></span><h2>Data file access: rifftool/capssds<a class="headerlink" href="#data-file-access-rifftool-capssds" title="Permalink to this heading"></a></h2>
<p>The data files in the CAPS archive contain a small additional header describing
the data format and implementing an index for fast and in-order data retrieval.
Read the <a class="reference internal" href="archive.html#sec-packet-types"><span class="std std-ref">format documentation</span></a> for more details. In
contrast to miniSEED files in <a class="reference internal" href="glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> archives created, e.g., by
<span id="id6"><em>slarchive</em> [<a class="reference internal" href="references.html#id298" title="slarchive. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/slarchive.html.">20</a>]</span> or <span id="id7"><em>scart</em> [<a class="reference internal" href="references.html#id241" title="scart. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scart.html.">14</a>]</span>, the original miniSEED files stored in
the CAPS archive cannot be directly read by common seismological applications.</p>
<p>You may access data files directly:</p>
<ul class="simple">
<li><p>Test and retrieve data files using <a class="reference internal" href="../apps/rifftool.html#rifftool"><span class="std std-ref">rifftool</span></a>. rifftool addresses
individual files directly and does not require the CAPS server to be running.</p></li>
<li><p>Run <a class="reference internal" href="../apps/capssds.html#capssds"><span class="std std-ref">capssds</span></a> to create a virtual overlay file system presenting a CAPS
archive directory as a read-only <a class="reference internal" href="glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> archive with no extra disk space
requirement. The CAPS archive directory and file names are mapped. An
application reading from a file will only see <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a> records ordered
by record start time. You may connect to the virtual SDS archive using the
RecordStream SDS or directly read the single <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a> file. Other
seismological software such as ObsPy or Seisan may read directly from the SDS
archive of the files therein.</p></li>
</ul>
</section>
<section id="synchronize-with-another-caps-server-caps2caps">
<span id="sec-caps2caps"></span><h2>Synchronize with another CAPS server: caps2caps<a class="headerlink" href="#synchronize-with-another-caps-server-caps2caps" title="Permalink to this heading"></a></h2>
<p>Use <a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">caps2caps</span></a> to synchronize your CAPS server with another one. You may push
or pull data on either side. In contrast to the generation of regular <a class="reference internal" href="glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a>
archives, e.g., by <strong class="program">scart</strong>, the CAPS server will not generate duplicate
data records if executing <a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">caps2caps</span></a> multiple times. While synchronizing
observe the <a class="reference internal" href="interfaces.html#sec-caps-web-interface"><span class="std std-ref">web interface</span></a> for the statistics of
received, written or rejected data packages.</p>
</section>
<section id="connect-from-seedlink-caps-plugin">
<span id="sec-caps-seedlink"></span><h2>Connect from SeedLink: caps_plugin<a class="headerlink" href="#connect-from-seedlink-caps-plugin" title="Permalink to this heading"></a></h2>
<p>The <a class="reference internal" href="../apps/caps_plugin.html#caps-plugin"><span class="std std-ref">caps_plugin</span></a> plugin fetches data from a CAPS server and provides the
data to <strong class="program">seedlink</strong>. The plugin can be configured and started as any
other plugin for <strong class="program">seedlink</strong> or executed on demand. Select <em>caps</em> when
choosing the plugin in the seedlink binding configuration.</p>
<p><strong>Examples:</strong></p>
<ul>
<li><p>Fetch data from a remote CAPS server and make them available in your <strong class="program">seedlink</strong> instance:</p>
<ol class="arabic">
<li><p>configure the <a class="reference internal" href="../apps/caps_plugin.html#caps-plugin"><span class="std std-ref">caps_plugin</span></a> plugin in the bindings configuration of your
<strong class="program">seedlink</strong> instance pointing to the remote CAPS server</p></li>
<li><p>enable and start <strong class="program">seedlink</strong></p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>seedlink
seiscomp<span class="w"> </span>start<span class="w"> </span>seedlink
</pre></div>
</div>
</li>
</ol>
</li>
<li><p>Provide data from a CAPS server by seedlink on the same machine to external clients:</p>
<ol class="arabic">
<li><p>create another seedlink instance, e.g., <strong class="program">seedlinkP</strong>:</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>seedlinkP<span class="w"> </span>seedlink
</pre></div>
</div>
</li>
<li><p>configure the <a class="reference internal" href="../apps/caps_plugin.html#caps-plugin"><span class="std std-ref">caps_plugin</span></a> in the bindings configuration of <strong class="program">seedlinkP</strong>
pointing to the local CAPS server.</p></li>
<li><p>enable and start <strong class="program">seedlinkP</strong>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>seedlinkP
seiscomp<span class="w"> </span>start<span class="w"> </span>seedlinkP
</pre></div>
</div>
</li>
</ol>
</li>
</ul>
</section>
<section id="web-interface">
<span id="sec-caps-web"></span><h2>Web interface<a class="headerlink" href="#web-interface" title="Permalink to this heading"></a></h2>
<p>The CAPS server ships with a <a class="reference internal" href="interfaces.html#sec-caps-web-interface"><span class="std std-ref">web interface</span></a>.
Beside allowing you to view server statistics, data stored stored on the server
can be downloaded for any time if the original format is <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a>.</p>
<p>For downloading miniSEED data</p>
<ol class="arabic simple">
<li><p>Select the stream(s) of interest.</p></li>
<li><p>Zoom in to the period of interest. Zooming in and out in time works by
right-mouse button actions just like in other <cite>SeisComP</cite> GUI applications like
<span id="id8"><em>scrttv</em> [<a class="reference internal" href="references.html#id276" title="scrttv. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scrttv.html.">17</a>]</span>.</p></li>
<li><p>Click on the download button to download the miniSEED file. An error message
will be printed in case the original format is not miniSEED.</p></li>
</ol>
<figure class="align-default" id="id18">
<span id="fig-web-streams-download"></span><a class="reference internal image-reference" href="../_images/web_streams_download.png"><img alt="../_images/web_streams_download.png" src="../_images/web_streams_download.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Stream perspective of <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> Web interface allowing to download miniSEED
data for selected streams.</span><a class="headerlink" href="#id18" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="built-in-fdsnws">
<span id="sec-caps-fdsnws"></span><h2>Built-in FDSNWS<a class="headerlink" href="#built-in-fdsnws" title="Permalink to this heading"></a></h2>
<p><cite>CAPS</cite> speaks natively FDSN Web Services, FDSNWS <span id="id9">[<a class="reference internal" href="references.html#id136" title="FDSNWS. International Federation of Digital Seismograph Networks. URL: http://www.fdsn.org/webservices/.">1</a>]</span> providing
waveform data via dataselect. Information on events and stations are
not delivered. The waveform data will be delivered through the port configured in
<a class="reference internal" href="configuration.html#confval-AS.http.port"><code class="xref std std-confval docutils literal notranslate"><span class="pre">AS.http.port</span></code></a> or the port configured by your Apache server, if available.
Contact your system administrator for information on the Apache server.
Read the documentation of the <a class="reference internal" href="configuration.html#sec-caps-config"><span class="std std-ref">CAPS server</span></a> for the configuration.</p>
</section>
<section id="built-in-winston-waveform-server">
<span id="sec-caps-wws"></span><h2>Built-in Winston waveform server<a class="headerlink" href="#built-in-winston-waveform-server" title="Permalink to this heading"></a></h2>
<p><cite>CAPS</cite> speeks natively Winston Waveform Server protocol, WWS, <span id="id10">[<a class="reference internal" href="references.html#id326" title="Winston Wave Server. USGS. URL: https://github.com/usgs/winston/blob/master/src/main/resources/docs/WWS.md.">9</a>]</span>,
e.g., to <span id="id11"><em>SWARM</em> [<a class="reference internal" href="references.html#id308" title="SWARM. USGS. URL: https://volcanoes.usgs.gov/software/swarm/.">7</a>]</span> by USGS. Read the documentation of the
<a class="reference internal" href="configuration.html#sec-caps-config"><span class="std std-ref">CAPS server</span></a> for the configuration.</p>
</section>
<section id="data-availability-information">
<span id="sec-caps-dataavailability"></span><h2>Data availability information<a class="headerlink" href="#data-availability-information" title="Permalink to this heading"></a></h2>
<section id="id12">
<h3>Web interface<a class="headerlink" href="#id12" title="Permalink to this heading"></a></h3>
<p>The <a class="reference internal" href="#sec-caps-web"><span class="std std-ref">Channels perspective of the CAPS web interface</span></a>
indicates periods of availability and of gaps on level of network, station,
sensor location and channel. The resolution of colors and percentages is linked
to the granularity of the data detection which increases with shorter time
windows in order to optimize the speed of the calculation.</p>
</section>
<section id="capstool">
<h3>capstool<a class="headerlink" href="#capstool" title="Permalink to this heading"></a></h3>
<p>The CAPS server stores information on received data segments
including their start and end times. Information on resulting gaps can be
retrieved by <a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a>. Example:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nb">echo</span><span class="w"> </span><span class="s2">&quot;2023,05,01,12,00,00 2023,05,03,00,00,00 NET * * *&quot;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>capstool<span class="w"> </span>-G<span class="w"> </span>--tolerance<span class="o">=</span><span class="m">0</span>.5<span class="w"> </span>-H<span class="w"> </span>localhost
</pre></div>
</div>
</section>
<section id="scardac">
<h3>scardac<a class="headerlink" href="#scardac" title="Permalink to this heading"></a></h3>
<p>The availability of data in the caps archive can be analyzed and written to the
<cite>SeisComP</cite> database by the <cite>SeisComP</cite> module <span id="id13"><em>scardac</em> [<a class="reference internal" href="references.html#id240" title="scardac. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scardac.html.">13</a>]</span>. For availability analysis
add the plugin <em>daccaps</em> to the list of <a class="reference internal" href="../apps/global.html#confval-plugins"><code class="xref std std-confval docutils literal notranslate"><span class="pre">plugins</span></code></a> and URL of the caps
archive to the archive configuration of <span id="id14"><em>scardac</em> [<a class="reference internal" href="references.html#id240" title="scardac. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scardac.html.">13</a>]</span>. The <em>daccaps</em> plugin
ships with the gempa package <em>caps-server</em>.</p>
<p>Example configuration of <span id="id15"><em>scardac</em> [<a class="reference internal" href="references.html#id240" title="scardac. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scardac.html.">13</a>]</span> (<code class="file docutils literal notranslate"><span class="pre">scardac.cfg</span></code>):</p>
<div class="highlight-properties notranslate"><div class="highlight"><pre><span></span><span class="na">plugins</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">${plugins}, daccaps</span>
<span class="na">archive</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">caps:///home/data/archive/caps/</span>
</pre></div>
</div>
<p>Example call:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scardac<span class="w"> </span>--plugins<span class="o">=</span><span class="s2">&quot;daccaps, dbmysql&quot;</span><span class="w"> </span>-d<span class="w"> </span>localhost<span class="w"> </span>-a<span class="w"> </span>caps:///home/data/archive/caps/<span class="w"> </span>--debug
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>As of SeisComP in version 6, scardac has received significant optimization.
Instead of scanning the full archive, only files which have changed since the
last scan will be examined. This means that when scanning the entire archive,
the first run may be more time consuming than subsequent ones when executed
within reasonable intervals.</p>
</div>
<p>The data availability information can be retrieved from the database, e.g.,
using <span id="id16"><em>fdsnws</em> [<a class="reference internal" href="references.html#id139" title="fdsnws. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/fdsnws.html.">11</a>]</span> or <span id="id17"><em>scxmldump</em> [<a class="reference internal" href="references.html#id284" title="scxmldump. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scxmldump.html.">18</a>]</span>.</p>
</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="#">Access Data on a CAPS Server</a><ul>
<li><a class="reference internal" href="#recordstream-caps-capss">RecordStream: caps/capss</a><ul>
<li><a class="reference internal" href="#configuration">Configuration</a></li>
<li><a class="reference internal" href="#optional-parameters">Optional Parameters</a></li>
<li><a class="reference internal" href="#combination-with-other-recordstream-interfaces">Combination with other RecordStream interfaces</a></li>
</ul>
</li>
<li><a class="reference internal" href="#caps-command-line-interface-cli-client-capstool">CAPS command-line interface (CLI) client: capstool</a></li>
<li><a class="reference internal" href="#data-file-access-rifftool-capssds">Data file access: rifftool/capssds</a></li>
<li><a class="reference internal" href="#synchronize-with-another-caps-server-caps2caps">Synchronize with another CAPS server: caps2caps</a></li>
<li><a class="reference internal" href="#connect-from-seedlink-caps-plugin">Connect from SeedLink: caps_plugin</a></li>
<li><a class="reference internal" href="#web-interface">Web interface</a></li>
<li><a class="reference internal" href="#built-in-fdsnws">Built-in FDSNWS</a></li>
<li><a class="reference internal" href="#built-in-winston-waveform-server">Built-in Winston waveform server</a></li>
<li><a class="reference internal" href="#data-availability-information">Data availability information</a><ul>
<li><a class="reference internal" href="#id12">Web interface</a></li>
<li><a class="reference internal" href="#capstool">capstool</a></li>
<li><a class="reference internal" href="#scardac">scardac</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="../apps/win2caps.html"
title="previous chapter">win2caps</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="examples.html"
title="next chapter">Examples and Recipes</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/data-retrieval.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,362 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Examples and Recipes &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Change Log" href="changelog-server.html" />
<link rel="prev" title="Access Data on a CAPS Server" href="data-retrieval.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="changelog-server.html" title="Change Log"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="data-retrieval.html" title="Access Data on a CAPS Server"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="examples-and-recipes">
<span id="sec-caps-examples"></span><h1>Examples and Recipes<a class="headerlink" href="#examples-and-recipes" title="Permalink to this heading"></a></h1>
<section id="retrieve-real-time-data-from-a-caps-server">
<h2>Retrieve real-time data from a CAPS server<a class="headerlink" href="#retrieve-real-time-data-from-a-caps-server" title="Permalink to this heading"></a></h2>
<p>The <a class="reference internal" href="plugins.html#sec-caps-plugins"><span class="std std-ref">listed plugins</span></a> can be used for exchanging real-time data.</p>
<section id="caps-server-to-data-processing-modules">
<span id="sec-caps-data"></span><h3>CAPS server to data processing modules<a class="headerlink" href="#caps-server-to-data-processing-modules" title="Permalink to this heading"></a></h3>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Provide data from a Caps server to data processing modules.</p></li>
</ul>
<p>Recipe:</p>
<ol class="arabic">
<li><p>Configure the CAPS server in the module configuration.</p></li>
<li><p>Start the CAPS server</p></li>
<li><p>For data processing use the <a class="reference internal" href="data-retrieval.html#sec-caps-recstream"><span class="std std-ref">caps or capss RecordStream</span></a>
and configure it in the global module configuration:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>caps://localhost:18002
</pre></div>
</div>
</li>
</ol>
</section>
<section id="caps-server-to-seedlink-clients">
<h3>CAPS server to SeedLink clients<a class="headerlink" href="#caps-server-to-seedlink-clients" title="Permalink to this heading"></a></h3>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Provide data from a CAPS server to external <span id="id1"><em>seedlink</em> [<a class="reference internal" href="references.html#id288" title="seedlink. Real-time waveform server. URL: https://docs.gempa.de/seiscomp/current/apps/seedlink.html.">19</a>]</span> clients.</p></li>
</ul>
<p>Recipe:</p>
<ol class="arabic">
<li><p>Configure and start the CAPS server to provide the data.</p></li>
<li><p>Configure a new SeedLink instance</p>
<p><strong>Case 1 - CAPS uses SeedLink plugins for data collection:</strong></p>
<p>Configure a SeedLink client instance on a second computer which will act
as a seedlink client and server.</p>
<p><strong>Case 2 - CAPS does not use SeedLink plugins for data collection:</strong></p>
<p>Generate an alias for seedlink on the same computer which will act as a SeedLink
client and server.</p>
</li>
<li><p>Use the plugin <em>caps</em> in the SeedLink bindings and
configure the plugin to connect to the CAPS server,</p></li>
<li><p>Configure the new SeedLink instance,</p></li>
<li><p>Update configuration of the new SeedLink instance (no module selection),</p></li>
<li><p>Start the new SeedLink instance.</p></li>
</ol>
</section>
</section>
<section id="import-data-into-a-caps-server">
<h2>Import data into a CAPS server<a class="headerlink" href="#import-data-into-a-caps-server" title="Permalink to this heading"></a></h2>
<section id="real-time-import-with-seedlink-plugins">
<span id="sec-caps-slink"></span><h3>Real-time import with seedlink plugins<a class="headerlink" href="#real-time-import-with-seedlink-plugins" title="Permalink to this heading"></a></h3>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Fetch data from a SeedLink server or from other sources using
standard SeedLink plugins <span id="id2">[<a class="reference internal" href="references.html#id288" title="seedlink. Real-time waveform server. URL: https://docs.gempa.de/seiscomp/current/apps/seedlink.html.">19</a>]</span> of <cite>SeisComP</cite> and provide them to a
CAPS server.</p></li>
</ul>
<p>Recipe:</p>
<ol class="arabic">
<li><p>Configure and start the <a class="reference internal" href="server.html#sec-caps-server"><span class="std std-ref">CAPS server</span></a> to receive the data,</p></li>
<li><p>Choose and configure the seedlink plugin in the SeedLink bindings configuration,</p></li>
<li><p>Uncheck the parameter <em>loadTimeTable</em> in the <span id="id3"><em>seedlink</em> [<a class="reference internal" href="references.html#id288" title="seedlink. Real-time waveform server. URL: https://docs.gempa.de/seiscomp/current/apps/seedlink.html.">19</a>]</span> module
configuration.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>plugins.chain.loadTimeTable<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">false</span>
</pre></div>
</div>
</li>
<li><p>Update the configuration.</p></li>
<li><p>Enable and start <a class="reference internal" href="../apps/slink2caps.html#slink2caps"><span class="std std-ref">slink2caps</span></a>.</p></li>
</ol>
</section>
<section id="real-time-import-with-caps-plugins">
<h3>Real-time import with CAPS plugins<a class="headerlink" href="#real-time-import-with-caps-plugins" title="Permalink to this heading"></a></h3>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Fetch data from external source using the CAPS-specific
<a class="reference internal" href="plugins.html#sec-caps-acqui-plugins"><span class="std std-ref">CAPS plugins</span></a> and provide them to a CAPS server.</p></li>
</ul>
<p>Recipe:</p>
<ol class="arabic simple">
<li><p>Configure and start the <a class="reference internal" href="server.html#sec-caps-server"><span class="std std-ref">CAPS server</span></a> to receive the data,</p></li>
<li><p>Choose and configure the <a class="reference internal" href="plugins.html#sec-caps-acqui-plugins"><span class="std std-ref">CAPS plugin</span></a> in the
module configuration,</p></li>
<li><p>Enable and start the plugin.</p></li>
</ol>
</section>
<section id="import-offline-data-miniseed-and-other-formats">
<span id="sec-caps-example-offline"></span><h3>Import offline data: miniSEED and other formats<a class="headerlink" href="#import-offline-data-miniseed-and-other-formats" title="Permalink to this heading"></a></h3>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Populate a CAPS server with offline miniSEED or other typs of data.</p></li>
</ul>
<p>Recipe:</p>
<p>Besides real-time data exchange, data from offline experiments, offline stations
or from other offline data archives can be fed into the caps data archive
from where they are made available by the caps server.</p>
<p>For example, a set of miniSEED data files (“.mseed”) can be pushed into the caps
archive using <a class="reference internal" href="../apps/rs2caps.html#rs2caps"><span class="std std-ref">rs2caps</span></a> and the <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> interface “file”
(<code class="docutils literal notranslate"><span class="pre">-I</span> <span class="pre">file://</span></code>, <em>file</em> is default and can be omitted) along with the
<a class="reference internal" href="server.html#sec-caps-server"><span class="std std-ref">CAPS server</span></a>.</p>
<ol class="arabic">
<li><p>Input one file (file.miniSEED), accept all streams:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>caps
rs2caps<span class="w"> </span>-I<span class="w"> </span>file.mseed<span class="w"> </span>--passthrough
</pre></div>
</div>
</li>
<li><p>Input all files ending with .mseed, accept all streams:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>caps
cat<span class="w"> </span>*.mseed<span class="w"> </span><span class="p">|</span><span class="w"> </span>rs2caps<span class="w"> </span>-I<span class="w"> </span>-<span class="w"> </span>--passthrough
</pre></div>
</div>
</li>
<li><p>Input all files ending with .mseed, accept only streams found in the database:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>start<span class="w"> </span>caps
cat<span class="w"> </span>*.mseed<span class="w"> </span><span class="p">|</span><span class="w"> </span>rs2caps<span class="w"> </span>-I<span class="w"> </span>-<span class="w"> </span>-d<span class="w"> </span>mysql://sysop:sysop@localhost/seiscomp<span class="w"> </span>-j<span class="w"> </span><span class="s2">&quot;&quot;</span>
</pre></div>
</div>
</li>
</ol>
</section>
</section>
<section id="real-time-playbacks">
<h2>Real-time playbacks<a class="headerlink" href="#real-time-playbacks" title="Permalink to this heading"></a></h2>
<p>Use this recipe to:</p>
<ul class="simple">
<li><p>Play back sorted miniSEED data as in real time using <span id="id4"><em>msrtsimul</em> [<a class="reference internal" href="references.html#id196" title="msrtsimul. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/msrtsimul.html.">12</a>]</span>.</p></li>
</ul>
<p>Real-time playbacks can be realized using</p>
<ul class="simple">
<li><p>A combination of msrtsimul and the CAPS plugin <a class="reference internal" href="../apps/rs2caps.html#rs2caps"><span class="std std-ref">rs2caps</span></a> or</p></li>
<li><p><span id="id5"><em>seedlink</em> [<a class="reference internal" href="references.html#id288" title="seedlink. Real-time waveform server. URL: https://docs.gempa.de/seiscomp/current/apps/seedlink.html.">19</a>]</span>.</p></li>
</ul>
<p>When using rs2caps the data can be stored in the CAPS archive or not.
When using seedlink then data a kept in the seedlink buffer and
<span id="id6"><em>slarchive</em> [<a class="reference internal" href="references.html#id298" title="slarchive. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/slarchive.html.">20</a>]</span> can be used to store the data in the SDS archive.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For playbacks, the input data must be <strong>sorted by end time</strong>.</p>
<p>Real-time playback will create <strong>events with fake times</strong>, e.g creationTime, eventTime.
Therefore, they should be
executed on production system only in exceptional cases, e.g. for whole system
validation. Better use dedicated SeisComP3 machines. Starting msrtsimul with
the option <em>-m historic</em> preserves the time of the data records, thus the pick times.
Instead, using <strong>offline playbacks based on XML files</strong> may be the faster and better
option to create parameters from historic events.</p>
</div>
<section id="procedure-using-caps-rs2caps">
<h3>Procedure using CAPS / rs2caps<a class="headerlink" href="#procedure-using-caps-rs2caps" title="Permalink to this heading"></a></h3>
<ol class="arabic">
<li><p>Retrieve miniSEED data from CAPS archive using <a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a> or
other methods.</p></li>
<li><p>Sort miniSEED records by endtime using <span class="xref std std-ref">scmssort</span>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scmssort<span class="w"> </span>-E<span class="w"> </span>miniSEED_file<span class="w"> </span>&gt;<span class="w"> </span>miniSEED_file_sorted
</pre></div>
</div>
</li>
<li><p>Stop <a class="reference internal" href="../apps/caps.html#caps"><span class="std std-ref">caps</span></a>, <a class="reference internal" href="../apps/slink2caps.html#slink2caps"><span class="std std-ref">slink2caps</span></a>, <a class="reference internal" href="../apps/rs2caps.html#rs2caps"><span class="std std-ref">rs2caps</span></a> and all other active data
acquisition. This will stop the real-time data acquisition.</p></li>
<li><p>Execute caps on the command line without archiving the data:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>caps<span class="w"> </span>--read-only
</pre></div>
</div>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>As the data are not archived, processing of playback data will be impossible
after stopping caps. Only in dedicated playback systems, caps should be
used normally without any additional option.</p>
</div>
</li>
<li><p>Playback the sorted miniSEED data using msrtsimul:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>msrtsimul<span class="w"> </span>-v<span class="w"> </span>-c<span class="w"> </span>miniSEED_file_sorted<span class="w"> </span><span class="p">|</span><span class="w"> </span>rs2caps<span class="w"> </span>-I<span class="w"> </span>-<span class="w"> </span>--passthrough
</pre></div>
</div>
<p>The option <code class="docutils literal notranslate"><span class="pre">--passthrough</span></code> ensures that all data are passed to caps.</p>
</li>
<li><p>Stop caps after the playback and the evaluation are finished</p></li>
<li><p>Start caps and all other real-time data acquisition modules.</p></li>
</ol>
</section>
<section id="procedure-using-seedlink">
<h3>Procedure using seedlink<a class="headerlink" href="#procedure-using-seedlink" title="Permalink to this heading"></a></h3>
<ol class="arabic">
<li><p>Retrieve miniSEED data from CAPS archive using <a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a>.</p></li>
<li><p>Sort miniSEED records by endtime using <span class="xref std std-ref">scmssort</span>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>scmssort<span class="w"> </span>-E<span class="w"> </span>miniSEED_file<span class="w"> </span>&gt;<span class="w"> </span>miniSEED_file_sorted
</pre></div>
</div>
</li>
<li><p>Activate msrtsimul and activate loadTimeTable in the seedlink configuration:</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>
plugins.chain.loadTimeTable<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">true</span>
</pre></div>
</div>
</li>
<li><p>Configure the <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a> with seedlink:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span><span class="nv">recordstream</span><span class="w"> </span><span class="o">=</span><span class="w"> </span>slink://localhost:18000
</pre></div>
</div>
</li>
<li><p>Start seedlink and restart the modules that use the RecordStream interface:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config
seiscomp<span class="w"> </span>start<span class="w"> </span>seedlink
seiscomp<span class="w"> </span>restart<span class="w"> </span>scautopick<span class="w"> </span>scamp
</pre></div>
</div>
</li>
<li><p>Playback the sorted miniSEED data using msrtsimul:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>msrtsimul<span class="w"> </span>-v<span class="w"> </span>miniSEED_file_sorted
</pre></div>
</div>
</li>
<li><p>Revert all changes after the playback.</p></li>
</ol>
</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="#">Examples and Recipes</a><ul>
<li><a class="reference internal" href="#retrieve-real-time-data-from-a-caps-server">Retrieve real-time data from a CAPS server</a><ul>
<li><a class="reference internal" href="#caps-server-to-data-processing-modules">CAPS server to data processing modules</a></li>
<li><a class="reference internal" href="#caps-server-to-seedlink-clients">CAPS server to SeedLink clients</a></li>
</ul>
</li>
<li><a class="reference internal" href="#import-data-into-a-caps-server">Import data into a CAPS server</a><ul>
<li><a class="reference internal" href="#real-time-import-with-seedlink-plugins">Real-time import with seedlink plugins</a></li>
<li><a class="reference internal" href="#real-time-import-with-caps-plugins">Real-time import with CAPS plugins</a></li>
<li><a class="reference internal" href="#import-offline-data-miniseed-and-other-formats">Import offline data: miniSEED and other formats</a></li>
</ul>
</li>
<li><a class="reference internal" href="#real-time-playbacks">Real-time playbacks</a><ul>
<li><a class="reference internal" href="#procedure-using-caps-rs2caps">Procedure using CAPS / rs2caps</a></li>
<li><a class="reference internal" href="#procedure-using-seedlink">Procedure using seedlink</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="data-retrieval.html"
title="previous chapter">Access Data on a CAPS Server</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="changelog-server.html"
title="next chapter">Change Log</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/examples.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,392 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Color Gradients &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="color-gradients">
<span id="gradients"></span><h1>Color Gradients<a class="headerlink" href="#color-gradients" title="Permalink to this heading"></a></h1>
<section id="overview">
<h2>Overview<a class="headerlink" href="#overview" title="Permalink to this heading"></a></h2>
<p>A number of pre-defined color gradients are available for gempa modules.
These gradients can be used when displaying color-coded values such as grids,
spectrograms or heat-maps. The following is an overview of pre-defined
gradients along with the name of the gradient which can be used in
configurations. The gradients are grouped into:</p>
<ul class="simple">
<li><p><a class="reference internal" href="#gradients-fullspectrum"><span class="std std-ref">Full spectrum</span></a></p></li>
<li><p><a class="reference internal" href="#gradients-darkyellow"><span class="std std-ref">Dark to yellow</span></a></p></li>
<li><p><a class="reference internal" href="#gradients-blackandwhite"><span class="std std-ref">Black and white</span></a></p></li>
<li><p><a class="reference internal" href="#gradients-singlecolor"><span class="std std-ref">Single color</span></a></p></li>
<li><p><a class="reference internal" href="#gradients-threecolor"><span class="std std-ref">Three color</span></a></p></li>
</ul>
</section>
<section id="list-of-gradients">
<h2>List of Gradients<a class="headerlink" href="#list-of-gradients" title="Permalink to this heading"></a></h2>
<section id="full-spectrum">
<span id="gradients-fullspectrum"></span><h3>Full spectrum<a class="headerlink" href="#full-spectrum" title="Permalink to this heading"></a></h3>
<p>Gradients that use the full spectrum of colors.</p>
<section id="default">
<span id="gradients-default"></span><h4>Default<a class="headerlink" href="#default" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Default</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Default.png"><img alt="overview of the Default color-gradient" src="../_images/Default.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id1">
<a class="reference internal image-reference" href="../_images/Default_.png"><img alt="example spectrogram using the Default gradient" src="../_images/Default_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Default” color-gradient.</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="spectrum">
<span id="gradients-spectrum"></span><h4>Spectrum<a class="headerlink" href="#spectrum" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Spectrum</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Spectrum.png"><img alt="overview of the Spectrum color-gradient" src="../_images/Spectrum.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id2">
<a class="reference internal image-reference" href="../_images/Spectrum_.png"><img alt="example spectrogram using the Spectrum gradient" src="../_images/Spectrum_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Spectrum” color-gradient.</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="circle">
<span id="gradients-circle"></span><h4>Circle<a class="headerlink" href="#circle" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Circle</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Circle.png"><img alt="overview of the Circle color-gradient" src="../_images/Circle.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id3">
<a class="reference internal image-reference" href="../_images/Circle_.png"><img alt="example spectrogram using the Circle gradient" src="../_images/Circle_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Circle” color-gradient.</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
</section>
<section id="dark-to-yellow">
<span id="gradients-darkyellow"></span><h3>Dark to yellow<a class="headerlink" href="#dark-to-yellow" title="Permalink to this heading"></a></h3>
<p>Gradients optically resembling fire with increased energy beeing displayed by
bright yellow tones.</p>
<section id="blackbody">
<span id="gradients-blackbody"></span><h4>BlackBody<a class="headerlink" href="#blackbody" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">BlackBody</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/BlackBody.png"><img alt="overview of the BlackBody color-gradient" src="../_images/BlackBody.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id4">
<a class="reference internal image-reference" href="../_images/BlackBody_.png"><img alt="example spectrogram using the BlackBody gradient" src="../_images/BlackBody_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “BlackBody” color-gradient.</span><a class="headerlink" href="#id4" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="inferno">
<span id="gradients-inferno"></span><h4>Inferno<a class="headerlink" href="#inferno" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Inferno</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Inferno.png"><img alt="overview of the Inferno color-gradient" src="../_images/Inferno.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id5">
<a class="reference internal image-reference" href="../_images/Inferno_.png"><img alt="example spectrogram using the Inferno gradient" src="../_images/Inferno_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Inferno” color-gradient.</span><a class="headerlink" href="#id5" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="plasma">
<span id="gradients-plasma"></span><h4>Plasma<a class="headerlink" href="#plasma" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Plasma</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Plasma.png"><img alt="overview of the Plasma color-gradient" src="../_images/Plasma.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id6">
<a class="reference internal image-reference" href="../_images/Plasma_.png"><img alt="example spectrogram using the Plasma gradient" src="../_images/Plasma_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Plasma” color-gradient.</span><a class="headerlink" href="#id6" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
</section>
<section id="black-and-white">
<span id="gradients-blackandwhite"></span><h3>Black and white<a class="headerlink" href="#black-and-white" title="Permalink to this heading"></a></h3>
<p>For a maximum contrast there are these two gradients that just use black and
white.</p>
<section id="blackwhite">
<span id="gradients-blackwhite"></span><h4>BlackWhite<a class="headerlink" href="#blackwhite" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">BlackWhite</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/BlackWhite.png"><img alt="overview of the BlackWhite color-gradient" src="../_images/BlackWhite.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id7">
<a class="reference internal image-reference" href="../_images/BlackWhite_.png"><img alt="example spectrogram using the BlackWhite gradient" src="../_images/BlackWhite_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “BlackWhite” color-gradient.</span><a class="headerlink" href="#id7" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="whiteblack">
<span id="gradients-whiteblack"></span><h4>WhiteBlack<a class="headerlink" href="#whiteblack" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">WhiteBlack</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/WhiteBlack.png"><img alt="overview of the WhiteBlack color-gradient" src="../_images/WhiteBlack.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id8">
<a class="reference internal image-reference" href="../_images/WhiteBlack_.png"><img alt="example spectrogram using the WhiteBlack gradient" src="../_images/WhiteBlack_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “WhiteBlack” color-gradient.</span><a class="headerlink" href="#id8" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
</section>
<section id="single-color">
<span id="gradients-singlecolor"></span><h3>Single color<a class="headerlink" href="#single-color" title="Permalink to this heading"></a></h3>
<p>The single color gradients have the same benefit as the
<a class="reference internal" href="#gradients-blackwhite"><span class="std std-ref">black and white gradients</span></a> and are of a high contrast.</p>
<section id="bluepurple">
<span id="gradients-bluepurple"></span><h4>BluePurple<a class="headerlink" href="#bluepurple" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">BuPu</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/BluePurple.png"><img alt="overview of the BluePurple color-gradient" src="../_images/BluePurple.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id9">
<a class="reference internal image-reference" href="../_images/BluePurple_.png"><img alt="example spectrogram using the BluePurple gradient" src="../_images/BluePurple_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “BluePurple” color-gradient.</span><a class="headerlink" href="#id9" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="blues">
<span id="gradients-blues"></span><h4>Blues<a class="headerlink" href="#blues" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Blues</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Blues.png"><img alt="overview of the Blues color-gradient" src="../_images/Blues.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id10">
<a class="reference internal image-reference" href="../_images/Blues_.png"><img alt="example spectrogram using the Blues gradient" src="../_images/Blues_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Blues” color-gradient.</span><a class="headerlink" href="#id10" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="purplered">
<span id="gradients-purplered"></span><h4>PurpleRed<a class="headerlink" href="#purplered" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">PuRd</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/PurpleRed.png"><img alt="overview of the PurpleRed color-gradient" src="../_images/PurpleRed.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id11">
<a class="reference internal image-reference" href="../_images/PurpleRed_.png"><img alt="example spectrogram using the PurpleRed gradient" src="../_images/PurpleRed_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “PurpleRed” color-gradient.</span><a class="headerlink" href="#id11" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
</section>
<section id="three-color">
<span id="gradients-threecolor"></span><h3>Three color<a class="headerlink" href="#three-color" title="Permalink to this heading"></a></h3>
<p>Gradients allowing to distinguish more details than
<a class="reference internal" href="#gradients-singlecolor"><span class="std std-ref">single colored</span></a>.</p>
<section id="redyellowblue">
<span id="gradients-redyellowblue"></span><h4>RedYellowBlue<a class="headerlink" href="#redyellowblue" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">RdYlBu</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/RedYellowBlue.png"><img alt="overview of the RedYellowBlue color-gradient" src="../_images/RedYellowBlue.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id12">
<a class="reference internal image-reference" href="../_images/RedYellowBlue_.png"><img alt="example spectrogram using the RedYellowBlue gradient" src="../_images/RedYellowBlue_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “RedYellowBlue” color-gradient.</span><a class="headerlink" href="#id12" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="parula">
<span id="gradients-parula"></span><h4>Parula<a class="headerlink" href="#parula" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Parula</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Parula.png"><img alt="overview of the Parula color-gradient" src="../_images/Parula.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id13">
<a class="reference internal image-reference" href="../_images/Parula_.png"><img alt="example spectrogram using the Parula gradient" src="../_images/Parula_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Parula” color-gradient.</span><a class="headerlink" href="#id13" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="viridis">
<span id="gradients-viridis"></span><h4>Viridis<a class="headerlink" href="#viridis" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Configuration name: <code class="xref std std-option docutils literal notranslate"><span class="pre">Viridis</span></code></p></li>
</ul>
<figure class="align-default">
<a class="reference internal image-reference" href="../_images/Viridis.png"><img alt="overview of the Viridis color-gradient" src="../_images/Viridis.png" style="width: 420px;" /></a>
</figure>
<figure class="align-default" id="id14">
<a class="reference internal image-reference" href="../_images/Viridis_.png"><img alt="example spectrogram using the Viridis gradient" src="../_images/Viridis_.png" style="width: 420px;" /></a>
<figcaption>
<p><span class="caption-text">Example spectrogram using the “Viridis” color-gradient.</span><a class="headerlink" href="#id14" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</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="#">Color Gradients</a><ul>
<li><a class="reference internal" href="#overview">Overview</a></li>
<li><a class="reference internal" href="#list-of-gradients">List of Gradients</a><ul>
<li><a class="reference internal" href="#full-spectrum">Full spectrum</a><ul>
<li><a class="reference internal" href="#default">Default</a></li>
<li><a class="reference internal" href="#spectrum">Spectrum</a></li>
<li><a class="reference internal" href="#circle">Circle</a></li>
</ul>
</li>
<li><a class="reference internal" href="#dark-to-yellow">Dark to yellow</a><ul>
<li><a class="reference internal" href="#blackbody">BlackBody</a></li>
<li><a class="reference internal" href="#inferno">Inferno</a></li>
<li><a class="reference internal" href="#plasma">Plasma</a></li>
</ul>
</li>
<li><a class="reference internal" href="#black-and-white">Black and white</a><ul>
<li><a class="reference internal" href="#blackwhite">BlackWhite</a></li>
<li><a class="reference internal" href="#whiteblack">WhiteBlack</a></li>
</ul>
</li>
<li><a class="reference internal" href="#single-color">Single color</a><ul>
<li><a class="reference internal" href="#bluepurple">BluePurple</a></li>
<li><a class="reference internal" href="#blues">Blues</a></li>
<li><a class="reference internal" href="#purplered">PurpleRed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#three-color">Three color</a><ul>
<li><a class="reference internal" href="#redyellowblue">RedYellowBlue</a></li>
<li><a class="reference internal" href="#parula">Parula</a></li>
<li><a class="reference internal" href="#viridis">Viridis</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/gradients.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,272 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Server Interfaces &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Server and File Testing" href="server-testing.html" />
<link rel="prev" title="Execution and Automatic Startup" href="configuration.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="server-testing.html" title="Server and File Testing"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="configuration.html" title="Execution and Automatic Startup"
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="server.html" accesskey="U">CAPS Server Application</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="server-interfaces">
<span id="sec-caps-interface"></span><h1>Server Interfaces<a class="headerlink" href="#server-interfaces" title="Permalink to this heading"></a></h1>
<section id="client-interface-telnet">
<span id="sec-caps-client-interface"></span><h2>Client interface / telnet<a class="headerlink" href="#client-interface-telnet" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> provides a line based client interface for requesting data and showing
available streams. The <code class="docutils literal notranslate"><span class="pre">telnet</span></code> command may be used to connect to the server:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>telnet<span class="w"> </span>localhost<span class="w"> </span><span class="m">18002</span>
</pre></div>
</div>
<p>The following commands are supported by the server:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">HELLO</span></code> - prints server name and version</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">HELP</span></code> prints descriptive help</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">BYE</span></code> - disconnects from server</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">AUTH</span> <span class="pre">&lt;user&gt;</span> <span class="pre">&lt;password&gt;</span></code> - performs authentication</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">INFO</span> <span class="pre">STREAMS</span> <span class="pre">[stream</span> <span class="pre">id</span> <span class="pre">filter]</span></code> - lists available streams and time spans,
see section ref{sec:ci_info_streams}</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">BEGIN</span> <span class="pre">REQUEST</span></code> - starts a request block, followed by request parameters,
see section ref{sec:ci_request}</p>
<ul>
<li><p><code class="docutils literal notranslate"><span class="pre">REALTIME</span> <span class="pre">ON|OFF</span></code> - enables/disables real-time mode, if disabled the
connection is closed if all archive data was sent</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">STREAM</span> <span class="pre">ADD|REMOVE</span> <span class="pre">&lt;NET.STA.LOC.CHA&gt;</span></code> - adds/removes a stream from the
request, may be repeated in one request block</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TIME</span> <span class="pre">[&lt;starttime&gt;]:[endtime]</span></code> - defines start and end time of the
request, open boundaries are allowed</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">HELI</span> <span class="pre">ADD|REMOVE</span> <span class="pre">&lt;NET.STA.LOC.CHA&gt;</span></code> - similar to STREAM but re-sample
the data to 1Hz</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">META{&#64;[version]}</span> <span class="pre">[ON|OFF]</span></code> - request delivery of packet header information only</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">OUTOFORDER</span> <span class="pre">[ON|OFF]</span></code> - delivers data in order of sampling or transmission time</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">SEGMENTS</span> <span class="pre">[ON|OFF]</span></code> - request delivery of times of contiguous segments (API &gt;= 4)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">GAPS</span> <span class="pre">[ON|OFF]</span></code> - request delivery of times of gaps (API &gt;= 4)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">TOLERANCE</span> <span class="pre">[value</span> <span class="pre">in</span> <span class="pre">us]</span></code> - Define data segment continuation tolerance in microseconds (API &gt;= 4)</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">RESOLUTION</span> <span class="pre">[value</span> <span class="pre">in</span> <span class="pre">d]</span></code> - Resolution in days of the returned data segments or gaps (API &gt;= 4)</p></li>
</ul>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">END</span></code> - finalizes a request and starts acquisition</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">PRINT</span> <span class="pre">REQUESTS</span></code> - prints active request of current session</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">ABORT</span></code> - aborts current data transmission</p></li>
</ul>
<p>Requests to server are separated by a new line. For the response data the server
prepends the message length to the data. In this way non ASCII characters or
binary content can be returned.</p>
<section id="list-available-streams">
<span id="sec-ci-info-streams"></span><h3>List available streams<a class="headerlink" href="#list-available-streams" title="Permalink to this heading"></a></h3>
<p>The following example shows a telnet conversation of a request for available
streams. The first line contains the request command. All other lines represent
the server response. The response is 124 characters long. The length parameter
is interpreted by telnet and converted to its ASCII representation, in this
case: <code class="docutils literal notranslate"><span class="pre">|</span></code>.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span><span class="hll"><span class="linenos">1</span>INFO STREAMS VZ.HILO.*
</span><span class="linenos">2</span>|STREAMS
<span class="linenos">3</span>VZ.HILO.WLS.CAM 2013-07-26T00:00:01 2013-08-02T09:28:17
<span class="linenos">4</span>VZ.HILO.WLS.SSH 2008-06-06T00:00:00 2013-08-02T09:04:00
<span class="linenos">5</span>END
</pre></div>
</div>
</section>
<section id="data-requests">
<span id="sec-ci-request-data"></span><h3>Data requests<a class="headerlink" href="#data-requests" title="Permalink to this heading"></a></h3>
<p>Data request are initiated by a request block which defines the stream and the
time span to fetch.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span><span class="hll"><span class="linenos"> 1</span>BEGIN REQUEST
</span><span class="hll"><span class="linenos"> 2</span>REALTIME OFF
</span><span class="hll"><span class="linenos"> 3</span>STREAM ADD VZ.HILO.WLS.SSH
</span><span class="hll"><span class="linenos"> 4</span>TIME 2013,08,02,09,00,02:
</span><span class="hll"><span class="linenos"> 5</span>END
</span><span class="linenos"> 6</span>DSTATUS OK
<span class="linenos"> 7</span>SESSION_TABLE VERSION:1
<span class="linenos"> 8</span>PACKET_HEADER IDSIZE:2,DATASIZE:4
<span class="linenos"> 9</span>FREQUESTS
<span class="linenos">10</span>ID:1,SID:VZ.HILO.WLS.SSH,SFREQ:1/60,UOM:mm,FMT:RAW/FLOAT
<span class="linenos">11</span>END
<span class="linenos">12</span>[unprintable data]
<span class="linenos">13</span>&#39;REQUESTS
<span class="linenos">14</span>ID:-1,SID:VZ.HILO.WLS.SSH
<span class="linenos">15</span>END
<span class="linenos">16</span><EFBFBD>EOD
</pre></div>
</div>
<p>The listing above shows such a request block in lines 1-5. Line 2 disables the
real-time mode which will close the session after all data was read. Line 3 adds
the stream to the request set. More streams may be added in successive lines.
Line 4 specifies a start time and an open end time.</p>
<p>The first response chunk starts at line 6 and ends at line 11. I has a length of
68 byte (= ACCII <code class="docutils literal notranslate"><span class="pre">D</span></code>) and contains version information and a session table.
The table maps a 2 byte integer id to data stream meta information. In this way
following data chunks can be distinguished by only 2 bytes and the header
information has to be transmitted only once.</p>
<p>Line 12 contains the data chunks. It is omitted here because it contains
unprintable characters. A data chunk starts with the 2 id bytes followed by the
4 byte chunk size.</p>
<p>After all data was transmitted the server reports the end of the stream (line
13-15) and the end of the session (line 16).</p>
</section>
</section>
<section id="web-interface">
<span id="sec-caps-web-interface"></span><h2>Web interface<a class="headerlink" href="#web-interface" title="Permalink to this heading"></a></h2>
<p><a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> ships with a read-only web interface for viewing information and
downloading data. The Web interface is disabled by default and may be enabled by
configuring a valid port number under <a class="reference internal" href="configuration.html#confval-AS.http.port"><code class="xref std std-confval docutils literal notranslate"><span class="pre">AS.http.port</span></code></a>. It provides
different tabs:</p>
<ul class="simple">
<li><p><strong>Channels</strong> (figure <a href="#fig-web-streams">44</a>): View and filter available
streams. For the RAW and miniSEED packets it is also possible to view the
waveform data by clicking on an entry of the stream table. miniSEED data
may be <a class="reference internal" href="data-retrieval.html#sec-caps-web"><span class="std std-ref">downloaded interactively</span></a>.</p></li>
<li><p><strong>Server stats</strong> (figure <a href="#fig-web-overview">45</a>): View server traffic
statistics. This tab is only accessible if the logged in user is member of the
<em>admin</em> group as defined by <a class="reference internal" href="configuration.html#confval-AS.auth.basic.users.passwd"><code class="xref std std-confval docutils literal notranslate"><span class="pre">AS.auth.basic.users.passwd</span></code></a>.</p></li>
<li><p><strong>Settings</strong> (figure <a href="#fig-web-settings">46</a>): Set the login
credentials and parameters of the other perspectives.</p></li>
</ul>
<figure class="align-default" id="id1">
<span id="fig-web-streams"></span><a class="reference internal image-reference" href="../_images/web_streams.png"><img alt="../_images/web_streams.png" src="../_images/web_streams.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Stream perspective of <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> Web interface allowing to filter availability
streams and to view waveform data for RAW and minSEED records.</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-default" id="id2">
<span id="fig-web-overview"></span><a class="reference internal image-reference" href="../_images/web_overview.png"><img alt="../_images/web_overview.png" src="../_images/web_overview.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Overview perspective of <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> Web interface showing traffic and file
statistics.</span><a class="headerlink" href="#id2" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<figure class="align-default" id="id3">
<span id="fig-web-settings"></span><a class="reference internal image-reference" href="../_images/web_settings.png"><img alt="../_images/web_settings.png" src="../_images/web_settings.png" style="width: 18cm;" /></a>
<figcaption>
<p><span class="caption-text">Settings perspective of <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> Web interface.</span><a class="headerlink" href="#id3" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</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="#">Server Interfaces</a><ul>
<li><a class="reference internal" href="#client-interface-telnet">Client interface / telnet</a><ul>
<li><a class="reference internal" href="#list-available-streams">List available streams</a></li>
<li><a class="reference internal" href="#data-requests">Data requests</a></li>
</ul>
</li>
<li><a class="reference internal" href="#web-interface">Web interface</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="configuration.html"
title="previous chapter">Execution and Automatic Startup</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="server-testing.html"
title="next chapter">Server and File Testing</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/interfaces.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,277 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Introduction &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Upgrading" href="upgrading.html" />
<link rel="prev" title="CAPS documentation" href="../index.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="upgrading.html" title="Upgrading"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="../index.html" title="CAPS documentation"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="introduction">
<span id="sec-intro"></span><h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this heading"></a></h1>
<p>The Common Acquisition Protocol Server (<cite>CAPS</cite>) was developed to fulfill
the needs to transfer multi-sensor data from the station to the data center. As
nowadays more and more stations with co-located sensors like broadband
seismometer, accelerometer, CGPS, temperature, video cameras, etc. are build up,
a acquisition protocol is required, which can efficiently handle low- and
high-sampled data through one unified protocol.</p>
<p><cite>CAPS</cite> is a core component of <cite>SeisComP</cite> systems where data redundancy, security
and high availability is key.</p>
<p>The <cite>CAPS</cite> package ships with</p>
<ul class="simple">
<li><p>The <a class="reference internal" href="configuration.html#sec-caps-config"><span class="std std-ref">CAPS server</span></a> serving <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a>
and other multi-format data in real-time and from archive.</p></li>
<li><p><a class="reference internal" href="plugins.html#sec-caps-plugins"><span class="std std-ref">Data acquisition plugins</span></a> feeding data into the CAPS
server.</p></li>
<li><p><a class="reference internal" href="data-retrieval.html#sec-caps-retrieval"><span class="std std-ref">Data retrieval and analysis tools</span></a> including
on-demand access to data on the server.</p></li>
</ul>
<section id="features">
<h2>Features<a class="headerlink" href="#features" title="Permalink to this heading"></a></h2>
<p>The core features of <cite>CAPS</cite> are:</p>
<ul class="simple">
<li><p>Multi-sensor data transfer including miniSEED records, video streams and
<a class="reference internal" href="archive.html#sec-packet-types"><span class="std std-ref">almost any other format</span></a>.</p></li>
<li><p>Compehensive data acquisition by all existing plugins for <span id="id1"><em>seedlink</em> [<a class="reference internal" href="references.html#id288" title="seedlink. Real-time waveform server. URL: https://docs.gempa.de/seiscomp/current/apps/seedlink.html.">19</a>]</span>
plus additional <a class="reference internal" href="plugins.html#sec-caps-plugins"><span class="std std-ref">CAPS plugins</span></a>.</p></li>
<li><p>No inventory required for immediate data acquisition.</p></li>
<li><p>Stations can be added without reconfiguring the <cite>CAPS</cite> server avoiding
server downtimes.</p></li>
<li><p>Pushing of data from new stations into CAPS without restarting the CAPS server.</p></li>
<li><p>Lightweight protocol for minimized packet overhead.</p></li>
<li><p>Reliable data transfer, no data loss due to re-transmission of data in case of
network outage or server restart.</p></li>
<li><p>Archived and real-time data served through one single protocol and one
connection.</p></li>
<li><p>High-quality data archives:</p>
<ul>
<li><p>backfilling of data and correct sorting by time even if records arrive in
out of order sequences.</p></li>
<li><p>duplicate records in CAPS archives are impossible. Such duplicates may exist
in <a class="reference internal" href="glossary.html#term-SDS"><span class="xref std std-term">SDS</span></a> archives created by <span id="id2"><em>scart</em> [<a class="reference internal" href="references.html#id241" title="scart. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/scart.html.">14</a>]</span> or <span id="id3"><em>slarchive</em> [<a class="reference internal" href="references.html#id298" title="slarchive. SeisComP module. URL: https://docs.gempa.de/seiscomp/current/apps/slarchive.html.">20</a>]</span>.</p></li>
</ul>
</li>
<li><p>Rapid response systems are supported by prioritizing recent data when
recovering from longer gaps of data acquisition allowing to process the most
recent data first before backfilling older data.</p></li>
<li><p><a class="reference internal" href="configuration.html#sec-caps-security"><span class="std std-ref">Data security</span></a> on multiple levels:</p>
<ul>
<li><p>secure communication via <a class="reference internal" href="configuration.html#sec-conf-ssl"><span class="std std-ref">SSL</span></a>.</p></li>
<li><p><a class="reference internal" href="configuration.html#sec-conf-access-auth"><span class="std std-ref">User authentication</span></a>.</p></li>
<li><p>different user and group roles distinguishing read, write or administrative
access.</p></li>
<li><p><a class="reference internal" href="configuration.html#sec-conf-access"><span class="std std-ref">fine-grained access control</span></a> on service and stream
level for defined users, user groups or IP ranges.</p></li>
</ul>
</li>
<li><p><a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">Data redundancy</span></a> by real-time connection between two or more
CAPS servers.</p></li>
<li><p>Easy <a class="reference internal" href="data-retrieval.html#sec-caps-retrieval"><span class="std std-ref">access to data</span></a>:</p>
<ul>
<li><p>via the <a class="reference internal" href="data-retrieval.html#sec-caps-recstream"><span class="std std-ref">caps RecordStream</span></a> provided by
<cite>SeisComP</cite> <span id="id4">[<a class="reference internal" href="references.html#id292" 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.">31</a>]</span></p></li>
<li><p>using <a class="reference internal" href="data-retrieval.html#sec-caps-retrieval"><span class="std std-ref">added tools and interfaces</span></a> also offering
meta data information.</p></li>
<li><p>via <a class="reference internal" href="data-retrieval.html#sec-caps-seedlink"><span class="std std-ref">Seedlink</span></a>.</p></li>
<li><p>by built-in standard <a class="reference internal" href="data-retrieval.html#sec-caps-fdsnws"><span class="std std-ref">FDSN Web Service</span></a>.</p></li>
<li><p>by built-in <a class="reference internal" href="data-retrieval.html#sec-caps-wws"><span class="std std-ref">Winston Wave Server, WWS</span></a>, e.g.,
to <span id="id5"><em>SWARM</em> [<a class="reference internal" href="references.html#id308" title="SWARM. USGS. URL: https://volcanoes.usgs.gov/software/swarm/.">7</a>]</span> by USGS.</p></li>
<li><p>by an interactive <a class="reference internal" href="interfaces.html#sec-caps-web-interface"><span class="std std-ref">Web interface</span></a> also
offering statistics and meta data information.</p></li>
<li><p>from <a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">other CAPS servers</span></a>.</p></li>
<li><p>through <a class="reference internal" href="interfaces.html#sec-caps-client-interface"><span class="std std-ref">telnet interface</span></a>.</p></li>
</ul>
</li>
<li><p>Server-side downsampling upon client request for optimized data transfer.</p></li>
</ul>
</section>
<section id="architecture">
<span id="sec-architecture"></span><h2>Architecture<a class="headerlink" href="#architecture" title="Permalink to this heading"></a></h2>
<p>The figure below shows the architecture of <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a>. The central
component is the server, which receives data from sensors or other data centers,
stores it into an archive and provides it to connected clients. The connection
between a data provider and <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> is made through a plugin.</p>
<p>Plugins are independent applications which, similar to clients, use a
network socket to communicate with the server. The advantages of this loose
coupling are:</p>
<ul class="simple">
<li><p>Plugins may be developed independently and in a arbitrary programming language.</p></li>
<li><p>A poorly written plugin does no crash the whole server.</p></li>
<li><p>Plugins may run on different machines to pull or push data. This allows to secure
the access to the <cite>CAPS</cite> by a firewall.</p></li>
<li><p>Plugins may buffer data in case the server is temporary unavailable.</p></li>
<li><p>A <cite>CAPS</cite> client library for C++ and Python may be provided upon request
allowing you to develop your own applications.</p></li>
</ul>
<figure class="align-default" id="id6">
<span id="fig-architecture"></span><a class="reference internal image-reference" href="../_images/architecture.png"><img alt="../_images/architecture.png" src="../_images/architecture.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Architecture of <cite>CAPS</cite>.</span><a class="headerlink" href="#id6" title="Permalink to this image"></a></p>
</figcaption>
</figure>
</section>
<section id="deployment">
<span id="sec-deploy"></span><h2>Deployment<a class="headerlink" href="#deployment" title="Permalink to this heading"></a></h2>
<p>The acquisition of data from other data centers is most likely done through a
public interface reachable over the Internet. For instance seismic waveform data
is commonly distributed via <a class="reference internal" href="glossary.html#term-SeedLink"><span class="xref std std-term">SeedLink</span></a> or <a class="reference internal" href="glossary.html#term-ArcLink"><span class="xref std std-term">ArcLink</span></a> servers while
the tide gage community shares its data through a Web interface. For this
center-to-center communication a plugin is launched on the receiving site to
feed the <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> server.</p>
<p>For the direct acquisition of data from a sensor the plugin has to run on the
sensor station. At this point the diagram distinguishes two cases: In the first
example the plugin sends the data directly to the <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> running at the
data center. In the second case the data is send to a local CAPS server on the
sensor station. From there it is fetch by the <a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">caps2caps</span></a> plugin running
at the data center.</p>
<p>The options for possible deployments are illustrated in the figure below.</p>
<p>The advantage of the second approach is:</p>
<ul class="simple">
<li><p><strong>Better protection against data loss</strong> - In case of a connectivity problem
plugins may transient buffer data. Nevertheless main memory is limited and
the buffered data may be lost e.g. because of an power outage. A local
<a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> will store observations to the hard drive for later retrieval.</p></li>
<li><p><strong>Direct client access</strong> - A client may directly receive data from the sensor
station. This is in particular useful for testing and validating the sensor
readings during the station setup phase. The standard <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> client
applications may be used in the field.</p></li>
<li><p><strong>Less packet overhead</strong> - The <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> client protocol is more
lightweight than the plugin protocol. Once connected each data stream is
identified by a unique number. A client packet only consists of a two byte
header followed by the data.</p></li>
</ul>
<figure class="align-default" id="id7">
<span id="fig-deployment"></span><a class="reference internal image-reference" href="../_images/deployment.png"><img alt="../_images/deployment.png" src="../_images/deployment.png" style="width: 16cm;" /></a>
<figcaption>
<p><span class="caption-text">Possible deployment of <cite>CAPS</cite> and its components.</span><a class="headerlink" href="#id7" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<p>The ability to connect different <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> instances simplifies sharing of
data. One protocol and one implementation is used for the sensor-to-center and
center-to-center communication. In the same way multiple <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> instances
may be operated in one data center on different hardware to create backups,
establish redundancy or balance the server load.</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="#">Introduction</a><ul>
<li><a class="reference internal" href="#features">Features</a></li>
<li><a class="reference internal" href="#architecture">Architecture</a></li>
<li><a class="reference internal" href="#deployment">Deployment</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="../index.html"
title="previous chapter"><cite>CAPS</cite> documentation</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="upgrading.html"
title="next chapter">Upgrading</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/introduction.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,385 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Data Acquisition and Manipulation by Plugins &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="caps2caps" href="../apps/caps2caps.html" />
<link rel="prev" title="Data Redundancy" href="redundancy.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="../apps/caps2caps.html" title="caps2caps"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="redundancy.html" title="Data Redundancy"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="data-acquisition-and-manipulation-by-plugins">
<span id="sec-caps-plugins"></span><h1>Data Acquisition and Manipulation by Plugins<a class="headerlink" href="#data-acquisition-and-manipulation-by-plugins" title="Permalink to this heading"></a></h1>
<p>While the <a class="reference internal" href="server.html#sec-caps-server"><span class="std std-ref">caps server</span></a> serves data in basically any
given format in real time and from archive, the data are fetched from external
sources and provided to caps by acquisition plugins.</p>
<p>The acquisition plugins generate or retrieve data and provide them to the
<a class="reference internal" href="server.html#sec-caps-server"><span class="std std-ref">caps server</span></a> for storage and further provision to other
clients. Depending on the plugin itself the acquisition plugins allow to</p>
<ul class="simple">
<li><p>Flexibly connect to many different sources and fetch data in many different formats</p></li>
<li><p>Manipulate data streams</p></li>
<li><p>Generate new data.</p></li>
</ul>
<p>In addition to the <a class="reference internal" href="#sec-caps-acqui-plugins"><span class="std std-ref">plugins specifically provided by the cap-plugins package</span></a>
all available <a class="reference internal" href="#sec-seedlink-plugins"><span class="std std-ref">seedlink plugins</span></a> can be considered.</p>
<p>CAPS also provides tools for <a class="reference internal" href="data-retrieval.html#sec-caps-retrieval"><span class="std std-ref">retrieval of data</span></a> from
CAPS servers and delivery to <strong class="program">seedlink</strong> or to files.</p>
<figure class="align-center" id="id1">
<span id="fig-deployment-plugins"></span><a class="reference internal image-reference" href="../_images/deployment.png"><img alt="../_images/deployment.png" src="../_images/deployment.png" style="width: 12cm;" /></a>
<figcaption>
<p><span class="caption-text">Possible data feeds by plugins into <cite>CAPS</cite>.</span><a class="headerlink" href="#id1" title="Permalink to this image"></a></p>
</figcaption>
</figure>
<section id="appname-plugins">
<span id="sec-caps-acqui-plugins"></span><h2><cite>CAPS</cite> plugins<a class="headerlink" href="#appname-plugins" title="Permalink to this heading"></a></h2>
<p>Since <cite>CAPS</cite> was brought to the market more and more plugins have been
developed in addition to the <a class="reference internal" href="#sec-seedlink-plugins"><span class="std std-ref">Seedlink plugins</span></a>.
While many of these <cite>CAPS</cite> plugins are included in the <em>caps-plugins</em> package by <cite>gempa</cite>,
other plugins can be provided upon request. We can also develop new customized plugins.
<a class="reference external" href="https://gempa.de/contact/">Contact us</a> and provide your specifications for new
developments.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>While the <a class="reference internal" href="#sec-seedlink-plugins"><span class="std std-ref">Seedlink plugins</span></a> are selected and
configured in the bindings configuration of <strong class="program">seedlink</strong>,
the CAPS plugins run independently.
Therefore, they are enabled and started as daemon modules or executed on demand.
These plugins are configured like a module by module configuration.</p>
</div>
<section id="included-plugins">
<h3>Included plugins<a class="headerlink" href="#included-plugins" title="Permalink to this heading"></a></h3>
<p>The following plugins ship with the <em>caps-plugins</em> package:</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 13.0%" />
<col style="width: 87.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Plugin name</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">caps2caps</span></a></p></td>
<td><p>Mirrors data between different <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a> instances. All packet types are supported.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/crex2caps.html#crex2caps"><span class="std std-ref">crex2caps</span></a></p></td>
<td><p>CREX CAPS plugin. Reads CREX data from file and pushes the data into the given CAPS server.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/gdi2caps.html#gdi2caps"><span class="std std-ref">gdi2caps</span></a></p></td>
<td><p>Import data from Guralp GDI server.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/rtpd2caps.html#rtpd2caps"><span class="std std-ref">rtpd2caps</span></a></p></td>
<td><p>Collects data from a RefTeK <a class="reference external" href="http://www.reftek.com/products/software-RTPD.htm">RTPD server</a>. The data is stored in the <a class="reference internal" href="archive.html#sec-pt-raw"><span class="std std-ref">RAW</span></a> format.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/data2caps.html#data2caps"><span class="std std-ref">data2caps</span></a></p></td>
<td><p>Send data to CAPS as <a class="reference internal" href="archive.html#sec-pt-raw"><span class="std std-ref">RAW format</span></a>. This simple tool can be easily extended to read custom formats and to send <a class="reference internal" href="archive.html#sec-pt-miniseed"><span class="std std-ref">miniSEED format</span></a>.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/rs2caps.html#rs2caps"><span class="std std-ref">rs2caps</span></a></p></td>
<td><p>Collects data from a <cite>SeisComP</cite> <a class="reference internal" href="glossary.html#term-RecordStream"><span class="xref std std-term">RecordStream</span></a>. The data is either stored in the <a class="reference internal" href="archive.html#sec-pt-raw"><span class="std std-ref">RAW</span></a> or <a class="reference internal" href="archive.html#sec-pt-miniseed"><span class="std std-ref">MiniSeed</span></a> format.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/slink2caps.html#slink2caps"><span class="std std-ref">slink2caps</span></a></p></td>
<td><p>Uses the available <a class="reference internal" href="glossary.html#term-SeedLink"><span class="xref std std-term">SeedLink</span></a> plugins to feed data from other sources into <a class="reference internal" href="glossary.html#term-CAPS"><span class="xref std std-term">CAPS</span></a>. Data can be retrieved from any sources for which a <a class="reference internal" href="glossary.html#term-SeedLink"><span class="xref std std-term">SeedLink</span></a> plugins exists. The data will be converted into <a class="reference internal" href="archive.html#sec-pt-miniseed"><span class="std std-ref">MiniSeed</span></a> format.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/sproc2caps.html#sproc2caps"><span class="std std-ref">sproc2caps</span></a></p></td>
<td><p>Real-time combination, renaming, filtering and manipulation of data from the recordstream interface.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/test2caps.html#test2caps"><span class="std std-ref">test2caps</span></a></p></td>
<td><p>Send generic tests signals to a CAPS server</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/v4l2caps.html#v4l2caps"><span class="std std-ref">v4l2caps</span></a></p></td>
<td><p>Video for Linux capture plugin</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/win2caps.html#win2caps"><span class="std std-ref">win2caps</span></a></p></td>
<td><p>WIN CAPS plugin. Sends data read from socket or file to CAPS.</p></td>
</tr>
</tbody>
</table>
</section>
<section id="plugins-provided-upon-request">
<h3>Plugins provided upon request<a class="headerlink" href="#plugins-provided-upon-request" title="Permalink to this heading"></a></h3>
<p>The following plugins are not included in the <em>caps-plugins</em> package. They can be
provided upon request.</p>
<table class="docutils align-default">
<colgroup>
<col style="width: 13.0%" />
<col style="width: 87.0%" />
</colgroup>
<thead>
<tr class="row-odd"><th class="head"><p>Plugin name</p></th>
<th class="head"><p>Description</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><span class="xref std std-ref">edas2caps</span></p></td>
<td><p>Reads EDAS sensor data directly from station and pushes it into CAPS.</p></td>
</tr>
<tr class="row-odd"><td><p><span class="xref std std-ref">jw2caps</span></p></td>
<td><p>Provide support for Joy Warrior Mem sensors connected by USB.</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="../apps/ngl2caps.html#ngl2caps"><span class="std std-ref">ngl2caps</span></a></p></td>
<td><p>Reads GNSS data from file and sends it to CAPS.</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="../apps/orb2caps.html#orb2caps"><span class="std std-ref">orb2caps</span></a></p></td>
<td><p>Provides miniSEED data from an Antelope ORB. Operates on the Antelope system.</p></td>
</tr>
<tr class="row-even"><td><p><span class="xref std std-ref">tidetool2caps</span></p></td>
<td><p>Reads TideTool decoded data from file and pushes it into CAPS.</p></td>
</tr>
<tr class="row-odd"><td><p><span class="xref std std-ref">yet2caps</span></p></td>
<td><p>Read GNSS YET packets from USB device or from file and push them into CAPS.</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="integration-of-seedlink-plugins">
<span id="sec-seedlink-plugins"></span><h2>Integration of Seedlink plugins<a class="headerlink" href="#integration-of-seedlink-plugins" title="Permalink to this heading"></a></h2>
<p><cite>CAPS</cite> supports all available
<a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/seedlink.html">seedlink plugins</a>.
The plugins are configured with the seedlink bindings configuration. Once configured
they are executed together with <a class="reference internal" href="../apps/slink2caps.html#slink2caps"><span class="std std-ref">slink2caps</span></a>.</p>
<p>Procedure:</p>
<ol class="arabic">
<li><p>In the module configuration of seedlink (<code class="file docutils literal notranslate"><span class="pre">seedlink.cfg</span></code>) set</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>plugins.chain.loadTimeTable<span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">false</span>
</pre></div>
</div>
</li>
<li><p>Create and configure the seedlink bindings</p></li>
<li><p>Update configuration</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>update-config<span class="w"> </span>seedlink
</pre></div>
</div>
</li>
<li><p>Start/restart <a class="reference internal" href="../apps/slink2caps.html#slink2caps"><span class="std std-ref">slink2caps</span></a>, do not start the configured seedlink instead
at the same time.</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>seiscomp<span class="w"> </span>restart<span class="w"> </span>slink2caps
</pre></div>
</div>
</li>
</ol>
</section>
<section id="configuration-of-appname-plugins">
<span id="sec-caps-plugins-docu"></span><h2>Configuration of <cite>CAPS</cite> plugins<a class="headerlink" href="#configuration-of-appname-plugins" title="Permalink to this heading"></a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../apps/caps2caps.html">caps2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/caps2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/caps2caps.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/caps2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/caps2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/crex2caps.html">crex2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/crex2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/crex2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/data2caps.html">data2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/data2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/data2caps.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/data2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/gdi2caps.html">gdi2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/gdi2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/gdi2caps.html#backfilling">Backfilling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/gdi2caps.html#connection-handling">Connection handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/gdi2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/gdi2caps.html#bindings-parameters">Bindings Parameters</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/ngl2caps.html">ngl2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/ngl2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/ngl2caps.html#waveform-data">Waveform Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/ngl2caps.html#inventory">Inventory</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/ngl2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/ngl2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/orb2caps.html">orb2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/orb2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/orb2caps.html#setup">Setup</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/rs2caps.html">rs2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/rs2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rs2caps.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rs2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rs2caps.html#bindings-parameters">Bindings Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rs2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/rtpd2caps.html">rtpd2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/rtpd2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rtpd2caps.html#test-examples">Test examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rtpd2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rtpd2caps.html#bindings-parameters">Bindings Parameters</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/rtpd2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/slink2caps.html">slink2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/slink2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/slink2caps.html#transient-packets">Transient Packets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/slink2caps.html#module-setup">Module Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/slink2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/slink2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/sproc2caps.html">sproc2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/sproc2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/sproc2caps.html#setup">Setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/sproc2caps.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/sproc2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/sproc2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/test2caps.html">test2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/test2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/test2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/test2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/v4l2caps.html">v4l2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/v4l2caps.html#description">Description</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/v4l2caps.html#examples">Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/v4l2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/v4l2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../apps/win2caps.html">win2caps</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../apps/win2caps.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="../apps/win2caps.html#command-line-options">Command-Line Options</a></li>
</ul>
</li>
</ul>
</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="#">Data Acquisition and Manipulation by Plugins</a><ul>
<li><a class="reference internal" href="#appname-plugins"><cite>CAPS</cite> plugins</a><ul>
<li><a class="reference internal" href="#included-plugins">Included plugins</a></li>
<li><a class="reference internal" href="#plugins-provided-upon-request">Plugins provided upon request</a></li>
</ul>
</li>
<li><a class="reference internal" href="#integration-of-seedlink-plugins">Integration of Seedlink plugins</a></li>
<li><a class="reference internal" href="#configuration-of-appname-plugins">Configuration of <cite>CAPS</cite> plugins</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="redundancy.html"
title="previous chapter">Data Redundancy</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="../apps/caps2caps.html"
title="next chapter">caps2caps</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/plugins.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,127 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Data Redundancy &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data Acquisition and Manipulation by Plugins" href="plugins.html" />
<link rel="prev" title="Server and File Testing" href="server-testing.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="plugins.html" title="Data Acquisition and Manipulation by Plugins"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="server-testing.html" title="Server and File Testing"
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="server.html" accesskey="U">CAPS Server Application</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="data-redundancy">
<h1>Data Redundancy<a class="headerlink" href="#data-redundancy" title="Permalink to this heading"></a></h1>
<p>Data redundancy between 2 <cite>CAPS</cite> servers in real-time can be achieved by
<a class="reference internal" href="../apps/caps2caps.html#caps2caps"><span class="std std-ref">caps2caps</span></a>.</p>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="server-testing.html"
title="previous chapter">Server and File Testing</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="plugins.html"
title="next chapter">Data Acquisition and Manipulation by Plugins</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/redundancy.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,250 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>References &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="CAPS Server Application" href="server.html" />
<link rel="prev" title="Glossary" href="glossary.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="server.html" title="CAPS Server Application"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="glossary.html" title="Glossary"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="references">
<h1>References<a class="headerlink" href="#references" title="Permalink to this heading"></a></h1>
<div class="docutils container" id="id1">
<div role="list" class="citation-list">
<div class="citation" id="id136" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></span>
<p>FDSNWS. International Federation of Digital Seismograph Networks. URL: <a class="reference external" href="http://www.fdsn.org/webservices/">http://www.fdsn.org/webservices/</a>.</p>
</div>
<div class="citation" id="id145" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></span>
<p>Filesystem in Userspace Kernel Module. Linux Kernel Organization. URL: <a class="reference external" href="https://www.kernel.org/doc/html/next/filesystems/fuse.html">https://www.kernel.org/doc/html/next/filesystems/fuse.html</a>.</p>
</div>
<div class="citation" id="id160" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></span>
<p>Filesystem in Userspace Library. GitHub. URL: <a class="reference external" href="https://github.com/libfuse/libfuse">https://github.com/libfuse/libfuse</a>.</p>
</div>
<div class="citation" id="id143" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>4<span class="fn-bracket">]</span></span>
<p>Filter Grammar. SeisComP filter. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/base/filter-grammar.html">https://docs.gempa.de/seiscomp/current/base/filter-grammar.html</a>.</p>
</div>
<div class="citation" id="id152" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>5<span class="fn-bracket">]</span></span>
<p>GIS. gempa Image Server. URL: <a class="reference external" href="https://docs.gempa.de/gis/current/index.html">https://docs.gempa.de/gis/current/index.html</a>.</p>
</div>
<div class="citation" id="id225" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>6<span class="fn-bracket">]</span></span>
<p>RecordStream. SeisComP interface. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/global_recordstream.html">https://docs.gempa.de/seiscomp/current/apps/global_recordstream.html</a>.</p>
</div>
<div class="citation" id="id308" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>7<span class="fn-bracket">]</span></span>
<p>SWARM. USGS. URL: <a class="reference external" href="https://volcanoes.usgs.gov/software/swarm/">https://volcanoes.usgs.gov/software/swarm/</a>.</p>
</div>
<div class="citation" id="id318" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>8<span class="fn-bracket">]</span></span>
<p>Unavco - Strain &amp; Seismic. EarthScope Consortium. URL: <a class="reference external" href="https://www.unavco.org/data/strain-seismic/strain-seismic.html">https://www.unavco.org/data/strain-seismic/strain-seismic.html</a>.</p>
</div>
<div class="citation" id="id326" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>9<span class="fn-bracket">]</span></span>
<p>Winston Wave Server. USGS. URL: <a class="reference external" href="https://github.com/usgs/winston/blob/master/src/main/resources/docs/WWS.md">https://github.com/usgs/winston/blob/master/src/main/resources/docs/WWS.md</a>.</p>
</div>
<div class="citation" id="id120" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>10<span class="fn-bracket">]</span></span>
<p>capstool. gempa plugin. URL: <a class="reference external" href="https://docs.gempa.de/caps/current/apps/capstool.html">https://docs.gempa.de/caps/current/apps/capstool.html</a>.</p>
</div>
<div class="citation" id="id139" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>11<span class="fn-bracket">]</span></span>
<p>fdsnws. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/fdsnws.html">https://docs.gempa.de/seiscomp/current/apps/fdsnws.html</a>.</p>
</div>
<div class="citation" id="id196" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>12<span class="fn-bracket">]</span></span>
<p>msrtsimul. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/msrtsimul.html">https://docs.gempa.de/seiscomp/current/apps/msrtsimul.html</a>.</p>
</div>
<div class="citation" id="id240" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>13<span class="fn-bracket">]</span></span>
<p>scardac. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scardac.html">https://docs.gempa.de/seiscomp/current/apps/scardac.html</a>.</p>
</div>
<div class="citation" id="id241" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>14<span class="fn-bracket">]</span></span>
<p>scart. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scart.html">https://docs.gempa.de/seiscomp/current/apps/scart.html</a>.</p>
</div>
<div class="citation" id="id256" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>15<span class="fn-bracket">]</span></span>
<p>scevtstreams. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scevtstreams.html">https://docs.gempa.de/seiscomp/current/apps/scevtstreams.html</a>.</p>
</div>
<div class="citation" id="id266" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>16<span class="fn-bracket">]</span></span>
<p>scmssort. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scmssort.html">https://docs.gempa.de/seiscomp/current/apps/scmssort.html</a>.</p>
</div>
<div class="citation" id="id276" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>17<span class="fn-bracket">]</span></span>
<p>scrttv. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scrttv.html">https://docs.gempa.de/seiscomp/current/apps/scrttv.html</a>.</p>
</div>
<div class="citation" id="id284" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>18<span class="fn-bracket">]</span></span>
<p>scxmldump. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/scxmldump.html">https://docs.gempa.de/seiscomp/current/apps/scxmldump.html</a>.</p>
</div>
<div class="citation" id="id288" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>19<span class="fn-bracket">]</span></span>
<p>seedlink. Real-time waveform server. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/seedlink.html">https://docs.gempa.de/seiscomp/current/apps/seedlink.html</a>.</p>
</div>
<div class="citation" id="id298" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>20<span class="fn-bracket">]</span></span>
<p>slarchive. SeisComP module. URL: <a class="reference external" href="https://docs.gempa.de/seiscomp/current/apps/slarchive.html">https://docs.gempa.de/seiscomp/current/apps/slarchive.html</a>.</p>
</div>
<div class="citation" id="id299" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>21<span class="fn-bracket">]</span></span>
<p>slinks2caps. gempa plugin. URL: <a class="reference external" href="https://docs.gempa.de/caps/current/apps/slink2caps.html#slink2caps">https://docs.gempa.de/caps/current/apps/slink2caps.html#slink2caps</a>.</p>
</div>
<div class="citation" id="id287" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>22<span class="fn-bracket">]</span></span>
<p>SEED Reference Manual. USGS, 2012. URL: <a class="reference external" href="http://www.fdsn.org/pdf/SEEDManual_V2.4.pdf">http://www.fdsn.org/pdf/SEEDManual_V2.4.pdf</a>.</p>
</div>
<div class="citation" id="id29" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>23<span class="fn-bracket">]</span></span>
<p>P. Bormann and J. Saul. A Fast, Non-saturating Magnitude Estimator for Great Earthquakes. <em>Seismol. Res. Lett.</em>, 80(5):808 816, 2009. <a class="reference external" href="https://doi.org/10.1785/gssrl.80.5.808">doi:10.1785/gssrl.80.5.808</a>.</p>
</div>
<div class="citation" id="id27" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>24<span class="fn-bracket">]</span></span>
<p>P. Bormann and K. Wylegalla. Quick estimator of the size of great earthquakes. <em>EOS</em>, 86(46):464, 2005.</p>
</div>
<div class="citation" id="id51" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>25<span class="fn-bracket">]</span></span>
<p>B. Gutenberg and C.F. Richter. Magnitude and Energy of Earthquakes. <em>Annals of Geophysics</em>, 9(1):1 15, 1956. URL: <a class="reference external" href="https://resolver.caltech.edu/CaltechAUTHORS:20140130-105324849">https://resolver.caltech.edu/CaltechAUTHORS:20140130-105324849</a>, <a class="reference external" href="https://doi.org/10.4401/ag-5590">doi:10.4401/ag-5590</a>.</p>
</div>
<div class="citation" id="id60" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>26<span class="fn-bracket">]</span></span>
<p>A. Katsumata. Comparison of Magnitudes Estimated by the Japan Meteorological Agency with Moment Magnitudes for Intermediate and Deep Earthquakes. <em>Bull. Seism. Soc.</em>, 86(3):832 842, 1996.</p>
</div>
<div class="citation" id="id81" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>27<span class="fn-bracket">]</span></span>
<p>C.F. Richter. An instrumental earthquake magnitude scale. <em>Bull. Seismol. Soc. Am.</em>, 1:1 32, 1935. URL: <a class="reference external" href="https://resolver.caltech.edu/CaltechAUTHORS:20140804-143558638">https://resolver.caltech.edu/CaltechAUTHORS:20140804-143558638</a>, <a class="reference external" href="https://doi.org/10.1785/BSSA0250010001">doi:10.1785/BSSA0250010001</a>.</p>
</div>
<div class="citation" id="id101" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>28<span class="fn-bracket">]</span></span>
<p>S. Tsuboi, K. Abe, K. Takano, and Y. Yamanaka. Rapid determination of Mw from broadband P waveforms. <em>Bull. Seismol. Soc. Am.</em>, 1995. <a class="reference external" href="https://doi.org/10.1785/BSSA0850020606">doi:10.1785/BSSA0850020606</a>.</p>
</div>
<div class="citation" id="id104" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>29<span class="fn-bracket">]</span></span>
<p>R.A. Uhrhammer and E.R. Collins. Synthesis of Wood-Anderson seismograms from broadband digital records. <em>Bull. Seismol. Soc. Am.</em>, 80(3):702716, 1990. <a class="reference external" href="https://doi.org/10.1785/BSSA0800030702">doi:10.1785/BSSA0800030702</a>.</p>
</div>
<div class="citation" id="id108" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>30<span class="fn-bracket">]</span></span>
<p>P.M. Whitmore, S. Tsuboi, B. Hirshorn, and T.J. Sokolowski. Magnitude dependent correction for Mwp. <em>Science of Tsunami Hazards</em>, 20(4):, 2002.</p>
</div>
<div class="citation" id="id292" role="doc-biblioentry">
<span class="label"><span class="fn-bracket">[</span>31<span class="fn-bracket">]</span></span>
<p>Helmholtz-Centre Potsdam - GFZ German Research Centre for Geosciences and gempa GmbH. The SeisComP seismological software package. GFZ Data Services. 2008. URL: <a class="reference external" href="https://www.seiscomp.de">https://www.seiscomp.de</a>, <a class="reference external" href="https://doi.org/10.5880/GFZ.2.4.2020.003">doi:10.5880/GFZ.2.4.2020.003</a>.</p>
</div>
</div>
</div>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="glossary.html"
title="previous chapter">Glossary</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="server.html"
title="next chapter">CAPS Server Application</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/references.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,168 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Server and File Testing &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data Redundancy" href="redundancy.html" />
<link rel="prev" title="Server Interfaces" href="interfaces.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="redundancy.html" title="Data Redundancy"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="interfaces.html" title="Server Interfaces"
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="server.html" accesskey="U">CAPS Server Application</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="server-and-file-testing">
<span id="sec-caps-server-testing"></span><h1>Server and File Testing<a class="headerlink" href="#server-and-file-testing" title="Permalink to this heading"></a></h1>
<p>Command-line options support you in testing the configuration of <em>caps</em> servers.
Read the help for a complete list or options:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>caps<span class="w"> </span>-h
</pre></div>
</div>
<p>For a general configuration test run <em>caps</em> on the command line with
<code class="docutils literal notranslate"><span class="pre">--configtest</span></code>:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>caps<span class="w"> </span>--configtest
</pre></div>
</div>
<section id="access-configuration">
<h2>Access configuration<a class="headerlink" href="#access-configuration" title="Permalink to this heading"></a></h2>
<p>For testing the access from a specfic IP run <em>caps</em> on the command line with
<code class="docutils literal notranslate"><span class="pre">--print-access</span></code>. You may also test connections secured by user name and
password:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>caps<span class="w"> </span>--print-access<span class="w"> </span>GE.*.*.*<span class="w"> </span><span class="m">127</span>.0.0.1
caps<span class="w"> </span>--print-access<span class="w"> </span>GE.APE.*.*<span class="w"> </span>--user<span class="w"> </span>gempa:gempa<span class="w"> </span><span class="m">127</span>.0.0.1
</pre></div>
</div>
</section>
<section id="server-operation">
<h2>Server operation<a class="headerlink" href="#server-operation" title="Permalink to this heading"></a></h2>
<p>You may also test the functioning of the caps server using <a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a>, the
<a class="reference internal" href="interfaces.html#sec-caps-client-interface"><span class="std std-ref">telnet interface</span></a> or the
<a class="reference internal" href="interfaces.html#sec-caps-web-interface"><span class="std std-ref">web interface</span></a>.</p>
</section>
<section id="file-testing">
<h2>File testing<a class="headerlink" href="#file-testing" title="Permalink to this heading"></a></h2>
<p>Files stored by the server in the <a class="reference internal" href="archive.html#sec-archive"><span class="std std-ref">caps archive</span></a> may be
directly tested using <a class="reference internal" href="../apps/rifftool.html#rifftool"><span class="std std-ref">rifftool</span></a> and retrieved using <a class="reference internal" href="../apps/capstool.html#capstool"><span class="std std-ref">capstool</span></a>.</p>
</section>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Server and File Testing</a><ul>
<li><a class="reference internal" href="#access-configuration">Access configuration</a></li>
<li><a class="reference internal" href="#server-operation">Server operation</a></li>
<li><a class="reference internal" href="#file-testing">File testing</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="interfaces.html"
title="previous chapter">Server Interfaces</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="redundancy.html"
title="next chapter">Data Redundancy</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/server-testing.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>CAPS Server Application &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Data Management" href="archive.html" />
<link rel="prev" title="References" href="references.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="archive.html" title="Data Management"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="references.html" title="References"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="caps-server-application">
<span id="sec-caps-server"></span><h1>CAPS Server Application<a class="headerlink" href="#caps-server-application" title="Permalink to this heading"></a></h1>
<p>The <cite>CAPS</cite> server provides data in multiple formats from different sensor
types, e.g. <a class="reference internal" href="glossary.html#term-miniSeed"><span class="xref std std-term">miniSEED</span></a>, GNSS, meteorological devices, video, etc. to
clients such as standard <cite>SeisComP</cite> <a class="reference internal" href="glossary.html#term-module"><span class="xref std std-term">modules</span></a>. The data can be
natively fed into and provided by the <cite>CAPS</cite> server in different flexible
ways.</p>
<ul class="simple">
<li><p><strong>Data acquisition:</strong> read the section on <a class="reference internal" href="plugins.html#sec-caps-plugins"><span class="std std-ref">Data Acquisition and Manipulation by Plugins</span></a>.</p></li>
<li><p><strong>Data retrieval:</strong> read the section <a class="reference internal" href="data-retrieval.html#sec-caps-retrieval"><span class="std std-ref">Access Data on a CAPS Server</span></a>.</p></li>
</ul>
<p>For setting up and running a <cite>CAPS</cite> server, consider the following sections</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="archive.html">Data Management</a><ul>
<li class="toctree-l2"><a class="reference internal" href="archive.html#file-format">File Format</a></li>
<li class="toctree-l2"><a class="reference internal" href="archive.html#optimization">Optimization</a></li>
<li class="toctree-l2"><a class="reference internal" href="archive.html#packet-types">Packet Types</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html">Execution and Automatic Startup</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html#file-system-tuning">File System Tuning</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html#security-and-access-control">Security and Access Control</a><ul>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#access-control">Access control</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#secure-sockets-layer-ssl">Secure sockets layer (SSL)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html#module-configuration">Module Configuration</a></li>
<li class="toctree-l1"><a class="reference internal" href="configuration.html#command-line-options">Command-Line Options</a><ul>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#generic">Generic</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#verbosity">Verbosity</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#server">Server</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html#test">Test</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="interfaces.html">Server Interfaces</a><ul>
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#client-interface-telnet">Client interface / telnet</a></li>
<li class="toctree-l2"><a class="reference internal" href="interfaces.html#web-interface">Web interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="server-testing.html">Server and File Testing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="server-testing.html#access-configuration">Access configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="server-testing.html#server-operation">Server operation</a></li>
<li class="toctree-l2"><a class="reference internal" href="server-testing.html#file-testing">File testing</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="redundancy.html">Data Redundancy</a></li>
</ul>
</div>
</section>
<div id="anchors-bottom"></div>
</div>
<div class="sidebar" role="navigation" aria-label="main navigation">
<div id="anchors-top"></div>
<div id="anchors" class="content">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="references.html"
title="previous chapter">References</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="archive.html"
title="next chapter">Data Management</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/server.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,202 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Upgrading &#8212; CAPS: Common Acquisition Protocol Server documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/gempa.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/gempa.css?v=c960eebf" />
<link rel="stylesheet" type="text/css" href="../_static/graphviz.css?v=eafc0fe6" />
<script type="text/javascript" src="../_static/gempa.js"></script>
<script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js?v=b3ba4146"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=4825356b"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Glossary" href="glossary.html" />
<link rel="prev" title="Introduction" href="introduction.html" />
</head>
<body>
<div class="header">
<div class="container">
<img class="background" src="../_static/icon.png"/>
<div class="content">
<span class="title">CAPS: Common Acquisition Protocol Server </span>
<span class="version">2025.254#f0c77b29e</span></h1>
</div>
</div>
</div>
<div class="nav">
<div class="container">
<div class="content"><a class="pull-right" id="sidebar-toggle">TOC</a>
<div class="related" role="navigation" aria-label="related navigation">
<ul>
<li class="right">
<a href="../genindex.html" title="General Index"
accesskey="I">
index
</a>
</li>
<li class="right">
<a href="glossary.html" title="Glossary"
accesskey="N">
next
</a>
</li>
<li class="right">
<a href="introduction.html" title="Introduction"
accesskey="P">
previous
</a>
</li>
<li class="nav-item nav-item-0">
<a href="../index.html">Home</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="container">
<div class="fitted content" id="anchors-container">
<div class="body" role="main">
<section id="upgrading">
<span id="sec-caps-upgrading"></span><h1>Upgrading<a class="headerlink" href="#upgrading" title="Permalink to this heading"></a></h1>
<section id="new-file-format">
<h2>New file format<a class="headerlink" href="#new-file-format" title="Permalink to this heading"></a></h2>
<p>Starting from version 2021.048 CAPS introduces a new file storage format.
Actually the files are still compatible and chunk based but two new chunk types
were added. The upgrade itself should run smoothly without interruption but due
to the new file format all files must be converted before they can be read.
CAPS will do that on-the-fly whenever a file is opened for reading or writing.</p>
<p>That can cause performance drops until all files have been converted. But it
should not cause any outages.</p>
</section>
<section id="rationale">
<h2>Rationale<a class="headerlink" href="#rationale" title="Permalink to this heading"></a></h2>
<p>The time to store an out-of-order record in CAPS increased the more records
were stored already. This was caused by a linear search of the insert position.
The more records were stored the more records had to be checked and the more
file content had to be paged in system memory which is a slow operation.
In addition a second index file had to be maintained which requires an additional
open file descriptor per data file. As we also looked for way to reduce
disc fragmentation and to allow file size pre-allocation on any operating system
we decided to redesign the way how individual records are stored within a data
file. What we wanted was:</p>
<ul class="simple">
<li><p>Fast insert operations</p></li>
<li><p>Fast data retrieval</p></li>
<li><p>Portable file size pre-allocations</p></li>
<li><p>Efficient OS memory paging</p></li>
</ul>
<p>CAPS now implements a B+tree index per data file. No additional index file is
required. The index is maintained as additional chunks in the data file itself.
Furthermore CAPS maintains a meta chunk at the end of the file with information
about the logical and pyhsical file size, the index chunks and so on. If that
chunk is not available or is not valid then the data file will be re-scanned
and converted. This is what actually happens after an upgrade.</p>
<p>As a consequence, time window requests will be much faster with respect to
CPU time. Also file accesses are less frequent and reading file content overhead
while extracting arbitrary time windows is less than before.</p>
<p>As the time range stored in the data file is now part of the meta data a full
re-scan is not necessary when restarting CAPS without its archive log. When
dealing with many channels it will speed up re-scanning an archive a lot.</p>
</section>
<section id="manual-archive-conversion">
<h2>Manual archive conversion<a class="headerlink" href="#manual-archive-conversion" title="Permalink to this heading"></a></h2>
<p>If a controlled conversion of the archive files is desired then the following
procedure can be applied:</p>
<ol class="arabic">
<li><p>Stop caps</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>seiscomp<span class="w"> </span>stop<span class="w"> </span>caps
</pre></div>
</div>
</li>
<li><p>Enter the configured archve directory</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>seiscomp/var/lib/caps/archive
</pre></div>
</div>
</li>
<li><p>Check all files and trigger a conversion</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>$<span class="w"> </span>find<span class="w"> </span>-name<span class="w"> </span>*.data<span class="w"> </span>-exec<span class="w"> </span>rifftest<span class="w"> </span><span class="o">{}</span><span class="w"> </span>check<span class="w"> </span><span class="se">\;</span>
</pre></div>
</div>
</li>
<li><p>Start caps</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>caps
</pre></div>
</div>
</li>
</ol>
<p>Depending on the size of the archive step 3 can take some time.</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="#">Upgrading</a><ul>
<li><a class="reference internal" href="#new-file-format">New file format</a></li>
<li><a class="reference internal" href="#rationale">Rationale</a></li>
<li><a class="reference internal" href="#manual-archive-conversion">Manual archive conversion</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="introduction.html"
title="previous chapter">Introduction</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="glossary.html"
title="next chapter">Glossary</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/base/upgrading.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="footer">
<div class="container">
<div class="content">
Release <b></b> version <b>2025.254#f0c77b29e</b>
<div class="copyright">
&copy; Copyright <a href="https://www.gempa.de">2013, gempa GmbH.</a>
</div>
</div>
</div>
</div>
</body>
</html>