关于 change-detection
用于检测和验证影像、时间序列及矢量数据中地表变化的地理空间分析技能,指导方法选择、误差排查和不确定性报告。
主要功能
- 01选择影像、SAR、时间序列及矢量方法
- 02检查配准、季节、辐射一致性和有效覆盖
- 03设定统计阈值并检验敏感性
- 04比较类别转移并审计矢量差异
- 05估算精度及带置信区间的修正面积
适用场景
- 01比较不同日期的卫星影像
- 02分析密集影像序列中的渐变与突变
- 03审计不同版本地块或建筑矢量的变化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ muend/ geoai-skills --skill change-detection安装后在 Claude Code 中输入/change-detection确认已加载。
附带文件agents/openai.yamlreferences/authoritative-sources.md
详细介绍
变化检测与时空分析
目的:区分真实地表变化与四大冒牌者—— 配准错误、辐射漂移、物候变化和分类错误。 以下每种方法都是为了控制其中一种;跳过控制措施, 就会生成对虚无内容信心满满的地图。
前置条件(变化检测的成败所在)
前置条件 1 和 2 会在此处检查,但需在其他地方满足。任一条件 不满足时,由负责该条件的技能主导;待观测数据具有可比性后,本技能再继续。前置条件 3 是本技能自身的问题,不能作为转交其他技能的理由。
- 配准:不同时相之间实现亚像素级对齐(使用 AROSICS 或
手动控制点)。半个像素的偏移就会到处产生边缘状的虚假变化。验证方法:快速切换对比清晰特征。对于高程表面或点云,垂直基准一致性、配准和垂直精度预算都属于
point-cloud-lidar——基准偏移不等于地面沉降。 - 辐射一致性:处理级别相同(地表反射率)、传感器相同、处理基线相同。如果三者中任一项不同,这就是一个协调处理问题,而不是阈值化问题:交给
remote-sensing-analysis(Landsat↔Sentinel-2 使用 HLS;使用 PIF 进行相对归一化;处理 Sentinel-2 2022 基线变更中跨影像的BOA_ADD_OFFSET)。 - 双时相分析应处于相同季节/物候阶段——将 5 月与 9 月的影像配对,“检测到”的其实是夏季变化。如果无法匹配季节,请改用合成影像或时间序列方法。
- 对跨时相的云/阴影掩膜取交集;仅分析两期均有效的像素,并报告其覆盖率百分比。
方法选择
| 情况 | 方法 |
|---|---|
| 两个时相,连续型“变化多少” | 指数差分(ΔNDVI、ΔNBR……),并进行统计阈值判定 |
| 两个时相,类别型“从什么变成什么” | 分类后比较(仅适用于分类器准确性较高的情况) |
| 两个时相,多变量稳健分析 | 变化向量分析(CVA);使用 MAD/iMAD 进行传感器稳健型检测 |
| 密集影像堆栈,渐进变化 + 突变 | 趋势 + 断点分析(BFAST/LandTrendr/CCDC 系列;归档规模分析 → google-earth-engine) |
| 结构变化(建筑物) | 深度学习双时相分割(孪生 U-Net)→ geo-deep-learning |
| SAR 配对影像(云层、灾害) | 校准后后向散射的对数比 + 斑点处理 |
| 矢量数据版本(地块、建筑物) | 使用容差进行几何 + 属性差异比较(见下文) |
阈值判定——切勿凭目测
差异影像需要有依据的阈值:根据差异直方图使用 μ ± k·σ(报告 k), 双峰分布时使用 Otsu,或使用基于标注变化/未变化样本校准的监督式阈值。交付直方图,并标出所选阈值。敏感性分析:报告 k-0.5 和 k+0.5 时的变化面积;如果结论发生反转,说明检测结果不稳健——请明确说明。
分类后比较(PCC)——谨慎处理
PCC 的误差会叠加:两张准确率均为 90% 的地图,变化检测准确率最高约为 81%, 而有偏差的错误会产生系统性的虚假转变。规则:
- 使用一个在两个时相影像上训练的分类器(图例相同、 特征相同),而不是分别使用两个独立的旧分类图。
- 构建完整的转移矩阵(按类别统计“从某类到某类”的面积),而不只是变化/未变化二元结果——不可能的转变(1 年内从水体变成森林)就是错误检测器。
- 差分前,确保两个时相使用一致的最小制图单元。
时间序列(密集堆栈)分析
- 构建填补空缺且屏蔽云层的指数堆栈(xarray,时间维度)。
- 分解趋势、季节性和突变;逐像素线性趋势需要进行显著性检验(针对单调趋势,使用 Mann-Kendall 检验和 Sen's 斜率,并对数百万个像素进行 FDR 校正,否则你的“变绿地图”只是噪声)。
- 标注突变日期,而不只是是否发生突变——时间通常才是分析的核心(清理从何时开始?)。
- 尽可能依据已知事件(火灾、建筑许可、灾害日期)验证检测到的突变。
矢量变化审计(同一图层的两个版本)
- 如果存在稳定 ID,按 ID 匹配要素;否则进行空间匹配,并报告 IoU 阈值。
- 分类为:新增 / 移除 / 几何变化(面积差值 > 容差)/ 属性变化。容差可吸收数字化抖动——地籍级数据取 1–2 m,基于影像数字化的数据则取更大的值。
- 按类别汇总面积差值并核对总量;无法解释的差额 = 匹配错误。
精度评估(交付成果的核心)
变化很少见,因此随机抽样会浪费精力去抽查稳定像素——应采用分层抽样(分层依据:变化 / 未变化,或按每种转变类型),并使用良好的面积估算方法(Olofsson 等人的方案):报告每个分层的用户精度 / 生产者精度,以及经地图误差调整的面积估算值和置信区间。变化地图中的原始像素计数是有偏的面积估算值——务必报告调整后的数值。
报告模板
## Change: <phenomenon>, <T1> → <T2 or period>
- Data: <sensor/level>, co-registration RMSE: <px>, valid overlap: <%>
- Method: <...> threshold/params: <...> (sensitivity: <stable/fragile>)
- Transitions: <matrix or top-5 list with areas ± CI>
- Accuracy: stratified n=<>, UA/PA per class, adjusted areas ± CI
- Impostor controls: season <matched?>, radiometry <harmonized?>
易错点检查清单
- 配准错误导致的虚假边缘变化。
- 将季节差异说成土地覆盖变化。
- 对两张独立制作的旧地图进行 PCC。
- 仅凭“看起来合适”选择阈值,未做敏感性分析。
- 将原始变化像素数报告为面积(没有经误差调整的估算值)。
- 趋势地图未进行多重检验校正。
- 在未滤波的线性功率影像上检测 SAR 变化。
执行约定
- **工作流:**定义变化问题;统一范围、季节、辐射、分辨率和配准;选择方法;估算变化;验证;报告不确定性。
- **决策规则:**仅对可比较的连续信号使用直接差分;对类别图例稳定的数据使用分类后比较;存在密集时间序列堆栈时使用时间序列方法。
- **验证方案:**量化共配准情况、有效重叠范围、阈值敏感性、转变核算,以及经精度调整且带有置信区间的面积。
- **失效模式:**如果季节、传感器、云层、配准或独立地图误差可能解释该信号,则不应接受因果性变化结论。
- **交付成果:**变化地图、转变或趋势表、参数记录、验证样本和指标、调整后的面积估算值,以及局限性说明。
- **来源时效性:**使用依赖版本的产品或 API 前,请查阅权威来源注册表,并记录查阅日期。
评论
支持 Markdown