6S模型IDL调用

pro s6
n=0
m=0
y=0
for j=1,3 do begin
if j eq 1 then begin
  aod_toa=fltarr(13)
  aod_toa_1=fltarr(13)
  for i=0.0,3.0,0.25 do begin
    aod_toa[n]=output(i,0.1,0.0)
    aod_toa_1[n]=i
;    print,aod_toa_1[n],aod_toa[n]
    n=n+1
  endfor
p=plot(aod_toa_1,aod_toa,xtitle='AOD',ytitle='TOA',title='大气厚度对表观反射率的影响')
endif
  if j eq 2 then begin
    arc_toa=fltarr(15)
    arc_toa_1=fltarr(15)
    for i=0,70,5 do begin
      arc_toa[m]=output(1,0.1,i)
      arc_toa_1[m]=i
      m=m+1
    endfor
    q=plot(arc_toa_1,arc_toa,xtitle='ARC',ytitle='TOA',title='天顶角对表观反射率的影响')
  endif
  if j eq 3 then begin
    ref_toa=fltarr(11)
    ref_toa_1=fltarr(11)
    for i=0.0,0.5,0.05 do begin
      ref_toa[y]=output(1,i,45)
      ref_toa_1[y]=i
      y=y+1
    endfor
    o=plot(ref_toa_1,ref_toa,xtitle='REF',ytitle='TOA',title='地表反射率对表观反射率的影响')
  endif
endfor
end

;x=[1,2,3,4]
;y=[2,3,4,5]
;plot,x,y,xtitle='x',ytitle='y',title='xy'
;plot(x,y,xtitle='x',ytitle='y',title='xy')


;为参数定义初值
;AOD=0.25
;REF=0.1
;ARC=0.0
function output,AOD,REF,ARC
  outfilename='E:\yaoganhomework\ch02_6s_test\ch02_6s_test\input.txt'
  openw,var_lun,outfilename,/get_lun
  printf,var_lun,7,format='(i-2)'
  printf,var_lun,ARC,24,2.72,116.381,39.977,format='(i-3.2,i-3,f4.2,f8.3,f7.3)'
  printf,var_lun,8,format='(i1)'
  printf,var_lun,1.366,0.29,format='(f5.3,f5.2)'
  printf,var_lun,1,format='(i1)'
  printf,var_lun,0,format='(i1)'
  printf,var_lun,AOD,format='(f5.3)'
  printf,var_lun,-0.092,format='(f6.3)'
  printf,var_lun,-1000,format='(i5)'
  printf,var_lun,27,format='(i2)'
  printf,var_lun,0,format='(i1)'
  printf,var_lun,0,format='(i1)'
  printf,var_lun,0,format='(i1)'
  printf,var_lun,REF,format='(f3.1)'
  printf,var_lun,-1,format='(i2)'
  close,var_lun
  free_lun,var_lun
  SPAWN, '"E:\yaoganhomework\ch02_6s_test\ch02_6s_test\6SV-run.bat"' ,/hide
  filepath='E:\yaoganhomework\ch02_6s_test\ch02_6s_test\output.txt'
  openr,lun,filepath,/get_lun
  data_line=''
  flag=0
  i=0.0
  while flag eq 0 do begin
    readf,lun,data_line
    if strpos(data_line,'*       apparent reflectance') ne -1 then begin
      tdata=strsplit(data_line,'  ',/extract)
      i=float(tdata[3])
      flag=1
    endif
  endwhile
  free_lun, lun
  file_delete,'E:\yaoganhomework\ch02_6s_test\ch02_6s_test\output.txt'
  return,i
end

 

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值