Pythonで地図にデータをマッピングできるライブラリのcartopyを使おうとしたらハマったのでやり方を残しておきます。
Anacondaを使うと簡単にインストールできるらしいのですが、この記事は素のPythonでやる人向けです。
セットアップ
cartopy自体はpipでインストールできるのですが、別言語で書かれたライブラリを使ったりして依存関係が複雑なのでメモ🖋
大まかな流れは...
0. Xcode’s command-line の確認
- PROJ.4のインストール
- GEOSのインストール
- shapelyおよびcartopyのインストール(但しバイナリファイルを除く)
まずは公式インストールガイドをみてね。
0. Xcode’s command-line の確認
ガイドには記載がないけどハマったのでメモ。
macOSをアップデートした際にコマンドラインツールが正常にインストールされていないことがあるらしい。
stdio.h file not found error on macOS Sierra - GitHub
解決するには、
$ xcode-select --install
でOK。
1.PROJ.4のインストール
PRO4.Jは緯度経度を扱うためのライブラリ。
UNIXのプログラムのビルドに詳しい人ならなんてことないのかもしれないけど、自分はAutoToolの使い方をしらなかったので困りました。
まずはPRO4.Jのガイドを読んで、GitHubからソースを取得。
その場合自分でコンパイル→インストールする必要があるので...
- pro4.j のディレクトリ内で autogen.sh を実行。
- ./configure コマンドでmakeコマンドのための設定ファイルを作成
- make → make install でコンパイルしてインストール。
2. GEOSのインストール
GEOSは(多分)3Dの描画をするライブラリ。
こちらは初めからconfigureが用意されているので、
./configure → make → make install でOK。
3. shapelyおよびcartopyのインストール(但しバイナリファイルを除く)
cartopyの依存ライブラリがDLL地獄(依存ライブラリのバージョンが違うことによる問題)に陥っているらしく、pipでインストールする際にはバイナリファイルを除く必要がある。以下も参照。
cartopy possibly kills the kernel when using ipython/jupyter notebook - GitHub
- すでにshapely, cartopyがインストールされている場合は削除。
pip uninstall shapely
pip uninstall cartopy
- バイナリファイルを除くオプションを付けてインストール
pip install shapely cartopy --no-binary shapely --no-binary cartopy
セットアップ手順は以上です。
使ってみる
公式サイトのソースコードを引用。
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
ax = plt.axes(projection=ccrs.PlateCarree())
ax.coastlines()
plt.show()
これは一番シンプルなやつだけど、色も形も幅広く変えられそうなので楽しみ!