Real-time trace view.


scrttv visualizes waveform data in miniSEED format (see Figure below) in real-time or from archives with a defined window length (default: 30 minutes) of defined streams/stations (default: streams defined by global bindings). Additionally, phase picks are visualized.

scrttv can be used for view waveforms, visual waveform quality control or interactive signal detection.

When in message mode scrttv dynamically resorts waveforms: Normally, the trace order is given by configuration, e.g., ordering by epicentral distance from a location given by streams.sort.latitude and streams.sort.longitude. In the event that a new SeisComP event arrives from the messaging, the traces are sorted automatically by epicentral distance to the latest origin received. In addition to waveforms, information about gaps or overlaps, picks and the time of incoming origins are displayed.


scrttv overview

An example of scrttv and the dialog window to associate picks to new origins. Tabs: Enable/Disable; Amplitude: mean and maximum; Stream: station, network, sensor location and channel code; Filter: filter applied traces; Status = connection status to messaging.

scrttv shows two tabs: the Enabled and the disabled tab (see scrttv overview). Stations listed in the disabled tab are excluded from automatic processing (e.g. phase picking). To move a station from one tab to another just drag and drop the trace to the new tab. An alternative solution is to double click on the trace label to disable a trace. Read the section Waveform Quality Control for the details.

Normally, the raw data are displayed. Pressing f the predefined bandpass filter of third order from 0.5 Hz to 8 Hz, BW(3,0.5,8) is applied to the traces. Also zoom functions for the time and amplitude axis are provided. Read the sections <scrttv-filtering> and Waveform Visualization for more details.

Among the configurable parameters are:

  • Global bindings:

  • Module configuration:

    • network, stations, locations and streams to show extending or overriding the default definition (,

    • data filters,

    • buffer size controlling the length of loaded data (bufferSize),

    • sorting of traces upon arrival of new origins (resortAutomatically),

    • reference coordinate for sorting traces by default (streams.sort.*),

    • region filters (streams.region.*),

    • grouping of streams with different properties,

    • number of traces to show with fixed height (streams.rows).

  • Scheme parameters in global module configuration:

    • trace properties and trace background colors,

    • font and general GUI parameters.

More parameters are available on the command-line:

scrttv -h

Modes of Operation

scrttv can be started in message mode or in offline mode.

  • Message mode: scrttv is started normally and connects to the messaging, picks, origins and inventory are read from the database and received in real time from the messaging. Data are received from recordstream.

  • Offline mode: scrttv is started without connection to the messaging, picks and origins are not received in real time from the messaging. However, they can be loaded from XML files using the File menu. Data are received from recordstream or from file. The offline mode is invoked when using the option --offline or when passing a file name to scrttv at startup. Example:

    scrttv file.mseed

Waveform Visualization

Stream selection

Without further configuration scrttv displays waveforms for streams defined in global bindings. The selection can be refined by configuring Streams with data latency < maxDelay are hidden but shown again when applicable. By default this parameter is inactive. For listing streams hidden from one tab press h.

Time windows

The reading waveforms from RecordStream, the data is displayed for a time window which by default ends at current time or as given by the command-line option --end-time. Initially, the time window takes the length defined in bufferSize or by the option --buffer-size. When reading data directly from file in offline mode, the time window is set from the time limits of the waveforms.

  • The length of visible time windows can be adjusted by zooming.

  • The end time of the data progresses in continuously in real time (UTC) with the time of the computer clock unless fixed (F8). The end time is fixed during startup when applying --end-time.

  • For progressing or rewinding by 30 minutes press Alt right or Alt left, respectively. Data will be loaded immediately.

  • You may also freely zoom into any time window. Data and picks will be loaded when pressing Ctrl + r

  • Return to default real-time processing by pressing Ctrl + Shift + r or N.


Gaps and overlaps in waveforms are indicated by yellow and purple areas, respectively. The colors are configurable.


Waveforms can be zoomed in and out interactively in amplitude and time. Use the View menu or refer to the section Hotkeys for options. In addition to the actions available from the View menu, zooming is supported by mouse actions:

  • Zooming in in time: Right-click on time axis, drag to the right. A green bar appears which is the new time window. Dragging up or down (gray bar) disables zooming.

  • Zooming out in time: Right-click on time axis, drag to the left. A red bar appears. The longer the bar, the more you zoom out. Dragging up or down (gray bar) disables zooming.

  • Zooming in time and amplitude: Mouse over a trace of interest, use Ctrl + mouse wheel for zooming in or out.

  • Zooming around a selected area: Press z and drag an area with while pressing the left mouse button. Press z again for leaving the zoom mode.

Stream grouping

scrttv allows grouping of stations and even streams with different properties, e.g. colors or color gradients.


Stations with 2 groups and different line color gradients. Ungrouped stations are visible with default line properties. The applied filter is shown in the lower left corner. The tooltip on top of station CX.PB19 is derived from$name.title.


Adjust the scrttv module configuration (scrttv.cfg).

  1. Define the groups:

    • add a new group profile to

    • set the properties for this group profile. Colors and color gradients are defined by hexadecimal values or by color keyword name. When choosing gradients the colors of the traces within one group will be varied in alphabetic order of the streams.

    • set a group title in$name.title.

  2. Register the groups in streams.groups.

Viewing groups

  1. Open scrttv to view the data.

  2. Select Sort by group in the Interaction menu or use the hotkey 5 to sort the traces by their groups.

  3. Mouse over a station belonging to a group. The tooltips shows the group title.

  4. For maintaining the sorting by groups adjust the scrttv module configuration (scrttv.cfg):

    resortAutomatically = false

Phase picks and arrivals

Previous versions of scrttv (< 5.4) only displayed picks with the colors indicating the pick evaluation mode along with the phase hint of the pick:

  • red: automatic,

  • green: manual.

This hasn’t really changed in later versions but additionally scrttv determines an additional state of a pick called arrival. In scrttv a pick is considered an arrival if it is associated to an valid origin. An origin is called valid if its evaluation status is not REJECTED. When scrttv loads all picks from the database for the currently visible time span it also checks if each pick is associated with a valid origin and declares the arrival state if the check yields true. The visibility of picks and arrivals can be toggled by pressing Ctrl + p and Ctrl + a, respectively. c removes all markers. The configuration parameter showPicks controls the default visibility.

Picks and arrivals can be differentiated visually by their colours. When configured in global module configuration, the same colours are being used consistently as in any other GUI displaying both types, namely

That visual difference should support the operator in finding clusters of picks and creating new location missed by the automatic system.

The next sections will only use the pick which can be used interchangeable for pick or arrival.

Record borders

The borders of records are toggled by using the hotkey b.


Record borders in box mode on top of waveforms.

Border properties can be adjusted and signed records can be visualized by colors configured in the scheme parameters in global.cfg or scrttv.cfg:

  • scheme.records.borders.drawMode: Define where to draw borders, e.g. on top, bottom or as boxes.

  • scheme.colors.records.borders.*: Define pen and brush properties.

Waveform Quality Control

Use scrttv for regular visual waveform inspection and for enabling or disabling of stations. Disabled stations will not be used for automatic phase detections and can be excluded from manual processing in scolv. They will also be highlighted in scmv and scqc.

To enable or disable a station for automatic data processing in SeisComP select a station code with the mouse and drag the stations to the disable / enable tab or simply double-click on the station code in the respective tab.

Stream Processing


scrttv allows filtering of waveforms. The Filter selection dropdown menu (see Figure above) and the hotkey f can be used to toggle the list of filters pre-defined in filter or in filters. The applied filter is named in the lower left corner. To show filtered and raw data together use the hotkey r.


The list of filters defined in filters overwrites filter. Activate autoApplyFilter to filter all traces at start-up of scrttv with the first filter defined in filters.

Gain correction

The stream gain is applied to waveforms and amplitude values are given in the physical units of the stream by default. For showing amplitudes in counts, deactivate the option Apply gain in the Interaction menu.

Interactive Signal Detection

Beside visual inspection of waveforms for quality control, scrttv can also be used for interactive signal detection in real time or for selected time windows in the past.

Artificial origins


Artifical origin.

In case the operator recognizes several seismic signals which shall be processed further, e.g. in scolv, an artificial/preliminary origin can be set by either pressing the middle mouse button on a trace or by opening the context menu (right mouse button) on a trace and selecting “Create artificial origin”. The following pop-up window shows the coordinates of the selected station and the time the click was made on the trace. Both are used to generate the new artificial origin without any arrivals. Pressing “Create” sends this origin to the LOCATION group. This artificial origin is received e.g., by scolv and enables an immediate manual analysis of the closest traces.

In order to send receive articifial origins and receive them in other GUIs of the global module configuration must be set and must be in line with connection.username of the receiving GUI module.

Alternatively, picks can be selected and origins can be located as preliminary solutions which are sent to the system as regular origin objects, see section Origin association.

Origin association

scrttv comes with a minimal version of a phase associator and manual locator (Fig. scrttv overview). Picks can be selected, relocated and committed to the messaging system as manual preliminary location. In contrast to the artificial origin operation which requires an immediate intervention with, e.g. scolv, this operation allows to store all those detected origins and work on them later because they will be stored in the database.


More detailed waveform and event analysis can be made in scolv.

Pick selection

In order to select picks, the pick selection mode must be entered. Then dragging a box (rubber band) around the picks in question will add them to the “cart”. The “cart” refers to the list of picks of the manual associated widget used to attempt to locate an origin. Simply dragging a box will remove all previously selected picks. Further options are:

  • Shift + drag: Add selected picks while keeping the previous selection.

  • Ctrl + drag: Remove selected picks while keeping the previous selection.

If at least one pick has been added to the cart, the manual associator will open as a dock widget.


A dock widget is a special kind of window which can be docked to any border of the application or even displayed floated as kind of overlay window. The position of the dock widget will be persistent across application restarts.

At any change of the pick cart, the associator attempts a relocation and will display the result in the details or an error message at the top.

To add more picks to the cart, shift has to be pressed while dragging the selection box. To remove picks from the cart, Ctrl has to be pressed while dragging the selection box. Picks can also be removed individually from the cart by clicking the close icon of each pick item.

Picks being part of the cart are also highlighted in the traces.

Locating from picks

The associator adds all available locators in the system and presents them in a dropdown list at the bottom. The locator which should be selected as default can be controlled with associator.defaultLocator. The profile which is selected as default can be controlled with associator.defaultLocatorProfile.

Whenever the operator changes any of the values, a new location attempt is being made which can succeed or fail. A successful attempt will update the details, a failed attempt will reset the details and print an error message at the top of the window.

Each locator can be configured locally by clicking the wrench icon. This configuration is not persistent across application restarts. It can be used to tune and test various settings. Global locator configurations in the configuration files are of course being considered by scrttv.

In addition to the locator and its profile a fixed depth can be set. By default the depth is free and it is up to the locator implementation to assign a depth to the origin. The depth dropdown list allows to set a predefined depth. The list of depth values can be controlled with associator.fixedDepths.

Committing a solution

Once a solution is accepted by the operator it can be committed to the system as regular origin as emitted by, e.g. scautoloc. Those origins will be sent to the message group defined by messaging.location and grabbed by connected modules, e.g., scevent and possibly associated to an event.

Alternatively, the button “Show Details” can be used to just send the origin to the GUI group and let scolv or other GUIs pick it up and show it. This will not store the origin in the database and works the same way as creating an artificial origin.





Open SeisComP documentation


Open scrttv documentation


Setup connection dialog


Toggle fullscreen


Set standard selection mode and deselect all traces


Clear picker markers


Toggle record borders


List hidden streams


Toggle showing arrivals


Toggle showing picks


Restore default display


Align by origin time


Enable pick selection mode


Reverse the data time window by buffer size


Advance the data time window by buffer size



Toggle filtering


Switch to previous filter in list if filtering is enabled.


Switch to next filter in list if filtering is enabled.


Toggle showing all records



Search traces


Line up


Line down


Page up


Page down


To top


To bottom


Scroll left


Scroll right


Align left


Align right

Navigation and data


Rewind time window by 30’ and load data


Progress time window by 30’ and load data


(Re)load data in current visible time range


Switch to real-time with configured buffer size



Restore configuration order of traces


Sort traces by distance


Sort traces by station code


Sort traces by network-station code


Sort traces by group



Horizontal zoom-in


Horizontal zoom-out


Vertical zoom-out


Vertical zoom-in


Toggle amplitude normalization

Ctrl+mouse wheel

Vertical and horizontal zooming


Enable/disable zooming: Drag window with left mouse button

Module Configuration


scrttv inherits global options.


Default: 0

Type: int

Unit: s

If greater than 0, then all traces for which the data latency is higher than this value are hidden.


Default: true

Type: boolean

If enabled, then all traces are sorted by distance when a new origin arrives.


Default: true

Type: boolean

If enabled, picks are shown.


Default: false

Type: boolean

Map picks to best matching rows. This is important if picks created on BHN should be shown but only the BHZ trace is part of the list. Network code, station code and location code must match anyway.


Type: string

Define the filter to be used when filtering is activated. This is only being used if filters is not set otherwise it is overridden. This option is mainly for backward compatibility.


Default: "RMHP(2)>>ITAPER(5)>>BW(3,0.5,8.0)","RMHP(2)>>ITAPER(5)>>BW_HP(3, 3)"

Type: list:string

Define a list of filters that is cycles through when pressing ‘f’. This options supersedes the filter option. If not defined then filter is used instead. If defined then this filter list is used exclusively and the filter option is ignored.


Default: false

Type: boolean

Activate the first filter of the configured filter list after startup. This is equivalent to pressing ‘f’.


Default: 1800

Type: int

Unit: s

Define the buffer size in seconds of the ring bu of each trace.


Default: false

Type: boolean

If set to true, all traces will be visible on application startup independent of data availability.


Default: 900

Type: int

Unit: s

Time span in seconds to switch back to the last view after an origin caused resorting. The default is 15 min.


Default: CONFIG

Type: string

The messaging group to which config messages (such as station enable/disable messages) are being sent.



Type: string

The messaging group to which location messages are being sent.

Type: list:string

The list of channel codes to be displayed. List items may contain wildcards at any position and are separated by comma. Wildcard support depends on RecordStream, e.g.:

caps/sdsarchive: *.*.*.*

slink: NET.STA.*.*

The channel list is intersected with all channels configured in inventory unless --no-inventory is used.


default : display all streams configured by global bindings

default, PF.BON.00.HH? : display default and all HH streams of PF.BON.00


Type: list:string

If not empty then all stream patterns are part of the blacklist. The blacklist is only active if "" is omitted and the default stream list according to the bindings is to be shown. Each pattern can include wildcards (either ? or *). The pattern is checked against the channel id which is a concatenation of network code, station code, location code and channel code separated with a dot, e.g. "GE.MORC..BHZ".


Type: integer

Number of rows to show at once in one windows. If more traces than rows are loaded, the are accessible by a scroll bar.


Type: string

Stream group profiles to be considered which must be defined in group section. Use comma separation for a list of groups.


Type: string

Stream profiles to be considered which must be defined in profile section. Use comma separation for a list of profiles.


streams.sort.* Configure the initial stream sorting.


Default: distance

Type: string

The sort mode applied initially. Allowed values are: config, distance, station, network, group.


Default: 0.0

Type: double

Unit: deg

Latitude of the initial location for sorting traces. Only valid if mode == distance.


Default: 0.0

Type: double

Unit: deg

Longitude of the initial location for sorting traces. Only valid if mode == distance.


streams.region.* Define a region used for clipping requested stations.


Default: -180.0

Type: double

Unit: deg

Minimum longitude.


Default: 180.0

Type: double

Unit: deg

Maximum longitude.


Default: -90.0

Type: double

Unit: deg

Minimum latitude.


Default: 90.0

Type: double

Unit: deg

Maximum latitude.

Note* Definiton of stream groups shown in scrttv with unique features. Register the profiles in “groups” to apply them.

Note$name.* $name is a placeholder for the name to be used and needs to be added to streams.groups to become active.

streams.groups = a,b = ... = ...
# c is not active because it has not been added
# to the list of streams.groups = ...$name.members

Type: list:string

List of channels codes to be displayed within this group. List items may contain wildcards at any position and are separated by comma. The list is intersected with all channels configured in inventory.


CX.*..BH?,PF.BON.00.HH? : all BH streams of the CX network and all HH streams of PF.BON.00$name.title

Type: string

Title of the group visible as a tooltip of the traces.

Note$name.pen.* Define the trace pen of the group.$name.pen.color

Type: color

The color of the pen. If not given, the default trace color is being used. The parameter is overridden by "$profile.gradient" .$name.pen.gradient

Type: gradient

Define the color gradient used to generate the trace color for each group member. When given, the value in "$profile.pen.color" is ignored. The colors are distributed equally and given in hexadecimal representation or by or color keyword names. The stop points can be set at any value. The final trace color will be interpolated from the normalized gradient where the value range is scaled to [0,1].

Format: value1:color1,value2:color2




Default: SolidLine

Type: string

The style of the pen. Supported values are: NoPen, SolidLine, DashLine, DotLine, DashDotLine, DashDotDotLine.$name.pen.width

Default: 1.0

Type: double

Unit: px

The width of the pen.


streams.profile.* Definiton of profiles for streams shown with unique decorations. Register the profiles in “profiles” to apply them.


streams.profile.$name.* $name is a placeholder for the name to be used and needs to be added to streams.profiles to become active.

streams.profiles = a,b
streams.profile.a.value1 = ...
streams.profile.b.value1 = ...
# c is not active because it has not been added
# to the list of streams.profiles
streams.profile.c.value1 = ...

Type: string

Stream applying this profile to. Use regular expressions for defining multiple streams. Examples:

GR.BFO.00.BHZ: One stream on vertical component

GR.*.00.BHZ: All stations from GR network and their vertical components.


Type: string

Text added to streams.


Default: 0.0

Type: double

Fraction of trace amplitude added to trace widgets.


Type: string

The physical unit shown along with stream maximum and minimum values.


Default: 0.0

Type: double

The gain applied to scale trace amplitudes. 0 disables showing trace amplitude value


Default: false

Type: boolean


streams.profile.$name.minimum.* Properties defining the minimum line on each trace.


Default: 0.0

Type: double

Value at which to draw a line.


streams.profile.$name.minimum.pen.* Line properties.


Default: 1

Type: string


Default: solidline

Type: string


Default: 000000ff

Type: string


streams.profile.$name.minimum.brush.* Properties of the area below the minimum.


Default: nobrush

Type: string


Default: 000000ff

Type: string


streams.profile.$name.maximum.* Properties defining the maximum line on each trace.


Default: 0.0

Type: double

Value at which to draw a line.


streams.profile.$name.maximum.pen.* Line properties.


Default: 1

Type: string


Default: solidline

Type: string


Default: 000000ff

Type: string


streams.profile.$name.maximum.brush.* Properties of the area above the maximum.


Default: nobrush

Type: string


Default: 000000ff

Type: string


associator.* Define parameters for manually associating phases to origin and for locating the origins.


Type: string

The locator which is activated as default locator.


Type: string

The locator profile which is activated as default profile for the default locator.


Default: 0, 10, 18

Type: list:double

Unit: km

A list of depths used to populate the locator depth selection dropdown list.


spectrogram.* Define parameters for spectrogram representation.


Default: false

Type: boolean

Whether to plot the spectrogram filtered bilinearily.


Default: false

Type: boolean

Whether to use logarithmic frequency scale.


Default: fixed

Type: string

Which amplitude normalization mode to use: "fixed", "frequency" or "time".


Default: false

Type: boolean

Whether to show the frequency axis.


Default: -15

Type: double

Unit: log(ps)

The lower bound of the static amplitude range give as logarithm of the power spectrum (log(real**2 + imag**2)).


Default: -5

Type: double

Unit: log(ps)

The upper bound of the static amplitude range give as logarithm of the power spectrum (log(real**2 + imag**2)).


Default: 0

Type: double

Unit: Hz

The lower bound of the frequency to be shown.


Default: 0

Type: double

Unit: Hz

The upper bound of the frequency to be shown. Zero is a special value and means "auto" and sets the maximum frequency from the spectra.


Default: 20

Type: double

Unit: s

The time span of each data slice used to compute the frequency spectrum.


Default: 0.5

Type: double

The overlap of the data time window between zero and one (exclusive).

Command-Line Options

scrttv [options] [miniSEED file]


-h, --help

Show help message.

-V, --version

Show version information.

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

--plugins arg

Load given plugins.

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

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

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

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


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

--log-file arg

Use alternative log file.

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


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


-u, --user arg

Overrides configuration parameter connection.username.

-H, --host arg

Overrides configuration parameter connection.server.

-t, --timeout arg

Overrides configuration parameter connection.timeout.

-g, --primary-group arg

Overrides configuration parameter connection.primaryGroup.

-S, --subscribe-group arg

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

--content-type arg

Overrides configuration parameter connection.contentType.

--start-stop-msg arg

Set sending of a start and a stop message.



List all supported database drivers.

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

--config-module arg

The config module to use.

--inventory-db arg

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


Do not use the database at all



List all supported record stream drivers.

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

--record-file arg

Specify a file as record source.

--record-type arg

Specify a type for the records being read.


-i, --input-file xml

Load picks in given XML file during startup


--filter arg

Overrides configuration parameter filter.


Do not connect to a messaging server and do not use the database.


Do not read streams from inventory but display all streams available from the specified record source. This option may be combined with the parameter to filter the available streams.

--end-time arg

Set the acquisition end time, e.g. ‘2017-09-08 13:30:00’, default: ‘gmt’.

--buffer-size arg

Set the size of the waveform buffer in seconds, default: 1800

--max-delay arg

The maximum delay in seconds to keep a trace visible (0 to disable).


Subscribe to data starting at now rather than now - bufferSize


Do not ask for time window at data server. This might be important if e.g. Seedlink does not allow time window extraction.


Map picks to best matching rows. This is important if picks created on BHN should be shown but only the BHZ trace is part of the list. Network code, station code and location code must match anyway.


Channel(s) to display. The channel code may contain wildcards at any position but the support of wildcards depends on RecordStream. Repeat the option for multiple channel groups. Examples:

default : all streams configured by global bindings.

GE.*.*.HH? : all HH streams of all stations from GE network.


--city-xml arg

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

User interface

-F, --full-screen

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

-N, --non-interactive

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