this is for holding javascript data

Step-by-step NMO correction

## 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

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

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.