GEE python高阶——如何使用geemap和eemont包基于MODIS影像计算GNDVI,NBR,NDWI指数并可视化(山西省太原市为例)

news2024/12/24 0:29:43

 这里我们进行使用geemap和eemont包基于MODIS影像计算GNDVI,NBR,NDWI指数,这里很方便的省去了计算指数、去云和缩放等功能,非常方便。

 简介

GNDVI (Green Normalized Difference Vegetation Index)是一种用于评估植被覆盖状况的指数。它是通过测量红光波段和近红外波段之间的比值来计算的。GNDVI的公式如下:

GNDVI = (NIR - Green) / (NIR + Green)

其中,NIR代表近红外波段的反射值,Green代表绿色波段的反射值。

GNDVI的值范围在-1到1之间。数值越高,表示植被覆盖越多。因为植物叶绿素对近红外波长的反射较强,而对绿色波长的吸收较高,所以植被覆盖越多,GNDVI的值越高。

NBR (Normalized Burn Ratio)是一种用于评估火灾烧伤程度的指数。它是通过测量近红外波段和短波红外波段之间的比值来计算的。NBR的公式如下:

NBR = (NIR - SWIR) / (NIR + SWIR)

其中,NIR代表近红外波段的反射值,SWIR代表短波红外波段的反射值。

NBR的值范围在-1到1之间。数值越高,表示火灾烧伤程度越严重。因为烧伤地表会导致植被叶片受损,从而使短波红外辐射增加,所以烧伤地表的NBR值较高。

NDWI (Normalized Difference Water Index)是一种用于评估水体分布的指数。它是通过测量近红外波段和短波红外波段之间的比值来计算的。NDWI的公式如下:

NDWI = (Green - NIR) / (Green + NIR)

其中,Green代表绿色波段的反射值,NIR代表近红外波段的反射值。

NDWI的值范围在-1到1之间。数值越高,表示水体分布越广。因为水体对近红外辐射的反射较高,而对绿光辐射的吸收较低,所以水体的NDWI值较高。

利用遥感影像计算这些指数,首先需要获取相应的波段数据。通常,遥感影像会提供多个波段的反射值。然后,根据指数的公式,将波段数据代入计算即可得到相应的指数值。

在计算指数之前,需要进行一些预处理步骤,如大气校正、辐射校正和影像配准等。这些步骤可以提高指数计算的精度和准确性。

计算完成后,可以根据指数的数值范围进行分类和分析。例如,通过GNDVI可以评估植被覆盖的分布情况,通过NBR可以评估火灾烧伤的程度,通过NDWI可以评估水体的分布情况。这些信息可以用于环境监测、农业管理、自然灾害评估等领域。

总之,GNDVI、NBR和NDWI是通过遥感影像计算的指数,用于评估植被覆盖、火灾烧伤和水体分布等情况。计算这些指数需要获取相应波段的反射数据,并进行预处理步骤。计算完成后,可以根据指数的数值范围进行分类和分析。这些指数在环境监测和自然资源管理中有着重要的应用价值。

安装

#!pip install eemont
#!pip install geemap

导入安装包

import ee, eemont, geemap
import geemap.colormaps as cm

GEE授权

Map = geemap.Map()

加载数据

#获取研究区
query = 'Taiyuan, Shanxi, China'
BBoxFromQuery = ee.Geometry.BBoxFromQuery(query,user_agent = 'eemont-tutorial-011')

#数据预处理
MOD09GA = (ee.ImageCollection('MODIS/006/MOD09GA')
           .filterDate('2020-01-01','2021-01-01')
           .maskClouds()
           .scaleAndOffset()
           .spectralIndices(['GNDVI','NBR','NDWI'])
           .median().clip(BBoxFromQuery))
#引入调色板
vegetationPalette = cm.palettes.ndvi
waterPalette = cm.palettes.ndwi
burnPalette = cm.palettes.inferno

#设定可视化不同波段的
GNDVIvis = {'min':0,'max':1,'palette':vegetationPalette,'bands':'GNDVI'}
NBRvis = {'min':0,'max':1,'palette':burnPalette,'bands':'NBR'}
NDWIvis = {'min':0,'max':1,'palette':waterPalette,'bands':'NDWI'}

加载到地图中

Map.addLayer(MOD09GA,GNDVIvis,'GNDVI')
Map.add_colorbar(GNDVIvis['palette'],caption = 'GNDVI')
Map

加载后的结果 

GNDVI

NBR

Map2 = geemap.Map()
Map2.addLayer(MOD09GA,NBRvis,'NBR')
Map2.add_colorbar(NBRvis['palette'],label = 'NBR')
Map2

NDWI

Map3 = geemap.Map()
Map3.addLayer(MOD09GA,NDWIvis,'NDWI')
Map3.add_colorbar(NDWIvis['palette'],label = 'NDWI')
Map3

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

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

相关文章

iconfont 字体应用

1、登录 打开阿里图标 https://www.iconfont.cn/ 2、选择心仪的图标制作 iconfont 字体。 3、图标全部选择入库之后, 点右上角的购物车。 添加到项目,是方便管理图标字体的。 也可以直接下载代码的 4、下载到本地之后,把里面的 iconfont.…

深入理解 CSS——CSS进阶与实践(5w字高频面试题整理)

本文总结了CSS高频面试题,并搭配了演示动画进行CSS样式演示。介绍了关于如何理解盒模型,如何实现块级元素水平居中,如何实现两侧固定中间自适应的三栏布局、如何实现两栏布局,如何进行响应式设计,对BFC的理解&#xff…

【c 语言】算术操作符详解

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步&…

【管理咨询宝藏37】某四大咨询公司K记PPT模板

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏37】某四大咨询公司K记PPT模板 【格式】PPT版本,可编辑, 【关键词】PPT模板,PPT图表 【文件核心观点】 - 3…

负数的四舍五入

负数的四舍五入 标签:基础 System.out.println(Math.round(-0.2)); System.out.println(Math.round(-0.5)); System.out.println(Math.round(-0.6));0 0 -1理解:四舍五入,找一个离目标小数近的整数,-0.2和0近,-0.6和-1近,中间的往右靠

KubeSphere多集群管理

多集群管理 各种组织跨不同的云厂商或者在不同的基础设施上运行和管理多个 Kubernetes 集群的做法非常普遍。由于每个 Kubernetes 集群都是一个相对独立的单元,因此在多集群的场景下,需要多集群管理解决方案。 KubeSphere 的多集群管理为用户提供统一的…

机器学习--Transformer 1

Transformer 是一个基于自注意力的序列到序列模型,与基于循环神经网络的序列到序列模型不同,其可以能够并行计算。 一、序列到序列模型 序列到序列模型输入和输出都是一个序列,输入与输出序列长度之间的关系有两种情况。第一种情况下&#…

【前端小技巧】各种奇奇怪怪的技巧合集

1,任意网页内容可编辑 使用方法:打开控制台,在console内输入这句话按回车:document.body.contentEditable‘true’ 然后你就可以编辑页面上的内容了,比如这样 2,浏览器直接运行HTML代码 使用方法&…

文件和流IO

文件可以看作是数据的集合,一般保存在磁盘或其他存储介质上文件I/O(数据的输入/输出)通过流(Stream)来实现;流提供一种向存储写入字节和从存储读取字节的方式对于流有5 种基本的操作:打开、读取…

Linux:进程

进程 知识铺垫冯诺依曼体系结构操作系统(OS) 进程概念进程的查看ps 命令获取进程 pid文件内查看进程终止进程的方式kill命令快捷键 进程的创建 forkfork 返回值问题 进程状态运行状态 :R休眠状态:S (可中断&#xff09…

PCBA方案设计充气泵设计

随着科技的不断进步,充气泵在户外活动、露营和旅行中变得越来越常见。而充气泵的性能和稳定性主要依赖于其控制系统,其中芯片的设计和开发是充气泵方案的关键。SIC8833芯片是一款专门为充气泵设计的芯片,接下来我们来讲下充气泵方案芯片SIC88…

[java基础揉碎]面向对象多态

目录 问题引出多态: 代码如下: 多态(多种状态)的介绍: 多态的具体体现: 方法的多态: 对象的多态: 我们用多态解决最上面的问题: ​编辑 ​编辑 多态的注意事项和细节: 多态的向上转型: ​编辑 多态的向下转型 属性的重写问题 问题引出多态: 代码如下: 新建一个食物…

Open3D 利用四个点计算球心和半径 (28)

Open3D 利用四个点计算球心和半径 (28) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 给定的四个点坐标,计算球心和半径,提供验证的四个点来比较最终的结果是否准确。 二、算法实现 1.代码 代码如下(示例): import numpy as npdef calculate_sphere_center_…

如何选择AI项目:从任务自动化到社会价值的全面考虑

目录 前言1 任务自动化的首要选择1.1 公司痛点分析:深入挖掘潜在问题1.2 数据集的收集与大小考虑:确保数据质量和规模匹配 2 AI项目的商业潜力2.1 技术考察与性能目标:确保技术选择符合项目需求2.2 商业考虑与成本效益分析:全面评…

《向量数据库指南》——Milvus Cloud BYOC 是什么?

Milvus Cloud BYOC 是什么? 10 个月前,Zilliz 正式发布了全托管的 Milvus 云服务——Milvus Cloud,为用户提供低成本、高性能的向量数据库服务。Zilliz 在打磨细节之际,也收到了来自管控较为严格的行业公司和组织的需求,他们大多来自于汽车、金融、医疗等行业,需要将数…

【Java设计模式】十六、责任链模式

文章目录 1、责任链模式2、案例:批假3、在源码中的实际应用 1、责任链模式 一个请求可以有多个对象处理,但这些对象能处理的权限不同。比如公司请假,部门负责人、副经理、经理都能批,但他们能批的最大天数不一样。每次让员工直接…

加密与安全_PGP、OpenPGP和GPG加密通信协议

文章目录 PGPOpenPGPGPG工作原理工作流程用途案例说明过程 代码实现pom依赖PgpEncryptionUtilPgpDecryptionUtilCommonUtilsPgpEncryptionTest 小结 PGP PGP (Pretty Good Privacy) 是一种加密通信协议,用于保护电子邮件和文件的安全性和隐私。它通过使用加密、数字…

福派斯狗粮质量怎么样?

亲爱的宠物家长们,你们是不是也在为选择一款高质量的狗粮而犯愁呢?今天,我要和大家分享一下福派斯狗粮的质量问题,希望能够为你们提供一些参考。 🐾 首先,让我们来聊聊福派斯狗粮的原材料。福派斯狗粮选用的…

机器学习模型—支持向量机 (SVM)

机器学习模型—支持向量机 (SVM) 支持向量机 (SVM) 是一种强大的机器学习算法,用于线性或非线性分类、回归,甚至异常值检测任务。SVM 可用于各种任务,例如文本分类、图像分类、垃圾邮件检测、笔迹识别、基因表达分析、人脸检测和异常检测。SVM 在各种应用中具有适应性和高效…

【VUe】简略学习 vue

Vue 是一套用于构建用户界面的渐进式框架。要想使用这个框架,就需要先在页面中引用: 如何使用: 来到控制台: 数据绑定 若要在标签里替换,就需要使用 v-bind 指令了: 在标签里(尖括号里&#xf…