ENVI创建批量计算平均反射率脚本
时间: 2023-05-27 09:01:49 浏览: 339
以下是使用ENVI创建批量计算平均反射率的脚本:
```
;ENVI Batch Processing
;Batch process to calculate average reflectance of Landsat images
; Define the input and output directories
inputDir = 'C:\LandsatFolder\'
outputDir = 'C:\LandsatFolder\output\'
; Define the file extension of the input files
fileExt = '*.tif'
; Define the output file extension
outputExt = '_avgReflectance.tif'
; Define the wavelength range for reflectance calculations
wave1 = 0.45
wave2 = 2.35
; Loop through all files in the input directory with the file extension
files = FILESEARCH(inputDir + fileExt)
for i = 0, N_ELEMENTS(files) - 1 do begin
; Open the input file
inputFile = ENVIRASTER(files[i])
; Get the wavelength values for the input file
wavelengths = inputFile.GetWavelengths()
; Find the starting index for the wavelength range
startIndex = WHERE(wavelengths GE wave1 AND wavelengths LE wave2, count)
; Find the ending index for the wavelength range
endIndex = startIndex[count - 1] + 1
; Calculate the average reflectance for the wavelength range
avgReflectance = ENVISTATS(inputFile, /MEAN, START_INDEX=startIndex, END_INDEX=endIndex)
; Save the output file with the new extension and in the output directory
outputFile = outputDir + FILE_BASENAME(files[i], /NOEXT) + outputExt
ENVISAVE, avgReflectance, outputFile, interleave='bsq', datatype=5
; Close the input file
inputFile.Close
endfor
```
该脚本包括以下步骤:
1. 定义输入和输出的文件夹路径和文件扩展名。
2. 循环遍历所有具有该扩展名的输入文件。
3. 打开每个输入文件,获取它的波长值。
4. 找到在指定的波长范围内的起始和结束波长的索引。
5. 计算波长范围内的平均反射率。
6. 将输出文件保存到指定的输出文件夹中,并更改文件扩展名。
7. 关闭输入文件。
阅读全文