9

我有大约 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)
4

2 回答 2

0

我假设您想要开箱即用的解决方案。你有几个选择,虽然有些对我来说有点老套。

  1. 正如Graeler 等人所做的那样,将时间建模为第三维。2013 年使用pykrige 3D 克里金法。小心重新缩放您的时间变量以模仿您的 X、Y 坐标。
  2. 使用scikit Gstat的时空变异函数构建您的克里金系统。
  3. 为每个时间段独立求解您的克里金系统,这可能是您最糟糕的选择,因为它忽略了您的点的时间依赖性。

格雷勒等人。2013 在他们的论文中描述、比较和扩展了其中一些选项。

于 2021-11-05T10:40:31.960 回答
-1

参见 DE Myers、S. De Iaco 和 D. Posa 的论文

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

于 2020-10-29T22:39:23.057 回答