转自http://blog.csdn.net/dongyu1009/article/details/9149085
1、什么是批处理?

批处理(Batch)顾名思义,就是对某对象进行批量的处理。在学习Windows的时候,大家可能会遇到以.bat为扩展名的文件,这个文件里面包括了一系列的DOS命令。当运行这个bat文件的时候,这些dos命令会依次进行,不需要手工的一遍一遍的在命令窗口中输入,这就是批处理的好处。

在ENVI中,我们常常需要对一系列的命令重复使用,我们就可以把这些命令组合起来,保存为一个IDL的批处理文件,方便我们日后使用

2、IDL批处理文件

批处理文件是以.pro结尾的一种包括了一系列的IDL命令的文件。运行这类文件和用户在IDL命令行中敲入的命令完全一样。

例如,在IDL命令行中绘制正弦曲线图的时候,可以通过下面的几个命令来实现:

[plain] view plaincopy print?
  1. IDL>arr = findgen(200)
  2. IDL>data = sin(arr/20)
  3. IDL>window,2,xsize = 400,ysize = 300,title = 'Plot Sin'
  4. IDL>plot,data

如果需要多次调用上述代码,可以采用批处理模式,讲下面的几行代码保存在一个批处理文件中(注意:批处理文件中无需PRO、END等关键字)

[plain] view plaincopy print?
  1. data = sin(arr/20)
  2. window,2,xsize = 400,ysize = 300,title = 'Plot Sin'
  3. plot,data

假设批处理文件在C:\temp目录下,名称为batch_plot.pro,我们就可以在命令行中通过下面的方法调用

[plain] view plaincopy print?
  1. IDL>cd,'C:\temp'
  2. IDL>arr = findgen(400)
  3. IDL>@batch_plot

3、ENVI批处理模式

以批处理模式运行ENVI能够让用户在命令模式下使用ENVI。这种能力在以下几种情况下非常有用:

(1)用户主要使用IDL工作但偶尔需要用到ENVI的函数; 
(2)用户希望创建定制的应用程序其中混合了IDL代码和ENVI函数; 
(3)用户希望进行大量的ENVI处理而无需人工干预。

批处理模式的ENVI和正常模式下没有什么区别,只是通过一系列特定的函数库来执行ENVI的功能。为了使用这些函数,必须首先将它们恢复到IDL内存中。因此为了正确获取ENVI库函数,有必要了解一下ENVI程序的结构:

ENVI 功能函数分散在大约50个小的IDL save文件中,这些二进制的文件包括数据和编译后的程序。这些save文件存放在ENVI安装路径下的Save目录下。ENVI核心save文件包括ENVI的基本功能函数,动态运行函数以及ENVI运行所需的内部变量。在典型的Windows PC上这些文件存放在:C:\rsi\idlxx\products\envixx\save 目录下。

(1)ENVI批处理初始化:

ENVI批处理初始化一般包括如下步骤:

  1. ENVI的主菜单条上设置File ->Preferences->Miscellaneous->Exit IDL on Exit from ENVI->No
  2. compile_opt idl2                          ;严格编译器要求
  3. ENVI, /restore_base_save_files ;加载核心save文件
  4. ENVI_batch_init                          ;初始化批处理

(2)离开ENVI批处理模式:

使用ENVI_BATCH_EXIT命令即可,ENVI_BATCH_EXIT退出批处理的方式和通过ENVI主菜单上选择File-> Exit退出ENVI的效果一样。同样,使用该命令退出ENVI后,ENVI时段使用的License也被释放。

4、混合批处理模式

ENVI始终是一个IDL程序,如果用户使用运行ENVI的IDL时段,用户将能够访问所有ENVI程序和函数,这种状态通常称为混合批处理模式。

优点:

用户能够使用ENVI特有的库函数而无需初始化批处理模式

模拟了代码执行的最终环境

缺点:
如果IDL程序崩溃,那么当前的ENVI环境将会整个崩溃

5、关于ENVI_Doit

在调用ENVI空间处理函数的时候有以下面的区别:(这个是重点哦

如果在批处理模式在,调用的时候需要采用envi_doit, 'envi_stats_doit'

在混合批处理模式下,调用的时候直接采用envi_stats_doit
===========================================

参考文章:

http://blog.sina.com.cn/s/blog_701286210100u95t.html

【ENVI二次开发】关于批处理(Batch)模式与ENVI_DOIT的使用相关推荐

  1. ENVI二次开发时的注意事项

    转自:ENVI-IDL官方博客 代码编写与操作时需要注意的几点: 1.pro第一行写上compile_opt idl2,避免编译时ENVI函数找不到的情形: 2.调试时需要终止程序,尽量不要点击&qu ...

  2. 软件介绍|ENVI/IDL软件及二次开发介绍

    ENVI是美国Exelis Visual Information Solutions公司的旗舰产品,它是由遥感领域的科学家采用交互式数据语言IDL(Interactive Data Language) ...

  3. draw.io二次开发(1)三种运行模式的区别

    想尝试在开源的drawio的基础上做一些开发,实现自己的定制化需求.可能是因为这个工具已经非常完善了吧,找到的大部分都是教你如何使用,开发相关资料太少,看来只能靠自己了. 关于开发环境搭建,请先看这一 ...

  4. 运用Java对微信公众平台二次开发技术——开发者模式接入

    当初我在这碰到了很多问题,市面上以及网络上的资料特别少,所以当初碰了很多壁,所以现在跟大家分享一下,如何用Java,对微信公众平台进行二次开发. 一.开发预备知识: 最基本的JavaSE与JavaWe ...

  5. UG/NX 二次开发(C#) 程序自动切换制图模式

    作为C#语言的铁粉,在做二次开发的时候,发现西门子在C#语言下的支持还是不够完善. 就拿自动切换制图模式来说,C++可以直接调用内部函数 UI_APP_change_application,还在网上找 ...

  6. dz发帖html模式,discuz二次开发调用编辑器发帖显示html何解?

    discuz的开发文档很少,在二次开发的时候用discuz的编辑器,显示的是html代码,查看源码和各种莫名其妙的问题着实令人摸不着头脑.而discuz帖子存储在数据库的却是自定义的bbcode而不是 ...

  7. UG NX二次开发(C#)-外部模式-导出dwg格式的文件

    前言 UG NX是大型CAD软件,也提供了二维制图功能,当我们想采用外部模式导出标准视图的二维制图时,可以通过UG NX提供的二次开发函数来完成.下面介绍下导出二维制图的二次开发方法. 建立一个新的工 ...

  8. 8tupian图片加密平台v2.7 对图片进行加密的网络平台+包含三种模式上传图片+可二次开发修改

    8tupian图片加密平台v2.7 对图片进行加密的网络平台+包含三种模式上传图片+可二次开发修改 8tupian图片加密平台采用 php+mysql 的环境,php 版本是 php5.6. 源码是通 ...

  9. Creo二次开发异步模式配置

    异步模式是Creo二次开发的另外一种形式,被广泛应用于一些外部调用中.其配置过程如下: (1)      创建MFC程序(对话框程序都可以了) (2)      配置工程常规选项 (3)      配 ...

最新文章

  1. R构建列联表(Contingency Table or crosstabs)
  2. 图像旋转的MATLAB和OpenCV源码
  3. (二)k-means算法原理以及python实现
  4. java刘保_[SSH] Eclipse+Struts2的简单应用
  5. 如何解决Binder泄漏问题
  6. SublimeText2使用笔记
  7. 火星人(洛谷P1088题题解,C++语言描述)
  8. 如何构建 HBase 集群监控系统?
  9. 01 安装ansible
  10. 合成迪丽热巴下海_热巴生图颜值回春,被韩媒吹上天,她是找了杨幂的医生?...
  11. python和java选择哪个-Python与Java-你首选哪个?
  12. 关于字符编码的一点学习。
  13. 软件课程设计--仓库管理系统
  14. 使用ps 制作gif 动图
  15. 淘宝关键词搜索采集商品价格销量接口分析商品价格走势(商品列表接口,商品销量接口,商品价格接口,分类ID采集精准商品数据接口)接口代码对接流程
  16. 前端之JS事件events
  17. vs2008 下配置 opencv2.0 的总结,以及 vc6 下配置 opencv1.0 的转帖
  18. python 根据身份证号计算年龄和性别_excel如何根据身份证号计算男女出生日期、性别和年龄?分享了!...
  19. 2021年富平迤山中学高考成绩查询,本地:迤山中学高考成绩喜人
  20. mpc5125的lpc总线

热门文章

  1. python怎么把excel单元格里面的文字提取出来_干货 | Excel如何花式秀操作?
  2. java oauth2搭建_Spring Security 实战干货:OAuth2授权请求是如何构建并执行的
  3. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(3) - 组合的算术指令
  4. Intel 64/x86_64/IA-32/x86处理器 - 通用指令(5) - 控制转移指令
  5. iphone降级 无需电脑_App 降级无需电脑,手机直接搞
  6. C++:求区间内最大的因子和
  7. java单个数组求积_[剑指offer][Java]构建乘积数组
  8. Python3 离线安装第三方包
  9. div垂直,水平居中
  10. TensorFlow基本原理,入门教程网址