利用经纬度等信息生成GPX轨迹信息

 为了之后还能记得怎么处理我的经纬度数据,留下这个笔记

首先通过手持GPS设备获取了经纬度、时间、速度等原始数据,表格数据形式如下:

现要通过XLS数据生成GPX轨迹文件

import xlrd
import pandas as pd
import gpxpy
import gpxpy.gpx

# 加载XLS文件
workbook = xlrd.open_workbook(r'xls表格位置')
sheet = workbook.sheet_by_index(0)  # 假设数据在第一个工作表中

gpx = gpxpy.gpx.GPX()

# 创建航线对象
track = gpxpy.gpx.GPXTrack()
gpx.tracks.append(track)

data = pd.read_excel(r'xls表格位置')
print(data.columns)

# 创建航线段
segment = gpxpy.gpx.GPXTrackSegment()
track.segments.append(segment)

# 逐行读取数据并生成GPX路点
for index, row in data.iterrows():
    latitude = float(row[3])
    longitude = float(row[2])
    time = row[1]  # 时间字段
    speed = float(row[4])  # 速度字段

    waypoint = gpxpy.gpx.GPXWaypoint(latitude, longitude, time=time)
    waypoint.speed = speed

    gpx.waypoints.append(waypoint)
    segment.points.append(gpxpy.gpx.GPXTrackPoint(latitude, longitude, time=time))

for waypoint in gpx.waypoints:
    print(f"Latitude: {waypoint.latitude}")
    print(f"Longitude: {waypoint.longitude}")
    print(f"Time: {waypoint.time}")
    print(f"Speed: {waypoint.speed}")
    print()

# 将航线对象添加到GPX对象

# 保存 GPX 文件
with open(r'gpx文件输出位置', 'w') as file:
    file.write(gpx.to_xml(version="1.0"))  # 写入 GPX 对象的 XML 表示

通过python代码实现,最终生成轨迹数据如下:

 由于GPS在获取数据过程中因信号等原因,存在大量的跳跃点,还需进行后续的清理工作