FDSN Web Services#

Use FDSNWS to access station metadata in FDSN StationXML, StationXML and SC3XML formats and time series data in miniSEED format. For full details visit: http://www.fdsn.org/webservices/ and https://www.seiscomp3.org/doc/jakarta/current/apps/fdsnws.html.

IP to use for fdsnws queries: https://data.raspberryshake.org/fdsnws/

Note

The RASPISHAKE data center has been included in the IRIS Federator system. See also: IRIS FDSN Stats and the FDSN AM network page.

Note

All historical data all the way back to 2016 when Raspberry Shake was born is now online and available via FDSNWS

Warning

fdsnws-event is not currently supported

Note

FDSN is not a real-time streaming protocol. It will serve data T minus 30 minutes and older. For real-time streaming services, please contact sales@raspberryshake.org. For additional details, please consult our License.

Note

It is possible to visualize what Shakes were online in any specific time period with this IRIS tool.

Note

If an error 502 appears when trying to access our FDSNWS services, simply wait for 60-90 seconds and then try again.

FDSNWS Traffic Optimization#

To ensure the best service performance and user experience, each request allows to download up to 24h of data. For multi-day requests, consider splitting them accordingly.

Also, the following optimizations are in place to avoid overwhelming the service with too many and/or too large requests. They are as follows:

  • 5 requests per second, or

  • 30 requests per minute.

  • After 200MB have been delivered, the download rate for the same IP slows down to 500KB/s.

When these limits are exceeded, a 429 error will appear. If so, consider adding a small delay between your bulk request queries to avoid it.

Waveforms#

fdsnws-dataselect example via wget:

$ wget --no-check-certificate "https://data.raspberryshake.org/fdsnws/dataselect/1/query?net=AM&sta=R5661&loc=00&cha=SHZ&start=2017-06-20T20:00:00&end=2017-06-20T20:05:00" -O waveform.mseed

fdsnws-dataselect example via ObsPy (obspy version 1.2.0 and higher):

from obspy.clients.fdsn import Client
from obspy import UTCDateTime
start_1 = "2020-01-01 00:00:00"
starttime = UTCDateTime(start_1)
endtime = starttime + 600       # 600 seconds
client = Client('RASPISHAKE')
waveform = client.get_waveforms('AM', 'R24FA', '00', 'EHZ', starttime, endtime)

fdsnws-dataselect example via ObsPy (pre obspy version 1.2.0):

from obspy.clients.fdsn import Client
from obspy import UTCDateTime
start_1 = "2020-01-01 00:00:00"
starttime = UTCDateTime(start_1)
endtime = starttime + 600       # 600 seconds
client = Client(base_url='https://data.raspberryshake.org/')
waveform = client.get_waveforms('AM', 'R24FA', '00', 'EHZ', starttime, endtime)

Note

Data is recorded and stored as raw counts. To convert to metric units, see the example here: Converting counts to metric units using ObsPy.

Metadata#

fdsnws-station example via wget:

$ wget --no-check-certificate "https://data.raspberryshake.org/fdsnws/station/1/query?net=AM&level=resp" -O sta.xml

fdsnws-station example via ObsPy (obspy version 1.2.0 and higher):

from obspy.clients.fdsn import Client
client = Client('RASPISHAKE')
metadata = client.get_stations(network='AM', station='R24FA', location='00', channel='EHZ', level='RESP')

fdsnws-station example via ObsPy (pre obspy version 1.2.0):

from obspy.clients.fdsn import Client
client = Client(base_url='https://data.raspberryshake.org/')
metadata = client.get_stations(network='AM', station='R24FA', location='00', channel='EHZ', level='RESP')

Tools#

If you are just learning how to build fdsnws requests, here is a great tool for building FDSNWS web requests: