从 gpxpy.GpxTrack 获取速度

问题描述 投票:0回答:1

我试图从 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

并获得[]

我如何获得速度并在路线信息中实现

python gpx
1个回答
0
投票

要使用 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 快乐编码!

© www.soinside.com 2019 - 2024. All rights reserved.