株式会社マイクロベース
代表取締役 仙⽯裕明
1
Pythonではじめるロケーションデータ解析
2016年8⽉29⽇(⽉)
アクサ⽣命保険株式会社
⾃⼰紹介
22
株式会社マイクロベース CEO
博⼠号(環境学)
専⾨:GIS, リモートセンシング, 統計学
趣味:simcity, ロードバイク
仙⽯裕明
@xianshiyuming
最初のきっかけ
Simcityって何?
って⼈はググってね!
http://ja.wikipedia.org/wiki/シムシティ
3
⼤学1年のときにGoogleEarth
に出会う
気がついたらこの道へ…
4
株式会社マイクロベース
代表取締役CEO 仙⽯裕明
取締役COO 富川蓉⼦
あらゆる情報を地図上に集約し、 「すぐに⾒え
る、すぐに分かる」を実現する
都市の将来成⻑ポテンシャルをシミュレーションす
るための 分析プラットフォーム・ミクロな地理空
間情報データを開発
2013年3⽉、代表の仙⽯が、東京⼤学⼤学院博⼠
課程在学中に設⽴。2014年12⽉株式会社化。
Real版SimCity© 2014 Electronic Arts Inc.を⽬指し、あら
ゆる情報を地図上に集約可能なプラットフォームの
開発を始める。
会社概要
5
会社名
役員
ミッショ
ン
事業概要
沿⾰
⽇経ビッグデータに掲載
http://business.nikkeibp.co.jp/atclbdt/15/258673/092800035/
今⽇のお話
スマートフォンやセンサーデバイスの普及に伴い、
「ロケーション・インテリジェンス」と⾔われるよう
に、位置情報データの解析が盛んになってきています。
本発表では、地図オタクが位置情報データを扱う上で
ぶつかる特有の問題やPythonライブラリを活⽤した対
処⽅法を紹介します。位置情報データにまつわる解析
事例も交えつつ、地図の世界に誘います。
6
本⽇のサマリー
ロケーションデータ解析は
めっちゃめんどい。
7
AGENDA
88
• ロケーションデータとは
• めっちゃ助かるPythonライブラリ
• ロケーションデータ解析事例
• 今後どうなっていく?
AGENDA
99
• ロケーションデータとは
• めっちゃ助かるPythonライブラリ
• ロケーションデータ解析事例
• 今後どうなっていく?
ロケーションデータとは
位置情報をもつデータ
10
ロケーションデータの種類
ロケーションデータは⼤きく2種類あります.
• ラスター(raster)形式 例)JPEG, PNG, TIFF
• ベクター(vector)形式 例)シェープファイル(.shp)
例えば「川」と「橋」を表現すると…
11
ベクター形式
始点と終点と
それをつなぐ
線として表現
される
ラスター形式
⾊の付いたド
ット(点)の
集まりで表現
される
NAME AREA PERIMETER
0 A棟 18352 644
1 B棟 22496 756
2 中庭 22050 602
3 ⽣協購買 7548 352
4 ポスト NA NA
5 道路 NA NA
中庭
A棟
⽣協購買
B棟
・ポスト
ポイントデータ(点) 例)住所情報, スマートフォンのGPSデータ,店舗データ
ラインデータ(線) 例)道路データ,鉄道データ,河川データ
ポリゴンデータ(⾯) 例)市区町村の形状データ,建物データ
【3種類の地物(フィーチャ)】
12
ロケーションデータの構造
何が⼤変か?
1. データの扱いが特殊
2. 加⼯が⾯倒
3. データがなかなか⼿に⼊らない、⾼い
13
何が⼤変か?
1. データの扱いが特殊
2. 加⼯が⾯倒
3. データがなかなか⼿に⼊らない、⾼い
14
地球は丸い!!
1515
投影法とは?
• ⽅位図法
ある基準点からの⽅位が正しい図法。その⼀つである正距⽅位図法
では中⼼からの距離と⽅位が正しく記され、地球全体が真円で表現
される。
• 円筒図法
地球に巻き付けた円筒に地物を投影して作られる図法。すべての緯
線は平⾏な直線、経線は等間隔かつ平⾏な直線として表現される。
⽇本で⽤いられている平⾯直⾓座標系は、円筒図法の⼀つであるメ
ルカルトル図法に基づいている。メルカルトル図法は多くのGISソフ
トにおいて標準の図法として⽤いられている。
3次元の物体を2次元で表現することを「投影法」という。地球は球体に近い形状を
とるために投影法によって必ず歪みが⽣じるため、⽬的に応じて(⾯積・⾓度・距離
計算など)投影法を使い分ける必要がある。
よく使われる投影法には以下のような図法がある。
16
座標系(測地系)とは?
地球上のあらゆる位置を数字で表現したものを座標(緯度経度など)といいます.
原点や座標軸など,座標を定義する体系のことを座標系 (Coordinate system)と呼
びます.
座標の値(例えば緯度経度)が同じでも座標系が異なると,GIS上では違う場所に表
⽰されます.データを扱う前にソースがどの座標系でつくられているかの確認が必
須!
-31788.8930935
-6433.4151654
-31785.5178796
-6432.6469309
まったく同じ場所を指してい
るのにXYの値が異なる
17
Tokyo(ESPG:4301)
WGS84(ESPG:4326)
データを重ねるとずれるorz…
18
GoogleMapsなどでは緯度経度が
よく使われるが、
距離や⾯積を計算したいときは、
⼀度、メートル法に変換しなくて
はいけない。
計算のたびに座標変換が必要
引⽤: http://www.cvl.gunma-ct.ac.jp/~nmiyazato/Start_Page.htm
19
※詳細は国⼟地理院のウェブサイト(http://www.gsi.go.jp/LAW/G2000-g2000.htm)をご覧ください!
引⽤: 国⼟地理院
http://vldb.gsi.go.jp/sokuchi/datum/tokyodatum.html
• 世界測地系1984 WGS84
⽶国が構築・維持している世界測地系で,GPSによるナビゲ-ションの位
置表⽰の基準として⽤いられています.原点は地球の中⼼.
• ⽇本測地系2000 JGD2000
2002年の改正測量法にもとづき,準拠楕円体をWGS84楕円体とほぼ同⼀
のGRS80楕円体にして定められた座標系.原点はWGS84と同じく地球の
中⼼.世界測地系,新⽇本測地系,⽇本測地系2000など,さまざまな名前
で呼ばれています.
• 旧⽇本測地系 Tokyo
明治新政府が全国に整備した三⾓点の測量(三⾓測量)によって定められ
た座標系.準拠楕円体はBessel楕円体,原点は東京のロシア⼤使館の敷地
裏⼿(旧東京天⽂台)にあります.JGD2000と同様に,⽇本測地系,旧⽇
本測地系,旧測地系など,複数の呼び名があります.
今⽇,⽇本でよく使われる地理座標系には以下の3種類があります.
座標系の種類
20
何が⼤変か?
1. データの扱いが特殊
2. 加⼯が⾯倒
3. データがなかなか⼿に⼊らない、⾼い
21
• 会員情報の住所
• ニュース記事の
地理的キーワー
ド etc
データ解析するまでのプロセスが⻑い
GO!
緯度経度や
メートル等の
座標になって
いる!
22
住所ジオコーディングとは?
GIS上取り込みたいデータがもつ住所情報をもとにして,
緯度経度などの定量的な位置情報(座標値)を付与することを
住所ジオコーディング(address geocoding)といいます.
施設名 住所
新宿アルタ 東京都新宿区新宿3丁目24-3
札幌市時計台 北海道札幌市中央区 北1条西2丁目1-1
東大寺 奈良県奈良市雑司町406-1
首里城 沖縄県那覇市首里当蔵町3丁目1
施設名 住所 経度 経度
新宿アルタ 東京都新宿区新宿3丁目24-3 139.7012913 35.6926208
札幌市時計台 北海道札幌市中央区 北1条西2丁目1-1 141.3540735 43.0631485
東大寺 奈良県奈良市雑司町406-1 135.8392526 34.6869178
首里城 沖縄県那覇市首里当蔵町3丁目1 127.7179785 26.2172938
XY情報をもとに
GIS上にプロット
X
Y
23
何が⼤変か?
1. データの扱いが特殊
2. 加⼯が⾯倒
3. データがなかなか⼿に⼊らない、⾼い
25
⾃社で取得できるデータ
ex) ⾃社アプリの投稿履歴情報等
=>分析できるまでが⻑い。
外部から取得できるデータ
ex) 地図データ
=>著作権がついており、⾼価であることが多い。
データ取得パターン
http://downloads.cloudmade.com/ http://www.geofabrik.de/data/download.html
GeofabrikCloudmade
Wikipediaの地図版として知られるOSMデータは商⽤利⽤可。
⼀度に⼤量のOSMデータをダウンロードする場合は、別途ダウンロード
サイトから国/地域単位においてダウンロードすることができます。
オープンデータとして公開されている地図データ。
AGENDA
2727
• ロケーションデータとは
• めっちゃ助かるPythonライブラリ
• ロケーションデータ解析事例
• 今後どうなっていく?
GeoPandas
おなじみPandasのGeo版
28
Pyproj
⼿軽で簡単
29
FOSS4G
30
地理情報系のサービスの多くがPythonでつくられている!
31
サービスを⽀えるオープンソース
32
ロケーションデータの主な解析⼿法
33
GUIで簡単にデータを可視化・分析したいとき
34
QGIS
AGENDA
3535
• ロケーションデータとは
• めっちゃ助かるPythonライブラリ
• ロケーションデータ解析事例
• 今後どうなっていく?
点配置パターンなど空間に起こる事象を分
析するための統計的方法である。生態学(
ecology)、森林学(forestry)、天文学
、地理学(geography)等で使われる。
空間統計学
36
空間補間
クリギング(Kriging)
南アフリカの鉱山技術者Krigeが考案した方法。複数個のボーリングのデ
ータ(サンプル)から採石場全体の鉱山の総含有量を推定する。
渋谷区の路線価の空間補間
距離が近い点のデータは大
きな類似性を持つという空
間相関を,変数間の共分散
を距離の関数として表現
井上亮, (2008)共クリギングによる土
地取引価格の時空間内挿に関する研究
内挿に関する研究
37
空間補間アルゴリズム
カーネル密度推定 その他⽬的に応じて
・クリギング補間
・スプライン補間
・空間的⾃⼰相関を考慮したモデル など
“近接関係にある調査区間で、同種個体数が似る”
(同種個体数に空間的な⾃⼰相関がある)
38
空間的⾃⼰相関
モランI統計量 Moran's I ( -1.0 < I < 1.0)
空間的な連続性を定義するために空間的位置関係の
隣接性から地区間の連結性⾏列w(空間重み付け⾏
列)を作成し、隣接地区間で属性の共変動関係を定
義
Xは属性値
Anselin (1988), LeSage and Pace (2009)
39
空間的⾃⼰相関
install.packages("spdep")
library(spdep)
data(oldcol)
crime <- COL.OLD$CRIME
plot(COL.nb, coords = cbind(COL.OLD$X, COL.OLD$Y))
col.W <- nb2listw(COL.nb, style = "W")
str(moran(crime, col.W, length(COL.nb), Szero(col.W)))
moran(crime, col.W, length(COL.nb), Szero(col.W))
moran.test(crime, nb2listw(COL.nb, style = "W"))
Rの例(オハイオ州)
http://web.sfc.keio.ac.jp/~maunz/wiki/index.php?asakura_sp_chap05
より詳しくは、慶應義塾⼤学古⾕准教授のページが参考になります
40
路線価に適⽤してみる
東京都主税局から公開されてい
る路線価マップ(PDF)から画像
認識により路線価データを⽣成
=> 残りの地点は空間回帰モデルで推定!!
しかし、認識ミスや取得した地
点情報が位置の誤差により道路
データに落とせない場合がある
連結性⾏列W(空間重み付け⾏列)
41
gdal_grid -zfield variable -of GTiff input_path output_path
(おまけ)単純なヒートマップをつくりたいだけなら
GDAL(Geospatial Data Abstraction Library)を⼊れるとら
っくらく〜!!
GDALはラスターデータのメタデータの検索(gdalinfo)や
、データフォーマットの変換(gdal_gransform, gdalwarp
)などが可能なPythonライブラリ
42
東京都主税局より http://www.tax.metro.tokyo.jp/map/H27/shibuya/041.pdf
渋谷駅北部
43
実際に画像からベクター化できた地点
※道路データにはOSMを使っています
44
空間回帰モデルにより推定
45
最短経路探索
ダイクストラ法 (Dijkstra's Algorithm)
擬似的に推定した⾃宅と勤務地を出発地
点(OD)とし、道路ネットワークデー
タ(OSM)にダイクストラ法を適⽤し
、経路を推定
その際に移動⼿段に応じた移動速度およ
び出発時間を設け、滞在推定
46
通⾏量推計
47
48
交通量推計
49
50推計歩⾏者通⾏量(⼈)
51
パルコ周辺の
推計歩⾏者通⾏量
約3万⼈
推計歩⾏者通⾏量(⼈)
疑似⼈流データ
⾸都圏版につづき、
関⻄・中京版が新た
に追加
株式会社ナイトレイ
のホームページにて
公開
52
ダウンスケーリング
Hessami, M., Quarda, T.B.M.J., Gachon, P., St-Hailaire, A., Selva, F. and Bobee, B., “Evaluation of statistical
downscaling method over several regions of eastern Canada”, 57th Canadian water resources association annual
congress, 2004.
気象分野において、将来の気候変動をモデル化した
GCMs(Global Climate Models)によって作成された
データを精細化
ローカルに観測された気象デ
ータからモデルを作成し、
GCMsに適⽤
http://epscorspo.nevada.edu/nsf/climate1/climate10.htmlhttps://www.ral.ucar.edu/projects/conus-downscaling
53
擬似的に居住属性を生成
⼈⼝を対象としたダウンスケーリング
町丁目単位
500mメッシュ単位
住居と世帯の関係を示す延床面積別
一般世帯数や世帯の家族類型別世帯数
Gallego J., Downscaling population density in the European Union with a land cover map and a point
survey, JRC-Ispra.
ローカルスケールで取得可能
なデータ
54
第8表 住宅の建て方(7区分)別住宅に住む主世帯数,主世帯人員及び1世帯当たり人員 −町丁・字等
平成22年国勢調査 小地域集計 (総務省統計局)
1)住居選定および居住可能世帯数の推定
町丁目単位において、建物種別世帯数が取得可能。町丁目単位において統計表と整合するように、住
居となる建物・世帯数を特定。共同住宅の階数・部屋数は建物面積・用途地域をもとにランダムフォ
レストで推定後、国勢調査の世帯数に一致するように部分調整
55
平成22年国勢調査人口等基本集計(総務省統計局)
第29表 世帯の家族類型(16区分),住居の種類・住宅の所有の関係(3区分),延べ面積
(14区分)別一般世帯数及び一般世帯人員(3世代世帯−特掲) − 人口20万以上の市
2)居住者人数および家族類型の推定
町丁目単位において部屋面積別世帯数が取得可能。さらに市区町村単位において、部屋面積別家族類
型が取得可能。先と同様、統計表と整合するように、住居となる建物・世帯数を特定
56
http://microgeodata.com/shop/micropupulationcensus/世帯単位のライフスタイル属性を推定
擬似的に推定された65歳以上のみで構成される世帯分布
57
http://microgeodata.com/shop/micromeshcensus/50m単位のメッシュ統計を全国で作成
建物按分によって推計された50m単位の人口分布
58
事例(将来⼈⼝)
オープンデータのみを活⽤し、2040年までの各年将来⼈⼝を推定しています。
出⽣・死別や年齢移動分布を加味し、より精度の⾼い予測を⽬指しています。
59
主要お取引先:コンサルティングファーム、⾃治体、ゼネコン
ご活⽤事例:
・公共建築建設時の参考情報。「近い将来買い物難⺠が発⽣する地区はどこか」「この道は30年後も通る⼈がいるのか」等。
・⼟地所有者向け⽤地活⽤への参考情報。「10年後の⼦どもの数はどの程度減ると考えられるか」等。
事例(50mメッシュ統計データ)
国勢調査結果を国勢調査の300を超える統計指標(⼈⼝や世帯数等)を、
ミクロなメッシュに再集計しています。
60
主要お取引先:コンサルティングファーム、⾃治体
ご活⽤事例:
・公益事業検討のインプットとなる、買い物難⺠や独居⽼⼈世帯が多いエリアの特定。
・⼟地所有者向け⽤地活⽤への参考情報。「10年後の⼦どもの数はどの程度減ると考えられるか」等。
従来のメッシュ
実際はほとんどが⼭間部
だが、
右端が住宅地のため、
按分されて平均的な⼈⼝
と判断されている
50mメッシュ
居住区域だけを
抽出できる
事例(築年数)
航空写真を元に建造物の築年数を推定します。
個⼈所有の⼾建てや、台帳管理されていない橋や道路等に有効です。
61
主要お取引先:⾃治体、ゼネコン
ご活⽤事例:
・各橋梁を各年代の航空写真から⾃動検出し、その変化を検出。変化した年を建設年度とし、修繕計画を⽴案。
・昭和57年の建築基準法導⼊以前の建物を推定し、被災時の建物倒壊リスクが⾼いエリアを推定。
1977年 1983年
航空写真は年代・地域によって解像度や⾊にバラツキがありますが、
補正する機械学習プログラムを⽤いて実施します。
位置情報から形作られる
確率的に作成されたペルソナ
個⼈スケールでは環境・ライフスタイルによって影響を受ける
購買⾏動や習慣を想定する際に便利62
63
https://www.spaada.co/
マッシュアップアワード10において
「オープンデータ賞」を受賞
2015年秋に、WEB上で簡単に統計情報閲覧できるサービス「Spaada」をリリースしました。
住所と任意の商圏を⼊⼒することで、簡単に⼈⼝ピラミッドや世帯類型を閲覧できます。
64
住所と半径を⼊⼒すると、その商圏内の⼈⼝情報がすぐに表⽰されます。
出店計画や商圏分析の際にすぐにご利⽤いただけます。
住所を⼊⼒ 半径を設定
100m以上の任意の半径
を指定できます。
⼈⼝動態情報を表⽰
世帯数
利⽤交通⼿段
⼈⼝ピラミッド
&将来⼈⼝ピラミッド
AGENDA
6565
• ロケーションデータとは
• めっちゃ助かるPythonライブラリ
• ロケーションデータ解析事例
• 今後どうなっていく?
https://www.ted.com/talks/will_marshall_teeny_tiny_satellites_that_photograph_the_entire_planet_every_day?language=ja
66
http://www.gizmodo.jp/2014/06/50cm31cm.html
67
まとめ
ロケーションデータは、
• データクレンジングが大変。オープンソースのライブラリは充
実しているが、やや専門的知識が伴う。
• 不完全なケースが多い。学問的には 補間 を行うことで、対応
してきた。完成度の高いデータを使えるようにするために 補
間 があると便利。
• スマホやセンサデバイスのように、情報取得源が劇的に増加し
ているものの、まだまだ分析フレームワークが確立していない
フロンティア。
• 大変だけど、がんばりましょう!!(笑)
68

Pythonではじめるロケーションデータ解析