1. 课程导入与场景认知

地质钻孔是地质勘查、工程勘察、水文调查和矿产评价中最基础的一类空间数据载体。一个钻孔在平面上是一个点,在垂向上却记录着岩性分层、采样位置、含水层界面、见矿段等一系列属性信息。实际项目中,这些信息往往先以表格形式被记录和流转:野外编录表、化验室分析报告、钻孔柱状图导出数据、历史资料数字化成果,最终大多会落到 CSV 或 Excel 这类结构化文本中。CSV 之所以常见,是因为它跨平台、易读、便于批量处理,几乎任何数据库、GIS 软件和脚本语言都能直接读写。

但 CSV 本身只是“带分隔符的文本”,它并不携带空间信息。一个典型的钻孔 CSV 可能长这样:

hole_id,x,y,elevation,depth_from,depth_to,rock_type,grade_au
ZK001,512340.25,3287650.80,1250.30,0.00,3.50,第四系覆盖层,0.00
ZK001,512340.25,3287650.80,1250.30,3.50,18.20,强风化砂岩,0.02
ZK001,512340.25,3287650.80,1250.30,18.20,42.60,含金石英脉,1.85
ZK002,512680.10,3287910.45,1268.75,0.00,5.20,第四系覆盖层,0.00

这里每一行代表一个“钻孔—分层段”记录,hole_id 是孔号,x、y 是平面坐标,elevation 是孔口高程,depth_from 与 depth_to 是分层起止深度,后面是岩性与品位。可以看到,同一个钻孔会重复出现多行,坐标和高程重复填写。这种“长表”结构便于记录,却不利于直接做空间查询和制图。Shapefile 正是解决这一问题的常用格式:它把空间几何与属性表绑定,一个点要素对应一行属性,可以按孔号聚合、按岩性符号化、按品位分级渲染,也能与地形图、地质图、勘探线叠加分析。

从 CSV 到 Shapefile,中间并不是简单的“另存为”。核心工作有三步:第一,把表格中的坐标字段识别出来,并明确其坐标参照系;第二,把每个钻孔的平面位置生成点几何,同时把分层信息组织成属性表或关联表;第三,对生成结果做投影校验,确认点位落在正确的位置上。第三步最容易被忽视,却往往是错误的高发区。常见问题包括:把经纬度误当成平面米制坐标、把北京54坐标当成西安80坐标、带号遗漏或重复、中央经线选错、单位混淆(度与弧度、米与英尺)。这些问题在属性表里看不出来,只有把点叠加到已知底图上,或者与已知控制点比对,才会暴露。

钻孔数据从 CSV 到 Shapefile 的处理链路与投影校验 原始数据源 野外编录表 / 化验报告 历史资料数字化成果 钻孔柱状图导出数据 格式:CSV / Excel 长表 字段识别与清洗 孔号 hole_id 平面坐标 x / y 孔口高程 elevation 分层深度 from / to 点几何与属性表 按孔号聚合为点要素 分层段写入属性字段 生成 .shp / .shx / .dbf 写入 .prj 投影定义 投影校验 叠加底图比对 控制点核验 带号与中央经线 单位一致性 校验不通过:回退修正坐标定义或字段 常见投影与坐标问题对照 经纬度当平面坐标 点位整体偏移或压缩 带号遗漏或重复 东西向大幅错位 中央经线选错 点位随距离线性偏移 单位混淆 米与英尺、度与弧度 校验通过判据:钻孔点与已知控制点、勘探线、地形地物套合一致;孔口高程与DEM趋势相符; 同一坐标系下相邻钻孔间距与设计孔距一致,方可进入后续制图与分析。

上图把本节要建立的整体认知串了起来:左侧是数据来源,中间是字段识别与几何生成,右侧是投影校验,下方是常见问题对照。需要强调的是,校验不是最后“看一眼”,而是贯穿始终的质量控制环节。一个实用的做法是:在生成 Shapefile 之前,先抽取 3~5 个已知坐标的控制点或历史钻孔,把 CSV 中的坐标与已知值逐一比对,计算平面偏差。若偏差在厘米级,说明坐标定义基本正确;若偏差达到几十米甚至上百米,则要优先怀疑带号、中央经线或坐标系代际问题,而不是先去怀疑数据录入。

再看 Shapefile 的应用场景。它适合做钻孔点位分布图、勘探线剖面定位、钻孔与地质图叠加、按岩性或品位做符号化表达,也便于交付给不熟悉数据库的评审方。但要注意,Shapefile 单文件有字段名长度限制(通常 10 个字符)、不支持空值语义、一个文件只能存一种几何类型,且中文属性容易因编码出现乱码。因此在实际工程中,常把分层明细放在单独的属性表或数据库中,通过孔号与点位关联,而不是把所有分层都塞进一个点要素的属性里。

本课程的整体学习路径可以概括为“认知—转换—校验—应用”四个层次。认知层解决数据从哪里来、字段是什么意思;转换层解决如何把 CSV 正确读入、识别坐标、生成点几何并写出 Shapefile;校验层解决如何用控制点、底图套合和参数检查确认投影无误;应用层则把成果用于制图、统计和交付。后续章节会围绕这条主线逐步展开,每一步都会给出可操作的参数、示例数据和判断依据。学习时建议准备一份自己的钻孔 CSV 样例,跟着课程同步操作,这样比只看讲解更容易发现坐标定义中的细节问题。

开始动手前,先问自己三个问题:这份 CSV 的 x、y 是经纬度还是平面坐标?如果是平面坐标,属于哪个坐标系、哪个带号、中央经线是多少?数据中的高程是相对哪个基准面的?把这三个问题写清楚,后面的转换和校验就有了判断依据。