1. 课程导入与排查框架
在地质GIS项目中,空间连接(Spatial Join)是把一个图层的属性按空间关系“搬”到另一个图层上的高频操作:把地层代号挂到钻孔点、把断层编号挂到线路、把含水层富水性挂到井位、把地质灾害易发分区挂到村庄。操作本身只需几次点击,但结果出错时往往非常隐蔽——图形位置完全正确,属性却张冠李戴。本课程把这类问题统称为空间连接字段错配:在空间连接过程中,由于目标要素与源要素的匹配关系、连接字段的取值来源、字段映射规则或空间关系判定出现偏差,导致目标要素获得的属性值与其真实空间位置或地质实体不对应。
需要先厘清一个关键区分:字段错配不是“连接失败”。连接失败表现为大量目标要素在连接字段上为空(NULL),一眼可见;而字段错配往往“有值、值也合法”,只是值属于另一个实体。例如钻孔ZK-07落在A地层单元内,连接后却得到B地层代号,且B代号在编码表中真实存在,肉眼检查属性表很难发现。因此排查的核心不是“有没有连上”,而是“连上的对不对”。
地质GIS中的典型表现
结合地质数据特点,字段错配常见以下几类表现,可作为现场快速识别的线索:
- 边界带错配:点落在两个地层单元的交界附近,因容差、坐标系精度或面要素微小重叠,被错误面捕获,属性取到相邻单元的值。
- 一对多取值错配:一个钻孔落在多个重叠的含水层分区或矿权范围内,连接时只保留了“第一个”或“最后一个”匹配记录,取值取决于记录顺序而非业务规则。
- 字段映射错位:源图层与目标图层存在多个同名字段或相似字段(如“地层代号”与“地层名称”、“岩性代码”与“岩性描述”),映射时列序错位,导致代号写进名称字段。
- 连接键误用:本应使用空间关系连接,却误用了属性字段连接;或空间连接后又按错误的外键做了二次关联,把正确结果覆盖。
- 坐标系与投影错配:两图层坐标系不一致且未动态投影,空间关系判定整体偏移,形成成片而非零星的错配。
- 编码体系错配:源数据使用旧版地层编码,目标数据使用新版编码,值本身有效但语义不对应。
排查流程总览
面对一个可疑的连接结果,建议按“先定位、再定性、后修复、终验证”的顺序推进,避免一上来就重做连接。第一步定位错配范围:抽取若干目标要素,用“按位置选择”反查其实际所在的源要素,比对连接所得字段与真实字段,统计错配率并观察空间分布形态。第二步定性错配类型:依据分布形态和字段取值特征,对照上表的典型表现归类。第三步核查连接参数:检查两图层的坐标系、连接操作类型(一对一/一对多/最近)、匹配选项(最大距离、容差)、字段映射表与合并规则。第四步修复并复连:针对根因调整参数或先做数据清理(如消除面重叠、统一编码),再重新执行连接。第五步验证:用抽样反查、错配率统计和关键字段非空率三项指标确认结果,并保留连接日志以便追溯。
一个可复现的排查示例
假设某项目把1:5万地层面图层(stratum_50k,字段:STRAT_CODE、STRAT_NAME)连接到钻孔点图层(borehole,共1200个点),连接后钻孔的STRAT_CODE出现少量异常。按框架操作:先随机抽取50个钻孔,用“按位置选择”反查其所在面,发现其中6个钻孔的连接值与真实面不一致,错配率约12%,且6个点全部位于地层界线300米缓冲带内——分布形态指向边界带错配。进一步核查发现连接时设置了“最大距离500米”的匹配容差,导致界线附近的点被邻近面捕获。修复方式是将容差改为0并先消除面图层中面积小于50平方米的碎片重叠,重新连接后再次抽样50个点,错配降为0,同时STRAT_CODE非空率保持100%。这个例子说明:错配率与分布形态是定性依据,参数核查是定位根因的关键,而修复后必须用同一套抽样方法复验。
后续60个案例将按上述六类错配分组展开,每例给出数据情形、错误现象、根因判断与修复操作,读者可对照本节的五步框架逐例演练,逐步形成“看形态、定类型、查参数、复验结果”的稳定排查习惯。