Commit 6d6a575a authored by thomas.forbriger's avatar thomas.forbriger
Browse files

[MERGE] (master|vendor_Seitosh): vendor import of 23.10.2015

Merge branch 'vendor_Seitosh'

Conflicts:
	contrib/aff/README.export
	contrib/fourier/README.export
	contrib/stfinv/README.export

Commands executed on branch master (as a guideline for future imports):

  git merge -X theirs vendor_Seitosh
  git rm contrib/*/README.export
  git commit
parents 02cfa44c 25190a67
# this is <stfinvany_description_usage.txt>
# ----------------------------------------------------------------------------
# This file should address the selection of the different procedures. The
# overall concept of the library is explained in the base class.
How to control the procedure
----------------------------
A specific procedure is selected by passing a parameter string. This string
may further contain parameters to control the way the procedure will be
applied.
The parameter string starts with an ID-sequence identifying the desired
procedure. See the list available procedures for ID strings. In the parameter
string the ID-sequence is terminated by a colon (:).
After selecting the desired procedure, the interface function strips off the
ID-sequence as well as the first colon from the parameter string. The
remainder may consist of several control parameters being separated by colons
(:). Each control parameter may just be a flag (switch to turn on an option)
or may come along with a parameter value. The value is separated from the
parameter by an equal sign (=).
Examples:
- To select Fourier domain least squares and shift the returned source
correction filter wavelet by 0.4s and switch on verbose mode, pass the
following parameter string:
fdlsq:tshift=0.4:verbose
- To select the identity procedure and switch on debug level 4:
ident:DEBUG=4
- To select Fourier domain least squares, apply offset dependent weights and
use a power of two to speed up the FFT:
fdlsq:pow2:exp=1.4
#
# ----- END OF stfinvany_description_usage.txt -----
# this is <stfinvany_summary_usage.txt>
# ----------------------------------------------------------------------------
#
How to control the procedure
----------------------------
Procedures can be selected by passing the procedures ID together with options
an parameters controlling the algorithm used.
Syntax of parameter string:
ID:option:option=value:option=value
# ----- END OF stfinvany_summary_usage.txt -----
# this is <stfinvbase_description_usage.txt>
# ----------------------------------------------------------------------------
# Common control parameters
# -------------------------
Options and parameters in common for all procedures:
verbose produce verbose output (if implemented)
DEBUG=l produce debug output with level l
exp=k apply offset dependent weights to signals
Due to the amplitude decay with offset to the source signals from receivers at
larger offset would contribute less to the optimization criterion for which
the source wavelet correction filter is constructed. The option exp provides
means to add a weight factor ((r/1m)**k) to each signal, where r is the
receiver to source offset. This is used to compensate the decrease in signal
amplitude. If the energy in the original signal decays with ((-r/1m)**(2*k))
all traces will contribute at a similar level to the derived correction filter
after application of the weight factors.
# ----- END OF stfinvbase_description_usage.txt -----
# this is <stfinvbase_summary_usage.txt>
# ----------------------------------------------------------------------------
#
Common control parameters
-------------------------
Options and parameters in common for all procedures:
verbose produce verbose output (if implemented)
DEBUG=l produce debug output with level l
exp=k apply offset dependent weights to signals
# ----- END OF stfinvbase_summary_usage.txt -----
# this is <stfinvfdleastsquares_description_usage.txt>
# ----------------------------------------------------------------------------
#
Procedure: Least squares in the frequency domain
------------------------------------------------
This procedure calculates a least squares fit in the Fourier domain, which
equals a waterlevel-deconvolution. A waterlevel as a fraction of the signal
energy of the input synthetics is applied. If selected, offset dependent
weights will be applied to the signals from different receivers.
Options and parameters:
waterlevel=l waterlevel to be applied for regularization.
The procedure is implemented in the Fourier domain. Fourier coefficients for
the correction filter are constructed such that the residual between Fourier
coefficients of recorded signals and Fourier coefficients of synthetic signals
after application of the correction filter are minimized in a least-squares
sense. The least-squares solution is subject to a damping constraint. If the
weighted power spectral density of the synthetics at a given frequency drops
below the l-th fraction (waterlevel parameter) of the average (over all
frequencies) power spectral density, the filter coefficients are damped
(artificially made smaller) by the damping constraint (i.e. waterlevel as seen
from the perspective of deconvolution).
Start with l=0.01 as a reasonable initial value for the waterlevel. The best
fitting waterlevel must be searched by trial and error and depends of signal
noise and on how well the synthetics describe the actually observed wave
propagtion.
The theory behind the Fourier domain least squares procedure is outlined by
Lisa Groos (2013, Appendix F, page 146). She also describes a way to find an
approrpiate waterlevel by application of the L-curve criterion (Groos, 2013,
Appendix G, page 148).
Lisa Groos. 2013. 2D full waveform inversion of shallow seismic Rayleigh waves.
Dissertation, Karlsruhe Institute of Technology.
http://nbn-resolving.org/urn:nbn:de:swb:90-373206
# ----- END OF stfinvfdleastsquares_description_usage.txt -----
# this is <stfinvfdleastsquares_summary_usage.txt>
# ----------------------------------------------------------------------------
#
Procedure: Least squares in the frequency domain
------------------------------------------------
Find optimal correction filter by waterlevel-deconvolution in the Fourier
domain (i.e. least squares with regularization).
Options and parameters:
waterlevel=l waterlevel to be applied for regularization.
# ----- END OF stfinvfdleastsquares_summary_usage.txt -----
# source code text file
# this is <stfinvfinitecausal_description_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage description: Finite causal engine
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvfinitecausal_description_usage.txt -----
# source code text file
# this is <stfinvfinitecausal_summary_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage summary: Finite causal engine
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvfinitecausal_summary_usage.txt -----
# source code text file
# this is <stfinvfixedstf_description_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage description: Engine to provide a fixed wavelet
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvfixedstf_description_usage.txt -----
# source code text file
# this is <stfinvfixedstf_summary_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage summary: Engine to provide a fixed wavelet
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvfixedstf_summary_usage.txt -----
# this is <stfinvfourier_description_usage.txt>
# ----------------------------------------------------------------------------
#
# Procedures in the Fourier domain
# --------------------------------
Options and parameters in common for procedures in the Fourier domain:
fpow2 use power of two for number of coefficients
fdiv=d use integer multiple of d for number of coefficients
fpad=f padding factor
tshift=d delay source correction filter wavelet by d (in seconds)
in order to expose acausal components
These options define the number of samples N used for the FFT (Fast Fourier
Transform). This number N should be larger than the number of samples M in the
original input time series to avoid wrap-around. If fpow2 is set, N will be
the next power of 2 larger than M*f. Else if fdiv is set, N will be the next
integer multiple of d larger than M*f.
The derived correction filter in some cases can contain acausal components.
This means that the impulse response is non-zero for negative time values.
Since by definition, the impulse response is output for the time interval of
the input data, these acausal components can remain unnoticed. The option
tshift can be used to shift the impulse response as obtained by inverse FFT in
order to expose acausal components.
# ----- END OF stfinvfourier_description_usage.txt -----
# this is <stfinvfourier_summary_usage.txt>
# ----------------------------------------------------------------------------
#
Procedures in the Fourier domain
--------------------------------
Options and parameters in common for procedures in the Fourier domain:
fpow2 use power of two for number of coefficients
fdiv=d use integer multiple of d for number of coefficients
fpad=f padding factor
tshift=d delay source correction filter wavelet by d (in seconds)
# ----- END OF stfinvfourier_summary_usage.txt -----
# this is <stfinvidentity_description_usage.txt>
# ----------------------------------------------------------------------------
#
Procedure: Scale with amplitude factor
--------------------------------------
This procedure does not modify the waveform of the synthetic data. It
convolves the signales with a discrete delta pulse so to speak. Optionally the
synthetics are scaled with an amplitude factor such that the weighted average
signal energy of all traces in the scaled synthetics equals that of the
recordings. Offset dependent weights are applied in this case. The
appropriately scaled discrete delta pulse is returned as correction filter.
Options and parameters:
scaleenergy if flag is set: scale energy
# ----- END OF stfinvidentity_description_usage.txt -----
# this is <stfinvidentity_summary_usage.txt>
# ----------------------------------------------------------------------------
#
Procedure: Scale with amplitude factor
--------------------------------------
Scale signals by a scalar factor (i.e. keep signal shape).
Options and parameters:
scaleenergy if flag is set: scale energy
# ----- END OF stfinvidentity_summary_usage.txt -----
# source code text file
# this is <stfinvnormalize_description_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage description: Fourier expansion normalization engine
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvnormalize_description_usage.txt -----
# source code text file
# this is <stfinvnormalize_summary_usage.txt>
# ----------------------------------------------------------------------------
#
# Copyright (c) 2015 by Thomas Forbriger (BFO Schiltach)
#
# end-user usage summary: Fourier expansion normalization engine
#
#
# ----
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# ----
#
# REVISIONS and CHANGES
# 05/10/2015 V1.0 Thomas Forbriger
#
# ============================================================================
#
NO YET IMPLEMENTED!
# ----- END OF stfinvnormalize_summary_usage.txt -----
......@@ -3,7 +3,6 @@
*
* ----------------------------------------------------------------------------
*
* $Id: waveformheader.h 4023 2011-06-24 14:18:04Z tforb $
* \author Thomas Forbriger
* \date 06/05/2011
*
......@@ -38,9 +37,7 @@
#ifndef STFINV_WAVEFORMHEADER_H_VERSION
#define STFINV_WAVEFORMHEADER_H_VERSION \
"STFINV_WAVEFORMHEADER_H V1.0 "
#define STFINV_WAVEFORMHEADER_H_CVSID \
"$Id: waveformheader.h 4023 2011-06-24 14:18:04Z tforb $"
"STFINV_WAVEFORMHEADER_H V1.0"
#ifdef __cplusplus
extern "C" {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment