Using the Seed PSD web services at GEOFON

Back to web services overview

GEOFON routinely computes power spectral densities (PSDs) calculated over one-hour segments for our data sets. These calculations allow probability distribution function (PDF) and spectrogram plots to be made available by the SeedPSD service available at

https://geofon.gfz.de/eidaws/seedpsd/1/

This is an implementation of the service developed at Résif-DC, the EPOS-France seismological data center [1], (source code). PSDs are calculated with the method described by McNamara [2] using ObsPy's PPSD class [3].

Below we show a few examples of using the SeedPSD service at GEOFON. PSD coverage is currently incomplete. We have begun with data archived in the current year (2025) and intend to eventually produce metrics for the entire achive. We aim to have the most recent data processed within 1-2 days of its acquisition at the data centre, but as this is computationally intensive it may be delayed from time to time.

[1] P. Bollard, Schaeffer, J., Stehly L., Pedersen, H., & Wolyniec, D. (2022). SeedPSD: Un nouvel outil pour le contrôle de la qualité des données sismologiques. Lettre d'information Résif, 22.

[2] McNamara, D. E. & Buland, R. P. (2004). Ambient Noise Levels in the Continental United States. Bull. Seismol. Soc. Am., 94(4):1517-1527. https://doi.org/10.1785/012003001.

[3] The ObsPy Development Team (2017). obspy.signal.spectral_estimation.PPSD, in ObsPy: A Python Toolbox for seismology/seismological observatories, version 1.1.0.

Histogram service

The histogram service generates probability density function (PDFs) images by overlaying PSD curves for a single stream over a long period of time.

PDF figure for GE.NPW..HHZ, first four months of 2025
https://geofon.gfz.de/eidaws/seedpsd/1/histogram?network=GE&station=NPW&location=--&channel=HHZ&nodata=404&start=2025-01-01&end=2025-04-01
The 100 sps vertical stream at DMH/GEOFON Station Naypyitaw (GE.NPW..HHZ) stream for the first three months of 2025. This is plotted with the default settings. Note the empty location code used for GE.NPW..HHZ must be specified by "location=--" in the query string.

For further details see https://geofon.gfz.de/eidaws/seedpsd/1/histogram, which can also assist in building URLs for other requests to the service. The plots include:

  • A horizontal bar below provides an overview of coverage, that is the time windows during which waveform data was available for computation.
  • The solid gray curves show appropriate noise models.

At GEOFON, the necessary internal data is calculated with a few days' lag. Typically PDFs are available within 48 hours of data collection, but this lag may increase when we have a sudden influx of archived data to be processed.

Spectrogram service

The septogram webservice generates spectrogram images for a defined data source and time period.

Spectrogram figure for GE.HMDM..BHZ, four days around 2025-03-30
https://geofon.gfz.de/eidaws/seedpsd/1/spectrogram?network=GE&station=HMDM&location=--&channel=BHZ&nodata=404&start=2025-03-28&end=2025-04-01
Spectrogram of BHZ data recorded at GEOFON Station Hanimaadhoo, Maldives (GE.HMDM) from 28 March to 1 April, 2025.

Value service

The value service provides the underlying numerical values used to produce the figures displayed by the histogram and spectrogram services. Here type can specify one of PSD, "PSD mean", "PSD Mode", "Histogram" or "Spectrogram"; format can be CSV, JSON, or NPZ. See the documentation.

http://geofon.gfz.de/eidaws/seedpsd/1/value?network=GE&station=NPW&location=--&channel=HHZ&type=mode&format=csv&nodata=404&start=2025-04-01T04%3A01%3A20&end=2025-04-02
Requests the mode of PSDs recorded at NPW, output as CSV. Response is:
########################################################################################
## GE.NPW..HHZ at 100.0Hz from 2025-04-01T00:00:00.550000 to 2025-04-02T00:00:00.550000 
#############################
Period,Mode
0.019999999999999997,-92.5
0.02181015465330515,-94.5
0.02378414230005442,-95.5
0.025936791093020196,-94.5
0.02828427124746191,-94.5
0.030844216508158825,-97.5
[etc.]

[Aside: Using the clipboard icon in the URL builder didn't work: it misses 'start=value'. But old-fashioned cut and paste works!]

Coverage service

This service indicates what time spans have had PSDs computed. Output is as a CSV (default) or JSON file.

https://geofon.gfz.de/eidaws/seedpsd/1/coverage?network=GE&station=NPW&location=--&channel=??Z&extent=true&start=2025-01-01&end=2025-07-01
Request information about PSDs computed at NPW for the first half of 2025, vertical channels only. Response is a CSV file:
Network,Station,Location,Channel,Sampling rate,Start time,End time,Is valid,Last update
GE,NPW,,BHZ,20.0,2025-02-10T15:44:08.000000Z,2025-02-11T00:00:16.150000Z,True,2025-04-07T14:49:48.658037Z
GE,NPW,,BHZ,20.0,2025-02-11T00:00:16.200000Z,2025-02-12T00:00:12.550000Z,True,2025-04-07T14:49:53.546990Z
GE,NPW,,BHZ,20.0,2025-02-12T00:00:12.600000Z,2025-02-13T00:00:14.850000Z,True,2025-04-07T14:50:00.472485Z
[...]
This indicates that we only had PSDs starting from 2025-02-10 for this station, not 2025-01-01 as specified in the query.

There may be many reasons why PSDs are not available - data was not acquired, or transferred, or PSDs have not yet been computed for the data we have archived.

Note wild cards (?) are supported e.g. channel=??Z here. You can use end=currentutcday in the query string to request information about channels up to the present day.