module 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:



The full name of this channel block, which will appear as a section header on the output page (optional)


The blockkey of a section that the current block should appear on the output page with (optional)


Range of quality factors (or Q) to search (required)


Range of frequencies to search (required)


A sample rate (in Hz) to resample the input data to, must be different from the original sample rate (optional)


The type of frame files to read data from (will be superceded by source, required if source is not specified)


Path to a LAL-format cache pointing to frame files


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)


The duration of data to process in this block (required)


The FFT length to use in computing an ASD for whitening with an overlap of fftlength/2 (required)


Duration (seconds) of search time window (optional)


The maximum mismatch in time-frequency tiles (optional)


Threshold on SNR for plotting eventgrams (optional)


Maximum acceptable time delay from the primary channel (optional)


Always analyze this block regardless of channel significance (optional; will be superceded by state-flag unless --ignore-state-flags is passed)


Time-axis durations of omega scan plots (required)


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, defaults={}, **kwargs)[source]

Bases: configparser.ConfigParser

Custom configuration parser for


ifo : str, optional

prefix of the interferometer to use, defaults to None

defaults : dict, optional

dictionary of default values to pass to the parser, default: {}

**kwargs : dict, optional

additional keyword arguments to pass to ConfigParser




parse a list of INI-format configuration files


retrieve an ordered dictionary of contextual channel blocks, as organized in the source configuration

__abstractmethods__ = frozenset({})
__doc__ = 'Custom configuration parser for :mod:``\n\n    Parameters\n    ----------\n    ifo : `str`, optional\n        prefix of the interferometer to use, defaults to `None`\n\n    defaults : `dict`, optional\n        dictionary of default values to pass to the parser, default: ``{}``\n\n    **kwargs : `dict`, optional\n        additional keyword arguments to pass to `ConfigParser`\n\n    Methods\n    -------\n    read:\n        parse a list of INI-format configuration files\n    get_channel_blocks:\n        retrieve an ordered dictionary of contextual channel blocks, as\n        organized in the source configuration\n    '
__init__(ifo=None, defaults={}, **kwargs)[source]
__module__ = ''
_abc_impl = <_abc_data object>

Retrieve an ordered dictionary of channel blocks

These blocks are organized contextually by the user, since they are read in and preserved from the source configuration.


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