
Photo by
lazy_planet
GeoPandasを使って地図表示
はじめに
Pythonで地理空間データを扱えるGeoPandas というライブラリについてざっくり解説します。ちなみに今回のアウトプットは「csvファイルからデータを読み込み、マップに点を落とす」ところまでです。

環境を整える
まずはPythonを使えるようにするために、Anacondaをダウンロードしましょう。これをインストールするとPythonの実行環境がほとんど整います。(2023.3時点では)無料ですので安心してご利用ください。
Anaconda | The World's Most Popular Data Science Platform
インストールが完了したら、GeoPandas のモジュールをインストールします。その後、Anaconda Powershell Prompt を起動して下記HPにあるコマンドでインストールして下さい。
ちなみにGeoPandasはインストールが上手くいかないケースが結構あるらしいのですが、私のPCではこのHPに記載のある以下のコマンドで成功しました。まずはpipコマンドでgitをインストールして、その後下段のコマンドを続けて投入しました。
pip install git
git clone https://github.com/geopandas/geopandas.git
cd geopandas
pip install .
・GeopandasのGitHubリポジトリを複製し、ローカルに保存
・geopandasディレクトリに移動
・移動後、必要なファイルを取得してGeopandasをインストール
という流れですね。
コマンドを記載する
以下がサンプルコードです。
import geopandas as gpd
from shapely.geometry import Point
import matplotlib.pyplot as plt
# CSVファイルを読み込む
df = gpd.read_file('test.csv')
# 都道府県境界のShapefileの読み込み
japan = gpd.read_file('japan_ver84.shp', encoding='utf-8')
# 座標をPointオブジェクトに変換する
geometry = [Point(xy) for xy in zip(df.fX, df.fY)]
# GeoDataFrameを作成する
gdf = gpd.GeoDataFrame(df, geometry=geometry)
# 地図を作成する
fig, ax = plt.subplots(figsize=(10, 10)) # サイズを10x10に設定
japan.plot(ax=ax, facecolor='gray', edgecolor='gray') # 日本地図をプロット
gdf.plot(ax=ax, color='red', markersize=0.5)
plt.show()
必要なファイルは①緯度経度をもったcsvファイルと②日本地図の境界ポリゴンの2点になります。
①は"test.csv"という名前で、fXという列(経度)、fYという列(緯度)を持ったファイルになります。
②はこちら(全国市区町村界データ | ESRIジャパン (esrij.com))のサイトからダウンロードしました。