3. 异常数据预处理实战
物探异常剖面图和等值线图的质量,在很大程度上并不取决于绘图软件本身,而取决于进入网格化之前的那份数据表是否"干净、对齐、可比"。野外采集得到的原始数据往往同时存在四类问题:录入或仪器造成的错误值、测点缺失造成的空值、人文干扰与仪器漂移造成的噪声、以及多批次数据拼接造成的坐标与单位不统一。本节以一份磁法剖面数据为例,走完从原始表到"可网格化数据表"的完整整理过程。
一、先明确数据表结构与参照约定
假设某测区沿三条测线(L1、L2、L3)开展磁法测量,点距 20 m,原始数据导出为 CSV,字段包括:测线号 line、点号 point、X 坐标、Y 坐标、高程 Z、磁异常 ΔT(nT)、采集时间 time、质量标记 flag。在动手清洗前必须先固定三件事,否则后续所有处理都会失去一致性:
- 坐标参照:X 为东向(Easting),Y 为北向(Northing),单位米,采用测区统一的平面直角坐标;若原始数据为经纬度,须先投影转换,不得混用。
- 正负号约定:磁异常 ΔT 以正常场为基准,高于正常场为正、低于为负;剖面图横轴为沿测线距离,纵轴为 ΔT,向上为正。
- 单位统一:ΔT 统一为 nT,高程统一为 m,点距统一为 m。多仪器、多批次数据尤其要检查单位是否被导出为 μT 或 cm。
这三条约定应写入数据说明文件,并在整幅图件制作过程中保持不变;一旦切换参照系(例如把 Y 轴改为向南为正),必须在图件与说明中明确标注。
二、数据清洗:识别并处置错误值
错误值通常有明确特征:ΔT 出现 ±9999、-999、0 等仪器缺省填充值;点号为 0 或重复;坐标落在测区范围之外;同一测点重复记录。处理原则是"先标记、后处置",不要直接删除,以便追溯。
实操上可先在表中新增一列 qc_flag,用条件判断逐条打标。例如在 Excel 或 Python 中按如下规则筛查:
# 示例规则(参数为教学假设值)
1) ΔT 不在 [-2000, 2000] nT → qc_flag = "超量程"
2) ΔT == -999 或 9999 → qc_flag = "缺省填充"
3) X 不在 [500000, 510000] 或 Y 不在 [3000000, 3010000] → "坐标越界"
4) 同一 (line, point) 出现多次 → "重复点",保留 time 最新者
5) 相邻点距与设计点距偏差 > 50% → "点位异常"
对"超量程"和"缺省填充"两类,若该点周围测点数据正常且无法补测,应将该点 ΔT 置为空值并进入缺失值处理流程;对"重复点"保留时间最新记录;对"坐标越界"需核对是否录入了相邻测区数据,确认后再决定剔除或修正。
三、缺失值处理:区分"真缺失"与"可插补"
缺失值分两种情形。第一种是单点缺失(如某点仪器故障),两侧数据连续,可用线性内插补齐:若点号 i-1 与 i+1 的 ΔT 分别为 120 nT 和 140 nT,则 i 点取 130 nT。第二种是连续缺失(如跨越沟谷、道路导致整段无法测量),此时线性内插会人为制造虚假异常,应保留为空并在网格化时由算法按搜索半径处理,或在图件上以空白区表示。
四、噪声剔除:用剖面形态而非单一阈值判断
噪声剔除不能简单"超过某值就删",否则会削掉真实局部异常。更稳妥的做法是结合剖面曲线形态与邻点差分:对每点计算一阶差分 d = ΔT(i) − ΔT(i−1),若某点同时满足"|d| 明显大于相邻差分均值"且"该点相对两侧呈孤立尖峰(即 (ΔT(i)−ΔT(i−1)) 与 (ΔT(i+1)−ΔT(i)) 符号相反且幅值接近)",则判为尖峰噪声。
示例:某段剖面 ΔT 依次为 105、108、260、110、112 nT。第 3 点相对两侧突跳约 +150 nT 又立即回落,属典型单点尖峰,可用两侧均值 109 nT 替代。而对一段连续上升的 100、130、165、200 nT,虽然差分较大,但形态单调,属真实异常梯度,不得剔除。对周期性工频干扰或仪器漂移,则应先做趋势面或低通滤波,再判断残差是否超限。
五、坐标系统一:多批次数据拼接的关键
当测区由两次采集拼接时,常见问题是:一批用经纬度、一批用平面坐标;或两批 X/Y 顺序颠倒;或一批以 km 为单位。统一步骤如下:
- 确认每批数据的坐标系名称与投影参数(如 CGCS2000 3 度带高斯投影),将经纬度批次投影为平面坐标。
- 核对 X/Y 字段含义,用测区四角坐标做交叉验证,防止东西向与南北向互换。
- 统一单位为 m,检查数值量级:平面坐标通常为 6 位(X)与 7 位(Y),若出现 5.0、5.1 之类小数,说明单位是 km。
- 统一正负号与基准面:高程统一为同一高程基准,ΔT 统一为同一正常场基准;若两批仪器正常场取值不同,需做基准改正后再拼接。
六、网格化前的数据整理与交付检查
完成上述处理后,输出一份"可网格化数据表",字段建议为:line、point、X、Y、Z、dT、qc_flag、remark。整理时按测线、点号排序,删除辅助列,确保无合并单元格、无文本型数字、无空行。交付前按下表逐项检查:
| 检查项 | 合格标准 | 不合格处置 |
|---|---|---|
| 坐标范围 | 全部落在测区边界内 | 核对越界点来源 |
| 点距一致性 | 与设计点距偏差 ≤ 50% | 标记并复核点位 |
| ΔT 量级 | 在 [-2000, 2000] nT 内 | 查缺省值与单位 |
| 缺失值 | 连续缺失 ≤ 2 点距已内插 | 长缺口保留空值并注记 |
| 重复点 | 无重复 (line, point) | 保留最新记录 |
| 单位与正负 | m、nT,正负约定一致 | 统一换算后重查 |
只有这张表通过检查,后续的网格化参数(网格间距、搜索半径、插值方法)才有意义。若把带尖峰、带空值、坐标混用的数据直接送入网格化,等值线会出现虚假闭合圈、锯齿状畸变或整体错位,而这些错误在成图后极难回溯定位。因此,预处理阶段应保留原始表、标记表与成果表三个版本,做到每一步可追溯、可复现。