IDL调用6S大气校正
发布日期:2021-07-25 13:05:09 浏览次数:12 分类:技术文章

本文共 2463 字,大约阅读时间需要 8 分钟。

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
<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 取值范围:0,1 ;参数名称:inhomo 取值范围:0,1 ; 下垫面非均一、朗伯体 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_numberEND

转载地址:https://blog.csdn.net/qq_33339770/article/details/106281743 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:6S参数
下一篇:python投影Himawari-8数据

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月21日 04时13分56秒