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 件のコメント:
コメントを投稿