Source code for pyspedas.utilities.interpol

import numpy as np
from scipy import interpolate

[docs] def interpol( data, data_times, out_times, fill_value="extrapolate"): """ Interpolate data. Parameters ---------- data: list of float Data array. data_times: list of float Time array. out_times: list of float Time array to interpolate to fill_value: str, optional Default: "extrapolate" Returns ------- Interpolated data Examples -------- >>> import pyspedas >>> x1 = [0, 4, 8, 12] >>> time1 = [pyspedas.time_float("2020-01-01") + i for i in x1] >>> x2=[0, 2, 4, 6, 8, 10, 12] >>> y1=[10, 20, 30, 40] >>> time2 = [pyspedas.time_float("2020-01-01") + i for i in x2] >>> pyspedas.interpol(y1, time1, time2) """ if isinstance(data, list): data = np.array(data) if len(data.shape) == 2: out = np.empty((len(out_times), len(data[0, :]))) for data_idx in np.arange(len(data[0, :])): interpfunc = interpolate.interp1d(data_times, data[:, data_idx], kind='linear', bounds_error=False, fill_value=fill_value) out[:, data_idx] = interpfunc(out_times) return out else: interpfunc = interpolate.interp1d(data_times, data, kind='linear', bounds_error=False, fill_value=fill_value) return interpfunc(out_times)