Migration and diffraction operators can be conceived and programmed in two different ways. Let denote data and denote the depth image. We have
Given a nonzero-offset section, we seek to convert it to a zero-offset section. Rocca's concept is to first migrate the constant offset data with an ellipsoid push operator and then take each point on the ellipsoid and diffract it out to a zero-offset hyperbola with a push operator .The product of push operators is known as Rocca's smile. This smile operator includes both normal moveout and dip moveout. (We could say that dip moveout is defined by Rocca's smile after restoring the normal moveout.)
Because of the approximation ,we have four different ways to express the Rocca smile:
The operator ,having two pull operators should have smoothest output. Sergey Fomel suggests an interesting illustration of it: Its adjoint is two push operators, . takes us from zero offset to nonzero offset first by pushing a data point to a semicircle and then by pushing points on the semicircle to flat-topped hyperbolas. As before, to make the hyperbolas more distinct, I broke the circle into dots along the circle and show the result in Figure 20. The whole truth is a little more complicated. Subroutine flathyp() implements and .Since I had no subroutine for ,figures 18 and 20 were actually made with only and .
Figure 20 The adjoint of Rocca's smile is a superposition of flattened hyperbolas, each with its top on a circle.
We discuss the representation of in the next section.