.. highlight:: rst

.. _scbulletin:

##########
scbulletin
##########

**Create bulletins from SCML.**


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

scbulletin transforms the parameters of events or origins either to various formats.
Currently supported output formats are:

* autoloc1,
* autoloc3,
* fdsnws,
* kml.


Input Modes
===========

Two modes of parameter input are possible:

#. Dump mode: Fetch all necessary information from database directly. Either
   choose one or more event or origin IDs. The database connection must be given
   with :option:`-o`.
#. Input mode: Provide all event and origin information in XML (:term:`SCML`)
   format from file or stdin. You may filter further by event or origin ID.

If event IDs are given, the preferred origin will be derived and used for printing
information.

.. hint::

   Events and origins are referred to by their public IDs.  They can be provided
   by :ref:`scevtls` and :ref:`scorgls`, respectively, from graphical tools like
   :ref:`scolv` or by database queries supported by :ref:`scquery`. XML files
   can be generated by :ref:`scxmldump` or from other formats by :ref:`sccnv`.


Output Modes
============

The generated content is written to stdout or, with option :option:`-o` to a
file. Different output formats are available by command-line options:

* ``-1`` for **autoloc1**: Print one bulletin per event.
* ``-3`` for **autoloc3**: Print one bulletin per event.
* ``-3 -x`` for **extended autoloc3**.
* ``-4`` or ``--fdsnws`` for FDSNWS event text: Print one line per event. Useful
  for generating event catalogs. This option offers an alternative to generating
  event catalogs by :ref:`fdsnws-event <sec-event>`.
* ``-5`` or ``--kml`` for KML/GIS file format. The output can be viewed, e.g.,
  in *Google Earth*.

By default, the output precision of times or coordinates is optimized for events
at teleseismic or regional distances. Use the option :option:`-e` for
**enhanced** output at higher precision: All times  and distances are in units
of milliseconds and meters, respectively.


Examples
========

#. Create a bulletin from one or multiple event(s) in database

   .. code-block:: sh

      scbulletin -d mysql://sysop:sysop@localhost/seiscomp -E gfz2012abcd
      scbulletin -d mysql://sysop:sysop@localhost/seiscomp -E gfz2012abcd,gfz2022abcd

#. Convert XML file to bulletin

   .. code-block:: sh

      scbulletin -i gfz2012abcd.xml

   .. code-block:: sh

      cat gfz2012abcd.xml | scbulletin

   .. code-block:: sh

      scbulletin < gfz2012abcd.xml

#. Convert XML file to bulletin but filter by event ID(s)

   .. code-block:: sh

      scbulletin -i gfz2012abcd.xml -E gempa2022abcd
      scbulletin -i gfz2012abcd.xml -E gempa2022abcd,gfz2022abcd

.. note::

   When considering a single event XML file containing many events, the
   bulletins of all events will be generated unless ``--first-only`` is used.


.. _scbulletin_configuration:

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

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

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




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

.. program:: scbulletin

:program:`scbulletin [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:: -f, --format arg

   Input format to use \(xml [default], zxml \(zipped xml\), binary\).

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

   The input file. Default is stdin.


Dump
----

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

   ID of event\(s\) that is read from database and transformed into
   a bulletin. Separate multiple IDs by comma.\"

.. option:: -O, --origin arg

   ID of origin\(s\) that is read from database and transformed into
   a bulletin. Separate multiple IDs by comma.

.. option:: --event-agency-id

   Use the agency ID of the event instead of the preferred origin.

.. option:: --first-only

   Convert only the first event\/origin to bulletin. Otherwise
   all events or origins will be converted to single bulletins
   which will be concatenated.

.. option:: -p, --polarities

   Dump onset polarities.

.. option:: -w, --weight arg

   Weight threshold for printed and counted picks.

.. option:: -x, --extra

   Use a specially detailed autoloc3 format. This options works only
   in combination with the autoloc3\-flag.


Output
------

.. option:: -1, --autoloc1

   Format: Use autoloc1 format for output. This is default.

.. option:: -3, --autoloc3

   Format: Use autoloc3 format for output.

.. option:: -4, --fdsnws

   Format: FDSNWS event text, e.g., for generating catalogs.

.. option:: -5, --kml

   Format: KML. GIS file format.

.. option:: -e, --enhanced

   Enhanced output with higher precision. Times: milliseconds,
   distances: meter. Use for bulletins of local earthquakes.

.. option:: -k, --dist-in-km

   Print distances in km instead of degree.

.. option:: -o, --output

   Name of output file. If not given, all event parameters are
   printed to stdout.

.. option:: -x, --extra

   Use a specially detailed autoloc3 format. This options works
   only in combination with the autoloc3\-flag.

