Go to the list of seismic processes.      Go to SIOSEIS introduction.
                              PROCESS FDMIGR

Document Date:  23 April 2001

                   Finite-difference Migration using the
                            45-degree algorithm

The finite-difference migration technique is an effective way to handle
many types of migration problems.  It was developed and made popular by
J. F. Claerbout at Stanford University.  For most stack sections, finite-
difference migration gives results comparable to other schemes; however
there are assumptions and stability limitations which must be considered.
For certain conditions, frequency domain (process FKMIGR) migration is
more effective in resolving typical imaging and positioning problems.


Steep Dips

It is possible to add more terms to the finite-difference equation to 
obtain successively more accurate equations to deal with the steep dip
problem.  However, these schemes quickly become impractical to implement
due to their cost.  Further limitations on dip angle are imposed since
the finite-difference method itself introduces errors.  The equation 
used in FDMIGR is known as the 45-degree equation, and is capable of 
handling dips up to angles of 45 degrees with sufficient accuracy. 

A certain confusion exists regarding the meaning the meaning of the dips
referred to in the 45 degree equation. This is not simply the dip of 
continuous reflectors.  These are the dips included in all events of 
interest as seen in the F-K domain.  A sharp fault, for example, 
contains dips up to 90 degrees, and the 45 degree algorithm will only
properly migrate certain components, with increasing distortion at 
higher dips.  The parameters in the algorithm are set to suppress those
dips which are poorly imaged.


Within the finite-difference equation there is no term to describe 
differences in velocity. Hence, a major assumption of the scheme is that
velocity is constant throughout the section.  In practice, it is 
sufficient for the velocity to vary slowly enough that it looks roughly
constant within the effective "aperture" of the algorithm.  This 
aperture can be thought of as a box whose time length equals one 
Tau-step size and whose spatial length equals the effective width of a 
point diffraction pattern.

Boundary Effects

Ideally, we would like to perform migration on all of space.  But in the
real situation, we can only migrate a finite section of the earth, so we
must consider the effects of the imposed boundaries.  The main 
consideration is for the sides of the section, where we normally think
of the earth as simply ceasing to exist, and the events stopping.  This
view induces the mathematical equivalent of a vertical reflection 
coefficient, and events which are migrated towards it will be partly 
reflected back into the section.  In order to suppress, or at least 
attenuate these undesirable events, a buffer zone, or pad, consisting of
a number of traces, is inserted at both sides of the section.  The traces
are set to zero before migration, and the velocity is the same as the
attached traces in the section.  Studying the padded traces after 
migration can sometimes yield valuable information about events close to
the edge of the section, especially if other data in the area is 

Comparison with FKMIGR

a)   Run Time
          One of the most practical considerations when deciding which
migration scheme to use is the difference in cost.  Depending on the 
values of certain parameters used, FDMIGR can run 3 to 4 times as long
as FKMIGR.  Clearly, if there is no advantage in data quality to be
obtained, FDMIGR should not be used.
          FDMIGR must migrate from time zero, so it replaces the deep
water delay with sufficient zeroes.  The inserted zeroes are removed
after migration so that the output traces will have the same delay as
the input traces.  Deep water delays do not affect the FDMIGR run time.

b)   Steep Dips
          Use of FDMIGR will produce inaccuracies if events are dipping
by more than 45 degrees.  FKMIGR, the frequency domain approach, 
migrates all dips with equal accuracy.

c)   Velocity
          In general, FDMIGR will perform better in the presence of 
velocity variations, although both methods assume that velocity is 
slowly varying.

d)   Stability
          While FKMIGR is very stable in almost all conditions, FDMIGR
uses parameters which, if mis-used, can cause the migration equation to
become unstable. It is also possible to set values for particular data
sets in order to control noise on the output section, but you should
have a good understanding of finite-difference migration first. In
general, the default values will produce stable  results.

e)   Noise Suppression 
          All migration algorithms tend to suppress random noise and
enhance coherent events.  The result is that the output section will 
look more "mixed" than the input.  The effect will be more prominent as
the accuracy of the algorithm increases.  For this reason, FKMIGR FKMIGR
will generally look more mixed than FDMIGR, which will, in turn, look
more mixed than a 15 degree algorithm.

Some Important Parameters

The parameter Rho is inserted into the expression for the discretization
of the time derivative. This serves to counteract any potential growing
waves from the expression for migration, as an explicit damping with
time. It can be thought of as a "numerical  viscosity".  A value of Rho
less than 1 reinforces stability.  However, any deviation of Rho away
from 1, by at most 1 percent, results in some loss of signal as well as

In the discretization of depth, the parameter Theta is introduced, with
the most natural value being .500.  If Theta = 0 is used, there is a 
tendency to overshoot on variations, whereas Theta = 1 will produce an 
overdamping of change.

To discretize the horizontal distance component, an approximation to the
second derivative is found by an iterative method.  When the iteration
is truncated, the parameter Gamma is introduced, which is allowed to
vary between .08 and .17, based primarily on the look of migrated 
sections.  If Gamma is allowed to increase too much more, spurious noise

In the ideal case, Tau would equal the sample rate of the data, meaning
that the entire section would be migrated exactly one sample rate step
at each pass through the section. While this scheme  reduces the errors,
it is impractical due to the huge run-time  needed. In practice, Tau 
should be chosen in the range of 20 to 200 ms. (.02 to .2 secs), with
the smaller Tau values producing greater accuracy.  It is possible to 
vary Tau vertically, and this should be done in order to save run-time.
Generally, the value of Tau should decrease from shallow to deep data
times. This is because greater accuracy is needed in the migration of
the deeper events where the greatest movement is taking place.

More detailed explanation of the origin of these parameters, and some
results of allowing them to vary, may be found in the paper published by
H. Brysk (Geophysics: May 1983).


DX     - Trace separation distance.  This is the distance between 
         reflection points.  DX is a constant for the entire seismic 
         line.  DX should the the same as DBRPS used in process GEOM.
         REQUIRED.  range 1.0 to 500.0 e.g.  dx 25

FNO    - The first shot/rp number the parameter list applies to.
         Preset = the first shot/rp received.    e.g.   FNO 101

LNO    - The last shot/rp number the parameter list applies to.
         Preset = the last shot/rp received.     e.g.   LNO 101

VTP    - The rms velocity to use in migration.  The rms velocity 
         function is the same as the velocity function used to moveout
         the data.  Given as velocity-time pairs.  Velocities not
         specified are calculated through interpolation and "straight-
         lining" from the ends.  Times must be given in seconds.
         Preset = none    velocity range 350 to 32000

BPAD   - The number of zero amplitude traces to insert prior to the
         first trace.
         Preset = 1   range 1 to 500   e.g. bpad 10

EPAD   - The number of zero amplitude traces to append after the last
         Preset = 1   range 1 to 500   e.g. epad 10

OPAD   - A switch indicating that the pad traces (both bpad and epad)
         should be output in addition to the migrated input.
         Preset = no   range yes/no    e.g.   opad yes

NRHO   - A parameter used to control the Tau step interpolation.
         Preset = 2.0   range 0. to 10000  

FCRHO  - A parameter used to control the Tau step interpolation.
         Preset = .99   range .0001 to 1.

RHO    - A "hidden" migration parameter discussed above.
         Preset = .9990   range  0 to .9999  

THETA  - A "hidden" migration parameter discussed above.
         Preset = .501  range  0 to 1.0

GAMMA  - A "hidden" migration parameter discussed above.
         Preset = .125   range  .08 to .17

TSTEPS - A set of time-delta-tau pairs governing the tau step size 
         (delta-tau) in the time interval terminating with the time
         given.  Up to seven (time, delta-tau) pairs may be given.  The
         delta-tau values will be interpolated between the specified
         times and will be "straight-lined" at the trace ends.  The
         units of time and delta-tau are seconds.
         Preset = REQUIRED   e.g. tsteps .1 .1 1.0 .2

NX     - The total number of traces, including pads, to migrate.  The
         entire seismic line must be transformed from TX (time-space)
         to XT (space-time).  FDMIGR requires much extra disk I/O if the
         entire seismic line (nx*maxsam) is larger than the computer 
         memory allocated for the transformation (the Cray does not have
         a virtual memory).  NX does not need to be a power of 2.
         Preset = 4096  e.g.   nx 500

MAXSAM - The maximum number of samples per trace, including the deep
         water delay, to migrate.  A trace exceeding MAXSAM will be 
         Preset = the number of samples plus delay of the first trace.

PATH   - The pathname (filename) of a scratch file FDMIGR should use
         for the intermediate transposed data.  The purpose of this
         parameter is to allow the user to specify the exact disk
         partition to use in case the "current" partition does not have
         enough space.
         Preset = a scratch file in the current directory 
               e.g. path /user/scratch/moreroom

Copyright (C) by The Regents of The University of California, 1988
Written by Paul Henkart, Scripps Institution of Oceanography, La Jolla, Ca.
and by Veritas Seismic Processors, Ltd., Calgary, Alberta.