|
|
src/libs/libstfinv
|
|
|
==================
|
|
|
|
|
|
STFINV library: seek source wavelet correction filter
|
|
|
-----------------------------------------------------
|
|
|
### Purpose
|
|
|
Create and apply a source wavelet correction filter for full-waveform
|
|
|
inversion of field data.
|
|
|
|
|
|
### Method
|
|
|
Design a filter which minimizes the misfit to the field recordings
|
|
|
when being applied to the raw synthetics. Other criteria are possible.
|
|
|
|
|
|
### Input
|
|
|
Field recordings and raw synthetics for one shot.
|
|
|
Optionally additional time series can be passed to be convolved with the determined source time function.
|
|
|
|
|
|
### Requirements
|
|
|
All time series have identical temporal sampling.
|
|
|
Recorded data and corresponding synthetics must have identical
|
|
|
spatial and temporal sampling. All
|
|
|
recorded traces must have passed the same filters. Raw synthetics have
|
|
|
larger bandwidth than recordings (otherwise just swap synthetics and
|
|
|
recordings).
|
|
|
|
|
|
### Output
|
|
|
Impulse response of the designed filter and synthetics
|
|
|
convolved with filter response.
|
|
|
If additional series were passed, they are convolved with the newly determined filter and are returned to the user.
|
|
|
|
|
|
### Additional resources
|
|
|
See the [OpenTOAST page on libstfinv](http://www.opentoast.de/Data_analysis_code_soutifu_and_libstfinv.php).
|
|
|
|
|
|
Library details
|
|
|
---------------
|
|
|
The directory [src/libs/libstfinv](../../../../tree/master/src/libs/libstfinv) contains the source code for a library which supports the estimation of a source time function in waveform inversion.
|
|
|
|
|
|
### API Implementation
|
|
|
The library is designed to provide a common API (application programming interface) to the library user in C++ as well as in C.
|
|
|
A Fortran API is not yet implemented but could be constructed on top of the C API.
|
|
|
The library provides several approaches to finding an optimized source wavelet correction filter.
|
|
|
Each of the approaches is addressed through the same API, such that programs using the library could immediatly benefit from an new approach after its implementation without need to modify consumer programs.
|
|
|
The approaches are encapsulated in so-called 'engines'.
|
|
|
See the
|
|
|
[documentation](http://gpitrsvn.gpi.uni-karlsruhe.de/~tforb/doc/libstfinv)
|
|
|
coming within the source code for further details.
|
|
|
|
|
|
### Documentation
|
|
|
The doxygen documentation coming with the source code is published at
|
|
|
http://gpitrsvn.gpi.uni-karlsruhe.de/~tforb/doc/libstfinv and updated from time to time.
|
|
|
|
|
|
Stand-alone-binary executable
|
|
|
-----------------------------
|
|
|
A stand-alone binary, which makes use of this library is provided by [soutifu.cc](../../../../blob/master/src/ts/wf/soutifu.cc).
|
|
|
See also the [wiki page for soutifu](../../../src/ts/wf/soutifu)
|
|
|
|
|
|
Examples and test cases
|
|
|
-----------------------
|
|
|
### libstfinv C API
|
|
|
Source code to test the C API is provided in
|
|
|
[src/libs/libstfinv/test_libstfinv](../../../../tree/master/src/libs/libstfinv/test_libstfinv)
|
|
|
and
|
|
|
[src/libs/libstfinv/test_libstfinv_withpairs](../../../../tree/master/src/libs/libstfinv/test_libstfinv_withpairs).
|
|
|
See the files [libstfinv/test_libstfinv/README](../../../../blob/master/src/libs/libstfinv/test_libstfinv/README).
|
|
|
|
|
|
### soutifu (C++ API and stand-alone binary)
|
|
|
Test cases are prepared in [src/ts/wf/testcases/Makefile.soutifu](../../../../blob/master/src/ts/wf/testcases/Makefile.soutifu).
|
|
|
Just change your working directory to
|
|
|
[src/ts/wf/testcases](../../../../tree/master/src/ts/wf/testcases)
|
|
|
and enter
|
|
|
|
|
|
make clean
|
|
|
make soutifutests
|
|
|
acroread soutifu*.pdf
|
|
|
|