4. 矿化异常数据准备与预处理
空间自相关分析对输入数据的“干净程度”极为敏感。Moran's I、局部 Getis-Ord Gi*、LISA 聚类图等结果,本质上都是在比较“位置”与“属性值”的匹配关系;一旦坐标错位、量纲混乱或极端值未被识别,聚类结果就可能把采样偏差误读为矿化聚集。因此,在进入空间权重构建与自相关计算之前,必须把化探数据整理成一份坐标可信、属性可比、分布可控的分析底表。本节以某 1:5 万水系沉积物测量数据为例(示例数据为教学假设),完整走一遍从原始表格到可分析图层的预处理链路。
一、化探数据导入:从采样记录到要素类
化探原始成果通常以 Excel 或 CSV 形式提交,字段包括样品编号、图幅号、X 坐标、Y 坐标、采样介质、各元素含量(如 Cu、Pb、Zn、Ag、Mo)以及检出限标识。导入 ArcGIS Pro 时,优先使用“XY 表转点”(XY Table To Point),而不是直接拖入表格后手工建点。关键设置有三项:X 字段填东坐标、Y 字段填北坐标(注意不要颠倒,否则点位会整体旋转 90°);坐标系必须选择与坐标数值实际对应的投影坐标系,例如 CGCS2000 3 度带高斯-克吕格投影;Z 字段留空。导入后立即检查属性表中是否出现空几何或坐标为 0 的记录,这类记录往往来自合并单元格或表头错行。
对于多元素数据,建议保留“宽表”结构(一行一个样品、一列一个元素),便于后续逐字段做分布检验;若后续要做多元素组合异常,再另建视图或导出长表。导入完成后应统计样品总数、重复样数量与图幅覆盖范围,作为后续质量核对的基准。
二、坐标系统一:让所有图层落在同一参照下
实际项目中常混用北京54、西安80、CGCS2000 以及不同中央经线的高斯投影,甚至出现经纬度与平面坐标混存。统一坐标的核心原则是:先确认源坐标定义,再做投影变换,最后统一到分析所用的目标坐标系。在 ArcGIS 中通过“投影”(Project)而非“定义投影”(Define Projection)完成变换——后者只改元数据不改坐标值,误用会造成系统性偏移。
示例中把全部点位统一到 CGCS2000 3 度带、中央经线 105°E 的投影坐标系。若原始数据为经纬度(GCS CGCS2000),则用 Project 直接转换;若为西安80 坐标,则需选择带基准面转换参数的自定义地理变换,并在结果中抽查 3~5 个已知控制点,残差应控制在米级以内。统一后还应检查点位的 X、Y 范围是否落在研究区包络框内,避免个别点因中央经线选错而“飞”到数百公里之外。
三、缺失值与异常值:区分“没有测到”和“真的很高”
化探数据的缺失主要有两类:一是样品未分析该元素,二是含量低于检出限。前者属于结构性缺失,若某元素缺失比例超过 5%,应评估是否放弃该元素或改用其他指示元素;后者不能简单当作 0,常用做法是以检出限的 1/2 或 1/√2 替代,并在属性表中保留“是否低于检出限”的标志字段,便于后续敏感性分析。示例中 Ag 有 12 个样品低于 0.02×10⁻⁶ 的检出限,统一以 0.01×10⁻⁶ 替代并打标。
异常值识别要避免“一刀切”。地球化学数据本身服从对数正态分布,高值端的长尾往往正是矿化信息。建议先用箱线图看四分位距,用 Q3 + 1.5×IQR 标记可疑点,再结合 3σ 准则(对变换后数据)交叉判断;对孤立的高值点要回查原始采样记录,确认是否为录入错误(如小数点错位、单位混用 ppm 与 %)。只有确认是错误值才剔除或修正,真实的高值簇必须保留——它们恰恰是后续 Gi* 热点分析要识别的对象。示例中 Pb 有一个 8600×10⁻⁶ 的记录,回查发现原始记录为 860×10⁻⁶,属录入错误,予以修正而非删除。
四、分布检验与变换:为统计量准备“合格”的输入
空间自相关本身对分布没有严格正态要求,但基于均值、方差和 z 得分的 Gi*、以及基于条件置换的显著性判断,在强偏态数据上容易失真。因此应先做分布检验:在 ArcGIS Pro 中用“直方图”或“汇总统计数据”查看均值、标准差、偏度、峰度,并绘制 Q-Q 图观察尾部偏离。示例中 Cu 原始偏度约 2.8,呈明显右偏。
常用变换有三种:对数变换 y = ln(x) 适合右偏的正值数据;Box-Cox 变换 y = (x^λ − 1)/λ(λ=0 时退化为对数)可通过极大似然估计最优 λ,在 ArcGIS 中可用“字段计算器”配合 Python 实现;标准化 z = (x − μ)/σ 用于多元素量纲统一。示例对 Cu 取自然对数后偏度降至 0.6,Q-Q 点基本贴合直线,即可作为分析字段。变换后的字段建议命名为 Cu_ln 之类,保留原始字段以便追溯。
# 字段计算器中执行 Box-Cox(示例 λ=0.25)
import math
def boxcox(v, lam=0.25):
return (math.pow(v, lam) - 1) / lam if v > 0 else None
# 表达式:boxcox(!Cu!)
完成上述四步后,应形成一份可交付的预处理记录:样品总数与有效数、各元素缺失比例与替换规则、坐标变换参数与控制点残差、异常值处理清单、变换前后偏度对比。这份记录既是质量凭证,也是后续解释聚类结果时判断“异常是地质的还是数据的”的重要依据。