Expressing response information in SEED files
The Standard for the Exchange of Earthquake Data (SEED) is an international standard format for seismological data developed by IRIS. A feature of SEED is that it allows you to document the exact sequence of filters used in the digitising process, so that others can work back to the original ground movement if necessary.
This document explains how to construct SEED headers for seismic data from Guralp instruments.
SEED files use control headers containing sets of blockettes to describe the response characteristics for each stream. In SEED, a blockette consists of a type code, its length in bytes, and a series of fields in a specified order. You can have several blockettes of the same type.
Data in the blockettes is given in ASCII format, so the integer 100 is expressed as the three characters 100. To represent a floating-point number, SEED uses 12-character records consisting of:
- a sign character: – for negative and +, 0 or space for positive values,
- 7 characters representing the first part of the number in scientific notation (the mantissa),
- an E,
- a 3-character signed exponent for the number.
Thus the value 45.5 could be expressed in 12-character form as “ 4.55000E+01” (note the space at the beginning).
If you have saved your data in SEED format from a compatible program, the file should already include 050 Station Identifier and 052 Channel Identifier blockettes. Response data for each channel should go immediately after the 052 Channel Identifier blockette.
Units
You will need to refer to the 034 Units Abbreviation blockettes in the file, to find out the code for the units you will be using. If you open the file in a text editor, this blockette will look like
The three figures 701 immediately before the unit description M/S~Velocity in Metres Per Second~ are the relevant code, and you should use it whenever you need to refer to a velocity later in the file. If there is no 034 Units Abbreviation blockette for velocity in the file, you can add this one (changing the 701 to some other unique code if necessary.) Other common 034 Units Abbreviation blockettes are:
The sensor
The first stage in the process of converting ground motion to the final data stream is the response of the sensor. This is described in two blockettes:
- the transfer function, described in a 053 Response (Poles & Zeros) blockette, and
- the sensor sensitivity, described in a 058 Channel Sensitivity/Gain blockette.
Poles and zeros
The transfer function of the instrument is expressed in terms of its poles and zeros in an 053 Response (Poles & Zeros) blockette:
This can be broken down into the following fields:
- 053 : the blockette type.
- 0382 : the length of the entire blockette in bytes, left-padded to four characters with zeros.
- B : a transfer function type denoting that this is an analogue response function given in Hz.
- 1⬜ : the sequence number for the stage, right-padded to two characters with a space.
- 701 : a code for the units of signal input (i.e. m/s), defined in a previous 034 Units Abbreviation blockette.
- 704 : a code for the units of signal output (i.e. V), defined in a previous 034 Units Abbreviation blockette.
- 7.87395E+00 : the normalization factor from the calibration sheet, in 12-character form.
- 5.00000E-02 : the frequency at which the above normalization factor is valid.
- 3⬜⬜ : the number of zeros, right-padded to three characters with spaces.
- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 : the first zero, consisting of four 12-character values formatted as above and representing the real and imaginary parts of the zero, and the error in each of these values.
- 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
- -1.27000E+01 0.00000E+00 0.00000E+00 0.00000E+00 : the remaining zeros.
- 4⬜⬜⬜ : the number of poles, right-padded to three characters with spaces.
- -1.96418E-03 1.96418E-03 0.00000E+00 0.00000E+00
- -1.96418E-03-1.96418E-03 0.00000E+00 0.00000E+00
- -6.23500E+00 7.81823E+00 0.00000E+00 0.00000E+00
- -6.23500E+00-7.81823E+00 0.00000E+00 0.00000E+00 : the poles.
Sensor sensitivity
The next blockette required is an 058 Channel Sensitivity/Gain blockette to describe the sensitivity of the sensor:
Here the fields in use are:
- 058 : the blockette type.
- 0035 : the length of the entire blockette in bytes, left-padded to four characters with zeros.
- 1⬜ : the sequence number for the stage right-padded to two characters with a space—the same as for the poles and zeros in the previous blockette.
- 3.00000E+03 : the value of the sensitivity, in V/ms⁻¹. The sensitivity is given on the calibration sheet: here 2 × 1500 V/ms⁻¹ = 3000 V/ms⁻¹.
- 1.00000E+00 : the frequency of the gain, in Hz.
- 0 : denotes that no calibration stages are included in this blockette.
The digitiser
In a SEED file, the conversion of analogue voltage into a digital signal is described in three blockettes:
- a transfer function, described in a 054 Response (Coefficients) blockette,
- a sampling process, described in a 057 Decimation blockette, and
- an output gain, described in a 058 Channel Sensitivity/Gain blockette.
Response coefficients
The digitising process is accomplished entirely in the time domain, and thus it has a flat frequency response. The corresponding 054 Response (Coefficients) blockette contains a single coefficient with a value of 1, denoting that the signal is passed through unchanged:
See below for a detailed explanation of the 054 Response (Coefficients) blockette.
Sampling and decimation
A 057 Decimation blockette is used to give the initial sample rate of the digital data. Since the SEED standard defines the input sample rate of the stage, the decimation factor of the digitiser is set at 1:
See below for a detailed explanation of the 057 Decimation blockette.
Output gain
A 058 Channel Sensitivity/Gain blockette is used to provide the gain of the digitiser.
See above for a detailed explanation of the 058 Channel Sensitivity/Gain blockette.
Filters
The digitiser’s initial signal is not output directly. Instead, data undergoes a series of decimation filters to reduce its rate and focus on the frequency range of interest.
Guralp digitisers allow you to select up to four data streams from each component, with different sample rates. Each of the digitiser’s output points is called a tap. Before each tap, the digitiser applies up to two FIR filters which reduce the rate by a factor of 2, 4 or 5. In addition, the initially-sampled data has undergone several stages of decimation before it reaches the taps. To provide a full description of the final tap, you will need to describe all the decimation stages in turn—which may be as many as 12.
The exact filter configuration depends on the digitiser you are using. This information is available in a separate article.
In a SEED file, each stage of decimation is represented by three blockettes:
- the coefficients of the filter, described in a 054 Response (Coefficients) blockette,
- the decimation itself, described in a 057 Decimation blockette, and
- an output gain, described in a 058 Channel Sensitivity/Gain blockette.
As well as being in order, each of these blockettes includes a sequence number showing which filter stage it applies to. Stages 1 and 2 have already been used for the sensor and digitiser, so the filter stages will begin with stage 3.
Filter coefficients
The 054 Response (Coefficients) blockette provides the coefficients for a FIR filter.
This can be broken down into the following fields:
- 054 : the blockette type.
- 0356 : the length of the entire blockette in bytes, left-padded to four characters with zeros.
- D : a response type denoting that this is a digital transformation with coefficients relative to the original signal.
- 3⬜ : the sequence number for the stage, right-padded to two characters with a space.
- 705 : a code for the units of signal input (i.e. counts), defined in a previous 034 Units Abbreviation blockette.
- 705 : a code for the units of signal output (i.e. counts also), defined in a previous 034 Units Abbreviation blockette.
- 13⬜⬜ : the number of coefficients, right-padded to four characters with spaces.
- 2.44000E-04 0.00000E+00… : the coefficients, consisting of pairs of 12-character values representing the coefficient itself and the error.
- 0⬜⬜⬜ : the number of denominator coefficients, right-padded to four characters with spaces. This will always be zero, because FIR filters do not have denominator coefficients.
A single SEED blockette cannot contain more than 414 filter coefficients, since the maximum length allowed is 9999 characters. To express filters with more coefficients than this, you should place as many as possible in the blockette, and start a new blockette immediately after with the same sequence number. Thus, a 1000-point FIR filter would be expressed as a sequence of blockettes as follows:
Be sure to include the 0000 (or 0) at the end of each blockette, which tells SEED that blockette contains no denominators. The length of each blockette is given by 24 + ( number-of-coefficients × 24).
Decimation
The 057 Decimation blockette describes the input sample rate and the decimation factor provided by the filter:
Here the fields in use are:
- 057 : the blockette type.
- 0055 : the length of the entire blockette in bytes, left-padded to four characters with zeros.
- 3⬜ : the sequence number for the stage, right-padded to two characters with a space.
- 2.56000E+05 : the input sample rate, in Hz.
- 8⬜⬜⬜ : the decimation factor, right-padded to four characters with spaces.
- 0 : denotes that there is no decimation offset.
- 0.00000E+00 0.00000E+00 : the estimated time delay introduced by the filter, and the correction applied to counteract it.
Output gain
A 058 Channel Sensitivity/Gain blockette is used to provide the gain of the filter. This is always 1.
See above for a detailed explanation of the 058 Channel Sensitivity/Gain blockette.