2017-07-31 111 views
1

我有座標的NP陣列 -蟒3D coordiante點雲內插

Data[:,0] = x[:] 
Data[:,1] = y[:] 
Data[:,2] = z[:] 

這表示缺少數據的區域的點雲。

你怎麼會去使用這個作爲數據輸入到一些插補功能(理想克里格),這將給在X和Y網格內插Z值的定義爲:

xmax = np.max(data[:, 0]) 
ymax = np.max(data[:, 1]) 
xmin = np.min(data[:, 0]) 
ymin = np.min(data[:, 1]) 
xnew = np.linspace(xmin,xmax,35) 
ynew = np.linspace(ymin,ymax,35) 
x = np.zeros(1225) 
y = np.zeros(1225) 

for i in range (0,35): 
    for j in range(0,35): 
     x[i*35+j] = xnew[i] 
     y[i*35+j] = ynew[j] 

我有因爲我所能找到的所有討論二維插值(二維,因爲他們的輸入數組是二維,描述空間中的三維點)使用mgrid。我不想在網格中產生的數據,我希望它在原始輸入格式,基本上是點雲輸入和點雲輸出

回答

1

在python中,很多例子的克里金/高斯過程迴歸的一個很好的實現是着名的機器學習軟件包scikit-learn。它基於衆所周知的DACE matlab實現。

有關高斯過程迴歸實現的文檔可以在此page及其中的鏈接中找到。您可以在page的底部找到5個教程。可用的內核列表可以在here找到。

根據您提供的數據,你就必須做到以下幾點,以適應一個簡單的模型與您所選擇的內核:

import sklearn 
gp = sklearn.gaussian_process.GaussianProcessRegressor(kernel=RBF(10, (1e-2, 1e2))) 
gp.fit(Data[:,0:1], Data[:,2]) 

y_pred = gp.predict(the_grid_data_on_which _you_need_to_predict)