使用scipy sqlrep进行定期插值

时间:2018-06-20 09:56:12

标签: python scipy interpolation

我无法让scipy.interpolate.splrep使用定期数据点... 我想我没有正确处理'per'参数。到目前为止,我使用此代码:

from scipy.interpolate import splrep
import numpy as np
x = np.concatenate((np.linspace(-180, 180, 720),np.linspace(180, -180, 720)))
y = np.concatenate((np.linspace(-180, 180, 720),np.linspace(-180, 180, 720)))
spl = splrep(x, y, per=True)

但是它不起作用,请引发“输入数据错误”

1 个答案:

答案 0 :(得分:2)

the documentation所述,数据点xy需要定义一条曲线y = f(x)。这意味着:对于x中的每个点,在y中必须恰好一个点。

例如sin(x)的以下数据: Plot of sin(x) with x in [0,7] with an interpolated spline and a periodic interpolated spline.

x中的每个点在y中都只有一个点,并且1d样条拟合效果很好。

现在比较一下您建议的数据: Plot of the proposed data, not representating a function.

x中的每个点出现两次,甚至更糟的是,在y中出现两个不同的值。因此,此数据无效。