|
5 | 5 |
|
6 | 6 | ehtim (eht-imaging) |
7 | 7 | =================== |
| 8 | +.. image:: https://zenodo.org/badge/42943499.svg |
| 9 | + :target: https://zenodo.org/badge/latestdoi/42943499 |
8 | 10 |
|
9 | 11 |
|
10 | | -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 achael@cfa.harvard.edu if you have trouble or need help for your application. |
| 12 | +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. |
11 | 13 |
|
12 | 14 | The package contains several primary classes for loading, simulating, and manipulating VLBI data. The main classes are the :class:`Image`, :class:`Array`, and :class:`Obsdata`, which provide tools for manipulating images, simulating interferometric data from images, and plotting and analyzing these data. :class:`Movie` and :class:`Vex` provide tools for producing time-variable simulated data and observing with real VLBI tracks from .vex files. :class:`imager` is a generic imager class that can produce images from data sets in various polarizations using various data terms and regularizers. |
13 | 15 |
|
14 | 16 | .. note:: |
15 | 17 |
|
16 | | - This is a pre-release of ehtim. If you have a problem please submit a pull request on the git repository and/or email achael@cfa.harvard.edu |
| 18 | + This is a pre-release of ehtim. If you have a problem please submit a pull request on the git repository and/or email achael@princeton.edu.edu |
17 | 19 |
|
18 | | -Installation |
19 | | ------------- |
| 20 | +The latest stable version (`1.2.6 <https://github.com/achael/eht-imaging/releases/tag/v1.2.6>`_) is available on `PyPi <https://pypi.org/project/ehtim/>`_. Simply install pip and run |
20 | 21 |
|
21 | | -Download the latest version from the `GitHub repository <https://github.com/achael/eht-imaging>`_, change to the main directory and run: |
| 22 | +.. code-block:: bash |
| 23 | +
|
| 24 | + pip install ehtim |
| 25 | +
|
| 26 | +Incremental updates are developed on the `dev branch <https://github.com/achael/eht-imaging/tree/dev>`_. To use the very latest (unstable) code, checkout the dev branch, change to the main eht-imaging directory, and run: |
22 | 27 |
|
23 | 28 | .. code-block:: bash |
24 | 29 |
|
25 | 30 | pip install . |
26 | 31 |
|
| 32 | +Installing with pip will update most of the required libraries automatically (`numpy <http://www.numpy.org/>`_, `scipy <http://www.scipy.org/>`_, `matplotlib <http://www.matplotlib.org/>`_, `astropy <http://www.astropy.org/>`_, `ephem <http://pypi.python.org/pypi/pyephem/>`_, `future <http://pypi.python.org/pypi/future>`_, `h5py <http://www.h5py.org/>`_, and `pandas <http://www.pandas.pydata.org/>`_). |
27 | 33 |
|
28 | | -It should install most of the required libraries automatically (`astropy <http://www.astropy.org/>`_, `ephem <http://pypi.python.org/pypi/pyephem/>`_, `future <http://pypi.python.org/pypi/future>`_, `h5py <http://www.h5py.org/>`_ , `html <http://www.decalage.info/python/html>`_ , `networkx <https://networkx.github.io/>`_, `numpy <http://www.numpy.org/>`_, `pandas <http://www.pandas.pydata.org/>`_ , `matplotlib <http://www.matplotlib.org/>`_, `requests <http://docs.python-requests.org/en/master/>`_, `scipy <http://www.scipy.org/>`_, `skimage <https://scikit-image.org/>`_). |
| 34 | +**If you want to use fast fourier transforms, you will also need to separately install** `NFFT <https://github.com/NFFT/nfft>`_ **and its** `pynfft wrapper <https://github.com/ghisvail/pyNFFT/>`__. The simplest way is to use `conda <https://anaconda.org/conda-forge/pynfft/>`__ to install both: |
29 | 35 |
|
30 | | -**If you want to use fast fourier transforms, you will also need to separately install** `NFFT <https://github.com/NFFT/nfft>`_ **and its** `pynnft wrapper <https://github.com/ghisvail/pyNFFT/>`_. The simplest way is to use `conda <https://anaconda.org/conda-forge/pynfft/>`__ to to install both: |
31 | 36 |
|
32 | 37 | .. code-block:: bash |
33 | 38 |
|
34 | 39 | conda install -c conda-forge pynfft |
35 | 40 |
|
36 | | -Alternatively, first install NFFT manually following the instructions on the `readme <https://github.com/NFFT/nfft>`_, making sure to use the :code:`--enable-openmp` flag in compilation. Then install `pynft <https://github.com/ghisvail/pyNFFT/>`_, with pip, following the readme instructions to link the installation to where you installed NFFT. Finally, reinstall ehtim. |
| 41 | +Alternatively, first install NFFT manually following the instructions on the `readme <https://github.com/NFFT/nfft>`__, making sure to use the ``--enable-openmp`` flag in compilation. Then install `pynfft <https://github.com/ghisvail/pyNFFT/>`__, with pip, following the readme instructions to link the installation to where you installed NFFT. Finally, reinstall ehtim. |
37 | 42 |
|
| 43 | +**For M1 Macs (OS >= v12.0)**, install the M1 Mac version of `pynfft <https://github.com/rohandahale/pyNFFT.git>`__ and follow the instructions on the `readme <https://github.com/rohandahale/pyNFFT.git>`__. It has the instructions to install `fftw <http://www.fftw.org>`_, `nfft <https://github.com/NFFT/nfft>`__ and then `pynfft <https://github.com/rohandahale/pyNFFT.git>`__. |
38 | 44 |
|
39 | | -Tutorials |
40 | | -------------- |
| 45 | +**Certain eht-imaging functions require other external packages that are not automatically installed.** In addition to pynfft, these include `networkx <https://networkx.github.io/>`_ (for image comparison functions), `requests <http://docs.python-requests.org/en/master/>`_ (for dynamical imaging), and `scikit-image <https://scikit-image.org/>`_ (for a few image analysis functions). However, the vast majority of the code will work without these dependencies. |
| 46 | + |
| 47 | +Documentation and Tutorials |
| 48 | +--------------------------- |
| 49 | +Documentation is `here <https://achael.github.io/eht-imaging>`_. |
| 50 | + |
| 51 | +A intro to imaging tutorial jupyter notebook can be found in the repo at `tutorials/ehtim_tutorial.ipynb <https://github.com/achael/eht-imaging/blob/main/tutorials/ehtim_tutorial.ipynb>`__ |
| 52 | + |
| 53 | +`Slides <https://docs.google.com/presentation/d/1A0y9omYI2ueSUa6_t5reylBhw6eiLwjqDzw-HUOk8Ac/edit?usp=sharing>`__ for the included tutorial walk through the basic steps of reconstructing EHT images with the code |
| 54 | + |
| 55 | +Here are some other ways to learn to use the code: |
41 | 56 |
|
42 | | -Tutorials are in progress, but here are some ways to learn the code |
| 57 | +- 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. |
43 | 58 |
|
44 | | -- The script in `examples/example.py <https://github.com/achael/eht-imaging/blob/master/examples/example.py>`_ has a series of sample commands to load an image and array, generate data, and produce an image with regularized maximum likelihood on closure quantities. |
45 | | -- `Slides <https://www.dropbox.com/s/7533ucj8bt54yh7/Bouman_Chael.pdf?dl=0>`_ from the EHT 2016 conference data generation and imaging workshop contain a tutorial on generating data externally with the vlbi imaging `website <http://vlbiimaging.csail.mit.edu>`_, loading into the library, and producing an image. |
| 59 | +- Older `Slides <https://www.dropbox.com/s/7533ucj8bt54yh7/Bouman_Chael.pdf?dl=0>`__ from the EHT2016 data generation and imaging workshop contain a tutorial on generating data with the VLBI imaging `website <http://vlbiimaging.csail.mit.edu>`_, loading into the library, and producing an image. |
46 | 60 |
|
47 | 61 | Documentation |
48 | 62 | ------------- |
|
0 commit comments