An Introduction to FWI with PySIT

In these exercises, you will get your fingers a little dirty, playing with PySIT scripts to perform 2D inversion.

Resources and Code Setup

For these exercises, you will be using PySIT. A sequence of demos in PySIT are provided, each with a number of areas that can be 'tweaked' (e.g., wavelet frequency, number of shots, number of optimization steps, etc.). You should play around when these parameters and get a better feel for the FWI process.

Inside the demo scripts, areas that you should try modifying are marked with ################## !!!!!! ###################.

Windows Users

For Windows users it is critical that you start ipython with the pylab option: ipython --pylab

Then, from the IPython console, you can run your script with the command:

%run demo.py

Demos

Demo 1: Horizontal Reflectors in 2D (Time Domain) HorizontalReflector2DTemporal.py

This example was demonstrated in the introduction talk and is described in more detail here.

Tweakable parameters:

  1. Number, location, and intensity of reflectors
  2. Background velocity model \(c\)
  3. Initial velocity model \(c_0\). Try making this slower or faster than the true background
  4. Number, depth, and position of the source
  5. Time range
  6. Solver accuracy
  7. Optimization algorithm (LBFGS vs Gradient Descent)
  8. Number of optimization iterations

Demo 2: Horizontal Reflectors in 2D (Frequency Domain) HorizontalReflector2DFrequency.py

Tweakable parameters:

  1. Same as time domain
  2. Frequencies, number of steps per frequency

Demo 3: Minature Marmousi Patch (Time Domain) Marmousi2D.py

Tweakable parameters:

  1. Same as time domain 2D reflector
  2. Emphasis on the number of shots (execution cost increases linearly with number of shots! This could take a while!)

Demo 4: Horizontal Reflectors in 1D (Time Domain) HorizontalReflector1DTemporal.py

This is essentially what you developed in computer problems 1-3. Consider moving the location of the receiever.

Tweakable parameters:

  1. Number, location, and intensity of reflectors
  2. Background velocity model \(c\)
  3. Initial velocity model \(c_0\). Try making this slower or faster than the true background
  4. Number, depth, and position of the source
  5. Position of the receiver
  6. Time range
  7. Solver accuracy
  8. Optimization algorithm (LBFGS vs Gradient Descent)
  9. Number of optimization iterations