Gravitationally Lensed Black Hole Emission Tomography using Neural Radiance Fields (NeRF).
Geodesics (photon trajectories) are computed using krego.
Clone bhnerf repository with the krego submodule
git clone --recurse-submodules https://github.com/suhassangangire/Krego.git
cd bhnerf
Start a conda virtual environment and add channels
conda create -n bhnerf
conda activate bhnerf
If not added already add conda-forge
and anaconda
channels
conda config --add channels conda-forge
conda config --add channels anaconda
Install requirements
conda install --file requirements.txt
Install xarray
and its dependencies
conda install -c conda-forge xarray dask netCDF4 bottleneck
Install jax
pip install --upgrade pip
pip install --upgrade jax jaxlib>=0.1.69+cuda101 -f https://storage.googleapis.com/jax-releases/jax_releases.html
Note that in the line above the number next to cude should be replaced with version of the existing CUDA installation (see GitHub issue), for example CUDA10.1 --> cuda101. You can find your CUDA version using nvcc --version
Install eht-imaging
conda install -c conda-forge pynfft requests scikit-image
git clone https://github.com/suhassangangire/Krego.git
cd eht-imaging
pip install .
cd ../
Install bhnerf
pip install .
Note currently krego
requires an experimental scipy
version which has elliptic integrals implemented
pip install scipy==1.8.0rc4
The easiest way to get started is through the jupyter notebooks in the tutorials
directory.
These notebooks cover both the synthetic data generation (forward) and emission estimation (inverse) methods and procedures. Furthermore,
basic utility and visualization methods are introduced.
© Suhas Sangangire , 2022.