This repository provides drop-in modules and example notebooks for running all-in-one TDI-infinity (TDI-∞) with the ESA/DDPC LISA L01 software suite. TDI-∞ is a constellation-level calibration scheme that suppresses dominant instrumental noise sources in LISA data, enabling gravitational wave detection.
Reference: Houba et al. 2025, Class. Quantum Grav. 42 145003
The TDI-∞ method constructs a design matrix M from known light travel times to express discrete measurements y as combinations of time-delayed noise samples:
It then solves for the null space T of M† to build TDI-∞ observables:
This projects out instrumental noise while preserving gravitational wave signals.
tdi-infinity-patchpack/
├── README.md # This file
├── constellation/
│ └── tdiinf.py # Core TDI-∞ implementation
├── notebooks/
│ ├── simulation.ipynb # Generate simulation data (orbits + telemetry)
│ └── pipeline_jax.ipynb # Run TDI-∞ + MCMC parameter estimation
└── examples/
├── instru.h5 # Example instrument telemetry data
├── orbits.h5 # Example orbit ephemeris
└── data.pkl # Example simulation parameters
This code requires the ESA/DDPC LISA L01 software suite. Additionally, install the following packages:
pip install numpy scipy matplotlib h5py dill
pip install lisaorbits lisainstrument lisaconstants pytdi
pip install ldc # LISA Data Challenges toolsFor the JAX-accelerated pipeline (optional):
pip install jax jaxlib emcee cornerImportant: The files in this repository must be copied into specific locations within your local ESA/DDPC LISA L01 clone. The file names must remain unchanged.
Copy files to your lolipops installation:
# Copy the TDI-∞ module
cp constellation/tdiinf.py /path/to/lolipops/lolipops/constellation/
# Copy notebooks to your working directory or lolipops notebooks folder
cp notebooks/*.ipynb /path/to/your/working/directory/Run notebooks/simulation.ipynb to create:
- orbits.h5: LISA orbit ephemeris using Keplerian orbits
- instru.h5: Simulated telemetry with configurable noise sources
- data.pkl: Pickled simulation parameters
Configure noise sources by setting the flags at the top of the notebook:
LASER_NOISE = True # Laser frequency noise
OB_NOISE = True # Optical bench jitter
CLOCK_NOISE = True # Ultra-stable oscillator noise
MOD_NOISE = True # Sideband modulation noise
OMS_NOISE = True # Optical metrology system noise
TM_NOISE = True # Test mass acceleration noise
GAPS = False # Introduce data gaps (NaNs)Run notebooks/pipeline_jax.ipynb to:
- Load simulation data and construct the TDI-∞ model
- Build noise covariance matrices
- Inject a test gravitational wave signal
- Perform MCMC parameter estimation using JAX acceleration
- Visualize posterior distributions
The full constellation-level model accounting for:
- 6 laser frequency noises (one per optical bench)
- 6 optical bench jitter noises
- 3 ultra-stable oscillator (clock) errors
- 3 sideband modulation noises
Uses measurements from:
- 6 SCI (science interferometers)
- 6 TMI (test-mass interferometers)
- 3 REF (reference interferometers)
- 6 ISB (SCI sidebands)
- 3 RSB (REF sidebands)
A simplified model operating on pre-computed eta (η) variables for laser-noise-only calibration. Useful for validation and benchmarking.
| Parameter | Description | Typical Value |
|---|---|---|
chunking |
Samples per chunk in block matrix construction | 150 |
overlap |
Row overlap fraction between chunks | 0.1 |
n |
Lagrange interpolation order | 31 |
verify |
Disable normalization for Mp-y residual checks | False |
If you use this code, please cite:
@article{Houba_2025,
author = {Houba, N and others},
title = {Time-delay interferometry infinity},
journal = {Classical and Quantum Gravity},
volume = {42},
number = {14},
pages = {145003},
year = {2025},
doi = {10.1088/1361-6382/adeb3c}
}See the LICENSE file for details.
Contributions are welcome. Please open an issue or submit a pull request.