The Channel
class¶
>>> from gwpy.detector import Channel
What is a ‘channel’?¶
Each of the laser-interferometer gravitational-wave detectors record thousands of different data streams capturing a single instrumental error or control signal, or the output of an environmental sensor. These data streams are known as ‘channels’, and are named according to a convention that describes its source in the instrument, and the signal it records, for example:
L1:PSS-ISS_PDB_OUT_DQ
describes the output signal (OUT
) from photodiode-B (PDB
) inside the Intensity Stabilisation System (ISS
) of the Pre-Stabilised Laser (PSL
) powering the L1
instrument, hosted at the LIGO Livingston Observatory. The DQ
suffix indicates that this channel was recorded in data files for offline study (many more ‘test point’ channels are used only in real-time, and are never recorded).
A simple representation of this physical signal is provided by the Channel
object:
>>> from gwpy.detector import Channel
>>> signal = Channel('L1:PSL-ISS_PDB_OUT_DQ')
This new Channel
has a number of attributes that describe its source, derived from its name:
>>> print(hoft.ifo)
'L1'
>>> print(hoft.system)
'PSL'
>>> print(hoft.subsystem)
'ISS'
and so on.
Alongside nominative attributes, each Channel
has the following attributes:
|
Name of this channel. |
|
Rate of samples (Hertz) for this channel. |
|
Data unit for this channel. |
|
Numeric type for data in this channel. |
|
CIS browser url for this channel. |
|
Name of the SIMULINK front-end model that defines this channel. |
Each of these can be manually passed to the Channel
constructor, or downloaded directly from the LIGO Channel Information System.
The LIGO Channel Information System (https://cis.ligo.org)¶
All of the LIGO interferometer data channels are recorded in the Channel Information System (https://cis.ligo.org), a queryable database containing the details of each channel recorded to disk from the observatories.
The Channel.query()
classmethod
allows you to query the database as follows:
>>> from gwpy.detector import Channel
>>> chan = Channel.query('L1:IMC-F_OUT_DQ')
>>> print(chan.sample_rate)
16384.0 Hz
>>> print(chan.url)
https://cis.ligo.org/channel/282666
>>> print(chan.model)
l1lsc
In this example we have accessed the information for the frequency noise output signal (F_OUT
) from the Input Mode Cleaner (IMC
) of the L1
instrument.
The ChannelList
¶
Groups of channels may be collected together in a ChannelList
, a simple extension of the built-in list
with functionality for finding
and sieveing
for specific Channel
names, sample-rates, or types.
Class reference¶
This reference contains the following class
entries:
Representation of a laser-interferometer data channel. |
|
- class gwpy.detector.Channel(name, **params)[source]¶
Representation of a laser-interferometer data channel.
- Parameters:¶
- name
str
,Channel
name of this Channel (or another Channel itself). If a
Channel
is given, all other parameters not set explicitly will be copied over.- sample_rate
float
,Quantity
, optional number of samples per second
- unit
Unit
,str
, optional name of the unit for the data of this channel
- frequency_range
tuple
offloat
[low, high) spectral frequency range of interest for this channel
- safe
bool
, optional is this channel ‘safe’ to use as a witness of non-gravitational-wave noise in the interferometer
- dtype
numpy.dtype
, optional numeric type of data for this channel
- frametype
str
, optional LDAS name for frames that contain this channel
- model
str
, optional name of the SIMULINK front-end model that produces this channel
- name
Notes
The
Channel
structure implemented here is designed to match the data recorded in the LIGO Channel Information System (https://cis.ligo.org) for which a query interface is provided.