Skip to main content

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.GWTransientTD for one detector, ...likelihoods.multi.pe.GWTransientTDMultiDetector for a coherent network. A bilby Likelihood, so it drops into a bilby sampler run.
  • Inspiral-ringdown consistency test. tdanalysis.likelihoods.single.consistency_test.InspiralRingdownConsistencyTD and ...likelihoods.multi.consistency_test.IMRConsistencyMultiDetector, comparing an inspiral-derived and a ringdown-derived remnant, plus tdanalysis.likelihoods.comparison.discriminators.ChiSquaredRingdown.
  • Quadratic forms and whiteners. tdanalysis.forms, selected with qform_method: Gohberg-Semencul (gs, O(N log N) via FFT), preconditioned CG (pcg), invLD, Llt and CD. gs_batched is the numpy batched chi-square that reduced_batch drives.
  • 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 under tdanalysis/data/. Importing tdanalysis.detectors registers them with pycbc. Provenance for every vendored file is in tdanalysis/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

tdanalysis-1.0.0.tar.gz (9.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tdanalysis-1.0.0-py3-none-any.whl (9.9 MB view details)

Uploaded Python 3

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

Hashes for tdanalysis-1.0.0.tar.gz
Algorithm Hash digest
SHA256 91ff29cf24ecf73fff38785f4093570f4e66def043d88443a8b8c7288a1b503c
MD5 6a9eb9ad55472e045481134041652365
BLAKE2b-256 bcafbc07645187f2dc52e4c2f009fb260aa1c5abf267c3aafca141c4a7c76d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tdanalysis-1.0.0.tar.gz:

Publisher: release.yml on vaishakp/tdanalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for tdanalysis-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b6d9ab74b232dbe905aa33e984875bd713b02054e9eff5e3b52c94cff9aa19c9
MD5 fc3d5964c20141f1457afc9cfd4f36da
BLAKE2b-256 08bcd383d65adda84f72651040822ec469c134e71663c1422ce6b5ea8a0a3eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tdanalysis-1.0.0-py3-none-any.whl:

Publisher: release.yml on vaishakp/tdanalysis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page