見出し画像

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))のサイトからダウンロードしました。


この記事が気に入ったらサポートをしてみませんか?