基于雷达影像的洪水监测技术方法详解

2024-02-27 11:20

本文主要是介绍基于雷达影像的洪水监测技术方法详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        洪水发生时候大多数是阴雨天气,光学影像基本上拍不到有效影像。雷达影像这时候就能发挥其不受天气影像的优点。现在星载的雷达卫星非常多,如高分三号、陆探一号、海丝一号(巢湖一号)、哨兵1号等。本文以哨兵1号L1地距(GRD)产品来介绍在洪水监测中的处理技术,其他雷达数据处理类似。

1 数据情况

因为要进行前后对比,因此需要两个时相哨兵1数据:

1、2023年8月2日:S1A_IW_GRDH_1SDV_20230802T214703_***.

2、2023年7月21日:S1A_IW_GRDH_1SDV_20230721T214702__***.

注:下载数据时候一般有三种格式下:SLC、GRD、GRD(COG),这里下载GRD即可。

2 处理流程

如下图为处理流程,可根据实际情况进行修改。

整个流程可分为两部分:SAR图像预处理和洪水信息提取。其中洪水信息提取采用的是分类后处理对比,即采用一种分类方法获取水灾前后的水面积信息,然后对两时相提取的水面积信息做对比得到水面积变化信息,增加部分就是洪水淹没部分。

3 SAR图像预处理

SARscape中提供流程化处理工具:/SARscape/Basic/Intensity Time Series Workflow。也提供分步式处理工具,本文使用分步处理工具来介绍。

在处理之前,为SARscape选择一套适合哨兵1数据的默认处理参数:Toolbox中单击/SARscape/Preferences,在打开的界面中,单击Load Preferences,选择Sentinel TOPSAR。

3.1 数据导入

SARscape5.6之后版本直接支持哨兵1的压缩包格式,因此导入数据的时候不需要解压缩。

(1)Toolbox中,打开SARscape/Import Data/SAR Spaceborne/Single Sensor/Sentinel-1。

(2)数据输入面板(Input Files):选择两期压缩包文件。

(3)可选文件面板(Option file):可以选择一个矢量文件对SAR数据进行裁剪,这里不选择。

(4)参数设置面板(Parameters):按照默认。

(5)数据输出面板(Output Files):选择一个输入目录。

(6)点击Exec执行处理。

得到两个时相、两个极化四个SAR图像。

3.2 图像配准

由于是两个时相SAR数据,使用自动SAR图像配准工具进行配准处理。

(1)在Toolbox中,选择/SARscape/Basic/Intensity Processing/Coregistration。

(2)在打开的Coregistration面板中:

  • 数据输入(Input Files)面板:选择一个SAR数据作为基准(Input Reference File)。其余的数据作为待配准影像(Input File List)。
  • 可选文件(Optional Files)面板:

 DEM File:选择一个DEM数据可以提高配准精度,特别是高分辨率SAR数据和地形起伏较大区域,以及配准不同入射角图像的配准。由于该地区为平原,这里不选择DEM数据。

  • 参数设置(Parameters)面板:按照默认参数。

注:设置Global->Generate Quick Look:False,不输出快视图,能提高一点处理速度。

  • 数据输出(Output Files)面板:选择输出目录。

(3)单击Exec按钮执行配准过程。

执行完之后生成一个后缀为_meta的索引文件,每一景数据的配准结果作为一个波段在该文件中,类似于一个多波段数据,以及一个.series时间序列文件。

配准精度基本能达到亚像素,如下为配准效果图。

3.3 图像滤波

斑点类似噪音信号特征,一般产生于相干系统,比如SAR和激光雷达系统。表现为随机的“椒盐”散落在图像上。

SARscape提供两大类滤波,用于单波段雷达图像的滤波和多时相雷达图像滤波。本例子中使用多时相雷达图像滤波,效果比卷积滤波要好。

(1) 在Toolbox中,选择/SARscape/Basic/Intensity Processing/Filtering/De Grandi Spatio-Temporal Filtering。

(2) 打开De Grandi Spatio-Temporal Filtering面板

  • 数据输入(Input Files)项:选择配准好的四个数据。
  • 参数设置(Parameters)项:按照默认。

注:设置Global->Generate Quick Look:False,不输出快视图,能提高一点处理速度。

  • Output Files面板,数据输出路径和文件名按照默认。文件名自动添加_fil后缀。

(3) 单击Exec执行。

多时相滤波阈值斑点噪声的效果还是非常好的,如下图所示。

3.4 地理编码&辐射定标

这一步将前面配准、滤波处理得到的结果进行地理编码和辐射定标,得到各个时相数据的雷达强度图像或者后向散射系数图像。

该步骤可选择DEM数据参与地理编码提高几何精度,这里使用/SARscape/Import Data/DEM Extraction/ALOS World 3D 30m 工具自动下载SAR图像范围内的DEM,操作比较简单这里不详细介绍。

(1)在Toolbox中,选择/SARscape/Basic/Intensity Processing/Geocoding/Geocoding and Radiometric Calibration。

(2)打开地理编码和辐射定标面板(Geocoding and Radiometric Calibration)。

  • Input file:鼠标单击Brower按钮,按住shift键,将上一步滤波得到的4景数据全选,点击打开,数据列在Input File List列表下。
  • Optional Files面板,Geometry GCP File和Area File(应用于选择"True area"后向散射系数反演方法时候)这两个文件是可选项,这里不使用这两个文件。
  • DEM/Cartographic System面板,输入DEM文件或投影信息。若是输入DEM数据,最后输出结果默认以DEM投影参数为准。如果不输入DEM数据,则设置Output Projection。这里输入DEM文件
  • Parameters面板,主要参数(Principal Parameters)
    • 像元大小(X Grid Size):15
    • 像元大小(Y Grid Size):15
    • 辐射定标(Radiometric Calibration):Ture

注:这里辐射定标为后向散射系数,如果采用雷达水指数方式提取水体,这里建议定标为后向散射系数。其他水体提取方法看情况来定。

  • 散射面积(Scattering Area):Local Incidence Angle
  • 辐射归一化(Radiometric Normalization):False
  • 辐射归一化方法(Normalization Method):True
  • 局部入射角(Local Incidence Angle):False
  • 输出类型(Output type):dB

注:输出类型linear和Db的关系为: =10*log

注:其他参数按照默认,绝大多数情况下使用默认参数就能得到较好的结果。

  • Output Files面板,输出路径和文件名按照默认,自动添加了_geo后缀。

(3)单击Exec执行。

在生成结果中,默认会生成带有坐标、tif格式的快视图(* _ql.tif),如果后面采用目视解译的方法提取水体信息,可以直接使用该快视图图像。如下图为生成的快视图。

注:背景透明显示了。

4洪水信息提取与成果整理

在SAR图像上,有水体的地方一般显示黑色。可选择很多方法来提取水体信息。

在应急情况下,其实手动提取水面积是最快,精度也最高的方式。当然如果事先有利用大量样本训练好的深度学习模型,深度学习方法也是效率很高的一种方法。如下为几种方法的总结:

方法

说明

阈值分割法

在平原区域效果良好,几乎不需要人工编辑,但是在山区,阴影同时都被提取出来了。需要使用分类后处理的工具进行人机交互处理。

决策树分类方法

加入DEM,可有效避免山区阴影的混淆,对于坡度大的区域效果显著。后期仍然需要一定量的人工编辑,但工作量较阈值法小。

深度学习方法

效果良好,需要前期进行充分的影像水体特征分析,表现为选择若干有代表性的子区域,可有效区分山体阴影和水体,前期工作量较大,优势是训练好的水体提取模型可以用于同类型多幅影像,多个地区的水体提取,适用于批量处理。

面向对象方法

可直接获取水域边界,加入DEM作为辅助数据,对山体阴影的抑制也有作用。

人工+魔术棒

精度最高,需要人工参与。

下面简单介绍ENVI中人工+魔术棒的方法。

(1)打开地理编码中得到的TIF快视图。

(2)工具栏中打开ROI Tool,按住Ctrl+鼠标左键,在水域地方点击鼠标。

(3)打开魔术棒工具栏,同时也在SAR图像上选择了一部分区域。

  • 把Use Pyramids 去掉,单波段的SAR图像可以不使用金字塔来识别,如果使用金字塔图像识别,有可能会在低分辨率的图层上识别。
  • 根据情况来设置Threshold大小,这个阈值越大可识别的范围越大,精度可能越低。

注:按住Ctrl键可以同时识别多个地方

(4)右键有四个菜单。

  • Accept Multi Part:接受本次识别。
  • Clear Multi Part:取消本次识别。
  • Select Part:选择一个分块。
  • Remove Holes:移除中间的洞,这个视情况来使用。

注:魔术棒工具多使用体会,有很多的使用技巧。

(5)要想对已经接受并生成了ROI的图斑进行编辑,直接在ROI图斑右键选择编辑菜单即可。

(6)所有的识别都完成了,可以在ROI Tool中年,选择File->Export->Export to Shapefile,输出为矢量文件。

同样的方法可以对另外一个时相的SAR图像进行识别,对两个结果进行对比分析得到洪水区。

这篇关于基于雷达影像的洪水监测技术方法详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752228

相关文章

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Java 实用工具类Spring 的 AnnotationUtils详解

《Java实用工具类Spring的AnnotationUtils详解》Spring框架提供了一个强大的注解工具类org.springframework.core.annotation.Annot... 目录前言一、AnnotationUtils 的常用方法二、常见应用场景三、与 JDK 原生注解 API 的

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命