2017-06-23 76 views
2

我想,以适应样条曲面一些2D数据使用SciPy的插值Python的SciPy的插值警告消息

from scipy import interpolate 

使用

# fit spline to surface 
xnew, ynew = np.mgrid[x[0]:x[-1]:100j, y[0]:y[-1]:100j] 
tck = interpolate.bisplrep(X, Z, array) 
znew = interpolate.bisplev(xnew[:,0], ynew[0,:], tck) 

但我发现了以下警告消息:

C:\ Users ... \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ scipy \ interpolate_fitpack_impl.py:975: RuntimeWarni ng:找到fp = s的平滑样条时,理论上不可能的结果。可能的原因:s太小或太差 所选eps。 (abs(fp-s)/ s> 0.001) kx,ky = 3,3 nx,ny = 16,18 m = 610 fp = 18417275715.663498 s = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess)) C:\ Users ... \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ scipy \ interpolate_fitpack_impl.py:975: RuntimeWarning:所需存储空间超过可用的存储空间 。可能的原因:nxest或nyest太小或s太 小。 (fp> s) kx,ky = 3,3 nx,ny = 20,20 m = 610 fp = 661.198585 s = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess)) C:\用户... \ AppData \ Local \ Continuum \ Anaconda3 \ lib \ site-packages \ scipy \ interpolate_fitpack_impl.py:975: RuntimeWarning:所需的存储空间超过了可用的 存储空间。可能的原因:nxest或nyest太小或s太 小。 (FP> S) KX,KY = 3,3的nx,ny的= 20,20 M = 610 FP = 1013.605606 S = 575.071502 warnings.warn(RuntimeWarning(_iermess2 [ierm] [0] + _mess))

而不是让类似我的数据的东西: sample data

我得到这个:spline output

我承认我不知道是什么的警告信息的意思,并没有发现在互联网上的东西。

回答

0

好像你的输入数据包含的数据点太少?另一个问题可能是您的xy轴具有非常不同的数量级。我不知道这是否是bisplrep的问题,但是其他插值算法不喜欢。

我在scipy.interpolate.Rbf上获得了更多的成功,这也给出了非常顺利的结果。

+0

谢谢,我会尝试 – jlt199