1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Foliumを使って国土数値情報を地図上に表示する

Last updated at Posted at 2022-05-08

はじめに

国土数値情報などから得られるShapeファイルをJupyter notebookで加工する必要があった。
期待通りの結果になっているかを地図上で確認するために、加工結果を再度Shapeファイルにして、QGISでに読み込ませて表示する、ということをやっていたが面倒だった。
Foliumというライブラリを使えば、Jupyter notebook上で地図表示が可能だということを知ったので本記事を書いた。

国土数値情報のダウンロード

国土数値情報から適当なデータをダウンロードする。
ここではポイントデータとして東京都の避難施設とする。

ライブラリのインストール

pip install shapely
pip install folium

ポイントデータの読み込みと表示

ポイントデータのShapeファイルを読み込む関数を定義する。

read_shape_point.py
import shapefile
import pandas as pd
def read_shape_point(path):
    src = shapefile.Reader(path, encoding='cp932') 
    shps = src.shapes()
    recs = src.records()
    result = {}
    for i, (shp, rec) in enumerate(zip(shps, recs)):
        result[i] = rec.as_dict()
        result[i]['lon'] = shp.points[0][0]
        result[i]['lat'] = shp.points[0][1]
    return pd.DataFrame(result).T

shpファイルを読み込む。
import glob
path = 'data\P20-12_13_GML'
shp_paths = glob.glob(path + '\?????????.shp')
hinan = read_shape_point(shp_paths[0])

読み込んだデータを表示。
hinan

先頭2行だけを表示した。 施設名称の列名が[P20_002]、住所が[P20_003 ]となっている。
P20_001 P20_002 P20_003 P20_004 P20_005 P20_006 P20_007 P20_008 P20_009 P20_010 P20_011 P20_012 レベル 備考 緯度 経度 NO lon lat
0 13101 いきいきプラザ一番町 東京都千代田区一番町12-2 指定避難所、二次避難所 -1 -1 0 0 0 0 0 1 1 35.6869 139.74 1 139.74 35.6869
2 13101 ちよだパークサイドプラザ 東京都千代田区神田和泉町1 指定避難所、地区救援センター -1 -1 0 0 0 0 0 1 3 35.6993 139.779 3 139.779 35.6993

緯度経度を指定し地図に読み込ませていく。 重たくなるので先頭500個だけ。
folium_map = folium.Map(location=[hinan.loc[0]['lat'], hinan.loc[0]['lon']], zoom_start=10)
for i in range(500):
    folium.Marker(
        location=[hinan.loc[i]['lat'], hinan.loc[i]['lon']],
        popup = hinan.loc[i]['P20_002'] + "\n" + hinan.loc[i]['P20_003']
    ).add_to(folium_map)
folium_map

地図を表示する。
folium_map

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?