Basic simulation package for HERA-like redundant interferometric arrays.
- 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
pyuvdatadatasets andpyuvsimconfigurations. - 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
pyuvsimbut is able to call multiple simulator implementations. - Convenience: Methods for adjusting simulated data to match the times/baselines of a reference dataset.
At ReadTheDocs. In particular, for a tutorial and overview of available features, check out the tour.
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).
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
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.
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.