Skip to main content
Ctrl+K
GWpy 4.0.1 - Home GWpy 4.0.1 - Home
  • Getting Started
  • User Guide
  • API Reference
  • Examples
  • Project Info
  • GitLab
  • Getting Started
  • User Guide
  • API Reference
  • Examples
  • Project Info
  • GitLab

Section Navigation

  • FrequencySeries examples
    • Calculate and plot a FrequencySeries
    • Calculate the coherence between two channels
    • Generating a SpectralVariance histogram
    • Inject a signal into a FrequencySeries
    • Plotting a Rayleigh-statistic Spectrum
    • Plotting an averaged ASD with percentiles.
  • Miscellaneous examples
    • Estimating the spectral contribution to inspiral range
    • Generating an inspiral range timeseries
    • Plotting a spectrogram of all open data for many hours
  • Segments examples
    • Plotting observing segments for O1
  • Signal processing examples
    • Filtering a TimeSeries to detect gravitational waves
  • Spectrogram examples
    • Calculating the time-dependent coherence between two channels
    • Plotting a Spectrogram
    • Plotting a Spectrogram of the Rayleigh statistic
    • Plotting a normalised Spectrogram
    • Plotting an over-dense, short-duration Spectrogram
  • Tabular data examples
    • Calculating (and plotting) rate versus time for an EventTable
    • Plotting EventTable rate versus time for specific column bins
    • Plotting an EventTable as 2-d tiles
    • Plotting an EventTable in a histogram
    • Plotting an EventTable in a scatter
  • TimeSeries examples
    • Accessing and visualising public GW detector data
    • Calculating the SNR associated with an astrophysical signal model
    • Comparing seismic trends between LIGO sites
    • Generate the Q-transform of a TimeSeries
    • Inject a known signal into a TimeSeries
    • Plotting segments for a StateVector
    • Whitening a TimeSeries
  • Examples gallery
  • TimeSeries examples
  • Comparing seismic trends between LIGO sites

Note

Go to the end to download the full example code.

Comparing seismic trends between LIGO sites#

On Jan 16 2020 there was a series of earthquakes, that should have had an impact on LIGO operations, I’d like to find out.

Data access#

We choose to look at the 0.03Hz-1Hz ground motion band-limited RMS channel (1-second average trends) for each interferometer, which records the low-frequency motion caused by distant earthquakes and similar seismic events. These data are available from the O3 Second-trend Data Release.

We use a format string so we can substitute the interferometer prefix without duplicating the channel name:

channel = "{ifo}:ISI-GND_STS_ITMY_Z_BLRMS_30M_100M.rms"
lhochan = channel.format(ifo="H1")
llochan = channel.format(ifo="L1")

To access the data, we can use get(), and give start and end datetimes to fetch 6 hours of data for each interferometer:

from gwpy.timeseries import TimeSeriesDict
data = TimeSeriesDict.get(
    [lhochan, llochan],
    "Jan 16 2020 8:00",
    "Jan 16 2020 14:00",
    parallel=8,
)
failed to read channels for H-H1_GWOSC_O3b_4KHZ_R1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/strain.4k/frame.v1/H1/1262485504/H-H1_GWOSC_O3b_4KHZ_R1-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_GWOSC_O3b_16KHZ_R1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/strain.16k/frame.v1/H1/1262485504/H-H1_GWOSC_O3b_16KHZ_R1-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_AUX_CLN: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_CLN/H1/H-H1_AUX_CLN-12631/H-H1_AUX_CLN-1263196800-64.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_AUX_AR1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_AR1/H1/H-H1_AUX_AR1-12631/H-H1_AUX_AR1-1263196800-64.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_AUX_TREND: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_TREND/H1/H-H1_AUX_TREND-1263/H-H1_AUX_TREND-1263196800-600.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_HOFT_C01_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_C01_AR/H1/H-H1_HOFT_C01_AR-12631/H-H1_HOFT_C01_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_HOFT_C01_CLEAN_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_C01_CLEAN_AR/H1/H-H1_HOFT_C01_CLEAN_AR-12631/H-H1_HOFT_C01_CLEAN_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for H-H1_HOFT_CLEAN_SUB60HZ_C01_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_CLEAN_SUB60HZ_C01_AR/H1/H-H1_HOFT_CLEAN_SUB60HZ_C01_AR-12631/H-H1_HOFT_CLEAN_SUB60HZ_C01_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_GWOSC_O3b_4KHZ_R1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/strain.4k/frame.v1/L1/1262485504/L-L1_GWOSC_O3b_4KHZ_R1-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_GWOSC_O3b_16KHZ_R1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/strain.16k/frame.v1/L1/1262485504/L-L1_GWOSC_O3b_16KHZ_R1-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_AUX_CLN: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_CLN/L1/L-L1_AUX_CLN-12631/L-L1_AUX_CLN-1263196800-64.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_AUX_AR1: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_AR1/L1/L-L1_AUX_AR1-12631/L-L1_AUX_AR1-1263196800-64.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_AUX_TREND: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3AUX/AUX_TREND/L1/L-L1_AUX_TREND-1263/L-L1_AUX_TREND-1263196800-600.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_HOFT_C01_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_C01_AR/L1/L-L1_HOFT_C01_AR-12631/L-L1_HOFT_C01_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_HOFT_C01_CLEAN_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_C01_CLEAN_AR/L1/L-L1_HOFT_C01_CLEAN_AR-12631/L-L1_HOFT_C01_CLEAN_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
failed to read channels for L-L1_HOFT_CLEAN_SUB60HZ_C01_AR: Unable to open file: /cvmfs/gwosc.osgstorage.org/gwdata/O3b/alternate/HOFT_CLEAN_SUB60HZ_C01_AR/L1/L-L1_HOFT_CLEAN_SUB60HZ_C01_AR-12631/L-L1_HOFT_CLEAN_SUB60HZ_C01_AR-1263194112-4096.gwf ( errno=2 (No such file or directory))
error authenticating against nds.ligo.caltech.edu, attempting Kerberos kinit()
error authenticating against nds.ligo-la.caltech.edu, attempting Kerberos kinit()

Visualisation#

Now that we have the data, we can easily plot them:

plot = data[lhochan].plot(
    color="gwpy:ligo-hanford",
    label="LIGO-Hanford",
    yscale="log",
    ylabel=r"$1-3$ Hz motion [nm/s]",
)
ax = plot.gca()
ax.plot(data[llochan], color="gwpy:ligo-livingston", label="LIGO-Livingston")
ax.set_title("Impact of earthquakes on LIGO")
ax.legend()
plot.show()
Impact of earthquakes on LIGO

As we can see, a series of earthquakes was recorded over this period, potentially impacting the LIGO observatories for several hours. However, the advanced seismic isolation systems at each site meant that both observatories were able to maintain lock throughout this period.

Total running time of the script: (0 minutes 57.303 seconds)

Download Jupyter notebook: blrms.ipynb

Download Python source code: blrms.py

Download zipped: blrms.zip

Gallery generated by Sphinx-Gallery

previous

Calculating the SNR associated with an astrophysical signal model

next

Generate the Q-transform of a TimeSeries

On this page
  • Data access
  • Visualisation
Edit on GitLab

© Copyright 2026 Cardiff University.

Created using Sphinx 9.1.0.

Built with the PyData Sphinx Theme 0.16.1.