Supporting instruments with non-standard responses
The nominal phase and amplitude response of a seismometer at different frequencies is described by a set of numbers known as the poles and zeroes of the transfer function. When you measure the response of an instrument using a broadband noise calibration, the Scream! calibration add-on can display the nominal response curves on the same graphs as the measured response curves. It does this by looking up the RESPONSE CODE in an internal database. You can specify the response code each time you perform a calibration or you can program it once into the digitiser by using InfoBlocks.
Some instruments have non-standard responses which are not contained in the database. A facility exists to extend the database: this allows you to work with non-standard instruments.
If a Scream! add-on cannot find a response code in its internal database, it looks for a file called polezero.txt. This file contains one or more specifications: each specification gives the correct poles and zeroes to use for a given response code. The specification consists of a number of elements:
- The response code itself, followed by a space and then either Velocity or Acceleration, all surrounded in square brackets ('[' and ']');
- A line beginning Z= followed by a comma-separated list of the zeroes of the instrument's transfer function;
- A line beginning P= followed by a comma-separated list of the poles of the instrument's transfer function;
- A line beginning A= followed by the normalisation factor; and
- A line beginning units= specifying the units in which the poles and zeroes are given (typically units=Hz but you can also use units=radians).
Note: The file can include comment lines, which
must start with a
Real poles and zeroes can be specified as simple integers (e.g. 50), decimal numbers (e.g. 50.12) or in engineering notation (e.g. 1.23e-6 for 1.23×10-6).
Complex poles are specified as the sum of a real and an imaginary element. Imaginary elements should be identified with a trailing 'j', such as 1.2j. Both can be specified as simple integers (e.g. 50), decimal numbers (e.g. 50.12) or in engineering notation (e.g. 1.23e-6 for 1.23×10-6).
You wish to connect a ABC123 geophone to a DM24 digitiser and view the output in Scream. You would like to check the calibration but there is no suitable response code available.
According to the manufacturer, the ABC123 is a velocimeter. Its transfer function has two zeroes, both at the origin, and a complex conjugate pair of poles at 0.707±0.707i Hertz. The normalisation factor at 1 Hertz is unity.
To support this instrument, we will create a new response code and specify a velocity response for it. Go to the directory in which the Scream! executable resides - typically C:\Program Files\Guralp Systems\Scream-4.5 on Windows systems - and open the file polezero.txt in your favourite text editor. If the file does not exist, create it.
We first add a line to start a new specification. We can call our new response code anything we want, but it is important that the name we choose does not match any of the existing response codes in the database. We can avoid this by prefixing our code with X_ so lets choose X_ABC123. It is a velocity response so we type
This is the title of the specification and the following parameters will be used by Scream whenever a response code of X_ABC123 is given for a velocity response. We could have just typed V or Vel instead of Velocity but omitting this specifier is a frequent cause of errors, so we'll stick with the long form, which is harder to miss. We could also have typed A, Acc or Acceleration for an instrument with an acceleration response.
We now need to specify the zeroes. There are two zeroes, both at the origin, so we type
Z= 0, 0
We now need to specify the poles. There are a pair of complex conjugate poles which we must list individually, so we type
P= 707E-3+707E-3j, 707E-3-707E-3j
We now need to specify the normalisation factor. This is unity at 1 Hz, so we type
Lastly, we specify the units, which are Hertz in this case, so we type
Putting all of this together with an appropriate comment, the specification looks like
# From manufacturer's datasheet, retrieved on May 10th, 2012
Z= 0, 0
P= 707E-3+707E-3j, 707E-3-707E-3j
Once the polezero.txt file has been saved, we can start using X_ABC123 exactly as we would use any other velocity response code.