GIS奮闘記

元GISエンジニアの技術紹介ブログ。主にPythonを使用。

スポンサーリンク

geopandasを使ってみよう!

さて、今回はgeopandasですね!以前から気になっていたライブラリなので、これを機に使ってみようと思います。

geopandasとは

geopandasはpandasの拡張で、地理データを含むデータをpandasのように表形式で扱うことができるpythonのライブラリです。こんな便利なものを作っていただけるとはなんともありがたい話ですね。

ちなみにこちらのエントリーでより詳しくgeopandasについて紹介していますので、興味のある方はぜひ読んでみてください。
www.gis-py.com

インストール

公式サイトによるとhttp://geopandas.org/install.html、GeoPandasをインストールする前に以下ライブラリをインストールする必要があるそうです。その後、pip install geopandas ですね!

  • numpy
  • pandas (version 0.15.2 or later)
  • shapely
  • fiona
  • six
  • pyproj
  • descartes

あとは必須ではないですが、オプションとして以下も入れておくといいと思います。

  • matplotlib
  • geopy

もしpipでエラーが出るようなことがありましたらこのサイトhttps://www.lfd.uci.edu/~gohlke/pythonlibs/からWheelをダウンロードしてインストールしてみてください。

実行環境

Windows7 64bit
ArcGIS10.4.1
Python2.7.3

データ

geopandasをインストールすると自動的にサンプルデータもついてくるみたいです。今回はそれを使用してみます。データの内容は以下です。

  1. 世界地図
  2. 世界の都市

また、今回はjupyterを使用してデータを展開してみようと思います。

■データの取得

import geopandas

world = geopandas.datasets.get_path('naturalearth_lowres')      #世界地図
cities = geopandas.datasets.get_path('naturalearth_cities')         #都市

これだけでOKです。簡単ですね。

■データの読み込み

df_world = geopandas.read_file(world)
df_cities = geopandas.read_file(cities)

こちらも簡単。取得したデータをデータフレーム化するだけですね。

片方のデータフレームの中身を確認します。

df_world.head()

f:id:sanvarie:20181009105523p:plain


ちゃんとデータが入っていることが確認できました。


■データのプロット
公式ドキュメントによるとdataflameに対して.plot()を使用することで、matplotlibが走るようです。

base = df_world.plot(color='white', edgecolor='black')
df_cities.plot(ax=base, marker='o', color='red', markersize=5);

f:id:sanvarie:20181009111006p:plain


おぉー素晴らしい。サンプルデータが描画されました。

サンプルコード

上記をまとめたものを記載します。

# -*- coding: utf-8 -*-
import geopandas

world = geopandas.datasets.get_path('naturalearth_lowres')      #世界地図
cities = geopandas.datasets.get_path('naturalearth_cities')         #都市

df_world = geopandas.read_file(world)
df_cities = geopandas.read_file(cities)

base = df_world.plot(color='white', edgecolor='black')
df_cities.plot(ax=base, marker='o', color='red', markersize=5);


このgeopandasですが、かなり面白いライブラリですね。今回は基礎的なことしか触れなかったのですが、geopandasでShapeファイルを作成するエントリーもありますので、よかったら読んでみてください。
www.gis-py.com


年々GISデータの重要性が高まる中、こういった便利なライブラリがもっと登場してくれるといいですね。

以上、「geopandasを使ってみよう!」でした。