一、实验名称:
数据波段运算及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
- 在工具栏搜索ndvi红波段3,近红外4。
2.波段运算:NDVI:(float(b4)-b3)/(b4+b3)。
实验三:通过函数计算ndvi
- 启动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
- Display打开波谱库
2.选择波谱,打开Spectral Math输入(s1+s2+s3)/3
3.选择对应波谱
4.输出结果
五、注意事项:
1.问题一:通过IDL打开ENVI后调用不出函数
解决方案:启动IDL新建文件,要进行编译否则调用不出函数。
- 问题二:计算三个波谱的均值要手动打(s1+s2+s3)/3不要复制粘贴否则打不开。
- 实习体会:必须符合IDL语言书写波段运算表达式;所有输入波段必须具有相同的空间大小;表达式中的所有变量都必须用Bn(或bn)命名,结果波段必须与输入波段的空间大小相同;
调用IDL编写的自定义函数时
-以函数Function开头
- ENVI只调用.SAV
- ENVI+IDL可以调用sav和pro