NAME

     stolt  - do v(t) phase shift or constant velocity Stolt-type
     migration


SYNOPSIS

     stolt [ -Nntap ] [ -Ootap ] [ -Fvtap ] [ -nsnstr ] [ -nenetr
     ]  [  -rsnrst ] [ -renred ] [ -ottaper ] [ -dxdx ] [ -vv ] [
     -fhfmax ] [ -aalpha ] [ -P ] [ -nznz ] [ -dzdz ] [ -t0t0 ] [
     -padxpadx  ] [ -padtpadt ] [ -dipdip ] [ -izfizf ] [ -ordord
     ] [ -mdipmdip ] [ -aperaper ] [ -D ] [ -V ] [ -? ]


DESCRIPTION

     stolt is a straightforward  v(t)  phase  shift  or  constant
     velocity  migration  originally  due  to  Stolt.   It may be
     applied to post stack data or pre-stack records.   The  con-
     stant  velocity  algorithm  is really simple, based on a 2-d
     fft followed by interpolation in frequency to  get  Kz.   An
     inverse  2-d  fft then transforms to (t,x).  Needless to say
     all of the above is extremely fast but somewhat dirty.

     The phase shift algorithm is also quite simple and was  ori-
     ginally due to Gazdag.  The results from this option will be
     slower but cleaner than stolt.

     The migration velocity can be input in various  forms.   The
     stolt  case demands a constant velocity for each record that
     it migrates.  If you are migrating a stack the  whole  stack
     is  treated  as a single record so that a simple  -v  on the
     command line is adequate.  If you have  many  input  records
     [prestack  data  or  many  copies  of your stack in the case
     where you might be testing migration velocity] you may  sup-
     ply a flat file  -F  containing sequential record number and
     an associated velocity, one entry per line.   The  migration
     velocity  will  be  interpolated  between  control points as
     required.

     The phase shift option allows a v(t) input for each  records
     being migrated [again a stacked section is treated as a sin-
     gle record, this is a v(t) migration, not  a  v(x,t)  migra-
     tion]  supplied  as  a USP format velocity dataset [velocity
     tape].  If you are supplying a velocity dataset there may be
     as  many  velocity traces as there are sequential records in
     your input dataset.  If  you  input  a  stacked  section  [1
     record,  many traces or many single trace records] the phase
     shift option will treat this as a single record and only use
     the  first  velocity  trace  in the velocity dataset for the
     migration velocity function.  If  you  have  fewer  velocity
     traces  than you have input records [in the prestack case or
     if you are testing many functions on  a  dataset  containing
     many copies of your stacked section] the last velocity trace
     will be used as the migration  velocity  for  all  remaining
     records.
     The program takes the input number  of  traces/rec  and  the
     number  samples  and  bumps  these  values up to the nearest
     number corresponding to a power of 2.  It is these power  of
     2  values  that  govern the array sizes which may grow large
     enough to affect performance on the  sun.  Therefore  it  is
     wise  to  try  to  limit  the input values.  For example 520
     traces could easily by reduced to 510 making the next  power
     of 2 512 instead of 1024.

     stolt gets both its data and  its  parameters  from  command
     line  arguments.  These arguments specify the input, output,
     trace spacing, the migration velocity,  the  start  and  end
     traces, and verbose printout, if desired.

  Command line arguments
     -N ntap
          Enter the input data set name or file immediately after
          typing -N unless the input is from a pipe in which case
          the -N entry must be omitted.  This 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).

     -ns nstr
          Enter the start trace number.  The default is the first
          trace of the record.

     -ne netr
          Enter the end trace number. The  default  is  the  last
          trace of the record.

     -rs nrst
          Enter start record number.  Default value is the  first
          record.

     -re nred
          Enter end record number.  Default value is last record.

     -ot taper
          Enter the % linear taper to apply to each side  of  the
          input records.  Default = 5

     -dx dx
          Enter the input trace spacing in ft or m (no default).


     -v v Enter the global migration velocity  (ft  or  m/s)  (no
          default), or...

     -F vtap
          Enter the migration velocity V(t)  in  either  velocity
          seismic  data  format  or  as a flat file of sequential
          record and velocity pairs.  The velocity tape format is
          used  only  for  the phase shift option. There can be a
          single velocity trace or there may be a velocity  trace
          for  every input record (see velin to generate velocity
          tapes). If you run out of velocity  traces  before  the
          end  of  the  data the last trace will be repeated. The
          flat file input is used for both stolt  &  phase  shift
          options.  The  velocities will be linearly interpolated
          between record control points allowing a  record  vari-
          able constant velocity.

     -fh fmax
          Enter the maximum frequency to  use  in  the  migration
          (Hz).  Default = 1/2 Nyquist

     -a alpha
          Enter the migration factor (this is really a fudge fac-
          tor familiar to the old FRED program).  Default is 0.01

     -P   Enter the command line argument '-P' to get  the  phase
          shift code; otherwise the Stolt algoritm will be used.

     -nz nz
          Phase shift option: enter  optional  number  of  output
          samples (default is number of input samples).

     -dz dz
          Phase shift option: enter  optional  time/depth  sample
          interval (default = input).

     -t0 t0
          Phase shift option:  enter  optional  global  migration
          start  time.  This  will  be applied to all records and
          their associated velocity functions and is  useful  for
          stepping  quickly  through  a  deep  water column. If a
          negative time is entered then as each record is read in
          a  new  minimum mute time is automatically detected and
          the start time is set to this value. In this case  make
          sure you have smoothed the velocity function.

     -padx padx
          Phase shift option: enter optional number of traces  to
          pad each side of data set (default = 0)

     -padt padt
          Phase shift option: enter optional number of samples to
          pad bottom of each trace (default = 0)

     -dip dip
          Phase shift option: enter  dip  filter  option:   -dip1
          (constant  dip  filter); -dip2 (time/depth variable dip
          filter); -dip0 (default = no dip filter).

     -mdip mdip
          Phase shift option: for dip filter enter maximum dip in
          degrees (default = 80)

     -ord ord
          Phase shift option: for dip filter option 2  enter  the
          order of the filter (default = 5)

     -izf izf
          Phase shift option: for dip filter option 2  enter  the
          filter recalculation interval in samples (default = 32)

     -aper aper
          Phase shift option: for dip filter option 2  enter  the
          filter  aperture  in  ft or m (default = total width of
          input section, ntrc * dx)

     -D   Phase shift option: if present do depth migration, else
          do time migration (default)

     -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.


BUGS

     Using this post stack it is required that the portion of the
     stacked  section  one  is interested in be held in memory in
     its entirety.  It is therefore wise to editt this portion of
     the  original  stacked section as one record input to stolt.
     In practice on 16mb sparc stations about 1000 traces x  1000
     samples is the limit.


SEE ALSO

     gazdag, sammig


AUTHOR

     Code filched by P. R. Gutowski, TRC, from Claerbout's "Imag-
     ing the Earth's Interior", pp 70 - 72.


COPYRIGHT

     copyright 2001, Amoco Production Company
               All Rights Reserved

          an affiliate of BP America Inc.




















































Man(1) output converted with man2html