4. 从表格到图层
污染源点位清单通常以表格形式存在,例如环境统计报表、排污许可台账或现场核查记录导出的CSV文件。QGIS的“添加分隔文本图层”正是把这类纯文本表格转成空间图层的入口。它不依赖数据库,也不需要先做格式转换,只要表格里有经度、纬度两列,就能直接生成点图层。本节围绕一次完整的导入过程展开:从识别CSV结构、指定X/Y字段、选择坐标系,到预览点位、处理坐标格式错误,最终得到一个可用的污染源点位图层。
先看清表格:分隔符与字段结构
导入前应先确认CSV的真实结构。用文本编辑器打开文件,观察第一行是否为字段名,字段之间用逗号、分号还是制表符分隔。中文环境下常见的坑是:Excel另存的“CSV”实际用分号分隔,或字段名含空格、括号、中文单位。QGIS在“添加分隔文本图层”对话框中提供“文件格式”选项,可选CSV(逗号)、自定义分隔符(如分号、制表符)和正则表达式。若分隔符选错,预览区会把整行挤进一列,此时应回到文件格式处调整,而不是继续往下配置。
一个典型的污染源点位表可能包含如下字段:企业名称、统一社会信用代码、经度、纬度、行业类别、排放口类型。其中经度、纬度是空间化的关键。需要提醒的是,字段名中的“经度”“纬度”只是文字,QGIS不会自动识别其含义,必须在X字段、Y字段下拉框中显式指定。X对应经度(东西方向),Y对应纬度(南北方向),这一约定在后续所有坐标系设置中保持一致。
指定X/Y字段与坐标系
在对话框中依次设置:几何图形定义选择“点坐标”,X字段选“经度”,Y字段选“纬度”。此时预览区应出现点位分布。若预览为空或点位挤在角落,多半是X/Y选反或坐标系不匹配。坐标系(CRS)的选择取决于表格中坐标的原始定义:若经纬度是WGS 84下的十进制度值,选EPSG:4326;若来自国内常用的CGCS2000经纬度,选EPSG:4490;若表格给的是投影坐标(如高斯-克吕格3度带,单位为米),则必须选对应的带号投影坐标系,例如CGCS2000 3度带第39带对应EPSG:4548(中央经线117°E)。选错坐标系不会报错,但点位会整体偏移,这是导入阶段最隐蔽的错误。
预览点位分布:导入前的第一道校验
预览区是导入前最有效的检查手段。正常情况下,点位应落在研究区范围内,例如某市域内的企业点位应聚集在该市轮廓内,而不是散落在海洋或境外。若所有点呈一条直线,说明某一字段被当成了常量或X/Y选反;若点位整体偏移到研究区外几百公里,通常是坐标系选错或投影带号不符;若只有部分点缺失,则要检查对应行的坐标是否为空、含单位字符或格式异常。预览确认无误后点击“添加”,图层即进入图层面板,此时它仍是内存中的临时图层,建议立即右键“导出”→“要素另存为”,保存为GeoPackage或Shapefile,避免关闭工程后丢失。
处理坐标格式错误
导入失败或部分点位缺失,绝大多数源于坐标列的格式问题。常见情形有四类。第一类是坐标带单位,如“116.4°E”“39.9N”,QGIS无法把带字母的字符串解析为数值,该行会被跳过。第二类是度分秒格式,如“116°24′00″E”,需要先换算为十进制度,换算关系为:十进制度 = 度 + 分/60 + 秒/3600,东经和北纬取正,西经和南纬取负。第三类是经纬度顺序颠倒,表格把纬度写在X列、经度写在Y列,结果点位整体跑到境外或出现纬度绝对值超过90的异常。第四类是空值或占位符,如“-”“无”“/”,应统一替换为空再导入。
处理方式分两步:先在源表格中清洗,用查找替换去掉单位符号、把度分秒换算成小数、统一空值;再回到QGIS重新预览。若数据量大不便手工改,可在QGIS中用“字段计算器”对已导入但坐标异常的图层做转换,或借助表格软件的公式列批量换算。需要强调的是,坐标格式错误往往不会让QGIS报错,而是静默跳过或生成错误位置,因此“预览+抽查”比“看是否报错”更可靠。建议导入后随机抽取3~5个点位,与已知地标或行政区划底图比对,确认位置合理。
一个可复用的导入检查清单
把上述要点固化为操作前的检查项,能显著降低返工率。以下清单可直接对照使用:
| 检查项 | 合格标准 | 不合格时的处理 |
|---|---|---|
| 分隔符 | 预览区字段正确分列 | 改选分号/制表符或自定义 |
| 字段名 | 首行为字段名且无重复 | 修正表头后重新导入 |
| X/Y字段 | X为经度、Y为纬度 | 对调下拉框选项 |
| 坐标数值 | 经纬度为十进制度,无单位字符 | 清洗源数据或公式换算 |
| 坐标系 | 与坐标定义一致(4326/4490/对应投影带) | 按带号或基准面重选 |
| 预览分布 | 点位落在研究区范围内 | 排查顺序颠倒、带号错误 |
| 成果保存 | 已导出为GeoPackage等持久格式 | 右键要素另存为 |