Using GCF data in third party software
This article explains how to convert seismic data from Guralp Systems instruments into the formats required by different analysis packages.
Depending on your application, data streams can be converted in real time, or saved in GCF format and converted to your preferred format later.
We recommend that you also archive raw data from Guralp Systems instruments in GCF format wherever possible, since some information may be lost during conversion.
Systems using real-time data
The standard Earthworm distribution includes a module, scream2ew, which can connect to a Scream! server and inject streams into the trace buffer. The Scream! server can run on the same computer, or elsewhere on the network. You can do this in two ways:
- Set up the Scream! server to push data to scream2ew by going to the My Server tab of the Network Control window and entering the IP address and port number where scream2ew is listening.In the scream2ew.d parameter file, set this port number in the PortNumber option, and comment out or remove the Server option. Also specify Earthworm seednames for the streams you are going to transmit. For example:
PortNumber 1567 #Server (local) #ChanInfo system stream net sta chan pinno ChanInfo "GURALP 3661Z2 BN 3661 BHZ 361" ChanInfo "GURALP 3661N2 BN 3661 BHN 362" ChanInfo "GURALP 3661E2 BN 3661 BHE 363"
- Alternatively, set up the Scream! server to accept incoming connections by going to the My Client tab of the Network Control window and checking the Receive UDP Data box.In the scream2ew.d parameter file, set the IP address and port number of the Scream! server in the Server and PortNumber options. Also specify the stream names as above.
Another way to get GCF data into Earthworm is to use the module gcf2ew. This is distributed as part of the GCFtools package developed by ISTI for Guralp systems. This package reads GCF data directly from local serial ports or from serial converter units, and does not require Scream! to be running.
The standard Antelope distribution includes the module guralp2orb, which can be found in the contrib/ directory.
To get data flowing into Antelope, first specify guralp2orb‘s port number in the parameter file, and run the system with the module active. Next, set up the Scream! server to push data to guralp2orb by going to the My Server tab of the Network Control window and entering the IP address and port number where guralp2orb is listening.
A manual page for guralp2orb is provided in the Antelope distribution.
Scream2SFS is a stand-alone Windows application which can connect to a Scream! server (on the same computer, or elsewhere on the network), receive real-time streams, and save them in an SFS database for use by Seislog.
For more information, see the Scream2SFS entry in our software section.
Scream2CD1 is a stand-alone Windows application which can connect to a Scream! server (on the same computer, or elsewhere on the network), receive real-time streams, and send them to a CD1 consumer on the network.
For more information, see the Scream2CD1 entry in our software section.
The CMG-DCM can run several concurrent CD1 or CD1.1 transmitters. The CMG-AM can additionally authenticate data streams using any of the methods recognised in the CD1 and CD1.1 standards.
Systems using recorded files
You can record directly into the sac format using either Scream! or a CMG-DCM, or replay existing GCF files into Scream! and record in sac format.
Alternatively, the stand-alone tool gcf2sac will convert GCF files into sac format. See the software section for full details.
You can record directly into the SUDS format using Scream!, or replay existing GCF files into Scream! and record in SUDS format.
ARTeMIS uses the UFF file format. You can record directly into this format using Scream!, or replay existing files into Scream! and record in UFF format.
You can also use gcf2asc to produce UFF format ASCII files: see below.
PITSA (the Programmable Intreactive Toolbox for Seismological Analysis) uses the GSE file format. You can record directly into this format using Scream!, or replay existing files into Scream! and record in GSE format.
Alternatively, the stand-alone tool gcf2gse will convert GCF files into GSE format. See the software section for full details.
GCF files can be read directly into MATLAB using a simple script.
- Download the example script by right-clicking on the link and selecting Save As… or Save Target As….
- Place the script in your MATLAB scripts directory, and launch MATLAB.
- You can now access the function readgcffile() using the format
[samples, streamid, sps, ist] = readgcffile ( filename );
All samples in the file are returned in the array samples. The stream ID is returned as a string of up to 6 characters in streamid, whilst sps is the sample rate used, in samples/s. ist is a serial date number representing the start time of the data.
The file may contain continuous, interrupted, or overlapping data for one or several streams.
readgcffile.m includes a sample function to plot the data in any GCF file, for adaptation to your own MATLAB software.
(This script is provided as-is, and should only be considered as an example of how to read GCF data in MATLAB.)
“ASCII” is not itself a format, in the same way that binary is not a format, because it does not specify the layout of the data within the file. All it specifies is a way to encode characters as bytes, just as binary specifies a way to encode numbers as bytes. ASCII files are usually larger then binary files for the same amount of information, which is why GCF (Guralp Compressed Format) is a binary format. Seismic data in ASCII formats can occupy as much as 10 times more space than the same data in GCF format.
In general, what people mean by an “ASCII format” data file is simply one in which the numbers are encoded as character strings. so the string 20 = (2, 0) = (50, 48). Details of which numbers go where in the file depend on the system you are using. Some expect the first few lines to form a ‘header’ in a specific layout, with certain values (e.g. date, time, sample rate) in specific positions on specific lines. The actual sample values normally follow, but there may be be one per line, 4 per line, 5 per line, etc. The ‘field width’ for the sample number can vary, sometimes 8 digits per number, sometimes more or less.
To try to overcome these ambiguities, we have developed a command-line converter program, gcf2asc, that allows you to specify the layout that your system expects for its ASCII data. This free program is available in our software section.
You should only use ASCII conversion if there is no other way to get GCF data into your application.
One particular format which has an ASCII representation is UFF. Scream! has special support for this format: see above for details. gcf2asc can also create ASCII files in UFF format with the command
gcf2asc your-gcf-file.gcf /uff
This command will create a file your-gcf-file.txt, which you should rename to have a .ufa extension.
You can record directly into the MiniSEED format using Scream!, or replay existing GCF files into Scream! and record in MiniSEED format. The CMG-DCM can also record streams directly into MiniSEED format, and compile full SEED volumes from recorded data. You will need to specify full calibration information for your sensor and digitiser to record full SEED volumes.