gwdetchar-omega can be used to process an arbitrary list of channels, including primary gravitational wave strain channels and auxiliary sensors, with arbitrary units and sample rates. Channels can be organized in contextual blocks using an INI-formatted configuration file that must be passed at runtime, which must include processing options for individual blocks. In a given block, the following keywords are supported:


name The full name of this channel block, which will appear as a section header on the output page (optional)
parent The blockkey of a section that the current block should appear on the output page with (optional)
q-range Range of quality factors (or Q) to search (required)
frequency-range Range of frequencies to search (required)
resample A sample rate (in Hz) to resample the input data to, must be different from the original sample rate (optional)
frametype The type of frame files to read data from (will be superceded by source, required if source is not specified)
source Path to a LAL-format cache pointing to frame files
state-flag A data quality flag to require to be active before processing this block (can be superceded by passing --ignore-state-flags on the command line; optional)
duration The duration of data to process in this block (required)
fftlength The FFT length to use in computing an ASD for whitening with an overlap of fftlength/2 (required)
search Duration (seconds) of search time window (optional)
max-mismatch The maximum mismatch in time-frequency tiles (optional)
snr-threshold Threshold on SNR for plotting eventgrams (optional)
dt Maximum acceptable time delay from the primary channel (optional)
always-plot Always analyze this block regardless of channel significance (optional; will be superceded by state-flag unless --ignore-state-flags is passed)
plot-time-durations Time-axis durations of omega scan plots (required)
channels Full list of channels which appear in this block (required)

If cross-correlation will be implemented, the user will also need to specify a block whose blockkey is primary that includes only one channel and options for f-low (a high-pass corner frequency) and matched-filter-length. State flags are always ignored for the primary.

An example using many of the above options would look something like this:

; the primary channel, which will be used as a matched-filter
f-low = 4.0
resample = 4096
frametype = L1_HOFT_C00
duration = 64
fftlength = 8
matched-filter-length = 2

; name of this block, which contains h(t)
name = Gravitational Wave Strain
q-range = 3.3166,150.0
frequency-range = 4.0,2048
resample = 4096
frametype = L1_HOFT_C00
state-flag = L1:DMT-GRD_ISC_LOCK_NOMINAL:1
duration = 64
fftlength = 8
max-mismatch = 0.2
snr-threshold = 5
always-plot = True
plot-time-durations = 1,4,16
channels = L1:GDS-CALIB_STRAIN

; a sub-block of channels with different options, but which should appear
; together with the block `GW` on the output page
parent = GW
q-range = 3.3166,150
frequency-range = 4.0,Inf
resample = 4096
frametype = L1_R
state-flag = L1:DMT-GRD_ISC_LOCK_NOMINAL:1
duration = 64
fftlength = 8
max-mismatch = 0.35
snr-threshold = 5.5
always-plot = True
plot-time-durations = 1,4,16


The blockkey will appear in the navbar to identify channel blocks on the output page, with a scrollable dropdown list of channels in that block for ease of navigation.

The primary block will only be used to design a matched-filter. To process this channel during the omega scan, it must be included again in a subsequent block.

If running on a LIGO Data Grid (LDG) computer cluster, the detchar account houses default configurations organized by subsystem.

class, section, **params)[source]


Customized Channel object for omega scan analyses


channelname : str

name of this channel, e.g. L1:GDS-CALIB_STRAIN

section : str

configuration section to which this channel belongs

params : dict

parameters set in a configuration file



Numeric type for data in this channel.


LDAS type description for frame files containing this channel.


Frequency range of interest (Hertz) for this channel


Interferometer prefix for this channel.


Name of the SIMULINK front-end model that defines this channel.


Name of this channel.


Name of this channel as stored in the NDS database


NDS type integer for this channel.


Whether this channel is ‘safe’ to use as a noise witness


Rate of samples (Hertz) for this channel.


Instrumental signal for this channel.


Instrumental sub-system for this channel.


Instrumental system for this channel.


Name of this channel in LaTeX printable format.


Trend type for this channel.


DAQ data type for this channel.


Data unit for this channel.


CIS browser url for this channel.


copy(self) Returns a copy of this channel
find_frametype(self[, gpstime, …]) Find the containing frametype(s) for this Channel
from_nds2(nds2channel) Generate a new channel using an existing object
load_loudest_tile_features(self, table[, …]) Load properties of the loudest time-frequency tile from a table
parse_channel_name(name[, strict]) Decompose a channel name string into its components
query(name[, use_kerberos, debug]) Query the LIGO Channel Information System for the Channel matching the given name
query_nds2(name[, host, port, connection, type]) Query an NDS server for channel information
save_loudest_tile_features(self, qgram[, …]) Store properties of the loudest time-frequency tile
load_loudest_tile_features(self, table, correlated=False)[source]

Load properties of the loudest time-frequency tile from a table


table : Table

table of properties of the loudest time-frequency tile

correlated : bool, optional

boolean switch to determine if cross-correlation properties are included, default: False


Attributes stored in-place include Q, energy, snr, t, and f, all corresponding to the columns contained in table.

If correlated is not None then the maximum correlation amplitude, relative time delay, and standard deviation are stored as attributes corr, delay, and stdev, respectively.

save_loudest_tile_features(self, qgram, correlate=None, gps=0, dt=0.1)[source]

Store properties of the loudest time-frequency tile


channel : OmegaChannel

OmegaChannel object corresponding to this data stream

qgram : QGram

output of a Q-transform on whitened input

correlate : TimeSeries, optional

output of a single phase matched-filter, or None if not requested

gps : float, optional

GPS time (seconds) of suspected transient, used only if correlate is not None, default: 0

dt : float, optional

maximum acceptable time delay (seconds) between the primary and self, used only if correlate is not None, default: 0.1


Attributes stored in-place include Q, energy, snr, t, and f, all corresponding to the loudest time-frequency tile contained in qgram.

If correlate is not None then the maximum correlation amplitude, relative time delay, and standard deviation are stored as attributes corr, delay, and stdev, respectively.

class, **params)[source]

Bases: object

A conceptual list of OmegaChannel objects with common signal processing settings


key : str

the unique identifier for this list, e.g. 'CAL' for calibration channels

params : dict

parameters set in a configuration file

class, defaults={}, **kwargs)[source]

Bases: configparser.ConfigParser



add_section(self, section) Create a new section in the configuration.
get(self, section, option, \*[, raw, vars, …]) Get an option value for a given section.
getint(self, section, option, \*[, raw, …])
has_option(self, section, option) Check for the existence of a given option in a given section.
has_section(self, section) Indicate whether the named section is present in the configuration.
items(self[, section, raw, vars]) Return a list of (name, value) tuples for each option in a section.
options(self, section) Return a list of option names for the given section name.
pop(self, key[, default]) If key is not found, d is returned if given, otherwise KeyError is raised.
popitem(self) Remove a section from the parser and return it as a (section_name, section_proxy) tuple.
read(self, filenames) Read and parse a filename or an iterable of filenames.
read_dict(self, dictionary[, source]) Read configuration from a dictionary.
read_file(self, f[, source]) Like read() but the argument must be a file-like object.
read_string(self, string[, source]) Read configuration from a given string.
readfp(self, fp[, filename]) Deprecated, use read_file instead.
remove_option(self, section, option) Remove an option.
remove_section(self, section) Remove a file section.
sections(self) Return a list of section names, excluding [DEFAULT]
set(self, section, option[, value]) Set an option.
setdefault(self, key[, default])
update(\*args, \*\*kwds) If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
write(self, fp[, space_around_delimiters]) Write an .ini-format representation of the configuration state.
read(self, filenames)[source]

Read and parse a filename or an iterable of filenames.

Files that cannot be opened are silently ignored; this is designed so that you can specify an iterable of potential configuration file locations (e.g. current directory, user’s home directory, systemwide directory), and all existing configuration files in the iterable will be read. A single filename may also be given.

Return list of successfully read files., gpstime)[source]

Retrieve a default configuration file stored locally


ifo : str

interferometer ID string, e.g. 'L1'

gpstime : float

time of analysis in GPS second format, plottype, duration, caption=None)[source]

Construct FancyPlot objects for output HTML pages


channel : str

the name of the channel

plottype : str

the type of plot, e.g. ‘raw_timeseries’

duration : str

duration of the plot, in seconds

caption : str, optional

a caption to render in the fancybox