【ENVItask(一)】批量计算TVDI的方法及IDL代码

一、参考


Hanzt大大编写的ENVI拓展工具可以计算TVDI
https://www.cnblogs.com/enviidl/p/16386546.html

利用IDL调用task及自定义task参考以下文章和视频
https://blog.csdn.net/lijie45655/article/details/103738004
https://blog.csdn.net/qq_33356563/article/details/81437002

PPT https://mp.weixin.qq.com/s/m_5T0f7OgfV2ja92adbLEw
视频 【无限可能的ENVITask开发技术】 https://www.bilibili.com/video/BV1K14y1t7R9/

二、方法


在ENVI安装目录下的F:\ENVI\ENVI53\custom_code文件夹找到TVDI工具对应的task文件,根据文件参数编写程序

在这里插入图片描述

三、代码

pro TvdiBatch
  compile_opt idl2

  
  
  NDVIdir = 'H:\240329\NDVI201603\';路径
  LSTdir = 'H:\240329\LSTmiTa201603\'
  NDVIfiles=file_search(NDVIdir,"*.tif",count=nums)
  print,nums
  LSTfiles=file_search(LSTdir,"*.tif",count=nums); file_search返回包含路径的名字,字符串数组
  print,nums; print两个num目的是检查两个文件夹NDVI和LST数据个数一样
  
   e=envi()
   
  for i=0,nums-1 do begin
   
    print, i
    basename=file_basename(NDVIfiles[i]) ;获取输入影像文件名
    output_rootname=strmid(basename,10,10) ;获取指定范围名字,注意10,10表示第十个开始向后数十个,idl是从0开始的
    output_location='H:\240329\iTVDI201603\';(右侧一定要反斜杠!!)
    output_name=STRJOIN([output_location,'iTVDI',output_rootname,'.dat']);.tif格式不可以
    
    
    
    NDVIraster = e.OpenRaster(NDVIfiles[i])
    LSTraster = e.OpenRaster(LSTfiles[i]);从字符串到enviraster格式,要open
    
    Task = ENVITask('TVDITask_Hanzt')

    Task.raster1 = NDVIraster
    Task.raster2 = LSTraster
    ;输出取决于direction
    Task.display = 0
    Task.output_Raster_URI = output_name;感觉也可以后续引用Task.output_Raster另存为,反正在临时路径的文件都会自动删除
;    outputRaster = TASK.OUTPUT_RASTER
;    outputRaster.export, 'C:/a.dat', 'envi'

    Task.Execute
    
    ;NDVIraster.close
    ;LSTraster.close
    
  endfor
  
  print, '______________________ok!'
end

构建及debug过程见下篇【ENVItask(二)】IDL批量计算TVDI的代码构建思路及bug

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值