3. 轨迹数据质量检查与清理

野外采集回来的GPS轨迹,几乎不可能“开箱即用”。手持机或手机在树冠下、峡谷里、贴近陡崖时,卫星几何构型变差,定位解会突然跳到几十米外再跳回来;设备静止休息时又会连续记录同一坐标;偶尔还会因为电量、存储或导出中断,出现时间戳缺失或间隔异常。这些问题的共同特点是:单看一行属性完全正常,只有把点连成线、把时间排成序列,异常才暴露出来。因此本节的核心不是“删点”,而是先建立一套可判断的质量标准,再在QGIS属性表中定位、筛选、修正。

一、先认识三类典型异常

漂移点表现为轨迹在真实路径两侧出现“毛刺”,相邻点距离突然增大又迅速回落,形成尖刺状折返;跳跃点更极端,一个点直接飞到数百米外,下一个点又回到原路径,往往对应失锁后重新捕获卫星的瞬间;重复点则是同一坐标(或坐标差在厘米级)被连续记录多次,常见于停留休息、午餐、等待队友时设备仍在按固定间隔打点。此外还有缺失值:经纬度为NULL、时间为空、或高程为异常负值(如-9999)。

判断异常不能只看坐标,必须结合时间属性。一个合理的经验判据是瞬时速度:用相邻两点的平面距离除以时间差,若结果远超步行或车辆的正常速度(例如徒步调查中大于5 m/s、车辆调查中大于40 m/s),该点就高度可疑。注意这是示例阈值,实际应结合调查方式、设备采样间隔和地形调整。

轨迹异常识别:坐标序列 + 时间属性 正常路径为灰色虚线;红点为可疑点;速度 v = 平面距离 ÷ 时间差 ① 漂移(毛刺) 偏离主路径数十米后回折 ② 跳跃(失锁重捕) 单点飞离数百米,下一帧归位 ③ 重复点 / 缺失值 同坐标连记;空心点为NULL/空时间 速度判据(示例,需按调查方式调整) 徒步:v > 5 m/s 可疑 | 车辆:v > 40 m/s 可疑 | 时间差 Δt ≤ 0 或为空 → 直接标记 处理顺序:先补/删缺失 → 再去重 → 最后按速度与折返角剔除漂移与跳跃

二、在属性表中建立检查字段

QGIS的字段计算器是质量检查的主力。打开轨迹点图层的属性表,进入编辑模式,先新增几个检查字段,再逐列计算。以下表达式均以字段名 time(日期时间型)、lat、lon 为例,实际请替换为你的字段名。

第一步,计算相邻点时间差(秒)。在字段计算器中新建 dt(整型),表达式使用 age() 或直接相减:

-- 新建字段 dt(秒),表达式:
epoch("time") - epoch(attribute(get_feature_by_id(@layer, $id - 1), 'time'))

-- 新建字段 dist(米),计算到上一点的平面距离:
distance($geometry, geometry(get_feature_by_id(@layer, $id - 1)))

-- 新建字段 speed(m/s):
"dist" / "dt"

这里有一个关键前提:点必须按时间排序。若原始记录顺序混乱,应先用“按表达式排序”或导出时按 time 升序排列,否则 $id - 1 取到的“上一点”并非时间上的前一点,速度计算会完全失真。计算完成后,把 speed 降序排列,排在最前面的就是最可疑的跳跃点。

三、筛选、定位与编辑

有了 speed 字段,就可以用属性表筛选(筛选栏输入 "speed" > 5)或“按表达式选择”把可疑点选出来。选中后建议做两件事:一是用缩放至所选要素在画布上查看这些点是否真的脱离主路径,避免把急转弯、原地掉头误判为异常;二是对照时间列,确认相邻点的时间间隔是否合理。

对确认的异常点,处理方式要分情况:跳跃点通常直接删除该点,让前后两点直接相连;漂移点若只是轻微毛刺,可删除或用相邻点坐标的平均值修正;重复点用“删除重复几何图形”工具(矢量 → 几何工具)按坐标去重,但要注意保留时间最早的一条;缺失值若经纬度为NULL则无法修复,只能删除;若仅时间为空,可依据采样间隔推算补填,并在备注字段标注“推算”。

删除点会改变轨迹的几何形态和总长度。建议在清理前先复制一份原始图层(如命名为 track_raw),所有编辑在副本上进行,保留可回溯的原始数据。

四、时间属性检查要点

时间检查不只是看有没有空值,还要看间隔是否均匀。把 dt 字段做一次统计(属性表底部统计面板或“基本统计”),若出现大量 dt 远大于设定采样间隔(例如设定10秒却出现300秒),说明设备曾中断记录,这段“空白”不能简单用直线连接,应作为轨迹分段处理。另外要确认时间字段的时区与格式:野外设备常记录UTC,而调查记录本用北京时间,两者相差8小时,若混用会导致速度计算出现8倍误差,这是新手最容易踩的坑。

五、一份可执行的检查清单

检查项判断依据处理动作
空坐标 / 空时间字段为NULL删除或按采样间隔推算补填
重复点相邻坐标差 < 0.5 m保留最早一条,其余删除
跳跃点speed 远超正常速度删除该点
漂移毛刺折返角接近180°且偏离主路径删除或邻点均值修正
时间断档dt 远大于采样间隔标记分段,不强行连线
时区一致性与记录本时间比对统一为同一时区再计算

完成上述清理后,建议再算一次总长度与点数,与清理前对比:若总长度明显缩短、点数减少但轨迹形态更贴合实际行走路线,说明清理有效。清理后的轨迹才适合进入后续的平滑、分段与成果制图环节。