Next we create a ``CDP stack'' of our the Gulf of Mexico data set. Recall the moved out common-midpoint (CMP) gather Figure . At each midpoint there is one of these CMP gathers. Each gather is summed over its offset axis. Figure 6 shows the result of stacking over offset, at each midpoint. The result is an image of a cross section of the earth.
In Figure 6 the early signals are too weak to see. This results from the small number of traces at early times because of the mute function. (Notice missing information at wide offset and early time on Figure .) To make the stack properly, we should divide by the number of nonzero traces. The fact that the mute function is tapered rather than cut off abruptly complicates the decision of what is a nonzero trace. In general we might like to apply a weighting function of offset. How then should the stack be weighted with time to preserve something like the proper signal strength? A solution is to make constant synthetic data (zero frequency). Stacking this synthetic data gives a weight that can be used as a divisor when stacking field data. I prepared code for such weighted stacking, but it cluttered the NMO and stack program and required two additional new subroutines, so I chose to leave the clutter in the electronic book and not to display it here. Instead, I chose to solve the signal strength problem by an old standby method, Automatic Gain Control (AGC). A divisor for the data is found by smoothing the absolute values of the data over a moving window. To make Figure 7 I made the divisor by smoothing in triangle shaped windows about a half second long. To do this, I used subroutine triangle() .