IDL二次开发技术

在基于ENVI/IDL平台遥感业务化系统开发时,根据业务需求和技术手段,我们可以分成三种实现方法,分别为:纯IDL开发、ENVI二次开发、ENVIArcGIS一体化开发。

当我们的业务系统中,仅仅涉及到了遥感图像处理功能,可以考虑使用前两种开发手段;当需要加入GIS的空间分析、制图输出等功能时,可以考虑使用最后一种开发手段。


波段运算

波段运算公式格式必须满足IDL格式要求,除此之外,还要注意如下要求:

Ÿ   波段变量名必须为b1b2 … bNB1B2 … BN

Ÿ   波段运算自定义函数以Function开头,代码中有RETURN返回结果;

Ÿ   ENVI只能调用SAV文件(sav文件放在\Exelis\ENVI50\custom_code);

Ÿ   ENVI+IDL模式可以调用savpro

很多用户需要在ENVI下处理NaN的情况,所以总结了几个波段运算公式,可以直接进行处理,而且不需要考虑数据量的大小,会自动进行分块处理。

Ÿ   修改0值为NaN

          float(b1)*b1/b1

Ÿ   修改特定值(250)为NaN

          b1*float(b1 ne 250)/(b1 ne 250)

Ÿ   修改NaN为特定值(-999):

          finite(b1, /nan)*(-999) or (~finite(b1, /nan))*b1

Ÿ   修改NaN0值(先按上面方法修改为-999

          (b1 ne -999)*b1

ENVI Classic

ENVI Classic与之前ENVI版本的菜单结构、开发模式均一致。用户可以手动修改安装目录下的envi.mendisplay.men来修改ENVI主界面和显示界面的菜单,同样可以进行汉化工作。

IDL工作台可以使用如下语句初始化ENVI函数:

          ENVI, /restore_base_save_files

          ENVI_BATCH_INIT

ENVI提供了一些列的ENVI_*接口和DOIT接口供IDL调用。如下图所示,分别为ENVI Classic RoutinesWidgets


这样更方便了其他用户使用补丁,只需要拷贝到save_add文件夹重启ENVI即可。自动添加菜单使用ENVI_DEFINE_MENU_BUTTON过程实现。如下图中的例子,将Fix Bad Points添加到了Layer Stacking的后边,并添加分隔符。


ENVI 5.0

详细介绍可以参考此博文:http://blog.sina.com.cn/s/blog_764b1e9d01016j9s.html

ENVI 5.0新带来的开发模式是基于面向对象的理念。对于新手或其他语言使用者都可以非常方便快速的上手使用。

ENVI 5.0提供了三种类型的对象和方法,分别为:

Ÿ   程序控制

          可以利用ENVI提供的API接口对ENVI进行控制。比如启动/关闭ENVI、添加扩展工具、打开栅格/矢量文件、创建栅格/矢量文件、创建视图等。

Ÿ   数据控制

          提供了数据有关的对象和方法。比如ENVIRaster对象,可以实现对栅格数据的打开、获取数据、分块处理等。

Ÿ   显示控制

          可以进行透视窗口操作、栅格/矢量图层操作、用户界面操作、视图操作等。

注:上述介绍的对象和方法的使用帮助均可以在ENVI帮助中找到(如下图所示)。每一个方法均有Example供用户学习使用。




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值