- Author
- Thomas Forbriger
- Since
- July 2012
- Date
- October 2013
- Version
- V1.0
Contents of this page
Purpose
this is <README>
============================================================================
lisousi: Line Source Simulation
============================================================================
Purpose of lisousi
------------------
Line-source simulation: Transform field data to apparent line-source generated
waveforms in preparation for Cartesian 2D full-waveform inversion.
Seismic field data is excited by point sources (e.g. hammer blows).
Full waveform inversion (FWI) approaches which make use of Cartesian 2D
forward modeling implicitly use a line source to fit the observed data.
Therefore recorded waveforms must be transformed to simulate equivalent
line-source generated data prior to application of 2D FWI.
lisousi offers several single-trace approaches for vertical component and
radial component data excited by vertical hammer blows or explosions.
Single-trace approaches can be applied to each seismic trace individually in
contrast to integral transform approaches, which require data from a complete
profile. Single-trace approaches have the benefit, that they are independent
of geophone layout and that they perform reasonably well for data recorded on
laterally heterogeneous structures. On the downside they must estimate the
wave number from sample time and receiver offset. They inherently are
approximations, most of them being derived from the acoustic wave Green's
function. Nevertheless, they perform surprisingly well on data from
visco-elastic wave propagation in heterogeneous structures.
Features
--------
- Fourier domain or time domain application of convolution filter (selectable)
- Selectable scaling optimized for either direct waves, non-dispersive waves,
or reflected waves
- Selectable delay of time-domain taper to match source wavelet centroid
delay
- Hybrid transformation for cases where near-offset traces suffer from
delayed taper
- Ability to read a variety of input formats including SeismicUn*x and raw
ASCII (through libdatrwxx)
References
----------
Forbriger, T., Groos, L. and Schäfer, M., 2013. Appropriate line source
simulation procedure for shallow seismic field data. 73rd Annual Meeting of
the German Geophysical Society (DGG), Leipzig.
(http://www.opentoast.de/Data_analysis_code_246.php)
Forbriger, T., 2014. Line source simulation.
http://www.opentoast.de/Data_analysis_code_lisousi.php
Forbriger, T., L. Groos, M. Schäfer, 2014. Line-source simulation for
shallow-seismic data. Part 1: theoretical background. Geophys. J. Int.,
198(3), 1387-1404. (doi:10.1093/gji/ggu199)
Schäfer, T., M., L. Groos, T. Forbriger, T. Bohlen, 2014. Line-source
simulation for shallow-seismic data. Part 2: full-waveform inversion
— a synthetic 2-D case study. Geophys. J. Int., 198(3), 1405-1418.
(doi:10.1093/gji/ggu171)
Program documentation
---------------------
See files
usage_text.txt for a summary of command line options
help_text.txt for a description of command line options
description_text.txt for the theory of operation
for usage information or execute
lisousi -help
============================================================================
Installation
------------
This software is part of the project Seitosh. See README.1st in the root
directory of the collection or https://git.scc.kit.edu/Seitosh/Seitosh for
general installation instructions.
The Makefile supports program compilation and linking. Some binary libraries
are required.
The command
make all
will compile and install the binary executables as well as the doxygen
documentation.
Environment variables control where the results are stored and where
libraries and library header files are expected:
LOCLIBDIR defines location of binary libraries
LOCINCLUDEDIR defines location of C/C++ header files (prototypes)
LOCBINDIR defines location of binary executables
TF_WWWBASEDIR defines location of doxygen output
Dependencies:
Compilers required to build the programs:
C++ compiler
C/C++ preprocessor
doxygen (required to process source code documentation)
Seitosh libraries required to compile the code:
libaff
libtime
libseife
libfourier
liblinearxx
libgsexx
libdatrwxx
libsffxx
libtsxx
libtfxx
============================================================================
The home of this software suite is
https://git.scc.kit.edu/Seitosh/Seitosh/tree/master/src/ts/lisousi/lisousi
Please send bug reports and suggestions to
Thomas.Forbriger@kit.edu
----- END OF README -----
Invocation
Program Options and Parameters
# this is <lisousi_help_text.txt>
# ============================================================================
# description of lisousi program options
# ============================================================================
#
outfile name of output file to contain results
infile input file
t:T select traces T, where T may be any range
specification like '3-4' or '5,6,7-12,20'
f:F specifies an input file format differing from
the format selected by "-type"
informational output:
-xhelp[=type] print detailed information regarding file formats
if "type" is specified, just print text for file format "type"
-listexperimental
list experimental and non-operational options
-v be verbose
-DEBUG produce debug output
data file input and output:
-o overwrite output
-type type choose input file format (default: sff)
-Type type choose output file format (default: sff)
default:
Fourier domain application of analytic
filter coefficents
-fdfilter apply numerically derived
Fourier coefficients of 1/sqrt(t)
-tdfilter apply 1/sqrt(t) in the time domain by discrete convolution
-pad n in the
case of
Fourier domain processing, the time series
is padded with zeroes to factor n of the number of samples
of the input series prior to the
Fourier transformation
-taperlast tapers are applied prior to filtering by default; this
option selects to
taper the time series after filtering
If this option is selected, the order of the processing
steps (which are not commutative) is reversed.
-sqrttaper By
default we use r*sqrt(2/t) as the
taper and scaling
function (direct-wave transformation). This is appropriate for
direct waves. In the case of reflected waves commonly the
propagation velocity is assumed to be known (see option
-velocity). Then the scaling function is v*sqrt(2*t), where v is
the assumed phase velocity (reflected-wave transformation).
The latter is selected by this option.
-tapdel t delay
taper function by t seconds;
this accounts
for the finite duration of a band limited source signal
-tapslo s delay
taper by not more than s*offset, where s is a
slowness in s/m; serves as an upper limit for tapdel
at small offsets
1/sqrt(t) construction:
the default operation to handle the singularity at t=0 is:
choose samples of 1/sqrt(t) such that they produce the
same mean values as the continuous function when being
integrated over one sampling interval
-integshift f shift time axis by a fraction f of the sampling interval
in order to adjust centroid of integration interval
the following options are for experimental purposes only:
-nointeg do not derive samples by integration; sample 1/sqrt(t)
directly and optionally use the following parameters to
control the bevahiour close to t=0
deprecated method
if -nointeg is selected:
-tshift f to avoid the singularity of 1/sqrt(t) at t=0, sampling time
is shifted by a fraction f of the sampling interval
-tlim f to avoid the singularity of 1/sqrt(t) at t=0, the sample
time for samples at times smaller than f*dt, where dt is
the sampling interval, is set to a given fraction of the
sampling interval (see option -tfac)
-tfac f to avoid the singularity of 1/sqrt(t) at t=0, the sample
time at small times (see options -tlim) is set to a
fraction f of the sampling interval
Single-velocity transformation:
-fredomain apply transformation in the frequency domain for a
single direct wave velocity.
-exact apply the exact transformation for the single-velocity approach
(Forbriger 2014, eq. 31); the default is to apply the far-field
approximation (Forbriger 2014, eq. 30)
-velocity v set assumed wave velocity in km/s
Hybrid transformation:
-transition r1,r2 mix both approaches; up to offset r1 the "single
velocity transformation" is used; for offsets larger than
r2 the "direct wave transformation" is used; in between
both are mixed with continously varying percentage
from one to the other
Additional options:
-limitlength some convolution schemes return a larger number of samples
than present in the input series (due to padding for
example); this option limits to numer of output samples
to the number of input samples
-spatialdistance
use spatial distance to source instead of offset along surface,
whereever a distance is required
#
# ----- END OF lisousi_help_text.txt -----
Program Description
# this is <lisousi_description_text.txt>
# ============================================================================
# description of lisousi processing concepts
# ============================================================================
#
Purpose of lisousi
==================
Line-source simulation: Transform field data to apparent line-source generated
waveforms in preparation for Cartesian 2D full-waveform inversion.
Seismic field data is excited by point sources (e.g. hammer blows).
Full waveform inversion (FWI) approaches which make use of Cartesian 2D
forward modeling implicitly use a line source to fit the observed data.
Therefore recorded waveforms must be transformed to simulate equivalent
line-source generated data prior to application of 2D FWI.
lisousi offers several single-trace approaches for vertical component and
radial component data excited by vertical hammer blows or explosions.
Single-trace approaches can be applied to each seismic trace individually in
contrast to integral transform approaches, which require data from a complete
profile. Single-trace approaches have the benefit, that they are independent
of survey layout and that they perform reasonably well for data recorded on
laterally heterogeneous structures. On the downside they must estimate the
wave number from sample time and receiver offset. They inherently are
approximations, most of them being derived from the acoustic wave Green's
function. Nevertheless, they perform surprisingly well on data from
visco-elastic wave propagation in heterogeneous structures.
For shallow seismic data we recommend a simple but effective procedure:
1. scale waveform by r*sqrt(2) (offset times square root of 2)
2. convolve with 1/sqrt(t) (fractional half integration)
3. taper samples with 1/sqrt(t)
Where r is source-to-receiver offset and t is sample time.
We call this "direct-wave transformation".
Theory of operation
===================
Lisousi in particular offers the following approaches as defined by Forbriger
et al. (2014, section 5) and tested by Schäfer et al. (2014, see definition in
section 2.2):
- Single-velocity transformation
- Direct-wave transformation
- Reflected-wave transformation
- Hybrid transformation
All approaches are based on the ratio of the 2D and the 3D Green's function
in the frequency domain (Forbriger et al. 2014, eq. 51). This ratio can be
understood as a convolution with 1/sqrt(t) in the time domain and appropriate
scaling (tapering) of the samples in the time domain (Forbriger et al. 2014,
eq. 52). The appropriate scaling factor depends on wave travel time and wave
travel distance, where only travel time can be deduced immediately from the
data.
Single-velocity transformation
------------------------------
This approach is appropriate for wave propagation in homogeneous full space,
where travel distance equals source to receiver offset and the average wave
speed equals the actual (constant) wave speed. In this case the amplitude
factor is taken to be (Forbriger et al. 2014, eq. 52)
F = sqrt(2*r*v),
where r is taken as the source to receiver offset (as provided in the data
files) and v is the propagation velocity taken from the argument to option
-velocity or its default value.
Direct-wave transformation
--------------------------
This approach is appropriate for shallow seismic data, where sources as well
as receivers are close to the free surface and data are dominated by direct
waves or surface waves. In this case the amplitude factor is taken to be
(Forbriger et al. 2014, eq. 58)
F = r*sqrt(2/t),
where r is taken as the source to receiver offset (as provided in the data
files) and t is the travel time of the wave (which equals the sample time in
the data files).
Reflected-wave transformation
-----------------------------
This approach is appropriate for body waves which are reflected at deep
reflectors in structures where propagation velocity varies only weakly (when
compared to shallow structures). In this case the amplitude factor is taken
to be (Forbriger et al. 2014, eq. 56)
F = v*sqrt(2*t),
where v is the average propagation velocity taken from the argument to
option -velocity or its default value and t is the travel time of the wave
(which equals the sample time in the data files).
Hybrid transformation
---------------------
This approch is a variant of the direct-wave transformation, where the
single-velocity transformation is used as a replacement at small offsets
(Forbriger et al. 2014, sec. 6.2). This is necessary in cases, where the
amplitude
taper, which becomes singular at zero offset for the direct-wave
transformation, otherwise would result in artefacts. The one is replaced by
the other gradually over a given offset range.
The program offers options to select different ways of constructing the
(convolution with 1/sqrt(t)) and the application of the scaling (tapering with
1/sqrt(t)) are not commutative in a mathematical sense and the results may
differ for a different order of the application. However, residuals have not
yet been observed at a significant level in practical application. Some of the
options are not really of practical relevance due to more efficient and
equally accurate alternatives. For instance a time domain convolution is not
recommended. These options are primarily provided for experimental purposes.
Application of program control parameters
=========================================
Direct-wave transformation and reflected-wave transformation
------------------------------------------------------------
The default (with no option selected) is the "direct-wave transformation". Use
the option -sqrttaper to select the "reflected-wave transformation". Both
approaches convolve the seismograms with 1/sqrt(t) and are different with
respect to the time domain
taper applied to the waveform data. Both operations
can be controlled by command line options.
Application of
filter (convolution with 1/sqrt(t)):
1) Frequency domain application:
recommended approach
default; fastest approach
Convolution with the 1/sqrt(t)
filter response is done in the
Fourier domain by multiplication with the analytically derived
2) Frequency domain application of dicrete
Fourier transform:
select option: -fdfilter
The 1/sqrt(t)
filter response is constructed in the time
domain. Convolution with the time series is done in the
frequency domain after FFT.
3) Time domain application:
slowest approach
select option: -tdfilter
The 1/sqrt(t)
filter response is constructed in the time
domain. Convolution with the time series is done in the
time domain by discrete convolution.
For the frequency domain applications (1 and 2) the following
options are available:
-pad n padding of time series
The 1/sqrt(t)
filter response becomes singular for t=0. This
requires special measures for the approaches which construct
the
filter response in the time domain (2 and 3) in order to
create a response which behaves equivalent to its analytical
counterpart. The following options are available:
-integshift t
-notinteg
If -nointeg is selected, the following options are available:
-tshift f
-tlim f
-tfac f
Application of the
taper:
By default 1/sqrt(t) is applied to the seismograms as a time-domain
taper and the signals are scaled by r*sqrt(2). This is called the "direct-wave
transformation".
Option -sqrttaper selects sqrt(t) as
taper function and scales
seismograms additionally by a factor sqrt(2)*velocity. This is called the
"reflected-wave transformation".
Tapers are applied prior to filtering by default. Option -taperlast
selects to
taper the time series after filtering.
Tapers are always constructed in the time domain. The default
1/sqrt(t)
taper is singular at t=0. This requires special
measures to set up the
taper appropriately, such that it behaves
equivalent to its analytical counterpart. The following options
are available:
-integshift t
-nointeg
If -nointeg is selected, the following additional options are available:
-tshift f
-tlim f
-tfac f
They have a lesser (or even unnoticeable) impact when compared to their
impact when constructing the
filter resonse. This is because the portion
of the time series (close to t=0) which would be affected by the
close-to-singular
taper usually is of small or vanishing amplitude.
Sampling time is taken as travel time in order to determine the
appropriate scaling (
taper) factor. Since a finite bandwidth wavelet
appears slightly after the ray-theoretical arrival in the seismogram,
scaling factors are typically too small for near offset traces, where
pulse duration is close to pulse travel time. The program offers the
option -tapdel to apply a correction for this effect. -tapslo can be used
to set an upper limit for tapdel at small offsets.
Single-velocity transformation
------------------------------
select by option: -fredomain
additional options:
-velocity v
-pad n
Operation:
A
Fourier transform of the waveform is divided by the
Fourier transform of
the 3D Greens function and multiplied by the 2D Greens function. This
approach works only for waves of a single given wave velocity. It is hence
only appropriate for the impulse response in homogeneous full space, but
also performs surprisingly well when applied to dispersive wavefields.
Hybrid transformation
---------------------
select by option: -transition
Step-by-step examples
=====================
Step-by-step examples are provided with the source code. See
https:
References
==========
Forbriger, T., Groos, L. and Schäfer, M., 2013. Appropriate line source
simulation procedure for shallow seismic field data. 73rd Annual Meeting of
the German Geophysical Society (DGG), Leipzig.
(http:
Forbriger, T., 2014. Line source simulation.
http:
Forbriger, T., L. Groos, M. Schäfer, 2014. Line-source simulation for
shallow-seismic data. Part 1: theoretical background. Geophys. J. Int.,
198(3), 1387-1404. (doi:10.1093/gji/ggu199)
Schäfer, T., M., L. Groos, T. Forbriger, T. Bohlen, 2014. Line-source
simulation for shallow-seismic data. Part 2: full-waveform inversion
— a synthetic 2-D case study. Geophys. J. Int., 198(3), 1405-1418.
(doi:10.1093/gji/ggu171)
#
# ----- END OF lisousi_description_text.txt -----
Undocumented (experimental) features
# this is <experimental_text.txt>
# ============================================================================
Undocumented and experimental features
--------------------------------------
The following options are not discussed in the help text.
The corresponding commandline options where implemented with
changesets
5127: commit 6495381b6eae35d90565451b45d7f822faf2ef43
Date: Tue Apr 16 17:09:37 2013 +0000
preparing for single force near-field
5136: commit 40112d5fc5fcad73a86d4c11e349499bcdd5e53b
Date: Wed Apr 17 11:34:49 2013 +0000
prepare functions
and 5149: commit 013bdb365f9bc19945ef67ef4bb81ec1bcb0747d
Date: Fri Apr 19 21:14:01 2013 +0000
expansion coefficients are prepared
They are still fully experimental and not well tested.
Some of them have even explicitely failed in first tests.
[-fdexplosion]
{"fdexplosion",arg_no,"-"},
[-fdzforce]
{"fdzforce",arg_no,"-"},
[-fdlamb]
{"fdlamb",arg_no,"-"},
[-vpvsratio v]
{"vpvsratio",arg_yes,"1.732"},
[-quality Qp,Qs]
{"quality",arg_yes,"30.,30."},
[-ktrapezoid n,f,t]
{"ktrapezoid",arg_yes,"1000,2.,0.1"},
[-radial]
{"radial",arg_no,"-"},
[-fdwizforce]
{"fdwizforce",arg_no,"-"},
#
# ----- END OF experimental_text.txt -----