A Pytorch dataset for Acoustic Wave Propagation
Project description
PyAWD: a Python acoustic wave propagation dataset using PyTorch and Devito
A package for generating a Pytorch dataset containing simulations of the acoustic wave propagation in the Marmousi velocity field. It uses the Devito Python Library to solve the acoustic wave PDE from various random initial conditions.
Marmousi velocity field
The Marmousi velocity field used in the simulation is a subset of the following:
Installation
The package (along with the dependencies) is accessible via PyPI:
pip install pyawd
Getting started
Basic imports:
import PyAWD
from PyAWD.ScalarAcousticWaveDataset import ScalarAcousticWaveDataset
Let us generate a Dataset made of 10 simulations. Each simulation is run in a $250\times 250$ matrix. We store the field state every $2$ seconds and we run the simulation for $10$ seconds:
dataset = ScalarAcousticWaveDataset(2, nx=250, dt=2, t=10)
Then we plot the first simulation:
dataset.plot_item(0)
Which outputs the following figure:
Finally, we can generate a video of this simulation. We will use $200$ frames, which yields a final rate of $20 fps$:
dataset.generate_video(0, "example", 200)
This produces the following video (stored in the file example.mp4
):
By default, the point (0, 0)
contains an interrogator. This means that the continuous measurement on this position (at least with a $\Delta t=dt$) can be obtained by:
dataset.interrogate((0, 0))
Documentation
Basic help is provided for each class and function, and is accessible via the Python help()
function.
Examples
Mutliple IPython notebooks are presented in the examples directory. If Jupyter is installed, those examples can be explored by starting Jupyter:
jupyter-notebook
ScalarAcousticWaveGeneration.ipynb
: an introduction to PDE solving and simulation using Devito applied on the scalar acoustic wave propagationVectorialAcousticWaveGeneration.ipynb
: an introduction to PDE solving and simulation using Devito applied on the vectorial acoustic wave propagationMarmousi.ipynb
: a visualisation of the Marmousi velocity field used in the simulationsGenerateAcousticWaveDataset.ipynb
: an example of dataset generation workflowInterrogators.ipynb
: an introduction to the PyAWD Interrogators usage
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.