卫星图像处理基础与应用 - 从遥感到变化检测
卫星影像与遥感基础
遥感通过卫星或航空平台搭载的传感器,在不直接接触地表的情况下获取地球表面信息。不同传感器捕获不同波段的电磁辐射,揭示肉眼不可见的地表特征。
主要卫星平台:
- Sentinel-2 (ESA): 13 个波段,10m 分辨率,5 天重访。免费开放
- Landsat 8/9 (NASA/USGS): 11 个波段,30m 分辨率,16 天重访。免费
- WorldView-3 (Maxar): 31cm 全色分辨率,商业卫星
- Planet (PlanetScope): 3m 分辨率,每日全球覆盖。商业
光谱波段:
- 可见光 (RGB): 自然色彩,与人眼所见相同
- 近红外 (NIR): 植被强反射,用于植被监测
- 短波红外 (SWIR): 水分敏感,用于土壤湿度和矿物识别
- 热红外 (TIR): 地表温度测量
预处理 - 几何校正与大气校正
原始卫星影像包含几何畸变和大气影响,预处理将其转换为可分析的地表反射率数据。
几何校正:
- 消除卫星姿态、地球曲率和地形起伏导致的几何畸变
- 将影像配准到标准地图投影 (如 UTM)
- 使用地面控制点 (GCP) 和数字高程模型 (DEM) 进行正射校正
- Sentinel-2 L1C 产品已完成几何校正
大气校正:
- 去除大气散射和吸收的影响,获得地表真实反射率
- 将 TOA (大气顶) 辐射转换为 BOA (大气底) 反射率
- 算法: Sen2Cor (Sentinel-2), FLAASH, 6S 辐射传输模型
- Sentinel-2 L2A 产品已完成大气校正,可直接使用
云检测与掩膜: 云覆盖区域的数据无效,需要识别并排除。Sentinel-2 提供 SCL (Scene Classification Layer) 云掩膜。深度学习方法 (如 s2cloudless) 提供更准确的云检测。
植被与水体指数 - 波段运算的信息提取
通过不同波段的数学组合计算指数,定量提取地表特征信息。
NDVI (归一化植被指数):
NDVI = (NIR - Red) / (NIR + Red)
- 值域 [-1, 1]。健康植被 > 0.3,裸土 0-0.2,水体 < 0
- 最广泛使用的植被监测指标
- 应用: 农作物长势监测、森林健康评估、城市绿化分析
NDWI (归一化水体指数):
NDWI = (Green - NIR) / (Green + NIR)
- 正值表示水体,用于水域提取和洪水监测
其他常用指数:
- EVI: 增强型植被指数,修正大气和土壤背景影响
- NDBI: 归一化建筑指数,用于城市区域提取
- NBR: 归一化燃烧比,用于火灾损害评估
土地覆盖分类 - 机器学习地表分类
将卫星影像的每个像素分类为特定的土地覆盖类型 (森林、农田、城市、水体等)。
分类方法:
- 随机森林: 使用多光谱波段值和指数作为特征,训练分类器。简单有效,是遥感分类的主力方法
- SVM: 在高维特征空间中寻找最优分类超平面。小样本时表现好
- 深度学习: U-Net 或 DeepLab 进行像素级分类。需要大量标注数据但精度最高
训练数据获取:
- 人工标注: 在高分辨率影像上手动标记训练区域
- 现有数据集: CORINE Land Cover (欧洲), NLCD (美国)
- 众包: OpenStreetMap 数据作为弱标签
精度评估: 使用混淆矩阵计算总体精度、Kappa 系数、各类别的生产者精度和用户精度。总体精度 > 85% 通常被认为可接受。
变化检测 - 从时序影像中提取变化
比较不同时间获取的卫星影像,自动识别地表发生的变化。
变化检测方法:
- 影像差值法: 直接计算两期影像的差值,阈值分割确定变化区域。简单但对配准精度要求高
- 变化向量分析 (CVA): 在多维光谱空间中计算变化向量的幅度和方向
- 分类后比较: 分别对两期影像分类,比较分类结果的差异
- 深度学习: 孪生网络或注意力机制直接学习变化特征
应用场景:
- 城市扩张监测: 检测新建建筑和道路
- 森林砍伐: 监测森林覆盖减少
- 灾害评估: 洪水、地震、火灾的损害范围
- 农业监测: 作物种植面积变化
时序分析: 利用密集时间序列 (如 Sentinel-2 每 5 天) 构建像素级时间曲线,检测突变点 (如砍伐) 和渐变趋势 (如退化)。BFAST 算法是时序变化检测的代表方法。
实用卫星图像处理 - 工具与工作流
构建卫星图像处理工作流所需的工具和平台。
处理平台:
- Google Earth Engine: 云端处理平台,免费访问 PB 级卫星数据。JavaScript/Python API
- QGIS: 开源 GIS 软件,支持遥感分析插件
- SNAP (ESA): Sentinel 数据专用处理工具箱
Python 库:
- rasterio: 地理栅格数据读写
- xarray + rioxarray: 多维数组处理,适合时序分析
- scikit-learn: 分类和聚类算法
- sentinelsat: Sentinel 数据自动下载
典型工作流:
- 数据获取: Copernicus Open Access Hub 或 Google Earth Engine
- 预处理: 大气校正 (Sen2Cor) + 云掩膜
- 分析: 指数计算 / 分类 / 变化检测
- 可视化: 制图输出或 Web 地图发布