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.
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fead798baa095bf67d1d5c072872139c87e31d0315bff3a30b44af1e1625b6cd
|
|
| MD5 |
32ebbcf3d5829cc3b596ede07347c787
|
|
| BLAKE2b-256 |
fc2624c24e078549d1fd5da7bbefb57a260a0f739833dd0e53378ef8b9b5290c
|
Provenance
The following attestation bundles were made for pyvisgen-0.3.0.tar.gz:
Publisher:
pypi-publish.yml on radionets-project/pyvisgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvisgen-0.3.0.tar.gz -
Subject digest:
fead798baa095bf67d1d5c072872139c87e31d0315bff3a30b44af1e1625b6cd - Sigstore transparency entry: 259696717
- Sigstore integration time:
-
Permalink:
radionets-project/pyvisgen@930e27b6a818eeaee1007688453191f3d48bdfc3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/radionets-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@930e27b6a818eeaee1007688453191f3d48bdfc3 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e44b436ebf86e368cf3aa2db65780402a5e14ea1234c95fffb47be91c10d23e0
|
|
| MD5 |
097bd27def4be50fc7d31109e4e553b4
|
|
| BLAKE2b-256 |
1bb0410c4b4b317b0f91118e0bb8c356dc11016b9a8ac4c3773bc719328165b4
|
Provenance
The following attestation bundles were made for pyvisgen-0.3.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on radionets-project/pyvisgen
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyvisgen-0.3.0-py3-none-any.whl -
Subject digest:
e44b436ebf86e368cf3aa2db65780402a5e14ea1234c95fffb47be91c10d23e0 - Sigstore transparency entry: 259696718
- Sigstore integration time:
-
Permalink:
radionets-project/pyvisgen@930e27b6a818eeaee1007688453191f3d48bdfc3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/radionets-project
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@930e27b6a818eeaee1007688453191f3d48bdfc3 -
Trigger Event:
release
-
Statement type: