Skip to main content

Imaging, analysis, and simulation software for radio interferometry

Project description

https://img.shields.io/pypi/v/ehtim.svg https://static.pepy.tech/badge/ehtim https://img.shields.io/badge/license-GPLv3-blue.svg https://img.shields.io/badge/docs-stable-blue.svg https://img.shields.io/badge/DOI-10.5281%2Fzenodo.2614008-blue.svg

Python modules for simulating and manipulating VLBI data and producing images with regularized maximum likelihood methods. This version is an early release so please raise an issue, submit a pull request, or email achael@outlook.com if you have trouble or need help for your application.

The package contains several primary classes for loading, simulating, and manipulating VLBI data. The main classes are the Image, Movie, Array, Obsdata, Imager, and Caltable classes, which provide tools for loading images and data, producing simulated data from realistic u-v tracks, calibrating, inspecting, and plotting data, and producing images from data sets in various polarizations using various data terms and regularizing functions.

Installation

The latest stable version (1.3.1) is available on PyPi. Simply install pip and run

pip install ehtim

A major eht-imaging revision is being developed on the dev branch. To use the very latest (unstable) code, checkout the dev branch, change to the main eht-imaging directory, and run:

pip install .

Installing with pip will update most of the required libraries automatically (numpy, scipy, matplotlib, astropy, ephem, future, h5py, and pandas).

NFFT Installation

If you want to use fast fourier transforms in this version of eht-imaging, you will also need to separately install NFFT and its pyNFFT wrapper. The unstable dev branch version has replaced pyNFFT with the actively maintained finufft library.

Note that, unfortunately, pyNFFT is only supported for python versions <=3.11 and numpy versions <=1.26.4

The simplest way to install pyNFFT is to use conda to install both NFFT and pyNFFT:

conda install -c conda-forge pynfft

Alternatively, first install NFFT manually following the instructions on the readme, making sure to use the --enable-openmp flag in compilation. Then install pynfft, with pip, following the readme instructions to link the installation to where you installed NFFT. Finally, reinstall ehtim.

For M1 Macs and later (MacOS >= v12.0), install the updated Mac version of pynfft and follow the instructions on the readme to manually install fftw, nfft and then pynfft.

Other Optional Dependencies

Certain eht-imaging functions require other external packages that are not automatically installed. In addition to pynfft, these include networkx (for image comparison functions), requests (for dynamical imaging), and scikit-image (for a few image analysis functions). However, the vast majority of the code will work without these dependencies.

Documentation and Tutorials

Documentation is here.

A tutorial jupyter notebook for imaging can be found in the repo at tutorials/ehtim_tutorial.ipynb

Slides for the included tutorial walk through the basic steps of reconstructing EHT images with the code

Scripts in the examples directory contain several older simple example workflows but have not been recently validated.

Citation

If you use ehtim in your publication, please cite Chael+ 2018.

The latest version is also available as a static doi on Zenodo.

Selected publications that use ehtim

Let us know if you use eht-imaging in your publication and we’ll list it here!

  • High-Resolution Linear Polarimetric Imaging for the Event Horizon Telescope, Chael et al. 2016

  • Computational Imaging for VLBI Image Reconstruction, Bouman et al. 2016

  • Stochastic Optics: A Scattering Mitigation Framework for Radio Interferometric Imaging, Johnson 2016

  • Reconstructing Video from Interferometric Measurements of Time-Varying Sources, Bouman et al. 2017

  • Dynamical Imaging with Interferometry, Johnson et al. 2017

  • Interferometric Imaging Directly with Closure Phases and Closure Amplitudes, Chael et al. 2018

  • A Model for Anisotropic Interstellar Scattering and its Application to Sgr A*, Psaltis et al. 2018

  • The Currrent Ability to Test Theories of Gravity with Black Hole Shadows, Mizuno et al. 2018

  • The Scattering and Intrinsic Structure of Sagittarius A* at Radio Wavelengths, Johnson et al. 2018

  • Testing GR with the Black Hole Shadow Size and Asymmetry of Sagittarius A*: Limitations from Interstellar Scattering, Zhu et al. 2018

  • The Size, Shape, and Scattering of Sagittarius A* at 86 GHz: First VLBI with ALMA, Issaoun et al. 2019a

  • First M87 Event Horizon Telescope Results IV: Imaging the Central Supermassive Black Hole, EHTC et al. 2019

  • EHT-HOPS Pipeline for Millimeter VLBI Data Reduction, Blackburn et al. 2019

  • Discriminating Accretion States via Rotational Symmetry in Simulated Polarimetric Images of M87, Palumbo et al. 2020

  • SYMBA: An end-to-end VLBI synthetic data generation pipeline, Roelofs et al. 2020

  • Monitoring the Morphology of M87* in 2009-2017 with the Event Horizon Telescope, Wielgus et al. 2020

  • EHT imaging of the archetypal blazar 3C 279 at extreme 20 microarcsecond resolution, Kim et al. 2020

  • Verification of Radiative Transfer Schemes for the EHT, Gold et al. 2020

  • Closure Traces: Novel Calibration-insensitive Quantities for Radio Astronomy, Broderick and Pesce. 2020

  • Evaluation of New Submillimeter VLBI Sites for the Event Horizon Telescope, Raymond et al. 2021

  • Imaging VGOS Observations and Investigating Source Structure Effects, Xu et al. 2021

  • A D-term Modeling Code (DMC) for Simultaneous Calibration and Full-Stokes Imaging of VLBI Data, Pesce et al. 2021

  • Using space-VLBI to probe gravity around Sgr A*, Fromm et al. 2021

  • Persistent Non-Gaussian Structure in the Image of Sagittarius A* at 86 GHz, Issaoun et al. 2021

  • First M87 Event Horizon Telescope Results. VII. Polarization of the Ring, EHTC et al. 2021

  • Event Horizon Telescope observations of the jet launching and collimation in Centaurus A, Janssen et al. 2021

  • RadioAstron discovers a mini-cocoon around the restarted parsec-scale jet in 3C 84 Savolainen et al. 2021

  • Unravelling the Innermost Jet Structure of OJ 287 with the First GMVA+ALMA Observations, Zhao et al. 2022

  • First Sagittarius A* Event Horizon Telescope Results. III: Imaging of the Galactic Center Supermassive Black Hole, EHTC et al. 2022

  • Resolving the Inner Parsec of the Blazar J1924-2914 with the Event Horizon Telescope, Issaoun et al. 2022

  • The Event Horizon Telescope Image of the Quasar NRAO 530, Jorstad et al. 2023

  • First M87 Event Horizon Telescope Results. IX. Detection of Near-horizon Circular Polarization, EHTC et al. 2023

  • Filamentary structures as the origin of blazar jet radio variability, Fuentes et al. 2023

  • The persistent shadow of the supermassive black hole of M 87. I. Observations, calibration, imaging, and analysis, EHTC 2023

  • Fundamental Physics Opportunities with the Next-Generation Event Horizon Telescope, Ayzenberg et al. 2023

  • Parsec-scale evolution of the gigahertz-peaked spectrum quasar PKS 0858-279, Kosogorov et al. 2024

  • Atmospheric Limitations for High-frequency Ground-based Very Long Baseline Interferometry, Pesce et a. 2024

  • Evidence of a toroidal magnetic field in the core of 3C 84, Paraschos et al. 2024

  • First Sagittarius A* Event Horizon Telescope Results. VII. Polarization of the Ring, EHTC et al. 2024

  • Towards an astronomical use of new-generation geodetic observations. I. From the correlator to full-polarization images, Perez-Diez et al. 2024,

  • Discovery of Limb Brightening in the Parsec-scale Jet of NGC 315 through Global Very Long Baseline Interferometry Observations and Its Implications for Jet Models, Park et al. 2024

  • Kilogauss magnetic field and jet dynamics in the quasar NRAO 530, Lisakov et al. 2024

  • Evolution, speed, and precession of the parsec-scale jet in the 3C 84 radio galaxy, Foschi et al. 2024

  • Origin of the ring ellipticity in the black hole images of M87*, Dahale et al. 2025

  • Revealing a ribbon-like jet in OJ 287 with RadioAstron, Traianou et al. 2025

  • Revisiting 3C 279 jet morphology with space VLBI at 26 microarcsecond resolution, Toscano et al. 2025

  • Horizon-scale variability of M87* from 2017-2021 EHT obesrvations, EHTC et al. 2025

  • Probing the disk-jet coupling in M 87, Saiz-Perez et al. 2025

  • Probing jet base emission of M87* with the 2021 Event Horizon Telescope observations, Saurabh et al.

  • Radio properties of the quasi-periodic eruption source RXJ1301.9+2747 at parsec scales, von Fellenberg et al.

  • Spatially resolved polarization swings in the supermassive binary black hole candidate OJ 287 with first Event Horizon Telescope observations, Gomez et al. 2026

  • Locating the missing large-scale emission in the jet of M87* with short EHT baselines, Georgiev et al. 2026

  • Evidence of a non-equipartition energy regime in 1803+784, Perez-Diez et al. 2026

  • Where within the 3c 84 jet are gamma-rays produced? Paraschos et al. 2026

  • Ring Asymmetry and Spin in M87*, Bernshteyn et al. 2026

License

ehtim is licensed under GPLv3. See LICENSE.txt for more details.

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

ehtim-1.3.1.tar.gz (391.0 kB view details)

Uploaded Source

Built Distribution

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

ehtim-1.3.1-py3-none-any.whl (411.0 kB view details)

Uploaded Python 3

File details

Details for the file ehtim-1.3.1.tar.gz.

File metadata

  • Download URL: ehtim-1.3.1.tar.gz
  • Upload date:
  • Size: 391.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ehtim-1.3.1.tar.gz
Algorithm Hash digest
SHA256 24a1f115604301f2d60113d9c01193e0e3623f3210f0ec211900e9dc668f069b
MD5 14f98b7667acfde21e75fa0677c0c66c
BLAKE2b-256 0cdfa78da1f2929e0140f17a5a396049f59528657266f339fbc2711ebcf1bb91

See more details on using hashes here.

File details

Details for the file ehtim-1.3.1-py3-none-any.whl.

File metadata

  • Download URL: ehtim-1.3.1-py3-none-any.whl
  • Upload date:
  • Size: 411.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for ehtim-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 741fbfb80674c6c64107cba12740fe30c4edd4598b1610019abe83953d0d58b8
MD5 2a2bc295a49e4fc41b17fe06ef74c35f
BLAKE2b-256 5e93c6114b4f2b9fae6314ac8e6ca17783a01d013733ac0706f665628db0ea94

See more details on using hashes here.

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