2. 环境数据清洗规范与质量框架

环境数据清洗不是“把空值删掉、把格式改齐”这么简单。它需要一套可度量的质量框架来回答三个问题:数据到底哪里有问题、清洗到什么程度算合格、清洗过程是否可追溯。本节围绕完整性、一致性、精度、时效性四个质量维度,建立清洗流程设计、日志记录与质量报告的基本方法。

四个质量维度:先定义,再度量

环境数据具有来源杂、时空属性强、量纲多样的特点,因此质量维度必须落到可计算的指标上,否则“质量好”只是一句空话。

完整性关注记录与字段是否缺失。常用指标包括记录完整率(非空必填字段数/应填字段总数)和时间序列覆盖率(实际时段数/应有监测频次数)。例如某空气质量站点按小时应上报24条,实际只有20条,则当日时间覆盖率为83.3%。完整性还要区分“整条缺失”和“字段缺失”,前者影响时序分析,后者影响属性联接。

一致性关注同一对象在不同表、不同来源之间是否自洽。典型检查包括:站点编码在主表与监测表中是否一致、行政区名称与编码是否匹配、单位是否统一(如浓度统一为μg/m³)、经纬度是否落在所属行政区范围内。一致性错误往往在属性联接后才暴露,因此应在联接前做键值比对。

精度包含两层含义:数值精度与空间精度。数值精度指有效位数、量纲与合理值域,例如PM2.5浓度不应为负值,pH应在0~14之间,超出即判为异常。空间精度指坐标的定位误差,若坐标来自不同坐标系(如WGS84与CGCS2000),直接混用会产生数十至上百米偏移,必须在清洗阶段统一。

时效性关注数据从产生到可用的延迟,以及数据本身的时间戳是否可信。指标可用“上报延迟中位数”和“时间戳异常率”衡量。例如要求监测数据在整点后15分钟内入库,若某批次延迟中位数为40分钟,则时效性不达标,需排查采集链路。

环境数据质量框架:四维度 → 清洗动作 → 质量判定 完整性 记录完整率 时间覆盖率 一致性 键值匹配 单位与编码统一 精度 值域与有效位 坐标系统一 时效性 上报延迟 时间戳可信度 清洗动作(按维度触发) 缺失补录 / 标记 时段插补或剔除 主外键比对 单位换算与编码映射 值域校验与异常标记 坐标转换与精度截断 延迟统计 时间戳校正 清洗日志 规则ID · 命中条数 处理动作 · 操作人 质量报告 四维度得分与阈值 问题分布与趋势 判定与回流 达标入库 / 退回重采 规则迭代优化 判定原则:任一维度低于阈值即不通过;日志与报告必须能回溯到具体规则与具体记录 示例阈值:完整性≥95% · 一致性≥99% · 精度异常率≤2% · 延迟中位数≤15分钟

清洗流程设计:规则化、可执行、可回退

清洗流程应设计为“规则驱动”而非“人工逐条改”。一条可执行规则至少包含四要素:规则编号、适用对象与字段、判定条件、处理动作。以某市环境监测数据为例,可设计如下规则集(示例参数,非实测):

R01 完整性  监测表.hourly_value 为空且站点状态=正常 → 标记为缺失,不插补
R02 完整性  连续缺失≤2小时 → 线性插补并写入 quality_flag=1
R03 一致性  监测表.site_code 不在站点主表 → 挂起,输出待核对清单
R04 一致性  浓度单位=mg/m³ → 乘以1000换算为μg/m³
R05 精度    PM2.5 < 0 或 > 1000 → 置空并标记 quality_flag=2
R06 精度    坐标系统=WGS84 → 转换为CGCS2000后入库
R07 时效性  入库时间 - 观测时间 > 15分钟 → 记录延迟并计入时效统计

流程顺序上,建议先做一致性与精度校验,再做缺失处理,最后统计时效。原因是:若键值不一致或单位错误,先插补只会把错误放大;而时效统计依赖最终入库时间,应放在末尾。每条规则执行后都要输出“命中条数”,命中数为零也需记录,以证明规则确实运行过。

清洗日志:让每一步都可追溯

清洗日志不是运行截图,而是结构化记录。建议每条日志至少包含:批次号、规则编号、作用表与字段、命中记录数、处理动作、处理前后样例、执行时间与操作人。日志的价值在于复盘:当质量报告显示某维度得分下降时,可以快速定位是哪条规则命中量突增。例如R05命中数从日均30条升至400条,往往意味着采集设备漂移或量纲配置错误,而非数据本身变差。

日志中的“处理前后样例”建议保留2~3条真实记录(可脱敏),比只写命中条数更有利于排查。样例应包含主键、原值、新值与标记位。

质量报告:用指标说话

质量报告应围绕四个维度给出“指标值—阈值—结论”三列结构,并附问题分布。以下为一份可直接套用的报告骨架(示例数据为合理假设):

维度指标本期值阈值结论
完整性记录完整率96.8%≥95%达标
一致性键值匹配率99.4%≥99%达标
精度值域异常率3.1%≤2%不达标
时效性延迟中位数12分钟≤15分钟达标

报告不能只给结论,还要给出归因与动作。上例中精度不达标,应进一步拆分异常类型:是负值、超上限还是坐标越界,并对应到具体规则(R05、R06)与具体站点。若异常集中在某几个站点,优先排查设备;若普遍分布,则检查规则阈值是否过严。质量报告的收尾应明确“本期是否允许入库”“哪些记录需退回重采”“下期规则是否调整”,形成闭环。

阈值不是越低越好。过严的精度阈值会把正常波动判为异常,导致大量有效数据被置空,反而拉低完整性。阈值应结合业务用途设定,并在报告中注明依据。