Streamer輻射傳輸模型在Win10 64bit系統上編譯使用
終於接觸輻射傳輸模型了,開始定量遙感之旅~
不過萬事開頭難o(╥﹏╥)o,首先解決軟體的執行問題:
簡介
Streamer是用來計算在各種大氣和表面條件下輻射率(輻射強度)和輻照度(輻射通量)的輻射傳輸模型。通過與其他輻射傳輸模式的比較[1] ,Streamer 對雲有較好的模擬能力,能更好地滿足雲霧輻射模擬工作。軟體由威斯康星大學麥迪遜分校(University of Wisconsin-Madison)-空間科學和工程中心(Space Science and Engineering Center ,SSEC)-氣象衛星合作研究所(Cooperative Institute for Meteorological Satellite Studies
下載Streamer
進入網頁後,開啟streamer介紹頁面,找Download,點FTP site連結,接受協議,進入FTP伺服器檔案頁面,裡面有bin/,docs/,gui/三個資料夾和README檔案,還有一個壓縮包Streamer.tar。
bin/資料夾下有編譯好的各平臺的執行檔案,包括Mac、Linux、Windows平臺,但Windows的執行檔案在我電腦上不能執行,是32位的; docs/資料夾下有幫助文件; gui/裡是html檔案和輔助檔案,是用來生成輸入檔案的web介面;
壓縮包裡是streamer的原始檔。
為了編譯能在本機器(Windows10-64bit)上使用的可執行檔案,選擇下載Streamer.tar壓縮包。
編譯Streamer
解壓下載的壓縮包後有三個資料夾,bandweights/,progs/,testio/。其中bandweights/是預設的波段檔案,包括AVHRR、MODIS、GEOS、HIRS等等,testio/裡是測試檔案,包含一些輸入檔案、輸出檔案和輸出模板。
progs/是Streamer的原始檔,裡面是Fortran編寫的.f檔案,接下來我們需要將f檔案編譯成object檔案,然後再生成可執行檔案。幫助文件裡用的gfortran來編譯的,因此我們需要先下載編譯器。
1.下載GCC
GCC的線上安裝有點慢,我們選擇它的離線包來安裝[2]:
針對win10 64bit選擇 MinGW-W64 GCC-8.1.0 的 x86_64-posix-seh 版本下載,下載之後解壓到自定義資料夾下,比如x:\mingw64。
2.設定GCC環境變數
這一步很重要,把剛剛自定義資料夾下的lib、include、bin路徑都新增到系統環境變數path中,開啟命令列測試一下gcc -v
命令,如果輸出gcc版本資訊就說明設定好咯。
3.編譯object檔案
接下來進入剛剛streamer-progs資料夾下,利用gfortran -c xxx.f
命令來將f檔案編譯成object檔案,不過需要將資料夾下所有f檔案都編譯成Object檔案,一個個轉太麻煩,又不會寫makefile檔案,只好用Python的os模組來獲取資料夾下所有f檔案,然後通過os.system()
執行命令,將所有f檔案編譯成o檔案。
4.makefile
Streamer已經寫好了針對各個平臺的makefile檔案[3],現在我們在progs資料夾下找到Makefile.win檔案,將字尾名刪除,這樣我們就得到了現成的makefile檔案。在progs資料夾下開啟cmd,執行make all
命令,等執行結束可以得到streamer.exe、getalb.exe、getband.exe、getcloud.exe、gethaze.exe五個可執行檔案。
5.設定Streamer環境變數
把剛剛得到的五個exe檔案拷貝到你自定義的資料夾下,比如x:\streamer\bin。將路徑也新增到環境變數path中。
這樣Streamer就算是編譯完了。
測試Streamer
設定好了,我們來測試一下。在testio裡找到testflx.inp以及模板檔案streamer.def,將兩個檔案拷到相同資料夾下,然後在資料夾下執行 streamer s testflx.inp
,會看到如下輸出結果。
在資料夾下會生成輸出檔案testflx.des,可用記事本開啟看一下內容。
測試成功~
安裝成功,該研究Streamer複雜的輸入去了。