借助批处理和ENVI/IDL实现批量高分数据从解压缩到RPC校正(二)

前段时间,帮一项目负责人批量处理数据,虽然利用ENVI软件操作十分简单,选好RPC文件,点点按钮,等待处理完一景后,再重复点点按钮。然而,当数据量巨大,单景卫星数据影像RPC校正时间又长,让人去盯着,是不可能的事。

所需环境

  1. 上一篇7-zip批处理解压后数据
  2. ENVI5.1/IDL8.3及以上

程序下载

所需ENVI版本安装好,双击即可使用
rpcortho_batch.sav

主要代码

1
FOR NX =0,FileCount -1 DO BEGIN
  ImageFile = GeoTiffFiles[NX]
  basename = FILE_BASENAME(ImageFile)
  indexstr = STRPOS( STRUPCASE(basename),".TIFF")
  out_name = STRMID(basename,0,indexstr)
  out_uri =output + out_name + '_rpc'; + '.tiff'
  Raster = e.OPENRASTER(ImageFile)
  ; 新建RPCOrthorectification ENVITask
  Task = ENVITASK('RPCOrthorectification')
  ; 设置Task的输入输出参数
  Task.Input_raster = Raster
  Task.Dem_raster = DEM
  Task.Dem_is_height_above_ellipsoid = 0
  Task.Output_raster_uri = out_uri
  ;Task.Output_Pixel_Size = 1000
  ; 执行Task
  CATCH, errorStatus
  Task.EXECUTE, Error=error