Querying for catalogue events

Simple queries

The EventTable class comes with a fetch_open_data() method that queries the Gravitational-Wave Open Science Center (GWOSC) database for events and their parameters associated with one of the catalogue event releases.

Note

For more details on the GWOSC catalogues, see https://www.gw-openscience.org/catalog/.

The simplest query just requires the catalogue name, and will return all parameters for all events in the catalogue:

>>> from gwpy.table import EventTable
>>> t = EventTable.fetch_open_data("GWTC-1-confident")
>>> print(t)
  name              E_rad                L_peak    ...      tc       utctime
         8.98755e+16 m2 solMass / s2 1e+56 erg / s ...
-------- --------------------------- ------------- ... ------------ ----------
GW150914                         3.1           3.6 ... 1126259462.4 09:50:45.4
GW151012                         1.5           3.2 ... 1128678900.4 09:54:43.4
GW151226                         1.0           3.4 ... 1135136350.6 03:38:53.6
GW170104                         2.2           3.3 ... 1167559936.6 10:11:58.6
GW170608                         0.9           3.5 ... 1180922494.5 02:01:16.5
GW170729                         4.8           4.2 ... 1185389807.3 18:56:29.3
GW170809                         2.7           3.5 ... 1186302519.8 08:28:21.8
GW170814                         2.7           3.7 ... 1186741861.5 10:30:43.5
GW170817                        0.04           0.1 ... 1187008882.4 12:41:04.4
GW170818                         2.7           3.4 ... 1187058327.1 02:25:09.1
GW170823                         3.3           3.6 ... 1187529256.5 13:13:58.5

The full list of available columns can be queried as follows:

>>> print(t.info)
<EventTable length=11>
   name     dtype              unit
---------- ------- ---------------------------
      name    str8
     E_rad float64 8.98755e+16 m2 solMass / s2
    L_peak float64               1e+56 erg / s
   a_final float64
   chi_eff float64
  distance float64                         Mpc
   far_cwb   str32                      1 / yr
far_gstlal float64                      1 / yr
 far_pycbc   str32                      1 / yr
     mass1 float64                     solMass
     mass2 float64                     solMass
    mchirp float64                     solMass
    mfinal float64                     solMass
  redshift float64
  sky_size float64                        deg2
   snr_cwb   str32
snr_gstlal float64
 snr_pycbc   str32
        tc float64
   utctime   str10

Filtered queries

The columns returned can be selected using the column keyword, and mathematical selection filters can be applied on-the-fly using the selection keyword:

>>> t = EventTable.fetch_open_data(
...     "GWTC-1-confident",
...     selection="mass1 < 4",
...     columns=["name", "mass1", "mass2", "distance"],
... )
>>> print(t)
  name    mass1   mass2  distance
         solMass solMass   Mpc
-------- ------- ------- --------
GW170817    1.46    1.27     40.0

For more information on filtering, see Filtering tables.

For some examples of visualising the catalogues, see Plotting an EventTable in a scatter and Plotting an EventTable in a histogram.

Indexing by event name

The EventTable returned by fetch_open_data() includes an index based on the 'name' column, so you can directly access rows in the table based on their name:

>>> t = EventTable.fetch_open_data(
...     "GWTC-1-confident",
...     columns=["name", "utctime", "mass1", "mass2", "distance"],
... )
>>> print(t.loc["GW170817"])
  name    utctime    mass1   mass2  distance
                    solMass solMass   Mpc
-------- ---------- ------- ------- --------
GW170817 12:41:04.4    1.46    1.27     40.0