我试图提取数据帧中的时间戳数据,并找出时间间隔之间的时间差(以秒为单位)。利用这个时差,我想计算某个物体的速度(速度=距离/时间)。
然而,我在这个时差计算中得到了很多错误,我不能直接考虑Delta值。有人能帮我找出实现中的错误或遗漏吗?
谢谢!你知道吗
import gpxpy
import datetime
import pandas as pd
with open('test3.gpx') as fh:
gpx_file = gpxpy.parse(fh)
segment = gpx_file.tracks[0].segments[0]
coords = pd.DataFrame([
{ 'time': p.time} for p in segment.points])
dist1 = 1
coords['timestamp'] = [datetime.datetime.time(d) for d in coords['time']]
timedelta = [datetime.datetime.combine(datetime.date.today(), coords.timestamp[i + 1]) - datetime.datetime.combine(datetime.date.today(), coords.timestamp[i]) for i in range(len(coords.time)-1)]
speed = dist1/timedelta
供参考的GPX文件: https://github.com/stevenvandorpe/testdata/blob/master/gps_coordinates/gpx/my_run_001.gpx
错误1:
这是因为分母是日期时间.timedelta. 你知道吗
TypeError: unsupported operand type(s) for /: 'int' and 'list'
错误2:
我还尝试将列表元素转换为整数,但它不直接允许对datetime列表元素进行转换
tdelta1 = [int(x) for x in timedelta]
TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.timedelta'
我建议使用date-time数据类型built into numpy,并由Pandas支持,例如:
从文件中读取中的值,然后您可以使用以下工具轻松地区分并转换为秒间隔:
相关问题 更多 >
编程相关推荐