Skip to main content

Imaging, analysis, and simulation software for radio interferometry

Project description

https://zenodo.org/badge/42943499.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@princeton.edu 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.2.7) is available on PyPi. Simply install pip and run

pip install ehtim

Incremental updates are 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).

If you want to use fast fourier transforms, you will also need to separately install NFFT and its pynfft wrapper. The simplest way is to use conda to install both:

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 (OS >= v12.0), install the M1 Mac version of pynfft and follow the instructions on the readme. It has the instructions to install fftw, nfft and then pynfft.

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 intro to imaging tutorial jupyter notebook 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

Here are some other ways to learn to use the code:

  • Start with the script examples/example.py, which contains a series of sample commands to load an image and array, generate data, and produce an image with various imaging algorithms.

  • Older Slides from the EHT2016 data generation and imaging workshop contain a tutorial on generating data with the VLBI imaging website, loading into the library, and producing an image.

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 ehtim 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

  • VLBI Imaging of black holes via second moment regularization, Issaoun et al. 2019b

  • Using evolutionary algorithms to model relativistic jets: Application to NGC 1052, Fromm et al. 2019

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

  • Multi-wavelength torus-jet model for Sagittarius A*, Vincent et al. 2019

  • How to tell an accreting boson star from a black hole, Olivares et al. 2020

  • 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

  • Polarization Images of Accretion Flows around Supermassive BLack Holes: Imprints of Toroidal Field Structure, Tsunetoe 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

oifits Documentation

The oifits_new.py file used for reading/writing .oifits files is a slightly modified version of Paul Boley’s package oifits. The oifits read/write functionality in ehtim is still being developed and may not work with all versions of python or astropy.

The documentation is styled after dfm’s projects

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.2.7.tar.gz (27.9 MB view details)

Uploaded Source

Built Distribution

ehtim-1.2.7-py3-none-any.whl (445.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ehtim-1.2.7.tar.gz
  • Upload date:
  • Size: 27.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.3

File hashes

Hashes for ehtim-1.2.7.tar.gz
Algorithm Hash digest
SHA256 18d13d35f85edbc9b1ce27e03af85cf86939ca408d1b7c77d1235a3d77c09adf
MD5 ac330498aed71b48e1ff2b3bd31fb801
BLAKE2b-256 ff14dd5cb495883294ff905246922d4e953ec41be2ae7c32235215be3ce5cf2b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ehtim-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 445.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.3

File hashes

Hashes for ehtim-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 babf4b505ba9c2dfee985c1beca2a2b78c3727824d01264ad942b67f68efa24c
MD5 5baedffc03cc7f0d51dfca2cad6c2cb3
BLAKE2b-256 3ef59331e3024fd18ffe62758d21d09433057c94afdb700b2c9bb0c45b0025ea

See more details on using hashes here.

Supported by

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