Pythonでデジタル地図に色々プロットするための準備 その1

■ 概要

 アーアアアアアアア!アーグブイ!アーグシー!

■ はじめに

ざっくり調べたところ、2017年7月現在、Pythonでデジタル地図を扱うには"basemap"パッケージが主流のようだ。他にはイギリス気象局がリリースしている"Cartopy"がある模様。ただ今回はまず初めての準備なので、主流に合わせていく。

興味をそそられる例を挙げていて、説明も必要十分そうに見えた下記サイトを参考に進めることにした。

qiita.com

qiita.com

basemapやcartopyで地図上でplot | mwSoft

 

 

■ 前座:各種パッケージインストールは多分成功

ほぼPython3.6.1(Windows7, 32bit)入れただけの環境から出発する。

インストール手順は公式を参照するのが最善という経験則から、この時点では日本語解説記事はまだ参考にしない。まずはグラフ描画ライブラリ"matplotlib"から。

% pip install matplotlib

で下記パッケージが一度に入った。

  • cycler-0.10.0
  • matplotlib-2.0.2
  • numpy-1.13.1
  • pyparsing-2.2.0
  • python-dateutil-2.6.1
  • pytz-2017.2

numpyは1.2.1より新しいものを入れろ、と公式には書いてあったが、1.13.1って新しいと見ていいのかな?小数点表記内の桁上がりでバージョン表記されるといつも迷う。

次に"PROJ4"と"GEOS"をインストールする。"pip search geos"とやると*geos* 0.2.1が入るだろうことがわかるが、最新のリリースは3.6.2なので罠だろう。こういうのやめてほしい。

Windowsインストール用バイナリを探すと、どちらも"OSGeo4W"の一部として配布されているようだ。これだと今使わないものまで一緒に入ってくる気がしたが、他に妙案も出なかったのでWeb install。カスタムインストールとして、ライブラリ名検索窓に"PROJ4", "GEOS"と入れてフィルタされたものだけチェックして実行。関連パッケージ含めてインストールには少々時間がかかった。というかPython本体とか色々入れられていたような…システムディスクのSSDがだいぶ圧迫されてきたぞ。

さておき、オプション扱いされていたが必要そうなので画像処理ライブラリ"Pillow"も入れておく。

% pip install pillow

これは簡単。

■ 本題:basemapインストールに失敗

いよいよbasemap本体のインストールに取りかかる。

公式の説明書きにはWindowsインストーラバイナリがあるかのように書かれているが見つからないので大人しくソースコードを入手してビルドする。GitHubのリポジトリから延々110MBダウンロードして、setup.pyにgeos_c.hの一つ上のディレクトリ階層を追記してから

% python setup.py install

を実行。

No module named 'numpy.distutils._msvccompiler' in numpy.distutils

(中略)
error: Command "cl.exe (中略) /Fobuild\temp.win32-3.6\Release\src/_geoslib.obj" failed with exit status 127

 

 "numpy-1.13.1+mkl-cp36-cp36m-win32"を代わりに使ってみても状況は変わらず。次回持ち越しとする。

■ 所感

最新のPythonで気軽に何かやってみたいと思ったとき、関連パッケージがpipで扱われていなかったらいったん立ち止まるべきなのかもしれない。pip偉大。