NAME
smoothvol - volumetric edge enhancement or smoothing of
time slice data
SYNOPSIS
smoothvol [ -Nntap ] [ -Ootap ] [ -iintercept ] [ -lslength
] [ -tflength ] [ -ftaperxt ] [ -xtaperxt ] [ -ytaperyt ] [
-xpadxp ] [ -ypadyp ] [ -diff ] [ -dup ] [ -M ] [ -AM ] [ -E
] [ -box ] [ -bart ] [ -bess ] [ -cosine ] [ -V ] [ -I ] [
-? or -h ]
DESCRIPTION
smoothvol requires time slice data as input and operates in
either smoothing mode or edge detection mode. The smoothing
mode can either be a weighted bessel convolution in space or
a average median smoother in space. In time the smoothing
can be a boxcar, or one of several other window types. The
smoothing is done on a rolling block of time slices with
add-one-drop-one on each read/write. This makes putting the
current version into a parallel XIKP net impossible although
it can appear in a single stream XIKP flow.
In edge detection mode smoothvol extends the concept of the
3x3 edge enhancer found in fkkstrip by adding a third dimen-
sion to the filter. Like fkkstrip it works on time slice
data but operates on the data using a rolling 3-slice buffer
with add-one-drop-one on each read/write. The three slices
are needed of course to implement the third dimension of the
convolutional filter. This makes putting the current ver-
sion into a parallel XIKP net impossible although it can
appear in a single stream XIKP flow.
smoothvol in edge detection mode computes a 3x3x3 filters
according to "Two Dimensional Signal and Image Processing"
by J.S. Lim, Prentice Hall, 1990, pp 481-486. The overall
appearance of the output of these filters is similar to that
of the coherency codes although since these operations are
done on a rolling 3-slice buffer the temporal resolutuon
will be much higher.
In smoothing mode the use is allowed to extend the filter
dimensions beyond 3. Be careful in the time dimension since
this number of time slices will have to be held in memory.
smoothvol gets both its data and its parameters from command
line arguments. These arguments specify the input, output,
filter lengths, spatial pad and taper, and verbose printout,
if desired.
Note: there must be at least as many traces per record as
there are filter points on one side of the operator -l. In
addition, the number of points in the operator must be odd;
if not, the program will make it so.
Command line arguments
-N ntap
Enter the input data set name or file immediately after
typing -N. If piping in this command line entry will
be omitted. The input file should include the complete
path name if the file resides in a different directory.
Example -N/b/vsp/dummy tells the program to look for
file 'dummy' in directory /b/vsp
-O otap
Enter the output data set name or file immediately
after typing -O. This output file is not required when
piping the output to another process. The output data
set also requires the full path name (see above).
-l slength
Enter the spatial length (samples) of one side of the
convolutional smoother (obviously only good in smooth-
ing mode). This should be an odd number. Default = 3
-t tlength
Enter the temporal length (samples) of the convolu-
tional smoother (obviously only good in smoothing
mode). This should be an odd number. Default = 5
-ftaper ftaper
Enter percent of filter length over which to to use
apply cosine taper. Default is 50 percent.
-xpad xpad
Enter number of samples to pad on either side of input
record in x direction [left/right]. Default is 10.
-ypad ypad
Enter number of samples to pad on either side of input
record in y direction [top/bottom]. Default is 10.
-xtaper xtaper
Enter number of samples to taper on either side of
input record in x direction [left/right]. Default is
10.
-ytaper ytaper
Enter number of samples to taper on either side of
input record in y direction [top/bottom]. Default is
10.
-diff
Enter the command line argument '-diff' to output the
result of the difference between the input data and the
convolution [data - filter * data]. Default is to out-
put the result of the convolution on the input data
[filter * data].
-dup Enter the command line argument '-dup' to fill the pad
zone with the fringe of samples from the edges of each
input record. This is necesary if one is smoothing
entities like velocity or Q to avoid edge effects from
the convolution of the smoothing operator.
-M Enter the command line argument '-M' to turn on the
median spatial smoother. Default temporal smoother is
box car convolutional smoother.
-AM Enter the command line argument '-AM' to turn on the
average median s spatial smoother. Default temporal
smoother is box car convolutional smoother.
-box Enter the command line argument '-box' to make the time
domain part of the 3D smoother be a box car function.
-bart
Enter the command line argument '-bart' to make the
time domain part of the 3D smoother be a symmetrical
bartlett function.
-bess
Enter the command line argument '-bess' to make the
time domain part of the 3D smoother be a symmetrical
cosine weighted bessel function.
-cos Enter the command line argument '-cos' to make the time
domain part of the 3D smoother be a symmetrical cosine
function.
-E Enter the command line argument '-E' to turn on the
3x3x3 edge detector. Default is weighted bessel convo-
lutional smoother.
-I Enter the command line argument '-I' to smooth on the
reciprocal sample values. This is useful when smoothing
Q volumes or velocity volumes. Not recommended when
using the edge detection option but not forbidden.
-V Enter the command line argument '-V' to get additional
printout.
-? or -h
Enter the command line argument '-?' or -h to get
online help. The program terminates after the help
screen is printed.
DISCUSSION
The field of image processing of seismic data is a blending
of two disciplines that have been around for many years,
namely signal processing and image processing. We, as geo-
physicists are intimately familiar with the former and usu-
ally quite ignorant of the latter. The Electrical Engineer-
ing and Computer Science people on the other hand have been
using 2D techniques in image processing for many years.
There is a wealth of liturature on topics such as image
smoothing, image coding, image spectral balancing, image
edge detection, image enhancement etc. that have direct
application to processing of time slice data. This routine
is the first I know of that makes possible several of the
aforementioned processes.
Sample Flow A
Here is an example of the command line entries for applica-
tion of the general 3x3x3 edge detection filter to a 3D
post-stack dataset:
ttds3d -Ninput -NDtxy -ODxyt -M16 -Ttmp1 |\
smoothvol -E -diff |\
ttds3d -NDxyt -ODtxy -M16 -Ttmp2 |\
hdrswap -N2input |\
clean -Ooutput -Z
The ttds3d (for transposing the data volume forward and
back) have been set up to run on a typical SUN machine. The
hdrswap is to restore the input trace headers which do not
survive the transposing process. The clean is the zero out
any previously dead traces.
Sample Flow B
Here is an example of the command line entries for applica-
tion of the smoothing filter to a 3D post-stack dataset:
ttds3d -Ninput -NDtxy -ODxyt -M16 -Ttmp1 |\
smoothvol -l3 -t5 |\
ttds3d -NDxyt -ODtxy -M16 -Ttmp2 |\
hdrswap -N2input |\
clean -Ooutput -Z
Here the smoother is a spatial weighted 2D bessel filter and
a box car in time.
Sample Flow C
Here is an example of the command line entries for applica-
tion of the smoothing filter to a 3D velocity dataset:
ttds3d -Ninput -NDtxy -ODxyt -M16 -Ttmp1 |\
smoothvol -l3 -t5 -xtaper0 -ytaper0 -dup |\
ttds3d -NDxyt -ODtxy -M16 -Ttmp2 |\
hdrswap -N2input |\
clean -Ooutput -Z
Here we have duplicated the time slice data out into the
default 10 point fringe surrounding the slices and set the
edge taper to be zero in both directions. These are neces-
sary for smoothing data such as velocities and Qs.
See Also
fkkstrip
BUGS
Currently cannot be run in a parallel stream XIKP.
AUTHOR
Paul Gutowski, Oct/95 [pgutowski@amoco.com
COPYRIGHT
copyright 2001, Amoco Production Company
All Rights Reserved
an affiliate of BP America Inc.
Man(1) output converted with
man2html