• 【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:不显示窗体退出的确认按钮。

     
               
  • 相关阅读:
    递归和分类问题之间的区别
    基于TF-IDF的推荐
    mnist
    服饰分类的神经网络模型
    基于内容的推荐
    深度学习-术语
    FiBiNET-学习
    30,新起点,再出发。
    md5加盐加密
    批处理for命令中的/r和/d参数
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/8434914.html
Copyright © 2020-2023  润新知