【发布时间】: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