Skip to content

Emission tomography with gravitational lensing using Neural Radiance Fields (NeRF)

License

Notifications You must be signed in to change notification settings

aviadlevis/bhnerf

Repository files navigation

bhnerf

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

Geodesics (photon trajectories) are computed using kgeo. This raytracing implementation of null geodesics in the Kerr metric uses the formalism of Gralla and Lupsasca 2019.

Installation

Start a conda virtual environment and add channels

conda config --add channels conda-forge
conda create -n jax python=3.9 numpy==1.23.1
conda activate jax

Install requirements

pip install numpy scipy matplotlib jupyterlab nodejs tqdm ipympl ipyvolume mpmath scikit-image ruamel.yaml
pip install --upgrade "jax[cuda12_pip]" -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
pip install flax optax diffrax scikit-learn tensorboardX tensorboard

Install xarray and its dependencies

conda install -c conda-forge xarray dask netCDF4 bottleneck

Clone and install bhnerf with the kgeo submodule

git clone --recurse-submodules https://github.com/aviadlevis/bhnerf.git
cd bhnerf/kgeo
pip install .
cd ../ 
pip install .

Install eht-imaging

conda install -c conda-forge pynfft requests scikit-image
git clone https://github.com/achael/eht-imaging.git
cd eht-imaging
pip install .
cd ../

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.

© Aviad Levis, California Institute of Technology, 2022.

About

Emission tomography with gravitational lensing using Neural Radiance Fields (NeRF)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published