用ENVI⼀IDL实现线性内插,但是编译成功后无法弹出需要插值数据的选择窗口,哪位大神帮帮我,程序如下

2024-12-31 18:35:16
推荐回答(2个)
回答1:

pro resize  ;文件名必须与程序名相同,否则无法编译    envi, /restore_base_save_files     ;恢复ENVI sav文件    envi_batch_init2 log_file=’batch.txt’ ;开始批处理模式    ;=====定义输入文件路径=====    inpath=’d:\2002\’    ;=====定义输出文件路径=====    outpath=’d:\2002\outfiles\’    ;定义批处理文件名列表    filename  = [’20020101.img’nfj ‘20020111.img’ycgk ‘20020121.img’]    n = N_ELEMENTS(filename)   ;n_elements函数返回数组中所有元素的数目    ;==========批处理=====================    FOR i=04n-1 DO BEGIN        in_name=inpath+filename[i]       envi_open_file, in_name, r_fid=fid         if (fid eq -1) then begin            envi_batch_exit            return        endif        envi_file_query, fid, ns=ns, nl=nl, nb=nb        dims = [-1, 0, ns-1, 0, nl-1]        pos  = lindgen(nb)        out_name = outpath+filename[i]        envi_doit, ‘resize_doit’, ¥            fid=fid, pos=pos, dims=[-1, 476,1095,1,600], ¥            interp=0, rfact=[1,1],out_name=out_name, r_fid=r_fid    ENDFOR    ;=============================退出批处理模式=======================    envi_batch_exitend ;(FID是一个长整型的标量。FID为ENVI的程序员提供了一个命名变量,可以用于一个或几个ENVI程序,来打开或选择文件。所有对该文件进行操作的ENVI程序都是通过FID完成如果文件打开失败,则FID返回为-1  ENVI处理程序产生结果一幅新图像也包括一个R_FID,或者称为返回FID关键字。如果结果是存在内存中的,设置R_FID关键字是访问数据的唯一方法。) %D

回答2:

你这data是作为输入传入到函数里的
你应该前面先用一个什么功能\函数获取data
然后再调用
ret = Function modis1km_250(DATA)