首先是处理Himawari8数据的一个函数,当然了只处理可见光与短波红外波段:
;;
; 宿鑫(XXIN,www.ixxin.cn)
; 2017
; <a href="https://www.ixxin.cn/tag/himawari8/" title="查看更多关于Himawari8的文章" target="_blank">Himawari8</a> NC 转换为 ENVI格式
; 参数:
; NCFile:<a href="https://www.ixxin.cn/tag/himawari8/" title="查看更多关于Himawari8的文章" target="_blank">Himawari8</a> NC文件
; shpfile : 裁剪矢量
; save_dir : 保存目录
; GPL开源协议(https://opensource.org/licenses/GPL-3.0):
;;<H8_NC2ENVI>  Copyright (C) <2018>  <suxin>
;;This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
;;This is free software, and you are welcome to redistribute it
;;under certain conditions; type `show c' for details.
;;
Pro H8_NC2ENVI,NCFile = NCFile,shpfile = shpfile,save_dir = save_dir
  COMPILE_OPT IDL2
  e = envi(/headless)
  ;envi,/RESTORE_BASE_SAVE_FILES
  ;envi_batch_init
  
  restore,filepath('RasterSubsetViaShapefile.sav',root_dir = file_dirname(routine_filepath('H8_NC2ENVI')))
  dir = file_dirname(NCFILE)+'\'
  name = file_basename(NCFILE,'.nc')
  save_dir = save_dir+'\'
  envi_file = save_dir+name+'_ENVI_all.dat'
  latfile = save_dir+name+'_ENVI.dat'
  openw,lun,envi_file,/GET_LUN
  
  names1 = ['/SAA','/SAZ','/SOA','/SOZ']
  for i = 0,3 do begin
    tmp_data = H5_GETDATA(NCFile, names1[i])*0.01
  
    writeu,lun,tmp_data
    dim = tmp_data.dim
    tmp_data = 0
  endfor
  names2 = ['/albedo_01','/albedo_02','/albedo_03','/albedo_04','/albedo_05','/albedo_06']  
  for i = 0,5 do begin
    tmp_data = H5_GETDATA(NCFile, names2[i])*0.0001
    writeu,lun,tmp_data
    tmp_data = 0
  endfor
 
  free_lun,lun
  
  ns = dim[0]
  nl = dim[1]
  nb = 10
  bnames = [names1,names2]
  
  mc = [0.0,0.0,80.0,60.0]
  ps = [0.05,0.05]
  map_info = ENVI_MAP_INFO_CREATE(/GEOGRAPHIC,mc = mc,ps = ps,DATUM='WGS-84')
  
  ENVI_SETUP_HEAD,fname = envi_file,ns = ns,nl = nl,nb = nb,DATA_TYPE=4,INTERLEAVE=0,$
    map_info = map_info,BNAMES=BNAMES,/WRITE
    
  envi_open_file,envi_file,r_fid = fid
  
  if ~N_ELEMENTS(shpfile) then begin
    print,'H8NC2ENVI IS OK'
    return 
  endif
    
  RasterSubsetViaShapefile,fid,shpfile = shpfile,r_fid = r_fid,outFile = latfile
  envi_file_mng,id = fid,/REMOVE,/DELETE
  ENVI_FILE_MNG,id = r_fid,/REMOVE
  ;ENVI_BATCH_EXIT
  print,'Subset,OK'
    
end
然后是调用这个函数进行批处理:
;;
; 宿鑫 (suxin,www.ixxin.cn)
; 2017
; 批处理
; 
; GPL开源协议(https://opensource.org/licenses/GPL-3.0):
;;<h8_nc2envi_Batch>  Copyright (C) <2018>  <suxin>
;;This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
;;This is free software, and you are welcome to redistribute it
;;under certain conditions; type `show c' for details.
;;
Pro h8_nc2envi_Batch
  COMPILE_OPT IDL2
  
  dir = 'I:\Rs_data\FY4\Data\Himawari8'
  save_dir = 'I:\Rs_data\FY4\Data\Himawari8'
  shpfile = 'I:\H8\SHP\zhanghan\china_wgs84.shp'
  ;dir = ENVI_PICKFILE(title = '请选择Himawari8文件夹',/DIRECTORY)
  ;shpfile = ENVI_PICKFILE(title = '请选择shp文件')
  ;save_dir = ENVI_PICKFILE(title = '请选择输出文件夹',/DIRECTORY)
  
  file_mkdir,save_dir 
  files = file_search(dir,'*.nc',count = count) 
  print,count 
  for i = 0, count-1 do begin
    H8_NC2ENVI,NCFile = files[i],shpfile = shpfile,save_dir = save_dir
    ;H8_NC2ENVI,NCFile = files[i],save_dir = save_dir
  endfor
end
处理结果图(中国区域)

重要
支持博主的点击一下网站头部与底部的广告哦,扫一下支付宝红包。

如有问题,请发邮件到:s_xxin@qq.com














 
