2017-07-18 91 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) 
相关问题