ENVI实战—一文搞定NDVI计算和MNDWI计算

2024-04-12 00:44

本文主要是介绍ENVI实战—一文搞定NDVI计算和MNDWI计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实验1使用波段计算器计算波段值

目的:熟练掌握ENVI中波段计算器的使用方法,学会波段之间的运算。

过程:

①数据导入:打开ENVI5.6,在“文件”选项卡中选择“打开”,打开此前裁剪好的Sentinel-2的10m分辨率的波段数据。

②波段和计算:在工具箱上找到“波段代数”工具文件夹,选择“波段运算”,在“Enter an expression”中输入“b1+b2+b3”计算公式,点击“Add to List”添加到计算公式栏,选择后点击确定。在弹出的窗口中,找到上方的变量定义,根据源图像定义好计算的三个波段,选择B2、B3、B4,设置好文件保存格式,得到波段和结果。

③波段均值合成:与波段和计算的方法类似,同样在“波段运算”中输入相应的计算公式“(float(b1)+float(b2)+float(b3))/3.0)”,此处在波段前加上float,是为了使波段数据格式保留浮点类型,统一数据格式后避免计算出错。将波段按照b1-B2,b2-B3,b3-B4定义好,设置文件输出路径,得到最终结果。

结果:

①图1(左)展示了蓝光波段、绿光波段、红光波段和的计算结果,整体影像为黑白色,原因是计算结果在像素上将三个波段信息进行合成,映射成一个存储计算结果的仅包含0-255的灰度值的颜色通道,因此整体表现为黑白影像。

②图1(右)为RGB波段均值合成的结果,右击对应图层,可修改颜色表。对照原图像,发现水体经三个波段合成后表现出较高的值(红色),而陆地则较低(蓝绿色)。

实验2计算NDVI

目的:承接实验1,学会基于波段运算工具根据计算公式计算NDVI值

过程:

①明确计算公式:归一化植被指数(NDVI)的计算公式,需要用到两个波段,一个是近红外波段,一个是红光波段,具体公式为“NDVI = (NIR-RED)/(NIR+RED)”。本次实验所用的数据为Sentinel-2数据,通过查阅其卫星参数,明确近红外波段(NIR)为B8,红光波段为B4。

②计算过程:打开ENVI的波段代数工具,在波段运算中输入“(float(b1)-float(b2))/ (float(b1)+float(b2))”,按照“b1-B8,b2-B4”的定义规则,设置好相关参数,输出计算结果。

③查看像素点的NDVI值:为更好与原图进行对比,将计算结果加载到新视图,利用“鼠标取值”工具点击特定地点查看对应的像素值。

结果:

上图为NDVI值计算之后的结果,选择陆地上某处取值后,显示NDVI值为0.28左右,多次尝试水体取值,值的结果都在负数靠近0,基本符合水体的NDVI值特征。

实验3:使用波谱运算工具

目的:学会使用波谱运算工具,对比波谱计算前后曲线的差异

过程:

①选择波谱曲线:打开显示窗口的“波谱库浏览器”,在植被库中选择干燥子植被库,随机选择三种植物,查看其波谱曲线状况。

②波谱运算:打开工具箱中的“波谱处理”工具包,选择“波谱运算”,打开后,输入计算公式“S1+S2+S3”,对变量S1、S2、S3进行波谱赋值,点击确定,可以对三条波谱曲线进行相加,最终结果将得到合成波谱。

结果:

图1展示了波谱运算前后曲线发生的变化,左侧是三条曲线反射率随着波长的发生的变化,右侧是经过相加后合成的曲线。从结果可以看出,合成曲线的反射率数值是三条曲线叠加的结果,其反射率的值域范围明显提升,曲线的整体波动情况与原三条曲线相似。

实验4对比NDVI的地物差异

目的:强化NDVI的计算方法,理解NDVI在植被提取上的作用。

过程:

①裁剪空间区域:导入Sentinel-2影像,分别选择水体、植被和城市密集分布区域,在文件选项卡中点击“另存为ENVI文件”,利用“空间裁剪”方法,裁剪好上述区域。

②计算NDVI值:在波段运算工具中输入NDVI的计算公式,将NIR波段和RED波段分别代入,分别计算上述影像的NDVI值。

③对比地物NDVI值的差异:选择计算好的结果图层,鼠标右击,点击“快速统计”,在弹出的窗口中,可以“选择绘图中”点击绘制波段直方图,此时可以查看该图层像素的波段直方图,纵坐标是像元数,横坐标是数值,下方的表格中分别计算了均值、最大值、最小值等等。利用该方法可以对比不同地物的差异。此外,利用鼠标取值工具,同样可以进行数值查看,对比不同地物的差异。

结果:

图1展示了植被主导(左上)、建筑物主导(右上)和水体主导(下方)的NDVI的计算结果,图像经过了颜色的重新渲染,颜色越绿处代表该地的NDVI值更高,而颜色越红反之,三张结果基本符合NDVI的计算预期。

图2与图3展示了三张区域的像元值统计直方图与相关的统计结果,尽管未严格对植被、建筑、水体进行提取,但三张统计图仍然显示了其大面积叠加某一类地物后产生的影响。以植被覆盖为主的区域,NDVI峰值整体在0.2以后的像元占据大部分,均值较高;以建筑物为主体覆盖的区域,NDVI值整体在0-0.2的像元占据大部分,均值中间;以水体的区域,使得NDVI出现在负数部分出现统计峰值,说明水体的NDVI值较低。这与对三类地物进行鼠标取值后得到的结果一致。因此,水体的NDVI值较低,植被的NDVI值较高,NDVI能够较好地表征植被的覆盖程度。

图 植被主导、建筑主导、水体主导波段统计结果

实验5获取水体指数

目的:模仿NDVI的计算方法,学会利用水体提取的波段公式,获取水体指数。

过程:

①波段裁剪与融合:通过“感兴趣的ROI”框选具有大面积水体分布的地区,将10m、20m分辨率的Sentinel-2数据裁剪为同一区域。选择图像融合工具,利用“Gram-Schmidt图像融合”方法,重采样方法为“双线性内插”,将两张影像融合成同一分辨率的数据,设置好文件路径输出。此时,数据已准备好。

②计算修正归一化差异水体指数(MNDWI):改进的水体指数采用绿光波段和短波红外进行计算得到,该指数能够较好地区分水体、陆地和植被。具体的计算公式为MNDWI = (Green-SWIR)/(Green-SWIR)。同样打开“波段代数”工具箱,在波段运算中输入计算公式,Sentinel-2中绿光波段为B3波段,SWIR波段为B11波段,定义后计算即可。

结果:

图1为计算前后的对比结果,左图为原始图像,右图为经过颜色渲染的MNDWI计算结果,颜色为越蓝代表MNDWI的值越高,反之,可以看出水体较好地和其他地物进行了区分。在水体覆盖区域进行取值,显示值为1。

图2是MNDWI的波段直方图,从图中可以看出有很大一部分像素的值为1,在靠近1的部分直方图呈现陡升现象。

内容创作不易,如果对你的学习有帮助,不要忘记了给小编点赞哦!在这里,我们致力于用简单的语言和你一同交流地学制图与数据分析的那些事,欢迎持续关注小编的公众号“梧桐GIS”!

这篇关于ENVI实战—一文搞定NDVI计算和MNDWI计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例

《PyTorch中的词嵌入层(nn.Embedding)详解与实战应用示例》词嵌入解决NLP维度灾难,捕捉语义关系,PyTorch的nn.Embedding模块提供灵活实现,支持参数配置、预训练及变长... 目录一、词嵌入(Word Embedding)简介为什么需要词嵌入?二、PyTorch中的nn.Em

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot3.0新特性全面解析与应用实战

《SpringBoot3.0新特性全面解析与应用实战》SpringBoot3.0作为Spring生态系统的一个重要里程碑,带来了众多令人兴奋的新特性和改进,本文将深入解析SpringBoot3.0的... 目录核心变化概览Java版本要求提升迁移至Jakarta EE重要新特性详解1. Native Ima

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Java docx4j高效处理Word文档的实战指南

《Javadocx4j高效处理Word文档的实战指南》对于需要在Java应用程序中生成、修改或处理Word文档的开发者来说,docx4j是一个强大而专业的选择,下面我们就来看看docx4j的具体使用... 目录引言一、环境准备与基础配置1.1 Maven依赖配置1.2 初始化测试类二、增强版文档操作示例2.