我试图从 gpx 赛道获得速度、路线 我的轨迹点
<trkpt lon="77.209995" lat="28.520444"><ele>236.502853</ele><time>2022-02-20T02:04:51Z</time><extensions><speed>0.788036</speed><course>209.456757</course><hAcc>6.222376</hAcc><vAcc>1.408607</vAcc></extensions></trkpt>
with open('kaggle/input/workout-routes/route_2022-02-02_8.06pm.gpx', 'r') as gpx_file:
gpx = gpxpy.parse(gpx_file)
route_info = []
for track in gpx.tracks:
for segment in track.segments:
for ind, point in enumerate(segment.points):
print(point.speed)
route_info.append({
'latitude': point.latitude,
'longitude': point.longitude,
'elevation': point.elevation,
'time': np.datetime64(point.time),
'course': point.course
})
点.速度=无
我试图通过这样的扩展来提高速度
point.extensions
并获得[
我如何获得速度并在路线信息中实现
要使用 gpxpy 从 GPX 轨迹点中的扩展获取速度,您可以手动提取扩展数据。
具体方法如下 首先使用
解析代码with open('your_gpx_file.gpx', 'r') as gpx_file:
gpx = gpxpy.parse(gpx_file)
然后使用
重复曲目和片段for track in gpx.tracks:
for segment in track.segments:
for point in segment.points:
# Process each point
然后从扩展中提取速度
speed = None
course = None
for extension in point.extensions:
if extension.tag == 'speed':
speed = float(extension.text)
if extension.tag == 'course':
course = float(extension.text)
然后将数据存储到列表中
route_info.append({
'latitude': point.latitude,
'longitude': point.longitude,
'elevation': point.elevation,
'time': np.datetime64(point.time),
'speed': speed,
'course': course
})
它将为您提供包含 GPX 文件中每个轨迹点的纬度、经度、海拔、时间、速度和路线的字典列表。 它对我有用,也一定对你有用。
希望这有帮助:D 快乐编码!