2017-07-18 93 views
1

瀏覽網頁我發現在Python中使用Kriging的一些工具是pyKrigingGaussian Process Regression。但是,我無法讓他們中的任何一個人工作。第一個,我不工作(甚至不能導入它):如何在Python中使用Kriging插入工作站數據?

import pyKriging

File "~/python3.6/site-packages/pyKriging/krige.py", line 142 
    except Exception, err: 
        ^
    SyntaxError: invalid syntax 

,第二個我不明白如何使用它。我找不到一個簡單的工作示例(例如 rroowwllaanndd answer很棒,但可惜的是數據不再可供下載)

所以我的問題是,我怎麼能插入我的數據使用克里格?我保存在像這樣numpy的陣列幾個站的數據:

2000  1   1   5.0 
2000  1   2   3.4 
2000  1   3   0.2 

和列是年 - 月 - 日 - 沉澱。我有幾個這樣的數據數組(st1,st2,st3),另一個數組包含每個站的ID和每個站所在的座標(stid,所以站1位於經度15.6865,緯度62.6420,以及等等)。

import numpy as np 
st1 = np.array([[2000,1,1,5.0],[2000,1,2,3.4],[2000,1,3,0.2]]) 
st2 = np.array([[2000,1,1,8.2],[2000,1,2,2.5],[2000,1,3,0.0]]) 
st3 = np.array([[2000,1,1,np.nan],[2000,1,2,4.5],[2000,1,3,1.2]]) 

stid = np.array([[1,15.6865,62.6420],[2,15.7325,62.1254],[3,16.1035,61.1449]]) 

我需要的是每天包含在網格與克里格插值像這樣每天所有站的數據陣列(或3D陣列):

y = np.arange(61,63,0.125) 
x = np.arange(14,17,0.125) 
X,Y = np.meshgrid(x,y) 

任何幫助讚賞。

回答

2

很高興知道找到有趣的文檔,軟件包等,克里格通常被稱爲「高斯過程迴歸」。

在python中,有很多例子的很好的實現是衆所周知的機器學習包之一scikit-learn。它基於衆所周知的DACE matlab實現。

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

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

import sklearn 
gp = sklearn.gaussian_process.GaussianProcessRegressor(kernel=your_chosen_kernel) 
gp.fit(X, y) 
相關問題