資料同化 | 搭建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.pswp.cn/web/11825.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11825.shtml
英文地址,請注明出處:http://en.pswp.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;玩家可…