LearningENVI&IDL分享 http://blog.sciencenet.cn/u/dongyanqing Learning ENVI&IDL

博文

IDL界面直接调用envi菜单功能的方式

已有 11081 次阅读 2012-7-11 01:30 |个人分类:ENVI|系统分类:科研笔记| 开发, IDL, ENVI

       ENVI软件具备强大的二次开发功能,提供了绝大多数功能的函数调用接口。但二次开发的时候需要自己编写处理和操作界面,很多时候这也是个头疼的问题。如果希望在自己的程序界面中直接调用envi的功能,可以通过下面的方式。

一、背景知识:

ENVI的菜单系统,包括主菜单和显示窗口菜单,是由ENVI安装目录下menu目录下的envi.mendisplay.men这两个ASCII码文件定义的。Windows系统上menu的路径为ittidlxxproductsenvixxmenu

envi.men文件定义了ENVI主菜单中的选项,display.men文件定义了显示窗口菜单中的选项。每次ENVI启动的时候,这两个文件被读入并根据其内容构建ENVI的菜单。在菜单中添加内容,只需在这两个文件中添加相应的内容并重启ENVI即可。

使用任何文本编辑器就可以打开envi.men文件。在文件的顶部有些介绍的注释文本。注释结束后,就是如下的文件的结构:

0 {File}

  1 {Open Image File} {open envi file} {envi_menu_event}

  1 {Open Vector File} {open vector file} {envi_menu_event}

  1 {Open Remote File} {open remote file} {envi_menu_event}

  1 {Open External File} {separator}

    2 {Landsat}

      3 {Fast} {open eosat tm} {envi_menu_event}

每一行开始的数据定义了菜单项的层次。0表示最顶层,1表示一级子菜单,2表示二级子菜单,如此类推。

{Open Image File}第一个大括号的部分定义了显示在菜单上的内容。

{open envi file}第二个大括号的部分定义了为菜单项所赋给的用户值(uValue),基于用户值可以判别哪个菜单项被点击了。

{envi_menu_event}第三个大括号定义了菜单项事件处理程序的名称,即编写的用户函数名。该处使用的是函数名,而不是用户函数所在的文件名,所以没有后缀。

二、应用

envi下的统计功能为例,调用时首先明确菜单内容,如下:

;  1 {Statistics} {separator}

  ;    2 {Compute Statistics} {compute file stats} {envi_menu_event}

  ;  创建button时,

 

创建按钮时,{Compute Statistics}代表是value{compute file stats} 代表uvalue                {envi_menu_event}代表的是event_pro

完整代码如下:

pro direct_call_envi

  ;

  wTlb = widget_base()

  wButton = widget_button(wtlb,value='计算统计', $

    uvalue='compute file stats', $

    event_pro = 'envi_menu_event')

  widget_control,wtlb,/realize

  ;初始化envi

  envi,/restore_base_save_Files

  envi_batch_init

  ;启动事件关联

  xmanager,'direct_Call_Envi',wtlb,/no_block

 

end

 

 

注:此种调用方法非官方正式发布,不能保证程序调用时的功能运行的完整性性,仅供学习参考研究使用。



https://blog.sciencenet.cn/blog-344887-590935.html

上一篇:Windows平台下配置IDL气象可视化演示程序(idl_guide5)
下一篇:ENVI5.0的汉化方法
收藏 IP: 113.123.154.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-24 10:12

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部