Skip to main content

Pyvisgen is a python implementation of the Radio Interferometer Measurement Equation (RIME) formalism inspired by the VISGEN tool of the MIT Array Performance Simulator developed at Haystack Observatory. The RIME is used to simulate the measurement process of a radio interferometer. A gridder is also implemented to process the resulting visibilities and convert them to images suitable as input for the neural networks developed in the radionets repository.

Installation

You can install the necessary packages in a conda environment of your choice by executing

$ pip install -e .

Usage

There are 3 possible modes at the moment: simulate (default), slurm, and gridding. simulate and slurm both utilize the RIME formalism for creating visibilities data. With the option gridding, these visibilities get gridded and prepared as input images for training a neural network from the radionets framework. The necessary options and variables are set with a toml file. An exemplary file can be found in config/data_set.toml.

$ pyvisgen_create_dataset --mode=simulate some_file.toml

In the examples directory, you can find introductory jupyter notebooks which can be used as an entry point.

Input images

As input images for the RIME formalism, we use GAN-generated radio galaxies created by Rustige et. al. and Kummer et. al.. Below, you can see four example images consisting of FRI and FRII sources.

sources

Any image can be used as input for the formalism, as long as they are stored in the h5 format, generated with h5py.

RIME

Currently, we use the following expression for the simulation process:

$$\mathbf{V}_{\mathrm{pq}}(l, m) = \sum_{l, m} \mathbf{E}_{\mathrm{p}}(l, m) \mathbf{K}_{\mathrm{p}}(l, m) \mathbf{B}(l, m) \mathbf{K}^{H}_{\mathrm{q}}(l, m) \mathbf{E}^{H}_{\mathrm{q}}(l, m)$$

Here, $\mathbf{B}(l, m)$ corresponds to the source distribution, $\mathbf{K}(l, m) = \exp(-2\pi\cdot i\cdot (ul + vm))$ represents the phase delay, and $\mathbf{E}(l, m) = \mathrm{jinc}\left(\frac{2\pi}{\lambda}d\cdot \theta_{lm}\right)$ the telescope properties, with $\mathrm{jinc(x)} = \frac{J_1(x)}{x}$ and $J_1(x)$ as the first Bessel function. An exemplary result can be found below.

visibilities

Visualization of Jones matrices

In this section, you can see visualizations of the matrices $\mathbf{E}(l, m)$ and $\mathbf{K}(l, m)$.

Visualization of the $\mathbf{E}$ matrix

visualize_E

Visualization of the $\mathbf{K}$ matrix

visualize_K

Metadata

Release files for pyvisgen 0.9.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 pyvisgen 0.9.0
File Size Uploaded
pyvisgen-0.9.0.tar.gz 985.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyvisgen 0.9.0
File Interpreter ABI Platform
pyvisgen-0.9.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / pyvisgen-0.9.0.tar.gz

Download URL pyvisgen-0.9.0.tar.gz
Size 985.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a45ce885410db5acf8be61ba666b7e767c85954fbf57858b1d9f5ed9f8d76628
BLAKE2b-256 checksum
How to use checksums
76029e460e5fb31bc1ca6427377bb9f1c1ad5c0242230c45ee51a431430f4ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release files / pyvisgen-0.9.0-py3-none-any.whl

Download URL pyvisgen-0.9.0-py3-none-any.whl
Size 201.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8089161296ad84ed2b4fa81a6700d0059ca32d9b7162abe70e6cd321dcf0d3ed
BLAKE2b-256 checksum
How to use checksums
49cb55c25cedbfefb406978d92cdf7b2c980089a3bd01ea191582c868292f915
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

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