【IDL程式碼庫】IDL呼叫6S.exe生成查詢表原始碼 (氣溶膠系統)
阿新 • • 發佈:2022-05-27
最新下載地址,包涵了原始碼和6s.exe程式:http://pan.baidu.com/s/1ppk1C
;;; 該程式是通過6s輻射校正模型生成查詢表,以便進行氣溶膠反演
; 該程式引數設定較為簡單,如果要詳細的引數,請自行設定
; 改進方法:1、讀取每一個影像的角度資訊建立查詢表,這樣精度更高
; 2、利用IDL直接呼叫Fortran語言的6S源程式,並行生成查詢表,速度提高20倍左右
; 3、將所有引數都設定好,縮小步長,構建一個龐大的查詢表,構建神經網路,一勞永逸
;;;==============================================================================================
PRO MODIS_LUT;,month,day,iwave,idatm,iaer,lutpath,lutname
igeom=0;自定義幾何條件
phi0=0;衛星方位角++++
month=5;;月份
day=17;;日期
idatm=2;:大氣模式中緯度夏季
iaer=1;:氣溶膠模式大陸型
v=0;;能見度
xps=0;;目標物高度
xpp=-1000;;星測
iwave=42;:自定義1輸入波段範圍和反射相函式42為modis的red
inhomo=0;;地表反射率均一地表
idirect=0;;無方向效應
igroun=1;:綠色植被
rapp=-2;:無大氣校正
tao=[0.0001,0.25,0.5,1.0,1.5,1.95];;550nm氣溶膠光學厚度
asol=[0,12,24,36,48,60];;太陽天頂角
avis=[0,12,24,36,48,60];;衛星天頂角
phiv=[0,24,48,72,96,120,144,168,180];;太陽方位角(衛星方位角為0,即相對方位角為O.180)
; CD,lutpath
cd,'C:\Users\Administrator\Desktop\6s_lut';自己更改6s.exe所在的資料夾路徑
lutname='modis_lut.txt'
OPENW,lutlun,lutname,/get_lun
;設定迴圈過程
;for a=0,2 do begin;藍紅兩個通道
FOR b=0,5 DO BEGIN;550nm氣溶膠光學厚度
FOR c=0,5 DO BEGIN;太陽天頂角
FOR d=0,5 DO BEGIN;;衛星天頂角
FOR e=0,8 DO BEGIN;;太陽方位角(衛星方位角為0,即相對方位角為O.180)
txtname='in.txt'
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,'6s.exeout.txt',/hide ;呼叫6s <>符號為dos系統下的重定向符號 <從檔案讀取命令輸入>將輸出結果寫入檔案
txtname='out.txt'
OPENR,lun,txtname,/get_lun
temp=STRARR(1,120)
READF,lun,temp
tt=STRMID(temp[0,105],61,8)
sA=STRMID(temp[0,111],61,8)
rou=STRMID(temp[0,114],61,8)
FREE_LUN,lun
;依次為輻射方程中的P T S引數、太陽天頂角,衛星天頂角,相對方位角、氣溶膠光學厚度
PRINTF,lutlun,sA,tt,rou,asol[c],avis[d],phiv[e],tao[b]
ENDFOR
ENDFOR
ENDFOR
ENDFOR
; endfor
FREE_LUN,lutlun
END
;+
;:Description:
;
;
;:Author: [email protected]
;
;:Date: 2013-9-5 11:10:27
;-
;;===============================================================================================