2017-06-23 115 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