地図にプロットしたい.2


中年無能SEのイヤイヤお仕事勉強メモです。
基本的に自分でイチからコード書くこと、英語サイトを調べること極力避けて通ります。

目的

  • 地図上に緯度経度情報をプロットしたい。

参照URL

Pythonによるデータ可視化ライブラリ「folium」がとても使いやすい
https://qiita.com/momota10/items/3b878f01d489a32e40c3
foliumメモ
https://qiita.com/pma1013/items/20ac475d3c0d7a7778ac
Python + folium で Strava の "全"記録を地図で可視化
https://hiboma.hatenadiary.jp/entry/2017/09/13/094056
Folium
https://github.com/python-visualization/folium

地図表示可否を確認

  • 自宅付近の地図がほしいのでとあるデータセットから以下のコードを試し打ち。
  • df = プロットしたい座標情報が詰まったデータフレーム
  • とりあえず全座標平均値で地図を呼び出し
m = folium.Map(
    location=[df['緯度'].mean(), df['経度'].mean()]
    , zoom_start=15)
m

大量座標を一括プロット

以下のどちらかが良いみたい。
folium.Circle(location=locations,radius=0.01)
folium.PolyLine(locations=locations)

Circle(location)location,PolyLine(locations)共に
list of points (latitude, longitude)を入力と書いてあるけど
Circleはうまく描画されない。
PolyLineで進めることにする。

ということで

m = folium.Map(
    location=[df['緯度'].mean(), df['経度'].mean()]
    , zoom_start=20)

locations = df[['緯度','経度']].as_matrix().tolist()

line = folium.PolyLine(locations=locations)
m.add_child(line)

m

とりあえず描画された。描画結果は色々個人情報になるので添付しない。
これから超大量の座標情報を投入していく。

その他

folium.PolyLine(locations=locations)
で、IOPub data rate exceeded.というエラーがでた。

Jupyter notebookでPlotlyを使うときに一設定必要だった話
https://aotamasaki.hatenablog.com/entry/2018/04/08/123146

を見て対処した。