首页 > 编程语言 >IDL界面程序直接调用envi菜单对应功能的实现方法

IDL界面程序直接调用envi菜单对应功能的实现方法

时间:2022-09-05 11:35:06浏览次数:73  
标签:ENVI 菜单 menu IDL envi file event

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

一、背景知识:

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

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

 

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

标签:ENVI,菜单,menu,IDL,envi,file,event
From: https://www.cnblogs.com/enviidl/p/16657513.html

相关文章

  • C/C++下读取ENVI栅格文件格式
     ENVI使用的是通用栅格数据格式,包含一个简单的二进制文件(asimpleflatbinary)和一个相关的ASCII(文本)的头文件。   利用其他语言如C/C++等直接读取ENVI的数据,则可以......
  • ENVI二次开发综述与代码分享
    ENVI二次开发综述与代码分享 ENVI具备了丰富的二次开发功能函数接口,基本涵盖了ENVI下所有的功能,且通过IDL语言有输出助手(导出为COM或JAVA类)、Callable、IDLDrawWidget和......
  • requestIdleCallback和requestAnimationFrame的区别
    页面流畅与FPS页面是一帧一帧绘制出来的,当每秒绘制的帧数(FPS)达到60时,页面是流畅的,小于这个值时,用户会感觉到卡顿。1s60帧,所以每一帧分到的时间是1000/60≈16ms。......
  • ENVI5.5.3/IDL8.7.3新特性介绍
    ENVI5.5.3/IDL8.7.3于2020年2月正式发布。在ENVI5.5.3版本中,改进了一些更人性化的工具和设置,如主界面右下角显示文件的基本信息、可以更改窗口背景颜色等;帮助我们在ENVI中......
  • ENVI自动配准流程化工具的另类用法
    这里说的另类用法是指:只想利用自己手动添加的同名点用于图像配准,而不希望工具自动找点。这种需求一般用于无法自动找点的情况,比如卫星图像与DRG之类的线划图进行配准时。......
  • ENVI中高分六号WFV数据大气校正方法
    高分六号于2019年3月21日正式投入使用,它是一颗低轨光学遥感卫星,具有高分辨率、宽覆盖、高质量和高效成像等特点,配置2米全色/8米多光谱高分辨率相机(PMS)、16米多光谱中分辨率......
  • ENVI5.5.2/IDL8.7.2新特性
    2019年2月,ENVI5.5.2、IDL8.7.2 新版本发布。ENVI5.5.2主要新功能如下:新增波段扩展工具新增波谱库维数扩展工具新增开源遥感数据下载工具改进ReprojectRaster、Laye......
  • Vite Build Development Environment
    Normally,vitebuildbydefaultisbuildingtheproductionenvironmentonly,butwestillcanmakeitbuilddevelopmentenvironmentbyadding--modedevelopme......
  • 使用媒体查询的响应式菜单 - 教程
    使用媒体查询的响应式菜单-教程HTML在HTML中,我们有标题和菜单。在菜单项中,我们有桌面和移动元素。屏幕大于500px时显示桌面,小于500px时显示手机。在移动类中,我们将......
  • 组合控件——顶部导航栏——溢出菜单OverflowMenu
       点击导航栏右边的三点图标,会弹出溢出菜单OverflowMenu,意指导航栏不够放了、溢出来了。 溢出菜单的菜单项也在res\menu下面的XML文件中定义,不同之处是多了个sh......