qlplayback

Uses a quakelink event archive directory, modifies timestamps and feeds the data into another quakelink instance.

Description

qlplayback feeds event parameter into a quakelink server for simulating real-time conditions in a playback:

  • Read event parameters from a Quakelink event archive directory.

  • Modify the timestamp before sending to the server.

It is part of the QuakeLink suite. Please read the command-line help for the options:

qlplayback -h

Workflow

qlplayback enters an arbitrary quakelink event directory and reads the revision log file. The time difference from the current system time to the first revision timestamp is being computed and applied to all timestamps of all objects of the XML files unless --time-delta is specified. That means that all creationInfo.creationTime and creationInfo.modificationTime values are being modified, all pick.time.value values are being modified and the publicIDs of all objects are also being recomputed and reassigned.

After all those modifications have taken place, the revisions will be sent to quakelink in a way which simulates real-time updates. The first revision is being sent immediately. The second revision will be sent after the time difference of the second revision and the first revision and so on. This is very similar to msrtsimul of seedlink.

SeisComP Setup

In order to forward the playback data to SeisComP, ql2sc must be utilized and configured. It depends on whether scevent should run on the target system or not. A simple playback which just wants to test downstream modules or which wants to show real-time updates on e.g. scesv does not need to run scevent and can forward also Events from quakelink. Injecting playbacks into a processing system with interactive analysis must not forward Events and requires scevent to be running.

Without scevent

File: ql2sc.cfg

hosts = playback

# Request native data instead of XML format. Native data export may be disabled
# on some hosts.
host.playback {
    native = true
    url = ql://localhost:18010
    syncEventAttributes = false # Because we forward events
    routingTable = Pick:PICK,\
                   Amplitude:AMPLITUDE,\
                   Origin:LOCATION,\
                   FocalMechanism::FOCMECH,\
                   Event:EVENT
}

This setup will connect to the quakelink server which receives the playback XML files from qlplayback and forward everything to SeisComP, also events.

With scevent

File: ql2sc.cfg

hosts = playback

# Request native data instead of XML format. Native data export may be disabled
# on some hosts.
host.playback {
    native = true
    url = ql://localhost:18010
    syncEventAttributes = true
    routingTable = Pick:IMPORT_GROUP,\
                   Amplitude:IMPORT_GROUP,\
                   Origin:EVENT,\
                   FocalMechanism::EVENT
}

This setup will connect to the quakelink server which receives the playback XML files from qlplayback and forward only origins and focal mechanisms to scevent. Picks and amplitudes will be forwarded to the IMPORT_GROUP and therefore invisible for e.g. scamp and scmag.

Run required modules

Here only the additional modules to the existing SeisComP processing modules are listed:

seiscomp start quakelink ql2sc

Examples

  • Playback of a certain event in the QuakeLink archive.

    qlplayback $SEISCOMP_ROOT/var/lib/quakelink/archive/2022/09/18/gempa2022shod
    

Module Configuration

etc/defaults/global.cfg
etc/defaults/qlplayback.cfg
etc/global.cfg
etc/qlplayback.cfg
~/.seiscomp/global.cfg
~/.seiscomp/qlplayback.cfg

qlplayback inherits global options.

Note

Modules/plugins may require a license file. The default path to license files is @DATADIR@/licenses/ which can be overridden by global configuration of the parameter gempa.licensePath. Example:

gempa.licensePath = @CONFIGDIR@/licenses

Command-Line Options

qlplayback [options]

Generic

-h, --help

Show help message.

-V, --version

Show version information.

Verbosity

--verbosity arg

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

-v, --v

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

-q, --quiet

Quiet mode: no logging output.

--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.

--component arg

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

-s, --syslog

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

-l, --lockfile arg

Path to lock file.

--console arg

Send log output to stdout.

--debug

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

--trace

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

--log-file arg

Use alternative log file.

Playback

-d, --time-delta seconds

Define a fixed time delta in seconds. This prevents qlplayback from figuring out the time delta itself.