gwdetchar.omega.config module

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:

Keywords

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:

[primary]
; 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
channel = L1:GDS-CALIB_STRAIN

[GW]
; 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

[CAL]
; 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
channels = L1:CAL-DELTAL_EXTERNAL_DQ

Note

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 gwdetchar.omega.config.OmegaChannel(channelname, section, **params)[source]

Bases: gwpy.detector.channel.Channel

Customized Channel object for omega scan analyses

Parameters:

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

Attributes:

dtype

Numeric type for data in this channel.

frametype

LDAS type description for frame files containing this channel.

frequency_range

Frequency range of interest (Hertz) for this channel

ifo

Interferometer prefix for this channel.

model

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

name

Name of this channel.

ndsname

Name of this channel as stored in the NDS database

ndstype

NDS type integer for this channel.

safe

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

sample_rate

Rate of samples (Hertz) for this channel.

signal

Instrumental signal for this channel.

subsystem

Instrumental sub-system for this channel.

system

Instrumental system for this channel.

texname

Name of this channel in LaTeX printable format.

trend

Trend type for this channel.

type

DAQ data type for this channel.

unit

Data unit for this channel.

url

CIS browser url for this channel.

Methods

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 nds2.channel 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

Parameters:

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

Notes

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

Parameters:

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

Notes

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 gwdetchar.omega.config.OmegaChannelList(key, **params)[source]

Bases: object

A conceptual list of OmegaChannel objects with common signal processing settings

Parameters:

key : str

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

params : dict

parameters set in a configuration file

class gwdetchar.omega.config.OmegaConfigParser(ifo=None, defaults={}, **kwargs)[source]

Bases: configparser.ConfigParser

Attributes:
converters

Methods

add_section(self, section) Create a new section in the configuration.
clear(self)
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.
keys(self)
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
values(self)
write(self, fp[, space_around_delimiters]) Write an .ini-format representation of the configuration state.
defaults  
get_channel_blocks  
getboolean  
getfloat  
optionxform  
get_channel_blocks(self)[source]
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.

gwdetchar.omega.config.get_default_configuration(ifo, gpstime)[source]

Retrieve a default configuration file stored locally

Parameters:

ifo : str

interferometer ID string, e.g. 'L1'

gpstime : float

time of analysis in GPS second format

gwdetchar.omega.config.get_fancyplots(channel, plottype, duration, caption=None)[source]

Construct FancyPlot objects for output HTML pages

Parameters:

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