IDL提取多个ENVI的.float高光谱数据平均反射率并存为CSV
时间: 2023-05-26 12:03:34 浏览: 193
以下是用IDL提取多个ENVI的.float高光谱数据平均反射率并存为CSV的示例代码:
```
; 打开ENVI格式的高光谱数据文件
filename = 'filepath/filename.hdr'
envi_open_file, filename, /readonly, unit=file_unit
; 获取数据大小和波段数量
envi_file_query, filename, dims=data_dims, nb=n_bands
; 定义变量存储数据
data = fltarr(n_bands, data_dims[1], data_dims[2])
; 逐波段读取数据
for i=0, n_bands-1 do begin
envi_get_data, unit=file_unit, var=data[i,*,*], pos=[0,0,i], dims=data_dims
endfor
; 计算平均反射率
mean_reflectance = total(data, 1) / n_bands
; 将平均反射率存储为CSV文件
csv_file = 'filepath/filename.csv'
fout = fopen(csv_file, /write)
fprintf, fout, "Wavelength,Reflectance\n"
for i=0, n_bands-1 do begin
wavelength = envi_get_wave(filename, band_index=i)
fprintf, fout, "%f,%f\n", wavelength, mean_reflectance[i]
endfor
fclose, fout
; 关闭文件
envi_close_file, unit=file_unit
```
阅读全文