利用经纬度等信息生成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在获取数据过程中因信号等原因,存在大量的跳跃点,还需进行后续的清理工作