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多平台发布