# Rf Residual Kriging Suite

> 随机森林栅格叠加残差普通克里金并重算精度/分级/统计表全流程。用户需要“RF+残差克里金校正、下限校正、精度与分级统计/乡镇统计/地类统计、导出验证与训练集点表、新增单独栅格处理”时调用。

- Skill: `king9050/rf-residual-kriging-suite` (Agent Skill)
- Install (CLI): `npx skillmds@latest add king9050/rf-residual-kriging-suite`
- Raw SKILL.md: https://api.skillmd.com/api/skills/king9050/rf-residual-kriging-suite/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: king9050 (https://skillmd.com/u/king9050)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/king9050/rf-residual-kriging-suite

---


# 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 行为 1~5 级的值域表达式
- 支持：`(a,b]`、`[a,b)`、`>=x`、`<=x` 等表达式

### 5) 土地利用与乡镇矢量

- 土地利用面：字段 `DLMC`（二级地类）、字段 `一级地`（一级地类）
- 乡镇界面：字段 `XZQMC`

### 6) 公报面积（强约束）

用于“等比例缩放”确保最终耕/园/林/草/其他总面积与公报一致。

## 核心流程（方法步骤）

### A. 残差克里金叠加校正（逐属性）

1. 由验证集表按属性筛选出验证点（经纬度、实际值、预测值、残差）
2. 生成点要素并投影到 RF 栅格坐标系
3. 使用普通克里金对“残差”插值：
   - 变差函数：球状（SPHERICAL）
   - 搜索邻点数：12
   - 环境：snapRaster/extent/cellSize 与 RF 栅格一致
4. 叠加校正：`校正栅格 = RF 栅格 + 残差克里金栅格`
5. 精度重算（验证集）：
   - 从校正栅格提取验证点预测值
   - 计算 R²、RMSE（仅验证集）
   - 同时输出 RF 原始精度（验证表中实际值 vs 预测值）

### B. 下限校正（已合并入残差克里金校正流程）

1. 脚本中预设了各属性的制图下限值（如 `pH`: 3.5, `有机质`: 1.0 等）。
2. 叠加残差克里金时，会直接计算结果栅格的最小值。
3. 若最小值 < 0，会自动输出提示并将所有 `<0` 像元替换为下限值。
4. 后续所有的精度验证、分级对比和面积统计都直接基于这个唯一的“已校正”栅格进行。不再需要分别输出两套表格。

### C. 分级栅格与样点/制图对比（逐属性）

1. 按分级标准表将校正栅格重分类为 1~5 级分级栅格
2. 样点分级统计：
   - 样点属性值按同一分级规则统计 1~5 级数量与占比
3. 制图分级统计：
   - 统计分级栅格各级像元数 → 面积（万亩）
4. 输出“分级对比表”（含均值/中位值/范围）

### 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`

运行方式（示例）：

```powershell
& "C:\installsoft\gispro35\bin\Python\scripts\propy.bat" "G:\...\rf_residual_kriging_pipeline.py"
```

## 校验清单（完成后必须检查）

- 校正后（下限校正）属性栅格最小值不小于对应“制图下限”
- 表2/表3 的“总计/亩”与公报面积严格一致
- 表1 的各分区面积（万亩）与公报面积严格一致（换算后）
- 精度表中的验证点数与验证集表筛选后的点数一致


