数据波段运算及ndvi计算

一、实验名称:

数据波段运算及ndvi计算

二、实验目的:

学习数据波段运算及ndvi计算

三、实验内容和要求:

(1)实验:练习3个波段相加

fix(b1)+b2+b3

检查一下结果,原始的图和后来的都选择457三个波段,加一下是否一致

(2)实验:直接计算ndvi和波段计算器计算ndvi

直接计算:在工具栏搜索ndvi

波段运算:NDVI:(float(b4)-b3)/(b4+b3)  红波段3,近红外4

(3)实验:通过函数计算ndvi

function myNDVI,b3,b4;

return,(float(b4)-b3)/(b4+b3)

end

打开envi:e=envi()

函数使用:

myndvi(b3,b4)

(4)实验:计算三个波谱的均值

(s1+s2+s3)/3

四、实验步骤:

实验一:数据波段运算

1.启动ENVI,选择菜单 File > Open,打开数据“can_tmr.img”;

2.启动 Band Math工具,路径为Toolbox/Band Ratio/Band Math ;

 

3.在 Band Math面板,在Enter an expression文本框中输入运算表达式:b1+ b2+b3,点击Add to List按钮,将表达式添加到PreviousBand Math Expression列表中;注:如果表达式存在语法错误,将不能被添加到列表中。

4.在 Band Math面板中,选中添加的“fix(b1)+b2+b3”,点击OK按钮,打开 Variables toBands Pairings 对话框(如图),为运算表达式中各个变量赋图像文件或者图像波段;

5.在Variables to Bands Pairings 对话框中,Variables used in expression 列表框中选择变量b1,单击Available Bands List 中的“TM Band 1(0.4850)”。然后用同样的方法为b2和b3指定为“TM Band 2”和“TM Band 3”;

 

6.单击 Choose按钮,选择文件名及路径保存结果,单击 OK按钮执行运算;

7.此时可以将输入和输出文件加载到视图中,然后点击工具栏中选择查询点查看。

实验二:直接计算ndvi和波段计算器计算ndvi

  1. 在工具栏搜索ndvi红波段3,近红外4。

 

 

 

2.波段运算:NDVI:(float(b4)-b3)/(b4+b3)。

 

 

 

实验三:通过函数计算ndvi

  1. 启动IDL新建文件,进行编译。

function myNDVI,b3,b4;

return,(float(b4)-b3)/(b4+b3)

end

打开envi:e=envi()

 

2.Enter打开ENVI,打开数据文件,打开Band Math 调用函数myndvi(b3,b4) 

3.选择对应波段和输出路径 

 

实验四:计算三个波谱的均值

(s1+s2+s3)/3

  1. Display打开波谱库

 

2.选择波谱,打开Spectral Math输入(s1+s2+s3)/3 

 

3.选择对应波谱 

 

4.输出结果

 

五、注意事项:

    1.问题一:通过IDL打开ENVI后调用不出函数

解决方案:启动IDL新建文件,要进行编译否则调用不出函数。

  1. 问题二:计算三个波谱的均值要手动打(s1+s2+s3)/3不要复制粘贴否则打不开。
  2. 实习体会:必须符合IDL语言书写波段运算表达式;所有输入波段必须具有相同的空间大小;表达式中的所有变量都必须用Bn(或bn)命名,结果波段必须与输入波段的空间大小相同;

调用IDL编写的自定义函数时

-以函数Function开头

- ENVI只调用.SAV

- ENVI+IDL可以调用sav和pro

 感谢你的点赞和关注

猜你喜欢

转载自blog.csdn.net/m0_59276096/article/details/125265551