# bruges.transform.nmo module¶

Normal moveout.

© 2017 Leo Uieda, licensed BSD 3-clause license. https://github.com/seg/tutorials-2017/tree/master/1702_Step_by_step_NMO

bruges.transform.nmo.nmo_correction(cmp, dt, offsets, velocities)[source]

Performs NMO correction on the given CMP.

The units must be consistent. E.g., if dt is seconds and offsets is meters, velocities must be m/s.

Parameters: cmp (ndarray) – The 2D array CMP gather that we want to correct. dt (float) – The sampling interval. offsets (ndarray) – A 1D array with the offset of each trace in the CMP. velocities (ndarray) – A 1D array with the NMO velocity for each time. Should have the same number of elements as the CMP has samples. The NMO corrected gather. ndrray
bruges.transform.nmo.reflection_time(t0, x, vnmo)[source]

Calculate the travel-time of a reflected wave. Doesn’t consider refractions or changes in velocity.

The units must be consistent. E.g., if t0 is seconds and x is metres, vnmo must be m/s.

Parameters: t0 (float) – The 0-offset (normal incidence) travel-time. x (float) – The offset of the receiver. vnmo (float) – The NMO velocity. The reflection travel-time. t (float)
bruges.transform.nmo.sample_trace(trace, time, dt)[source]

Sample an amplitude at a given time using interpolation.

Parameters: trace (1D array) – Array containing the amplitudes of a single trace. time (float) – The time at which I want to sample the amplitude. dt (float) – The sampling interval. The interpolated amplitude. Will be None if time is beyond the end of the trace or if there are fewer than two points between time and the end. amplitude (float or None)