sega
Segment Evaluation & Generation Application
Evaluate data quality conditions on detector channel data and produce IGWN XML segment files or publish directly to DQSegDB. SEGA is built on the SGN streaming pipeline framework and driven by declarative YAML configuration.
Resources
Installation
pip install sega
Where to Start
- Tutorial -- New to SEGA? Write a config file and generate your first segments step by step.
- User Guide -- Configuration, condition types, data sources, output modes, and the CLI.
- API Reference -- API documentation.
Features
- Declarative YAML configuration with includes, defaults, and bulk expansion
- Per-sample threshold, range, and bitwise condition checks
- Aggregate statistics (mean, RMS) with trend detection
- Boolean condition logic with arbitrary nesting (
all_of,any_of,not) - Infix expression syntax for complex boolean conditions (
a & !b | c) - Multiple data sources: gravitational wave frames, Arrakis, or synthetic data
- Output to IGWN XML segment files or DQSegDB
- Dry-run mode for config validation
Quickstart
Write a configuration file
Create a file called config.yaml:
meta:
ifo: H1
subsystem: DQ
conditions:
calibrated:
operator: bits_set
channel: H1:GDS-CALIB_STATE_VECTOR
bits: [0, 6]
low_noise:
operator: below
channel: H1:PEM-CS_ACC_BEAMTUBE_X_DQ
threshold: 500.0
science_ready:
operator: boolean
expr: "calibrated & low_noise"
segments:
H1:DQ-SCIENCE_READY:
condition: science_ready
version: 1
limit: 16
comment: "Calibrated and low noise"
Run from frame files
sega --config config.yaml --source frames \
--frames /path/to/H-H1_R-*.gwf \
--start 1187000000 --end 1187001000
This evaluates the conditions over the specified time range and writes an XML segment file to the current directory.
Validate a config without running
sega --config config.yaml --source fake --dry-run
The --dry-run flag parses and validates the configuration, printing a summary
table of conditions and output segments. Use -v to include the full segment
listing.
Stream from Arrakis
sega --config config.yaml --source arrakis
Without --start and --end, SEGA streams live data continuously. Press
Ctrl+C to stop.
Publish to DQSegDB
sega --config config.yaml --source arrakis \
--output-mode dqsegdb \
--segment-server https://segments.ligo.org
Boolean expressions
Boolean conditions support infix notation with & (AND), | (OR), and !
(NOT), with standard precedence:
conditions:
calibrated:
operator: bits_set
channel: H1:GDS-CALIB_STATE_VECTOR
bits: [0, 6]
injecting:
operator: bits_set
channel: H1:GDS-CALIB_STATE_VECTOR
bits: [5]
low_noise:
operator: below
channel: H1:PEM-CS_ACC_BEAMTUBE_X_DQ
threshold: 500.0
analysis_ready:
operator: boolean
expr: "calibrated & !injecting & low_noise"
This is equivalent to the explicit form:
analysis_ready:
operator: boolean
all_of:
- calibrated
- not: injecting
- low_noise
Metadata
Release files for sega 0.4.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sega-0.4.4.tar.gz | 350.3 kB | Without provenance | Details for sega-0.4.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sega-0.4.4-py3-none-any.whl | Python 3 | none | any | Details for sega-0.4.4-py3-none-any.whl |
Total release size: 490.1 kB
Release files / sega-0.4.4.tar.gz
| Download URL | sega-0.4.4.tar.gz |
|---|---|
| Size | 350.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93b4164ccc9f82d20ac9c7383ac3aecc219de8414888a18d15ae442bf4158f2b
|
|
BLAKE2b-256 checksum How to use checksums |
fd98ad3b55cbb2ffcef58c6a19088d95b444319875400061437c30b8ba37c07c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|
Release files / sega-0.4.4-py3-none-any.whl
| Download URL | sega-0.4.4-py3-none-any.whl |
|---|---|
| Size | 139.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c32343923120344840d61eae07278e8098fa7d8b3e00ac3e3077878c84add92
|
|
BLAKE2b-256 checksum How to use checksums |
b561529bd6c842bf1fad9168b773461e565e0723a8e5d62e12189c2c700e623d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.13.12 HTTPX/0.28.1
|
Security for sega 0.4.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.