1. 程式人生 > >Streamer輻射傳輸模型在Win10 64bit系統上編譯使用

Streamer輻射傳輸模型在Win10 64bit系統上編譯使用

終於接觸輻射傳輸模型了,開始定量遙感之旅~

不過萬事開頭難o(╥﹏╥)o,首先解決軟體的執行問題:

簡介

Streamer是用來計算在各種大氣和表面條件下輻射率(輻射強度)和輻照度(輻射通量)的輻射傳輸模型。通過與其他輻射傳輸模式的比較[1] ,Streamer 對雲有較好的模擬能力,能更好地滿足雲霧輻射模擬工作。軟體由威斯康星大學麥迪遜分校(University of Wisconsin-Madison)-空間科學和工程中心(Space Science and Engineering Center ,SSEC)-氣象衛星合作研究所(Cooperative Institute for Meteorological Satellite Studies

,CIMSS)的極地遙感和氣候學小組維護,最新版本為2013年2月13日釋出的3.1版本。

下載Streamer

進入網頁後,開啟streamer介紹頁面,找Download,點FTP site連結,接受協議,進入FTP伺服器檔案頁面,裡面有bin/,docs/,gui/三個資料夾和README檔案,還有一個壓縮包Streamer.tar。

FTP截圖.jpg

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檔案。

o檔案.jpg

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,會看到如下輸出結果。

test.jpg

在資料夾下會生成輸出檔案testflx.des,可用記事本開啟看一下內容。

flx.jpg

測試成功~

安裝成功,該研究Streamer複雜的輸入去了。