geoskill-海面油膜检测

内容来源:clawhub · 原始地址 · 查看安装指南

原始内容


name: oil-spill-detection description: > SAR 暗斑油膜检测 — 从 SAR 暗斑中筛选疑似油膜,结合风场、形状、纹理、船舶和自然 slick 线索 输出人工复核候选。支持后向散射阈值分割、多特征融合置信度评分与误报过滤。

Oil Spill Detection

从 SAR 暗斑中筛选疑似油膜,结合风场、形状、纹理、船舶和自然 slick 线索输出人工复核候选。 输出辅助分析、候选对象和证据;涉及行政、工程、安全或事故归因必须人工复核。

Trigger

Use when the user wants to:

  • 识别 SAR 影像中的疑似油膜范围
  • 筛选近岸 SAR 暗斑并按可信度排序
  • 结合风场和 AIS 数据过滤误报
  • 生成人工复核任务清单
  • 评估不同检测方法的效果

CLI Usage

# 合成演示模式(无需输入文件)
python scripts/oil_spill_detection.py --output-dir ./osd-output

# 指定检测方法
python scripts/oil_spill_detection.py --method threshold_adaptive --output-dir ./osd-output

# 自定义最小面积和置信度阈值
python scripts/oil_spill_detection.py --min-area 2000.0 --confidence-threshold 0.5 --output-dir ./osd-output

# 自适应阈值分割
python scripts/oil_spill_detection.py --method threshold_adaptive --grid-size 200 --output-dir ./osd-output

Parameters

Parameter Default Description
--input-dir None 输入数据目录 (省略则使用合成数据)
--output-dir osd-output 输出目录
--method threshold_basic 检测方法 (threshold_basic/threshold_adaptive/multi_feature)
--min-area 1000.0 最小暗斑面积 m²
--confidence-threshold 0.4 置信度阈值
--grid-size 200 合成数据网格大小
--models-config None 模型参数 JSON 文件路径

Output

File Description
dark_spots.geojson 所有检测到的暗斑矢量
oil_candidates.geojson 高置信度疑似油膜候选
confidence.npy 置信度栅格 [0, 1]
feature_table.csv 暗斑特征表
review_report.txt 人工复核报告
request.json 分析请求元数据
dataset-manifest.json 数据集清单
output-manifest.json 输出文件清单
qa.json 质量保证检查

Key Algorithms

暗斑分割

方法 原理 适用场景
基础阈值 后向散射 < 均值 - σ×N 且 < 全局阈值 均匀海面
自适应阈值 基于局部统计的自适应阈值 非均匀海面

特征提取

特征类别 特征 物理意义
形状 紧凑度、伸长率、实心度 油膜通常伸长、中等紧凑
纹理 均值、标准差、背景对比度 油膜均匀且明显暗于背景
风场 风速分区 3-10 m/s 最佳检测区间
船舶 AIS 距离 近距离船舶增加油膜可能

误报过滤

误报来源 过滤策略
低风区 风速 < 3 m/s 标记为低置信度
雨胞 圆形 + 高实心度 → rain_cell 指示
内波 低风 + 高伸长率 → internal wave 指示
生物膜 近岸 + 条带 → coastal streak 指示

置信度分级

等级 范围 含义
极低 0.0 - 0.2 不太可能是油膜
0.2 - 0.4 少量油膜证据
中等 0.4 - 0.6 中等油膜证据,建议复核
0.6 - 0.8 较强油膜证据,建议优先复核
极高 0.8 - 1.0 强油膜证据,强烈建议复核

Exit Codes

Code Meaning
0 成功
2 参数错误
3 依赖缺失
6 数据校验失败
7 处理失败

Important Limitations

  • 暗斑不等于油膜:输出始终称疑似油膜,暗斑只是检测起点
  • 合成数据非真实观测:演示模式使用合成数据,仅用于流程验证
  • AIS 数据缺失时不强行归因船舶:无 AIS 时返回中性置信度
  • SAR 几何门槛高:MVP 支持外部已校准 SAR 数据
  • 分辨率限制:免费 SAR 分辨率可能不足以识别小范围油膜
  • 非最终认定:输出疑似油膜概率和审核状态,不声称最终结论

References

  • Solberg et al. (2007) — Oil spill detection in Radarsat and Envisat SAR images
  • Fiscella et al. (2000) — Oil spill detection using neural networks and SAR data
  • Migliaccio et al. (2007) — A physical approach for oil spill detection in SAR imagery
  • ESA (2020) — SAR oil spill monitoring guidelines

数据下载

本 skill 可自动从 Microsoft Planetary Computer 下载数据 (无需 API key):

python oil_spill_detection.py --bbox 116,39,117,40 --date-range 2024-06-01,2024-06-30 --output-dir <tmp>
  • --bbox W,S,E,N: WGS-84 边界框 (西, 南, 东, 北)
  • --date-range START,END: 日期范围 (YYYY-MM-DD,YYYY-MM-DD)
  • --aoi-file <path.geojson>: 替代 --bbox 的 GeoJSON 多边形
  • --cache-dir <path>: 缓存目录 (默认 ~/.geoskill_cache)

当用户只给 --bbox + --date-range (没有 --sar) 时,skill 自动下载数据。 当用户给 --sar 时,走原文件路径 (向后兼容)。