LoginSignup
0
0

MacOSにwgrib2をインストールする方法

Posted at

気象のグリッドデータに使われているファイルフォーマットであるGRIB2ファイルを操作するコマンドwgrib2をインストールする方法。

環境

  • OS: MacOS Ventura 13.0.1 (Apple M1)

手順

必要なコマンドのインストール

gcc gfortran cmakeをHomebrewでインストールする。Homebrewのインストールがまだの場合は先にインストールしておく(公式サイト)。

$ brew install gcc cmake

インストールされたかどうかは、

$ ls /opt/homebrew/bin

を実行した時に、gcc-X gfortran-X cmake(Xはバージョン番号。筆者の環境ではgcc-13 gfortran-13)があればOK。

$ which gcc-13
$ which gfortran-13
$ which cmake

で一応確認。

wgrib2ファイルのダウンロード

ダウンロードサイトから取得する。

$ curl https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz -o wgrib2.tgz

で取得できる。過去のバージョンも保存されているので必要に応じてそちらをダウンロードしても良いが、基本的には最新バージョンであるwgrib2.tgzをダウンロードする(筆者がダウンロードしたのはv3.1.3)。

コンパイルの準備

まずは、ファイルを解凍する。

$ tar -xvf wgrib2.tgz

解凍後、生成されたgrib2ディレクトリ内のMakefileを開き、

makefile
# export CC=gcc
# export FC=gfortran

のコメントアウトを外し、バージョンに合わせてgcc -> gcc-X gfortran -> gfortran-Xに書き換える。
次に、1000行目あたりにある、

makefile
# export LDFLAGS="-L${lib}" && cd "${pngdir}" && export CPPFLAGS="${wCPPFLAGS}" && ${MAKE} -f scripts/makefile.darwin

のコメントアウトも外す。
次に、

makefile
USE_G2CLIB=0
USE_PNG=1
USE_JASPER=0
USE_OPENJPEG=1
USE_AEC=1

あたりのUSE_PNG=1USE_PNG=0に書き換える。これをしないとコンパイルした時に、

Undefined symbols for architecture arm64:
  "_png_set_longjmp_fn", referenced from:
      _pngtoimage_internal in convertpng.c.o
      _imagetopng in convertpng.c.o
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status
make[3]: *** [bin/opj_decompress] Error 1
make[2]: *** [src/bin/jp2/CMakeFiles/opj_decompress.dir/all] Error 2
make[1]: *** [all] Error 2

みたいなエラーが出た。
makefileを閉じ、

$ cd grib2
$ tar -xvf libpng-1.2.59.tar.gz

で解凍する(ファイル名はバージョンに合わせて適宜変更してください)。
生成されたlibpng-1.2.59/makefile.darwinを開き、

makefile.darwin
# Utilities:
CC=cc
AR_RC=ar rc
MKDIR_P=mkdir -p
LN_SF=ln -sf
RANLIB=ranlib
RM_F=/bin/rm -f

あたりのCC=ccCC=gcc-Xに書き換える。
書き換えたら、

$ tar -cf libpng-1.2.59.tar libpng-1.2.59
$ gzip libpng-1.2.59.tar

で圧縮し直す(こちらもファイル名は適宜変更してください)。「ファイルがすでにあるよ」みたいな注意が出たら、yと答える。

コンパイル

ここまでできたらいよいよ

$ make

でコンパイル。
完了したら、

$ ls wgrib2

wgrib2が生成されていることを確認する。

インストール

$ sudo install wgrib2/wgrib2 /usr/local/bin

でインストール。一応確認しておく。

$ which wgrib2
/usr/local/bin/wgrib2
$ wgrib2 --version
v3.1.3 10/2023  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, George Trojan, Sergey Varlamov

めでたしめでたし。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0