.. highlight:: rst

.. _scqcv:

#####
scqcv
#####

**Quality control view.**


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

scqcv provides both, a brief overview of the seismometer network status and a
detailed view of specific stream parameters. Quality Control (QC) parameters,
determined by :ref:`scqc` and sent via messaging system, are received and displayed.

scqcv allows to interactively disable or to enable streams for automatic data processing
based on the observed QC reports.


Detailed QC reports per station
===============================

:ref:`fig-tab-view` shows the tabular view of the QC report messages.
Each QC parameter is shown in a column. The default sorting by stream code can
be changed by pressing a header field of a parameter. A widget displaying the
currently received waveform data is shown by pressing the cell with the streamID.
Positioning the mouse over the parameter cell a ToolTip indicates
more detailed information on the selected parameter. Typing a regular
expression in the "StreamIDFilter" text entry field results in a stream code
filter, only displaying the matching stream codes with QC parameter. Green
colored fields indicate that the QC parameter values lie within the configured
"good" interval. Red colors indicate that the QC parameters lie outside the
tolerated value interval -- this stream might have an issue. All :ref:`colors are
configurable <scqcv-sec-setup>`.
Click on the table header to sort by the selected value or drag the columns to
another position. The order of the columns is controlled by :confval:`parameter`.
By clicking on a streamID, the past waveforms are displayed at length configured
by :confval:`streamWidget.length`.

To **disable / enable** a station click on the respective station field in the
*enabled* column.

.. _fig-tab-view:

.. figure:: media/scqcv/Tabulator_view_of_scqcv.png
   :width: 16cm
   :align: center

   Tabulator view of scqcv


Station overview
================

:ref:`fig-status-overview` shows the status overview grouped by network code.
The status is color coded and the color is derived from a
:ref:`score <scqcv-sec-scoring>` per station.

The more the color usually varies from green to dark red, the worse the waveform data might be.
A dark red color indicates a stream with low quality, e.g. high latency.
Light to darker red
represents a badness sum of related QC parameters. Colors are subject to
changes in near future and are configurable. Pressing a stream code item opens a
single line table
with detailed information of the selected stream. Again it is possible to open
a real time waveform widget by pressing the leading header field indicating
the stream code.

Typing a regular expression in the bottom text entry field
results in a stream code filter, only displaying the matching stream codes.
Disabled stations are crossed out. Click on a stream field to view the detailed
QC parameters where stations can also be enabled / disabled.

.. _fig-status-overview:

.. figure:: media/scqcv/Status_overview_of_scqcv.png
   :width: 16cm
   :align: center

   Status overview of scqcv with a stream widget

The compact status overview allows a quick impression of the present status of
all received streams (:ref:`fig-compact-status`). Functionality is equal to the
status overview grouped by network.

Switch between compact view and
network seperated view by clicking the checkbox in the bottom line.

.. _fig-compact-status:

.. figure:: media/scqcv/Compact_status_overview_of_scqcv.png
   :width: 16cm
   :align: center

   Compact status overview of scqcv


.. _scqcv-sec-scoring:

Scoring
-------

The score is formed per station as the sum of the counts for the parameters defined,
e.g., by :confval:`score.default`. The counts are defined per QC parameter by the
`count` parameter of the applicable range, e.g. :confval:`timing.range.$name.count`.


.. _scqcv-sec-setup:

Setup
=====

While some important parameters can be configured using :ref:`scconfig` the configuration
of others is available by examples in the extensive default configuration of scqcv in
*@DEFAULTCONFIGDIR/scqcv.cfg@*

Apply your setup to scqcv.cfg in @SYSTEMCONFIGDIR@ or in @CONFIGDIR@.
If the parameters are not configured, the defaults configuration will be considered.


Message groups and QC parameters
--------------------------------

Select the desired parameters from the list below. "#" disables a parameter.

.. code-block:: sh

   connection.primaryGroup = QC
   connection.subscription = QC, CONFIG

   parameter = 	"latency           : latency",\
   				"delay             : delay",\
   				"timing quality    : timing",\
   				"offset            : offset",\
   				"rms               : rms",\
   				"gaps count        : gap",\
   				"overlaps count    : overlap",\
   				"availability      : availability",\
   				"spikes count      : spike"
   #				"gaps interval     : gapInterval",\
   #				"gaps length       : gapLength",\
   #				"spikes interval   : spikeInterval",\
   #				"spikes amplitude  : spikeAmplitude"
   #				"overlaps interval : overlapInterval",\
   #				"overlaps length   : overlapLength"


Stream selection
----------------

By default all streams configured by the global bindings will be displayed. To limit
the streams or to use a specific list configure :confval:`streams.codes` and
:confval:`streams.cumulative`.

Example configuration or the AM network:

.. code-block:: sh

   # List of channels to display. By default the global configuration is used
   # which can be overwritten with this parameter.
   streams.codes = AM.*.*.*

   # Add new streams from WfQ automatically to the list of stream configured in
   # streams.codes.
   streams.cumulative = false


Properties of QC parameters
---------------------------

Configure intervals, values and format and background colors for QC parameters to
display in :file:`scqcv.cfg`.

In the configuration the QC parameter is referred to by its unique ConfigName. You may
generate structures for each parameter starting with its ConfigName. The structures
contain all configuration parameters. Example for the QC parameter *timing quality*
referred to as *timing*:

.. code-block:: sh

   timing.ranges = sane, inter, bad
   timing.format = int
   timing.expire = 600
   timing.useAbsoluteValue = false

   timing.range.sane = 90.0, 100.0
   timing.range.inter = 50.0, 90.0

   timing.range.bad.count = -100
   timing.range.bad.color = darkred

   timing.range.inter.count = -1
   timing.range.inter.color = yellow

   timing.range.sane.count = 0
   timing.range.sane.color = green


The mapping of parameter names to ConfigName is configurable by
:confval:`parameter` but the default mapping is available in
:file:`@DEFAULTCONFIGDIR@/scqcv.cfg`.

.. csv-table:: Default mapping of parameter names.

   "Parameter name","ConfigName"
   "latency","latency"
   "delay","delay"
   "timing quality","timing"
   "offset","offset"
   "rms","rms"
   "gaps count","gap"
   "overlaps count","overlap"
   "availability","availability"
   "spikes count","spike"
   "gaps interval","gapInterval"
   "gaps length","gapLength"
   "spikes interval","spikeInterval"
   "spikes amplitude","spikeAmplitude"
   "overlaps interval","overlapInterval"
   "overlaps length","overlapLength"



.. _scqcv_configuration:

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

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

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



.. confval:: parameter

   Type: *list:string*

   List of QC parameters to be displayed in the details table.
   Read the scqc documentation for a list of available QC parameters
   and the default configuration of scqcv
   \$SEISCOMP_ROOT\/etc\/defaults\/scqcv.cfg for more examples.
   
   Format: \"Parameter name : ConfigName\"
   
   Example: \"delay : delay\",\"spikes count : spike\",\"spikes amplitude :
   spikeAmplitude\".
   Refer to the parameters by their ConfigName to configure the
   attributes.


.. confval:: streams.codes

   Type: *list:string*

   The list of channel codes to be displayed. List items may
   contain wildcards and are separated by comma.
   The list is	intersected with all channels configured in
   inventory.
   
   Examples:
   
   default : display all streams configured by global bindings
   
   default, PF.BON.00.HH? : display default and all HH streams
   of PF.BON.00


.. confval:: streams.cumulative

   Default: ``false``

   Type: *boolean*

   Add new streams automatically to the streams configured in
   streams.codes when waveform QC parameters are provided for
   these streams.


.. note::
   **streamWidget.\***
   *Control the stream widget which opens when clicking on a stream*
   *name in the detailed table.*



.. confval:: streamWidget.length

   Default: ``600``

   Type: *int*

   Unit: *s*

   Length of data to be displayed.


.. note::
   **score.\***
   *Parameters controlling the overall QC score of a station.*
   *The score is computed from the valid count parameter of the*
   *defined ranges. It is vizualized in the QcOverview.*



.. confval:: score.default.ranges

   Type: *list:string*

   Ranges to be considered for forming the score. Set the
   count parameter om the respective range section for
   controlling the contribution of this range. The
   range parameters control the coloring.


.. note::
   **default.\***
   *Default configuration for all QC parameters. The configuration*
   *can be extended to each QC parameter by placing "default" with*
   *the parameter name in scqcv.cfg. Examples for some QC parameters*
   *are given below.*
   **
   *Read the scqc documentation for a list of available QC*
   *parameters and the default configuration of scqcv*
   *$SEISCOMP_ROOT/etc/defaults/scqcv.cfg for more examples.*



.. confval:: default.ranges

   Default: ``bad, sane``

   Type: *list:string*

   Names of range profile to be considered.
   The range profiles define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: default.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: default.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: default.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: default.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **default.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: default.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: default.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: default.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **default.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      default.range.a.value1 = ...
      default.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      default.range.c.value1 = ...


.. confval:: default.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: default.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **availability.\***
   *Parameters controlling the display of the QC parameter*
   *'availability'*



.. confval:: availability.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: availability.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: availability.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: availability.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: availability.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **availability.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: availability.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: availability.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: availability.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **availability.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      availability.range.a.value1 = ...
      availability.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      availability.range.c.value1 = ...


.. confval:: availability.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: availability.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **delay.\***
   *Parameters controlling the display of the QC parameter 'delay'*



.. confval:: delay.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: delay.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: delay.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: delay.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: delay.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **delay.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: delay.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: delay.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: delay.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **delay.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      delay.range.a.value1 = ...
      delay.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      delay.range.c.value1 = ...


.. confval:: delay.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: delay.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **gap.\***
   *Parameters controlling the display of the QC parameter*
   *'gaps count'.*



.. confval:: gap.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: gap.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: gap.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: gap.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: gap.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **gap.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: gap.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: gap.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: gap.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **gap.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      gap.range.a.value1 = ...
      gap.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      gap.range.c.value1 = ...


.. confval:: gap.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: gap.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **gapLength.\***
   *Parameters controlling the display of the QC parameter*
   *'gaps length'*



.. confval:: gapLength.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: gapLength.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: gapLength.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: gapLength.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: gapLength.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **gapLength.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: gapLength.range.sane

   Type: *list:double*

   Value interval for range sane.


.. confval:: gapLength.range.inter

   Type: *list:double*

   Value interval for range inter.


.. confval:: gapLength.range.bad

   Type: *list:double*

   Value interval for range bad.


.. note::

   **gapLength.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      gapLength.range.a.value1 = ...
      gapLength.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      gapLength.range.c.value1 = ...


.. confval:: gapLength.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: gapLength.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **gapInterval.\***
   *Parameters controlling the display of the QC parameter 'gaps interval'*



.. confval:: gapInterval.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: gapInterval.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: gapInterval.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in scqcv
   if no update is received. Setting to 0 means, show value until
   updated.


.. confval:: gapInterval.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: gapInterval.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **gapInterval.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: gapInterval.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: gapInterval.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: gapInterval.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **gapInterval.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      gapInterval.range.a.value1 = ...
      gapInterval.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      gapInterval.range.c.value1 = ...


.. confval:: gapInterval.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: gapInterval.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **latency.\***
   *Parameters controlling the display of the QC parameter 'latency'*



.. confval:: latency.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: latency.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: latency.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in scqcv
   if no update is received. Setting to 0 means, show value until
   updated.


.. confval:: latency.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: latency.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **latency.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: latency.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: latency.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: latency.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **latency.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      latency.range.a.value1 = ...
      latency.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      latency.range.c.value1 = ...


.. confval:: latency.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: latency.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **offset.\***
   *Parameters controlling the display of the QC parameter 'offset'*



.. confval:: offset.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: offset.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.
   
   Displays raw values if unset.


.. confval:: offset.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in scqcv
   if no update is received. Setting to 0 means, show value until
   updated.


.. confval:: offset.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: offset.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **offset.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: offset.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: offset.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: offset.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **offset.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      offset.range.a.value1 = ...
      offset.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      offset.range.c.value1 = ...


.. confval:: offset.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: offset.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **overlap.\***
   *Parameters controlling the display of the QC parameter 'overlaps count'*



.. confval:: overlap.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: overlap.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: overlap.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in scqcv
   if no update is received. Setting to 0 means, show value until
   updated.


.. confval:: overlap.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: overlap.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **overlap.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: overlap.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: overlap.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: overlap.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **overlap.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      overlap.range.a.value1 = ...
      overlap.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      overlap.range.c.value1 = ...


.. confval:: overlap.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: overlap.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **overlapInterval.\***
   *Parameters controlling the display of the QC parameter 'overlaps interval'*



.. confval:: overlapInterval.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: overlapInterval.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: overlapInterval.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: overlapInterval.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: overlapInterval.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **overlapInterval.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: overlapInterval.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: overlapInterval.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: overlapInterval.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **overlapInterval.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      overlapInterval.range.a.value1 = ...
      overlapInterval.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      overlapInterval.range.c.value1 = ...


.. confval:: overlapInterval.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: overlapInterval.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **overlapLength.\***
   *Parameters controlling the display of the QC parameter*
   *'overlaps length'*



.. confval:: overlapLength.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: overlapLength.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: overlapLength.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: overlapLength.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: overlapLength.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **overlapLength.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: overlapLength.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: overlapLength.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: overlapLength.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **overlapLength.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      overlapLength.range.a.value1 = ...
      overlapLength.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      overlapLength.range.c.value1 = ...


.. confval:: overlapLength.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: overlapLength.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **rms.\***
   *Parameters controlling the display of the QC parameter 'rms'*



.. confval:: rms.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: rms.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: rms.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: rms.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: rms.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **rms.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: rms.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: rms.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: rms.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **rms.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      rms.range.a.value1 = ...
      rms.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      rms.range.c.value1 = ...


.. confval:: rms.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: rms.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **spike.\***
   *Parameters controlling the display of the QC parameter*
   *'spikes count'*



.. confval:: spike.ranges

   Type: *list:string*

   Names of range profile to be considered.
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: spike.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: spike.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: spike.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: spike.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **spike.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: spike.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: spike.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: spike.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **spike.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      spike.range.a.value1 = ...
      spike.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      spike.range.c.value1 = ...


.. confval:: spike.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: spike.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **spikeAmplitude.\***
   *Parameters controlling the display of the QC parameter*
   *'spikes amplitude'.*



.. confval:: spikeAmplitude.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: spikeAmplitude.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: spikeAmplitude.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: spikeAmplitude.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: spikeAmplitude.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **spikeAmplitude.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: spikeAmplitude.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: spikeAmplitude.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: spikeAmplitude.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **spikeAmplitude.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      spikeAmplitude.range.a.value1 = ...
      spikeAmplitude.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      spikeAmplitude.range.c.value1 = ...


.. confval:: spikeAmplitude.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: spikeAmplitude.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **spikeInterval.\***
   *Parameters controlling the display of the QC parameter*
   *'spikes interval'.*



.. confval:: spikeInterval.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: spikeInterval.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: spikeInterval.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: spikeInterval.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: spikeInterval.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **spikeInterval.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: spikeInterval.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: spikeInterval.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: spikeInterval.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **spikeInterval.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      spikeInterval.range.a.value1 = ...
      spikeInterval.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      spikeInterval.range.c.value1 = ...


.. confval:: spikeInterval.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: spikeInterval.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **timing.\***
   *Parameters controlling the display of the QC parameter*
   *'timing quality'.*



.. confval:: timing.ranges

   Type: *list:string*

   Names of range profile to be considered
   The range profiles s define the background color table
   fields depending on the field value. Add the default
   ranges for which different intervals and the color are
   configured.


.. confval:: timing.format

   Type: *string*

   Values are: int, float, percent, timeSpan
   
   Displays raw values if unset.


.. confval:: timing.expire

   Type: *double*

   Unit: *s*

   Default time in seconds, how long a value is displayed in
   scqcv if no update is received. Setting to 0 means, show
   value until updated.


.. confval:: timing.color

   Type: *string*

   A color defined by the color definitions below.


.. confval:: timing.useAbsoluteValue

   Default: ``false``

   Type: *boolean*

   Activate to display absolute values \(modulus\).


.. note::
   **timing.range.\***
   *Range parameters overriding parameters from the general*
   *range section below. Unset values or range profiles*
   *undefined here will be inherited from the general range*
   *section.*



.. confval:: timing.range.sane

   Type: *list:double*

   Value interval for range sane


.. confval:: timing.range.inter

   Type: *list:double*

   Value interval for range inter


.. confval:: timing.range.bad

   Type: *list:double*

   Value interval for range bad


.. note::

   **timing.range.$name.\***
   $name is a placeholder for the name to be used and needs to be added to :confval:`ranges` to become active.

   .. code-block:: sh

      ranges = a,b
      timing.range.a.value1 = ...
      timing.range.b.value1 = ...
      # c is not active because it has not been added
      # to the list of ranges
      timing.range.c.value1 = ...


.. confval:: timing.range.$name.count

   Default: ``0``

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered.


.. confval:: timing.range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **range.\***
   *Range parameters defining default values which can be overridden*
   *per QC parameter in the section of this parameter.*
   *More ranges can be added by adjusting scqcv.cfg e.g. in*
   *@SYSTEMCONFIGDIR@/.*



.. confval:: range.sane

   Type: *list:double*

   Value interval for range sane.


.. confval:: range.inter

   Type: *list:double*

   Value interval for range inter.


.. confval:: range.bad

   Type: *list:double*

   Value interval for range bad.


.. confval:: range.above

   Type: *list:double*

   Value interval for range profile above.


.. confval:: range.below

   Type: *list:double*

   Value interval for range profile below.


.. confval:: range.delay

   Type: *list:double*

   Value interval for range profile delay.


.. confval:: range.latency

   Type: *list:double*

   Value interval for range profile latency.


.. confval:: range.timing

   Type: *list:double*

   Value interval for range profile timing.


.. confval:: range.unset

   Type: *list:double*

   Value interval for range profile unset.


.. confval:: range.r01

   Type: *list:double*

   Value interval for range profile r01.


.. confval:: range.r02

   Type: *list:double*

   Value interval for range profile r02.


.. confval:: range.r03

   Type: *list:double*

   Value interval for range profile r03.


.. confval:: range.r04

   Type: *list:double*

   Value interval for range profile r04.


.. confval:: range.r05

   Type: *list:double*

   Value interval for range profile r05.


.. confval:: range.r06

   Type: *list:double*

   Value interval for range profile r06.


.. confval:: range.r07

   Type: *list:double*

   Value interval for range profile r07.


.. confval:: range.r08

   Type: *list:double*

   Value interval for range profile r08.


.. confval:: range.r09

   Type: *list:double*

   Value interval for range profile r09.


.. confval:: range.r10

   Type: *list:double*

   Value interval for range profile r10.


.. note::

   **range.$name.\***
   $name is a placeholder for the name to be used.


.. confval:: range.$name.count

   Type: *double*

   Contribution of this range for computing the score.
   The range must be considered. The count is also set in
   [parameter].range.[range profile].count .


.. confval:: range.$name.color

   Type: *string*

   A color defined by the color definitions below.


.. note::
   **color.\***
   *Color definitions. More colors can be added by adjusting*
   *scqcv.cfg e.g. in @SYSTEMCONFIGDIR@/.*



.. confval:: color.red

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.yellow

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.green

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.blue

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.grey

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.grey1

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.darkred

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.yellow

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red01

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red02

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red03

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red04

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red05

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red06

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red07

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red08

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red09

   Type: *list:string*

   Color names or R, G, B, alpha values


.. confval:: color.red10

   Type: *list:string*

   Color names or R, G, B, alpha values


.. note::
   **format.\***
   *Format describtions for showing values. The format parameter*
   *is defined seprately for earch parameter but the actual format*
   *can be adjusted here.*



.. confval:: format.float

   Default: ``2``

   Type: *int*

   Number of decimal values shown for parameters of format float.



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

.. program:: scqcv

:program:`scqcv [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:: --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.

.. option:: --print-component arg

   For each log entry print the component right after the
   log level. By default the component output is enabled
   for file output but disabled for console output.

.. option:: --trace

   Execute in trace mode.
   Equivalent to \-\-verbosity\=4 \-\-console\=1 \-\-print\-component\=1
   \-\-print\-context\=1 .


Messaging
---------

.. option:: -u, --user arg

   Overrides configuration parameter :confval:`connection.username`.


.. option:: -H, --host arg

   Overrides configuration parameter :confval:`connection.server`.


.. option:: -t, --timeout arg

   Overrides configuration parameter :confval:`connection.timeout`.


.. option:: -g, --primary-group arg

   Overrides configuration parameter :confval:`connection.primaryGroup`.


.. option:: -S, --subscribe-group arg

   A group to subscribe to.
   This option can be given more than once.

.. option:: --content-type arg

   Overrides configuration parameter :confval:`connection.contentType`.

   Default: ``binary``


.. option:: --start-stop-msg arg

   Default: ``0``

   Set sending of a start and a stop message.


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


Records
-------

.. option:: --record-driver-list

   List all supported record stream drivers.

.. option:: -I, --record-url arg

   The RecordStream source URL. Format:
   [service:\/\/]location[#type].
   \"service\" is the name of the RecordStream driver
   which can be queried with \"\-\-record\-driver\-list\".
   If \"service\" is not given, \"file:\/\/\" is
   used and simply the name of a miniSEED file can be given.

.. option:: --record-file arg

   Specify a file as record source.

.. option:: --record-type arg

   Specify a type for the records being read.


Cities
------

.. option:: --city-xml arg

   Type: *file*

   Values: ``*.xml``

   The path to the cities XML file. This overrides the default
   paths. Compare with the global parameter \"citiesXML\".


User interface
--------------

.. option:: -F, --full-screen

   Start the application filling the entire screen.
   This only works with GUI applications.

.. option:: -N, --non-interactive

   Use non\-interactive presentation mode. This only works with
   GUI applications.

