Skip to main content

A python package for simulating populations of gravitational-wave sources.

Project description

gwmock-pop

Python CI pre-commit.ci status Documentation Status codecov PyPI Version Python Versions License Security: bandit DOI SPEC 0 — Minimum Supported Dependencies

gwmock-pop is a Python package for simulating populations of gravitational-wave sources.

Current package surface

  • Protocols: GWPopSimulator (population simulators), ExternalPopulationLoader (catalogue loaders).
  • Graph-driven sampling: GraphSimulator from a YAML/TOML parameters graph (packaged presets via list_presets() / GraphSimulator.from_preset).
  • Lightweight CBC priors: CBCPriorSimulator, BNSPriorSimulator, NSBHPriorSimulator, and BBHSimulator for tests and baselines.
  • Composition: MixtureSimulator, PoissonEventSampler (event-count helper used in mixture workflows).
  • Catalogues: FilePopulationLoader and read_population_catalogue / write_population_catalogue for CSV and HDF5 (structured or group-of-datasets layouts).
  • Quality checks: validate_sample for arrays returned by simulators.

Public re-exports live in gwmock_pop.__all__; full module reference is in the API docs.

Requirements

  • Python >=3.12 (tested on 3.12–3.14)
  • Linux, macOS, or Windows

Installation

Install from PyPI:

uv venv --python 3.12
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install gwmock-pop

Install from source:

git clone git@github.com:Leuven-Gravity-Institute/gwmock-pop.git
cd gwmock-pop
uv venv --python 3.12
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv sync --no-dev

Developer setup:

uv sync --group dev
uv run pre-commit install

Docs setup:

uv sync --group docs
uv run zensical serve

Getting started (CLI)

The gwmock-pop CLI uses Typer. Typical flow: pick a packaged preset or a graph config file, set the sample count, and write a CSV or HDF5 catalogue.

# Packaged preset (see `gwmock-pop list` for names)
gwmock-pop simulate --config gwtc4 --n 1000 --output population.csv --seed 42

# Or a graph YAML/TOML (top-level `parameters:` as in `examples/gwtc4/bbh_population.yaml`)
gwmock-pop simulate --config examples/gwtc4/bbh_population.yaml --n 500 --output out.h5

Other commands:

Command Purpose
gwmock-pop convert Convert population files between CSV and HDF5; optional --column-map JSON/YAML
gwmock-pop validate Check a graph config without sampling
gwmock-pop inspect Summary statistics for a population file
gwmock-pop list List presets and public simulator classes
gwmock-pop --help
gwmock-pop simulate --help

Getting started (library)

from gwmock_pop import CBCPriorSimulator

sim = CBCPriorSimulator(seed=42)
population = sim.simulate(100)
assert population["detector_frame_mass_1"].shape == (100,)

Use GraphSimulator.from_config_file(...) or GraphSimulator.from_preset(...) for full graph configs (see examples/ and gwmock_pop.simulators.graph).

Verification

gwmock-pop --help
python -c "import gwmock_pop; print(gwmock_pop.__version__)"

Testing

Default test run excludes integration-marked tests:

uv run pytest

Run integration tests explicitly:

uv run pytest -m integration

Documentation

License

BSD 3-Clause, see LICENSE.

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

gwmock_pop-0.6.0.tar.gz (229.3 kB view details)

Uploaded Source

Built Distribution

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

gwmock_pop-0.6.0-py3-none-any.whl (91.3 kB view details)

Uploaded Python 3

File details

Details for the file gwmock_pop-0.6.0.tar.gz.

File metadata

  • Download URL: gwmock_pop-0.6.0.tar.gz
  • Upload date:
  • Size: 229.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gwmock_pop-0.6.0.tar.gz
Algorithm Hash digest
SHA256 84f042afd39593694795a7f6284c7bbbf087ba42b0b5535ded823a74ccba3ed3
MD5 105a963c14d6c2eaae3b5d43620cea84
BLAKE2b-256 ca8cb73900eea488d1c0350342ea6df2ae6c7bf144087583a8ffa6d6a08ed58c

See more details on using hashes here.

File details

Details for the file gwmock_pop-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: gwmock_pop-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 91.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for gwmock_pop-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7b8ee4334af48bd577d95080180c84f590c4e8669ab96db905733f5502ffc43
MD5 d14993bb5c3ac6d7e6ac6df5a3aeb160
BLAKE2b-256 e3aaea59d3705614e30a608f74d9b9d352c9da3501d64c3161afb182256f55ad

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