AI 摘要

喵呜~ 想知道怎样用QGIS来计算MNDWI并提取可爱的小水体矢量吗?只需几个步骤,你就能掌握如何利用绿色和短波红外波段,通过公式计算出水体指数,再用QGIS将其转换为可爱的矢量地图!跟我一起探索,成为水体提取的小专家吧!(✧ω✧) 喵呜~

1. 引言

归一化差异水体指数(MNDWI,Modified Normalized Difference Water Index)是一种用于提取水体信息的指数。它能够有效抑制植被和建筑物,提高水体的可分辨性。
本文将介绍如何使用 QGIS 计算 MNDWI,并进行水体矢量提取,最终导出为 GeoPackage 格式的矢量数据。


2. 数据准备

2.1 影像波段说明

计算 MNDWI 需要使用绿色波段(Green)和短波红外波段(SWIR),不同 Landsat 版本的波段编号如下:

卫星 Green 波段 SWIR 波段
Landsat 8 Band 3 Band 6
Landsat 5/7 Band 2 Band 5

2.2 加载影像到 QGIS

  1. 在 QGIS 中,点击 “图层” → “添加栅格图层”
  2. 选择解压后的 Landsat 影像数据。
  3. 点击 “添加” 以加载数据。

3. 计算 MNDWI

MNDWI 计算公式如下:

MNDWI = ( Green - SWIR ) / (Green + SWIR)

3.1 打开栅格计算器

  1. 在 QGIS 菜单栏中,选择 “GDAL” → “栅格计算器”
  2. 按数据实际选择Green波段为A,SWIR波段为B
  3. “表达式” 框中输入以下公式:
    (A-B) / (A+B)
    
  4. 选择输出路径,格式使用 GeoTIFF (.tif)
  5. 点击 “确定” 以生成 MNDWI 影像。

4. 依据阈值进行水体提取

MNDWI 大于阈值的区域通常表示水体,因此可以进行二值化处理。

4.1 栅格重分类

  1. 打开 “栅格分析” → “按表格重分类”
  2. 大于阈值的设重分类为1,小于阈值的重分类为0,将 MNDWI 影像二值化:
    说明

    • 结果值为 1 表示水体,0 表示非水体。同时设置0为无数据
  3. 选择输出路径,格式仍然使用 GeoTIFF (.tif)
  4. 点击 “确定” 以生成二值化水体栅格。

5. 矢量化水体

5.1 打开矢量化工具

  1. 选择 “栅格” → “转换” → “栅格转矢量”
  2. 选择二值化水体栅格作为输入文件。

5.2 设置参数

  • 字段:选择值 1 代表水体。
  • 几何类型:选择 多边形
  • 输出格式GeoPackage (.gpkg)
  • 点击 “运行” 生成水体矢量数据。

6. 手动矫正矢量数据

由于自动矢量化和MNDWI可能存在误差,需要进行手动修正。

6.1 进入编辑模式

  1. 上层操作面板 选择 “切换到编辑模式”
  2. 使用 “节点工具” 修正水体边界。

6.2 平滑边界

  1. 选择 “处理工具箱”“矢量几何”“平滑”
  2. 设定平滑程度并运行。

7. 导出最终水体矢量

7.1 选择导出格式

  1. 右键点击矢量图层,选择 “导出” → “另存为”
  2. 选择 GeoPackage (.gpkg) 作为输出格式。
  3. 设定坐标参考系统(使用 WGS 84 / UTM)。
  4. 点击 “确定”,完成导出。

8. 结果分析与可视化

8.1 叠加原始影像

  • 右键水体矢量图层,选择 “属性”“透明度” 调整可视化效果。

8.2 计算水体面积

  1. 选择 “属性表”“字段计算器”
  2. 使用 area($geometry) 计算水体面积。

9. 结论

本文详细介绍了如何在 QGIS 中计算 MNDWI 进行水体提取,包括:

  • 使用 GDAL 计算 MNDWI。
  • 通过阈值重分类提取水体。
  • 栅格转矢量并进行边界修正。
  • 最终导出 GeoPackage 格式的水体矢量。

我是谁?我在哪?我在干什么?
最后更新于 2025-03-14