Metadata - Instrument Response Files#

See also: Technical Specifications & Technical Specifications Documents.

Overview: Metadata explained#

The “metadata” or “instrument response files” complement the raw waveform data, providing the information that seismologists use for data processing, including:

  • gains, overall sensitivity, poles, zeros and filters needed to deconvolve the data and arrive at true ground motion

  • latitude, longitude, elevation (which are obfuscated to ~1 km to protect user’s identities)

  • instrument type

  • any and all changes over time (since May, 2019)

Overview: Instrument response files and self-noise#

_images/Responses_amplitude_and_phase.png

Instrument Response Curve: The Raspberry Shake RS1D, RS3D, RS4D and RS&BOOM velocity channels have flat frequency responses from ~0.5 Hertz (2 seconds) to 80% Nyquist, or ~40 Hz.#

_images/sleeman-RS4DV6-EHZ.png

Sleeman Self-Noise Plot: The self-noise or instrument noise of the Raspberry Shake was calculated using the Sleeman Method. The self-noise of 3 Raspberry Shakes is shown here in blue, red and green. The Nominal High and Low Noise Models (NHNM/ NLNM) & typical spectra of local earthquakes are included for reference. Note that the self-noise of the Raspberry Shake velocity channels is well below the Nominal High Noise Model (NHNM) and far below even local M1.5 earthquakes. In most cases, interpretation of Raspberry Shake data will be limited by cultural and other non-instrument noise sources and not by the self-noise of the Raspberry Shake itself.#

Sleeman Method: Three-Channel Correlation Analysis: A New Technique to Measure Instrumental Noise of Digitizers and Seismic Sensors; R. Sleeman, A. van Wettum and J. Trampert, 2006, BSSA, Vol. 96, No. 1, pp. 258–271

Third-Party Verification#

For a third-party look at the RS4D’s self-noise and to get a better idea of what kind of seismic activity you can record with Raspberry Shake, see the USGS’s peer-reviewed article and YouTube video:

Anthony, R.E.; Ringler, A.T.; Wilson, D.C.; Wolin, E. (2018) Do Low-Cost Seismographs Perform Well Enough for Your Network? An Overview of Laboratory Tests and Field Observations of the OSOP Raspberry Shake 4D. Seismological Research Letters.

Source: IRIS, relevant time: 12:08 to 16:55

For additional third-party studies, see: Independent Reviews

Automatic metadata generation#

In an effort to ease the pain (every seismologist out there knows what we mean by that), we have automated the generation and maintenance of metadata for those Raspberry Shakes that have the Data forwarding option enabled (this now includes the automated opening and closing of Epochs within the response triggered by changes in latitude, longitude, elevation, instrument-type, etc.).

You can download the nominal instrument response file for your Raspberry Shake in XML format using stationView (Click on your station’s triangle and scroll down to “Download instrument response”) or FDSN Web Services (see “fdsnws-station”).

Templates for manual metadata generation#

In the sections that follow you can download a nominal instrument response file for your Raspberry Shake in the following formats:

  • Modern seiscomp-xml format for use with SeisComP3 and SeisComPro

  • RESP for use with Earthworm (AQMS, Earlybird, Hydra), PQLX, SQLX, SEISAN

  • dataless SEED

Instructions on how to use the metadata templates#

  • Using your favorite text editor, replace all instances of ‘STNNM’ with the name of the station the metadata files will be used for.

  • The ‘<start>’ field must also be replaced with the date on which the unit first started collecting data, replace all instances of YYYY-MM-DD accordingly.

Note

What do the different Shake model versions (V6, V7+, etc.) mean? Read our changelog page for a full description.

Raspberry Shake RS1D#

V7+:

V6:

V4/V5:

Raspberry Shake RS3D#

V5+:

V3:

Raspberry Shake RS4D#

V6+:

V5:

V4:

Raspberry Shake RBOOM#

V3+, 1s mechanical filter (default):

V3+, 20s mechanical filter:

Raspberry Shake RS&BOOM#

V3+, 1s mechanical filter (default):

V3+, 20s mechanical filter:

Raspberry Shake RJAM#

We do not provide a nominal response file for the RJAM universal digitizer. As the RJAM is a universal digitizer that is personalized for every sensor, there are just too many possibilities/ resultant sensitivities for a nominal response to be possible. To obtain the instrument response for your RJAM, you would have to connect your sensor to the RJAM and place it on a shake table, for instance, and use something similar to the Pavlis method to back out the instrument response from a co-located seismograph with a known instrument response. This really makes the RJAM most appropriate for applications where the instrument response does not need to be known, such as is most often the case in hobbyist applications.

Here is some background information that will help you build your own custom instrument response file:

LOWER CORNER: This will be dictated by the sensor, not the RJAM. The RJAM’s response is flat to DC.

UPPER CORNER: The RJAM operates at 100 sps and the high corner frequency will almost always be limited by this decimation routine used by the RJAM and not the sensor itself (most seismic sensors are designed to have flat frequency responses from the low corner frequency to past 50 Hz … We use the same decimation routine (FIR coefficients) for the RJAM as for all other RS products. On the RJAM itself it is possible to introduce a single pole low-pass filter (by including capacitors at C[a] and C[b]), these would generally be used to chomp off any noise from 50/60 cycles per second electric lines).

SENSITIVITY: This will depend on the sensor and resistors used in the RJAM. You can determine this empirically with a step table (aka a calibration table) or Shake Table.

The RJAM has a +/- 2.048 V differential input range.

The RJAM is a 24-bit ADC, with 21 noise free bits.

Example ObsPy code for removing response#

In obspy versions 1.2.0 and up:

from obspy.clients.fdsn import Client
from obspy import UTCDateTime

rs = Client('RASPISHAKE')
start = UTCDateTime(2020, 1, 1, 0, 0, 0)
end = UTCDateTime(2020, 1, 1, 0, 30, 0)

stn = 'R0000'            # your station name
inv = rs.get_stations(network='AM', station=stn, level='RESP')

stream = rs.get_waveforms('AM', stn, '00', 'EHZ', start, end)
stream.attach_response(inv)

resp_removed = stream.remove_response()

In obspy versions before 1.2.0:

from obspy.clients.fdsn import Client
from obspy import UTCDateTime

rs = Client(base_url='https://data.raspberryshake.org/')
start = UTCDateTime(2020, 1, 1, 0, 0, 0)
end = UTCDateTime(2020, 1, 1, 0, 30, 0)

stn = 'R0000'            # your station name
inv = rs.get_stations(network='AM', station=stn, level='RESP')

stream = rs.get_waveforms('AM', stn, '00', 'EHZ', start, end)
stream.attach_response(inv)

resp_removed = stream.remove_response()

You can change the behavior of remove_response by adding the options described at:

https://docs.obspy.org/packages/autogen/obspy.core.trace.Trace.remove_response.html