Simulation data management for modelling of backscattered light in the Virgo interferometer
  • Python 98.2%
  • Just 1.3%
  • Shell 0.5%
Find a file
2026-04-03 19:47:09 +02:00
doc
hooks
src/backscattering_simulation_data
tests
typings/backscattering_simulation_data
justfile
LICENSE
mise.toml
pyproject.toml
README.md
uv.lock

Backscattering Simulation Data

Python interface for managing and interfacing with backscattering simulation data of the Virgo interferometer

This library specifically manage simulation data generated with backscattering_simulation and backscattering_analyzer.

Getting started

Requirements

  • Python >= 3.11
  • mise (optional, standard workflow)

Installation

Tip

This library is a core component of the backscattering_simulation and backscattering_analyzer projects. Installing it alone is not intended.

it is designed to be used as a dependency.

python -m pip install .

Development tools & Workflow

If mise is installed, and mise.toml is trusted, all tools will be installed.

This project uses the following tools for development. While not all are required for basic usage, they are used by the maintainer to ensure consistency and avoid bugs.

  • just: command runner (optional)
  • hatch: project manager (optional)
  • hatchling: package builder (optional)
  • uv: package manager (optional)
  • ruff: python linter and formatter (optional)
  • ty: python type checker (optional)

Note

Tools used in the project consume and produce interoperable format to avoid vendor lock-in. This is the toolchain of the current maintainer

just can be used as a command runner to speed up development. For example, to setup a dev environment and add git hooks, run just dev.

All commands available can be listed with just -l.

Usage

Caution

This library is a core component of backscattering_simulation. It is not intended to used alone.

# Load data already generated by backscattering_simulation
from pathlib import Path

from h5py import File

from backscattering_simulation_data import Root

# path to the saved data file
filename = Path("path/to/data.hdf5")

with File(filename, "r") as file:
    root = Root.from_hdf5(file)

# get the power on the injection
print(root.metadata.interferometer.injection_power)

Documentation

See the API Reference.

License

This project is licensed under the GNU GPL v3+. See license file for more information.

Acknowledgment

Thanks to all the people that worked on GWpy, Finesse and on all software and libraries used in this project.