Step-by-step NMO correction
• Leonardo Uieda
Leonardo Uieda

Corresponding Author:leouieda@gmail.com

Author Profile

## Abstract

Corresponding author: leouieda@gmail.com

This is a part of The Leading Edge “Geophysical Tutorials” series. You can read more about it in \citet{Hall_2016a}.

Open any textbook about seismic data processing and you will inevitably find a section about the normal moveout (NMO) correction. There you’ll see that we can correct the measured travel-time of a reflected wave $$t$$ at a given offset $$x$$ to obtain the travel-time at normal incidence $$t_{0}$$ by applying the following equation

$$\label{eq:traveltime} \label{eq:traveltime}t_{0}^{2}=t^{2}-\dfrac{x^{2}}{v_{\mathrm{NMO}}^{2}}\\$$

in which $$v_{\mathrm{NMO}}$$ is the NMO velocity. There are variants of this equation with different degrees of accuracy, but we’ll use this one for simplicity.

When applied to a common midpoint (CMP) section, the equation above is supposed to turn the hyperbola associated with a reflection into a straight horizontal line. What most textbooks won’t tell you is how, exactly, do you apply this equation to the data?

Read on and I’ll explain step-by-step how the algorithm for NMO correction from \citet{Yilmaz_2001} works and how to implement it in Python. The accompanying Jupyter notebook \citep{Perez_2007} contains the full source code, with documentation and tests for each function. You can download the notebook at github.com/seg or github.com/pinga-lab/nmo-tutorial.