资料同化 | 搭建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.mzph.cn/web/11825.shtml

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

相关文章

Cocos Creator 3.8.x 透明带滚动功能的容器

ScrollView 是一种带滚动功能的容器 1、删除ScrollView下Sprite组件的SpriteFrame 2、ScrollView下scrollBar的Sprite组件的Color设为:FFFFFF00 3、ScrollView下view的Graphics组件的FillColor设为:FFFFFF00

IP代理如何帮助SEO进行优化?

IP代理在SEO优化中扮演着重要的角色,它通过多种方式帮助提升网站的搜索排名和可见性。以下是IP代理如何帮助SEO进行优化的详细阐述: 第一点,数据采集与分析:在SEO过程中,大量的数据是必不可少的。通过使用IP代理&…

c++ std::shared_ptr学习

背景 c中智能指针shared_ptr用于自动管理资源,通过引用计数来记录资源被多少出地方使用。在不使用资源时,减少引用计数,如果引用计数为0,表示资源不会再被使用,此时会释放资源。本文记录对c中std::shared_ptr的源码学习…

攻防世界PHP2

1、打开靶机链接http://61.147.171.105:49513/,没有发现任何线索 2、尝试访问http://61.147.171.105:49513/index.php,页面没有发生跳转 3、尝试将访问 尝试访问http://61.147.171.105:49513/index.phps index.php 和 index.phps 文件之间的主要区别在于…

GNU Radio创建时间戳 C++ OOT块

文章目录 前言一、创建自定义的 C OOT 块1、创建 timestamp_sender C OOT 模块①、创建 timestamp_sender OOT 块②、修改 C 代码 2、创建 timestamp_receiver C OOT 模块①、创建 timestamp_receiver OOT 块②、修改 C 代码 3、创建 delayMicroSec C OOT 模块①、创建 delayMi…

Vue3实战笔记(20)—封装头部导航组件

文章目录 前言一、封装头部导航栏二、使用步骤总结 前言 Vue 3 封装头部导航栏有助于提高代码复用性、统一风格、降低维护成本、提高可配置性和模块化程度,同时还可以实现动态渲染等功能,有利于项目开发和维护。 一、封装头部导航栏 封装头部导航栏&am…

HFSS学习-day4-建模操作

通过昨天的学习,我们已经熟悉了HFSS的工作环境;今天我们来讲解HFSS中创建物体模型的县体步骤和相关操作。物体建模是HFSS仿真设计工作的第一步,HFSS中提供了诸如矩形、圆面、长方体圆柱体和球体等多种基本模型(Primitive),这些基本…

新书速览|MATLAB科技绘图与数据分析

提升你的数据洞察力,用于精确绘图和分析的高级MATLAB技术。 本书内容 《MATLAB科技绘图与数据分析》结合作者多年的数据分析与科研绘图经验,详细讲解MATLAB在科技图表制作与数据分析中的使用方法与技巧。全书分为3部分,共12章,第1…

精英都是时间控!职场精英的完美一天~~~谷歌FB都在用的时间管理术!

如何超高效使用24小时 每个人的一天都只有24小时,使用时间的方法将决定整个人生。时间管理术并不提倡把自己忙死榨干,而是通过在合适的时间做合适的事情,把大脑机能发挥到极致,从而提高效率,节省下更多时间用于生活与…

(项目)-KDE巡检报告(模板

金山云于12月26日对建行共计【30】个KDE集群,合计【198】台服务器进行了巡检服务。共发现系统风险【135】条,服务风险【1912】条,服务配置风险【368】条。 一、系统风险 1、风险分析(图片+描述) (1)磁盘使用率高 问题描述多个集群的多台服务器磁盘使用率较高,远超过…

答辩PPT模版如何选择?aippt快速生成

这些网站我愿称之为制作答辩PPT的神! 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路,一窍不通。但这并不是你们的错,对于平时没接触过相关方面,第一次搞答辩PPT的人来说,这是很正常的一件事。一个好的答辩PPT…

简述RocketMQ系统架构及其相关概念

一、概述 RocketMQ是一款高性能、高吞吐量的分布式消息队列系统,它采用了分布式架构,支持多生产者和消费者并发读写,具有高可用性、高吞吐量、低延迟等特点。本文将对RocketMQ的系统架构进行详细解析。 二、架构设计 RocketMQ采用了分布式架…

入门物联网就是这么简单——青创智通

工业物联网解决方案-工业IOT-青创智通 MQTT,全称为Message Queuing Telemetry Transport,是一种轻量级的发布/订阅消息传输协议,广泛应用于物联网领域。 MQTT协议以其高效、可靠、灵活的特性,成为物联网设备间通信的理想选择。本…

升级版ComfyUI InstantID 换脸:FaceDetailer + InstantID + IP-Adapter

在使用ComfyUI的InstantID进行人脸替换时,一个常见问题是该工具倾向于保留原始参考图的构图,即使用户的提示词与之不符。 例如,即使用户提供的是大头照并请求生成全身照,结果仍是大头照,没有显示出用户所期望的构图。…

MySQL_DDL语句

1.Data类临时数据的弊端 我们之前在将ServletJSP配合处理请求的过程中 数据库起到一个存取数据的作用 但是我们之前的案例中 数据是在Data类中临时定义的 并不是从数据库中获取的 这样做是不好的 因为每一次服务器关闭之后 那么部署在其上的类也会随着卸载 紧接着和类相挂钩的静…

基于C#开发web网页管理系统模板流程-登录界面

前言,首先介绍一下本项目将要实现的功能 (一)登录界面 实现一个不算特别美观的登录窗口,当然这一步跟开发者本身的设计美学相关,像蒟蒻博主就没啥艺术细胞,勉强能用能看就行…… (二&#xff09…

使用Tkinter开发Python棋盘游戏

使用 Tkinter 开发一个简单的棋盘游戏是很有趣的!下面是一个示例,演示如何使用 Tkinter 创建一个简单的五子棋游戏:这个是我通过几个夜晚整理出来的解决方案和实际操作教程。 1、问题背景 目标是开发一个 Python 棋盘游戏,玩家可…

人力资源管理:员工体验平台设计

员工体验是员工的感受,是员工作为企业一份子观察到、感受到和与之互动的一切,包含企业为员工提供的物质条件、人文环境等各方面的内容。 是在工作过程中接触到的所有接触点所产生的对自己与用人单位关系的整体感知,员工体验从员工入职开始贯…

使用Go和JavaScript爬取股吧动态信息的完整指南

引言 在现代金融生态系统中,信息流动的速度和效率对于市场的健康和投资者的成功至关重要。股市信息,特别是来自活跃交流平台如股吧的实时数据,为投资者提供了一个独特的视角,帮助他们洞察市场趋势和投资者情绪。这些信息不仅能够…

NumPy常用操作

目录 一:简介 二:NumPy 常用操作 三:总结 一:简介 是一个开源的Python库,它为Python提供了强大的多维数组对象和用于处理这些数组的函数。NumPy的核心是ndarray,它是一个高效的多维数组容器,用…