next up previous print clean
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$\ast$iz + ih$\ast$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 up previous print clean
Next: Migration defined Up: FAMILIAR OPERATORS Previous: Convolution end effects
Stanford Exploration Project
10/21/1998