Skip to main content

CI docs pypi License

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.

Differentiable antenna array optimisation

🚀 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:

https://argos-telescope.github.io/argosim/

📖 Tutorials

Four interactive Jupyter notebooks are provided to help you get started:

  1. Antenna Array Simulation
  2. Aperture Synthesis
  3. Image reconstruction
  4. CLEAN deconvolution

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 black and isort
  • 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)

Source distribution for argosim 2.0.0
File Size Uploaded Provenance
argosim-2.0.0.tar.gz 44.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for argosim 2.0.0
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page