STFINV library: seek source wavelet correction filter
Information for users of libstfinv (programmers)
Contents of this page

The library libstfinv for users

Introduction

The purpose of this library is to provide methods for the derivation of source wavelet correction filters in approaches to full waveform inversion. Given a set of recorded data and a set of synthetic data (typically, but not necessarilly the impulse response of the subsurface) a source wavelet correction filter is obtained due to some optimization citerion. The synthetic waveforms are convolved with this filter wavelet and the convolved synthetics as well as the wavelet itself are returned to the user.

The source wavelet correction filter in this context not necessarily is the actual force time history of the source used in the experiment or a similar quantity of physical meaning. The source wavelet correction filter simply is the wavelet which minimizes the misfit between synthetic and recorded waveforms due to some misfit condition, if the synthetics are concolved with this wavelet. In particular this implies that the synthetics not necessarily need be the impulse response (Greens function) of the subsurface, they may simply be synthetic waveforms computed for some generic source wavelet (like a Ricker wavelet). The derived source wavelet correction filter then has to be understood with respect to this generic wavelet.

The library provides different engines to find an optimal source wavelet correction filter. The basic steps of operation are:

  1. Initialize an engine. In this step pointers to arrays are passed to the engine together with some header information. The engines memorizes these pointers and expects to find the recorded data as well as the synthetics at the inidcated locations in memory.
  2. Call the run()-function of the engine. The engine takes the recorded and synthetic data currently found at the memory arrays, calculates an optimzed correction filter wavelet and returns the wavelet together with the convolved synthetics by copying them to the memory locations inidicated by the initializer of the engine. This step is repeated after each computation of synthetic data.
  3. Remove the engine once you terminate the iteration of inversion.

Libraries required by libstfinv

Programs using this library will require the following libraries in addition:

  • libfourierxx (available from Seitosh)
  • libfftw3
  • libaff (available from Seitosh)

C programs will further be required to link against

  • libstdc++

The C application programming interface (API)

The library provides a C interface (API) to libstfinv. Examples for using the C interface (API) to libstfinv are given in the section Detailed Description of the documentation for the C interface (API) to libstfinv.

The C++ application programming interface (API)

The library provides a C++ interface (API) to libstfinv. Examples for using the C++ interface (API) to libstfinv are given in the section Detailed Description of the documentation for the C++ interface (API) to libstfinv.