vlbisim
vlbisim is a Python package for simulating Very Long Baseline Interferometry (VLBI) observations. It allows users to define telescope arrays, simulate uv-coverage for astronomical sources, visualize baseline distributions, and create synthetic dirty images. The package supports major VLBI arrays such as VLBA, EHT, ngVLA, EVN, and user-defined custom arrays.
Features
- Define and configure telescopes with latitude, longitude, elevation, and visibility limits.
- Calculate uv-coverage for arbitrary telescope arrays and sources.
- Simulate interferometric observations with customizable observation times and scan durations.
- Plot uv-coverage with baseline highlighting options.
- Generate synthetic dirty images from uv-coverage.
- Visualize telescope locations on world maps and globes.
- Supports major VLBI arrays, including VLBA, EHT, ngVLA, GMVA, EVN, MeerKAT, SKA, and others.
Installation
pip install vlbisim
Note: Some features require additional dependencies such as
numpy,matplotlib,astropy,basemap, andnumba.
Usage
Importing the package
from vlbisim import Telescope, getArray, simulateUV, plotUVdata, plotMap
Define telescopes
# Create a single telescope
t1 = Telescope(lat=50.524778, lon=6.883972, name="Effelsberg", elev_lim=15)
# Load a pre-defined array
vlba = getArray("VLBA")
Simulate uv-coverage
# Define source coordinates [RA, Dec] in degrees
source = [180.0, 45.0]
# Simulate uv-coverage
uv_coverage = simulateUV(vlba, source, n_iter=100, obsstart=0, obsend=24, make_plot=True)
Plot uv-coverage
plotUVdata(uv_coverage, highlight_baselines=[0, 1, 2])
Plot telescope array on a world map
plotMap(vlba, llcrnrlat=-90, urcrnrlat=90, llcrnrlon=-180, urcrnrlon=180)
Additional Utilities
SplitScans: Split long observations into shorter scans.combine_telescopes: Merge multiple arrays.getHighlightBaselines: Highlight specific baselines in plots.plotGlobe: Visualize telescope arrays on a 3D globe.get_elevation: Fetch telescope elevation using Open-Meteo API.
Examples
# Combine two arrays
full_array = combine_telescopes([getArray("VLBA"), getArray("EVN")])
# Split observation into scans
uv_scans = SplitScans(full_array, source=[180,45], obstart=0, obsend=24, scan_time=2, n_scans=12)
# Animate uv-coverage and save as mp4
simulateUV(full_array, source, make_movie=True, output_name="uvout.mp4")
Dependencies
numpymatplotlibastropybasemapnumbarequests
License
This project is licensed under the MIT License.
Metadata
Release files for vlbisim 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vlbisim-0.1.1.tar.gz | 12.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vlbisim-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.9 kB
Release files / vlbisim-0.1.1.tar.gz
| Download URL | vlbisim-0.1.1.tar.gz |
|---|---|
| Size | 12.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a05d9d7742c07ba0907168cfa55f507565619e76131a39283650934a1828424
|
|
BLAKE2b-256 checksum How to use checksums |
71030cd0e77fbcece346a042426da778eaa0ea2ea21d907177bde28d14cc33ec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|
Release files / vlbisim-0.1.1-py3-none-any.whl
| Download URL | vlbisim-0.1.1-py3-none-any.whl |
|---|---|
| Size | 12.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
81ab1eb7386538b03b406985330eb12eabf6f2da38dea9713f0818e1b2b66eba
|
|
BLAKE2b-256 checksum How to use checksums |
d5e3383f202b2a86afb424e6dba44c2d36f4311a5af785b70de05e73756632c8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.13
|