.. highlight:: rst

.. _scevtstreams:

############
scevtstreams
############

**Extract stream information with time windows from picks of an event.**


Description
===========

scevtstreams reads all picks of an event and determines the time window between
the first pick and the last pick. In addition a symmetric or an asymmetric time
margin is added to this
time window. It writes the streams that are picked including the determined
time window for the event to stdout. This tool gives appropriate input
information for :ref:`scart`, :ref:`fdsnws` and :cite:t:`capstool` for
:cite:t:`caps` server (Common Acquisition Protocol Server by gempa GmbH) to dump
waveforms from archives based on event data.


Output Format
=============

The generated list contains start and end time as well as stream information.

Generic:

.. code-block:: properties

   starttime;endtime;stream

Example:

.. code-block:: properties

   2019-07-17 02:00:00;2019-07-17 02:10:00;GR.CLL..BHZ


Examples
========

#. Get the time windows for an event in the database:

   .. code-block:: sh

      scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp

#. Get the asymmetric time windows for an event in an XML file. The time window
   starts 120 s before the first pick and ends 500 s after the last pick:

   .. code-block:: sh

      scevtstreams -E gfz2012abcd -i event.xml -m 120,500

#. Create a playback of an event with a time window of 5 minutes data and
   sort the records by end time:

   .. code-block:: sh

      scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp -m 300 |\
      scart -dsvE --list - ~/seiscomp/acquisition/archive > gfz2012abcd-sorted.mseed

#. Download waveforms from Arclink and import into local archive. Include
   all stations from the contributing networks:

   .. code-block:: sh

      scevtstreams -E gfz2012abcd -d mysql://sysop:sysop@localhost/seiscomp -m 300 -R --all-stations |\
      scart --list - ./my-archive

#. Create lists compatible with :ref:`fdsnws` or `caps <https://docs.gempa.de/caps/current/apps/capstool.html>`_: ::

      scevtstreams -E gfz2012abcd -i event.xml -m 120,500 --fdsnws
      scevtstreams -E gfz2012abcd -i event.xml -m 120,500 --caps


.. _scevtstreams_configuration:

Module Configuration
====================

| :file:`etc/defaults/global.cfg`
| :file:`etc/defaults/scevtstreams.cfg`
| :file:`etc/global.cfg`
| :file:`etc/scevtstreams.cfg`
| :file:`~/.seiscomp/global.cfg`
| :file:`~/.seiscomp/scevtstreams.cfg`

scevtstreams inherits :ref:`global options<global-configuration>`.




Command-Line Options
====================

.. program:: scevtstreams

:program:`scevtstreams [options]`


Generic
-------

.. option:: -h, --help

   Show help message.

.. option:: -V, --version

   Show version information.

.. option:: --config-file arg

   Use alternative configuration file. When this option is
   used the loading of all stages is disabled. Only the
   given configuration file is parsed and used. To use
   another name for the configuration create a symbolic
   link of the application or copy it. Example:
   scautopick \-> scautopick2.

.. option:: --plugins arg

   Load given plugins.

.. option:: -D, --daemon

   Run as daemon. This means the application will fork itself
   and doesn't need to be started with \&.

.. option:: --auto-shutdown arg

   Enable\/disable self\-shutdown because a master module shutdown.
   This only works when messaging is enabled and the master
   module sends a shutdown message \(enabled with \-\-start\-stop\-msg
   for the master module\).

.. option:: --shutdown-master-module arg

   Set the name of the master\-module used for auto\-shutdown.
   This is the application name of the module actually
   started. If symlinks are used, then it is the name of
   the symlinked application.

.. option:: --shutdown-master-username arg

   Set the name of the master\-username of the messaging
   used for auto\-shutdown. If \"shutdown\-master\-module\" is
   given as well, this parameter is ignored.


Verbosity
---------

.. option:: --verbosity arg

   Verbosity level [0..4]. 0:quiet, 1:error, 2:warning, 3:info,
   4:debug.

.. option:: -v, --v

   Increase verbosity level \(may be repeated, eg. \-vv\).

.. option:: -q, --quiet

   Quiet mode: no logging output.

.. option:: --component arg

   Limit the logging to a certain component. This option can
   be given more than once.

.. option:: -s, --syslog

   Use syslog logging backend. The output usually goes to
   \/var\/lib\/messages.

.. option:: -l, --lockfile arg

   Path to lock file.

.. option:: --console arg

   Send log output to stdout.

.. option:: --debug

   Execute in debug mode.
   Equivalent to \-\-verbosity\=4 \-\-console\=1 .

.. option:: --log-file arg

   Use alternative log file.


Database
--------

.. option:: --db-driver-list

   List all supported database drivers.

.. option:: -d, --database arg

   The database connection string, format:
   service:\/\/user:pwd\@host\/database.
   \"service\" is the name of the database driver which
   can be queried with \"\-\-db\-driver\-list\".

.. option:: --config-module arg

   The config module to use.

.. option:: --inventory-db arg

   Load the inventory from the given database or file, format:
   [service:\/\/]location .

.. option:: --db-disable

   Do not use the database at all


Input
-----

.. option:: -i, --input arg

   Input XML file name. Reads event from the XML file instead of
   database. Use '\-' to read from stdin.

.. option:: -f, --format arg

   Input format to use \(xml [default], zxml \(zipped xml\),
   binary\). Only relevant with \-i.


Dump
----

.. option:: -E, --event arg

   The ID of the event to consider.

.. option:: --net-sta arg

   Filter read picks by network code or network and station
   code. Format: NET or NET.STA

.. option:: --nslc arg

   Stream list file to be used for filtering read picks by
   stream code. '\-\-net\-sta' will be ignored. One line per
   stream. Line format: NET.STA.LOC.CHA.


Output
------

.. option:: -m, --margin arg

   Time margin around the picked time window, default is 300.
   Added before the first and after the last pick,
   respectively. Use 2 comma\-separted values \(before,after\)
   for asymmetric margins. Example: 120,300.

.. option:: -S, --streams arg

   Comma separated list of streams per station to add.
   Example: BH,SH,HH.

.. option:: -C, --all-components arg

   Specify whether to use all components \(1\) or just the
   picked ones \(0\). Default: 1.

.. option:: -L, --all-locations arg

   Specify whether to use all location codes \(1\) or just
   the picked ones \(0\). Default: 1.

.. option:: --all-stations

   Dump all stations from the same network. If unused, just
   stations with picks are dumped.

.. option:: --all-networks

   Dump all networks. If unused, just networks with picks are
   dumped. This option implies \-\-all\-stations, \-\-all\-locations,
   \-\-all\-streams, \-\-all\-components and will only provide the
   time window.

.. option:: -R, --resolve-wildcards flag

   If all components are used, use inventory to resolve stream
   components instead of using '?' \(important when Arclink
   should be used\).

.. option:: --caps

   Dump in capstool format \(Common Acquisition Protocol Server
   by gempa GmbH\).

.. option:: --fdsnws flag

   Dump in FDSN dataselect webservice POST format.

