Using the EIDAWS web services at GEOFON

GEOFON offers detailed metric information including quality control parameters for seismic waveform data. Anyone may request this metadata, using any suitable web client. We offer the following service from geofon.gfz-potsdam.de:

  • EIDA's wfcatalog - Detailed waveform metric information including availability and quality control parameters (sample metrics, record header flags, and timing quality) for data archived at GFZ (not other EIDA data centres).

For a complete service description, please refer to WFCatalog Web Service Specification by Luca Trani, Reinoud Sleeman, Mathijs Koymans and the EIDA team (v. 0.22, 2016-11-15). PDF

A few example URLs for the WFCatalog web service are given below. Further documentation and examples are at the ORFEUS web site.

wfcatalog examples

http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/version
Currently returns the string "1.0.0".

You will certainly want to restrict your time window using 'starttime' and 'endtime' with an ISO-8601 date as for the FDSN web services. You will also need to specify the channel(s) of interest using 'network', 'station', 'location' and 'channel' as in the SEED standard. Output is exclusively provided as JSON.

http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&sta=BKB&cha=BHZ&starttime=2017-05-29T14:00:00&endtime=2017-05-29T15:00:00
Returns quality information as JSON for the BHZ channel at GEOFON station Balikpapan, Kalimantan, in the afternoon of 29 May 2017, as a JSON object:
[
   {
      "station" : "BKB",
      "quality" : "D",
      "num_records" : 6471,
      "record_length" : [
         512
      ],
      "location" : "",
      "sum_gaps" : 0,
      "sum_overlaps" : 0,
      "format" : "miniSEED",
      "encoding" : [
         "STEIM2"
      ],
      "num_gaps" : 0,
      "version" : "1.0.0",
      "network" : "GE",
      "max_gap" : null,
      "start_time" : "2017-05-29T00:00:00.000Z",
      "end_time" : "2017-05-30T00:00:00.000Z",
      "max_overlap" : null,
      "num_overlaps" : 0,
      "sample_rate" : [
         20
      ],
      "channel" : "BHZ",
      "producer" : {
         "created" : "2017-05-30T05:05:02.091Z",
         "name" : "GFZ",
         "agent" : "ObsPy mSEED-QC"
      },
      "percent_availability" : 100
   }
]
Note the start_time and end_time fields indicate the segment of the data stream over which the statistics are actually calculated. This is generally larger than the time window specified in the request, and for GEOFON data, is typically one day. This time period is the "granularity" at which we compute metrics such as gaps, overlaps and availability at the data centre. Note also that JSON objects may have fields returned in any order.
http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&sta=BKB&starttime=2017-05-29T14:00:00&endtime=2017-05-29T15:00:00
Returns the same information as the previous example, but for all channels of this station.
http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&channel=BHZ&starttime=2017-05-29T14:00:00&endtime=2017-05-29T15:00:00
Returns information for all BHZ channels of all stations in the GEOFON seismic network.
http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&sta=QQQ&start=1980-01-01&endtime=2012-01-01
Requests data from the GEOFON station QQQ; this station does not exist, and the service returns "204 No Content" instead.
Additional output information can be requested:
  1. Adding include=header provides the miniseed_header_percentage section including activity_flags, data_quality_flags, io_and_clock_flags subsections and timing information.
    [
       {
          "miniseed_header_percentages" : {
             "activity_flags" : {
                "event_begin" : 0,
                "event_end" : 0,
                "negative_leap" : 0,
                "positive_leap" : 0,
                "time_correction_applied" : 0,
                "calibration_signal" : 0
             },
             "data_quality_flags" : {
                "digital_filter_charging" : 0,
                "digitizer_clipping" : 0,
                "glitches" : 0,
                "missing_padded_data" : 0,
                "spikes" : 0,
                "suspect_time_tag" : 0,
                "telemetry_sync_error" : 0,
                "amplifier_saturation" : 0
             },
             "io_and_clock_flags" : {
                "end_time_series" : 0,
                "short_record_read" : 0,
                "start_time_series" : 0,
                "station_volume" : 0,
                "clock_locked" : 100
             },
             "timing_correction" : 0,
             "timing_quality_lower_quartile" : 100,
             "timing_quality_max" : 100,
             "timing_quality_mean" : 99.890279709473,
             "timing_quality_min" : 80,
             "timing_quality_upper_quartile" : 100,
             "timing_quality_median" : 100
          },
       }
    ]
    
  2. Adding include=all also provides sample metric parameters (sample_median, sample_rms etc.), along with those described for include=header above.
    [
       {
          "sample_max" : 796187,
          "sample_mean" : 926.121130208333,
          "sample_min" : -784075,
          "sample_lower_quartile" : 702,
          "sample_median" : 929,
          "sample_stdev" : 15652.8070072588,
          "sample_upper_quartile" : 1154,
          "sample_rms" : 15680.1807245423
       }
    ]
    

Finally, it may be useful to restrict the response to include only segments matching certain quality criteria:

http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&cha=BHZ&start=2017-05-29&end=2017-05-30&percent_availability_lt=95
The output is filtered; this query returns only records two streams which have percentage_availability ≤ 95%.
http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&cha=BHZ&starttime=2017-05-29T14:00:00&endtime=2017-05-29T15:00:00&percent_availability_ge=95
The output is filtered; this query returns the other 77 streams, which have percentage_availability > 95%.
http://geofon.gfz-potsdam.de/eidaws/wfcatalog/1/query?net=GE&cha=BHZ&starttime=2017-05-29T14:00:00&endtime=2017-05-29T15:00:00
This query returns records for all 79 segments.

See the WFCatalog specification and ORFEUS web site for more on this.

Access to restricted data with webservices

Metric information for stations with restricted channels is also available through the wfcatalog service.

Notes

  1. There are some limits on the size of requests which will be accepted:
    • There is a maximum number of objects which wfcatalog will return. This is currently X > 25000 objects.
    There are also some limits on the total number of simultaneous users. If you plan to send many automatic requests, please arrange to send them slowly to avoid inconveniencing other users.
  2. The actual data returned depends on availability.
  3. See also the published description of the service, in Trani et al..
    • Luca Trani, M. Koymans, M. Atkinson, R. Sleemana and R. Filgueira (September 2017). "WFCatalog: A catalogue for seismological waveform data", Computers & Geosciences. Vol. 106, pp. 101-108. doi:10.1016/j.cageo.2017.06.008. doi