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

2025-03-14 05:27:40

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,1END;对象初始化函数;包含两个参数:输入和输出文件名。;FUNCTION Object_ENVI_Resize::INIT,$ inFileName ,outFileName COMPILE_OPT idl2 ;文件名参数 self.INFILENAME = inFileName self.OUTFILENAME = outFileName ;初始化ENVI INITFALG = self->INITENVI() RETURN, INITFALGEND;类定义PRO OBJECT_ENVI_RESIZE__DEFINE ;类定义结构体 void = {Object_ENVI_Resize, $ inFileName : '', $ outFileName : '' $ }END

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

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

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

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

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

ENVI IDL编译单个pro文件的做法
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢