ENVI编写函数进行波段运算
来源:互联网 发布:淘宝名不虚传怎么用 编辑:程序博客网 时间:2024/05/20 23:06
编写函数有更好的灵活性。
波段运算函数的编写非常简单,接受输入波段,处理数据,并返回结果。以下面的方式
定义:
Function bm_func,b1,[b2,…,bn, parameters and keywords]processing stepsreturn,resultend以编写(b1+b2)/ (b1-b2)功能为例,编写波段运算函数步骤如下:
编写函数并保存。
默认保存在以下路径,也可以进行修改。
C:\Documents and Settings\Administrator\IDLWorkspace71
;函数定义为两个输入波段b1和b2以及一个check关键字Function bm_ratio,b1,b2,check=check;计算差值den=FLOAT(b1)-b2;如果设置了check关键字,检查被0除问题IF(KEYWORD_SET(check)) THEN ptr=WHERE(den EQ 0.,count)$ELSE count=0IF(count GT 0) THEN den [ptr]=1.0;继续计算比率结果result=(FLOAT(b1)+b2)/denIF(count GT 0) THEN result[ptr]=0.0;返回结果RETURN,resultEND编译函数
编译函数的方法有两种,一是直接编译 pro,一是拷贝函数或保存的 sav 文件到相应的目录下重启 ENVI+IDL。
1) 在 ENVI 的主菜单下,选择[File]→[Compile IDL Module],选择函数进行编译;
2) 把 bm_ratio.pro 或 sav 文件放入 ENVI 安装目录下的..\ envi46\save_add 下,重新启动
ENVI+IDL 即可。
3) 执行函数
在 ENVI 主菜单下,选择[Basic Tools]→[Band Math],在弹出的 BandMath 界面中,在[Enter
an Expresion]里面输入函数调用,点击[OK]执行。
注意:在点击OK执行之前需要先加载影像,否则没有可用波段供选择。
(5)执行两个波段的比值,不检查是否被0除,在表达式文本框中输入:
Bm_ratio(b1,b2)
(6)执行两个波段的比值,并检查是否被0除,输入下面的式子:
Bm_ratio(b1,b2,/check)
0 0
- ENVI编写函数进行波段运算
- ENVI编写数学表达式进行波段运算
- ENVI 波段运算的函数和实例
- ENVI/IDL波段运算
- ENVI扩展工具:利用波段运算修改NaN方法总结
- 高光谱遥感图像处理(12)----ENVI使用教程之波段比与波段运算
- IDL开发专题-IDL运算符与ENVI波段运算举例
- 使用ENVI/IDL载入多波段图像
- 基于ENVI的图像融合+波段合成
- 波段运算(bandmath)工具中常用的函数
- ENVI波普运算
- landsat 卫星波段组合以及envi下的展示
- 常用ENVI函数
- ENVI二次开发函数汇总
- ENVI/IDL——获取AVIRIS数据波段值和经纬度
- IDL8.5进行波段合成代码
- .编写函数进行日期转换
- ENVI
- (转)安卓模拟示波器
- 删除Win7任务栏过期童子区域图标
- 关于java反射机制的粗略理解
- JQuery闭包,插件的写法
- 浅谈C/C++内存泄露及其检测工具
- ENVI编写函数进行波段运算
- LeetCode OJ:Surrounded Regions
- eclipse xml文件中按没有提示
- 利用MATLAB 绘制矩阵色块图
- mysql强制改密码
- lca倍增dp
- java基础-2
- 小强的HTML5移动开发之路(27)—— JavaScript回顾2
- 练习1-22