2017-07-31 23 views
1

はI座標のNP配列を有する -Pythonの3D coordianteポイントクラウド補間

Data[:,0] = x[:] 
Data[:,1] = y[:] 
Data[:,2] = 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] 

私がいる:

はどのようにしてによって定義されたXとYグリッド上で補間されたZ値を与えるいくつかの補間関数(理想的にクリギング)への入力データとしてこれを使用しに行きますか2D補間(入力配列が2Dで空間的に3D点を記述している点で2D)は、mgridを使っています。結果のデータをグリッドに表示する必要はありません。元の入力形式で、基本的にポイントクラウド入力とポイントクラウド出力が必要です。

答えて

1

多くの例を持つクリギング/ガウスプロセス回帰の優れた実装は、よく知られた機械学習パッケージ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) 
:あなたは自分の好みのカーネルで簡単なモデルに合うように、以下を行う必要がありますが、提供されたデータで