3. 钻孔数据采集与录入规范

钻孔数据库的质量,八成取决于数据进入数据库之前的那一段人工环节。野外记录是数据的源头,录入是数据的第一次结构化,批量导入则是效率与风险并存的关键节点。本节围绕“源头格式—清洗规则—错误识别—模板设计”这条主线,说明如何把纸质或移动端记录稳定地转化为可入库、可出图的结构化数据。

一、野外记录格式:先定字段,再定写法

野外记录格式的核心不是“记得好看”,而是“字段可解析、单位可统一、位置可追溯”。建议以“一孔一表、一行一记录”为基本原则,把钻孔基本信息与分层记录分开组织。钻孔基本信息包括孔号、孔口坐标(X、Y、H)、孔深、开孔日期、施工方法、记录人;分层记录则按回次或按层逐行填写,至少包含:层序号、起止深度、层底深度、岩土名称、颜色、状态/密实度、风化程度、地层代号、采取率、RQD、地下水位、备注。

写法上要约定三条硬规则:深度一律用“米”为单位并保留两位小数,起止深度必须满足“上层底深=下层顶深”,不允许出现重叠或空档;岩土名称使用项目地层字典中的标准词,禁止同义词混用(如“粉质黏土”不写成“粉粘”“粉质粘土”);日期统一为“YYYY-MM-DD”。野外记录中常见的“~”“左右”“约”等模糊表述,应在录入前转换为确定值或移入备注字段,避免污染数值列。

二、数据清洗规则:入库前的四类处理

数据清洗不是简单删行,而是按规则做可追溯的修正。实践中可归纳为四类处理:

  • 格式规范化:去除首尾空格、全角转半角、统一大小写与单位;把“1.5m”“1.50米”统一为“1.50”。
  • 值域约束:采取率、RQD 限定在 0~100;水位深度不得大于孔深;层底深度必须大于层顶深度。
  • 逻辑一致性:相邻层深度连续;同一孔内层序号唯一且递增;地层代号与岩土名称的对应关系符合项目地层表。
  • 缺失与重复处理:关键字段(孔号、起止深度、岩土名称)缺失的记录标记为“待补”,不直接入库;同一孔同一深度区间重复的记录按“保留最新、旧值留痕”处理。
清洗应保留原始值与修正值两列(或一张变更日志表),记录修正人、修正时间和修正原因。柱状图出图后若发现异常,能快速回溯到是野外记错还是清洗改错。

三、常见录入错误与校验方法

录入错误有很强的规律性,下面这张图把典型错误、产生原因与对应校验手段放在同一条链路上,便于在模板和程序中逐项设防。

钻孔录入常见错误与校验防线 常见录入错误 深度不连续 / 重叠 上层底深 ≠ 下层顶深 单位与格式混用 1.5m / 1.50 / 150cm 岩土名称同义词 粉粘 / 粉质粘土 / 粉质黏土 指标越界 采取率 120%、水位 > 孔深 孔号与坐标错位 复制粘贴串孔、坐标漏填 重复记录 / 关键字段缺失 逐项设防 三级校验防线 ① 录入端即时校验(Excel 数据验证 / 表单控件) · 深度列:数值型、两位小数、> 0 · 采取率 / RQD:0~100 整数区间 · 岩土名称、地层代号:下拉列表绑定项目字典 · 孔号:文本格式,禁止科学计数法 ② 导入前批量校验(脚本 / 数据库约束) · 同孔层序连续性:底深(i) = 顶深(i+1),容差 0.01 m · 层底深度 ≤ 孔深;水位深度 ≤ 孔深 · 孔号唯一性、坐标非空、日期格式合法 · 名称—代号对照命中率 100% ③ 入库后一致性校验(出图前复核) · 柱状图分层总长 = 孔深,无空白段、无重叠段 · 图面层号与数据库层号一一对应 · 抽检 5% 钻孔与野外原始记录逐行核对 · 异常记录进入“待确认”队列,不参与批量出图

校验的关键是“越早越好”。录入端能拦住的错误,不要留到导入阶段;导入阶段能拦住的,不要留到出图阶段。例如深度连续性检查,用一条简单脚本即可完成:读取同一孔号的分层记录,按层序号排序,逐行比较“本行顶深”与“上一行底深”,差值绝对值大于 0.01 m 即输出异常行号。这类检查成本极低,却能拦住柱状图出现空白段或重叠段的大部分问题。

四、批量导入模板设计

批量导入模板应做到“一张表一类数据、字段名与数据库列名一致、必填与选填分区明确”。推荐拆成两张工作表:drill_hole(钻孔主表)与 stratum(分层表),通过孔号关联。主表字段建议为:孔号、X、Y、孔口高程、孔深、开孔日期、施工方法、记录人;分层表字段为:孔号、层序号、层顶深度、层底深度、岩土名称、地层代号、颜色、状态、风化程度、采取率、RQD、水位深度、备注。

模板设计中几个容易被忽视但很实用的细节:第一,孔号列设为文本格式,防止“001”被转成“1”;第二,深度列设置数据验证为“小数、介于 0 与 500 之间”,并锁定两位小数;第三,岩土名称与地层代号使用下拉列表,来源为隐藏的“字典”工作表,便于统一维护;第四,模板首行下方保留一行“填写示例”,用灰色字体标注,导入脚本读取时跳过;第五,增加“校验结果”工作表,导入脚本把每条异常按“孔号—行号—字段—问题描述”写入,形成可交付的核对清单。

批量导入最常见的翻车方式是“列顺序被改动”。脚本若按列位置读取,用户插入一列就会整体错位。稳妥做法是按表头名称映射字段,并在导入前校验表头集合是否与模板一致,不一致直接拒绝导入并提示缺失或多余的表头。

把上述规范落到日常操作,可以形成一条稳定链路:野外按统一字段记录 → 录入端下拉与区间约束 → 导入前脚本做连续性与值域校验 → 异常写入校验结果表人工确认 → 通过后入库 → 出图前再做一次分层总长与孔深的一致性复核。规范的价值不在于表格多漂亮,而在于每一处模糊表述都被提前转成了确定值,每一个可疑记录都有据可查、有人负责。