This repository contains the source code and reproducible materials for the paper "Bayesian Seismic Inversion with Implicit Neural Representations" by J. Romero, W. Heidrich, and M. Ravasi.
- 📂 bintraseismic: A Python library with the core implementation of the B-IntraSeismic models (BIS and BIS-Flow), data loaders, and utility functions.
- 📂 data: Contains preprocessed NPZ files of the Marmousi synthetic and Volve field data used in the experiments and the instructions to download the raw data.
- 📂 notebooks: Jupyter notebooks demonstrating the application of B-IntraSeismic to the Marmousi, Volve, and Sleipner datasets.
- 📂 scripts: Slurm scripts for running the inversion experiments on a high-performance computing (HPC) cluster.
To reproduce the results, use the environment.yml
file for environment setup.
Execute the following command:
./install_env.sh
The installation takes some time. If you see Done!
in your terminal, the setup is complete.
Finally, run:
pip install -e .
in the folder where the setup.py file is located.
Always activate the environment with:
conda activate bis
The notebooks cover:
- 📙
marmousi/
: Analytical (Numerical), RTO, BIS, and BIS-Flow inversions for the Marmousi dataset. - 📙
sleipner/
: BIS and BIS-Flow inversions for the 3D Sleipner dataset. - 📙
volve/
: BIS and BIS-Flow inversions for the 2D Volve dataset.
For large-scale experiments, you can use the Slurm scripts provided in the scripts/
directory. These are configured to run the main inversion modules on an HPC cluster.
You can also run the inversion scripts directly from the command line. From the project root directory, you can run an experiment like this:
python bintraseismic/inversion/bisflow.py --config bintraseismic/config/config_bisflow_marmousi.yaml
The results, including plots and .npz
files, will be automatically saved to a timestamped directory inside the results/
folder.
Each inversion method (bis
, bisflow
, numerical
, rto
) has its own script in bintraseismic/inversion/
and corresponding configuration files in bintraseismic/config/
. You can customize the .yaml
configuration files to change experiment parameters.
Experiments were conducted on an AMD EPYC 7713 64-Core processor equipped with a single NVIDIA A100 GPU. Different hardware may require alternate environment configurations.