多语言展示
当前在线:1525今日阅读:138今日分享:33

ENVI IDL编译单个pro文件的做法

sav文件为IDL程序中的二进制文件。sav文件是使用IDL的编译器编译pro文件得到的。下面介绍编译pro文件得到sav文件的做法。
工具/原料
1

IDL集成开发环境

2

IDL程序

方法/步骤
1

编写一个简单的IDL程序,保存为pro文件。代码如下:;重采样执行功能;输入放缩比例和采样方法PRO Object_ENVI_Resize::EXECUTEResize,$    xfactor, yfactor,method  COMPILE_OPT idl2, hidden    ;打开文件  ENVI_OPEN_FILE, self.INFILENAME, R_FID=fid  IF (fid EQ -1) THEN RETURN  ;查询文件基本信息  ENVI_FILE_QUERY, fid, dims=dims, nb=nb  pos  = LINDGEN(nb)  ;重采样处理  ENVI_DOIT, 'resize_doit', $    fid=fid, pos=pos, dims=dims, $    interp=1, rfact=1./[XFACTOR,YFACTOR], $    method = METHOD,$    out_name=self.OUTFILENAME    END;对象的析构函数PRO Object_ENVI_Resize::CLEANUP  COMPILE_OPT idl2, hidden    ;关闭ENVI二次开发模式  ;需要注意,COM组件调用该功能的时候,必须设置如下参数:  ; 在ENVI主菜单的File-Preference-Miscellaneous下  ; 设置 Exit IDL on Exit from ENVI为'NO'  ENVI_BATCH_EXITEND;ENVI初始化方法FUNCTION Object_ENVI_Resize::initEnvi  CATCH, error_status  IF Error_status NE 0 THEN BEGIN    RETURN,-1    CATCH, /CANCEL  ENDIF  ;ENVI二次开发模式初始化  ENVI,/Restore_Base_Save_Files  ENVI_BATCH_INIT  RETURN,1  END;对象初始化函数;包含两个参数:输入和输出文件名。;FUNCTION Object_ENVI_Resize::INIT,$    inFileName ,outFileName  COMPILE_OPT idl2  ;文件名参数  self.INFILENAME = inFileName  self.OUTFILENAME = outFileName  ;初始化ENVI  INITFALG = self->INITENVI()  RETURN, INITFALG  END;类定义PRO OBJECT_ENVI_RESIZE__DEFINE  ;类定义结构体  void = {Object_ENVI_Resize, $    inFileName : '', $    outFileName : '' $    }END

2

使用IDL 85集成环境打开pro文件(编译32位的sav使用32位的IDL集成环境,编译32位的sav使用64位的IDL集成环境),如下图:

3

单击工具栏上的编译按钮对pro文件进行编译,如下图:

4

在命令栏中输入命令将编译结果生成sav文件,输入命令如下:save,/routines,file=’E:\Publish\object_envi_resize_define.sav’其中E:\Publish\object_envi_resize_define.sav为保存的全路径。到这里就生成了sav文件。

推荐信息