资料同化 | 搭建docker环境-1

Community Gridpoint Statistical Interpolation (GSI) system

DTC 是一个分布式设施,NWP 社区可以在这里测试和评估用于研究和操作的新模型和技术。

DTC

DTC的目标包括:

  • 链接研究和操作社区

  • 研究成果转化为实际操作的速度

  • 加快改善天气预报

  • 开发和测试有前途的数值预报新技术

  • 为模型和数据同化系统的循环或实时测试提供机会

开发测试中心(Developmental Testbed Center,DTC)目前维护并支持 GSI 系统的社区版本(现在是3.7版本)。GSI 是由美国国家海洋和大气管理局(NOAA)、美国国家航空航天局(美国国家航空航天局)和国家大气研究中心(nCAR)共同开发的一个数据同化系统。下面演示如何在Linux系统上搭建一个数据同化系统,再次之前已经在系统上安装好了WRF以及docker。

前期准备

你必须要在你的系统上拥有docker软件,前往以下网页进行下载和安装docker

  • https://www.docker.com

docker

  • 对于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 update
   apt-cache policy docker-ce
   sudo 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

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

wget

命令

  • 获取方法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多平台发布

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简朴-ocean

继续进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值