资料同化 | 搭建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 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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言易错提醒选择题精选

Ⅰ 易错题 1.设有double p;&#xff0c;为变量p声明一个引用名称rp,则定义语句为 double& rpp; 2.已知‘A’一‘Z’的ASCII码为65—90&#xff0c;当执行“char ch14*52&#xff1b;cout<<ch<<endl;”语句序列后得到的输出结H &#xff0c;72对应ASCII码中…

2.1 软件工程

第2章 信息技术知识 2.1 软件工程 现状&#xff1a; 开发软件的规模越来越大复杂度越来越高用户需求并不十分明确缺乏软件开发方法和工具方面的有效支持 软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件…

QCC---Aptx Lossless验证

因为aptx Lossless属于高通骁龙声音的一部分&#xff0c;一般支持高通骁龙声音的设备会支持到&#xff0c;比如说手机&#xff0c;而且还要支持最新的aptx adaptive协议R2.2版本。但是如果手上没有这样的手机的话&#xff0c;有source芯片也可以去做测试验证。在最新的784.1版本…

回溯算法-组合问题-力扣第77题

什么是组合问题—— 举例&#xff1a; 有一个集合&#xff1a;{1,2,3,4} 现在要找出这个集合里面所有组合大小&#xff08;组合长度&#xff0c;组合里面数据的个数&#xff09;为2的组合 那么就有&#xff1a;总共6种组合 {1,2}&#xff0c;{1,3}&#xff0c;{1,4} {2,3}…

小猪APP分发:掌握封装应用的艺术,优化用户体验

在移动应用市场日益激烈的竞争环境中&#xff0c;小猪APP分发www.ppzhu.net脱颖而出&#xff0c;成为众多开发者信赖的伙伴。它不仅简化了应用的发布流程&#xff0c;更通过其核心的封装技术&#xff0c;有效解决了应用分发中的一系列痛点&#xff0c;为用户带来无缝、高效的下…

Python从0到POC编写--函数

数学函数&#xff1a; 1. len len() 函数返回对象&#xff08;字符、列表、元组等&#xff09;长度或项目个数&#xff0c; 例如&#xff1a; str "python" len(str)2. range range() 函数返回的是一个可迭代对象&#xff08;类型是对象&#xff09;&#xff0c;…

Nios实验入门——用Verilog编程方式完成LED流水灯显示并使用串口输出“Hello Nios-II”字符到笔记本电脑

文章目录 前言一、Verilog编程方式完成LED流水灯显示1.1 新建工程并添加FPGA芯片1.2 新建.v文件并添加至顶层实体1.3 引脚分配1.4 编译(包含分析与综合)1.5 选择烧录器1.6 添加烧录文件1.7 下载1.8 实验现象 二、Verilog编程方式实现串口2.1 uart_tx.v文件2.2 test.v文件2.3 to…

【MySQL】sql表设计的注意事项

程序员的实用神器 文章目录 程序员的实用神器强烈推荐引言注意事项强烈推荐专栏集锦写在最后 强烈推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站:人工智能 推荐一个个人工作&#x…

Android面试题之Kotlin的apply、let、also、run函数

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 apply apply函数可以看作是一个配置函数&#xff0c;可以传入一个接收者&#xff0c;然后调用一系列函数来配置以便使用&#xff0c;如果提供l…

Redis-数据过期策略

文章目录 Redis数据持久化策略的作用是什么&#xff1f;Redis的数据过期策略有哪些&#xff1f;惰性删除定期删除 更多相关内容可查看 Redis数据持久化策略的作用是什么&#xff1f; Redis数据过期策略是指在Redis中设置数据的过期时间&#xff0c;并在数据过期时自动从数据库…

《安富莱嵌入式周报》第336期:开源计算器,交流欧姆表,高性能开源BLDC控制器,Matlab2024a,操作系统漏洞排名,微软开源MS-DOS V4.0

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 本周更新一期视频教程&#xff1a; BSP视频教程第30期&#xff1a;UDS ISO14229统一诊断服务CAN总线专题&#xff0c;常…

【SRC实战】无限获取优惠码

挖个洞先 https://mp.weixin.qq.com/s/HgMK4S8275VvFVbnSp6Qsw “ 以下漏洞均为实验靶场&#xff0c;如有雷同&#xff0c;纯属巧合 ” 01 — 漏洞证明 “ 获取优惠码有次数限制的情况下&#xff0c;如何绕过&#xff1f;” 1、新用户专属福利&#xff0c;免费领100元优惠…