概要
こんにちわ。Weathernews 新入社員の 百々 です。
たまに社内でトドと呼ばれますが、ドドです。本名です。本当です。
今回は、気象データを扱うためのコマンドツール wgrib2 をDockerコンテナで動かしてみます。
wgrib2とは
wgrib2は、WMO(世界気象機関)で定めている気象データ形式GRIB2を使用するためのコマンドツール。
作成は、アメリカのNOAAが行なっており、直近の更新は2017年2月となっている。(※2017年6月現在)
(参考 http://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/)
なお、GRIB2形式データは、主に数値予報モデルなどで使用されている。
背景
wgrib2を扱う需要が高いので、環境依存をなくすため、これをDocker化したかった。
きっかけは、wgrib2のインストールではmakefile
の中身をOSなどの環境ごとに変更しなければならず、インストールでトラブルが発生したことから始まった。
makefile
の変更は、多くの場合はコメントアウトの付け外しではある。が、ヒューマンエラーや微妙なローカル環境の違いにより、make
で長い時間待たされた挙句エラーを発生😡させてしまうので、Dockerさえ入っていればコマンド一発でインストールできるようにしたかった。
wgrib2をUbuntuベースのDockerコンテナへインストールする
dockerfileにインストール手順を記載してdockerコンテナを作成して、実現した。
Dockerfile
FROM ubuntu:latest
# Install libraries for installing wgrib2
RUN apt-get update && apt-get install -y wget \
build-essential \
gfortran \
zlib1g-dev
# Setting for libraries
ENV CC gcc
ENV FC gfortran
# Download wgrib2
RUN cd ~ \
&& wget ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz \
&& tar xvzf wgrib2.tgz
# Install wgrib2
RUN cd ~/grib2/ \
&& make \
&& cp wgrib2/wgrib2 /usr/local/bin/wgrib2
解説
Ubuntuにwgrib2をインストールするためには、gcc
とgfortran
及びzlib1g-dev
がいるので、これらをapt-get
を使ってインストールする。
gcc
は、build-essential
パッケージに同包されているものを使用する。
wgrib2のmakefile
には、どのコンパイラを使用するかを環境変数CC
及びFC
から選択する。よって、これらをENV
を使用して定義しておく。
後は、wgrib2をダウンロードしてインストールするだけでOK。
docker build
$ docker build -t weathernews/wgrib2:1.0 .
もし部屋が暑いなら、ビルドが終わるのを待つ間にハーゲンダッツでも食べましょう。きっと幸せになれます✌️
wgrb2の実行
$ docker run -i -t weathernews/wgrib2:1.0 wgrib2 -version
v0.2.0.6c 2/2017 Wesley Ebisuzaki, Reinoud Bokhorst, John Howard,
Jaakko Hyvätti, Dusan Jovic, Daniel Lee, Kristian Nilssen, Karl Pfeiffer,
Pablo Romero, Manfred Schwarb, Gregor Schee, Arlindo da Silva,
Niklas Sondell, Sam Trahan, Sergey Varlamov
インストールできたことを、確認できました!
あとは、GRIB2データをマウントして、好きなようにwgrob2
コマンドを実行していきましょう。
おわりに
Docker化したことで、Dockerさえ入っていれば気軽にGRIB2データを扱えるようになり、ハッピーだと思います。
おしまい。😄