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.
Returns:

The NMO corrected gather.

Return type:

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.
Returns:

The reflection travel-time.

Return type:

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.
Returns:

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.

Return type:

amplitude (float or None)