FDSN webservice

The International Federation of Digital Seismograph Networks (FDSN) has defined web services for accessing waveform, station and event information. Data centres adopting these, such as GeoNet and IRIS, will be able to offer their data in a consistent way.

The FDSN specification defines an internationally recognized, standard interface. Programs that access data via these FDSN web services should also be compatible with any other data centre implementing FDSN interfaces.

New webservice coming!


GeoNet is currently in the process of upgrading our FDSN webservices. Our current service at service.geonet.org.nz is only supporting station and waveform requests.

Our new service is in beta and can be tested using beta-service.geonet.org.nz. It will include all three services and will be more robust. If you test our beta please provide us with feedback, especially if you can break it! Please include an example of your request with your feedback. Please provide feedback by raising an issue in our github repository.

Where is the beta FDSN webservice at now:

Service Comment
station Full station service, including historical stations
event Full event service
dataselect Only 2016 waveform data is available

General Information


GeoNet uses the following address to support our implementation service.geonet.org.nz

The syntax of the queries can be displayed at:

Examples

Data Select:


Request waveforms from a strong motion sensor (location 20) at station TDHS for all channels and sample rates (channel ?N?) for the period starting from 2016-09-01 at 16:37 for 300 seconds.


http://service.geonet.org.nz/fdsnws/dataselect/1/query?station=TDHS&location=20&channel=?N?&starttime=2016-09-01T16:37:00.000&endtime=2016-09-01T16:42:00.000
Output is a miniseed file. This example uses Curl to download data from a **single query** to the file test.mseed:
curl "http://service.geonet.org.nz/fdsnws/dataselect/1/query?network=NZ&station=CHST&location=01&channel=LOG&starttime=2017-01-09T00:00:00&endtime=2017-01-09T23:00:00" -o test.mseed
This example uses **multiple queries** using POST, in this case saving to test_post.mseed: `curl -v --data-binary @post_input.txt http://service.geonet.org.nz/fdsnws/dataselect/1/query -o test_post.mseed` The contents of post_input.txt:
NZ ALRZ 10 EHN 2017-01-09T00:00:00 2017-01-09T02:00:00
NZ ALRZ 10 AC* 2017-01-02T00:00:00 2017-01-10T00:00:00
NZ ALRZ 10 B?  2017-01-09T00:00:00 2017-01-10T00:00:00

Event:


Request event information for the Kaikoura earthquake. This is a single event request using the Public ID of the earthquake.

http://service.geonet.org.nz/fdsnws/event/1/query?eventid=2016p858000

Request information about aftershocks from the first 24-hours afterwards above M6. This searches the catalogue and retrieves all available events.

http://service.geonet.org.nz/fdsnws/event/1/query?minmagnitude=6&starttime=2016-11-13T11:05:00&endtime=2016-11-14T11:05:00

Output is in QuakeML format

Note: Event is currently only available at beta-service.geonet.org.nz

Station


Request station metadata for stations within a 0.5 degree radius from the Kaikoura earthquake epicentre.

http://service.geonet.org.nz/fdsnws/station/1/query?latitude=-42.693&longitude=173.022&maxradius=0.5

Output is in StationXML format

Examples using Python and the Obspy module


Python and the Obspy module are commonly used in the scientific community. Below are the equivalent python examples to the URL-based ones above. Outputs are the trace, catalogue and inventory objects, they can be exported as files in various formats if needed. See Obspy documentation and Obspy tutorial for more examples and information.

In Obspy you don't need to specify the full address of GeoNet's service, i.e. service.geonet.org.nz you can simply use the FDSN client shortcut "GEONET".

Note if you want to use test the beta version replace "GEONET" with "http://beta-service.geonet.org.nz"

Requesting Waveforms:
from obspy import UTCDateTime
from obspy.clients.fdsn import Client as FDSN_Client
client = FDSN_Client("GEONET") t = UTCDateTime("2016-09-01T16:37:00.000") st = client.get_waveforms("NZ", "TDHS","20", "?N?", t, t + 300) st.plot()
Requesting Earthquake Information:

Request information for a single earthquake using it's Public ID, this example uses the M7.8 Kaikoura earthquake

cat = client.get_events(eventid="2016p858000")

Add to this the earthquakes of magnitude 6 for 24 hours following the earthquake

cat += client.get_events(starttime="2016-11-13 11:05:00.000", endtime="2016-11-14 11:00:00.000", minmagnitude=6)

Requesting Station Information

This request is for station information, down to the channel level, for stations within a 0.5 degree radius around the epicentre of the Kaikoura earthquake

inventory = client.get_stations(latitude=-42.693,longitude=173.022,maxradius=0.5, level="station")