GEE代码实例教程详解:湖泊水位变化监测

简介

本篇博客将介绍如何使用Google Earth Engine (GEE) 对湖泊水位变化进行监测。通过MODIS数据集,我们可以识别2001年和2023年的湖泊范围,并计算湖泊的高程变化。

背景知识

MODIS数据集

MODIS/061/MOD09Q1数据集提供了MODIS的地表反射数据,这些数据可以用来计算归一化差异水体指数(NDWI)。

NDWI

归一化差异水体指数(NDWI)是一种用于识别水体的遥感指数,它基于水体在近红外和短波红外波段的反射特性差异。

ALOS全球数字地表模型

JAXA/ALOS/AW3D30数据集提供了全球30米分辨率的数字地表模型(DSM),可以用来计算地表的高程。

完整代码

// 定义研究区域的坐标点
var cor = [[44.86557382828752, 37.08659871132482],[46.08505625016252, 37.08659871132482],[46.08505625016252, 38.34669285754838],[44.86557382828752, 38.34669285754838],[44.86557382828752, 37.08659871132482]
];// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);// 将地图中心设置为研究区域
Map.centerObject(roi);// 2001年MODIS数据
var modis2001 = ee.ImageCollection("MODIS/061/MOD09Q1").select('sur_refl_b01', 'sur_refl_b02').filterDate('2001', '2002').map(function (img) {var band = img.multiply(0.0001);var ndwi = band.normalizedDifference(['sur_refl_b01', 'sur_refl_b02']).rename('ndwi');return ndwi;}).median();// 2001年NDWI图层
Map.addLayer(modis2001.clip(roi), [], 'ndwi_2001', false);// 2001年湖泊阈值
var thr = modis2001.gt(0.1);
Map.addLayer(thr.clip(roi), [], 'lake_thr', false);// 2001年湖泊掩膜
var mask2001 = thr.updateMask(thr);
Map.addLayer(mask2001.clip(roi), [], 'mask2001', false);// 2001年湖泊边界矢量
var vector2001 = mask2001.reduceToVectors({geometry: roi,scale: 250
});
Map.addLayer(vector2001, [], 'lake2001', false);// ALOS DSM
var dem = ee.ImageCollection("JAXA/ALOS/AW3D30/V3_2").mean().select('AVE_DSM');// 2001年湖泊高程
var lake_elevation_2001 = ee.Number(dem.reduceRegion({reducer: ee.Reducer.percentile([55]),geometry: vector2001,scale: 250
}).get('AVE_DSM'));
print('lake elevation for 2001', lake_elevation_2001);// 导出2001年湖泊边界
Export.table.toDrive({collection: vector2001,description: 'lake2001',folder: 'lake_border',fileFormat: 'SHP'
});// 2023年MODIS数据
var modis2023 = ee.ImageCollection("MODIS/061/MOD09Q1").select('sur_refl_b01', 'sur_refl_b02').filterDate('2023', '2024').map(function (img) {var band = img.multiply(0.0001);var ndwi = band.normalizedDifference(['sur_refl_b01', 'sur_refl_b02']).rename('ndwi');return ndwi;}).median();// 2023年湖泊掩膜
var thr2 = modis2023.gt(0.1);
var mask2023 = thr2.updateMask(thr2);
Map.addLayer(mask2023.clip(roi), [], 'mask2023', false);// 2023年湖泊边界矢量
var vector2023 = mask2023.reduceToVectors({geometry: roi,scale: 250
});
Map.addLayer(vector2023, [], 'lake2023', false);// 2023年湖泊高程
var lake_elevation_2023 = ee.Number(dem.reduceRegion({reducer: ee.Reducer.percentile([55]),geometry: vector2023,scale: 250
}).get('AVE_DSM'));
print('lake elevation for 2023', lake_elevation_2023);

代码详解

1. 定义研究区域

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

2. 加载MODIS数据集

分别加载2001年和2023年的MODIS数据集,并计算NDWI。

3. 湖泊范围识别

通过设置NDWI阈值,识别出2001年和2023年的湖泊范围。

4. 湖泊边界矢量提取

将识别出的湖泊掩膜转换为矢量边界。

5. 加载ALOS DSM数据集

加载ALOS全球数字地表模型数据集,并计算平均DSM。

6. 湖泊高程计算

使用ALOS DSM数据,计算2001年和2023年湖泊边界的55百分位高程。

7. 湖泊边界导出

将2001年的湖泊边界矢量导出为SHP格式。

8. 湖泊高程变化监测

打印2001年和2023年的湖泊高程,监测湖泊水位变化。

结论

本教程展示了如何使用GEE对湖泊水位变化进行监测。通过MODIS数据识别湖泊范围,并结合ALOS DSM数据计算湖泊高程,我们可以了解湖泊水位随时间的变化情况。

进一步探索

GEE提供了多种工具和方法来进行水体监测和地形分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。

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

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

相关文章

DDD架构

1.DDD架构的概念: 领域驱动设计(Domain-Driven Design, DDD)是一种软件设计方法,旨在将软件系统的设计和开发焦点集中在领域模型上,以解决复杂业务问题 2.DDD架构解决了什么问题: 在以前的mvc架构种,三层结…

产品经理-交互设计动手实践(11)

业内有很多画交互的工具,这里不过多介绍,互联网公司最常用的工具是Axure,墨刀,蓝湖,小瀑 它是一个专业的快速原型设计工具,使用它能够快速创建线框图、流程图、原型和规格说明文档。 它能快速、高效地创建原型,同时支持多人协作设…

华为HCIP Datacom H12-821 卷30

1.单选题 以下关于OSPF协议报文说法错误的是? A、OSPF报文采用UDP报文封装并且端口号是89 B、OSPF所有报文的头部格式相同 C、OSPF协议使用五种报文完成路由信息的传递 D、OSPF所有报文头部都携带了Router-ID字段 正确答案:A 解析: OSPF用IP报…

iOS 开发中不常见的专业术语

乐此不疲地把简单的问题复杂化,并把这种XX行为叫作专业 APM 在 iOS 开发中,APM 代表 Application Performance Management(应用性能管理)。APM 是一套监控和管理应用程序性能的工具和技术,旨在确保应用程序运行平稳、…

【人工智能】-- 法律与伦理

个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉引言 🍉伦理问题 🍈隐私泄露问题 🍍人工智能与隐私泄露的紧密关联 🍍数…

上海慕尼黑电子展开展,启明智显携物联网前沿方案亮相

随着科技创新的浪潮不断涌来,上海慕尼黑电子展在万众瞩目中盛大开幕。本次展会汇聚了全球顶尖的电子产品与技术解决方案,成为业界瞩目的焦点。启明智显作为物联网彩屏显示领域的佼佼者携产品亮相展会,为参展者带来了RTOS、LINUX全系列方案及A…

测试工作流程

基础 测试流程 1)需求研读: 通读需求了解需求整体内容,然后精读需求理解需求的每⼀个业务逻辑,每⼀句话的意思。在研读需求过程中的记录问题,然后通过百度,AI⼯具,CSDN社区,咨询朋友&#xf…

鸿蒙 arkts 实现手机号中间四位隐藏, 可以使用 substring [ 简单适用新手 ]

1, 看效果 2, 直接cv代码就可以 Preview Entry Component struct Setting {Statephone:string 15555555555maskPhoneNumber(phone:string){const start phone.substring(0,3)const end phone.substring(7)return ${start}****${end}}build() {Column(){Text(this.maskPhon…

Leetcode2542-最大子序列的分数

1.问题转换 首先明确题意,要选取的值和num1,num2两个数组都有关,但是num1中选取的是k个数,num2中选取的是1个数,显然num2中的数所占的权重较大(对结果影响较大),所以我们就可以对nu…

【Java探索之旅】多态:向上下转型、多态优缺点、构造函数陷阱

文章目录 📑前言一、向上转型和向下转型1.1 向上转型1.2 向下转型 二、多态的优缺点2.1 多态优点2.2 多态缺陷 三、避免避免构造方法中调用重写的方法四、好的习惯🌤️全篇总结 📑前言 在面向对象编程中,向上转型和向下转型是常用…

Django 新增数据 create()方法

1,添加模型 Test/app11/models.py from django.db import modelsclass Book(models.Model):title models.CharField(max_length100)author models.CharField(max_length100)publication_date models.DateField()price models.DecimalField(max_digits5, decim…

小米订单锐减背后的挑战与应对之道

近期,富士康印度子公司Bharat FIH面临高管离职、工厂关闭的困境,其背后原因之一是小米订单的显著下滑,据报道,这一降幅高达70%。这一现象不仅反映了富士康在印度市场的艰难处境,也揭示了小米在全球智能手机市场面临的挑…

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云(爬虫及数据可视化) 也是一个应用程序 http://amueller.github.io/word_cloud/ Wordcloud词云,在一些知乎,论坛等有这样一些东西,要么做封面,要么做讲解,进行分析…

C++ | Leetcode C++题解之第223题矩形面积

题目: 题解: class Solution { public:int computeArea(int ax1, int ay1, int ax2, int ay2, int bx1, int by1, int bx2, int by2) {int area1 (ax2 - ax1) * (ay2 - ay1), area2 (bx2 - bx1) * (by2 - by1);int overlapWidth min(ax2, bx2) - max…

实战Qt开发WordBN笔记软件#01 搭建开发环境:VS2019+Qt6.5+CMake+Git

01 背景 【WordBN字远笔记】是天恩软件工作室开发的一款免费笔记软件;WordBN基于VS2019、Qt6.5开发,使用Qt Quick(QML)开发语言。 本课程将以【WordBN字远笔记】的界面为实战基础,详细介绍如何基于Qt/QML开发语言&am…

WPF 表格控件斑马线使用

这里用ListView为案例。 如图效果: 主要思路: 用AlternationCount属性来设置需要使用斑马线的条数,就是说几行一换色,也可以理解为需要几种颜色, 然后再样式模板中,写触发器属性ItemsControl.Alternatio…

python深拷贝和浅拷贝之间的区别是什么?

在Python中,深拷贝和浅拷贝是两种不同的对象复制机制,它们在复制对象时的行为有显著差异: 1. 浅拷贝(Shallow Copy): - 浅拷贝创建一个新对象,但它只是复制了原始对象中元素的引用(对于可变…

明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named ‘sklearn‘

问题: 明明已经安装了python中的某个库,但是还是报错ModuleNotFoundError: No module named sklearn 解决方法: 卸载重新安装一下即可 pip uninstall scikit-learn pip install scikit-learn 成功解决!!&#xff…

《Windows API每日一练》9.1 资源-图标

本节讲述图标、鼠标指针位图、字符串资源表、自定义资源的添加和应用。 本节必须掌握的知识点: 图标 第56练:ICON图标资源 鼠标指针位图 字符串资源表 自定义资源 第57练:字符串资源表和自定义资源 9.1.1 图标 在 Windows 窗口编程中&…

知识付费系统3.0整站源码知识付费网课平台网创资源付费带自动采集同步插件

程序说明: 1.修复更新到最新版本 2.自动采集插件重写 3.关闭采集授权域名直接对接 4.更新插件主动请求同步资源 5.带自动采集插件 原始功能 支持分类替换 将主站同步过来的文章分类进行替换 支持自定义文章作者(选择多个作者则同步到的文章作者将会随机分…