Argosim
argosim is a lightweight, modular, and open-source Python package for simulating radio interferometric observations. It is developed as part of the ARGOS project, a European initiative to build a next-generation, sustainable radio interferometer.
✨ Key Features
- 📡 Antenna array simulation – Generate custom arrays or load predefined layouts.
- 🔭 Aperture synthesis – Compute baseline distributions and uv-sampling masks.
- 🌀 Sky model generation – Create or load input sky models.
- 🧼 Dirty beam and image reconstruction – Simulate dirty observations and reconstruct images using CLEAN.
- 📊 Beam and image quality metrics – Evaluate beam shape, sidelobe level, and image fidelity.
- ⚡ JAX backend – Accelerated, differentiable computations for high-performance and ML applications.
- 🐳 Docker support – Easy reproducibility and cross-platform compatibility.
⚡ JAX & differentiability
The imaging forward model — baselines, UV-track generation, Kaiser–Bessel convolutional gridding, FFT — is implemented end-to-end in JAX, so the path from antenna positions all the way to the dirty image is differentiable. Combined with an optax optimiser, this turns array layout design into a gradient-based problem: you can directly minimise a loss on the dirty beam (or any downstream observable) with respect to the antenna coordinates.
The animation below shows 20 antennas being optimised with Adam to match a Gaussian target beam, under multiple physical constraints (minimum spacing, maximum site radius). The reusable building blocks live in argosim.optim_utils; see notebooks/layout_optimisation.ipynb for the full example.
🚀 Getting Started
Installation
You can install the latest version of argosim via pip:
pip install argosim
Or use the development version directly from GitHub:
git clone https://github.com/ARGOS-telescope/argosim.git
cd argosim
pip install -e .
Dependencies
- Python 3.11+
- NumPy, Matplotlib, JAX, scikit-image
- PyQt6 (optional, for running the GUI)
🖥️ Graphical User Interface (GUI)
argosim provides an optional PyQt6-based GUI for interactive simulations. It supports array configuration, uv-coverage visualization, and imaging—all without writing code.
Ideal for education, outreach, and rapid prototyping.
Running the GUI requires PyQt6 which can be installed as follows:
pip install "argosim[gui]"
To launch the GUI and have access to the custom templates you need to clone the argosim repository:
git clone https://github.com/ARGOS-telescope/argosim.git
cd argosim
Launch the GUI with:
python app/argosim-gui.py
📚 Documentation
Comprehensive documentation is available at:
📖 Tutorials
Four interactive Jupyter notebooks are provided to help you get started:
These notebooks cover the main functionalities of argosim and provide practical examples.
🐳 Docker
A pre-built Docker image is available:
docker pull ghcr.io/argos-telescope/argosim:main
This ensures reproducibility and simplifies setup across different environments.
🛠️ Development
We use continuous integration to maintain code quality and robustness:
- Unit tests with
pytest - Linting with
blackandisort - Documentation building with
sphinx
📢 Citation
If you use argosim in your research, please cite it as follows:
@software{argosim,
author = {Ezequiel Centofanti and Emma Ayçoberry and Samuel Farrens and Samuel Gullin and Manal Bensahli and Jean-Luc Starck and John Antoniadis},
title = {argosim: a Python package for radio interferometric simulations},
version = {2.0.0},
year = {2026},
url = {https://github.com/ARGOS-telescope/argosim}
}
fill in the version number with the current version of argosim.
This software is developed at the CosmoStat laboratory, CEA, Paris-Saclay, in collaboration with the ARGOS project.
📬 Contact
For questions, bugs, or feature requests, feel free to open an issue.
Metadata
Release files for argosim 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| argosim-2.0.0.tar.gz | 44.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| argosim-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.8 kB
Release files / argosim-2.0.0.tar.gz
| Download URL | argosim-2.0.0.tar.gz |
|---|---|
| Size | 44.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ca731e296b8f539453a5b2bad0d5a531735fe435745ac0ec336945c6da7eae3
|
|
BLAKE2b-256 checksum How to use checksums |
e6d9cefe127dcdb415331f2d6adda154ed982b090fe0e376d31c0565dd40efc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / argosim-2.0.0-py3-none-any.whl
| Download URL | argosim-2.0.0-py3-none-any.whl |
|---|---|
| Size | 47.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
718afe2fb67d141744858dcf3aa93e87f128b2667571e8a89b6a8cd196875619
|
|
BLAKE2b-256 checksum How to use checksums |
b3406d600403f9a6e775f0a605ac953254bbafe1b639172178bc2fd5f16d7b0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for argosim 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.