GeoPandasを使いPythonで地図を描画
Pythonはデータ処理関係のライブラリが豊富ですが、地図とデータを組み合わせられたら地域データの詳細もより分かりやすくなります。 ここ数年で注目度が高まっているGeoPandasを使って地図データを扱ってみたいと思います。pip install geopandas
他のライブラリにも依存してしますので適宜インストールしてください。
GeoDataFrameに変換するにはshapeファイルやGeoJSONファイルが必要ですが、テスト用のファイルがdatasetsにあります。
現在は3つほどと少ないですが、気軽にGeoDataFrmeを試すにはとても良いデータです。
naturalearth_lowresを使用してみます。
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import geopandas as gpd
- import matplotlib.pyplot as plt
- # ①地図データファイルのあるパスを指定
- path = gpd.datasets.get_path('naturalearth_lowres')
- # ②ファイルからGeoDataFrameオブジェクトを生成
- gdf = gpd.read_file(path)
- print(gdf.head())
- print("")
- print(gdf.shape)
- print("")
- print(gdf.crs)
結果
pop_est continent name iso_a3 gdp_md_est geometry
0 889953.0 Oceania Fiji FJI 5496 MULTIPOLYGON (((180.00000 -16.06713, 180.00000...
1 58005463.0 Africa Tanzania TZA 63177 POLYGON ((33.90371 -0.95000, 34.07262 -1.05982...
2 603253.0 Africa W. Sahara ESH 907 POLYGON ((-8.66559 27.65643, -8.66512 27.58948...
3 37589262.0 North America Canada CAN 1736425 MULTIPOLYGON (((-122.84000 49.00000, -122.9742...
4 328239523.0 North America United States of America USA 21433226 MULTIPOLYGON (((-122.84000 49.00000, -120.0000...
(177, 6)
EPSG:4326
pandasに慣れていれば非常に扱いやすいですね。
headやshapeも同じ使い方です。
Geoデータフレームはデータにgeometryという位置データが追加されているのがpandasデータフレームとの違いです。
CRSとは座標参照系(Coordinate Reference System)のことで、位置情報のルールを表します。
文字コードのようなものです。
- gdf.plot()
- plt.show()
columnは色分け、cmapはカラーマップを指定します。
綺麗になりました。
- gdf.plot(column="continent", cmap="Accent", legend=True, figsize=(16, 8))
- plt.show()
0 件のコメント:
コメントを投稿