hera_sim

Build Status Coverage Status Documentation Status

Basic simulation package for HERA-like redundant interferometric arrays.

Features

  • Systematic Models: Many models of instrumental systematics in various forms, eg. thermal noise, RFI, bandpass gains, cross-talk, cable reflections and foregrounds.

  • HERA-tuned: All models have defaults tuned to HERA, with various default “sets” available (eg.H1C, H2C)

  • Interoperability: Interoperability with pyuvdata datasets and pyuvsim configurations.

  • Ease-of-use: High-level interface for adding multiple systematics to existing visibilities in a self-consistent way.

  • Visibility Simulation: A high-level interface for visbility simulation that is compatible with the configuration definition from pyuvsim but is able to call multiple simulator implementations.

  • Convenience: Methods for adjusting simulated data to match the times/baselines of a reference dataset.

Documentation

At ReadTheDocs. In particular, for a tutorial and overview of available features, check out the tour.

Installation

The best and easiest way to install hera_sim is with uv:

uv add hera_sim

Or if you are using the pip-style interface:

uv pip install hera_sim

You can install optional extras as well – for exapmle to get all the dependencies required for simulating visibilities:

uv add hera_sim --extra vis

Available extras are vis, bda, and cal (for also installing hera-calibration).

Conda users

If you are using conda, the following command will install all dependencies which it can handle natively:

conda install -c conda-forge numpy scipy pyuvdata attrs h5py healpy pyyaml

Developer install

If you are planning on developing hera_sim, you should use uv:

git clone git@github.com/hera-team/hera_sim.git
cd hera_sim
uv sync --all-extras

As the repository is becoming quite large, you may also wish to perform a shallow clone to retrieve only the recent commits and history. This makes the clone faster and avoid bottleneck in CI pipelines.

Provide an argument --depth 1 to the git clone command to copy only the latest revision of the repository.

Versioning

We use semantic versioning (major.minor.patch) for the hera_sim package (see SemVer documentation). To briefly summarize, new major versions include API-breaking changes, new minor versions add new features in a backwards-compatible way, and new patch versions implement backwards-compatible bug fixes.

Contents

Indices and tables