Community Gridpoint Statistical Interpolation (GSI) system
DTC 是一個分布式設施,NWP 社區可以在這里測試和評估用于研究和操作的新模型和技術。
DTC的目標包括:
-
鏈接研究和操作社區
-
研究成果轉化為實際操作的速度
-
加快改善天氣預報
-
開發和測試有前途的數值預報新技術
-
為模型和數據同化系統的循環或實時測試提供機會
開發測試中心(Developmental Testbed Center,DTC)目前維護并支持 GSI 系統的社區版本(現在是3.7版本)。GSI 是由美國國家海洋和大氣管理局(NOAA)、美國國家航空航天局(美國國家航空航天局)和國家大氣研究中心(nCAR)共同開發的一個數據同化系統。下面演示如何在Linux系統上搭建一個數據同化系統,再次之前已經在系統上安裝好了WRF以及docker。
前期準備
你必須要在你的系統上擁有docker軟件,前往以下網頁進行下載和安裝docker
- https://www.docker.com
- 對于mac用戶
只需從其官方網站下載“ docker”并安裝即可。
- 對于 Debian/Ubuntu based Linux systems (recent releases)
使用以下命命令進行安裝
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"sudo apt-get updateapt-cache policy docker-cesudo apt-get install -y docker-ce
注意: 如果curl命令不可用,則改為使用 wget,如下所示:
wget https://download.docker.com/linux/ubuntu/gpg; cat gpg | apt-key add -
一般來說,你需要系統管理員權限才能安裝 docker。
- 對于 Windows 用戶,強烈建議安裝 VirtualBox,然后安裝基于 Ubuntu 的虛擬機在這個基于 Ubuntu 的虛擬機中,你可以按照上面的步驟安裝 docker
由于我所使用的Linux系統已經提取裝好了docker,所以下面我直接開始使用啦
下載GSI Docker Container
下載地址:
- https://dtcenter.org/community-code/gridpoint-statistical-interpolation-gsi/download
Get and run comgsi/docker
- 參考教程:https://dtcenter.org/sites/default/files/community-code/gsi/release-notes/README.GSI_Docker
1 獲取 comgsi/docker image
存在兩種獲取comgsi/docker
的方法,一個是直接通過docker
拉取,另一個是通過下載源文件,我這里是通過下載源文件進行的
- 獲取方法1
在linux 界面直接創建一個自己的mygsidocker文件夾后,使用wget命令下載docker,然后解壓下載的壓縮包,最后使用docker命令加載解壓縮的文件
mkdir mygsidocker
cd mygsidocker
wget https://dtcenter.org/dfiles/code/gsi/comgsi_docker.tar.gz
gunzip comgsi_docker.tar.gz
docker load -i comgsi_docker.tar
- 獲取方法2
docker pull comgsi/docker
Docker
會自動從 hub.docker.com
下載 comgsi/docker
。
Comgsi/docker
容器的大小為695 MB。
如果從 hub.docker.com
下載速度太慢,請考慮方法1
2 啟動容器:comgsi/docker
運行以下命令,為了獲取一個運行腳本:"rungsidocker
"來啟動comgsi/docker
echo 'docker run -h mygsidocker -v "$(pwd)":/tutorial -ti --rm comgsi/docker' > rungsidocker; chmod +x rungsidocker
這里的mygsidocker
是我創建的文件夾名稱,可以自己根據自己創建的文件夾名稱進行相應更改。運行完上述命令后,你會發現mygsidocker
下面多個了腳本:./rungsidocker
現在,您可以每次輸入 ./rungsidocker
來啟動 comgsi/docker
如果運行過程中出現:
需要運行以下命令更改目標目錄的權限:
sudo chmod 777 .
然后再次運行./rungsidocker
:
一旦 comgsi/docker
成功啟動,您將在 docker 中看到類似如下的輸出:
comgsi@mygsidocker:/tutorial$
-
注意1: 這個/tutorail 是主機系統下的目錄映射,您可以在其中執行 rungsidocker命令。這個映射允許您從主機系統訪問 docker 中的文件,并且您的文件不會消失
-
注意2: 在 /tutorial 下將自動創建三個目錄 /build, /case_data, /run
重新打開一個Linux頁面,使用docker ps
命令,可以查看當前的運行容器內容
現在您知道 comgsi/docker
容器 ID 是: 08aeab0a3728
,輸入
docker exec -it 08aeab0a3728 bash
你會進入一個新的shell頁面,這類似于游戲里面的雙開了哈哈哈(懂的都懂
3 在comgsi/docker中運行 GSI/EnKF
以下所有步驟都在 comgsi/docker 容器的 shell 中完成,即運行./rungsidocker
之后的頁面
使用wget下載 GSI/EnKF 壓縮包:
wget https://dtcenter.org/sites/default/files/comGSIv3.7_EnKFv1.3.tar.gz
在docker
的 /tutorial
目錄下,可以看到
comGSIv3.7_EnKFv1.3.tar.gz
使用tar
命令進行解壓縮:
tar xvfz comGSIv3.7_EnKFv1.3.tar.gz
編譯GSI/EnKF
cd build
cmake ../comGSIv3.7_EnKFv1.3
make
根據主機的不同,需要10 ~ 20分鐘才能完成編譯。
- 如果不想從源代碼進行編譯,可以跳過步驟(2)并下載預編譯的代碼可執行文件
wget http://dtcenter.org/com-GSI/MPMC/precompiled.tar.gz
tar xvfz precompiled.tar.gz
鏈接可執行文件到 run/
cd ../run
ln -sf ../build/bin/gsi.x .
ln -sf ../build/bin/enkf_wrf.x .
現在,您可以按照 DTC 網站上的說明在 run/目錄下運行所有教程案例
注意1:你可以下載案例的數據到/tutorial/case_data目錄下面
注意2:在comgsi/docker下面,如果你的系統支持并行運算,可以進行多核計算
e.g.: mpirun -n 2 run.case03-conv.ksh
檢測運行
進入docker環境,進入build/bin/ 文件夾,運行 ./gsi.x
沒有啥問題,下一步就可以進行后續的案例測試啦
https://dtcenter.org/about
https://dtcenter.org/sites/default/files/community-code/gsi/release-notes/README.GSI_Docker
本文由mdnice多平臺發布