macOSへのwgrib・wgrib2のインストール（Apple silicon）

# はじめに
**[wgrib](https://www.cpc.ncep.noaa.gov/products/wesley/wgrib.html)**、**[wgrib2](https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/)** はそれぞれGRIB、GRIB2ファイルを操作するプログラムで、アメリカ海洋大気庁（NOAA）を構成するアメリカ国立気象局（NWS）の国立環境予測センター（National Centers for Environmental Prediction：NCEP）が配布している。

この記事では、M1以降のApple Silicon搭載端末にwgribとwgrib2をインストールする手順を紹介する。

:::note warn
~~2023年6月時点で wgrib2 の最新バージョンは `v.3.1.2` ですが、このバージョンで以下の手順を実行したところ、make時にエラーがでました。~~ そのため、この記事では暫定的に `v3.1.1` をインストールしています。
:::

## 2024年11月20日追記

:::note warn
wgrib2の `v3.1.2` をインストールするとエラーが出るとしていましたが、`v3.1.3` のインストールに成功しました。詳しくは、[**macOSへのwgrib2 v3.1.3のインストール**](https://qiita.com/nokos/items/b17a58fdcddcb601ae25) を参考にしてください。
:::

# 実行環境

:::note info
OS：`macOS Ventura 13.4`
:::

# 準備

:::note info
必要な実行ファイル：`gcc`、`gfortran`、`cmake`
:::

Homebrew経由でインストールする。
```zsh
User@Computer ~ % brew install gcc@13 cmake
```

# wgrib のインストール
## ソースファイルをダウンロードする

```zsh
User@Computer ~ % wget ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib/wgrib.c
```

## コンパイルする
```zsh
User@Computer ~ % gcc-13 -o wgrib wgrib.c
```

## インストールする
```zsh
User@Computer ~ % sudo install wgrib /opt/local/bin
```

## 正常にインストールされたことを確認する

```zsh
User@Computer ~ % wgrib
Portable Grib decoder for NCEP/NCAR Reanalysis etc.
   it slices, dices    v1.8.4 (6-2023) Wesley Ebisuzaki
		DWD-tables 2,201-205 (11-28-2005) Helmut P. Frank
		spectral: Luis Kornblueh (MPI)
   usage: wgrib [grib file] [options]

Inventory/diagnostic-output selections
   -s/-v                   short/verbose inventory
   -V                      diagnostic output (not inventory)
   (none)                  regular inventory
 Options
   -PDS/-PDS10             print PDS in hex/decimal
   -GDS/-GDS10             print GDS in hex/decimal
   -verf                   print forecast verification time
   -ncep_opn/-ncep_rean    default T62 NCEP grib table
   -4yr                    print year using 4 digits
   -min                    print minutes
   -ncep_ens               ensemble info encoded in ncep format
Decoding GRIB selection
   -d [record number|all]  decode record number
   -p [byte position]      decode record at byte position
   -i                      decode controlled by stdin (inventory list)
   (none)                  no decoding
 Options
   -text/-ieee/-grib/-bin  convert to text/ieee/grib/bin (default)
   -nh/-h                  output will have no headers/headers (default)
   -dwdgrib                output dwd headers, grib (do not append)
   -H                      output will include PDS and GDS (-bin/-ieee only)
   -append                 append to output file
   -o [file]               output file name, 'dump' is default
 Misc
   -cmc [file]             use NCEP tables for CMC (dangerous)
```

# wgrib2 のインストール

:::note alert
以下の内容は古い情報です。新しい [**macOSへのwgrib2 v3.1.3のインストール**](https://qiita.com/nokos/items/b17a58fdcddcb601ae25) を参考にしてください。
:::

## ~~NOAA から wgrib2 をダウンロードする~~

```zsh
User@Computer ~ % wget https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/wgrib2.tgz.v3.1.1
User@Computer ~ % tar xvf wgrib2.tgz.v3.1.1
User@Computer ~ % cd grib2
```

## ~~コンパイル~~

### ~~makefile を書き換える~~

~~**130〜132 行目**
コメントを外し、 `gcc` 、 `gfortran` のバージョンを付ける。~~

```makefile:makefile（130〜132 行目：変更前）
# can uncomment following two lines to use gcc/gfortran
# export CC=gcc
# export FC=gfortran
```

```makefile:makefile（130〜132 行目：変更後）
# can uncomment following two lines to use gcc/gfortran
export CC=gcc-13
export FC=gfortran-13
```

## ~~makeしてインストールする~~

```zsh
User@Computer ~/grib2 % make
User@Computer ~/grib2 % sudo install wgrib2/wgrib2 /opt/local/bin
```

## ~~正常にインストールされたことを確認する~~

```zsh
User@Computer ~ % wgrib2 -version
v3.1.1 4/2022  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
```

# 参考

https://theweatherguy.net/blog/weather-links-info/how-to-install-and-compile-wgrib2-on-mac-os-10-14-6-mojave/