Snuffler manual

Snuffler is a seismogram browser and workbench.

  • read waveforms in Mini-SEED, SAC and other file formats

  • visually browse through seismic waveform archives

  • display real-time data streams

  • snappy interface for zooming, panning, scrolling, filtering, rotating and scaling

  • changes to controls give instantaneous visual feedback

  • transparent handling of traces split into many files

  • integrated manual picker

  • extendable with user plugins (snufflings)

  • gap-aware continuous waveform processing framework


snuffler [options] waveforms ...

Input waveforms can be any combination of the following data sources:

  • waveform files of supported formats

  • directories, which are recursively seached for waveform files

  • pseudo URLs, which are used to open real-time data streams from different sources

The following pseudo URLs are supported:


Acquire data through SeedLink from given <host>. The specified <pattern> is matched against strings of the form <network>.<station>.<location>.<channel>, where the placeholders stand for the corresponding IDs of each SeedLink data stream. To use this feature, slinktool must be installed.


Acquire data through serial line from “school seismometer”.


Acquire data from eight-channel USB-HB628 module. Example: to read channels 0, 3 and 5 from serial device /dev/ttyS0 at default rate (50Hz), use snuffler 'hb628:///dev/ttyS0?channels=035'. By default all channels are shown.


Acquire data from Hamburg Univerisity Wiechert camera module.


Acquire data from DiGOS DATA-CUBE recorder connected via serial interface. Example: snuffler cube:///dev/ttyUSB0


-h, --help

show help message and exit


assume files are of given FORMAT [default: from_extension]


only include files whose paths match REGEX


read station information from file STATIONS, this option can be given more than once. The format of the stations file is a simple five-column ASCII table where each line has the form

<net>.<sta>.<loc>  <latitude>  <longitude>  <altitude>  <sensor-depth>

<net>, <sta>, and <loc> are the network, station and location codes, respectively. <altitude> and <sensor-depth> are given in [m]. If network and location code are empty, use .<sta>., i.e. the dots should not be omitted.


read station information from XML file STATIONSXML

--event=EVENT, --events=EVENT

read event information from file EVENT, this option can be given more than once


read marker information from file MARKERS, this option can be given more than once


follow real time with a window of N seconds


use directory DIR to cache trace metadata (default: pyrocko_0.3_cache_<username> in the system’s default temporary directory)


use the cache even when trace attribute spoofing is active (may have silly consequences)


store data received through streams to TARGET. If TARGET is a directory, filnames are automatically choosen. If more control over the filenames is needed, TARGET can be a filename template containing placeholders like %(KEY)s, where KEY is any of network, station, location, channel, tmin (time of first sample), tmax (time of last sample).


dump stream data to file every N seconds [default: 600]


initially use N waveform tracks in viewer [default: 24]


use OpenGL for drawing

use Qt5 for the GUI
use Qt4 for the GUI

print debugging information to stderr







Reload modified files


Reload snufflings


Toggle full screen mode


Toggle marker sidebar


Toggle main controls


Enter command


Forward one page in time


Backward one page in time


Scroll tracks one page down


Scroll tracks one page up


Show one track more


Show one track less


Show initial number of tracks


Go to selection / show all


Zoom to selection / zoom to trace visibility


Go to next marker


Go to previous marker


Go to next event marker


Go to previous event marker


Go to next marker of active event

<shift> + <tab>

Go to previous marker of active event


Select all markers currently visible


Select all markers


Deselect all markers


Change color of marker


Convert to phase marker


Convert to event marker / set active event / associate to event


Convert phase marker to normal marker


Delete marker

<up>, <down>

Set first motion polarity on selected marker

<shift> + <up>

Unset first motion polarity on selected marker


Abort picking






Click and drag

Zoom and pan

Click and drag on time axis

Pan only

Click on marker

Select marker

<shift> + click on marker

Select additional marker


Scroll tracks vertically

<ctrl> + wheel

Change number of tracks shown




Enter picking mode


After pressing ‘:’ in the trace viewer, a command can be entered. To leave command mode press ‘<return>’.

Some of snuffler’s commands take a <pattern> argument. These may contain the following shell-style wildcards:


matches everything


matches any single character


matches any character in seq


matches any character not in seq

The pattern matching is done case-insensitive.

Quick-search traces

Reduce traces shown in viewer to those matching a given pattern.

n|s|l|c [ <pattern> ]

<pattern> is matched against network, station, location, or channel ID of the traces depending on whether the n, s, l, or c command is used, respectively. Only one quick-search pattern is active at any time. The currently active pattern is cleared by calling any of these commands without an argument.


Hide traces whose network, station, location, and channel IDs match a given pattern.

hide <pattern>
hide n|s|l|c <pattern>

Using the first form, <pattern> is matched against strings of the form <network>.<station>.<location>.<channel>, where the placeholders stand for the corresponding IDs of each trace.

Using the second form, <pattern> is matched against network, station, location, or channel ID of the trace depending on whether n, s, l, or c is given as first argument, respectively. For example, hide s <pattern> is short for hide *.<pattern>.*.*.

The patterns given to successive invocations of hide are accumulated in a blacklist. To remove patterns from that blacklist, use the unhide command.


  • To hide any BHZ channels of stations with ID HAM3, use hide *.ham3.*.bhz.

  • To hide all LHZ channels use hide c lhz.

  • To hide any LHE and LHN channels use hide c lh[en]

  • Assuming stations are named S01S15, to remove all but S02 and S04, type hide s S0[!24] followed by hide s S1?.


Unhide traces previously hidden with the hide command.

unhide [ <pattern> ]
unhide n|s|l|c <pattern>

The <pattern> argument must exactly correspond to a pattern previously given to the hide command. When unhide is called without any arguments, all currently active hide patterns are cleared.


Toggle marker visibility.

markers [0][1][2][3][4][5]
markers all

The visibility of the markers can be set selectively with regard to their kind (color). Each number given in the argument to this command turns on visibility of the corresponding marker kind, all other markers are hidden. If no arguments are given, all markers are hidden. If the argument is all, all markers are shown.


Set scaling rules.

scaling <vmin> <vmax>
scaling <pattern> <vmin> <vmax>

Traces are scaled according to the range [<vmin>, <vmax>]. Either of <vmin> or <vmax> may be set to the string ‘nan’, to maintain automatic scaling for the corresponding limit. If three arguments are given, the first argument should be a pattern, restricting application of the given scaling rule to matching traces. If no arguments are given, any previously set scalings rules are cleared.


Jump to given time or event.

goto YYYY-MM[-DD[ HH[:MM[:SS[.XXX]]]]]
goto HH:MM[:SS[.XXX]]
goto <eventname>

The first form causes the viewer to jump to the given date and time. With the second form (when no date is given), the date is taken from the center of the currently visible time range. Using the third form, it jumps to the time of an event with the given <eventname>. The event marker is neither selected nor made active through this command.