sgn-drift 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sgn_drift-0.1.0/.gitignore +12 -0
- sgn_drift-0.1.0/.gitlab-ci.yml +57 -0
- sgn_drift-0.1.0/PKG-INFO +91 -0
- sgn_drift-0.1.0/README.md +40 -0
- sgn_drift-0.1.0/build_requirements.txt +9 -0
- sgn_drift-0.1.0/docs/api/sinks/drift_sink.md +1 -0
- sgn_drift-0.1.0/docs/api/transforms/drift.md +1 -0
- sgn_drift-0.1.0/docs/api/transforms/psd.md +1 -0
- sgn_drift-0.1.0/docs/api/util/drift.md +1 -0
- sgn_drift-0.1.0/docs/api/util/psd_estimators.md +1 -0
- sgn_drift-0.1.0/docs/index.md +24 -0
- sgn_drift-0.1.0/mkdocs.yml +58 -0
- sgn_drift-0.1.0/pyproject.toml +135 -0
- sgn_drift-0.1.0/setup.cfg +4 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/PKG-INFO +91 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/SOURCES.txt +39 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/dependency_links.txt +1 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/entry_points.txt +7 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/requires.txt +41 -0
- sgn_drift-0.1.0/src/sgn_drift.egg-info/top_level.txt +1 -0
- sgn_drift-0.1.0/src/sgndrift/__init__.py +0 -0
- sgn_drift-0.1.0/src/sgndrift/_version.py +34 -0
- sgn_drift-0.1.0/src/sgndrift/bin/__init__.py +0 -0
- sgn_drift-0.1.0/src/sgndrift/bin/estimate_drift.py +278 -0
- sgn_drift-0.1.0/src/sgndrift/bin/plot_drift.py +177 -0
- sgn_drift-0.1.0/src/sgndrift/bin/plot_drift_comparison.py +211 -0
- sgn_drift-0.1.0/src/sgndrift/bin/plot_drift_super.py +272 -0
- sgn_drift-0.1.0/src/sgndrift/bin/plot_drift_super_comp.py +360 -0
- sgn_drift-0.1.0/src/sgndrift/bin/plot_drift_time.py +210 -0
- sgn_drift-0.1.0/src/sgndrift/psd/__init__.py +0 -0
- sgn_drift-0.1.0/src/sgndrift/psd/drift.py +73 -0
- sgn_drift-0.1.0/src/sgndrift/psd/estimators.py +150 -0
- sgn_drift-0.1.0/src/sgndrift/sinks/__init__.py +0 -0
- sgn_drift-0.1.0/src/sgndrift/sinks/drift_sink.py +154 -0
- sgn_drift-0.1.0/src/sgndrift/transforms/__init__.py +0 -0
- sgn_drift-0.1.0/src/sgndrift/transforms/drift.py +145 -0
- sgn_drift-0.1.0/src/sgndrift/transforms/psd.py +190 -0
- sgn_drift-0.1.0/tests/test_psd_drift.py +174 -0
- sgn_drift-0.1.0/tests/test_psd_estimators.py +463 -0
- sgn_drift-0.1.0/tests/test_sinks_drift_sink.py +206 -0
- sgn_drift-0.1.0/tests/test_transforms_drift.py +327 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
include:
|
|
2
|
+
- component: git.ligo.org/computing/gitlab/components/python/sdist@1
|
|
3
|
+
- component: git.ligo.org/computing/gitlab/components/python/wheel@1
|
|
4
|
+
- component: git.ligo.org/computing/gitlab/components/python/code-quality@1
|
|
5
|
+
inputs:
|
|
6
|
+
requirements: ".[lint]"
|
|
7
|
+
- component: git.ligo.org/computing/gitlab/components/python/dependency-scanning@1
|
|
8
|
+
# - component: git.ligo.org/computing/gitlab/components/python/type-checking@1
|
|
9
|
+
- component: git.ligo.org/computing/gitlab/components/python/test@1
|
|
10
|
+
inputs:
|
|
11
|
+
install_extra: test
|
|
12
|
+
python_versions:
|
|
13
|
+
- "3.10"
|
|
14
|
+
- "3.11"
|
|
15
|
+
- "3.12"
|
|
16
|
+
- "3.13"
|
|
17
|
+
- component: git.ligo.org/computing/gitlab/components/mkdocs/build@1
|
|
18
|
+
inputs:
|
|
19
|
+
image: python:3.12
|
|
20
|
+
project_dir: "."
|
|
21
|
+
requirements: ".[docs]"
|
|
22
|
+
- component: git.ligo.org/computing/gitlab/components/mkdocs/pages@1
|
|
23
|
+
inputs:
|
|
24
|
+
pages_when: "default"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
python_test:
|
|
28
|
+
before_script:
|
|
29
|
+
- echo "Manually installing system dependencies"
|
|
30
|
+
- |
|
|
31
|
+
apt-get update
|
|
32
|
+
- echo "Installing SGN Family libraries"
|
|
33
|
+
- |
|
|
34
|
+
pip install -r build_requirements.txt
|
|
35
|
+
|
|
36
|
+
mkdocs:
|
|
37
|
+
before_script:
|
|
38
|
+
- echo "Manually installing system dependencies"
|
|
39
|
+
- |
|
|
40
|
+
apt-get update
|
|
41
|
+
- echo "Upgrading pip"
|
|
42
|
+
- |
|
|
43
|
+
pip install --upgrade pip
|
|
44
|
+
- echo "Installing SGN Family libraries"
|
|
45
|
+
- |
|
|
46
|
+
pip install -r build_requirements.txt
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
flake8-code_quality:
|
|
50
|
+
image: python:3.12
|
|
51
|
+
before_script:
|
|
52
|
+
- echo "Manually installing system dependencies"
|
|
53
|
+
- |
|
|
54
|
+
apt-get update
|
|
55
|
+
- echo "Installing SGN Family libraries"
|
|
56
|
+
- |
|
|
57
|
+
pip install -r build_requirements.txt
|
sgn_drift-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sgn-drift
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: PSD Drift Data Quality Extensions for the SGN Framework
|
|
5
|
+
Author-email: James Kennington <jmk7376@psu.edu>, Zach Yarbrough <jmk7376@psu.edu>, Joshua Black <jmk7376@psu.edu>
|
|
6
|
+
License-Expression: MPL-2.0
|
|
7
|
+
Project-URL: Homepage, https://git.ligo.org/james.kennington/sgn-drift
|
|
8
|
+
Project-URL: Documentation, https://docs.ligo.org/james.kennington/sgn-drift
|
|
9
|
+
Project-URL: Issues, https://git.ligo.org/james.kennington/sgn-drift/issues
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: gwpy
|
|
15
|
+
Requires-Dist: h5py
|
|
16
|
+
Requires-Dist: igwn-ligolw
|
|
17
|
+
Requires-Dist: igwn-segments
|
|
18
|
+
Requires-Dist: lalsuite>=7.26
|
|
19
|
+
Requires-Dist: scipy<1.17
|
|
20
|
+
Requires-Dist: sgn>=0.4
|
|
21
|
+
Requires-Dist: sgn-ts>=0.4
|
|
22
|
+
Requires-Dist: sgn-ligo
|
|
23
|
+
Provides-Extra: test
|
|
24
|
+
Requires-Dist: pytest; extra == "test"
|
|
25
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
26
|
+
Requires-Dist: pytest-freezer; extra == "test"
|
|
27
|
+
Requires-Dist: pytest-markdown-docs; extra == "test"
|
|
28
|
+
Provides-Extra: docs
|
|
29
|
+
Requires-Dist: mkdocs; extra == "docs"
|
|
30
|
+
Requires-Dist: mkdocstrings; extra == "docs"
|
|
31
|
+
Requires-Dist: mkdocstrings-python; extra == "docs"
|
|
32
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
33
|
+
Requires-Dist: pymdown-extensions; extra == "docs"
|
|
34
|
+
Provides-Extra: lint
|
|
35
|
+
Requires-Dist: black; extra == "lint"
|
|
36
|
+
Requires-Dist: flake8; extra == "lint"
|
|
37
|
+
Requires-Dist: flake8-bandit; extra == "lint"
|
|
38
|
+
Requires-Dist: flake8-black; extra == "lint"
|
|
39
|
+
Requires-Dist: flake8-bugbear; extra == "lint"
|
|
40
|
+
Requires-Dist: flake8-future-annotations; extra == "lint"
|
|
41
|
+
Requires-Dist: flake8-isort; extra == "lint"
|
|
42
|
+
Requires-Dist: flake8-logging-format; extra == "lint"
|
|
43
|
+
Requires-Dist: flake8-pyproject; extra == "lint"
|
|
44
|
+
Requires-Dist: isort; extra == "lint"
|
|
45
|
+
Requires-Dist: mypy; extra == "lint"
|
|
46
|
+
Requires-Dist: mypy-extensions; extra == "lint"
|
|
47
|
+
Provides-Extra: dev
|
|
48
|
+
Requires-Dist: sgn-drift[docs]; extra == "dev"
|
|
49
|
+
Requires-Dist: sgn-drift[lint]; extra == "dev"
|
|
50
|
+
Requires-Dist: sgn-drift[test]; extra == "dev"
|
|
51
|
+
|
|
52
|
+
# SGN-Drift
|
|
53
|
+
|
|
54
|
+
**Geometric Spectral Diagnostics for Gravitational Wave Detectors.**
|
|
55
|
+
|
|
56
|
+
`sgn-drift` is an extension to the [SGN](https://git.ligo.org/greg/sgn) framework designed to quantify the stability of
|
|
57
|
+
the detector noise floor using Information Geometry.
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pip install sgn-drift
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Example Usage
|
|
66
|
+
|
|
67
|
+
### Command Line
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
sgn-drift-estimate --detector L1 --start 1263085000 --end 1263089096 --output drift_L1.csv --bands "low:10:50,mid:50:300"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Python API
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from sgndrift.bin.estimate_drift import estimate_drift
|
|
77
|
+
|
|
78
|
+
bands = {
|
|
79
|
+
"v_low": (10, 50),
|
|
80
|
+
"v_mid": (50, 300)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
estimate_drift(
|
|
84
|
+
start=1262600000,
|
|
85
|
+
end=1262604096,
|
|
86
|
+
detector="L1",
|
|
87
|
+
output_drift="analysis.csv",
|
|
88
|
+
bands=bands,
|
|
89
|
+
verbose=True
|
|
90
|
+
)
|
|
91
|
+
```
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# SGN-Drift
|
|
2
|
+
|
|
3
|
+
**Geometric Spectral Diagnostics for Gravitational Wave Detectors.**
|
|
4
|
+
|
|
5
|
+
`sgn-drift` is an extension to the [SGN](https://git.ligo.org/greg/sgn) framework designed to quantify the stability of
|
|
6
|
+
the detector noise floor using Information Geometry.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pip install sgn-drift
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Example Usage
|
|
15
|
+
|
|
16
|
+
### Command Line
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
sgn-drift-estimate --detector L1 --start 1263085000 --end 1263089096 --output drift_L1.csv --bands "low:10:50,mid:50:300"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Python API
|
|
23
|
+
|
|
24
|
+
```python
|
|
25
|
+
from sgndrift.bin.estimate_drift import estimate_drift
|
|
26
|
+
|
|
27
|
+
bands = {
|
|
28
|
+
"v_low": (10, 50),
|
|
29
|
+
"v_mid": (50, 300)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
estimate_drift(
|
|
33
|
+
start=1262600000,
|
|
34
|
+
end=1262604096,
|
|
35
|
+
detector="L1",
|
|
36
|
+
output_drift="analysis.csv",
|
|
37
|
+
bands=bands,
|
|
38
|
+
verbose=True
|
|
39
|
+
)
|
|
40
|
+
```
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Build requirements for SGN family of packages
|
|
2
|
+
|
|
3
|
+
stillsuit @ git+https://git.ligo.org/greg/stillsuit.git@main
|
|
4
|
+
gw-strike @ git+https://git.ligo.org/greg/strike.git@main
|
|
5
|
+
sgn @ git+https://git.ligo.org/greg/sgn.git@main
|
|
6
|
+
sgn-event @ git+https://git.ligo.org/greg/sgn-event.git@main
|
|
7
|
+
sgn-ts @ git+https://git.ligo.org/greg/sgn-ts.git@main
|
|
8
|
+
sgn-ligo @ git+https://git.ligo.org/greg/sgn-ligo.git@main
|
|
9
|
+
zlw @ git+https://git.ligo.org/james.kennington/zlw.git@main
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
::: sgndrift.sinks.drift_sink
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
::: sgndrift.transforms.drift
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
::: sgndrift.transforms.psd
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
::: sgndrift.psd.drift
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
::: sgndrift.psd.estimators
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# SGN-Drift Documentation
|
|
2
|
+
|
|
3
|
+
**SGN-Drift** provides a specialized toolkit for analyzing the non-stationarity of gravitational wave detector noise. It
|
|
4
|
+
builds upon the `sgn-ligo` ecosystem to provide real-time and offline estimates of spectral stability.
|
|
5
|
+
|
|
6
|
+
## Key Features
|
|
7
|
+
|
|
8
|
+
* **Fisher Velocity Metric:** Implements the rigorous geometric definition of spectral drift (Paper A2).
|
|
9
|
+
* **Band-Limited Analysis:** Decompose instability into frequency bands (e.g., distinguishing Scattering from Whistles).
|
|
10
|
+
* **Recursive Estimators:** Includes fast, infinite-impulse-response (IIR) PSD estimators for low-latency tracking.
|
|
11
|
+
* **SGN Integration:** Fully compatible with GStreamer-based pipelines via the `sgn` framework.
|
|
12
|
+
|
|
13
|
+
## Component Overview
|
|
14
|
+
|
|
15
|
+
| Component | Description |
|
|
16
|
+
|:-----------------|:------------------------------------------------------------------------|
|
|
17
|
+
| `FisherVelocity` | Transform element that calculates the drift metric between PSD frames. |
|
|
18
|
+
| `RecursivePSD` | Fast PSD estimator suitable for tracking rapidly changing noise floors. |
|
|
19
|
+
| `DriftCSVSink` | Specialized sink for writing sparse drift event data to disk. |
|
|
20
|
+
|
|
21
|
+
## Getting Started
|
|
22
|
+
|
|
23
|
+
Check the [API Reference](api/util/psd_estimators.md) for details on the underlying mathematics, or see the `bin/`
|
|
24
|
+
directory for example scripts.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
site_name: SGN-Drift Documentation
|
|
2
|
+
|
|
3
|
+
nav:
|
|
4
|
+
- Home: index.md
|
|
5
|
+
- API Reference:
|
|
6
|
+
- Utilities:
|
|
7
|
+
- PSD Estimators: api/util/psd_estimators.md
|
|
8
|
+
- Drift Estimators: api/util/drift.md
|
|
9
|
+
- Transforms:
|
|
10
|
+
- PSD: api/transforms/psd.md
|
|
11
|
+
- Drift: api/transforms/drift.md
|
|
12
|
+
- Sinks:
|
|
13
|
+
- DriftSink: api/sinks/drift_sink.md
|
|
14
|
+
|
|
15
|
+
plugins:
|
|
16
|
+
- search
|
|
17
|
+
- mkdocstrings:
|
|
18
|
+
handlers:
|
|
19
|
+
python:
|
|
20
|
+
options:
|
|
21
|
+
show_inheritance_diagram: true
|
|
22
|
+
show_root_heading: true
|
|
23
|
+
show_root_toc_entry: true
|
|
24
|
+
show_symbol_type_heading: true
|
|
25
|
+
heading_level: 1
|
|
26
|
+
|
|
27
|
+
theme:
|
|
28
|
+
name: material
|
|
29
|
+
# logo: assets/img/sgndrift-small.png
|
|
30
|
+
features:
|
|
31
|
+
- content.code.copy
|
|
32
|
+
|
|
33
|
+
extra_css:
|
|
34
|
+
- assets/css/sgn.css
|
|
35
|
+
- assets/css/mkdocstrings-custom.css
|
|
36
|
+
- https://unpkg.com/katex@0/dist/katex.min.css
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
markdown_extensions:
|
|
40
|
+
- pymdownx.superfences:
|
|
41
|
+
- toc:
|
|
42
|
+
permalink: true
|
|
43
|
+
toc_depth: 4
|
|
44
|
+
- admonition: {}
|
|
45
|
+
- pymdownx.arithmatex:
|
|
46
|
+
generic: true
|
|
47
|
+
|
|
48
|
+
extra_javascript:
|
|
49
|
+
- assets/js/katex.js
|
|
50
|
+
- https://unpkg.com/katex@0/dist/katex.min.js
|
|
51
|
+
- https://unpkg.com/katex@0/dist/contrib/auto-render.min.js
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
extra:
|
|
55
|
+
analytics:
|
|
56
|
+
provider: google
|
|
57
|
+
property: G-FCGJLPECE2
|
|
58
|
+
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools>=42",
|
|
4
|
+
"setuptools_scm[toml]>=3.4.3",
|
|
5
|
+
"wheel",
|
|
6
|
+
"pyproject-flake8",
|
|
7
|
+
]
|
|
8
|
+
build-backend = "setuptools.build_meta"
|
|
9
|
+
|
|
10
|
+
[project]
|
|
11
|
+
name = "sgn-drift"
|
|
12
|
+
dynamic = ["version"]
|
|
13
|
+
dependencies = [
|
|
14
|
+
"gwpy",
|
|
15
|
+
"h5py",
|
|
16
|
+
"igwn-ligolw",
|
|
17
|
+
"igwn-segments",
|
|
18
|
+
"lalsuite>=7.26",
|
|
19
|
+
"scipy < 1.17",
|
|
20
|
+
"sgn >= 0.4",
|
|
21
|
+
"sgn-ts >= 0.4",
|
|
22
|
+
"sgn-ligo",
|
|
23
|
+
]
|
|
24
|
+
requires-python = ">=3.10"
|
|
25
|
+
authors = [
|
|
26
|
+
{ name = "James Kennington", email = "jmk7376@psu.edu" },
|
|
27
|
+
{ name = "Zach Yarbrough", email = "jmk7376@psu.edu" },
|
|
28
|
+
{ name = "Joshua Black", email = "jmk7376@psu.edu" },
|
|
29
|
+
]
|
|
30
|
+
description = "PSD Drift Data Quality Extensions for the SGN Framework"
|
|
31
|
+
readme = "README.md"
|
|
32
|
+
license = "MPL-2.0"
|
|
33
|
+
classifiers = [
|
|
34
|
+
"Programming Language :: Python :: 3",
|
|
35
|
+
"Operating System :: OS Independent",
|
|
36
|
+
]
|
|
37
|
+
|
|
38
|
+
[project.urls]
|
|
39
|
+
Homepage = "https://git.ligo.org/james.kennington/sgn-drift"
|
|
40
|
+
Documentation = "https://docs.ligo.org/james.kennington/sgn-drift"
|
|
41
|
+
Issues = "https://git.ligo.org/james.kennington/sgn-drift/issues"
|
|
42
|
+
|
|
43
|
+
[project.optional-dependencies]
|
|
44
|
+
test = [
|
|
45
|
+
"pytest",
|
|
46
|
+
"pytest-cov",
|
|
47
|
+
"pytest-freezer",
|
|
48
|
+
"pytest-markdown-docs",
|
|
49
|
+
]
|
|
50
|
+
docs = [
|
|
51
|
+
"mkdocs",
|
|
52
|
+
"mkdocstrings",
|
|
53
|
+
"mkdocstrings-python",
|
|
54
|
+
"mkdocs-material",
|
|
55
|
+
"pymdown-extensions",
|
|
56
|
+
]
|
|
57
|
+
lint = [
|
|
58
|
+
"black",
|
|
59
|
+
"flake8",
|
|
60
|
+
"flake8-bandit",
|
|
61
|
+
"flake8-black",
|
|
62
|
+
"flake8-bugbear",
|
|
63
|
+
"flake8-future-annotations",
|
|
64
|
+
"flake8-isort",
|
|
65
|
+
"flake8-logging-format",
|
|
66
|
+
"flake8-pyproject",
|
|
67
|
+
"isort",
|
|
68
|
+
"mypy",
|
|
69
|
+
"mypy-extensions",
|
|
70
|
+
]
|
|
71
|
+
dev = [
|
|
72
|
+
"sgn-drift[docs]",
|
|
73
|
+
"sgn-drift[lint]",
|
|
74
|
+
"sgn-drift[test]",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
[tool.setuptools.packages.find]
|
|
78
|
+
where = ["src"]
|
|
79
|
+
|
|
80
|
+
[tool.setuptools.package-data]
|
|
81
|
+
sgnl = [
|
|
82
|
+
"py.typed",
|
|
83
|
+
]
|
|
84
|
+
|
|
85
|
+
[tool.setuptools_scm]
|
|
86
|
+
write_to = "src/sgndrift/_version.py"
|
|
87
|
+
|
|
88
|
+
[tool.coverage.paths]
|
|
89
|
+
source = [
|
|
90
|
+
"src/sgndrift/",
|
|
91
|
+
"*/sgndrift/",
|
|
92
|
+
]
|
|
93
|
+
|
|
94
|
+
[tool.coverage.report]
|
|
95
|
+
omit = ["_version.py", "tests/*", "examples/*", "setup.py", "*/__init__.py"]
|
|
96
|
+
|
|
97
|
+
[tool.isort]
|
|
98
|
+
profile = "black"
|
|
99
|
+
|
|
100
|
+
[tool.mypy]
|
|
101
|
+
ignore_missing_imports = true
|
|
102
|
+
exclude = [
|
|
103
|
+
"build",
|
|
104
|
+
"docs",
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
[tool.pytest.ini_options]
|
|
108
|
+
addopts = "-p no:warnings --cov-config=.coveragerc --cov=sgndrift --cov-report=term-missing --markdown-docs-syntax=superfences"
|
|
109
|
+
|
|
110
|
+
[tool.flake8]
|
|
111
|
+
max-line-length = 88
|
|
112
|
+
extend-ignore = [
|
|
113
|
+
"E203",
|
|
114
|
+
"S101",
|
|
115
|
+
]
|
|
116
|
+
per-file-ignores = [
|
|
117
|
+
"__init__.py:F401",
|
|
118
|
+
"_version.py:BLK100",
|
|
119
|
+
"docs/conf.py:E501",
|
|
120
|
+
"tests/test_datasource.py:S108",
|
|
121
|
+
"tests/*.py:E731",
|
|
122
|
+
]
|
|
123
|
+
exclude = [
|
|
124
|
+
"build",
|
|
125
|
+
"docs",
|
|
126
|
+
"_version.py",
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
[project.scripts]
|
|
130
|
+
sgn-drift-estimate = "sgndrift.bin.estimate_drift:main"
|
|
131
|
+
sgn-drift-plot = "sgndrift.bin.plot_drift:main"
|
|
132
|
+
sgn-drift-plot-comp = "sgndrift.bin.plot_drift_comparison:main"
|
|
133
|
+
sgn-drift-plot-time = "sgndrift.bin.plot_drift_time:main"
|
|
134
|
+
sgn-drift-plot-super = "sgndrift.bin.plot_drift_super:main"
|
|
135
|
+
sgn-drift-plot-super-comp = "sgndrift.bin.plot_drift_super_comp:main"
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sgn-drift
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: PSD Drift Data Quality Extensions for the SGN Framework
|
|
5
|
+
Author-email: James Kennington <jmk7376@psu.edu>, Zach Yarbrough <jmk7376@psu.edu>, Joshua Black <jmk7376@psu.edu>
|
|
6
|
+
License-Expression: MPL-2.0
|
|
7
|
+
Project-URL: Homepage, https://git.ligo.org/james.kennington/sgn-drift
|
|
8
|
+
Project-URL: Documentation, https://docs.ligo.org/james.kennington/sgn-drift
|
|
9
|
+
Project-URL: Issues, https://git.ligo.org/james.kennington/sgn-drift/issues
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: gwpy
|
|
15
|
+
Requires-Dist: h5py
|
|
16
|
+
Requires-Dist: igwn-ligolw
|
|
17
|
+
Requires-Dist: igwn-segments
|
|
18
|
+
Requires-Dist: lalsuite>=7.26
|
|
19
|
+
Requires-Dist: scipy<1.17
|
|
20
|
+
Requires-Dist: sgn>=0.4
|
|
21
|
+
Requires-Dist: sgn-ts>=0.4
|
|
22
|
+
Requires-Dist: sgn-ligo
|
|
23
|
+
Provides-Extra: test
|
|
24
|
+
Requires-Dist: pytest; extra == "test"
|
|
25
|
+
Requires-Dist: pytest-cov; extra == "test"
|
|
26
|
+
Requires-Dist: pytest-freezer; extra == "test"
|
|
27
|
+
Requires-Dist: pytest-markdown-docs; extra == "test"
|
|
28
|
+
Provides-Extra: docs
|
|
29
|
+
Requires-Dist: mkdocs; extra == "docs"
|
|
30
|
+
Requires-Dist: mkdocstrings; extra == "docs"
|
|
31
|
+
Requires-Dist: mkdocstrings-python; extra == "docs"
|
|
32
|
+
Requires-Dist: mkdocs-material; extra == "docs"
|
|
33
|
+
Requires-Dist: pymdown-extensions; extra == "docs"
|
|
34
|
+
Provides-Extra: lint
|
|
35
|
+
Requires-Dist: black; extra == "lint"
|
|
36
|
+
Requires-Dist: flake8; extra == "lint"
|
|
37
|
+
Requires-Dist: flake8-bandit; extra == "lint"
|
|
38
|
+
Requires-Dist: flake8-black; extra == "lint"
|
|
39
|
+
Requires-Dist: flake8-bugbear; extra == "lint"
|
|
40
|
+
Requires-Dist: flake8-future-annotations; extra == "lint"
|
|
41
|
+
Requires-Dist: flake8-isort; extra == "lint"
|
|
42
|
+
Requires-Dist: flake8-logging-format; extra == "lint"
|
|
43
|
+
Requires-Dist: flake8-pyproject; extra == "lint"
|
|
44
|
+
Requires-Dist: isort; extra == "lint"
|
|
45
|
+
Requires-Dist: mypy; extra == "lint"
|
|
46
|
+
Requires-Dist: mypy-extensions; extra == "lint"
|
|
47
|
+
Provides-Extra: dev
|
|
48
|
+
Requires-Dist: sgn-drift[docs]; extra == "dev"
|
|
49
|
+
Requires-Dist: sgn-drift[lint]; extra == "dev"
|
|
50
|
+
Requires-Dist: sgn-drift[test]; extra == "dev"
|
|
51
|
+
|
|
52
|
+
# SGN-Drift
|
|
53
|
+
|
|
54
|
+
**Geometric Spectral Diagnostics for Gravitational Wave Detectors.**
|
|
55
|
+
|
|
56
|
+
`sgn-drift` is an extension to the [SGN](https://git.ligo.org/greg/sgn) framework designed to quantify the stability of
|
|
57
|
+
the detector noise floor using Information Geometry.
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pip install sgn-drift
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Example Usage
|
|
66
|
+
|
|
67
|
+
### Command Line
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
sgn-drift-estimate --detector L1 --start 1263085000 --end 1263089096 --output drift_L1.csv --bands "low:10:50,mid:50:300"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Python API
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from sgndrift.bin.estimate_drift import estimate_drift
|
|
77
|
+
|
|
78
|
+
bands = {
|
|
79
|
+
"v_low": (10, 50),
|
|
80
|
+
"v_mid": (50, 300)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
estimate_drift(
|
|
84
|
+
start=1262600000,
|
|
85
|
+
end=1262604096,
|
|
86
|
+
detector="L1",
|
|
87
|
+
output_drift="analysis.csv",
|
|
88
|
+
bands=bands,
|
|
89
|
+
verbose=True
|
|
90
|
+
)
|
|
91
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
.gitlab-ci.yml
|
|
3
|
+
README.md
|
|
4
|
+
build_requirements.txt
|
|
5
|
+
mkdocs.yml
|
|
6
|
+
pyproject.toml
|
|
7
|
+
docs/index.md
|
|
8
|
+
docs/api/sinks/drift_sink.md
|
|
9
|
+
docs/api/transforms/drift.md
|
|
10
|
+
docs/api/transforms/psd.md
|
|
11
|
+
docs/api/util/drift.md
|
|
12
|
+
docs/api/util/psd_estimators.md
|
|
13
|
+
src/sgn_drift.egg-info/PKG-INFO
|
|
14
|
+
src/sgn_drift.egg-info/SOURCES.txt
|
|
15
|
+
src/sgn_drift.egg-info/dependency_links.txt
|
|
16
|
+
src/sgn_drift.egg-info/entry_points.txt
|
|
17
|
+
src/sgn_drift.egg-info/requires.txt
|
|
18
|
+
src/sgn_drift.egg-info/top_level.txt
|
|
19
|
+
src/sgndrift/__init__.py
|
|
20
|
+
src/sgndrift/_version.py
|
|
21
|
+
src/sgndrift/bin/__init__.py
|
|
22
|
+
src/sgndrift/bin/estimate_drift.py
|
|
23
|
+
src/sgndrift/bin/plot_drift.py
|
|
24
|
+
src/sgndrift/bin/plot_drift_comparison.py
|
|
25
|
+
src/sgndrift/bin/plot_drift_super.py
|
|
26
|
+
src/sgndrift/bin/plot_drift_super_comp.py
|
|
27
|
+
src/sgndrift/bin/plot_drift_time.py
|
|
28
|
+
src/sgndrift/psd/__init__.py
|
|
29
|
+
src/sgndrift/psd/drift.py
|
|
30
|
+
src/sgndrift/psd/estimators.py
|
|
31
|
+
src/sgndrift/sinks/__init__.py
|
|
32
|
+
src/sgndrift/sinks/drift_sink.py
|
|
33
|
+
src/sgndrift/transforms/__init__.py
|
|
34
|
+
src/sgndrift/transforms/drift.py
|
|
35
|
+
src/sgndrift/transforms/psd.py
|
|
36
|
+
tests/test_psd_drift.py
|
|
37
|
+
tests/test_psd_estimators.py
|
|
38
|
+
tests/test_sinks_drift_sink.py
|
|
39
|
+
tests/test_transforms_drift.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
sgn-drift-estimate = sgndrift.bin.estimate_drift:main
|
|
3
|
+
sgn-drift-plot = sgndrift.bin.plot_drift:main
|
|
4
|
+
sgn-drift-plot-comp = sgndrift.bin.plot_drift_comparison:main
|
|
5
|
+
sgn-drift-plot-super = sgndrift.bin.plot_drift_super:main
|
|
6
|
+
sgn-drift-plot-super-comp = sgndrift.bin.plot_drift_super_comp:main
|
|
7
|
+
sgn-drift-plot-time = sgndrift.bin.plot_drift_time:main
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
gwpy
|
|
2
|
+
h5py
|
|
3
|
+
igwn-ligolw
|
|
4
|
+
igwn-segments
|
|
5
|
+
lalsuite>=7.26
|
|
6
|
+
scipy<1.17
|
|
7
|
+
sgn>=0.4
|
|
8
|
+
sgn-ts>=0.4
|
|
9
|
+
sgn-ligo
|
|
10
|
+
|
|
11
|
+
[dev]
|
|
12
|
+
sgn-drift[docs]
|
|
13
|
+
sgn-drift[lint]
|
|
14
|
+
sgn-drift[test]
|
|
15
|
+
|
|
16
|
+
[docs]
|
|
17
|
+
mkdocs
|
|
18
|
+
mkdocstrings
|
|
19
|
+
mkdocstrings-python
|
|
20
|
+
mkdocs-material
|
|
21
|
+
pymdown-extensions
|
|
22
|
+
|
|
23
|
+
[lint]
|
|
24
|
+
black
|
|
25
|
+
flake8
|
|
26
|
+
flake8-bandit
|
|
27
|
+
flake8-black
|
|
28
|
+
flake8-bugbear
|
|
29
|
+
flake8-future-annotations
|
|
30
|
+
flake8-isort
|
|
31
|
+
flake8-logging-format
|
|
32
|
+
flake8-pyproject
|
|
33
|
+
isort
|
|
34
|
+
mypy
|
|
35
|
+
mypy-extensions
|
|
36
|
+
|
|
37
|
+
[test]
|
|
38
|
+
pytest
|
|
39
|
+
pytest-cov
|
|
40
|
+
pytest-freezer
|
|
41
|
+
pytest-markdown-docs
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sgndrift
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# file generated by setuptools-scm
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
|
|
4
|
+
__all__ = [
|
|
5
|
+
"__version__",
|
|
6
|
+
"__version_tuple__",
|
|
7
|
+
"version",
|
|
8
|
+
"version_tuple",
|
|
9
|
+
"__commit_id__",
|
|
10
|
+
"commit_id",
|
|
11
|
+
]
|
|
12
|
+
|
|
13
|
+
TYPE_CHECKING = False
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from typing import Tuple
|
|
16
|
+
from typing import Union
|
|
17
|
+
|
|
18
|
+
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
|
19
|
+
COMMIT_ID = Union[str, None]
|
|
20
|
+
else:
|
|
21
|
+
VERSION_TUPLE = object
|
|
22
|
+
COMMIT_ID = object
|
|
23
|
+
|
|
24
|
+
version: str
|
|
25
|
+
__version__: str
|
|
26
|
+
__version_tuple__: VERSION_TUPLE
|
|
27
|
+
version_tuple: VERSION_TUPLE
|
|
28
|
+
commit_id: COMMIT_ID
|
|
29
|
+
__commit_id__: COMMIT_ID
|
|
30
|
+
|
|
31
|
+
__version__ = version = '0.1.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 0)
|
|
33
|
+
|
|
34
|
+
__commit_id__ = commit_id = 'ge68e85fce'
|
|
File without changes
|