NAME

     swfilt3d - 3D running window semblance weighted dip  filter-
     ing.


SYNOPSIS

     swfilt3d [ -Nfile_in ] [ -Ofile_out ] [ -ildmdx ] [  -cldmdy
     ]  [  -ilhapmx ] [ -clhapmy ] [ -vhapmz ] [ -ilazimxazim ] [
     -clazimyazim ] [ -ilinterpnxinterp ] [ -clinterpnyinterp ] [
     -dzdz  ] [ -sigma1sigma1 ] [ -sigma2sigma2 ] [ -wsemb_window
     ] [ -f1f1 ] [ -f2f2 ] [ -f3f3 ] [ -f4f4 ] [ -t1t1 ] [  -t2t2
     ] [ -t3t3 ] [ -t4t4 ] [ -startlinestartline ] [ -endlineend-
     line ] [ -starttracestarttrace ]  [  -endtraceendtrace  ]  [
     -prewprew  ]  [  -pminpmin  ]  [ -pmaxpmax ] [ -qminqmin ] [
     -qmaxqmax ] [ -p1p1 ] [ -p2p2 ] [ -p3p3 ] [ -p4p4 ] [  -q1q1
     ]  [  -q2q2  ] [ -q3q3 ] [ -q4q4 ] [ -smaxsmax ] [ -s1s1 ] [
     -s2s2 ] [ -s3s3 ] [ -s4s4 ] [ -a1a1 ] [ -a2a2 ] [ -a3a3 ]  [
     -a4a4 ] [ -reject ] [ -rho ] [ -V ] [ -? ]


DESCRIPTION

     swfilt3d reads in a 3D cube of seismic data and  performs  a
     semblance weighted dip filter in the @ ( tau ,p,q)@ domain.



Forward transform and semblance calculation:

     The forward transform and  semblance  calculation  are  per-
     formed  in the time domain. The user specifies a rectangular
     (-@ m sub x :+ m sub x ,- m sub y  :+ m sub y @ ) trace spa-
     tial analysis window about each point in the input data set.
     Apparent dip increments dp and dq are chosen such  that  the
     data  are sampled at 2 points per period=1/ef at edge of the
     analysis window, where fref= .5*(f3+f4).

     The data in the  analysis  window  are  flattened  for  each
     apparent dip pair (p,q). The semblance for this trial direc-
     tion at the analysis point is defined to be the semblance of
     the flattened traces in the analysis window. For time domain
     data we flatten using:


     @u sub f ( tau ,p,q,x,y)=u [ tau -(px+qy)  ]  @


     where x and y are distances measured from the center of  the
     analysis window. For depth domain data we flatten using:


     @u sub f ( zeta ,p,q,x,y)=u [ zeta -(px+qy) ] .@



     The  @ ( tau ,p,q)@ transform, U, is then:

     @ U( tau ,p,q)= sum from -m sub x to +m sub x  sum from -m sub y to +m sub y [u sub f ( tau ,p,q,x,y)] @



     The semblance, @sigma@, is:

     @ sigma ( tau ,p,q)={ ( sum from -m sub x to +m sub x  sum from -m sub y to +m sub y [u sub f ( tau ,p,q,x,y)]) sup 2 } over {N sub x N sub y sum from -m sub x to +m sub x  sum from -m sub y to +m sub y [u sub f ( tau ,p,q;x,y)] sup 2 }@

     where

     @ N sub x = 2(m sub x +1)@, and

     @ N sub y = 2(m sub y +1)@.

     As in velocity analysis, the semblance for each  (p,q)  pair
     and  analysis point are smoothed by forming a running window
     time integration over the partial sums from @-m  sub  t@  to
     @+m sub t@ where @ m sub t = @semb_window/dt.

     @ sigma bar ( tau ,p,q)={ sum from -m sub t to +m sub t ( sum from -m sub x to +m sub x  sum from -m sub y to +m sub y [u sub f ( tau ,p,q,x,y)]) sup 2 } over {N sub x N sub y  sum from -m sub t to +m sub t sum from -m sub x to +m sub x  sum from -m sub y to +m sub y [u sub f ( tau ,p,q;x,y)] sup 2 }@



Reverse transform:

     The forward time domain Radon transform described  above  is
     equivalent to the frequency domain forward Radon transform:

     @U = R under sup H u @

     where

     @U sub m = U(  omega  ,p sub m ,q sub m  )@,

     @u sub j  = u( omega , x sub j , y sub j )@


     @R sub {mj} sup H   = exp [ -i omega (p sub m x sub j +q sub m y sub j ) ]@,

     @(x sub j, y sub j ) = @ the relative distance of the jth trace in the analysis
     window from the reference trace at @(x sub 0, y sub 0 )@,

     @omega =@ the temporal frequency in radians/sec,

     @p sub m = @ the mth apparent moveout in the x direction,

     @q sub m = @ the mth apparent moveout in the y direction.

     We will use this forward @ ( omega ,x,y)@ to @( omega ,p,q)@
     domain  transform to help us define the least square inverse
     transform:

     @u = (R under R under sup H   + prew * I under  ) sup {-1}  R under  U@,

     @u =  B under U @

     where

     @  B  = (R under R under sup H   + prew * I under  ) sup {-1}  R@,


     @R sub {mj}   = exp [ +i omega (p sub m x sub j +q sub m y sub j ) ]@,
     and

     prew is the prewhitening factor entered as a command line argument.


Muting:

     The semblance independent diagonal mute matrix  @   W  under
     sub pq  @ is defined as:

     @W sub {pq} = 1. ~ if ~  s sub 2 <= sqrt {p sup 2 + q sup  2
     } <= s sub 3@,

     @W sub {pq} = 0. ~ if  ~ sqrt {p sup 2 + q sup 2 } <= s  sub
     1@ ,

     @W sub {pq} = 0. ~  if  ~ sqrt {p sup 2 + q sup 2 } >= s sub
     4@ , and

     @W sub {pq} =  ~ tapered @,   otherwise.

     We also weight according to the semblance calculated at each
     @(  tau  ,  p,q)@  triplet.  We define a 2nd diagonal weight
     matrix @  W under sub sigma @ to be:


     @W sub sigma ( tau ,p,q) = 1,~ if~ sigma > sigma sub 2 .@
     @W sub sigma ( tau ,p,q) = 0,~ if ~sigma < sigma sub 1 .@
     @W sub sigma ( tau ,p,q)~ is~ tapered,~ if~ sigma sub 1 <= sigma <= sigma sub 2 .@

     The weighted (muted)  @ ( omega ,p,q)@ data are then given by:

     @V =  F under W under sub pq  W under sub sigma U @,

     where

     @F sub rs = exp[-j( r DELTA omega s DELTA t)] @ is the forward Fourier transform.

     The weighted (muted) @ ( t ,x,y)@ data are given by:

     @ v  =  F under sup H R under V   =  F under sup H R under   (  R under sup H R under + prew  I under )  sup {-1}  F under W under sub pq W under sub sigma U @

      where

     @F sub rs sup H = exp[+j( r DELTA omega s DELTA t)] @ is the inverse Fourier transform.
     In the reject mode, we subtract the least square modeled component of the data  @ v sub m  @ from the original data set, u:

     @ v sub r =  u - v  @



     swfilt3d gets all its parameters  from  command  line  argu-
     ments.   These  arguments specify the input, output, spatial
     analysis window, and dip discretization parameters.

     -N file_in
          Enter the input data set name or file immediately after
          typing -N.  This input file should include the complete
          path name if the file resides in a different directory.
          Example  -N/export/data2/san_juan/time_stack  tells the
          program to look  for  file  'time_stack'  in  directory
          '/export/data2/san_juan'.   For  this program, the data
          must be stored  as  a  rectangular  grid  of  regularly
          binned data. The number of traces denoted by lineheader
          word 'NumTrc' defines the number of traces  in  the  in
          line  or  'x' direction. The number of records (seismic
          lines) denoted by lineheader word 'NumRec' defines  the
          number  of  traces  in the cross line or 'y' direction.
          Missing data should  be  padded  in  with  dead  traces
          flagged by the dead trace header flag 'StaCor'=30000.

     -O file_out
          Enter the  output  filtered  data  set   name  or  file
          immediately  after  typing -O. This output file name is
          not required when piping the output to another process.

     -w semb_window
          Enter the half length in msec (m, ft)  of  the  running
          time  (depth)  integration window applied over the sem-
          blance. (Default = +/-2 samples)

     -ildm dx
          Enter the in line distance measure  (trace  separation)
          in  m  (ft).  (Default:  read  value  from seismic line
          header word 'ILClIn')

     -cldm dy
          Enter the cross line distance measure (line separation)
          in  m  (ft).  (Default:  read  value  from seismic line
          header word 'CLClIn')

     -dz dz
          Enter the vertical depth sample increment  in  m  (ft).
          (Default,  dz=0,  indicating  the  data  are in time. A
          value of dz > 0 indicates the data are in depth).

     -ilhap @ m sub x @
          Enter the in line  half  aperture  of  the  rectangular
          analysis  window in number of traces. (Default, @ m sub
          x @=3, such that the x dimension of the analysis window
          ranges from (-3:+3) traces about the analysis point).

     -clhap @ m sub y @
          Enter the cross line half half  aperture  of  the  rec-
          tangular  analysis  window in the cross line (y) direc-
          tion in number of traces. (Default, @ m  sub  y  @  =3,
          such that the y dimension of the analysis window ranges
          from (-3:+3) traces about the analysis point).

     -sigma1 sigma1
          If present, reject data whose  time  average  semblance
          @sigma bar <= sigma sub 1 =
           sigma1@.  See  algorithm  description   above.    This
          weighting  will  accentuate coher ent/continuous events
          and suppress incoherent events. (Default: sigma1=0.05)

     -sigma2 sigma2
          If present, pass  data  whose  time  average  semblance
          @sigma  bar  >=  sigma  sub  2 = sigma1@. See algorithm
          description  above.   This  weighting  will  accentuate
          coherent/continuous  events  and  suppress  incoheren t
          events. (Default: sigma2 = 0.10)

     -ilinterp nxinterp
          Enter the number of output traces to be output  (inter-
          polated) in the inline direction. (Default: nxinterp=1,
          or no inline interpolation). (Warning:  the  interpola-
          tion  and reject options cannot be used together, since
          only the 'noise' have been  interpolated  to  the  new,
          intermediate  locations.  Currently, interpolation will
          force use of the less accurate, but easier to code -rho
          option.

     -clinterp nyinterp
          Enter the number of output traces to be output  (inter-
          polated)  in  the  crossline direction. (Default: nyin-
          terp=1, or no crossline  interpolation)  (Warning:  the
          interpolation   and   reject  options  cannot  be  used
          together, since only the 'noise' have been interpolated
          to the new, intermediate locations. Currently, interpo-
          lation will force use of the less accurate, but  easier
          to code -rho option.


     -f1 f1
          Frequency in cycles/sec  (Hz)  for  time  data,  or  in
          cycles/km  (cycles/kft)  for  dep  th  data at which we
          begin roll in of a Hamming zero phase band pass  filter
          (defa ult f1=df=1./trace length).

     -f2 f2
          Frequency in cycles/sec  (Hz)  for  time  data,  or  in
          cycles/km  (cycles/kft) for dep th data at which we end
          roll in of  a  Hamming  zero  phase  band  pass  filter
          (default =  f2=f1).

     -f3 f3
          Frequency in cycles/sec  (Hz)  for  time  data,  or  in
          cycles/km  (cycles/kft)  for  dep  th  data at which we
          begin roll out of  a   Hamming  zero  phase  band  pass
          filter (de fault =  f3=f4).

     -f4 f4
          Frequency in cycles/sec  (Hz)  for  time  data,  or  in
          cycles/km  (cycles/kft) for dep th data at which we end
          roll out of a Hamming zero phase band pass filter.  The
          c  ost  increases with the value of f4. (default  $f4=f
          sub Nyquist$ )

     -t1 t1
          Enter the beginning of  the  analysis  window  roll  in
          taper in ms. (Def ault = t1= first sample of the trace,
          or 0 ms).

     -t2 t2
          Enter the end of the analysis window roll in  taper  in
          ms. (Default =
           t1=t2).

     -t3 t3
          Enter the beginning of the  analysis  window  roll  out
          taper in ms. (De fault = t3=t4).

     -t4 t4
          Enter the end of the analysis window roll out taper  in
          ms. (Default
           t1= last sample of the trace).

     -startline startline
          Enter the first output line to be  generated  (Default:
          startline=1, the fir st line of the data set).

     -endline endline
          Enter the last output line to  be  generated  (Default:
          endline= the last lin e of the data set).

     -starttrace starttrace
          Enter the first output trace to be generated  (Default:
          starttrace=1, the f irst trace of the data set).

     -endtrace endtrace
          Enter the last output trace to be  generated  (Default:
          endtrace= the last t race of the data set).


Definition of mutes using apparent dips

     -pmin pmin
          Minimum apparent dip to be modeled in  the  inline  (x)
          direction, measured in ms/m
           or ms/ft for time volumes (in m/m or ft/ft  for  depth
          volumes). (Default: pmi n=0.)

     -pmax pmax
          Maximum apparent dip to be modeled in  the  inline  (x)
          direction, measured in ms/m
           or ms/ft for time volumes (in m/m or ft/ft  for  depth
          volumes). (Default: pma x=0.)

     -qmin qmin
          Minimum apparent dip to be modeled in the crossline (y)
          direction,  measured in m s/m or ms/ft for time volumes
          (in m/m or ft/ft for depth volumes). (Default: qmin=0.)

     -qmax qmax
          Maximum apparent dip to be modeled in the crossline (y)
          direction,  measured in m s/m or ms/ft for time volumes
          (in m/m or ft/ft for depth volumes). (Default: qmax=0.)

     -p1 p1
          Apparent dip in the inline (x) direction  (in  ms/m  or
          ms/ft  for  time  volumes;  in  m/m  or ft/ft for depth
          volumes) at which we begin the roll in of  the  Hamming
          wei ghts on ray parameter p. (Default, p1=pmin).

     -p2 p2
          Apparent dip in the inline (x) direction  (in  ms/m  or
          ms/ft for time volumes; in
           m/m or ft/ft for depth volumes) at which  we  end  the
          roll  in  of  the  Hamming  weig hts on ray parameter p
          (Default, p2=p1)

     -p3 p3
          Apparent dip in the inline (x) direction  (in  ms/m  or
          ms/ft for time volumes; in
           m/m or ft/ft for depth volumes) at which we begin  the
          roll  out  of  the  Hamming w eights on ray parameter p
          (Default, p3=p4)

     -p4 p4
          Apparent dip in the inline (x) direction  (in  ms/m  or
          ms/ft for time volumes; in
           m/m or ft/ft for depth volumes) at which  we  end  the
          roll  out  of  the  Hamming wei ghts.on ray parameter p
          (Default, p4=pmax)

     -q1 q1
          Apparent dip in the crossline (y) direction (in ms/m or
          ms/ft  for  time  volumes;  in  m/m  or ft/ft for depth
          volumes) at which we begin the roll in of  the  Hamming
          weights on ray parameter q. (Default, q1=qmin).

     -q2 q2
          Apparent dip in the crossline (y) direction   (in  ms/m
          or ms/ft for time volumes;
           in m/m or ft/ft for depth volumes) at which we end the
          roll  in  of  the  Hamming  w eights on ray parameter q
          (Default, q2=q1)

     -q3 q3
          Apparent dip in the crossline (y) direction   (in  ms/m
          or ms/ft for time volumes;
           in m/m or ft/ft for depth volumes) at which  we  begin
          the roll out of the Hammin g weights on ray parameter q
          (Default, q3=q4)

     -q4 q4
          Apparent dip in the crossline (y) direction   (in  ms/m
          or ms/ft for time volumes;
           in m/m or ft/ft for depth volumes) at which we end the
          roll  out  of  the  Hamming  weights.on ray parameter q
          (Default, q4=qmax)


Definition of mutes using true dip

     -smax smax
          Maximum true dip to be modeled   measured  in  ms/m  or
          ms/ft  for  time  volumes  (in  m /m or ft/ft for depth
          volumes). (Default: smax=0.)

     -s1 s1
          True dip  (in ms/m or ms/ft for time volumes; in m/m or
          ft/ft for depth volumes)
           at which we begin the roll in of the Hamming  Apparent
          dip  in  the  inline  (x)  dir  ection  filter weights.
          (Default, s1=0.).

     -s2 s2
          True dip  (in ms/m or ms/ft for time volumes; in m/m or
          ft/ft for depth volumes)
           at which we end the roll  in  of  the  Hamming  linear
          moveout filter weights. (Defa ult, s2=s1)

     -s3 s3
          True dip  (in ms/m or ms/ft for time volumes; in m/m or
          ft/ft for depth volumes)
           at which we begin the roll out of the  Hamming  linear
          moveout filter weights. (D efault, s3=s4)

     -s4 s4
          True dip (in ms/m or ms/ft for time volumes; in m/m  or
          ft/ft  for  depth volumes) at which we end the roll out
          of the Hamming linear  moveout  filter  weights.  (Defa
          ult, s4=smax)

     -a1 a1
          Azimuthal angle at which we begin the roll  in  of  the
          Hamming  azimuth  filter  weig  hts. If the -ilazim and
          -clazim options are properly defined, then a  n  output
          azimuth  of  0  degrees  corresponds to North, while an
          output azimuth of 9  0  degrees  corresponds  to  East.
          (Default: a1 = -181 degrees)

     -a2 a2
          Azimuthal angle at which we end the roll in of the Ham-
          ming azimuth filter weight s.  (Default: a2=a1).

     -a3 a3
          Azimuthal angle at which we begin the roll out  of  the
          Hamming azimuth filter wei ghts.  (Default: a3=a4).

     -a4 a4
          Azimuthal angle at which we end the  roll  out  of  the
          Hamming  azimuth  filter weigh ts.  (Default: a4 = +181
          degrees)


     -ilazim xazim
          Enter the in line azimuth (0 degrees  being  North,  90
          degrees being East), that is, the azimuth of increasing
          trace number. This  value  is  used  to  calibrate  the
          azimuthally  dependent dip filtering options  -a1, -a2,
          -a3, -a4. (Default, read value from seismic line header
          word 'AziIln')

     -clazim yazim
          Enter the cross line azimuth (0 degrees being North, 90
          degrees being East), that is, the azimuth of increasing
          line numbers. This  value  is  used  to  calibrate  the
          azimuthally  dependent dip filtering options  -a1, -a2,
          -a3, -a4. (Default, read value from  the  seismic  line
          header word 'AziXln')

     -reject
          If present, reject the least square modeled data  lying
          between    (p2,p3  )  and   (q2,q3)   or   (s2,s3)  and
          (a2,a3) by  subtracting  it  from  the  input  dataset.
          (Default:   pass   data  lieing  between   (p2,p3)  and
          (q2,q3)  or  (s2,s3) and  (a2,a3)


     -rho If present, use the less accurate rho filter convention
          @( tau ,p,q)@ transform
           instead of the discrete Radon transform. Here,  the  @
          rho @ filter is calculated as @ rho = 1 over M sum from
          {m=1} to M B sub mj @ , where @   B  under   @  is  the
          least  square  pseudo  inverse defined above. This pro-
          duces results which are significantly better  than  the
          classical  formula  of  @  rho  = omega over {2 pi } @,
          especially for small analysis windows.

     -V   Enter the command line argument '-V' to get  additional
          printout.

     -?   Enter the command line  argument  '-?'  to  get  online
          help.  The program terminates
           after the help screen is printed.



REFERENCES:

     Marfurt, K. J. and Cottle, D.  A.,  1994,  A  comparison  of
     coherency  weighted @( tau ,p)@ filtering techniques: Appli-
     cation to  poststack  and  common  offset  data:  Geoscience
     Research  Bulletin, F94-G-18.  Yilmaz, O., and Taner, M. T.,
     1994,  Discrete  plane  wave  decomposition  by  least-mean-
     square-error method: Geophysics, 59, 983-982.


BUGS

     No bugs known at present.


SEE ALSO

     radon3d(1)   radonf(1)   radonr(1)    rmmult(1)    splitr(1)
     vfilt3da(1) fft3da(1)


CONTRACT AGREEMENT

     This product is a 2nd Quarter, 1995, deliverable included in
     Research Agreement D95-2518 (Seismic Signal Analysis). Thank
     you for your support.


AUTHOR

     Kurt. J. Marfurt, EPTG (1995).


COPYRIGHT

     copyright 2001, Amoco Production Company
               All Rights Reserved
          an affiliate of BP America Inc.








Man(1) output converted with man2html