     Next: Migration defined Up: FAMILIAR OPERATORS Previous: Convolution end effects

## Kirchhoff modeling and migration

Components of a vector can be summed into a scalar. The adjoint is taking the scalar and distributing it out to a vector (also called ``scattering" or ``spraying"). Alternately, values to be summed can come from a trajectory in a plane, such as a hyperbolic trajectory.

When reflectors in the earth are dipping, or broken into point scatterers, time-to-depth conversion is not simply a stretching of the time axis. Modeling is done in a variety of ways, one of which is to model each point in the depth (x,z)-plane by a hyperbola in the data (x,t)-plane. The adjoint operation consumes much computer power in the petroleum-prospecting industry and is called ``migration." Many migration methods exist, most of which are taken up in IEI, but that book does not describe the adjoint property I discuss below.

Hyperbola superposition is the adjoint to hyperbola recognition by summing along hyperbolas. The summing is called ``Kirchhoff migration'' or ``imaging,'' and the spraying is called ``Kirchhoff modeling." The name comes from Kirchhoff's diffraction integral.

In the pseudocode below, the parameter ih refers to the separation of a point on a hyperbola from its top at ix. Ignoring ``if index off data'' tests, I show Kirchhoff modeling and migration in the pseudocode following:

```
do iz = 1,nz
do ix = 1,nx
do ih = -25, 25
it = sqrt( iz iz + ih ih )/velocity
ig = ix + ih
if not adjoint
zz(iz,ix) = zz(iz,ix) + tt(it,ig)  # imaging
if adjoint
tt(it,ig) = tt(it,ig) + zz(iz,ix)  # modeling
```

We can speed up the program by moving the ix loop to the inside of the square root and interpolation overheads.     Next: Migration defined Up: FAMILIAR OPERATORS Previous: Convolution end effects
Stanford Exploration Project
10/21/1998