diffefwi
Official repository for the "Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models" paper.
Science Score: 39.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.8%) to scientific vocabulary
Keywords
Repository
Official repository for the "Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models" paper.
Basic Info
- Host: GitHub
- Owner: DeepWave-KAUST
- License: mit
- Language: Jupyter Notebook
- Default Branch: main
- Homepage: http://dx.doi.org/10.1029/2024JH000125
- Size: 128 MB
Statistics
- Stars: 31
- Watchers: 2
- Forks: 4
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md

Reproducible material for Learned regularizations for elastic full waveform inversion using diffusion models - Mohammad H. Taufik, Fu Wang, Tariq Alkhalifah.
Project structure
This repository is organized as follows:
- :openfilefolder: asset: folder containing logo.
- :openfilefolder: data: a folder containing the subsampled velocity models used to train the diffusion model.
- :openfilefolder: notebooks: reproducible notebook for the third synthetic test of the paper (near-surface SEAM Arid model).
- :openfilefolder: saves: a folder containing the trained diffusion model (using the combined dataset) and results from the EFWI.
- :openfilefolder: scripts: a set of Python scripts used to run diffusion training, diffusion sampling, and EFWI.
- :openfilefolder: src: a folder containing routines for the
diffefwisource file.
Notebooks
The following notebooks are provided:
- :orange_book:
Example-2-efwi.ipynb: notebook reproducing the results of the near-surface synthetic test in the paper. - :orange_book:
colab.ipynb: notebook to run the experiments from Google Colab.
Scripts
The following scripts are provided:
- :
Example-0-unconditional-sampling.py: drawing unconditional samples from a trained diffusion model. - :
Example-1-diffusion-training.py: diffusion model training using thecombineddataset of the paper. - :
Example-2-efwi.py: simple multi-parameter checkerboard test with an acquisition setting mimicking the land field data application of the paper.
Getting started :space_invader: :robot:
To ensure the reproducibility of the results, we suggest using the environment.yml file when creating an environment.
To install the environment, run the following command:
./install_env.sh
It will take some time, but if, in the end, you see the word Done! on your terminal, you are ready to go.
Remember to always activate the environment by typing:
conda activate diffefwi
Disclaimer: All experiments have been carried on a Intel(R) Xeon(R) Silver 4316 CPU @ 2.30GHz equipped with a single NVIDIA A100 GPU. Different environment configurations may be required for different combinations of workstation and GPU.
Running from virtual machines
Our diffefwi source codes can be installed as a standalone python package. It can directly be installed and utilized on existing open-source GPU providers, like Google Colab. Please refer to our colab.ipynb notebook for the details.
Cite us
```bibtex @article{taufik2024learned, title={Learned regularizations for multi-parameter elastic full waveform inversion using diffusion models}, doi={10.1029/2024JH000125}, author={Taufik, Mohammad Hasyim and Wang, Fu and Alkhalifah, Tariq}, journal={Journal of Geophysical Research: Machine Learning and Computation}, year={2024}, publisher={Wiley Online Library} }
Owner
- Name: DeepWave - KAUST
- Login: DeepWave-KAUST
- Kind: organization
- Location: Saudi Arabia
- Website: deepwave.kaust.edu.sa
- Repositories: 1
- Profile: https://github.com/DeepWave-KAUST
GitHub Events
Total
- Watch event: 17
- Push event: 1
- Fork event: 2
Last Year
- Watch event: 17
- Push event: 1
- Fork event: 2
Dependencies
- numpy *
- pandas *
- scipy *
- setuptools_scm *
- absl-py ==2.0.0
- anyio ==4.1.0
- appdirs ==1.4.4
- argon2-cffi ==23.1.0
- argon2-cffi-bindings ==21.2.0
- arrow ==1.3.0
- asttokens ==2.4.1
- async-lru ==2.0.4
- attrs ==23.1.0
- babel ==2.13.1
- beautifulsoup4 ==4.12.2
- bleach ==6.1.0
- cachetools ==5.3.2
- certifi ==2022.12.7
- cffi ==1.16.0
- charset-normalizer ==2.1.1
- click ==8.1.7
- cmake ==3.25.0
- comm ==0.2.0
- contourpy ==1.2.0
- cycler ==0.12.1
- debugpy ==1.8.0
- decorator ==5.1.1
- deepwave ==0.0.20
- defusedxml ==0.7.1
- docker-pycreds ==0.4.0
- einops ==0.7.0
- exceptiongroup ==1.2.0
- executing ==2.0.1
- fastjsonschema ==2.19.0
- filelock ==3.9.0
- fonttools ==4.45.1
- fqdn ==1.5.1
- gitdb ==4.0.11
- gitpython ==3.1.40
- google-auth ==2.23.4
- google-auth-oauthlib ==1.1.0
- grpcio ==1.59.3
- h5py ==3.10.0
- idna ==3.4
- imageio ==2.33.0
- importlib-metadata ==6.8.0
- importlib-resources ==6.1.1
- ipykernel ==6.27.1
- ipython ==8.18.1
- ipywidgets ==8.1.1
- isoduration ==20.11.0
- jedi ==0.19.1
- jinja2 ==3.1.2
- json5 ==0.9.14
- jsonpointer ==2.4
- jsonschema ==4.20.0
- jsonschema-specifications ==2023.11.1
- jupyter ==1.0.0
- jupyter-client ==8.6.0
- jupyter-console ==6.6.3
- jupyter-core ==5.5.0
- jupyter-events ==0.9.0
- jupyter-lsp ==2.2.1
- jupyter-server ==2.11.1
- jupyter-server-terminals ==0.4.4
- jupyterlab ==4.0.9
- jupyterlab-pygments ==0.3.0
- jupyterlab-server ==2.25.2
- jupyterlab-widgets ==3.0.9
- kiwisolver ==1.4.5
- lazy-loader ==0.3
- lit ==15.0.7
- markdown ==3.5.1
- markupsafe ==2.1.3
- matplotlib ==3.8.2
- matplotlib-inline ==0.1.6
- mistune ==3.0.2
- mpmath ==1.3.0
- nbclient ==0.9.0
- nbconvert ==7.11.0
- nbformat ==5.9.2
- nest-asyncio ==1.5.8
- networkx ==3.0
- ninja ==1.11.1.1
- notebook ==7.0.6
- notebook-shim ==0.2.3
- numpy ==1.24.1
- nvidia-cublas-cu11 ==11.10.3.66
- nvidia-cuda-cupti-cu11 ==11.7.101
- nvidia-cuda-nvrtc-cu11 ==11.7.99
- nvidia-cuda-runtime-cu11 ==11.7.99
- nvidia-cudnn-cu11 ==8.5.0.96
- nvidia-cufft-cu11 ==10.9.0.58
- nvidia-curand-cu11 ==10.2.10.91
- nvidia-cusolver-cu11 ==11.4.0.1
- nvidia-cusparse-cu11 ==11.7.4.91
- nvidia-nccl-cu11 ==2.14.3
- nvidia-nvtx-cu11 ==11.7.91
- oauthlib ==3.2.2
- overrides ==7.4.0
- pandas ==2.1.3
- pandocfilters ==1.5.0
- parso ==0.8.3
- pexpect ==4.9.0
- pillow ==9.3.0
- platformdirs ==4.0.0
- prometheus-client ==0.19.0
- prompt-toolkit ==3.0.41
- protobuf ==4.23.4
- psutil ==5.9.6
- ptyprocess ==0.7.0
- pure-eval ==0.2.2
- pyasn1 ==0.5.1
- pyasn1-modules ==0.3.0
- pycparser ==2.21
- pygments ==2.17.2
- pyparsing ==3.1.1
- python-dateutil ==2.8.2
- python-json-logger ==2.0.7
- pytz ==2023.3.post1
- pyyaml ==6.0.1
- pyzmq ==25.1.1
- qtconsole ==5.5.1
- qtpy ==2.4.1
- referencing ==0.31.1
- requests ==2.31.0
- requests-oauthlib ==1.3.1
- rfc3339-validator ==0.1.4
- rfc3986-validator ==0.1.1
- rpds-py ==0.13.2
- rsa ==4.9
- scikit-image ==0.22.0
- scipy ==1.11.4
- send2trash ==1.8.2
- sentry-sdk ==1.38.0
- setproctitle ==1.3.3
- six ==1.16.0
- smmap ==5.0.1
- sniffio ==1.3.0
- soupsieve ==2.5
- stack-data ==0.6.3
- sympy ==1.12
- tensorboard ==2.15.1
- tensorboard-data-server ==0.7.2
- terminado ==0.18.0
- tifffile ==2023.9.26
- tinycss2 ==1.2.1
- tomli ==2.0.1
- tornado ==6.4
- tqdm ==4.66.1
- traitlets ==5.14.0
- triton ==2.0.0
- types-python-dateutil ==2.8.19.14
- typing-extensions ==4.4.0
- tzdata ==2023.3
- uri-template ==1.3.0
- urllib3 ==1.26.13
- wandb ==0.16.0
- wcwidth ==0.2.12
- webcolors ==1.13
- webencodings ==0.5.1
- websocket-client ==1.6.4
- werkzeug ==3.0.1
- widgetsnbextension ==4.0.9
- zipp ==3.17.0