我正在尝试提取数据框中存在的时间戳数据,并找到时间间隔之间的时间差(以秒为单位)。使用这个时间差,我想计算某个物体的速度(速度 = 距离/时间)。
但是,我在这个时间差计算中遇到了很多错误,我无法直接考虑 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
Error1:
这是因为分母是 datetime.timedelta 类型。
TypeError: unsupported operand type(s) for /: 'int' and 'list'
Error2:
我也尝试将列表元素转换为整数,但它不允许直接转换日期时间列表元素
tdelta1 = [int(x) for x in timedelta]
TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.timedelta'
牧羊人nacy
相关分类