您的位置:

全面了解envi辐射校正

一、envi辐射校正的概念

Envi辐射校正是指将图像数字值转换为能量的过程,即将图像数字值转换为辐射能量值。在ENVI软件中,将数字值转换为表面反射率也属于ENVI辐射校正过程的一种。

在真实世界中,卫星图像所获取的数字值与真实世界中的能量值存在一定的差异。这种差异主要是由影像获取设备、噪声等多个因素造成的。这就需要进行ENVI辐射校正,从而准确获取图像的能量值,使得计算得到的反射率具有真实世界的物理意义。

ENVI辐射校正算法的选择非常重要,因为精确的辐射校正可以提高影像的质量和准确性。

二、ENVI辐射校正方法

1. 大气校正

大气校正是ENVI图像处理的重要步骤。在对地物进行无人机、卫星图像处理时,大气影响是无法避免的。大气校正的目标是恢复地表反射率数据,即通过对大气影响做出正确评估,算出不带大气影响的数据。目前,大气校正方法主要包括模型和实测两种方法。

2. 水下辐射校正

由于水面上反射光和水下散射光混合的复杂过程,以及不同水生植物的吸收特性不同,所以对于水面上的水生植被的判别和水下物体的探测,在遥感图像处理中要进行水下辐射校正。

目前,常用的水下辐射校正方法主要有样方方法、空气水体方法、波束比较法、光谱混合模型等。

3. 单波段辐射校正

单波段辐射校正是指利用单波段镜头对一定场景的采集图像进行质量校正,通常是为了纠正临时估计的相机参数,使其能够准确拟合单波段辐射图像(如RGB图像),提高图像的质量和准确性。

4. 多波段辐射校正

多波段辐射校正即对单波段辐射校正进行扩展,将波束进行同时标定。它是遥感影像处理中最常用的一种辐射校正方法。它需要一个包括多个波段反射率和辐射亮度的误差模型,以便将这个模型用于辐射校正。常见的多波段辐射校正算法包括基于大气传输模型的Atmospheric Parameter Calculator(APC)、基于反射率的DOS模型校正方法、SITE模型校正、MODTRAN校正等。

三、ENVI辐射校正代码示例

; 大气反射校正
function envi_ATMCORRECTRaster, raster, /Double, FWHM=fwhm, $
  ATMO_Method=atmo, Input_Altitude=alt, altitude_units=au, $
  Input_AEROSOL=aerosols, Model_Wavelength=model_wave, $
  Input_WVAP=wvap, quiet=quiet, mapextent=mapextent
end

; 单波段辐射校正
pro envi_single_band_calibrate, input_image, radiance_cu, output_image

 

    ; 读取图像

    envi_file_query, input_image, dims=dims, vardims=vardims

    

    ; 调用次数

    n_pixs = dims[0]*dims[1]

    

    ; 输出图像初始化

    output_image = fltarr(dims[0],dims[1])

    

    ; 辐射值转换

    for i=0,dims[0]-1 do begin

        for j=0,dims[1]-1 do begin

            output_image[i,j] = (radiance_cu[i,j]-0.004)*(10000/(0.2-0.004))  ; 10000为矩阵的最大值

        endif

    endfor

    

    ; 存储结果

    envi_write_image, output_image, output_image + '.hdr', interleave = 'bsq' 

end

; 多波段辐射校正
function envi_MULTISENSOR, input_file, /double, sensor_info=sensor_info, WAVELENGTHS=wavelength, $
  input_gain=gain, input_offset=offset, FWHM=fwhm, xtalk_filter=xtalk_filter, $
  band_group=group, band_average=average, l1b=l1b, mapextent=mapextent, $
  quiet=quiet, model_parameters=params, ac_ratios=ratio, $
  ac_params=ac_params, use_emis=use_emis, emis_params=emis
end