GrADS 2.2.1をApple silicon Macにインストール・セットアップする

# はじめに

**[GrADS](http://opengrads.org/)** とは **Grid Analysis and Display System** の略で、気象・気候分野において[客観解析](https://www.jma.go.jp/jma/kishou/know/whitep/1-3-3.html)等で用いられる格子点データを処理・図化することに適したソフトです。アメリカの[ジョージ・メイソン大学](https://www.gmu.edu/)にある **[The Center for Ocean-Land-Atmosphere Studies（COLA）](http://cola.gmu.edu/cola.php)** の専属グループが開発・維持をしています。

# Xquartz のインストール

まず、**[Xquartz](https://www.xquartz.org/releases/index.html)** をインストールしましょう（`2.8.0`から Apple Silicon にも対応しました）。

:::note warn
2023年6月時点の最新版である `2.8.5` では、GrADS で contour などが描画されないという問題があります。そのため、現在のところ GrADS を使用する場合には `2.8.4` 以下のバージョンを[インストール](https://www.xquartz.org/releases/XQuartz-2.8.4.html)する必要があります。
:::

# GrADS 本体のインストール

次に、**[GrADS のダウンロードページ](https://sourceforge.net/projects/opengrads/files/grads2/2.2.1.oga.1/macOS/)** から、`opengrads-2.2.1.oga.1-bundle-x86_64-apple-darwin20.5.0.pkg`をダウンロードします。パッケージ版ではパスを通すだけで良く、環境変数の設定等が必要なくなっています。

ダウンロードしたら、セキュリティの関係で右クリックして「このアプリケーションで開く」から`インストーラ.app`を選択し、「開発元を検証できません。開いてもよろしいですか?」との警告を無視して開きます。すると、下のようなウィンドウが表示されるので、指示に従ってインストールします。

![OpenGrADS Bundle for macOSのインストール](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2434596/f903324d-1088-a73a-abb3-eccf52a3f542.png "OpenGrADS Bundle for macOSのインストール")


インストールが完了したら、`~/.zprofile`を開き、次のようにパスを追加します。

```zsh:~/.zprofile
# GrADSのために新たに追加するパス
export PATH="/opt/local/bin:$PATH"
```

以上の設定をしてシェルを再起動することで、Intel Mac ならばターミナルにおいて`grads`と入力することで GrADS が起動するはずなのですが、Apple Silicon ではエラーが出てしまいます。そこで、以下の 2 つのコマンドを実行します。

```zsh
User@Computer ~ % mkdir /Applications/OpenGrADS/Darwin/arm
User@Computer ~ % cp -R /Applications/OpenGrADS/Darwin/Versions/2.2.1.oga.1/i386/* /Applications/OpenGrADS/Darwin/arm
```

このコマンドにより、`/Applications/OpenGrADS/Darwin`の中に`arm`という名前のディレクトリを作り、そこに`/Applications/OpenGrADS/Darwin/Versions/2.2.1.oga.1/i386`の中にある GrADS の実行ファイルがコピーされます。これで、エラーが出なくなります。

前述のように、シェルを再起動してターミナルで`grads`と入力すると、

```zsh
User@Computer ~ % exec $SHELL  # シェルの再起動
User@Computer ~ % grads

              Welcome to the OpenGrADS Bundle Distribution
              --------------------------------------------

For additional information enter "grads --manual".

Starting "(/usr/bin/env DYLD_LIBRARY_PATH=/Applications/OpenGrADS/Darwin/arm/gex: /Applications/OpenGrADS/Darwin/arm/grads  ) " ...

Grid Analysis and Display System (GrADS) Version 2.2.1.oga.1
Copyright (C) 1988-2018 by George Mason University
GrADS comes with ABSOLUTELY NO WARRANTY
See file COPYRIGHT for more information

Config: v2.2.1.oga.1 little-endian readline grib2 netcdf hdf4-sds hdf5 opendap-grids,stn athena geotiff shapefile
Issue 'q config' and 'q gxconfig' commands for more detailed configuration information
Loading User Defined Extensions table </Applications/OpenGrADS/Darwin/arm/gex/udxt> ... ok.
Landscape mode? ('n' for portrait):
```

と表示されるので、`n`以外のキーを押下することで、GrADS がランドスケープモードで起動します。

```zsh
GX Package Initialization: Size = 11 8.5
ga->
```

ターミナルで上のように表示されると同時に、Xquartz による描画ウィンドウも立ち上がります。

# GrADSのセットアップ
ここまでで、GrADSを使用することができるようになりました。以下では、GrADSをより便利に使用するためのセットアップを行います。

## 新しい地図のダウンロード

```zsh
ga-> set mpdset mres/hires
ga-> set poli on
```

のように設定すると国境線を描くことができますが、このデータはかなり古いものです。COLA から、より新しく解像度も高いデータを FTP で取得できます。なお、いずれも湖は描かれません。

- **newmap**
  - 国境線のデータが `hires` よりも新しく、国境線と海岸線の解像度も `hires` より高くなっています。
- **worldmap**
  - 海岸線の解像度が `newmap` よりもさらに高いです。
  - 国境線は含みません。

以下のコマンドを実行します。

```zsh
User@Computer ~ % cd /Applications/OpenGrADS/Resources/SupportData
User@Computer /A/O/R/SupportData % wget ftp://cola.gmu.edu/grads/boundaries/newmap
User@Computer /A/O/R/SupportData % wget ftp://cola.gmu.edu/grads/boundaries/worldmap
```

これにより、 `/Applications/OpenGrADS/Resources/SupportData` に `newmap` と `worldmap` がダウンロードされます。パッケージ版以外で GrADS をインストールしている場合、環境変数 `GADDIR` で指定した `/usr/local/lib` などのディレクトリにフォントや地図情報を格納するディレクトリを作ることが多いですが、パッケージ版の場合はこれらを設定しないので、 `/Applications/OpenGrADS/Resources/SupportData` の中にダウンロードしたファイルを置きます。（ `/usr/local/lib` などにディレクトリを作成し、環境変数を設定しても問題ないと思います。好みに応じて読み替えて下さい。）

使用する際は、`hires` などと同様に、

```zsh
ga-> set mpdset newmap/worldmap
```

とします。

## シェープファイルのダウンロード

GrADS は、`ver. 2.0.a8` 以降で任意のシェープファイルを描けるようになりました。これにより、例えば日本国内の都道府県界や市区町村界、気象庁の予報区などを描くことができます。まず、以下のリンクなどから使えそうなシェープファイルをダウンロードします。

- **[国土数値情報](https://nlftp.mlit.go.jp/ksj/index.html#kokudo)**
  - 国土交通省が提供する、国土に関する様々な情報を網羅したデータです。
  - 全国の県境データは、[ここ](https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v3_1.html#prefecture00)からダウンロードできます。
  - 様々な年代のものが公開されています。
  - 海岸線のみならず、河川や湖沼など様々なデータが揃っていますが、都道府県単位でのダウンロードになるものも多いです。
- **[geoBoundaries](https://www.geoboundaries.org/)**
  - アメリカの[ウィリアム・アンド・メアリー大学](https://www.wm.edu/)の[geoLab](https://geolab.wm.edu/)によって公開されている、世界各国の国境および地方行政界データです。
  - 日本に限らず、各国のデータが手に入ります。
  - 元データは、OpenStreetMap 等だと思われます。
  - 使用する際には[How to Use](https://www.geoboundaries.org/index.html#citation)をよく読んで下さい。
  - 詳細は、[Runfola _et al_. (2020)](https://doi.org/10.1371/journal.pone.0231866)を参照して下さい。
- **[気象庁 予報区等 GIS データの一覧](http://www.data.jma.go.jp/developer/gis.html)**
  - 気象庁による予報区等のシェープファイルデータです。
  - 全国・地方予報区、府県予報区等、一次細分区域等、市町村等をまとめた地域等、市町村等など、計 16 種類のデータが公開されています。
  - 区分の詳細は、[気象警報・注意報や天気予報の発表区域](https://www.jma.go.jp/jma/kishou/know/saibun/)を参照して下さい。

なお、ESRI ジャパンが公開している[全国市区町村界データ](https://www.esrij.com/products/japan-shp/)は、[使用規定](https://www.esrij.com/cgi-bin/wp/wp-content/uploads/documents/shikuchoson_terms2021.pdf)に「ArcGIS シリーズ以外のソフトウェアで使用することはできません。」と明記されているので、GrADS で使用することはできません。これは、全国市区町村界データをもとに作成している[都道府県界データ](https://hub.arcgis.com/datasets/d4e1992666d748a1a01fd1a34b20f88b_0/about)についても同様です。

前述の地図データと同様に、`/Applications/OpenGrADS/Resources/SupportData`の中にダウンロードしたシェープファイルを置きます。シェープファイルは、`*.shp`、`*.shx`、`*.dbf`がセットですので、最低これら 3 つのファイルをまとめて置いて下さい。

ここまでが済んだら、

```zsh
ga-> draw shp hoge.shp
```

とすることで、海岸線や都道府県界を描くことができます。`/Applications/OpenGrADS/Resources/SupportData`の中にシェープファイルを置いた場合は、パスを書かずともファイル名のみを書けば問題ありません。

## スクリプトの設定

GrADS を使用する上で、デフォルトのスクリプトのみでは物足りない場合があります。JAMSTEC の小玉知央氏によって、GrADS のスクリプト集が公開されているので、これを使用しましょう。 **[GrADS のスクリプト集のページ](http://kodama.fubuki.info/wiki/wiki.cgi/GrADS/script?lang=jp)** にアクセスし、`release-20220419.zip`をダウンロード、解凍します。あとは、これらのスクリプトを次のコマンドによって`/Applications/OpenGrADS/Resources/Scripts`にコピーすることで、使用することができるようになります。

```zsh
User@Computer ~ % wget https://github.com/kodamail/gscript/archive/release-20220419.tar.gz
User@Computer ~ % tar xvf release-20220419.tar.gz
User@Computer ~ % cp -R gscript-release-20220419/* /Applications/OpenGrADS/Resources/Scripts
User@Computer ~ % rm -rf gscript-release-20220419
```

GrADS を起動し、

```zsh
ga-> grid
```

と入力してグリッドが表示されれば、問題なく使用できます。各スクリプトの詳細については、[スクリプトリファレンス](http://kodama.fubuki.info/wiki/wiki.cgi/GrADS/script?lang=jp#7)を参照して下さい。また、筑波大学の釜江陽一氏によっても、**[GrADS スクリプトライブラリ](https://researchmap.jp/multidatabases/multidatabase_contents/detail/232785/5dc1aaaf5a0d631c7e4b20d34f002f6c?frame_id=822841)** が公開されています。これも、上と同様の手順で使用することができます。