IDL(ENVI)16位数据线性拉伸

系列文章目录



前言


一、线性拉伸

调用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

参考链接

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云朵不吃雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值