Python插值时间

Python插值时间,python,interpolation,Python,Interpolation,python新手,所以我希望我的提问是正确的 我有一组庞大的数据,我希望每一秒钟插入一次,并用提供的适当纬度和经度填补空白: Lat Long Time -87.10 30.42 16:38:49 . . . -87.09 30.40 16:39:22 .

python新手,所以我希望我的提问是正确的

我有一组庞大的数据,我希望每一秒钟插入一次,并用提供的适当纬度和经度填补空白:

  Lat     Long    Time
-87.10   30.42    16:38:49
                      .
                      .
                      .
-87.09   30.40    16:39:22
                      .
                      .
                      .
-87.08   30.40    16:39:30
所以我想每秒生成一个新的纬度和经度


我已经绘制了相应的纬度和经度,并希望用插值数据尽可能地用点来填补空白。

如果线性插值对您来说足够好,您可以将
numpy.interp
函数与要用于插值的时间数组以及从输入文件读取的时间和经度/纬度数据点一起使用(时间必须增加,因此您可能需要对数据进行排序)

要读取文件的数据,可以使用
numpy.loadtxt
函数添加转换器将时间转换为递增的数字:

import numpy as np
from matplotlib.dates import strpdate2num

lon, lat, time = np.loadtxt('data.txt', skiprows=1,
        converters={2:strpdate2num('%H:%M:%S')}, unpack=True)
然后可以使用interp函数插值经度和纬度值。linspace函数的最后一个参数给出了时间插值数据中的点数

interp_time = np.linspace(time[0], time[-1], 100)
interp_lon = np.interp(interp_time, time, lon)
interp_lat = np.interp(interp_time, time, lat)

对于比线性插值更复杂的内容,在
scipy.interpolation

中有几个工具,您具体遇到了哪些问题?找出丢失的时间戳?在两点之间插值?等等?是否有办法在两者之间生成缺失的时间?所以在16:38:49和16:39:22之间应该还有34点。然后插值每一点的纵横比。谢谢米格尔,我来看看这个例子,看看我能不能算出它。我现在有时间作为第三列,我需要有一个单独的CSV文件吗?此外,我的数据(lat/Long)没有任何升序或降序,它们是从飞行路径绘制的曲线图,它们在返回轨道时会超过一圈。这会是一个大问题吗?将所有数据放在同一个文件中应该没问题。我将在答案中添加一个示例。我有点困惑:lon,lat,time=np.loadtxt('data.txt',converters={2:strpdate2num('%H:%m:%S')},unpack=True您正在将lon,lat,time=设置为该语句?它将数据从data.txt读取到对应于每列的三个数组。转换器函数将时间转换为一个数字。我收到一个索引器:列表分配索引超出范围x,y,time=np.loadtxt('12cch01_new.csv',转换器={2:strpdate2num('%H:%M:%S')},unpack=True)timeinterp=np.linspace(time[0],time[-1],100)xinterp=np.interp(timeinterp,time,x)yinterp=np.interp(timeinterp,time,y)