【问题标题】:How to interpolate 5D data using scipy Nearest ND interpolator如何使用 scipy Nearest ND 插值器插值 5D 数据
【发布时间】:2023-04-03 13:30:01
【问题描述】:

我有一组数据,每个点都有 5 个参数([纬度、​​经度、时间、风速、方位])。我想插入这些数据。

我已经根据我从文档中读到的内容实现了 scipy 最近的 ND 插值器,但是所提供数据点之外的点的数据似乎不正确。

实施

interp = scipy.interpolate.NearestNDInterpolator(Windspeed_Data_Array[:, 0:3], Windspeed_Data_Array[:, 3:5])

其中“Windspeed_Data_Array[:,0:3]”是[纬度、经度、时间],“Windpseed_Data_Array[:,3:5]”是[风速、方位]。

例如,当我将测试坐标设置为 [-37.7276, 144.9066, 1483180200]
原始数据如下所示

|latitude|longitude|time      |windspeed|bearing|
|-37.7276|144.9066 |1483174800|16.6     |193    |
|-37.7276|144.9066 |1483185600|14.8     |184    |

我认为测试坐标的输出应该在显示的两个数据点之间,但是当我运行代码时:

test = interp(test_coords)

输出是 Windspeed = 16.6,bearing = 193,这似乎是错误的

【问题讨论】:

  • 告诉我原始数据是否损坏,表格在预览中显示正常。
  • 将表格格式化为代码,这样会更好看。
  • 听起来好像您应该分别插入风速和方位,作为纬度、经度和时间的函数。所以两个独立的插值,每个都有 3D 输入。
  • @9769953 我假设这只有在风向和风速是独立的情况下才有可能,在这种情况下我不认为它们是
  • 如果它们是依赖的,如果您尝试插入另一个,它们中的任何一个都应该是输入 (x) 值的一部分。请注意,NearestNDInterpolator 显示 y 是一个 1 维的 ndarray,而您正在给它一个二维输入。

标签: python scipy interpolation


【解决方案1】:

这就是所选插值的本质。

最近插值插值会将在最近样本中找到的值分配给因变量

这是来自NearestNEInterpolator documentation的示例

如果您想获得多个近邻的加权平均值,我建议您查看LinearNDInterpolator

注意:不要被“最近”这个词所诱惑,呵呵

【讨论】:

    猜你喜欢
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 2021-09-09
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多