GEE代码实例教程详解:洪水灾害监测

简介

在本篇博客中,我们将使用Google Earth Engine (GEE) 进行洪水灾害监测。通过分析Sentinel-1雷达数据,我们可以识别特定时间段内的洪水变化情况。

背景知识

Sentinel-1数据集

Sentinel-1是欧洲空间局提供的雷达卫星数据集,它能够提供连续的地表监测,即使在云层覆盖的情况下也能获取数据。

洪水监测

洪水监测是评估洪水灾害影响和进行灾害管理的重要手段。利用雷达数据的后向散射变化可以识别洪水事件。

完整代码

// 定义研究区域的坐标点
var cor = [[54.07394733345745, 36.81321992370517],[54.79904498970745, 36.81321992370517],[54.79904498970745, 37.45259869689526],[54.07394733345745, 37.45259869689526],[54.07394733345745, 36.81321992370517]
];// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);// 将地图中心设置为研究区域
Map.centerObject(roi);// 定义时间范围
var year_start = '2019';
var year_end = '2020';// 定义去斑函数
function speckel(img) {return img.focalMedian(100, 'square', 'meters').copyProperties(img, img.propertyNames());
}// 获取2019年3月的Sentinel-1数据
var after = ee.ImageCollection("COPERNICUS/S1_GRD").filterBounds(roi).filterDate(year_start, year_end).filter(ee.Filter.calendarRange(3, 3, 'month')).filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')).filter(ee.Filter.eq('instrumentMode', 'IW')).select('VV').map(speckel).min();// 将“之后”的图像添加到地图上
Map.addLayer(after.clip(roi), [], 'after', false);// 获取2019年2月的Sentinel-1数据
var before = ee.ImageCollection("COPERNICUS/S1_GRD").filterBounds(roi).filterDate(year_start, year_end).filter(ee.Filter.calendarRange(2, 2, 'month')).filter(ee.Filter.listContains('transmitterReceiverPolarisation', 'VV')).filter(ee.Filter.eq('instrumentMode', 'IW')).select('VV').map(speckel).min();// 将“之前”的图像添加到地图上
Map.addLayer(before.clip(roi), [], 'before', false);// 计算洪水变化情况
var change = before.subtract(after).rename('flood');// 将洪水变化图像添加到地图上
Map.addLayer(change.clip(roi), [], 'flood', false);// 打印洪水变化直方图
print(ui.Chart.image.histogram(change, roi, 30)
);// 应用阈值来识别洪水区域
Map.addLayer(change.gt(7).clip(roi), [], 'flood_thr', false);// 定义洪水阈值
var flood_thr = change.gt(7);
var flood_mask = flood_thr.updateMask(flood_thr);
var flood_area = flood_mask.multiply(ee.Image.pixelArea().divide(1e6));// 计算洪水区域面积
var area_sum = flood_area.reduceRegion({reducer: ee.Reducer.sum(),geometry: roi,scale: 100
}).get('flood');// 打印洪水区域面积
print(ee.Number(area_sum).round());

代码详解

1. 定义研究区域

创建一个多边形区域roi,用于限定分析的地理范围,并设置地图中心。

2. 定义去斑函数

定义speckel函数,使用局部中值滤波去除Sentinel-1图像的斑点噪声。

3. 获取Sentinel-1数据

获取“之前”和“之后”的Sentinel-1数据,分别对应洪水发生前后的时间段。

4. 计算洪水变化情况

通过“之前”和“之后”的图像相减,计算洪水变化情况。

5. 可视化洪水变化

将洪水变化图像添加到地图上,并打印直方图。

6. 应用阈值识别洪水区域

使用阈值gt(7)来识别洪水区域,并将结果添加到地图上。

7. 计算洪水区域面积

计算洪水区域的总面积,并打印结果。

结论

本教程展示了如何使用GEE和Sentinel-1雷达数据进行洪水灾害监测。通过计算洪水前后的雷达后向散射差异,我们可以识别洪水区域并估算洪水面积。

进一步探索

GEE提供了丰富的工具和方法来进行环境和灾害监测分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868604.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3209. 子数组按位与值为 K 的数目

Powered by:NEFU AB-IN Link 文章目录 3209. 子数组按位与值为 K 的数目题意思路代码 3209. 子数组按位与值为 K 的数目 题意 给你一个整数数组 nums 和一个整数 k ,请你返回 nums 中有多少个 子数组 满足:子数组中所有元素按位 AND 的结果为 k 。 思…

【Tools】wxapkg是什么格式的文件

我白天是个 搞笑废物 表演不在乎 夜晚变成 忧伤怪物 撕扯着孤独 我曾经是个 感性动物 小心地感触 现在变成 无关人物 🎵 张碧晨/王赫野《何物》 wxapkg 是微信小程序的包文件格式。它是微信小程序的代码和资源打包后的文件,用于发布…

新增多种图表类型,新增插件管理模块,DataEase开源数据可视化分析工具v2.8.0发布

2024年7月8日,人人可用的开源数据可视化分析工具DataEase正式发布v2.8.0版本。 这一版本的功能变动包括:图表方面,新增组合图、热力地图、符号地图、K线图等图表类型,并对已有的仪表盘、明细表、指标卡、富文本等图表类型进行了功…

【已解决】微信小程序报错:request 合法域名校验出错 如若已在管理后台更新域名配置,请刷新项目配置后重新编译项目,操作路径:“详情-域名信息”

场景复现 最近在写微信小程序时,打开开发者工具会出现一下报错,甚至连手机移动端使用时也会出现“网络出错了”这样的错误提示。 解决方法 查看微信官方的文档和网上的一些解决方法,可以按照下面的图文步骤进行设置👇&#x1f4…

caeses软件许可优化解决方案

Caeses软件介绍 CAESES是一款十分很不错的三维建模仿真的软件。它功能很大、优化效率高、可以自动化优化、分析工具快速 CAESES拥有多种不同的试验设计及单目标、多目标优化算法,能够根据仿真计算评估的结果。软件可以帮助用户轻松的打造出自各种船舶、汽车、航空航…

Lambda是个什么东西?如何理解和使用?

目录 lambda 的作用 为什么有 lambda 如何使用 lambda 示例 lambda 是 Python 中的一个关键字,用于创建匿名函数(也称为 lambda 函数)。匿名函数是一种简单的、可以在需要函数对象的地方立即定义的函数。这些函数主要用于定义简单的、一次…

Ai Native应用开发(一)--数字人

背景 刚参加完24年世界人工智能大会(WAIC),聊聊自己的一些感受。这次会明显比去年多很多人,用人山人海来形容应该也不为过。根据我自己粗浅观察参会的人员也比去年更多样化。去年更多还是从业者或者是这块研究人员。今年每个论坛…

sql盲注

文章目录 布尔盲注时间盲注 布尔盲注 介绍:在网页只给你两种回显的时候是用,类似于布尔类型的数据,1表示正确,0表示错误。 特点:思路简单,步骤繁琐且麻烦。 核心函数: length()函数substr()函…

day4单向链表

主程序 #include "fun.h" int main(int argc, const char *argv[]) { node_p Lcreate_head();//创建链表 printf("########################链表的头插尾插\n"); insert_head(L,45);//头插 insert_head(L,45); insert_tail(L,45);/…

Go-Zero 框架使用 MongoDB,数据采集入库如此简单

目录 引言 环境准备 如何使用 main入口代码实现 实现采集网络接口 总结 其他资源 引言 Go-Zero 是一个高性能、可扩展的微服务框架,专为 Go 语言设计。它提供了丰富的功能,如 RPC、RESTful API 支持、服务发现、熔断器、限流器等,使开…

PyQt5显示QImage并将QImage转换为PIL图像保存到缓存

PyQt5显示QImage并将QImage转换为PIL图像保存到缓存 1、效果图 2、流程 1、获取摄像头资源,打开摄像头 2、截取图像 3、opencv读的通道是BGR,要转成RGB 4、往显示视频的Label里显示QImage 5、将QImage转换为PIL图像,并保存到缓存 6、获取图像中人脸信息3、代码 # -*- codin…

面试题 04. 二维数组中的查找

二维数组中的查找 题目描述示例:限制: 题解方法一 二分查找 题目描述 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个…

2024年【安全员-C证】考试及安全员-C证免费试题

题库来源:安全生产模拟考试一点通公众号小程序 安全员-C证考试根据新安全员-C证考试大纲要求,安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编,组成一套安全员-C证全真模拟考试试题,学员可通过安全员-C证免费试题全真模…

【trition-server】pytorch 文档:使用 Triton 提供 Torch-TensorRT 模型

Serving a Torch-TensorRT model with Triton pytorch 的官方文档: Serving a Torch-TensorRT model with Triton 在有关机器学习基础设施的讨论中,优化和部署是密不可分的。一旦完成网络级优化以获得最大性能,下一步就是部署它。 然而,提供这种优化模型也有其自身的一系列…

论文解析——Full Stack Optimization of Transformer Inference: a Survey

作者及发刊详情 摘要 正文 主要工作贡献 这篇文章的贡献主要有两部分: 分析Transformer的特征,调查高效transformer推理的方法通过应用方法学展现一个DNN加速器生成器Gemmini的case研究 1)分析和解析Transformer架构的运行时特性和瓶颈…

堆叠的作用

一、为什么要堆叠 传统的园区网络采用设备和链路冗余来保证高可靠性,但其链路利用率低、网络维护成本高,堆叠技术将多台交换机虚拟成一台交换机,达到简化网络部署和降低网络维护工作量的目的。 二、堆叠优势 1、提高可靠性 堆叠系统多台成…

怀庄之醉适合搭配什么食物?

怀庄之醉作为一种独特的佳酿,其丰富的香气和层次感使其能够与多种食物搭配,提升餐饮体验。以下将具体探讨怀庄之醉适合搭配的食物类型,并分析为何这些搭配能够带来卓越的味觉享受。 一、肉类佳肴 怀庄之醉因其浓郁的口感,特别适…

Linux--线程(概念篇)

目录 1.背景知识 再谈地址空间: 关于页表(32bit机器上) 2.线程的概念和Linux中线程的实现 概念部分: 代码部分: 问题: 3.关于线程的有点与缺点 4.进程VS线程 1.背景知识 再谈地址空间&#xff1a…

A59 STM32_HAL库函数 之 TIM扩展驱动 -- A -- 所有函数的介绍及使用

A59 STM32_HAL库函数 之 TIM扩展驱动 -- A -- 所有函数的介绍及使用 1 该驱动函数预览1.1 HAL_TIMEx_HallSensor_Init1.2 HAL_TIMEx_HallSensor_DeInit1.3 HAL_TIMEx_HallSensor_MspInit1.4 HAL_TIMEx_HallSensor_MspDeInit1.5 HAL_TIMEx_HallSensor_Start1.6 HAL_TIMEx_HallSe…

echars根据geojson地块坐标数据coordinates计算地图地块的中心点

echarts地图根据地块名称获取地块的中心坐标。实现在中心位置放置标记。 需要放置数据的地块名称的数据格式: mapData: [ {name: 江苏省, value: 500}, {name: 上海市, value: 10} ], 计算中心代码: // this.geoData是中国地图的geojson格式数据// …