利用ENVI软件计算NDVI常见错误经验总结
2014-03-27 21:56
225 查看
本人初次学习ENVI软件,就碰到了一个大的bug,实验了一天终于搞定了!记录如下
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
NDVI 的作用就不多说了,计算公式大家都知道是利用(近红外波段-红波段)/(近红外波段+红波段)的公式,在envi中使用transform下的NDVI公式时需要时组合波段(即多个波段组合一起的文件,如果各个波段分开的则无法使用)。用此方法计算的NDVI没问题。
但是如果你要是使用basic tools下的bandmath的话就要注意了。
错误一:书写公式时如果用(b4-b3)/(b4+b3),那么你会发现结果一片黑或一片白,主要是计算值均取了整数,例如(50-10)/(50+10)=40/60=0因为整数运算,结果ndvi值为0。
错误二:查询资料发现必须指定波段的取值为float,计算公式改为float(b4-b3)/float(b4+b3),结果发现NDVI对正值均计算正常,比如植被,裸地等。但是对于水体并不算大家所谓的小于0的值,而是全部大于0,而且是大于1的值。郁闷之极,询问了很多人,解释说bandmath是针对反射率的,不能直接针对DN值计算,但是课本说用DN值后者反射率都可以啊。
几经尝试,发现下面的公式时可行的:NDVI=(float(b4)-float(b3))/(float(b4)+float(b3))可行。
以上是个人多次尝试总结,如果有不对请指定出来。继续改进。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)
NDVI 的作用就不多说了,计算公式大家都知道是利用(近红外波段-红波段)/(近红外波段+红波段)的公式,在envi中使用transform下的NDVI公式时需要时组合波段(即多个波段组合一起的文件,如果各个波段分开的则无法使用)。用此方法计算的NDVI没问题。
但是如果你要是使用basic tools下的bandmath的话就要注意了。
错误一:书写公式时如果用(b4-b3)/(b4+b3),那么你会发现结果一片黑或一片白,主要是计算值均取了整数,例如(50-10)/(50+10)=40/60=0因为整数运算,结果ndvi值为0。
错误二:查询资料发现必须指定波段的取值为float,计算公式改为float(b4-b3)/float(b4+b3),结果发现NDVI对正值均计算正常,比如植被,裸地等。但是对于水体并不算大家所谓的小于0的值,而是全部大于0,而且是大于1的值。郁闷之极,询问了很多人,解释说bandmath是针对反射率的,不能直接针对DN值计算,但是课本说用DN值后者反射率都可以啊。
几经尝试,发现下面的公式时可行的:NDVI=(float(b4)-float(b3))/(float(b4)+float(b3))可行。
以上是个人多次尝试总结,如果有不对请指定出来。继续改进。
相关文章推荐
- Android开发常见的错误汇总及开发经验技巧总结(一)
- 利用easyBCD安装ubuntu双系统常见错误总结
- 经验总结 PHP框架常见错误
- 常见代码错误经验总结
- git 常见错误总结
- Android 开发软件架构思考以及经验总结
- iOS开发OC基础:Xcode中常见英文总结,OC常见英文错误
- JSF常见错误总结
- C++ 常见错误总结
- nginx常见内部参数,错误总结
- 五年软件开发经验的一点总结
- java连接数据库常见错误总结
- 软件外包中常见的七个错误之一 - 不懂用户需求
- FTP上传软件常见错误问题集锦
- 手机应用软件测试经验总结
- VC 6.0 常见断言错误总结
- 调试经验总结-VC下的错误对话框
- 计算机视觉caffe之路附1:Ubuntu+Opencv+Caffe开发深度学习常见错误及经验
- asp.net最常见的错误总结!
- [经验总结] 用VIM的缩进功能解决一个编译错误