IDL调用6S大气校正

sixs为6s源码编译后的exe全路径

sixs='*********\sixsV2.1.exe'

代码传入的参数中有paraID,表示了影像是否为纯水域(完全在海上)

Function sixs_atmos,sixs,temp_path,Parameter
  COMPILE_OPT idl2
  ;Parameter=[SOZ,SOA,SAZ,SAA,MONTH,DAY,paraID,xps,iwave,idatm,rapp]
  SOZ=Parameter[0];太阳天顶角
  SOA=Parameter[1];太阳方位角
  SAZ=Parameter[2];卫星天顶角
  SAA=Parameter[3];卫星方位角
  MONTH=uint(Parameter[4]);月
  DAY=uint(Parameter[5]);日
  paraID=uint(Parameter[6]);1-有陆地 2-纯水域
  xps=Parameter[7];高程
  print,'平均高程',xps
  iwave=uint(Parameter[8]);光谱响应函数
  idatm=uint(Parameter[9]);大气模式
  ;rapp>0:输入为大气层顶辐射亮度
  ;-1.0<rapp<0 激活,输入为表观反射率,确保表观反射率为正值
  rapp=Parameter[10]
    
  
  ;生成对应波段的int.txt文档
  inname=temp_path+'input.txt'
  openw,lun,inname,/get_lun
  igeom=0;几何条件,自定义
  printf,lun,igeom
  printf,lun,SOZ,SOA,SAZ,SAA,MONTH,DAY;太阳天顶角/方位角 卫星天顶角/方位角
  ;2.大气模式,根据经纬度确定
  printf,lun,idatm
  ;3、气溶胶模式
  if paraID eq 2 then iaer=2;海洋型
  if paraID eq 1 then iaer=1;大陆型
  printf,lun,iaer
  ;4、气溶胶含量,使用能见度
  if paraID eq 2 then v=40;海洋型
  if paraID eq 1 then v=15;大陆型
  printf,lun,v
  ;5、目标海拔高度
  printf,lun,xps
  ;6、传感器海拔高度
  xpp=-1000
  printf,lun,xpp
  ;7、光谱参数
  printf,lun,iwave
  ; (8)地表反射率类型(ground reflectance type,参数名称:inhomo    取值范围:01
  ;参数名称:inhomo    取值范围:01
  ; 下垫面非均一、朗伯体
  inhomo=0;均匀表面
  printf,lun,inhomo
  idirec=0;无方向效应
  printf,lun,idirec
  ;有陆地内陆用湖水 4 lake water
  if paraID eq 2 then igroun=2
  ,纯水域用纯水2,clear water
  if paraID eq 1 then igroun=4
  printf,lun,igroun
  ;9、大气订正方式
  irapp=0;-1不进行大气订正,0 朗伯体和idirec对应,1 BRDF各项异质性
  printf,lun,irapp
  ;rapp=-0.5;表观反射率大气校正
  ;rapp=0.5;辐射亮度大气校正
  printf,lun,rapp
  ;极化方式
  irop=4;1-3极化方式不同,其他值不考虑极化方式
  printf,lun,irop
  FREE_LUN,lun

  ;参数写入完毕,调用6s.exe,输出txt
  outtxtname=temp_path+"out.txt"
  ;调用6s <>符号为dos系统下的重定向符号    <从文件读取命令输入>将输出结果写入文件
  SPAWN,sixs + '<'+ inname + '>' + ' ' + outtxtname,/hide
  ;输出文本中找到xa xb xc
  nLines=file_lines(outtxtname)
  openr,lun,outtxtname,/GET_LUN
  result_arr=STRARR(nLines);行数
  readf,lun,result_arr
  FREE_LUN,lun
  ;获取6s计算结果out.txtx中的参数 
  ;辐射亮度参数
  ;'*       coefficients xa xb xc                 :  0.00272  0.11681  0.17263    *'
  if rapp gt 0 then begin
    result_index=163
    splitxt='*       coefficients xa xb xc                 :'
  endif
  ;表观反射率参数
  ;'*       coefficients xap xb xc                   0.867103 -0.209570  0.172645 *'
  if rapp gt -1 and rapp lt 0 then begin
    result_index=165
    splitxt='*       coefficients xap xb xc                :'
  endif
  ;提取参数
  result_str=strsplit(result_arr[result_index],splitxt,/extract)
  ;结果
  result_number=float(result_str)
  return,result_number
END
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
IDL 6S大气校正模块是一种基于图像处理和机器学习的方法,用于对卫星或无人机遥感图像进行大气校正,从而获取地物表面反射率或辐射亮度真实值。该模块由IDL(图像数据生命周期管理)软件公司开发,适用于各种卫星遥感数据的气候变化研究、环境监测等领域。 该模块主要包括以下几个步骤: 1. 图像预处理:包括对遥感图像的裁剪、配准、去噪等操作,为后续大气校正提供高质量的原始数据。 2. 大气参数估算:利用光学厚度、温度、湿度等参数对大气进行建模,从而确定大气中影响地物反射率或辐射亮度的因素。 3. 反射率校正:通过机器学习方法,将估算的大气参数与地物表面反射率之间的关系进行拟合,从而得到真实反射率值。 4. 输出结果:将校正后的反射率值输出,可用于后续的气候变化研究、环境监测等应用。 相较于其他大气校正方法,IDL 6S模块具有以下优势: 1. 算法成熟:IDL公司长期从事遥感图像处理领域,积累了丰富的经验和技术,使得该模块在大气校正方面具有较高的准确性和稳定性。 2. 支持多种卫星数据:该模块可对多种卫星遥感数据进行处理,如MODIS、Sentinel-2、Landsat等,具有广泛的适用性。 3. 易于集成:IDL软件公司提供了丰富的API和工具包,方便用户在科研项目中集成该模块,提高数据处理效率。 总之,IDL 6S大气校正模块是一种高效、稳定、易于集成的遥感图像处理工具,适用于气候变化研究、环境监测等领域。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值