PyART — Python Analytical Relativity Toolkit¶
PyART (Python Analytical Relativity Toolkit) provides a unified interface to access and work with numerical relativity (NR) waveform catalogs for compact-object binary mergers. Different NR groups maintain their own data formats and access conventions, which can make comparative or downstream analyses cumbersome. PyART addresses this by offering a lightweight abstraction layer over several major public catalogs.
In addition to catalog access, PyART includes basic tools for waveform comparison—such as time-domain alignment and frequency-domain mismatch calculations—for both single-mode and multi-mode data (and few more).
Supported Catalogs¶
Simulating eXtreme Spacetimes (SXS)
Maya
CoRe (Computational Relativity)
RIT
GR-Athena
ICCUB NR
SACRA
RWZ
and others
Warning
PyART is under active development. The codebase is mostly well-behaved, but some of its dependencies are temperamental, and things may break without warning. Think of it as a promising postdoc — brilliant, but occasionally unpredictable.
PyART is currently available only from source. Clone the repository and install the base library with:
git clone https://github.com/RoxGamba/PyART.git
cd PyART
pip install .
This covers the core Waveform interface, analysis tools (matched filtering, eccentricity,
scattering angles, …), and the PN/BHPT analytic expressions. Optional/soft dependencies (e.g.
EOBRun_module, lalsimulation) are imported inside try/except, so a missing one only disables
the specific model or catalog that needs it, without breaking the rest of the package.
On top of the base install, three extras add optional functionality:
Extra |
Install with |
What it gives you |
|---|---|---|
|
|
Downloading/scraping NR waveform catalogs — SXS ( |
|
|
Optional analytical/semi-analytical waveform models — TEOBResumS ( |
|
|
Building the Sphinx documentation locally ( |
Extras can be combined, e.g.:
pip install ".[catalogs,models]"
Note: PyART depends on
pycbc, which currently has two incompatibilities with numpy 2.x. After installing, apply the one-time patch:python scripts/patch_pycbc_numpy2.pyThis patches
pycbc’sevents/threshold_cpu.pyandfilter/matchedfilter.pyin-place. It is idempotent and safe to re-run after pycbc upgrades.
We promise to make available on PyPI in near future.
Contents:
- Intro to Waveforms
- Downloading Waveforms from Different Catalogs
- Time and Phase Alignment
- Computing Mismatches Between NR and EOB Waveforms
- Optimizing Initial Conditions for EOB Waveforms
- Working with the Public ICCUB Catalog and Waveform Integration
- Scattering Angles from EOB Data
- Coordinates and TwoPunctures from EOB IDs
- PNPedia interface
- API Reference