Skip to main content

Simulate radio interferometer observations and visibility generation with the RIME formalism.

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyvisgen-0.3.0.tar.gz (12.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyvisgen-0.3.0-py3-none-any.whl (179.5 kB view details)

Uploaded Python 3

File details

Details for the file pyvisgen-0.3.0.tar.gz.

File metadata

  • Download URL: pyvisgen-0.3.0.tar.gz
  • Upload date:
  • Size: 12.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyvisgen-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fead798baa095bf67d1d5c072872139c87e31d0315bff3a30b44af1e1625b6cd
MD5 32ebbcf3d5829cc3b596ede07347c787
BLAKE2b-256 fc2624c24e078549d1fd5da7bbefb57a260a0f739833dd0e53378ef8b9b5290c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvisgen-0.3.0.tar.gz:

Publisher: pypi-publish.yml on radionets-project/pyvisgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyvisgen-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyvisgen-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 179.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyvisgen-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e44b436ebf86e368cf3aa2db65780402a5e14ea1234c95fffb47be91c10d23e0
MD5 097bd27def4be50fc7d31109e4e553b4
BLAKE2b-256 1bb0410c4b4b317b0f91118e0bb8c356dc11016b9a8ac4c3773bc719328165b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyvisgen-0.3.0-py3-none-any.whl:

Publisher: pypi-publish.yml on radionets-project/pyvisgen

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page