GithubHelp home page GithubHelp logo

jackzhousz / bhnerf Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aviadlevis/bhnerf

0.0 0.0 0.0 27.22 MB

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

License: MIT License

Python 5.31% Jupyter Notebook 94.69%

bhnerf's Introduction

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

Clone bhnerf repository with the kgeo submodule

git clone --recurse-submodules https://github.com/aviadlevis/bhnerf.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/achael/eht-imaging.git
cd eht-imaging
pip install .
cd ../

Install bhnerf

pip install .

Note currently kgeo 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.

© Aviad Levis, California Institute of Technology, 2022.

bhnerf's People

Contributors

aviadlevis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.