1. 程式人生 > 其它 >【IDL程式碼庫】IDL呼叫6S.exe生成查詢表原始碼 (氣溶膠系統)

【IDL程式碼庫】IDL呼叫6S.exe生成查詢表原始碼 (氣溶膠系統)

最新下載地址,包涵了原始碼和6s.exe程式:http://pan.baidu.com/s/1ppk1C

;+

;:Description:

;    Describe the procedure.

;

;:Author: [email protected]

;

;:Date: 2013-9-5 11:10:27

;-

;;===============================================================================================  ;;;  該程式是通過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