Python modules for simulating and manipulating VLBI data and producing images with regularized maximum likelihood methods. This version is an early release so please submit a pull request or email [email protected] 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
, Array
, Obsdata
. Movie
and Vex
provide tools for producing time-variable simulated data and observing with real VLBI tracks from .vex files. imager
is a generic Stokes I imaging module that can produce images from data sets using various data terms and regularizers.
Note that this is a pre-release of ehtim. If you have a problem please submit a pull request on the git repository.
Download the latest version from the GitHub repository, change to the main directory and run:
pip install .
It should install the depended libraries astropy, ephem, future, matplotlib, numpy, scipy, pandas automatically.
If you want to use fast fourier transforms, you will also need to install NFFT and the pynnft wrapper before installing ehtim. The simplest way is to use conda to to install both NFFT and the pynfft wrapper. .. code-block:: bash
conda install -c conda-forge pynfft
Alternatively, first install NFFT following the instructions on the github readme, making sure to use the --enable-openmp flag in compilation. Then install pynnft, with pip, following the readme instructions to link the installation to where you installed NFFT.
Documentation is here .
Here are some ways to learn to use the code:
- The file examples/example.py has a series of sample commands to load an image and array, generate data, and produce an image.
- 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. Note that this presentation used a previous version of the code -- some function names and prefixes may need to be updated.
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
- Quantifying Intrinsic Variability of Sgr A* using Closure Phase Measurements of the Event Horizon Telescope, Roelofs et al. 2017
- 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 oifits_new code used for reading/writing .oifits files is a slightly modified version of Paul Boley's package at http://astro.ins.urfu.ru/pages/~pboley/oifits. The oifits read/write functionality is still being tested and may not work with all versions of python or astropy.
The jdcal.py module is from Prasanth Nair at http://github.com/phn/jdcal.
The documentation is styled after dfm's projects and the documentation for scatterbrane
ehtim is licensed under GPLv3. See LICENSE.txt for more details.