Catalog PyPI
Back to packageRELEASE DETAILS

0.1.2

PyPI

ADFWI-Torch

ADFWI: A framework for high-resolution subsurface parameter estimation using Full Waveform Inversion

Published28 Feb 2025
Direct dependencies14
Transitive dependenciesNot calculated

README

Version 0.1.2 documentation

Automatic Differentiation-Based Full Waveform Inversion


👩‍💻 Introduction

ADFWI is an open-source framework for high-resolution subsurface parameter estimation by minimizing discrepancies between observed and simulated seismic data. Utilizing automatic differentiation (AD), ADFWI simplifies the derivation and implementation of Full Waveform Inversion (FWI), enhancing the design and evaluation of methodologies. It supports wave propagation in various media, including isotropic acoustic, isotropic elastic, and both vertical transverse isotropy (VTI) and tilted transverse isotropy (TTI) models.

In addition, ADFWI provides a comprehensive collection of Objective functions, regularization techniques, optimization algorithms, and deep neural networks. This rich set of tools facilitates researchers in conducting experiments and comparisons, enabling them to explore innovative approaches and refine their methodologies effectively.


⚡️ Installation

To install the Automatic Differentiation-Based Full Waveform Inversion (ADFWI) framework, please follow these steps:

  1. Ensure Prerequisites
    Before you begin, make sure you have the following software installed on your system:

    • Python 3.8 or higher: Download Python from the official website: Python Downloads.
    • pip (Python package installer).
  2. Create a Virtual Environment (Optional but Recommended) It is recommended to create a virtual environment to manage your project dependencies. You can use either venv or conda. For example, using conda:

    conda create --name adfwi-env python=3.8
    conda activate adfwi-env
    
  3. Install Required Packages

  • Method 1: Clone the github Repository This method provides the latest version, which may be more suitable for your research:
    git clone https://github.com/liufeng2317/ADFWI.git
    cd ADFWI
    
    Then, install the necessary packages:
    pip install -r requirements.txt
    
  • Method 2: Install via pip Alternatively, you can directly install ADFWI from PyPI:
      pip install ADFWI-Torch
    
  1. Verify the Installation To ensure that ADFWI is installed correctly, run any examples located in the examples folder.

  2. Troubleshooting If you encounter any issues during installation, please check the Issues section of the GitHub repository for potential solutions or to report a new issue.


👾 Examples

For examples and usage instructions, please check the GitHub repository: ADFWI GitHub Repository. There, you will find various examples that demonstrate how to utilize the ADFWI framework effectively.


📝 Features

  • Multi-Wave Equation:
    • Iso-Acoustic
    • Iso-Elastic
    • VTI-Elastic
    • TTI-Elastic
  • Various Objective Functions
    • L1-norm
    • L2-norm
    • Smooth-L1 norm
    • Envelope
    • Global Correlation
    • T-Distribution (StudentT)
    • Soft Dynamic Time Wrapping (SoftDTW)
    • Wasserstein Distance-based with Sinkhorn (Wassrestein)
  • Various Optimization Methods
    • SGD
    • ASGD
    • RMSProp
    • Adagrad
    • Adam
    • AdamW
    • NAdam
    • RAdam
  • Deep Neural Network Integration
    • DNNs reparameterize the Earth Model for learnable regularization
    • Droupout for access the inversion uncertainty
  • Resource Management
    • Mini-batch
    • Checkpointing
  • Robustness and Portability
    • Each of the method has proposed a code for testing.

⚖️ LICENSE

The Automatic Differentiation-Based Full Waveform Inversion (ADFWI) framework is licensed under the MIT License. This license allows you to:

  • Use: You can use the software for personal, academic, or commercial purposes.
  • Modify: You can modify the software to suit your needs.
  • Distribute: You can distribute the original or modified software to others.
  • Private Use: You can use the software privately without any restrictions.

🔰 Contact

Liu Feng
Shanghai Artificial Intelligence Laboratory & Shanghai Jiao Tong University
Email: liufeng2317@mail.sjtu.edu.cn or liufeng1@pjlab.org.cn

@software{LiuFeng2317,
  author       = {Feng Liu, GuangYuan Zou, \& Haipeng Li},
  title        = {ADFWI},
  month        = July,
  year         = 2024,
  version      = {v1.1},
}

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 14

Native requirements
14 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
numpy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
numpy>=1.24.0runtime
scipy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
scipy>=1.10.0runtime
matplotlib
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
matplotlib>=3.7.0runtime
torch
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
torch>=2.0.0runtime
disba
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
disba>=0.6.0runtime
torchinfo
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
torchinforuntime
segyio
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
segyioruntime
ncg-optimizer
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
ncg-optimizerruntime
pysdtw
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
pysdtwruntime
geomloss
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
geomlossruntime
h5py
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
h5pyruntime
obspy
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
obspyruntime
tqdm
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
tqdmruntime
FyeldGenerator
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": "",
  "evaluation": "NOT_EVALUATED"
}
FyeldGeneratorruntime

Distribution files

2 collected
ADFWI_Torch-0.1.2-py3-none-any.whl

bdist_wheel · 181.2 KB · Python py3

Source file
adfwi_torch-0.1.2.tar.gz

sdist · 116.59 KB · Python source

Source file

Repository

ACCESSIBLE
liufeng2317/adfwi

Shared repository data · GitHub

License detected in repository
MIT
License branch / ref
bv1.1
Last push
6 Jun 2026
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

31count
Gauge · observed snapshots21 Oct 2026
3115.50
2026-10-21: 31 · observed 2026-10-21T21:10:54.4542983Z
21 Oct21 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-21312026-10-21T21:10:54.4542983Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:28 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:ca4656487e095f6442c8e6aabb63db0b03f6cedee37d91bf6bcbf0a2c05ce00c

Other collected versions

View all collected versions →