気候予測データの解析環境を構築する。その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)さんが紹介されています。

www.osgeo.jp

speakerdeck.com

この中で、

wgrib2はビルドが⼤変…環境によって諦めざるを得ないことも… そこで、wgrib2とGDALを使えるようにしたDockerイメージを作った。

hub.docker.com

とあり、これを使わせていただかない手はない!

ということで、まずはWSL2-Ubuntu上にDocker環境を作成していきます。

ついでに、GrADS形式バイナリを表示するためのgradsもインストールしておきます。

Dockerのインストール

以下のページを参考に、WSL2上のUbuntuにDockerをインストールします。

いくつか方法があるようですが、最初の「1. aptレポジトリを使ってDockerをインストールする」に従います。

kinsta.com

リモートデスクトップーコンソールの起動

前回と同様にWSL2ーUbuntuリモートデスクトップ接続し、コンソールを起動します。

cci-labo.hateblo.jp

ツールのインストール

インストールに必要なツールを入れます。

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ファイルとして、(財)気象業務支援センターから解析雨量ファイルのサンプルをダウンロードします。

www.jmbsc.or.jp

以下のファイルを入手

解析雨量・降水短時間予報・降水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

そのほかのオプションは以下を参照してください

www.cpc.ncep.noaa.gov

PythonでDockerを扱えるようにする

PythonでDocker Engine APIを叩けると便利!なので、pip3でインストールします。

sudo pip3 install docker

GrADSのインストール

GrADSは、気象学、海洋学、地球科学などの分野で広く使用されている気象グリッドデータ処理プログラムです。

気候予測データセット2022の一部のデータには、データの読み込みに必要な CTL ファイルも併せて提供されています。

aptでgradsをインストールします。

sudo apt install grads

GrADSのテスト

本家のチュートリアルを実行してみます。

cola.gmu.edu

まずはサンプルデータを入手し、ホームディレクトリに作成した”GrADS”フォルダで解凍します。

cd /mnt/c/Users/hoge/GrADS
tar -xvf example.tar.gz

GrDASを立ち上げて、気圧データを表示してみます。

#GrDASを立ち上げ
grads
#データの読み込み
open model.ctl
# 気圧の表示
d ps


動きましたか?

ここまでに紹介した解析環境があれば、ほとんどの気候予測データが解析できるバズ・・

さあ、気象予測データの解析をはじめてみましょう!