【300】◀▶ IDL

参考:ENVI API

参考:ENVI Classic Display

序号 类名称  

功能说明

  语法 & 举例
01 ENVI 函数  

====<<<< Description >>>>====

启动 ENVI 程序并返回此程序的对象引用。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

Result = ENVI([, Keywords=value] [, Properties=value])
----------------------------------------------------------------------------------

====<<<< Return Value >>>>====

ENVI 程序的对象引用。
----------------------------------------------------------------------------------

====<<<<  Methods >>>>====

AddCustomReader
AddExtension
Close
CreateView
GetBroadcastChannel
GetTemporaryFilename
GetView
HideExtensionFiles
LogMessage
OpenPointCloud
OpenRaster
OpenROI
OpenVector
QueryPointCloud
Refresh
ReportError
RestoreSession
SaveSession
Show

   
 02  ENVI 过程  

====<<<< Description >>>>====

使用这个过程来恢复基本的环境保存文件(.sav)。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI, /RESTORE_BASE_SAVE_FILES
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  RESTORE_BASE_SAVE_FILES:使用这个关键字来恢复基本的环境保存文件(.sav)批处理模式。

    
ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
ENVI_REPORT_INIT, ['line1', 'line2', 'line3'], $
  title='Title', base = base, /interrupt
ENVI_REPORT_INC, base, 100
ENVI_REPORT_STAT, base, 50, 100, CANCEL=cancel

效果如下所示:

 添加 Cancel 按钮判断:

ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT
ENVI_REPORT_INIT, ['line1', 'line2', 'line3'], $
  title='Title', base = base, /interrupt
ENVI_REPORT_INC, base, 100

FOR i = 0, 100-1 DO BEGIN
  ENVI_REPORT_STAT, base, i+1, 100, CANCEL=cancelvar
  ;用来判断是否点击了 Cancel 按钮
  IF cancelvar EQ 1 THEN BEGIN
    tmp = DIALOG_MESSAGE('是否停止处理?', /cancel)
    ;用来判断点击了“确定”还是“取消”
    IF tmp eq 'OK' THEN BEGIN
      ENVI_REPORT_INIT, base = base, /finish
      BREAK
    ENDIF
  ENDIF
  WAIT,0.1
ENDFOR

ENVI_REPORT_INIT, base = base, /finish
ENVI_BATCH_EXIT

 点击 Cancel 按钮效果如下所示:

 参考:【转】进度条终止判断(IDL+ENVI)

03 ENVI_BATCH_INIT  

====<<<< Description >>>>====

这个过程已经被 ENVI 函数替换,代码如下:
e = ENVI(/HEADLESS)
代替如下代码:
ENVI, /RESTORE_BASE_SAVE_FILES
ENVI_BATCH_INIT, /NO_STATUS_WINDOW

----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI_BATCH_INIT [, BATCH_LUN=variable] [, LOG_FILE=string] [, /NO_STATUS_WINDOW]
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  NO_STATUS_WINDOW:使用这个关键字不显示经典状态窗体。

 
 04 ENVI_REPORT_INIT    

====<<<< Description >>>>====

这个过程显示一个典型的进度条。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI_REPORT_INIT, Rstr, BASE=variable, /FINISH, /INTERRUPT, TITLE=string

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Rstr:显示在状态窗体上的一组字符串,每一个元素显示一行。
◈  BASE:设置此关键字用于显示状态窗体。
◈  FINISH:设置此关键字,当处理结束后移除状态窗体。必须是相同的 Base 值。
◈  INTERRUPT:设置此关键字允许使用 Cancel 中断处理。
◈  TITLE:显示在状态窗体的标题栏上。

 
 05 ENVI_REPORT_INC  

====<<<< Description >>>>====

用于增量处理。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI_REPORT_INC, Base, Num_tiles

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Base:状态窗体的 ID 值。
◈  Num_tiles:处理循环的总数。

 
 06 ENVI_REPORT_STAT  

====<<<< Description >>>>====

更新百分比
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI_REPORT_STAT, Base, Num, Den, CANCEL=variable
----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  Base状态窗体的 ID 值。
◈  Num:处理的数值,百分比取决于此值与总数的比值
◈  Den总数。
◈  CANCEL用此关键字获取 cancel 按钮的返回值。 此关键字仅当设置了 ENVI_REPORT_INIT 的 INTERRUPT 关键字才管用。如果返回值为 1 表示按钮被按了,否则返回值为 0.

 
 07 ENVI_BATCH_EXIT  

====<<<< Description >>>>====

此过程已经被 ENVI 函数的 Close 方法所代替。

使用此过程用来终止 ENVI。
----------------------------------------------------------------------------------

====<<<< Syntax >>>>====

ENVI_BATCH_EXIT [, /EXIT_IDL] [, /NO_CONFIRM

----------------------------------------------------------------------------------

====<<<< Parameters >>>>====

◈  EXIT_IDL:设置此关键字将会强制退出 IDL。
◈  NO_CONFIRM:不显示窗体退出的确认按钮。

 
           
原文地址:https://www.cnblogs.com/alex-bn-lee/p/8434914.html