Skip to main content

A Python package for simulating gravitational wave detector data for mock data challenges.

Project description

gwsim

Pipeline Documentation Coverage Report PyPI Version Python Versions License

A Python package for generating Mock Data Challenge (MDC) datasets for the gravitational-wave (GW) community. It simulates strain data for detectors like Einstein Telescope, providing a unified interface for reproducible GW data generation.

Features

  • Modular Design: Uses mixins for flexible simulator composition
  • Detector Support: Built-in support for various GW detectors with custom configuration options
  • Waveform Generation: Integrates with PyCBC and LALSuite for accurate signal simulation
  • Noise Models: Supports colored and correlated noise generation (In-Progress)
  • Population Models: Handles injection populations for signals and glitches
  • Data Formats: Outputs in standard GW formats (GWF frames)
  • CLI Interface: Command-line tools for easy simulation workflows

Installation

We recommend using uv to manage virtual environments for installing gwsim.

If you don't have uv installed, you can install it with pip. See the project pages for more details:

  • Install via pip: pip install --upgrade pip && pip install uv
  • Project pages: uv on PyPI | uv on GitHub
  • Full documentation and usage guide: uv docs

From PyPI

# Create a virtual environment (recommended with uv)
uv venv gwsim-env
source gwsim-env/bin/activate  # On Windows: gwsim-env\Scripts\activate
uv pip install gwsim

From Source

git clone https://gitlab.et-gw.eu/et-projects/software/gwsim.git
ce gwsim
# Create a virtual environment (recommended with uv)
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
uv pip install .

Quick Start

Command Line

# Generate simulated data
gwsim simulate config.yaml

Configuration

gwsim uses YAML configuration files for reproducible simulations. See examples/config.yaml for a complete example.

Key configuration sections:

  • globals: Shared parameters (sampling rate, duration, etc.)
  • simulators: List of noise, signal, and glitch generators

Documentation

Full documentation to be available at readthedocs.io.

Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Testing

Run the test suite:

pytest

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For questions or issues, please open an issue on GitLab or contact the maintainers.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gwsim-0.2.0.tar.gz (802.2 kB view details)

Uploaded Source

Built Distribution

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

gwsim-0.2.0-py3-none-any.whl (573.4 kB view details)

Uploaded Python 3

File details

Details for the file gwsim-0.2.0.tar.gz.

File metadata

  • Download URL: gwsim-0.2.0.tar.gz
  • Upload date:
  • Size: 802.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gwsim-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5baeb992492036e435d9d4ce7fe435f9fd8c7186700b5bc87eaeaf6f254b1935
MD5 db085e29e780fce5d80c1d9566125f45
BLAKE2b-256 0fc35fd65ccd37f6d13a3013df69e46210aeea0e8fc199f858e2c8bfba0abdf8

See more details on using hashes here.

File details

Details for the file gwsim-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gwsim-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 573.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for gwsim-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fb40e08a68506aab0d9e04eec96f86e54b38b27469baeb517cf35f21e7a27ecf
MD5 d39d27a83efb509ceba488eb5d63e949
BLAKE2b-256 505c182b333fd89b17f7ab63cfd7968228180ce6f7e2f7d12b39c8a46f221e61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page