本屋で立ち読みしたらBasemap( pythonで簡単に地図をプロットできるモジュール。データの可視化を地図上にしたいときにとても重宝します。)っていうなんかかっこよさそうなものがあるってことで帰って早速インストールしてみました。
以下のようなシンプルなコードでかっこいい地図が描けます。
インストールまで結構つまづいたので忘備録としてのメモ。
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
%matplotlib inline
m = Basemap()
m.bluemarble()
##実行環境
Python 3.7.6
macOS Mojave 10.14.6
Jupyter Notebook
##インストール方法
最初に。
$ brew install geos
以下でいきなりつまづく。
$ wget https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
以下のエラーが吐かれた。うーん。。どうやらwgetに問題があるよう。
dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
Referenced from: /usr/local/bin/wget
Reason: image not found
zsh: abort wget
whichで確認。wgetはインストールされている模様。
$ which wget
/usr/local/bin/wget
wgetをアップグレードしてみる。
$ brew upgrade wget
==> Upgrading 1 outdated package:
wget 1.20.3 -> 1.20.3_2
アップグレードがうまく行ったので再度チャレンジ。
$ wget https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
ダウンロード失敗。
$ wget https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
--2020-01-05 19:35:46-- https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 2001:df0:2ed:feed::feed, 150.65.7.130
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|2001:df0:2ed:feed::feed|:443 に接続しています... 接続しました。
エラー: jaist.dl.sourceforge.net の証明書(発行者: `CN=Let\'s Encrypt Authority X3,O=Let\'s Encrypt,C=US')の検証に失敗しました:
発行者の権限を検証できませんでした。
jaist.dl.sourceforge.net に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。
そうか、そうか。もう一度。`--no-check-certificate'をつけて再実行してみる。
$ wget https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz --no-check-certificate
--2020-01-05 19:36:28-- https://jaist.dl.sourceforge.net/project/matplotlib/matplotlib-toolkits/basemap-1.0.7/basemap-1.0.7.tar.gz
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net) をDNSに問いあわせています... 2001:df0:2ed:feed::feed, 150.65.7.130
jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|2001:df0:2ed:feed::feed|:443 に接続しています... 接続しました。
警告: jaist.dl.sourceforge.net の証明書(発行者: `CN=Let\'s Encrypt Authority X3,O=Let\'s Encrypt,C=US')の検証に失敗しました:
発行者の権限を検証できませんでした。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 129694711 (124M) [application/x-gzip]
`basemap-1.0.7.tar.gz' に保存中
basemap-1.0.7.tar.g 100%[===================>] 123.69M 121KB/s 時間 21m 6s
2020-01-05 19:57:34 (100 KB/s) - `basemap-1.0.7.tar.gz' へ保存完了 [129694711/129694711]
次に以下のコマンドを実行。
$ tar zxvf basemap-1.0.7.tar.gz
$ cd basemap-1.0.7
$ python setup.py install
python setup.py installの後にエラーが。。長いなあ。
ModuleNotFoundError: No module named 'numpy.random.mtrand'
今度はnumpyに問題がありそうなのでアンインストール→インストールの実行。
$ pip3 uninstall numpy
$ pip3 install numpy
再インストール後にもう一度以下を実行。
$ python setup.py install
うまく行った!!!
ただ、実際にjupyterで使おうと思ったらエラーが。
ImportError: No module named 'mpl_toolkits.basemap'
いろいろ探してたらこのコマンドを使ったらいけそう。
$ pip3 install https://github.com/matplotlib/basemap/archive/master.zip
ところがzipファイルじゃないよ。というエラー。
zipfile.BadZipFile: File is not a zip file
netCDF4を落としたらいけるとのことで実行。
$ pip3 install netCDF4
やっといけました!!
##参考にさせていただいた記事