You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过gpxpy从GPX轨迹extensions中提取speed并写入route_info?

解决gpxpy提取extensions中speed和course字段的问题

gpxpy不会自动解析GPX的扩展字段(比如你文件里的speed、course),所以直接调用point.speed、point.course会返回None,得手动从point.extensions里提取对应元素的文本值。

修改后的代码如下:

import numpy as np
import gpxpy

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):
            # 初始化speed和course为None,防止无对应字段时报错
            speed = None
            course = None
            # 遍历extensions里的所有元素
            for ext in point.extensions:
                # 根据标签名匹配目标字段
                if ext.tag == 'speed':
                    speed = float(ext.text)
                elif ext.tag == 'course':
                    course = float(ext.text)
            # 将所有字段添加到列表
            route_info.append({
                'latitude': point.latitude,
                'longitude': point.longitude,
                'elevation': point.elevation,
                'time': np.datetime64(point.time),
                'speed': speed,
                'course': course
            })

关键说明:

  • point.extensions返回Element对象列表,每个对象的tag对应XML标签名(如'speed'),text对应标签内的数值文本
  • 把文本转成float类型,方便后续做数值计算
  • 先初始化speed和course为None,避免某些轨迹点缺失这些字段时抛出异常

内容的提问来源于stack exchange,提问作者work work

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:30:58