obspy.signal.interpolation.weighted_average_slopes
- weighted_average_slopes(data, old_start, old_dt, new_start, new_dt, new_npts, *args, **kwargs)[source]
Implements the weighted average slopes interpolation scheme proposed in [Wiggins1976] for evenly sampled data. The scheme guarantees that there will be no additional extrema after the interpolation in contrast to spline interpolation.
The slope \(s_i\) at each knot is given by a weighted average of the adjacent linear slopes \(m_i\) and \(m_{i+j}\):
\[s_i = (w_i m_i + w_{i+1} m_{i+1}) / (w_i + w_{i+1})\]where
\[\begin{split}w = 1 / max \left\{ \left\| m_i \\right\|, \epsilon \\right\}\end{split}\]The value at each data point and the slope are then plugged into a piecewise continuous cubic polynomial used to evaluate the interpolated sample points.
- Parameters
data (array_like) – Array to interpolate.
old_start (float) – The start of the array as a number.
old_dt – The time delta of the current array.
new_start (float) – The start of the interpolated array. Must be greater or equal to the current start of the array.
new_dt (float) – The desired new time delta.
new_npts (int) – The new number of samples.