RF 残差克里金校正与统计全流程
本技能把“随机森林预测栅格 + 验证集残差克里金插值”做成可复用流水线,并输出:
- 残差克里金栅格、叠加校正栅格
- 校正后(可选:下限校正)的验证集 R² / RMSE 对比表
- 按分级标准重分类的分级栅格与样点-制图分级对比表
- 叠加校正后每个属性的验证集点表(经纬度/实际/预测/残差)
- 叠加校正后每个属性的训练集点表(经纬度/实际/预测/残差)
- 补充 3 个统计表:
- 表1:不同土地利用下样点统计 + 预测栅格面积对比(万亩)
- 表2:耕地地类下各乡镇分级面积统计(亩)
- 表3:耕/园/林/草/其他各地类分级面积统计(亩)
适用场景(触发条件)
- 用户已有 RF 预测栅格(多属性 tif)与“验证集点+残差表”
- 需要用 ArcGIS Pro(arcpy)做普通克里金插值残差并叠加校正
- 需要重新计算验证集精度(仅验证集)并导出结果表
- 需要按分级标准重分类、并做样点/制图面积的统计对比表
- 需要按公报面积对地类总面积做比例缩放,保证最终一致
输入数据要求
1) RF 预测栅格目录
- 文件名形如:
属性_预测结果.tif
2) 验证集残差表(Excel)
合并验证集表(工作表名可为“合并验证集”,否则默认首个工作表)至少包含字段:
- 属性、经度、纬度、实际值、预测值、残差
残差为空时按 残差 = 实际值 - 预测值 计算。
3) 样点表(Excel)
至少包含字段:
- longitude、latitude
- 各属性字段(与栅格/分级表的“属性名”一致或可规范化匹配)
- 土地利用字段(用于表1分地类统计;字段名建议为“土地利用”)
4) 分级标准表(Excel)
2属性分级标准表.xlsx- Sheet1:第 1 行为属性名列,2
6 行为 15 级的值域表达式 - 支持:
(a,b]、[a,b)、>=x、<=x等表达式
5) 土地利用与乡镇矢量
- 土地利用面:字段
DLMC(二级地类)、字段一级地(一级地类) - 乡镇界面:字段
XZQMC
6) 公报面积(强约束)
用于“等比例缩放”确保最终耕/园/林/草/其他总面积与公报一致。
核心流程(方法步骤)
A. 残差克里金叠加校正(逐属性)
- 由验证集表按属性筛选出验证点(经纬度、实际值、预测值、残差)
- 生成点要素并投影到 RF 栅格坐标系
- 使用普通克里金对“残差”插值:
- 变差函数:球状(SPHERICAL)
- 搜索邻点数:12
- 环境:snapRaster/extent/cellSize 与 RF 栅格一致
- 叠加校正:
校正栅格 = RF 栅格 + 残差克里金栅格 - 精度重算(验证集):
- 从校正栅格提取验证点预测值
- 计算 R²、RMSE(仅验证集)
- 同时输出 RF 原始精度(验证表中实际值 vs 预测值)
B. 下限校正(已合并入残差克里金校正流程)
- 脚本中预设了各属性的制图下限值(如
pH: 3.5,有机质: 1.0 等)。 - 叠加残差克里金时,会直接计算结果栅格的最小值。
- 若最小值 < 0,会自动输出提示并将所有
<0像元替换为下限值。 - 后续所有的精度验证、分级对比和面积统计都直接基于这个唯一的“已校正”栅格进行。不再需要分别输出两套表格。
C. 分级栅格与样点/制图对比(逐属性)
- 按分级标准表将校正栅格重分类为 1~5 级分级栅格
- 样点分级统计:
- 样点属性值按同一分级规则统计 1~5 级数量与占比
- 制图分级统计:
- 统计分级栅格各级像元数 → 面积(万亩)
- 输出“分级对比表”(含均值/中位值/范围)
D. 导出校正后验证集与训练集点表(逐属性)
输出字段:
- 经度、纬度、实际值、预测值(叠加残差克里金)、残差(实际-预测)
注:训练集是通过用总样点表扣除验证集点后提取生成的。
E. 补充统计表
由于下限校正已内置,现在补充统计表仅会生成一个汇总所有属性的最终版本:
表1:不同土地利用下样点与制图面积对比(万亩,3 位小数)
- 样点:按样点表“土地利用”分组,统计均值/范围/数量
- 制图:按土地利用面划分:
- 耕地、园地:按二级地类(DLMC)统计
- 林地、草地:按一级地类统计
- 其余归为“其他”
- 面积:按公报面积口径展示(万亩)
- 栅格均值:按土地利用分区加权平均(权重=公报面积)
表2:耕地下各乡镇分级面积统计(亩,整数)
- 分级栅格在“耕地”范围内按乡镇(XZQMC)统计 1~5 级面积
- 将统计结果按耕地公报总面积做等比例缩放,最后按“保和取整”保证合计严格一致
表3:各地类分级面积统计(亩,整数)
- 按耕/园/林/草/其他 5 类统计 1~5 级面积
- 每个一级地类行内按该类公报面积做等比例缩放,最后按“保和取整”保证与公报一致
产出目录建议
建议在一个“成果根目录”下分层保存:
- 01_残差克里金栅格
- 02_叠加校正栅格(已包含下限校正结果)
- 03_分级栅格
- 04_表格(精度表和分级对比表)
- 05_验证集点表
- 05_训练集点表
- 06_补充统计表(表1、表2、表3汇总)
推荐脚本入口(ArcGIS Pro Python 环境)
以下脚本在本项目目录内:
- 残差克里金叠加校正 + 下限校正 + 分级对比 + 精度对比:
rf_residual_kriging_pipeline.py - 导出校正后验证集点表:
export_corrected_validation_points.py - 导出校正后训练集点表:
export_training_points.py - 生成补充统计表1/表2/表3:
landuse_township_tables.py
运行方式(示例):
& "C:\installsoft\gispro35\bin\Python\scripts\propy.bat" "G:\...\rf_residual_kriging_pipeline.py"
校验清单(完成后必须检查)
- 校正后(下限校正)属性栅格最小值不小于对应“制图下限”
- 表2/表3 的“总计/亩”与公报面积严格一致
- 表1 的各分区面积(万亩)与公报面积严格一致(换算后)
- 精度表中的验证点数与验证集表筛选后的点数一致