Simulate LISA data: noise and signal

PCI is applied directly to the LISA phasemeter measurements.

The LISA phasemeter measurements are the output of simulations built via the LISA Simulation suite.

In what follows we use the following packages from the November 2025 releases of the LISA Simulation Suite:

  • lisainstrument >= 1.9 for the overarching instrument simulation,

  • lisaorbits for the orbits,

  • lisagwresponse for the response to GW,

  • pytdi for the evaluation of TDI variables.

The simulation scripts listed on this page will work with both lisainstrument v1.9 and lisainstrument v2.0. Take into account that lisainstrument v2.0 does a better job at managing memory when running longer simulations.

In the package we provide three simulation scripts that can be executed in the terminal:

  • noise_simulation.py to simulate the laser and secondary noises

  • signal_simulation.py to simulate a stochastic point source in the sky

  • all_sky_signal_simulation.py to simualte a stochastic graviational wave background.

Simulation scripts

In the package we provide three simulation scripts:

  • noise_simulation.py to simulate the instrumental noise for various simulation scenarios;

  • signal_simulation.py to simulate a stochastic point source in the sky;

  • all_sky_signal_simulation.py to simulate a stochastic gravitational wave background.

A generic simulation scripts simulation_script.py can be executed in the terminal and written to path path-to-workdir by following the structure

python simulation_script.py path-to-workdir --flags

where --flags are used to pass various options to the script.

The flags implemented in the all three simulation scripts listed here are the following:

  • --dt (float) setting up sampling time [s] (default: 0.25)

  • --orbits (str) specify equalarm or keplerian (default: keplerian)

  • --days , specify number of days as an int (default: 3) to pass the desired simulation length in days

  • --tdi if desired, specify 1 or 2 (default: None): simulate and save TDI combinations for the simulation

Simulation of SGWB signal using LISAGWResponse

The simulation is carried out within signal_simulation.py and all_sky_signal_simulation.py.

Here we simulate a chosen number of days of data, and provide options to generate the TDI output of the simulated data with different signals depending on the simulation script of choice:

  • signal_simulation.py simulates a stochastic point source located at the ICRS coordinates ra=0 and dec=0.

  • all_sky_signal_simulation.py simulates a stochastic GW background with a white generator.

Usage example:

Execute simulation with TDI computation (analogous for all_sky_signal_simulation.py):

python signal_simulation.py path-to-workdir --orbits equalarm --tdi 2

Simulation of instrumental noise using LISAInstrument

The noise simulation is carried out within noise_simulation.py.

Here we simulate a chosen number of days of data, and provide options to generate the TDI output of the simulated data and specify which simulation scenarios to produce.

The flags implemented in the noise simulation script are the following:

  • --dt (float) setting up sampling time [s] (default: 0.25)

  • --freq1 (float) to set up Kaiser filter first transition frequency [Hz] (default: 1.1)

  • --freq2 (float) to set up Kaiser filter second transition frequency [Hz] (default: 2.9)

  • --orbits (str) specify equalarm or keplerian (default: keplerian)

  • --locking (str) specify N1-12 or six (default: N1-12)

  • --days , specify number of days as an int (default: 3) to pass the desired simulation length in days

  • --tdi if desired, specify 1 or 2 (default: None): simulate and save TDI combinations for the full measurement simulation

  • --baseline trigger baseline simulation to match the simulation parameters defined in LISA-LCST-SGS-RP-006 “End-to-end Demonstration Data Analysis Pipeline”, including laser, test-mass, OMS, modulation, ranging, clock and backlink noise (see Simulation Scenarios below)

  • --individual simulate and save all individual noise contributions (see Simulation Scenarios below)

  • --combined simulate and save all combined noise contributions (see Simulation Scenarios below)

The naming convention of the output file is always:

yyyy-mm-dd_orbits_locking_scenario_data_4Hz.h5

The outputs of the simulation will be:

  • a full simulation dataset (laser noise + all secondary noises), for the selected scenario (laser_tm_oms or baseline)with filename 'yyyy-mm-dd_orbits_locking_scenario_measurements_4Hz.h5'

  • a secondary noises only simulation dataset, with filename 'yyyy-mm-dd_orbits_locking_scenario_noise_sec_4Hz.h5'

  • if --individual is selected, additional simulation datasets for each noise source, with filenames 'yyyy-mm-dd_orbits_locking_scenario_individual_noisename_4Hz.h5'.

  • if --combined is selected, additional combined simulation datasets for each noise source, with filenames 'yyyy-mm-dd_orbits_locking_scenario_combined_noisename_4Hz.h5'.

Simulation scenarios

To allow for benchmarking performance of PCI against TDI, we provide a list of simulation scenarios to test. Various options can be toggled when executing the script to generate the data.

Laser locking Simulation scenarios can be generated with various types of laser locking:`

  • 'N1-12' pre-defined laser locking configuration N1 with 12 as primary laser or

  • 'six' for 6 lasers locked on cavities,

Orbits Choosing between equal armlength and keplerian orbits.

Secondary noises Choosing between simpler LTO (laser + TM+ OMS) noise contrbutions, and the baseline noise contributions laid out in the LISA-LCST-SGS-RP-006 “End-to-end Demonstration Data Analysis Pipeline”: LTO + ranging + clock + backlink + modulation

Table of simulated scenarios, for each locking configuration:

EqualArmlengthOrbits

KeplerianOrbits

Comments

LTO noise

only laser noise

only laser noise

null-hypothesis scenario

tm noise

tm noise

individual noise sources

oms noise

oms noise

individual noise sources

laser noise + TM noise

laser noise + TM noise

noise source combined with laser

laser noise + OMS noise

laser noise + OMS noise

noise source combined with laser

laser + TM+ OMS noise

laser + TM + OMS noise

full measurement simulation

TM + OMS noise

TM + OMS noise

secondary noises

LISA-LCST-SGS-RP-006 baseline

—-

baseline

full measurement simulation

—-

baseline secondary noises

secondary noises

—-

ranging

individual noise sources

—-

clock

individual noise sources

—-

backlink

individual noise sources

—-

modulation

individual noise sources

—-

LTO + ranging

noise source combined with LTO

—-

LTO + clock

noise source combined with LTO

—-

LTO + backlink

noise source combined with LTO

—-

LTO + modulation

noise source combined with LTO

Usage examples:

  • Execute a 3-days simulation in the simple noise configuration containing only laser, test-mass and OMS noise, with equal arm orbits, default laser locking configuration and no TDI computation

python noise_simulation.py path-to-workdir --orbits equalarm --locking N1-12
  • Execute a 14-days simulation with TDI computation, in the simple noise configuration containing only laser, test-mass and OMS noise, with keplerian orbits, default laser locking configuration and TDI computation

python noise_simulation.py path-to-workdir --orbits keplerian --locking N1-12 --tdi 2 --days 14
  • Execute a 14-days simulation with baseline “End-to-end Demonstration Data Analysis Pipeline” configuration with no TDI computation

python noise_simulation.py path-to-workdir --orbits equalarm --locking N1-12 --days 14 --baseline
  • Execute a 14-days simulation with baseline “End-to-end Demonstration Data Analysis Pipeline” configuration with TDI computation and save all individual noise contributions and all combined noise contributions

python noise_simulation.py path-to-workdir --orbits equalarm --locking N1-12 --tdi 2 --days 14 --baseline --individual