GWDataFind
Installation
$ python -m pip install gwdatafind
Supported python versions: 2.7, 3.4+.
$ conda install -c conda-forge gwdatafind
Supported python versions: 2.7, 3.5+.
$ apt-get install python3-gwdatafind
Supported python versions: 2.7, 3.4 (Jessie), 3.5 (Stretch), 3.6 (Buster), click here for instructions on how to add the required debian repositories.
$ yum install python-gwdatafind
Supported python versions: 2.7, click here for instructions on how to add the required yum repositories.
$ port install py37-gwdatafind
Supported python versions: 2.7, 3.6, 3.7.
Overview
The client library for the LIGO Data Replicator (LDR) service.
The DataFind service allows users to query for the location of Gravitational-Wave Frame (GWF) files containing data from the current gravitational-wave detectors.
This package provides the HTTPConnection
and
HTTPSConnection
class objects, for connecting to an LDR server
in open and authenticated access modes respectively.
The authenticated HTTPSConnection
requires users have a valid X509
certificate that is registered with the server in question.
Quick-start
The following convenience functions are provided to perform single queries without a persistent question:
Ping the LDR host to test for life. |
|
Query the LDR host for observatories. |
|
Query the LDR host for frame types. |
|
Query the LDR for times for which files are avaliable. |
|
Query the LDR host for a single filename. |
|
Find all files of the given type in the [start, end) GPS interval. |
|
Query for the most recent file of a given type. |
For example:
>>> from gwdatafind import find_urls
>>> urls = find_urls("L", "L1_GWOSC_O2_4KHZ_R1", 1187008880, 1187008884,
... host="datafind.ligo.org:443")
>>> print(urls)
['file://localhost/cvmfs/gwosc.osgstorage.org/gwdata/O2/strain.4k/frame.v1/L1/1186988032/L-L1_GWOSC_O2_4KHZ_R1-1187008512-4096.gwf']
Additionally, one can manually open a connection using the
connect()
function, and then perform multiple queries.
The connect()
function will automatically select the correct protocol
based on the host given, and will attempt to access any required X509
credentials.
For example:
>>> from gwdatafind import connect
>>> conn = connect(host="datafind.ligo.org", port=443)
>>> obs = conn.find_observatories()
>>> print(obs)
['H', 'V', 'L']
>>> urls = {}
>>> for ifo in obs:
... urls[ifo] = conn.find_urls(ifo, "{}1_GWOSC_O2_4KHZ_R1".format(ifo),
... 1187008880, 1187008884)
>>> print(urls)
{'H': ['file://localhost/cvmfs/gwosc.osgstorage.org/gwdata/O2/strain.4k/frame.v1/H1/1186988032/H-H1_GWOSC_O2_4KHZ_R1-1187008512-4096.gwf'],
'V': ['file://localhost/cvmfs/gwosc.osgstorage.org/gwdata/O2/strain.4k/frame.v1/V1/1186988032/V-V1_GWOSC_O2_4KHZ_R1-1187008512-4096.gwf'],
'L': ['file://localhost/cvmfs/gwosc.osgstorage.org/gwdata/O2/strain.4k/frame.v1/L1/1186988032/L-L1_GWOSC_O2_4KHZ_R1-1187008512-4096.gwf']}