资料同化 | 搭建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代理&…

如何区分os.walk()与os.scandir()

os.walk() import os for dirpath, dirname, files in os.walk(./):# dirpath 当前——路径# dirname 当前——路径——下——文件夹名——列表# files 当前——路径——下——文件——列表dirpath 当前路径 ./ dirname 当前路径下面文件夹名称组成的列表,共3个文…

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…

tp8 设置空控制器和空方法

1、空控制器 单应用模式下&#xff0c;我们可以给项目定义一个Error控制器类 <?phpnamespace app\controller;class Error {/*** 空控制器中重写魔术方法__call可以实现自定义错误提示&#xff0c;在这里可以提示找不到控制器* 注意&#xff1a;在基础控制器BaseControll…

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

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

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

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

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

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

右键使用VSCode打开文件/文件夹目录

右键使用VSCode打开文件/文件夹目录 使用新电脑或清空了注册列表之后&#xff0c;点击右键“使用vscode”打开文件夹消失了&#xff0c;可以通过更改注册列表增加回来。 实现&#xff1a; 右键在目录空白处使用vscode打开目录右键-用vscode(当前窗口)打开文件或目录 右键-用vs…

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

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

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

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

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

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

MySQL_DDL语句

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

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

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

使用Tkinter开发Python棋盘游戏

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