/Krego

Primary LanguageJupyter NotebookMIT LicenseMIT

bhnerf

Gravitationally Lensed Black Hole Emission Tomography using Neural Radiance Fields (NeRF).

Geodesics (photon trajectories) are computed using krego.

Installation

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

Getting Started

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.