系列文章目录
前言
一、线性拉伸
调用LinearPercentStretchRaster任务
代码如下:
#fuction 函数名;函数参数1,函数参数2,函数参数3
function y_linear_stretch, raster_path, respath, percent
; Get the task from the catalog of ENVITasks
COMPILE_OPT IDL2
e=envi()
Task=ENVITask('LinearPercentStretchRaster')
; Define inputs
File = Filepath('CB04A_20230401_1955.tif', $
Root_Dir=raster_path)
Raster = e.OpenRaster(File)
Task.INPUT_RASTER = Raster
# 传递任务需要的参数
Task.PERCENT = percent
; Define outputs
Task.OUTPUT_RASTER_URI = respath
; Run the task
Task.Execute
return, 0
end
二、批处理
function y_linear_stretch, raster_path, respath, percent
; Get the task from the catalog of ENVITasks
COMPILE_OPT IDL2
e=envi()
Task=ENVITask('LinearPercentStretchRaster')
;遍历并筛选文件
Result = FILE_SEARCH(raster_path, "*.tif")
;获取文件数量
temp = where(FILE_TEST(Result),num)
for index = 0,num-1,1 do begin
;返回一个数组
print,Result[index]
; Define inputs
; 根据文件名与文件路径及子路径进行索引
;File = Filepath('CB04A_20230401_1955.tif', $
; Root_Dir=raster_path)
;File = Filepath()
;打开栅格操作
Raster = e.OpenRaster(Result[index])
Task.INPUT_RASTER = Raster
Task.PERCENT = percent
; 设置输出路径
Task.OUTPUT_RASTER_URI = Result[index].Replace(raster_path,respath)
; Task.OUTPUT_RASTER_URI = respath
; Run the task
Task.Execute
endfor
end
pro test
a = y_linear_stretch('Z:\LanduseDataset\DBLUE\Data','Z:\LanduseDataset\DBLUE\Data\8bit',1)
end