终于按前一篇的内容装好了sixs.exe。又花了好久的时间搞明白这个执行文件该怎么运行。
执行方法目前有如下三种:
1. 在cmd窗口下直接输入input内容,可直接得到结果
2. 用py6s接口调用
这个涉及到各种安装,我还没有搞明白,以后有机会再研究一下
3. 用IDL调用
目前使用这种方法。程序如下:
```c
pro first_test
;1.自定义几何条件
igeom=0
asol=[0,12,24,36,48,60];;太阳天顶角
avis=[0,12,24,36,48,60];;卫星天顶角
phiv=[0,5,10,15,20,25];;太阳方位角,设定卫星方位角为0,则相对方位角等于太阳方位角-0
phi0=0;卫星方位角
month=5;;月份
day=17;;日期
;2.大气模式
idatm=4;:大气模式亚北极区夏季
;3.气溶胶类型
iaer=2;:气溶胶模式海洋型
;4.气溶胶含量参数
v=0;;能见度
tao=[0.0001,0.25,0.5,1.0,1.5,1.95];;550nm气溶胶光学厚度
;5.目标高度参数
xps=0;;目标物高度 海平面
;6.传感器高度参数
xpp=-1000;;星测
;7.光谱参数
iwave=200;:选取自定义的FY-3C/VIRR band1 0.560-0.705μm
;8.地表反射率类型
inhomo=0;;地表反射率均一地表
idirect=0;;无方向效应
igroun=1;:绿色植被
rapp=-1;:无大气校正
path_6s = 'D:\little soft\6sV2.1'
cd,path_6s;自己更改6s.exe所在的文件夹路径
;输出信息的保存文件
out_putfile = 'D:\ch1_summer.txt'
openw,lutlun,out_putfile,/get_lun,width=200
FOR b=0,5 DO BEGIN;550nm气溶胶光学厚度
FOR c=0,5 DO BEGIN;太阳天顶角
FOR d=0,5 DO BEGIN;;卫星天顶角
FOR e=0,5 DO BEGIN;;太阳方位角(卫星方位角为0,即相对方位角为O.180)
txtname='intest.txt';input_infor
OPENW,lun,txtname,/get_lun
PRINTF,lun,igeom
PRINTF,lun,asol[c],phiv[e],avis[d],phi0,month,day
PRINTF,lun,idatm
PRINTF,lun,iaer
PRINTF,lun,v
PRINTF,lun,tao[b]
PRINTF,lun,xps
PRINTF,lun,xpp
PRINTF,lun,iwave
PRINTF,lun,inhomo
PRINTF,lun,idirect
PRINTF,lun,igroun
PRINTF,lun,rapp;进行大气校正
FREE_LUN,lun
SPAWN,'sixsV2.exe<intest.txt>outtest1.txt',/hide ;调用6s <>符号为dos系统下的重定向符号 <从文件读取命令输入>将输出结果写入文件
txtname='outtest1.txt';output_file
OPENR,lun,txtname,/get_lun
temp=STRARR(1,120)
READF,lun,temp
apparent_ref = float(strmid(temp[0,57],30,9));读取需要的参数
FREE_LUN,lun
;依次为辐射方程中的P T S参数、太阳天顶角,卫星天顶角,相对方位角、气溶胶光学厚度
PRINTF,lutlun,asol[c],avis[d],phiv[e],tao[b],apparent_ref;
ENDFOR
ENDFOR
ENDFOR
ENDFOR
FREE_LUN,lutlun
END