Guralp Systems Limited
MAN-SWA-0001 Issue M - Scream User's Guide
Section Index: 11.1 Recording 11.2 Playback 11.3 Automatic playback

Chapter 11. Recording and playback

Scream! allows you to record all incoming data and store it on the local hard disk of your computer. To do this, you should configure the file-name format and destination directory, then select the streams that you want to record from Scream!'s Main Window, right-click and choose Start recording from the pop-up menu. The streams will display Yes in the Rec. column to indicate that they are recording.

The selection of streams to record is stored in the scream.rec file (see section 16.3) so that, if scream is subsequently set to automatically record all streams (see section 11.1.1), the original, manual selection can be restored if the automatic option is later deselected.

When Scream! starts recording, it starts at the earliest point in the current stream buffer, and immediately records all the data that it can. For continuous streams, the recorder will soon catch up with the real-time data.

If there is a gap in a stream (e.g. because you are using adaptive mode: see section 10.5.6), Scream! will delay recording that stream until the gap is filled. If the gap reaches the end of the stream buffer (as described in section 5.1) before data are transmitted to fill it, Scream! will give up and begin recording data from after the gap. If there are unwritten data due to a gap, an ‘*’ symbol will appear next to “Yes” in the recording column, and a right-click menu option Flush to Disk is available which will force writing of all data immediately for the selected streams.

By default, recorded data are placed in a data directory within Scream! 's installation directory, in GCF format. Scream! records files for each stream separately, which it puts in that stream's own directory. This directory may contain one or several GCF files.

Caution: If you do not have write permission on the recorded data directory, Windows may record to the virtual store instead. Please see the Microsoft documentation for information about the virtual store. Linux systems and Windows systems without virtual store support will indicate an error ERR in recording in the stream list:

11.1 Recording

Scream! has a number of options which allow you to change the way data are recorded and filed. From the Main Window, select Setup… from the File menu to open the Setup window. Two tabs on this window control the way that Scream records incoming data: the Recording tab and the Files tab. In addition, the scream.ini configuration file can be modified with a new section that controls other aspects of data recording.

11.1.1 The "Recording" configuration options

Click on the Recording tab. The available options are described in the following sections.

The upper part of this pane allows you to instruct Scream! to record various types of streams automatically. These options control the Rec setting when a new stream is received (e,g, after start-up). The options are remembered for the next time Scream! is started up.

Note: If any of the Auto-Record options are disabled after use, any streams which had previously been set to record (by manually enabling them from the Main Window's stream list) will continue to be recorded. The list of streams for which recording has been manually enabled is stored in the file scream.rec. See section 16.3 for details.

The lower section tells Scream! how to use its hard disk space:

If there is very little space on the disk, the PC's operating system can become slow or unstable. By default, Scream! will consider the disk “full” when only 50 MiB of space remains on it. You can change this amount by altering the value at bottom right (Leave nnn MiB free disk space).

Changes to these settings take effect as soon as you click or .

11.1.2 The "Files" configuration options

Another part of the Setup window allows you to alter the way in which Scream! files the data it records. Click on the Files tab to open the following pane:

The options you can change are:

Base Directory: This specifies the root directory in which data files will be saved. There are useful notes about the choice of directory in section 3.3. Files for each stream are stored in sub-directories below the directory specified. The sub-directory structure is defined by the file-name format.

Note: You can quickly browse this directory by right-clicking on the Files section header icon ( ) in the source tree and selecting Explore recording base folder from the context menu:

Filename format: This allows you to describe how you want files to be named, by entering a format specifier. The string you enter is used to construct the file names for all files. Among the specifiers you can use are:

The specifiers MM, DD, HH, NN, SS, RRR, JJJ, IIIIII, TTTTTT and EEEE are the same as their single-letter counterparts, but they are padded with zeros or underscores to a constant length. YY can also be used for a 2-digit abbreviation of the year (e.g. 03 for 2003), and MMM for a 3-letter month name (jan, feb etc.).

Any other letters (including lower-case letters) in the file-name will be left as they are, so you can add constant descriptions or field separators as you wish. Owing to operating system limitations, you cannot use any of the punctuation marks * ? " : < > | in file-names. You can, however, create directory structures by using the back-slash (\) character under Windows or the solidus (/) under Linux. For example:

T\YYYY_MM_DD;HHhNNmSSs.msd

will give file-names like

dmz2\1997_10_05;07h35m20s.msd

Caution: You should always ensure that files are given unique names. Scream! writes each stream separately. If it finds that it cannot write to a file because it is already open for another stream, the write will fail and data will not be recorded.

Scream! can record data in many formats. Some file formats, such as GCF and MiniSEED, divide their internal data into blocks, each of which has a time-stamp. Such formats can store streams which includes gaps. Most other formats are not block-structured and only have a single time-stamped header at the start of the file. If Scream! is saving data in a non-block-structured format and encounters a gap in the stream, it starts a new file.

Caution: For formats other than GCF and MiniSEED, if the file-name configuration does not permit sufficient granularity (e.g. one-hour-long files with no time-of-day indication in the file-name), Scream! will silently over-write the previous file, resulting in loss of data. You should pay particular attention to the file-name settings when using these formats in order to avoid this scenario.

Data Format : Selects the format of the recorded data files. Options are GCF, SAC, MiniSEED, P-SEGy, PEPP, SUDS, GSE, UFF (ufa and ufb; see below), CSS and SEG2.

A single instance of Scream! can record in one format at a time; if you need output in multiple formats, you can either:

Byte Order : For SAC, SEG-y, UFB, CSS and SEG2 files, the byte order of the files can be specified. This can be used to match the byte order to the native order of the platform where you are going to perform analysis. GCF and MiniSEED are defined to be in “Motorola or SPARC” byte order. PEPP and SUDs data are defined to be in “Intel” byte order. Byte order is not applicable to the ASCII-like GSE or UFA formats.

Granularity : This setting allows you to specify how large files are allowed to become before a new one is started, for three different types of stream (high sample rates, low sample rates and status streams).

The distinction between high and low sample rates is set by the number in the Sample Rates >= box; the remaining boxes give the number of hours of data that Scream! should combine into a single file for each type of stream. In the example above, streams with a sample rate of 20 samples per second or above will be recorded in files with up to one hour of data per file; lower-rate streams will be recorded in four-hour files, whilst a new status file will be started every twelve hours. You will need to choose a Filename format (see above) which gives each file a unique name.

If you prefer to set a limit on a file's size, rather than its duration, choose Kilobytes from the drop-down menu (instead of Hours or Minutes) and set as appropriate.

Post-processor : This option allows you to specify a program, batch-file or shell-script which Scream! will run every time it closes a file. The name of the file is passed as a parameter.

You can use this feature to interface to other analysis or archival systems, for example:

11.1.3 EXPORTINFO configuration options

A number of output file formats require some additional static information for populating header fields or mapping stream names. This information must be specified in a section of the scream.ini file in a section headed

[EXPORTINFO]

You can add this section header to the end of your scream.ini if it does not already exist. The location of the scream.ini file is given in section 16.3.

After the [EXPORTINFO] section header, add one or more lines in the format

KEY=VALUE

Some key/value pairs are used for mapping from Güralp stream IDs to stream names in a format recognised by the International Federation of Digital Seismograph Networks (FDSN). These are known as FDSN-format or SNCL-format (Station/Network/Channel/Location) names. These key/value pairs required for these mappings are described below.

Other key/value pairs are optional or mandatory for specific file formats. These will be described in the relevant sub-sections for each format.

11.1.3.1 Stream name mapping

Channels whose names should be mapped into FDSN format should be listed, one per line, in the format

SysID-StreamID=sta:SSS chan:CCC net:NN loc:LL

or

SysID-SerialNumber=sta:SSS net:NN loc:LL

or

SysID=net:NN loc:LL

where

If you use a SysID-SerialNumber line, Scream! will apply it to all streams from the digitiser with that serial number, filling in the channel code automatically.

If you use a SysID line, Scream! will apply it to all streams from any digitiser with that System ID, filling in the channel code automatically and taking the Station Name from the digitiser's serial number.

If both instrument (SysID-SerialNumber) and stream (SysID-StreamID) lines are present, the stream lines will override the instrument lines. Likewise, a SysID-SerialNumber line will override a line with just SysID if both are present. This allows you to set default values for an instrument or network with single statements.

If you omit a specification, Scream! will fill in the default value. Specifying a value for loc is optional.

For example:

[EXPORTINFO]

GSL0=net:UN loc:B1

GSL0-DOWNH=sta:BHD

GSL0-SURFX4=sta:SMO chan:LKO

specifies that:

11.1.4  UFF file format

Universal File Format (UFF) is a commonly-used interchange format for seismic data. Two types of UFF format are supported: ASCII and binary, where the extension .ufa denotes the ASCII variant, and .ufb denotes the binary variant. The byte order used for the binary variant is specified in the Recording pane of the Setup window. ASCII does not have byte-ordering options. Details for the layout of the UFF format can be obtained from the University of Cincinnati at www.sdrl.uc.edu/sdrl/referenceinfo/universalfileformats.

You can instruct Scream! to record incoming data directly in UFF format. To do this, open the Files pane of the Setup window as above and select either UFF ASCII (.ufa) or UFF Binary (.ufb) in the Data format drop-down menu. However, UFF files tend to be large, and the format does not retain the full resolution of the data gathered by the sensor. It is recommended that you keep the initial recording in GCF format, and then convert to UFF as required using the batch-processing tools provided (see section 11.1.12).

Files in UFF format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work. For example, if you specify files lasting one hour, a new file will be opened on the hour, every hour, whether or not a discontinuity occurred during the previous hour (which will have caused a new file to be opened at that point).

11.1.5  MiniSEED file format

Scream! supports recording in the IRIS MiniSEED format, using the same rules for generating file and directory names as for GCF files (see section 11.1.2), but using the extension .msd.

Data are stored in 4K blocks with Motorola byte order, using Steim-1 compression. If a discontinuity is detected in the incoming data stream, then the block which is currently being built is written to disk, and a new block is started with its time-stamp in the header. Files continue to be created according to the options you have specified for Granularity.

Unless mapped, the MiniSEED headers are formed to comply with the FDSN (International Federation of Digital Seismograph Networks) SEED naming conventions:

The default mapping is illustrated below:

The default name mapping can be over-ridden on a per-digitiser basis, a per-instrument basis or even on a stream-by-stream basis. See section 11.1.3 for information about [EXPORTINFO] and stream name mapping.

11.1.6  SAC file format

Scream! supports recording in the SAC format, using the same rules for file and directory names as for GCF files (see section 11.1.2), but using the extension .sac instead of .gcf.

Files in SAC format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

Before you start recording SAC files, you should ensure you have selected the correct byte-order in the Recording tab of the Setup window.

By default, Scream! uses the SAC header field KSTNM to store the stream's System ID; the Stream ID is output in the KCMPNM header field.

You can set your own header fields by preparing an [EXPORTINFO] section in the scream.ini file. See section 11.1.3 for more details. The specifications that you can use are:

If you miss out a specification, Scream! will fill in a default value.

Note: Status streams are recorded as plain text, as with GCF files.

11.1.7  SUDS file format

Scream! supports recording in the USGS SUDS 1.x format, using the same rules for file and directory names as for GCF files (see section 11.1.2), but using the extension .sud.

Files in SUDS format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

The files generated have STATIONCOMP and DESCRIPTRACE values in the header structures, using the following fields:

11.1.8  GSE file format

Scream! supports recording in the GSE 2.0 format (cm6 sub-format) using the same rules for file and directory names as for GCF files (see section 11.1.2) but using the extension .cm6.

Files in GSE format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

You can set your own header fields by preparing an [EXPORTINFO] section in the scream.ini file. See section 11.1.5, for more details.

The values that you can specify are sta:, chan:, aux:, calib:, calper:, hang:, and vang:

Each specification sets the header field with the same name. If you omit a specification, Scream! will use a default value.

11.1.9  CSS file format

Scream! supports recording in the CSS 3.0 flat file format, using the same rules for file and directory names as for GCF files (see section 11.1.2), but using the extension .w. An additional file, the wfdisc table, is created and stored in the location specified as Base directory.

.w files in CSS format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

Samples are stored in the .w files as signed 32-bit integers (s4 or i4), using the Byte Order you have specified. Scream! updates the wfdisc table whenever data are added to a .w file.

You can set your own header fields by preparing an [EXPORTINFO] section in the scream.ini file. See section 11.1.5, for more details.

The values that you can specify are sta:, chan:, wfid:, calib:, calper:, type:, segtype:, and commid:

Each specification sets the header field with the same name. If you omit a specification, Scream! will use a default value.

11.1.10  pSEG-y file format

Scream! supports recording in the PASSCAL-modified SEG-y format (sometimes called pSEG-y), using the same rules for file and directory names as for GCF files (see section 11.1.2), but using the extension .sgy.

The main differences between the PASSCAL variant and standard SEG-y are:

Files in SEG-y format must represent a contiguous period of time. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

Before you start recording SEG-y files, you should ensure you have selected the correct byte order in the Recording tab of the Setup window.

Scream! sets header fields in SEG-y files as follows:

Status streams are recorded as plain text, as for GCF files.

11.1.11 SEG2 file format

Scream has limited support for recording data in SEG2 format, using the same rules for file and directory names as for GCF files (see section 11.1.2), but using the extension .cm6.

Whereas SEG2 files are intended for recording a single shot gather, spanning a few seconds for multiple channels in one file, Scream! is optimised for continuous data recording. Therefore, Scream! can only record one channel per SEG2 file and post-processing with SEG2 file manipulation tools may be necessary.

Files in SEG2 format must represent a contiguous period of time for a given channel. If a discontinuity is detected in the incoming data stream, then the file which is currently recording will be closed and a new file opened with a file-name and time-stamp matching the start of the new file. This operation will take place regardless of the options you have specified for Granularity, although the Granularity options will still work.

The recorded files are in standard SEG2 format, revision 1, using 32-bit fixed-point integers. The byte order is user-selectable in the recording options (see section 11.1.2).

The File Descriptor Block strings included are:

The Trace Descriptor Block strings included are:

11.1.12  Converting GCF files to other file formats

On occasion, you may need to convert pre-recorded GCF files into one of the various data formats supported by Scream!. For example, you may want Scream! to record data in GCF format and convert it to UFF later, to ensure that you retain all the data received from the sensors. Güralp provide a number of command-line tools for this purpose. At the time of writing, available converters include:

Please visit Support→Software on our website for the latest versions of these converters, detailed usage instructions and details of all converters available.

11.1.12.1 MATLAB® integration

You can also use GCF data in your own MATLAB® scripts. GCF files can be read directly into MATLAB using a simple script.

The GCF file to be read, specified as filename, may contain continuous, interrupted, or overlapping data for one or several streams.

The file readgcffile.m includes a sample function to plot the data from any GCF file. This can be adapted to create your own MATLAB software.

Caution: This script is provided "as-is", and should only be considered as an example of how to read GCF data in MATLAB®.

11.2 Playback

Note: Most of the operations described in this section are deprecated. Better solutions exist, as documented in the appropriate subsections. If you have trouble using any of the alternatives, please contact support@guralp.com for advice.

11.2.1  GCF files

Note: The replay function of Scream! in real-time mode, documented in this section, is deprecated. Scream!'s View mode is now the recommended method for viewing GCF files. See section 2.2 for details.

To replay a stored GCF file or files:

11.2.2 Reading hard disks

Note: The replay of data from disks, as documented in this section, is deprecated. It is recommended to use the gcfxtract utility for faster offloading of data. Visit Support→Software on the Güralp website for more information about gcfxtract.

Note: Depending on your security settings, you may need elevated privileges in order to read DFD-formatted disks. Windows users may need to start Scream! by right-clicking on the icon or start-menu entry and selecting Run as administrator… from the context menu. Linux users may need to add their username to the disk group (or to another group with raw disk access) with a command like

sudo usermod --append -G group my_username

You can use Scream! to replay streams direct from Güralp Systems portable DFD disks. These are normally FireWire or USB (e.g. for Güralp 6TD disks) but SCSI is also supported. Up to 100 disks can be connected to the system at once, depending on your operating system and hardware. To read a disk directly, Scream! may need administrator (root) privileges.

Caution: When a DFD disk is connected to a Windows PC, the operating system will not recognise the file-system and will offer to re-format it. Do not allow it to do so: you will lose some data from the disk and make it hard to recover the rest. If you accidentally find yourself in this position, please contact support for advice.

To record data from the disk into your file system, right-click on the streams when they appear in the Main Window and select Start Recording, as for a real-time stream. Data will be recorded in the file format and using the file-names you specified in the Recording and Files tabs of the Setup window. For the highest replay rate, do not open WaveView windows on the streams as you replay them.

Alternatively, if you are using Linux, you can create a raw disk image with the command dd. For more information, see the Linux man page for dd.

Scream! can read raw disk images as if they were connected disks; to attach an image to a disk slot, run Scream! with the command line

scream /disknn=image.bin

where image.bin is the path of the image file, and nn is a slot number (between 0 and 99). This command line option can be repeated as many times as necessary.

Once you have read all the data on a disk, you can “blank” or reinitialise it by selecting File → Reset SCSI disk from the main menu. You can now remove the disk and re-use it in, for example, a 6TD. Scream! will not reset a DOS-formatted disk this way, in case it contains other files besides data. (DOS disks can be reformatted by your operating system.)

11.2.3  SCSI tapes

Scream! can also replay data directly from an attached SCSI tape, provided that

If more than one tape drive is connected, Scream! will use the one with the lowest SCSI ID.

If no compatible tape drives are detected, these menu options will be greyed out.

11.3 Automatic playback

If a directory called autoload is present in Scream!'s program directory, Scream! will automatically look in it for GCF data and play it into the stream buffer in real time, as if it came from a local serial port. The data appear under Autoload in the Files section of Scream!'s stream list.

This feature allows you to transfer real-time data to Scream! by merely placing files in the designated directory. For example:

Once a file has finished playing back, Scream! deletes it from the autoload directory. If you want to keep the data, you will have to re-record them from Scream! into a directory that you specify. If Scream! cannot delete it, it remembers the file so that it does not try and replay it again. However, if you exit Scream! and restart, Scream! will replay the file if it is still there.

Note: Data from the autoload directory will not be transmitted over the network.