【问题标题】:how to write an panchromatic image in IDL如何在 IDL 中编写全色图像
【发布时间】:2014-08-06 17:28:56
【问题描述】:

我想从全色图像创建一个文件图像,新图像 = IDL 中的全色 *0.05678345。但是,结果有错误:% Unable to allocate memory: to make array。 没有足够的空位 % 执行停止于:Q_RAD_SIXSIN_GEN_P_221936 35 这是我的代码:

 PRO q_rad_sixsin_gen_p_221936
    ENVI, /RESTORE_BASE_SAVE_FILES
      ENVI_BATCH_INIT, LOG_FILE='batch.txt'


    input_dir = 'D:\BA34\Panchromatic\BA34_pan_221936_10oct25'
    input_dir_name_lenght=STRLEN(input_dir)
    imagelist=FILE_SEARCH('D:\BA34\Panchromatic\BA34_pan_221936_10oct25\*.tif',COUNT=count)
    ;imagelistt=FILE_SEARCH('D:\quickbird\test.tif', COUNT=count)
    ;envi_open_file, imagelistt, r_fid=tfid,NO_REALIZE=1
    ;map_info=envi_get_map_info(fid=tfid)



    COMPILE_OPT IDL2
    FORWARD_FUNCTION ENVI_GET_DATA, ENVI_GET_MAP_INFO

    FOR h=0, count-1 Do Begin
                path_filename=imagelist[h]


    K_pan= 0.05678345

    Pan_Width= 0.2846000

        envi_open_file, imagelist[h], r_fid=fid,NO_REALIZE=1
        ENVI_FILE_QUERY,fid,DIMS=dims,NS=ns,NL=nl,sname=sname
        map_info=envi_get_map_info(fid=fid)
        filenamelength=STRLEN(sname)
        outname=STRMID(sname,0,filenamelength-4)
        dims=[-1L, 0, ns-1, 0, nl-1]
        pan    = ENVI_GET_DATA(FID=fid,dims=dims,pos=0)
        br=fltarr(ns,1,nl)
        br = (pan *(K_pan)/(Pan_Width))*0.1
        envi_write_envi_file, br, map_info=map_info, out_name=outname+'_rad.dat', r_fid=fid, interleave=1
        envi_file_mng, id=fid, /remove


    ENDFOR
    END

非常感谢您帮助更正代码。

留置权

【问题讨论】:

    标签: idl


    【解决方案1】:

    从上下文中不清楚这是在循环的第一个实例中发生还是在随后的迭代中发生。释放内存的一种方法是使用temporary() 函数:它释放数组使用的内存空间。在您的情况下,您可以使用:

    br = temporary(pan) * 0.1* K_pan)/Pan_Width
    

    后来

    envi_write_envi_file, temporary(br), map_info=map_info, out_name=outname+'_rad.dat', r_fid=fid, interleave=1
    

    【讨论】:

    • 感谢您的回答。
    • 如果您有任何后续问题,请告诉我。如果这解决了您的问题,请将答案标记为已接受。
    • 它解决了我的问题。我想知道我是否将答案标记为已接受。如果没有,请指导我如何将答案标记为已接受。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2021-08-30
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多