本文主要是介绍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计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!