A python interface to the GW Open Science data archive

gravitational-waves, ligo, open-data, python
pip install gwopensci==0.2.1


gwosc client API

The gwosc package provides an interface to querying the open data releases hosted on from the GEO, LIGO, and Virgo gravitational-wave observatories.

Release status

PyPI version Conda version
DOI License Supported Python versions

Development status

Travis Circle Appveyor
Codecov Maintainability Documentation


To install:

conda install -c conda-forge gwosc


pip install gwosc

Searching for datasets

To search for available datasets (correct as of March 14 2018):

>>> from gwosc import datasets
>>> datasets.find_datasets()
['GW150914', 'GW151226', 'GW170104', 'GW170608', 'GW170814', 'GW170817', 'LVT151012', 'O1', 'S5', 'S6']
>>> datasets.find_datasets(detector='V1')
['GW170814', 'GW170817']
>>> datasets.find_datasets(type='run')
['O1', 'S5', 'S6']

To query for the GPS time of an event dataset (or vice-versa):

>>> datasets.event_gps('GW170817')
>>> datasets.event_at_gps(1187008882)

Similar queries are available for observing run datasets:

>>> datasets.run_segment('O1')
(1126051217, 1137254417)
>>> datasets.run_at_gps(1135136350)  # event_gps('GW151226')

Locating data URLs by event name

You can search for remote data URLS based on the event name:

>>> from gwosc.locate import get_event_urls
>>> get_event_urls('GW150914')
['', '', '', '']

You can down-select the URLs using keyword arguments:

>>> get_event_urls('GW150914', detector='L1', duration=32)

Locating data URLs by GPS interval

You can search for remote data URLs based on the GPS time interval as follows:

>>> from gwosc.locate import get_urls
>>> get_urls('L1', 968650000, 968660000)
['', '', '', '']

This arguments for this function are as follows

  • detector : the prefix of the relevant gravitational-wave interferometer, either 'H1' for LIGO-Hanford, or 'L1' for LIGO Livingston,
  • start: the GPS start time of the interval of interest
  • end: the GPS end time of the interval of interest

By default, this method will return the paths to HDF5 files for the 4 kHz sample-rate data, these can be specified as keyword arguments. For full information, run

>>> help(get_urls)

Query for Timeline segments

You can also search for Timeline segments, based on a flag name, and a GPS time interval as follows:

>>> from gwosc.timeline import get_segments
>>> get_segments('H1_DATA', 1126051217, 1126151217)
[(1126073529, 1126114861), (1126121462, 1126123267), (1126123553, 1126126832), (1126139205, 1126139266), (1126149058, 1126151217)]

The output is a list of (start, end) 2-tuples which each represent a semi-open time interval.

For documentation on what flags are available, for example for the O1 science run, see the O1 data release page (Data Quality).