ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ArcGIS泛克里金插值:原理、参数设置与实操指南

ArcGIS泛克里金插值:原理、参数设置与实操指南 做土壤重金属空间分布、地下水水位调查、空气质量监测这类工作的时候采样点永远不够用这是做GIS的人最熟悉不过的痛。ArcGIS里插值工具一大堆新手最先上手的多半是IDW反距离加权出图快、参数少但结果带着明显的“牛眼”效应进阶用户会换普通克里金Ordinary Kriging考虑了空间自相关之后预测面平滑了不少。可一旦你的数据存在区域性趋势——比如整个研究区从南到北污染物浓度整体抬升或者地下水位从补给区向排泄区呈现明显的单斜倾斜——普通克里金那张“一马平川”的预测面就盖不住这个趋势了。这时候ArcGIS里的泛克里金插值Universal Kriging才是真正对路的工具。这篇文章我会换个讲法不只给你贴操作截图而是先把泛克里金到底“泛”在哪里讲清楚再带着你从数据检查、参数设置、向导操作、交叉验证一路走到结果输出和专题图制作。新手可以照着一步步操作有经验的人也能跳过基础段落直接看参数取舍和问题排查部分。无论你是刚接手第一批样点数据开始处理还是已经在业务里跑了多年插值、想弄明白什么时候该用泛克里金这篇内容应该都能给你一些参考。1. 泛克里金是什么它和普通克里金差在哪1.1 普通克里金的边界恒定均值假设克里金插值的核心逻辑是假设空间变量同时具备两个部分一个确定性的结构项一个随机的空间相关项。用公式写就是Z(s) μ(s) ε(s)其中s代表空间位置μ(s)是确定性趋势ε(s)是空间随机误差。克里金家族的成员说到底就是在“如何对待μ(s)”这个问题上分家的。普通克里金Ordinary Kriging简称OK的假设是μ(s)是一个未知的常数在整个研究区范围内不变。也就是说它认为变量的空间变化纯粹是由邻域点之间的自相关结构来解释的不存在全局性的抬升或下降趋势。在这个假设下同一片区域里南边和北边的“基础水平”是一样的插值时只要用好局部邻域里的点就能给出不错的预测。这个假设成立吗在很多场景下是成立的比如小范围内的土壤pH值、农田养分的局部变异整体上确实没有太明显的系统趋势。但换个场景就麻烦了地下水水位观测井布在山区和河谷之间水位从上游到下游呈现出明显的高差变化空气质量监测站分布在城市中心和郊区PM2.5浓度从市区向郊区系统性递减。这些数据一放进普通克里金里预测面会被“平均化”掉——明明北边整体高于南边插值结果却把两边的差异互相抵消导致预测面严重失真。我见过不少人拿普通克里金做这类数据出来的等值线图怎么看都不合理最后怀疑是数据分析错了其实是方法选错了。1.2 泛克里金的“泛”到底体现在哪泛克里金Universal Kriging简称UK要解决的就是这个场景。它不再假设μ(s)是常数而是允许μ(s)随空间坐标变化通常把它表示成坐标的多项式函数一阶趋势μ(s) β0 β1·x β2·y相当于假设变量沿x方向或y方向存在一个线性的系统变化二阶趋势μ(s) β0 β1·x β2·y β3·x² β4·y² β5·xy可以拟合更复杂的弯曲趋势面。也就是说泛克里金把空间变化拆成了两层第一层是全局的系统性趋势第二层是在趋势之上的局域自相关波动。插值的时候先用趋势项把全局骨架搭好再用点位之间的自相关去修复局部的偏差。这和我平时跟朋友解释的感觉很像普通克里金是“大家都是一个基准水平只是邻里之间你多一点我少一点”泛克里金是“先看到全城房价从中心向郊区递减的大趋势再在这个趋势附近看邻里波动”。ArcGIS里从方法名称上就能看出来在Geostatistical Analyst扩展模块的地统计向导里克里金方法的下拉列表中除了普通的Kriging还有Simple Kriging、Universal Kriging等选项。选Universal Kriging之后核心比普通克里金多出来的设置就是趋势阶数Order of Trend。1.3 什么数据真正适合泛克里金判断数据适不适合用泛克里金我的经验是三个条件第一样本数量要够。泛克里金要额外估计趋势项的系数每个趋势系数都消耗自由度样本量四五十个以上的时候才比较稳少于三十个点建议直接放弃泛克里金老老实实用普通克里金或者简单的插值。第二趋势要真的存在且稳定。你可以先用ArcGIS里的趋势分析工具Trend Analysis快速看一眼把采样点的Z属性值竖起来投影到南北和东西两个方向上如果剖面曲线表现为明显的倾斜或弯曲而不是来回乱跳说明存在值得建模的系统趋势。第三趋势要能用多项式合理表达。一阶或二阶多项式能刻画的趋势才适合泛克里金比如受距离污染源远近影响而线性递减、受海拔控制的高程相关变量。如果趋势变化很复杂比如破碎的地形地貌多项式根本拟合不了那更适合考虑带协变量的回归克里金Regression Kriging或者换用其他方法。2. 动手前必看ArcGIS泛克里金的核心参数2.1 半变异函数插值的灵魂不管你用普通克里金还是泛克里金都避不开半变异函数semivariogram这个环节。它刻画的是“点与点之间的差异如何随距离变化”。经验半变异函数用如下公式计算γ(h) 1/(2·N(h)) · Σ[Z(si) - Z(sj)]²说白了把所有相距约等于某个距离h的点对找出来求它们属性值差的平方的平均值的一半就得到了这个距离上的半变异值。正常情况下距离越近点之间的属性越相似γ(h)越小距离越远属性差异越大γ(h)越大最后趋于一个平稳值。ArcGIS地统计向导里你需要给这个经验半变异函数拟合一个理论模型。常用的是这几种模型名变化特征适用场景球面模型Spherical自相关随距离线性增加达到基台值后平稳最常见的默认选择适用性强指数模型Exponential自相关渐近增长不会真正到平台尾巴拖很长变量随距离缓慢衰减空间连续性较强高斯模型Gaussian原点附近自相关增长很慢曲线呈倒S形变量非常平滑连续性极高稳定模型Stable灵活控制指数形状参数前面几种拟合不好时再用这里我要说一个实操中常见的坑很多人完全依赖默认设置的球面模型结果半变异函数拟合曲线和散点差距很大也不去看。实际上选择模型的第一个标准就是眼睛打开半变异函数图看哪个模型的曲线与经验半变异值散点贴得最近。第二个标准是交叉验证指标模型之间RUN一下对比RMSE谁小选谁。另外半变异函数图里最左端的截距叫块金值Nugget它反映的是测量误差和小于最小采样间距的微观变异。如果你发现块金值占基台值的比例超过了50%基本可以认为你的数据空间自相关性很弱点位间的差异主要是随机噪声这时候不管是普通克里金还是泛克里金预测效果都不会太好你要反过来审视采样方案和数据质量。2.2 趋势阶数Order of Trend怎么取舍泛克里金区别于普通克里金的设置就是趋势阶数。ArcGIS地统计向导里叫“Order of trend of removal”可选项是0、1、2。要强调的是这里的阶数不是越高越好趋势阶数每增加一阶要额外估计的参数就多好几个。一阶趋势有β0、β1、β2三个系数二阶趋势直接到六个系数。样本量本来就不宽裕的情况下参数太多就是过拟合的温床。我的经验结论可以归纳为优先试一阶只有当趋势分析工具或交叉验证结果显示一阶明显不足时才考虑二阶。而且趋势阶数加高以后你务必多看预测面的边界和外推区域。二阶趋势特别容易在数据覆盖范围之外翻出巨大的预测值——那就是趋势多项式在外推时“放飞自我”了。宁可预测面整体趋势弱一点也不要边界上冒出让人怀疑人生的数值。还有一个细节ArcGIS中“Order of trend of removal”这个名字的意思是“要移除的趋势的阶数”。它表达的是先拟合一个趋势面把它移除再对残差做克里金最后把趋势面加回预测值。所以趋势阶数学意义上越高数据里被趋势面“吃掉”的成分越多残差的空间自相关通常会更弱。在实践中你会发现趋势阶数从0变成1后半变异函数的块金值往往会显著下降这是个正常现象说明原来被残差当作噪声吸收掉的一部分空间变异其实是由全局趋势贡献的。2.3 搜索邻域决定预测值具体拼装的要素ArcGIS地统计向导里的搜索邻域Search Neighborhood设置很多人习惯了默认值就不动了。搜索邻域的作用是预测某个位置的值时只用模型范围内的哪些样本点来参与计算。默认设置一般是最多包含5个点、至少包含2个点分成4个扇区Sector包含各向异性椭圆。实际操作里我建议这样调邻域太小比如最多3个点插值面会很碎、方差大邻域太大比如20个点以上远处的点被拖进来参与计算会过度平滑把局部细节磨掉。常规做法是取5到10个点分4个扇区每个扇区保证至少1到2个点这样方位上比较均衡不会因为某一边点特别密而主导预测。各向异性Anisotropy要重点说。如果你打开半变异函数/协方差面的俯视图发现它不是一个圆形而是一个被拉伸的椭圆说明数据在不同方向上的自相关程度不一样。比如污染物沿河流方向连续性好垂直于河流方向变化快就是典型的带状各向异性。这时应该保留各向异性的设置让搜索邻域也变成一个方向性的椭圆。判断方法不复杂向导中把Anisotropy从False切换成True对比交叉验证RMSE有没有改善再决定是否保留。3. ArcGIS中泛克里金插值的实操流程3.1 数据准备投影、正态性与趋势检验把数据直接丢进地统计向导之前我强烈建议按下面三步把数据底座打好。这个环节省了后面参数调得再好也白搭。首先是投影坐标系检查。ArcGIS里的克里金插值是严格基于坐标距离计算的如果你的数据还挂在WGS84、CGCS2000这类地理坐标系上经纬度的单位直接影响距离计算高纬度的结果会偏得很离谱。务必先把数据投影到适合本区域的米制投影坐标系比如UTM投影带、高斯克吕格投影、Albers等积投影再进入插值流程。其次是正态性检查。克里金虽然不要求数据严格正态但强烈偏态的数据会让半变异函数被少数大值牵着走。打开Geostatistical Analyst下拉菜单中Explore Data里的Histogram和Normal QQPlot工具看数据分布。如果明显偏态就在向导里选择变换选项常用的是Log变换或Box-Cox变换。这里有个容易忽视的关键点如果你做了变换最终插值结果会自动反变换回原始尺度所以不用担心结果不可解释。第三是趋势检验。用Explore Data里的Trend Analysis工具半透明立方体里把属性值竖起来看二维剖面。如果东西或南北剖面有明显斜坡说明需要泛克里金的一阶趋势如果是U形或拱形可以考虑二阶如果剖面基本水平别用泛克里金普通克里金就够了。3.2 Geostatistical Wizard 逐步操作详解在ArcMap中确保扩展模块里Geostatistical Analyst已勾选Customize → Extensions → Geostatistical Analyst再在工具栏下拉菜单中启动Geostatistical Wizard。ArcGIS Pro里的路径类似入口在Geoprocessing面板和地统计工具箱里逻辑一模一样。第一步方法选择窗口选中“Kriging / Co-Kriging”点击Next。此时在方法详情面板可以看到多种克里金类型选择Universal Kriging预测类型选默认的Prediction。这就是泛克里金插值的入口。第二步在数据集窗口中数据集1选择你的点图层数据字段选择要插值的属性字段。如果图层的当前显示范围不是全图注意勾选“Use spatial extent”或调整环境设置避免只用了显示区域里的点去构建模型。第三步进入关键的趋势移除设置。在Semivariogram/covariance modeling页面里找到Order of trend of removal默认是1一阶趋势。切换0、1、2分别观察半变异函数图的变化和拟合曲线效果。我实际操作时一般会先设1看一下半变异函数散点是否变得干净再切换2对比最后再看交叉验证指标定夺。第四步半变异函数模型设置。Optimize model是自动优化参数可以先用它跑一遍如果拟合曲线肉眼可见地偏离散点就手动调整Nugget、Partial Sill、Range这三个参数。实操中手动调参有个技巧先盯住变程Range附近的散点让曲线穿过散点云的中间带不要被最远处的少数散点带偏。第五步搜索邻域设置。按前面说的方法取合理邻域点数和扇区设置根据半变异函数轭面形状决定是否打开各向异性。第六步向导的最后一页可以切换到Cross Validation标签页查看交叉验证结果。这里不要急着点Finish我习惯在这里先记录误差指标不满意就返回上一步调整参数多试几轮再定最终模型。第七步点击Finish生成一个GA Layer地统计图层保存到ArcMap内容列表中。这个图层保留了完整的模型参数后续可以右键预览预测图、标准差图也可以直接用导出工具转成栅格。3.3 交叉验证用数据说话选最优模型交叉验证Cross Validation是克里金插值中最不该跳过的环节。原理很朴素对每个样本点暂时把它拿掉用其余点预测它的值然后把实际值和预测值放一起算误差指标。ArcGIS地统计向导会自动完成这步并生成一组统计指标关键是你看不看得懂。核心指标有五个指标理想值含义Mean ErrorME平均误差接近0预测是否有系统偏差Root-Mean-Square ErrorRMSE均方根误差越小越好整体预测精度Average Standard ErrorASE平均标准误差越接近RMSE越好预测方差估计是否合理Mean Standardized ErrorMS标准化平均误差接近0标准化后的系统偏差Root-Mean-Square Standardized ErrorRMSS标准化均方根误差接近1预测不确定性估计是否恰当最容易被忽略的是最后一个RMSS。RMSS明显大于1说明你低估了预测的不确定性实测差异比模型预期的更大RMSS明显小于1说明模型把不确定性估得太保守预测面看起来波动很大但实际数据比这更平缓。我自己的习惯是先看ME和MS是不是接近0再看RMSE是不是在两组对比中更小最后必须确认RMSS贴近1这三个条件同时满足才选它。实操中我会做这样一个对比同组数据跑一遍普通克里金趋势阶数0和泛克里金趋势阶数1或2把交叉验证指标记录到Excel里。肉眼看到的数据趋势再强最终都以这组数字说了算。多数有真实趋势的数据泛克里金的RMSE会明显下降RMSS会向1靠拢。如果普通克里金的指标已经很好泛克里金没有实质改善那就别为了用高级方法而用高级方法直接选简单的。4. 常见问题与排查技巧实录4.1 泛克里金结果还不如普通克里金问题出在哪这种情况我遇到过好几次每次排查下来基本都集中在三个原因上。第一个原因是趋势阶数过高导致过拟合。数据里本来只有一点弱趋势你直接上二阶趋势半变异函数拟合好看但交叉验证指标一塌糊涂预测面的边界还会出现夸张的隆起或凹陷。处理方法很简单降回一阶甚至零阶试试对比一下指标是否反而更好。第二个原因是样本量的自由度不够。泛克里金增加了趋势项的参数估计量样本量太少、空间分布又极度不均匀时参数估计非常不稳定。我建议这种时候回到普通克里金或者把趋势阶数固定在1别强行上二阶。第三个原因是你模型的趋势项掩盖了局部变异。如果某块区域恰好有高值聚集但整体趋势把它归类为“全局趋势的一部分”局部预测就会被拉平。判断方法查看预测误差图Prediction Standard Error如果误差在数据密集区仍然很大说明趋势项侵占残差空间过大这时候把趋势阶数降低或者关掉各向异性再跑一轮。4.2 那些怎么调都调不好的警告信息ArcGIS地统计向导会给出各种警告新手见了慌老手其实也烦。比较常见的有下面几种半变异函数出现“Negative Nugget”或拟合失败。多半是经验半变异函数形态怪异可能因为数据存在重复点或异常点。处理方法先用Geostatistical Analyst的Explore Data检查数据把明显异常的值核实一遍看看是不是录错坐标或属性。重复点如果比较多用相关工具按位置聚合取平均值作为该点的属性再跑插值。半变异函数散点图几乎是一条水平线所有点都在基台值附近。这说明空间自相关性非常弱点与点的属性差异与距离关系不大。这个问题的根源在数据本身不在参数。克里金类方法此时已经没有太多优势可以考虑换用反距离加权或者其他统计模型甚至重新审视采样方案。预测标准差图里出现异常大值的区域。常见于数据覆盖范围边界和内部数据空洞区尤其是泛克里金趋势阶数设高后的外推区域。这其实是模型在诚实地说“这个位置我没有足够数据”。可以接受这种不确定性也可以考虑增加采样或者在结果输出时把外围区域裁掉。4.3 由实操细节引发的低级失误有一个非常隐蔽但发生频率极高的失误你用ArcMap或ArcGIS Pro做插值前忘了设置输出范围和分析环境的掩膜导致生成的预测栅格是一个包住所有采样点的矩形研究区以外也随之生成大片预测值。后面做专题图的人就直接拿着这张图去裁剪结果边缘怎么裁都不干净。解决办法是在Geoprocessing → Environments里设置Processing Extent为研究区边界设置Mask为研究区面要素再运行栅格转换。另一个失误是对非负值数据不做处理。土壤重金属浓度、降水量、水位埋深这些都是严格非负的物理量克里金预测却可能出现负值。原因多半是数据波动大、预测范围横跨零附近。处理办法有几种一是先对数据做对数变换再进行插值ArcGIS会反变换回原尺度二是做简单克里金时选上Normal Score变换三是如果负值只出现在少数栅格单元且模型整体可靠出图时用独特值分类把负值归入不可用区域即可。5. 从预测面到正式成果后续处理不可漏5.1 预测面与标准差面怎么导出GA Layer不是最终成果一般我们会把它导出成栅格。在ArcMap中右键GA Layer选择Data → Export to Raster或者用Geostatistical Analyst工具栏里的“Export to Raster”按钮。建议同时导出两张一张是预测面Prediction Map另一张是预测标准差面Prediction Standard Error Map。标准差面是很多人在实际工作中完全忽略的东西。它表达的是每个栅格单元预测值的不确定性非常有用。比如你做污染物风险评价可以设定一个阈值预测值超过阈值且不确定性较低的区域是高风险区预测值超过阈值但标准差很大的区域说明证据不足可能需要补充采样。带着标准差面一起出图报告的可信度和专业度都会高很多。导出设置里有两个坑。第一个是栅格分辨率默认可能跟着数据框或显示范围走实际项目中要根据研究精度需求设定比如10米、30米或100米不要默认多大就用多大。第二个是输出路径和名称不能有中文和特殊符号不然ArcGIS会报错这是老生常谈却依然频繁踩中的问题。5.2 裁剪、掩膜与专题图制作栅格导出后用Extract by Mask工具把预测面和标准差面裁剪到研究区边界。这里再次提醒如果之前分析环境里已经正确设置掩膜导出范围直接就对了如果没有现在做裁剪也行但要注意边缘效应区域可能会被裁进研究区边界内部造成不真实的预测表现。如果你想做成可发布的专题图我建议在ArcGIS Pro里用分类着色来显示预测面。对于连续型预测数据选分位数或自然间断点分类法比等间距分类法更贴合数据分布。图例里一定要标明单位如果是预测标准差面建议用从浅到深的单色渐变直观表达不确定性从低到高。做过一次完整的泛克里金插值项目之后你会意识到这个方法不是简单的“换个按钮点一下”就能出好效果。它真正的价值在于迫使你系统性地思考数据、趋势和不确定性之间的关系——这种思路比单纯学会一个工具重要得多。后续如果想把空间插值做得更精细你还可以在这个基础上研究带协变量的回归克里金或者在ArcGIS里结合地统计模拟做不确定性传播分析那又是另一个有意思的方向了。
返回列表