気候予測データの解析環境を構築する。その4―Docker-wgrib2環境を構築する。
はじめに
本研究室で利用させていただいている「気候予測データセット2022」から入手できるデータの形式は複数あります。
気候予測データセット解説書 第1章 気候予測データセット 2022 カタログ(詳細)に予測データとそのデータ形式が載っています。(1-42 ~ 1-45)
https://diasjp.net/ds2022/manual_chapter1.pdf
- GRIB2
- バイナリ
- GrADS形式バイナリ
- netCDF
- csv
このうち、GRIB2は、気象データのフォーマット形式で、FOSS4G Japan 2022 Online コアデイのスポンサー講演3「気象データ(GRIB2)を可視化してみよう」で本城 博昭 / 清水 珠里(株式会社ONE COMPATH)さんが紹介されています。
この中で、
wgrib2はビルドが⼤変…環境によって諦めざるを得ないことも… そこで、wgrib2とGDALを使えるようにしたDockerイメージを作った。
とあり、これを使わせていただかない手はない!
ということで、まずはWSL2-Ubuntu上にDocker環境を作成していきます。
ついでに、GrADS形式バイナリを表示するためのgradsもインストールしておきます。
Dockerのインストール
以下のページを参考に、WSL2上のUbuntuにDockerをインストールします。
いくつか方法があるようですが、最初の「1. aptレポジトリを使ってDockerをインストールする」に従います。
リモートデスクトップーコンソールの起動
前回と同様にWSL2ーUbuntuにリモートデスクトップ接続し、コンソールを起動します。
ツールのインストール
インストールに必要なツールを入れます。
sudo apt update sudo apt install ca-certificates curl gnupg lsb-release
GPG鍵を入手
aptを使用してDockerをインストールする際に、パッケージの信頼性を保証するためにGPG鍵が必要です。
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg
Dcokerリポジトリの追加
aptがパッケージをインストールする際に参照するリポジトリのリストに、Dockerリポジトリを追加します。
"/etc/apt/sources.list.d/"にファイル名:"qgis.sources"を作成し、編集する。
sudo nano /etc/apt/sources.list.d/docker.list
Dockerリポジトリ設定を記入
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable
”Ctrl-O”で編集内容を保存。 ”Ctrl-X”でnanoを終了できます。
Dcokerのインストール
最新版のDocker Community Editionをインストールします。
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
ユーザー権限の追加
アクセス権限を得るため、ユーザーグループ”docker"に入会しておきます。
sudo usermod -aG docker hoge # "hoge"はユーザー名です
dockerの起動
sudo service docker start
自動起動設定
WSL2-Ubuntuの起動時にDockerも起動するようにしておきます。
.bash_profileを編集する。
nano ~/.bash_profile
以下を追記する。
# docker retval=$(service docker status >/dev/null 2>&1; echo $?) if [ ! $retval == "0" ]; then echo docker start... sudo service docker start fi
VScodeでDockerを扱えるようにする
アプリケーションを実行するための仮想環境をDockerコンテナといいます。その生成・起動・管理はCUIのコマンドで行いますが、VSCodeの拡張機能を用いることにより、GUIで直感的な管理が可能になります。
ので、インストールします。
アクティビティバーから拡張機能をクリック→検索窓に「Docker」と入力して、Docker(Microsoft)をインストール
検索窓に「container」と入力して、Dev Containers(Microsoft)をインストール
wgirb2-with-gdalを導入する
続いて、Docker Hubからochonjo/wgrib2-with-gdalを入手し、wgrib2とGDALを使えるDockerコンテナを作成します。
docker pull ochonjo/wgrib2-with-gdal:3.4.2 docker run --name "wgrib2_dock" -v /mnt/c:/mnt/c -it ochonjo/wgrib2-with-gdal:3.4.2
docekrのサイドバーのCONTAINERSに"wgrib2_dock"が登録される
テスト
テストに使うGRIB2ファイルとして、(財)気象業務支援センターから解析雨量ファイルのサンプルをダウンロードします。
以下のファイルを入手
解析雨量・降水短時間予報・降水15時間予報 (解析雨量)(解析時刻:2018.07.07 0000UTC~2330UTC) SRF_GPV_Ggis1km_Prr60lv_ANAL_20180707.zip
ここではC:\Users\hoge\wgrib2に解凍しました。
WSL2ーUbuntuでは/mnt/c/Users/hoge/wgrib2になります。
コンテナに接続する
docekrのサイドバーの"wgrib2_dock"を右クリック→「start」
"wgrib2_dock"を右クリック→「Attach shell」
"wgrib2_dock"コンテナのターミナルが起動する
grib2ファイルを読み込んでみる
cd /mnt/c/Users/hoge/wgrib2 #変数名、日付などの基本情報を表示する wgrib2 Z__C_RJTD_20180707030000_SRF_GPV_Ggis1km_Prr60lv_ANAL_grib2.bin #ヘッダを表示する wgrib2 ―V Z__C_RJTD_20180707030000_SRF_GPV_Ggis1km_Prr60lv_ANAL_grib2.bin
そのほかのオプションは以下を参照してください
PythonでDockerを扱えるようにする
PythonでDocker Engine APIを叩けると便利!なので、pip3でインストールします。
sudo pip3 install docker
GrADSのインストール
GrADSは、気象学、海洋学、地球科学などの分野で広く使用されている気象グリッドデータ処理プログラムです。
気候予測データセット2022の一部のデータには、データの読み込みに必要な CTL ファイルも併せて提供されています。
aptでgradsをインストールします。
sudo apt install grads
GrADSのテスト
本家のチュートリアルを実行してみます。
まずはサンプルデータを入手し、ホームディレクトリに作成した”GrADS”フォルダで解凍します。
cd /mnt/c/Users/hoge/GrADS tar -xvf example.tar.gz
GrDASを立ち上げて、気圧データを表示してみます。
#GrDASを立ち上げ
grads
#データの読み込み open model.ctl # 気圧の表示 d ps
動きましたか?
ここまでに紹介した解析環境があれば、ほとんどの気候予測データが解析できるバズ・・
さあ、気象予測データの解析をはじめてみましょう!