从 SAR 数据到可操作地图:使用 Python 构建开源洪水检测流水线

从 SAR 数据到可操作地图:使用 Python 构建开源洪水检测流水线

洪水可能是毁灭性的。它们可能迅速发生,让社区难以恢复。随着气候变化增加极端天气事件的频率,有效进行洪水检测变得至关重要,因此这一主题在当下显得尤为重要。

什么是 SAR 数据?

合成孔径雷达 (SAR) 是一种用于创建地表图像的雷达。与依赖晴朗天空的光学卫星不同,SAR 可以穿透云层和降雨。这使得它在洪水检测中特别有用。然而,SAR 数据可能存在噪声且较为复杂,这可能会使分析变得复杂。

构建洪水检测流水线

在本文中,我们将逐步介绍创建一个将原始 SAR 数据转换为可操作洪水地图的流水线的步骤。以下是我们要解决的三个主要挑战:

挑战 1:处理零值边界

在使用 Sentinel Application Platform (SNAP) 导出 SAR 数据时,您可能会在图像中发现零值边界。这些边界可能会歪曲您的数据分析。

解决方案:

  1. 将零值视为 NaN (Not a Number)。
  2. 将数据转换为分贝 (dB)。
  3. 裁剪数据以仅包含有效信息。

以下是裁剪数据的示例代码片段:

rows = np.where(~np.all(np.isnan(dB_full), axis=1))[0]
cols = np.where(~np.all(np.isnan(dB_full), axis=0))[0]
dB = dB_full[rows.min():rows.max() + 1, cols.min():cols.max() + 1]

挑战 2:隔离实际洪水

-17 dB 的简单阈值可以检测到所有水体,但它也会提取出河流和湖泊等永久性水体。这可能导致洪水检测中的误报。

解决方案:

  1. 使用 OpenStreetMap (OSM) 获取永久性水体。
  2. 将此数据栅格化以匹配 SAR 网格。
  3. 从检测到的掩码中减去永久性水体,以分离出洪水。

以下是获取永久性水体数据的方法:

osm_water = ox.features_from_bbox(bbox=bbox, tags={"natural": "water"})
flood_only = mask_clean(~binary_dilation(permanent_water, iterations=2))

挑战 3:解决 QGIS 渲染问题

在导出透明 GeoTIFF 时,QGIS 可能会将透明像素渲染为纯黑色。这会使正确可视化数据变得困难。

解决方案:

  1. 与其使用 RGBA(包含用于透明度的红、绿、蓝和 Alpha 通道),不如创建一个单波段栅格。
  2. 使用专用的 NoData 值 (255),QGIS 会将其视为透明。

以下是如何设置的示例:

overlay = np.where(final_flood_raster == 1, 1, 255).astype(np.uint8)

结果

通过遵循这些步骤,流水线输出:

  • 矢量数据: 具有准确面积计算的 GeoJSON 或 Shapefile。
  • 交互式地图: 允许在卫星视图和街景视图之间切换的 Folium HTML 地图。
  • 适用于 QGIS 的栅格: 导入后即可立即使用的干净叠加层。

结论

使用 SAR 数据构建洪水检测流水线是一项有价值的技能。它有助于将复杂的数据转化为有用的信息,从而为灾害响应和规划提供帮助。

优点

  • 提供准确的洪水检测。
  • 利用开源工具,使其易于获取和使用。
  • 增强灾害管理工作。

缺点

  • 需要熟悉 Python 和 GIS 工具。
  • 处理过程可能消耗大量资源。
  • 对于初学者来说,初始设置可能较为复杂。

注意事项

本文仅供教育目的。请务必将代码中的任何占位符值替换为您的实际数据。在依赖这些论述之前,请始终对照原始来源核实其内容。

常见问题解答

  • 什么是 SAR 数据? — SAR 数据是用于创建地表图像的雷达数据,在多云条件下依然有效。
  • 为什么光学卫星数据在洪水期间用处不大? — 光学卫星依赖晴朗的天空,而洪水期间通常不具备这种天气条件。
  • 洪水检测流水线的目的是什么? — 该流水线将原始 SAR 数据转换为可操作的洪水地图。
  • 该流水线使用的是什么编程语言? — Python 被用于构建洪水检测流水线。
  • OpenStreetMap 在该流水线中的作用是什么? — OSM 提供永久性水体的数据,以帮助分离洪水。
  • 什么是 QGIS? — QGIS 是一个免费且开源的地理信息系统,用于绘制地图和分析空间数据。

标签

#python #opensouce #flooddetection #SAR #GIS #QGIS #OpenStreetMap #climatechange #floodmapping #dataanalysis

Free field guide

Docker Security Checklist

Lock down your containers from build to runtime — 29 practical controls covering images, runtime flags, secrets, and the daemon. Enter your email — you'll get the PDF instantly, plus new posts on Docker, Linux & security.