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( iziz + ihih )/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.