さて、今回はgeopandas第二弾です。前回はgeopandasの簡単な使い方を紹介しましたが、今回はもう少し掘り下げてShapeファイルの作成をしてみようと思います。
geopandas第一弾に関しては以下をご参照ください。
www.gis-py.com
本エントリーの後に第三弾も書きました。より詳しくgeopandasについて説明したエントリーです。ぜひ読んでみてください。
www.gis-py.com
Airbnbとは?
Airbnb(エアビーアンドビー)は、宿泊施設・民宿を貸し出す人向けのウェブサイトである。世界192カ国の33,000の都市で80万以上の宿を提供している。そうです。私は興味はあるのですが、一度も利用したことがありません・・・いつか使ってみたいですね!
Airbnb - Wikipedia
データ
以下のサイトからAirbnbのオープンデータをダウンロードすることができます。しかし、日本のデータがない!日本ではあまり人気がないからでしょうか?
Get the Data - Inside Airbnb. Adding data to the debate.
なので、今回はブログ主に馴染み深い西オーストラリアのデータを使用したいと思います。
赤枠が今回使用したデータです。上の赤枠が宿泊施設データを格納したCSV、下の赤枠が地形データを格納したgeojsonですね。
実行環境
Windows7 64bit
ArcGIS Desktop10.4.1
Python2.7.3
サンプルコード
ダウンロードしたCSVとgeojsonからShapeファイルを作成するサンプルです。
# -*- coding: utf-8 -*- import pandas as pd import geopandas from shapely.geometry import Point #csvの読み込み df = pd.read_csv(r"D:\gis-py\geopandas\airbnb\listings.csv") #ポイント作成 geometry = [Point(xy) for xy in zip(df.longitude, df.latitude)] geo_df = geopandas.GeoDataFrame(df, geometry=geometry) #Shape出力 geo_df.to_file(driver='ESRI Shapefile', filename=r"D:\gis-py\geopandas\airbnb\accommodation.shp") #geojsonの読み込み df2 = geopandas.read_file(r"D:\gis-py\geopandas\airbnb\neighbourhoods.geojson") #Shape出力 df2.to_file(driver='ESRI Shapefile', filename=r"D:\gis-py\geopandas\airbnb\western_Australia.shp")
ものすごいあっさり作れてしまいました。本当に便利なライブラリですね。ArcMapを使用して作成したShapeを確認してみます。
おぉーまさしく西オーストラリアですね!そして、宿泊施設は都市部に集中していることがわかりますね。たしかオーストラリアの真ん中らへんは砂漠地帯だったと思うので、宿泊施設がほとんどないことも納得がいきます。
属性はこんな感じです。各宿泊施設のWEBサイトに載っているような情報(値段とか場所とか)が入っているみたいですね。
ちなみに西オーストラリア最大の都市であるパースの宿泊施設が何個あるか空間検索して調べてみました。
なんと710個!やはり都市部は違いますね。
今回の記事ではgeopandasを使用すれば、本当に簡単にShapeを作成することができるということがわかりました。ただ、もっと色々な機能を有しているライブラリですので、応用すればもっと色々なことができるかと思います。これを機にぜひ使ってみてはいかがでしょうか。
以上、今回は「geopandasを使ってShapeファイルを作成しよう! ~Airbnbのデータを可視化してみよう~」でした。