1. 环境点线面数据认知与课程任务导入
在环境信息化项目中,我们拿到的原始数据往往不是一张整齐的表格,而是来自监测站、排污口台账、卫星影像、行政区划库、道路与河流中心线等多种来源的混合体。要把它们变成可用于分析、制图和统计的成果,第一步不是急着打开软件,而是先建立对数据几何形态的清晰认知:哪些是点、哪些是线、哪些是面,它们各自承载什么属性,又通过什么字段彼此关联。本课程以一套真实环境数据集为操作对象,围绕"清洗"与"属性联接"两条主线展开,最终形成可入库、可制图、可统计的规范数据。
三类几何对象及其环境语义
点数据表达位置明确、范围可忽略的对象。环境领域最典型的是空气质量监测站、水质自动监测站、地下水观测井、噪声监测点、土壤采样点、排污口位置。点的属性通常包括站点编码、名称、经纬度、监测因子、监测时间与浓度值。点的关键特征是"一址一记录",同一站点在不同时刻会产生多条记录,因此点数据清洗的重点往往是时间序列的去重、缺失值处理与异常值识别。
线数据表达具有长度但宽度可忽略的对象。环境领域常见的有河流与渠道中心线、道路与交通干线、污染线源(如输油管线、排污管道)、行政界线、生态廊道。线数据的属性包括线路编码、名称、起止节点、长度、等级、流向。线数据清洗的难点在于拓扑:悬挂节点、自相交、重复线段、方向不一致都会导致后续网络分析与缓冲区计算出错。
面数据表达具有面积和边界的对象。环境领域包括行政区、流域分区、环境功能区划、土地利用类型、自然保护区、污染场地范围。面数据属性包括区域编码、名称、面积、区划类别、适用标准。面数据清洗关注的是几何有效性:自相交、空洞错误、边界重叠、缝隙(sliver polygon)以及坐标系不一致导致的面积偏差。
为什么必须先清洗再联接
属性联接的本质是"用共同键把两张表拼在一起"。如果键值本身不规范,联接结果就会失真。举个具体例子:某市有 38 个空气质量监测站,站点表中"站点编码"写作 AQ001,而监测数据表中写作 aq001 或 AQ-001。直接按编码联接,匹配率可能只有六成,其余记录变成空值。这类问题不是联接算法的问题,而是清洗阶段没有统一编码格式。再如行政区面图层与监测点图层坐标系不一致(一个为 CGCS2000 地理坐标,一个为 Web 墨卡托投影),空间联接时点会整体偏移数百米,导致站点被划入错误区县。因此本课程确立一条基本原则:先让几何有效、坐标统一、键值规范,再做联接。
本课程的整体任务链
课程以一套模拟但结构真实的环境数据集为操作对象,包含四类文件:监测站点表(点,含编码、名称、经纬度、监测因子)、河流中心线图层(线,含河流编码、名称、等级)、区县行政区面图层(面,含区划代码、名称、面积)、以及一张监测结果长表(含站点编码、日期、PM2.5、COD 等指标)。任务链可概括为四个阶段:
- 认知与检查:读取各图层,查看几何类型、坐标系、字段结构、记录数与取值范围,形成数据画像。
- 几何清洗:统一坐标系,修复面自相交与缝隙,清理线悬挂节点与重复段,纠正点坐标明显越界(如经纬度写反)。
- 属性清洗:统一编码大小写与分隔符,处理缺失值(删除、插补或标记),识别超出物理量程的异常值(如 PM2.5 为负值或超过 1000 μg/m³)。
- 属性联接与成果输出:按编码做属性表联接,按空间关系做点落面、线穿面联接,输出带行政区归属的监测汇总表与专题图。
一个可参照的检查清单
在动手前,建议对每个图层填写一份简表,把"看到什么"和"要处理什么"分开记录。下表为示例结构,数值为教学假设,实际项目应按真实数据填写。
| 图层 | 几何类型 | 坐标系 | 记录数(示例) | 主要问题 | 处理动作 |
|---|---|---|---|---|---|
| 监测站点 | 点 | CGCS2000 | 38 | 2 个点经纬度写反 | 交换坐标并复核 |
| 河流中心线 | 线 | CGCS2000 | 126 | 7 处悬挂节点、3 段重复 | 捕捉端点、删除重复段 |
| 区县行政区 | 面 | Web 墨卡托 | 11 | 2 处自相交、1 条缝隙 | 修复几何、投影转换 |
| 监测结果长表 | 表 | — | 约 2.7 万行 | 编码格式不一、缺失与负值 | 标准化编码、缺失标记、异常剔除 |
需要强调的是,点、线、面并不是孤立的三类数据,它们在环境分析中经常互相转换与配合:监测点落在行政区面上得到区县均值,河流线穿过多个区县面得到分段归属,面要素的质心又可生成代表点用于标注。理解这种"点落面、线穿面、面生点"的关系,是后续所有联接操作的基础。下一阶段我们将从数据读取与画像开始,把这套任务链逐步落到具体操作上。