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.
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.
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
Visualization of the $\mathbf{K}$ matrix
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pyvisgen-0.9.0.tar.gz | 985.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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