如何删除ENVI 5.0 API中的中间文件?

时间:2012-11-14 08:42:21

标签: idl-programming-language envi

ENVI 5.0 API存在以下问题:我经常在脚本中使用ENVI_DOIT批处理例程来生成中间图像,并使用/ IN_MEMORY开关将它们留在内存中。当我完成它们时,我用

去除它们

ENVI_FILE_MNG,id = FID,/ REMOVE。

在ENVI 5.0“Classic”中运行良好。然而,新的ENVI 5.0 GUI似乎有必要将以这种方式创建的所有图像放在“视图”中,完成构建金字塔,然后我收到警告

“处理金字塔时无法关闭栅格”

因此无法以编程方式删除中间文件。我尝试将它们作为临时文件放在磁盘上,但是当我尝试从脚本中删除文件时会弹出相同的错误。有什么方法可以避免这种情况吗?

2 个答案:

答案 0 :(得分:1)

我确信这目前已被打破。我尝试了很多方面,包括尝试手动触发金字塔的创建,测试它存在,然后关闭栅格,如:

raster_file.createpyramid
print, raster_file.pyramid_exists ; prints '1'
raster_file.close

我仍然得到错误,"处理金字塔时无法关闭栅格。"

我切换回ENVI classic。

答案 1 :(得分:0)

这个对我有用:

;pro closeall
fid=envi_get_file_ids()
if fid[0] ne -1 then begin
    for i=0, n_elements(fid)-1 do begin
        envi_file_mng, id=fid[i], /remove
    endfor
endif
;end

来源:

  1. https://www.harrisgeospatial.com/Support/Forums/tabid/2342/aft/2798/
  2. http://ethangutmann.com/pages/idl/envilib.pro