使用sklearn在python中进行时空克里金法?

时间:2018-05-17 08:56:33

标签: scikit-learn gaussian kriging

我有大约6个气象站的天气数据。对于所有这些车站,我有经度和纬度可用,以及日期时间(从2016年初开始每10分钟左右)。我想使用克里金插值方法来填补其他长/纬度位置(这些站之间)的缺失值。

我知道scikit-learn有' GaussianProcessRegressor'可用于克里金法。但是,我不明白如何在拟合过程中包含时间维度。这甚至是可能的还是我应该为每个日期时间安装一个单独的模型?

X必须是一系列特征,在我的例子中是纬度和经度(我认为)。 X现在是每个站的6个纬度/长对(例如[52.1093,5.181])的列表。我用了一个日期来测试GPR。 y是长度为6的列表,其中包含该特定时间段的露点。

现在问题是我实际上想要为所有日期时间做克里金法。如何合并这些日期时间?我应该将日期时间作为X阵列中的要素添加(例如[52.1093,5.181,2017,1,2,10,50])?这看起来很奇怪。但是,我找不到任何其他方法来模拟时间因素。

我的代码用于拟合GaussianProcessRegressor:

one_date = meteo_df[meteo_df['datetime'] == 
datetime].drop_duplicates(subset=['long', 'lat'], keep='last')

long = one_date['long']
lat = one_date['lat']
x = [[la,lo] for la, lo in zip(lat, long)]
y = list(one_date['dew_point']) 

GPR = GaussianProcessRegressor(n_restarts_optimizer=10)
GPR.fit(x, y)

1 个答案:

答案 0 :(得分:0)

请参阅D.E.的论文迈尔斯,S。De Iaco和D. Posa

您需要欧几里得坐标,例如使用UTM而不是经/纬度