tdanalysis
Time-domain parameter estimation for gravitational-wave data, and the inspiral-ringdown consistency test built on it.
The likelihood is -½ δᵀ C⁻¹ δ evaluated on a chosen data segment, where C is
a full noise covariance built from a detector autocorrelation function rather
than from a diagonal-in-frequency PSD approximation. That is what makes short,
gated or gappy segments tractable, which is the regime a ringdown analysis lives
in.
This is release v1. It is pure Python, it installs from PyPI with no compiler, and it contains the parameter estimation core and the consistency test. The batched GPU sampling path (v2) and the ringdown spectroscopy likelihoods (v3) are separate, later releases of this same package.
Install
pip install tdanalysis
The wheel is py3-none-any. Python 3.11 or newer.
Optional extras:
| Extra | Pulls in | For |
|---|---|---|
tdanalysis[pipeline] |
vlconf, threadpoolctl |
the tdanalysis config-driven CLI |
tdanalysis[nr] |
nrhjsurrogate |
the NRAASur action-angle waveform backend |
tdanalysis[gpu-legacy] |
torch |
non-numba backends of the legacy matrix multiplier |
tdanalysis[all] |
the first two |
Every one of these is imported inside a function at the point it is first needed, so the library imports and runs without any of them.
nrhjsurrogate declares requires-python >= 3.12, so the [nr] extra can
only be resolved on 3.12 or newer even though the package itself supports
3.11. On an older interpreter pip fails with that as the reason, which is
the intended behaviour: the alternative is a marker that installs nothing
and leaves the backend quietly missing.
What is in here
- Parameter estimation.
tdanalysis.likelihoods.single.pe.GWTransientTDfor one detector,...likelihoods.multi.pe.GWTransientTDMultiDetectorfor a coherent network. A bilbyLikelihood, so it drops into a bilby sampler run. - Inspiral-ringdown consistency test.
tdanalysis.likelihoods.single.consistency_test.InspiralRingdownConsistencyTDand...likelihoods.multi.consistency_test.IMRConsistencyMultiDetector, comparing an inspiral-derived and a ringdown-derived remnant, plustdanalysis.likelihoods.comparison.discriminators.ChiSquaredRingdown. - Quadratic forms and whiteners.
tdanalysis.forms, selected withqform_method: Gohberg-Semencul (gs, O(N log N) via FFT), preconditioned CG (pcg),invLD,LltandCD.gs_batchedis the numpy batched chi-square thatreduced_batchdrives. - Covariance and PSD handling.
tdanalysis.covariance, including the band patching and taper conditioning the tests cover. - Next-generation detectors.
tdanalysis.detectors.xg: CE40, CE20, the triangular ET (ET1/ET2/ET3) and LIGO-India, with vendored noise curves and conditioned autocorrelations undertdanalysis/data/. Importingtdanalysis.detectorsregisters them with pycbc. Provenance for every vendored file is intdanalysis/data/*/PROVENANCE.md. - Waveform backends. LAL and pycbc approximants, plus the NRAASur
action-angle surrogate (
tdanalysis.waveforms.nraasur). All wrapped at the generator level, so peak finding, tapers, padding, the segment crop and the projection are the same code for every approximant. That is what makes parameters estimated with different models comparable. - A CLI.
tdanalysis --help, a config-driven run driver.
Not in v1: ringdown spectroscopy likelihoods and Kerr QNM templates (v3), the Kokkos GPU kernels and batched sampling (v2).
Worked example
tests/test_pe_smoke.py is the reference example as well as the release gate.
It builds a real GWTransientTD with real LAL waveform generation, real
conditioning and projection, and a real Gohberg-Semencul form from a real
Cholesky factor, with nothing mocked. It carries no data-file dependency, so it
runs anywhere the package installs.
Read it for the constructor arguments in context. The properties it pins are worth knowing about:
- the zero-noise truth is the maximum, and moving off it costs chi-square
- scalar and batched evaluation give the same number, so a posterior does not depend on the batch size
- batching is row-order independent, and a one-row batch matches the scalar call
- the likelihood survives a pickle round trip, which is what lets a bilby multiprocessing pool carry it
Tests
pip install tdanalysis
python -m pytest tests/ -q
Five files ship: the GWTransientTD gate above, plus PSD band patching, taper
conditioning, whitening backend agreement and the XG autocorrelations.
Licence
PolyForm Noncommercial License 1.0.0, with two additional terms. See
LICENSE for the text and NOTICE.md for what it means in practice, and for
the contributors to this release.
This is deliberately not an open-source licence, because it restricts the field of use.
- Noncommercial use is free and needs no permission — research, teaching, and publishing results obtained with it. The licence grants that outright, including where the funding is industrial.
- Commercial use needs a written licence, which may carry a fee or a royalty: vbp5193@psu.edu.
- Training a model on this software is not permitted, commercial or not. Building a surrogate or emulator of the waveforms and posteriors it produces is ordinary research use and is fine; ingesting the source and documentation into a general-purpose code or language model is not.
- AI tools may be used on this software only with training and retention off. AI assistance as such is not prohibited; the configuration that would feed this code into a training corpus is.
Because those additional terms modify PolyForm, the metadata declares
LicenseRef-PolyForm-Noncommercial-1.0.0-with-AI-terms rather than the bare
PolyForm identifier.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tdanalysis-1.0.0.tar.gz.
File metadata
- Download URL: tdanalysis-1.0.0.tar.gz
- Upload date:
- Size: 9.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91ff29cf24ecf73fff38785f4093570f4e66def043d88443a8b8c7288a1b503c
|
|
| MD5 |
6a9eb9ad55472e045481134041652365
|
|
| BLAKE2b-256 |
bcafbc07645187f2dc52e4c2f009fb260aa1c5abf267c3aafca141c4a7c76d0a
|
Provenance
The following attestation bundles were made for tdanalysis-1.0.0.tar.gz:
Publisher:
release.yml on vaishakp/tdanalysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tdanalysis-1.0.0.tar.gz -
Subject digest:
91ff29cf24ecf73fff38785f4093570f4e66def043d88443a8b8c7288a1b503c - Sigstore transparency entry: 2754988939
- Sigstore integration time:
-
Permalink:
vaishakp/tdanalysis@9a5fb7dbdee126f9d65498964171ef193c4521ea -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/vaishakp
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a5fb7dbdee126f9d65498964171ef193c4521ea -
Trigger Event:
push
-
Statement type:
File details
Details for the file tdanalysis-1.0.0-py3-none-any.whl.
File metadata
- Download URL: tdanalysis-1.0.0-py3-none-any.whl
- Upload date:
- Size: 9.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6d9ab74b232dbe905aa33e984875bd713b02054e9eff5e3b52c94cff9aa19c9
|
|
| MD5 |
fc3d5964c20141f1457afc9cfd4f36da
|
|
| BLAKE2b-256 |
08bcd383d65adda84f72651040822ec469c134e71663c1422ce6b5ea8a0a3eb8
|
Provenance
The following attestation bundles were made for tdanalysis-1.0.0-py3-none-any.whl:
Publisher:
release.yml on vaishakp/tdanalysis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tdanalysis-1.0.0-py3-none-any.whl -
Subject digest:
b6d9ab74b232dbe905aa33e984875bd713b02054e9eff5e3b52c94cff9aa19c9 - Sigstore transparency entry: 2754989263
- Sigstore integration time:
-
Permalink:
vaishakp/tdanalysis@9a5fb7dbdee126f9d65498964171ef193c4521ea -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/vaishakp
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@9a5fb7dbdee126f9d65498964171ef193c4521ea -
Trigger Event:
push
-
Statement type: