Pythonで世界地図
https://qiita.com/ty21ky/items/c7a93b83cbbfa8a82a17
Pythonで世界地図-2
https://qiita.com/ty21ky/items/c9e29a5361e35ca7c4f2
の続き
日本地図に県境を入れる
basemapやcartopyで地図上でplot
http://www.mwsoft.jp/programming/numpy/plot_map.html
上記のサイトに日本地図に県境を表示する方法が書かれています。詳しくは上記のサイトを参照してください。
インストール
$ git clone https://github.com/OSGeo/proj.4.git
$ cd proj.4
$ git checkout -b 4.9.0 tags/4.9.0
$ ./configure
$ make
$ sudo make install
$ sudo apt-get install libgeos-dev
$ git clone https://github.com/SciTools/cartopy.git
$ cd cartopy
$ git tag
$ git checkout -b v0.14.2 tags/v0.14.2
ここまでは順調に進んだが、次の
$ sudo pip install .
でエラー。メッセージを翻訳するとsudoに-Hを入れろと書いてあるので入れるとOKだった。
$ sudo -H pip install .
$ python -c "import cartopy"
ここで、またエラー。
libproj.so.0がないらしい。
$ ls -l /usr/local/lib/libp*
-rw-r--r-- 1 root root 3737918 5月 2 14:21 /usr/local/lib/libproj.a
-rwxr-xr-x 1 root root 953 5月 2 14:21 /usr/local/lib/libproj.la*
lrwxrwxrwx 1 root root 16 5月 2 14:21 /usr/local/lib/libproj.so -> libproj.so.0.8.0*
lrwxrwxrwx 1 root root 16 5月 2 14:21 /usr/local/lib/libproj.so.0 -> libproj.so.0.8.0*
-rwxr-xr-x 1 root root 1775816 5月 2 14:21 /usr/local/lib/libproj.so.0.8.0*
ここにシンボリックリンクがあるが?
ネットで検索すると、海外のサイトにバグらしいと書いてあった。
Debianでは、なおっているがUbuntuはまだらしい。
ネットに書いてることをいろいろやっても駄目。
しかし、
$ export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
これで、import出来るようになりました。
上記のサイトを参考に
国土数値情報 ダウンロードサービス
http://nlftp.mlit.go.jp/ksj/
から、データをダウンロード
2. 政策区域 ー> 行政区域 ー> ダウンロードするデータの選択
でデータをダウンロードしました。
ダウンロードする時間帯が悪いのか、それほどファイルサイズが大きくないのに物凄く時間がかかる。(数十分)マイクロソフト以外でこれほど時間がかかったのは初めてだ。
上記のサイトのサンプルプログラムを実行
# !/usr/bin/python
# coding: UTF-8
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import matplotlib.pyplot as plt
# 落としてきた行政区域のshpファイルを指定
fname = '/home/ty/python/map/japan/N03-170101_GML/N03-17_170101.shp'
shapes = list(shpreader.Reader(fname).geometries())
# 東京あたりを描画
ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_geometries(shapes, ccrs.PlateCarree(), edgecolor='black', facecolor='gray', alpha=0.3)
ax.set_extent([139, 141, 35, 36], ccrs.PlateCarree())
plt.show()
最初は気が付かなかったが、このプログラムはBasemapとは、全然関係なかったぁぁ・・・
しかし、さすが国交省が作った地図なので、Basemapの"f"よりもさらに精度は良いですね。
県境だけにするか、県境の色を変更したいがshpファイルを読むことが出来ないので、現在調査中。