1. 课程导入与场景认知

在环境监测信息化项目中,真正耗费时间的往往不是写模型,而是把来自不同企业、不同设备、不同系统的数据整理成"能算、能比、能上报"的干净数据集。本课程围绕 Python 批量清洗污染源监测数据展开,第一章先不急于写代码,而是把"数据长什么样、脏在哪里、清洗要达成什么"这三件事看清楚。只有先建立清晰的数据图景,后续的读取、解析、校验、修补和汇总才有明确的目标。

一、污染源监测数据的四类主要来源

污染源监测数据通常来自四条渠道,它们的格式、频率和可靠性差异很大:

  • 自动监控系统(CEMS/水质自动站):现场仪表按固定周期上传,常见为分钟均值或小时均值,通过数采仪以 HJ 212 协议打包传输,最终落库为文本报文或数据库记录。特点是数据量大、时序连续、易出现缺测与异常跳变。
  • 手工监测报告:第三方检测机构按季度或月度采样,出具 PDF/Word 报告或 Excel 汇总表,包含采样时间、点位、项目、浓度、方法检出限等。特点是频次低、字段不统一、单位与有效位数不一致。
  • 企业填报台账:排污单位自行填报的 Excel 台账,含工况、治理设施运行状态、药剂投加量等辅助信息。特点是人工录入错误多、表头经常变动。
  • 监督性监测与执法数据:生态环境部门抽测形成的结构化记录,字段相对规范,但批次零散、命名习惯各异。

这四类数据在清洗时经常需要"对齐":同一排口、同一时段,自动数据与手工数据要能互相印证,台账信息要能解释自动数据的异常时段。因此清洗不是单表操作,而是多源数据的规范化与关联。

二、数据的典型类型与字段结构

从数据结构看,污染源监测数据可分为三类:时序数值型(浓度、流量、温度、含氧量等连续测量值)、分类标识型(排口编号、污染物代码、监测方法、治理设施类型)、文本描述型(备注、异常说明、报告结论)。清洗工作的重心通常落在前两类的规范化上,但文本字段往往是判断异常原因的关键线索,不能简单丢弃。

以废气自动监测小时数据为例,一条记录常见字段包括:排口编码、监测时间、烟尘/二氧化硫/氮氧化物浓度、烟气流量、含氧量、烟气温度、湿度、运行状态标记。这里有一个必须提前明确的约定:浓度是否需要折算。按现行要求,废气污染物浓度通常需折算到基准氧含量(如 6% 或 9%)下的数值,折算公式为:

折算浓度 = 实测浓度 × (21 - 基准氧含量) / (21 - 实测含氧量)

若实测含氧量接近 21%,分母趋近于零,折算值会急剧放大,这类记录必须作为异常处理而不是直接参与统计。这个例子说明:清洗规则必须建立在对业务口径的理解之上,否则"洗得干净"反而"算得错误"。

三、清洗面临的核心挑战

结合真实项目经验,污染源数据的"脏"主要集中在以下几个方面:

  • 缺失:设备故障、停运、通讯中断导致整段缺测,表现为空值、空字符串或占位符(如 -9999、"--")。
  • 异常值:量程超限、负值、恒值(传感器卡死)、突变跳变,需要结合物理合理区间与相邻时刻变化率判断。
  • 重复:补传机制导致同一时间点出现多条记录,需按时间戳去重并确定保留策略。
  • 格式不一致:时间格式混用("2024/3/5 8:00"、"2024-03-05 08:00:00"、Excel 序列号),单位混用(mg/m³ 与 μg/m³),编码带空格或全角字符。
  • 标识不统一:同一排口在不同来源中编码不同,需要建立对照关系才能关联。

下图把数据从产生到可用于分析的链路,以及各环节引入的典型问题集中呈现出来,便于建立整体认知:

污染源监测数据链路与清洗关注点 数据来源 自动监控 CEMS 分钟/小时均值 · HJ 212 手工监测报告 PDF/Excel · 低频次 企业填报台账 工况 · 治理设施状态 监督性监测 抽测记录 · 批次零散 多源汇聚 统一字段命名 排口编码对照 时间格式归一 单位统一换算 易错:编码不一致 批量清洗 缺失识别与标记 异常值判定 重复记录去重 折算与量纲处理 易错:含氧量趋近21% 可用数据集 有效数据率统计 超标判定 日报/月报汇总 异常时段追溯 可复核 · 可上报 清洗原则:先统一口径(时间、单位、编码),再判定质量(缺失/异常/重复),最后按业务规则折算与汇总; 每一步都要保留原始值与处理标记,保证结果可追溯、可复核,而不是简单删除"不好看"的数据。

四、课程目标与整体学习路径

本课程的目标可以概括为一句话:用 Python 把多源、异构、带噪声的污染源监测数据,稳定地转换为结构统一、质量可控、可复核的分析数据集。围绕这个目标,学习路径按"认知—工具—规则—工程化—应用"逐层推进:

  1. 场景与数据认知:弄清来源、字段、口径与常见问题,建立判断标准(本章)。
  2. Python 数据处理基础:pandas 读写 Excel/CSV、时间序列处理、缺失值与重复值操作、分组聚合。
  3. 解析与规范化:处理 HJ 212 报文、非标准表头、混合时间格式、单位换算与编码对照。
  4. 质量规则实现:物理区间校验、变化率校验、恒值检测、折算浓度计算与异常标记。
  5. 批量与工程化:目录批量遍历、函数封装、日志与处理报告、异常中断恢复。
  6. 应用输出:有效数据率统计、超标时段识别、日报月报汇总与结果复核。

需要强调的是,本课程所有示例数据均为教学构造的示例值,用于说明处理逻辑,不代表任何真实企业的监测结果。学习时应重点关注"规则为什么这样定、边界情况怎么处理",而不是记住某个具体数字。