IDL批量提取ENVI高光谱数据平均反射率并存为CSV
时间: 2023-05-26 21:03:49 浏览: 213
以下是将ENVI高光谱数据批量提取平均反射率并存储为CSV的IDL代码:
```
;设置输入数据文件夹路径和输出CSV文件路径
input_folder = 'path/to/input/folder'
output_file = 'path/to/output/file.csv'
;获取输入文件夹中所有HDR文件的文件名
file_list = file_search(input_folder + '/*.hdr')
;初始化反射率矩阵
reflectance_data = fltarr(4096, n_elements(file_list))
;循环遍历所有文件,读取数据并计算平均反射率
for i = 0, n_elements(file_list)-1 do begin
;获取HDR文件名
hdr_file = file_list[i]
;从HDR文件中获取数据文件名
data_file = strmid(hdr_file, 0, strlen(hdr_file)-3) + 'dat'
;读取HDR和DAT文件
read_envihdr, hdr_file, hdr
read_binary, data_file, data, /flt, dims=hdr.dim[1::3]
;计算平均反射率
reflectance_data[*,i] = total(data, 1) / float(hdr.lines)
endfor
;将反射率矩阵保存为CSV文件
csv_write, output_file, transpose(reflectance_data), /overwrite
```
此代码将在给定的输入文件夹中搜索所有HDR文件,读取每个文件中的数据并计算平均反射率。然后,将反射率矩阵转置,并使用IDL自带的`csv_write`函数将其保存为CSV文件。
阅读全文