【问题标题】:Spatio-temporal kriging in python using sklearn?使用sklearn在python中的时空克里金?
【发布时间】:2018-10-27 11:27:28
【问题描述】:

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

【问题讨论】:

  • 你解决了这个问题吗?

标签: python scikit-learn gaussian kriging


【解决方案1】:

参见 D.E. 的论文迈尔斯、S. De Iaco 和 D. Posa

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-24
      • 2020-11-15
      • 2012-06-16
      • 2016-12-08
      • 2020-04-07
      • 2014-05-02
      • 2020-09-01
      • 2020-10-19
      • 2018-11-02
      相关资源
      最近更新 更多