1.5D internal multiple prediction in the wavenumber-time domain with implementation in Python

Matthew Eaid and Kris Innanen


Most seismic interpretation and processing algorithms treat primaries as signal and multiples as noise. Multiple reflections are separated into two major categories. Multiples which have at least one down going reflection at the earth’s surface are called surface related internal multiples. Multiple reflections where all downward reflections are contained to the subsurface are referred to as internal multiples. While the prediction and subsequent removal of surface related internal multiples is a fairly well understood problem, the prediction of internal multiples is not. Historically internal multiples have been predicted by exploiting assumptions about the multiples that the primaries do not obey. However, when these assumptions are not met by the internal multiples the prediction algorithms fail to properly predict the internal multiples. Weglein et al., (1997) proposed a fully data driven, wave equation method of predicting internal multiples based on the inverse scattering series. The algorithm derived by Weglein et. al, performs the prediction in the frequency-wavenumber domain, and then converts the prediction back to the offsettime domain. In recent years The CREWES project has adapted the original algorithm into many different domains in order to investigate the optimal domain in which to predict internal multiples; one such domain is the wavenumber time domain. We will present the wavenumber-time algorithm, provide pseudocode examples of how to implement it in the Python programming language, and will show a synthetic prediction example.

View full article as PDF (1.04 Mb)