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