我无法弄清楚
python是否是插入我拥有的数据集的最佳选择
**lat lon time**
x1 y1 3:02(t1)
x2 y2 3:05(t2)
x3 y3 3:10(t3)
x4 y4 3:13(t4)
我留下空间来强调我正在寻找的东西.我希望以1秒的间隔填补缺失的时间.所以我认为我需要做的是t4-t1以获得11个相等的空格,将时间转换为秒以使计算更容易.然后图表看起来像这样:
**lat lon time**
x1 y1 3:02(t1)
a b 3:03
c d 3:04
x2 y2 3:05(t2)
3:06
3:07
3:08
3:09
x3 y3 3:10(t3)
3:11
3:12
x4 y4 3:13(t4)
在此之后,我正在寻找我新创建的每一秒的纬度和经度.所以在x2,y2和x1之间,y1我想找到a,b,c,d的值,它们将是一个插值的lat和lon.
有没有办法做到这一点,每组之间没有一致的值?
最佳答案 python的numpy库有一个内置插值的函数.请注意,在此示例中,我使用的是整数.您应该将时间转换为数字数组(例如秒)以使
numpy.interp工作.
import numpy as np
times = [2, 5, 10, 13]
lat = [1.5, 2, 4, 7]
lon = [3, 2, 1, -2]
t = np.arange(2, 14)
latint = np.interp(t, times, lat)
lonint = np.interp(t, times, lon)
for pos in zip(latint, lonint, t):
print(pos)
应打印:
(1.5, 3.0, 2)
(1.6666666666666667, 2.6666666666666665, 3)
(1.8333333333333333, 2.3333333333333335, 4)
(2.0, 2.0, 5)
(2.3999999999999999, 1.8, 6)
(2.7999999999999998, 1.6000000000000001, 7)
(3.2000000000000002, 1.3999999999999999, 8)
(3.6000000000000001, 1.2, 9)
(4.0, 1.0, 10)
(5.0, 0.0, 11)
(6.0, -1.0, 12)
(7.0, -2.0, 13)