foss4 gマイクロジオデータ解析入門

118
マイクロジオデータ解析入門 東京大学大学院 新領域創成科学研究科 マイクロジオデータ研究会 副運営委員長 仙石裕明( ~ QGISの基本操作からネットワーク探索アルゴリズムを ~ 活用した詳細な立地評価

Upload: hiroaki-sengoku

Post on 04-Jul-2015

4.180 views

Category:

Documents


8 download

DESCRIPTION

Data and source code for hands-on will be uploaded to a following site. http://geodata.csis.u-tokyo.ac.jp/wp/?page_id=642

TRANSCRIPT

Page 1: Foss4 gマイクロジオデータ解析入門

マイクロジオデータ解析入門

東京大学大学院 新領域創成科学研究科

マイクロジオデータ研究会 副運営委員長

仙石裕明( )

~ QGISの基本操作からネットワーク探索アルゴリズムを ~ 活用した詳細な立地評価

Page 2: Foss4 gマイクロジオデータ解析入門

本ハンズオンの概要と目的

本ハンズオンはマイクロジオデータの普及と利活用を

促進するために演習形式で開催しているハンズオンです。

時間的・空間的に詳細な空間分析を行いたい方を対象とした実習を行います。実習では東京大学空間情報科学センター(CSIS)が提供している住宅・施設等の建物単位のデー

タおよび経路探索アルゴリズムを活用した立地評価を行います。他にも動線解析プラットフォームWEB-API(経路推定)

を活用した実例に取り組みながらマイクロジオデータを解析する基礎を扱います。なお、QuantumGISをベースに実習を行う予定です。

2

Page 3: Foss4 gマイクロジオデータ解析入門

ハンズオンで使用するデータ

ゼンリン住宅地図 TOWNⅡ (株)ゼンリン http://www.zenrin.co.jp/product/gis/zmap/zmaptown.html

電話帳データベース テレPack! (株)ゼンリン http://www.zenrin.co.jp/product/gis/teldata/telpt.html

デジタル道路地図 拡張版全国道路地図データベース (株)住友電工システムソリューション http://www.seiss.co.jp/products/mapdb/map_products1.html

上記データは東京大学空間情報科学センター共同研究システム JORASよりデータの利用申請・ダウンロードが可能です。(本スライド最後にて後述)

本ハンズオンでは下記のような非集計のベクターデータの総称を

マイクロジオデータ(MGD)と呼んでいます。

3

Page 4: Foss4 gマイクロジオデータ解析入門

本ハンズオンの進め方について

本ハンズオンは東京大学空間情報科学センター(CSIS)の協力を得て、貸出パソコン上で演習を行います。

ハンズオンで使用する本スライドや一部データ・ソースコードについては下記にて公開いたします。本ハンズオンで利用するQuantumGISのインストールガイド・基本操作に関する資料も公開しております。

http://geodata.csis.u-tokyo.ac.jp/wp/?page_id=642

4

Page 5: Foss4 gマイクロジオデータ解析入門

ハンズオンで使用するGIS

• 本実習ではフリーオープンソースGISで

あるQuantumGIS(ver1.8.0)を使用します。

• FOSS4G(Free and Open Source Software for Geospatial)と呼ばれるソフトウェアの一つでソースコードが開示されていて無料で利用でき、自由に改良,再配布ができます。

• 他のオープンソースソフト(GRASS,R,PostGIS,Open Layers,Mapserver)との連携ができます。

QuantumGIS (以下、QGIS)

5

Page 6: Foss4 gマイクロジオデータ解析入門

6

人口:189591人(2005年) 京阪神大都市圏の衛星都市 世界遺産ともなっている平等院鳳凰堂、宇治上神社や宇治茶などで知られ、歴史的にも有名な市である。

出典 Wikipedia: 宇治市ページ

ハンズオンの対象地域: 京都府宇治市

立命館大学 歴史都市防災研究センター 青木和人氏

Page 7: Foss4 gマイクロジオデータ解析入門

本日の流れ

国勢調査のデータを用いた立地評価 p32

QGISの基本的操作のおさらい p9

MGDの概要と種類 p39

3 MDGを活用した立地評価 p56

ネットワーク探索アルゴリズムによる

立地評価 p80

その他のハンドリング手法について p102

Page 8: Foss4 gマイクロジオデータ解析入門

習うより慣れろ!! ということで早速はじめていきましょう。

Page 9: Foss4 gマイクロジオデータ解析入門

1.1 QGISの起動

9

Quantum GISが起動する

アイコンを ダブルクリック

スタート > すべてのプログラム > OSGeo4W > Quantum GIS DESKTOP(1.8.0) より起動。もしくはデスクトップ上のアイコンをダブルクリック。

Page 10: Foss4 gマイクロジオデータ解析入門

1.1 「QuantumGIS」の起動

ファイル-新規プロジェクトを クリックする。

10

※QGISは大量のデータを載せると、強制終了することは少なくありません。 「プロジェクトを保存」から細目に作業途中で保存しましょう。

Page 11: Foss4 gマイクロジオデータ解析入門

1.2 座標参照系とは

本実習ではQ-GISで世界測地系・平面直角座標系

(第6系) に変換して使用します。

元々の住宅地図・電話帳は、日本測地系・緯度経度座標系のデータです。

出典 国土地理院ホームページ http://www.gsi.go.jp/GIS/stdind/nyumon_0930.html 11

Page 12: Foss4 gマイクロジオデータ解析入門

1.2 座標参照系の設定

設定>プロジェクトのプロパティ>オンザフライCRS変換を有効にするにチェック 異なる座標系を持つGISデータ情報を見た目上、重ねて表示してくれるようになる。

Page 13: Foss4 gマイクロジオデータ解析入門

1.2 座標参照系の設定

Search欄に2448と入れてFind

座標参照系

EPSG: 2448

世界測地系・ 平面直角座標系

(第6系) を選択

Page 14: Foss4 gマイクロジオデータ解析入門

http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do 平成20年4月1日開設 政府統計のポータルサイト

1.3 データのダウンロードと表示

地図で見る統計 (統計GIS)から、 地域分析に 利用できる 小地域統計 (町丁目)を 入手できる

14

Page 15: Foss4 gマイクロジオデータ解析入門

1.3 データのダウンロードと表示

宇治市の町丁目境界の追加

レイヤ(L)→ベクタレイヤの追加 をクリック

15

Page 16: Foss4 gマイクロジオデータ解析入門

1.3 データのダウンロードと表示

“C:¥MGDdata¥estat” フォルダのh17ka26204.shpを追加

16

Page 17: Foss4 gマイクロジオデータ解析入門

宇治市の町丁目境界が表示される

1.3 データのダウンロードと表示

17

Page 18: Foss4 gマイクロジオデータ解析入門

レイヤプロパティ-スタイルで塗りつぶし色を変更する

ダブルクリック

1.3 データのダウンロードと表示

18

Page 19: Foss4 gマイクロジオデータ解析入門

町丁目の人口を表示

ラベルを表示

をチェック

町丁字ラベルが

含まれている

フィールド

“MOJI”

フォント6

でOK

1.3 データのダウンロードと表示

Page 20: Foss4 gマイクロジオデータ解析入門

町丁目名が表示される

1.3 データのダウンロードと表示

20

Page 21: Foss4 gマイクロジオデータ解析入門

1.4 QGISのカスタマイズ

地図ナビゲーションツールバーを上の段にドラッグ&ドロップ

ツールバーのお手てマークの

左側にマウスカーソルをもってくると十字矢印マークになるので、

十字矢印マークを

ツールバーの上の段に

ドラッグ&ドロップする

Page 22: Foss4 gマイクロジオデータ解析入門

地図ナビゲーションツールバー 地図移動、拡大、縮小など表示を変えてみましょう。 直前の表示領域にズームで元に戻れます。

地図移動 拡大 縮小 全域表示 レイヤの領域に ズーム

直前の表示領域に ズーム

1.4 QGISのカスタマイズ

22

Page 23: Foss4 gマイクロジオデータ解析入門

プラグイン>Pythonプラグインから背景地図を呼び出してみましょう。

OpenLayers Plugin

をインストール

1.5 QGISプラグインの活用

23

Page 24: Foss4 gマイクロジオデータ解析入門

プラグイン→OpenLayers Pluginから選択

Add OpenStreetMap

Layersを選択

1.5 QGISプラグインの活用

Page 25: Foss4 gマイクロジオデータ解析入門

OpenStreetMap が背景地図として表示される

1.5 QGISプラグインの活用

Page 26: Foss4 gマイクロジオデータ解析入門

1.6 ベクターデータの作成

対象となる施設ポイントの作成

レイヤ(L)→追加→新しいシェープファイルレイヤ

26

Page 27: Foss4 gマイクロジオデータ解析入門

CRSの指定をクリック

27

1.6 ベクターデータの作成

Page 28: Foss4 gマイクロジオデータ解析入門

座標参照系

EPSG: 2448

世界測地系・ 平面直角座標系

(第6系) を選択

28

1.6 ベクターデータの作成

Page 29: Foss4 gマイクロジオデータ解析入門

ファイル名を入力

ここでは、

施設01.shpと入力

29

1.6 ベクターデータの作成

Page 30: Foss4 gマイクロジオデータ解析入門

編集モード 点を入力

施設01を選択し編集モードボタンを押して、地図上に点をクリック。IDに1を入力

30

1.6 ベクターデータの作成

Page 31: Foss4 gマイクロジオデータ解析入門

保存

立地を検討したい施設データが保存する

31

1.6 ベクターデータの作成

Page 32: Foss4 gマイクロジオデータ解析入門

住宅・店舗・施設等の立地評価を行う際には、

人口分布が評価の際に重要な基準となります。

立地評価には施設からバッファを描き、一定の範囲内の居住

者の合計を評価の基準とします。

32

2 国勢調査のデータを用いた立地評価

Page 33: Foss4 gマイクロジオデータ解析入門

ベクタ → 空間演算ツール → バッファ をクリック

33

2.1 小地域統計による立地評価(施設の追加)

Page 34: Foss4 gマイクロジオデータ解析入門

施設01から、1000mのバッファ作成

日本語通らないかも。。

34

2.1 小地域統計による立地評価(施設の追加)

Page 35: Foss4 gマイクロジオデータ解析入門

施設01.shpから、1000mのバッファ作成

バッファ内の人口から、対象者人口が計算できる。

35

2.1 小地域統計による立地評価(施設の追加)

Page 36: Foss4 gマイクロジオデータ解析入門

36

「ラベルを表示」 をチェック

町丁字ラベルが含まれているフィールド“JINKO”

フォント6

でOK

2.1 小地域統計による立地評価(施設の追加)

Page 37: Foss4 gマイクロジオデータ解析入門

でも、1851人もいる

町丁字の人口は

カウントされない。

37

2.2 小地域統計による立地評価(空間集計問題)

※この図では分かりやすくするためにポイントデータで表しています

Page 38: Foss4 gマイクロジオデータ解析入門

2.2 小地域統計による立地評価(空間集計問題)

これが非集計のデータであれば…

38 ※細目に経過を保存しましょう!

Page 39: Foss4 gマイクロジオデータ解析入門

立地評価を行う際に有用なマイクロジオデータとして、

国勢調査の代わりにゼンリン住宅地図を利用していきます。

3 マイクロジオデータの概要と種類

39

Page 40: Foss4 gマイクロジオデータ解析入門

実際に使用しながら、演習を行っていきます。

下記フォルダにアクセスしてください。

“C:¥MGDdata” フォルダ

マイクロジオデータ

(住宅地図データ)

マイクロジオデータ

(電話帳データ)

40

3.1 データの準備

Page 41: Foss4 gマイクロジオデータ解析入門

ファイル名: 京都府宇治市_tatemono.csv

建物1軒1軒の情報が記載されている

日本測地系・緯度経度座標系

3.2 ゼンリン住宅地図の概要

1200: 目標物

1363: 名称のある建物

(ビル、アパート、マンション、団地等) 1364: 個人の家屋

1365: 事業所

1369: 準目標物(公民館、市民会館等) 2090: 用途不明あるいはその他。ただし住所の確認が出来る建物なので戸建住宅の可能性が高い

2091~: 住所不明の用途不明あるいはその他。住所不明のため倉庫・車庫等の可能性が高い。

Page 42: Foss4 gマイクロジオデータ解析入門

属性情報の詳細については「住宅地図csvデータ属性情報.xlsx」を参照

※本ハンズオンでは演習用途につき住宅地図(TownⅡ)の建物ポリゴンデータの属性データのみを扱います。本来の住宅地図(TownⅡ)にはMDB形式で建物のみならず、道路・水域等のデータがポリライン・ポリゴンにおいて格納されています。

3.2 ゼンリン住宅地図の概要

Page 43: Foss4 gマイクロジオデータ解析入門

「レイヤ(L)→デリミットテキストレイヤの追加(A)」をクリック

43

3.3 ゼンリン住宅地図の読み込み

Page 44: Foss4 gマイクロジオデータ解析入門

参照をクリック

C:¥MGDdata¥TOWN2¥

京都府宇治市_tatemono.csvを選択

44

3.3 ゼンリン住宅地図の読み込み

Page 45: Foss4 gマイクロジオデータ解析入門

XフィールドにX,

YフィールドにYを選択

45

3.3 ゼンリン住宅地図の読み込み

Page 46: Foss4 gマイクロジオデータ解析入門

Search欄に4301と入れてFind

日本測地系・緯度経度座標系:TOKYO

EPSG: 4301を指定

46

3.3 ゼンリン住宅地図の読み込み

Page 47: Foss4 gマイクロジオデータ解析入門

3.3 ゼンリン住宅地図の読み込み

住宅地図を地図上に表示できました。しかし、住宅地図には

事業所や店舗など住居とは関係ない建物も含んでいます。

Page 48: Foss4 gマイクロジオデータ解析入門

そこで、住居関係の建物のみを抽出します。属性テーブルを開いて、

「アドバンストサーチ」から条件式(建物タイプ)を入力します。

48

「ATYPE = 1364 OR ATYPE = 1363 OR ATYPE = 2290」と入力

クリックすると、「検索クエリビルダ」が表示されます。

3.4 ゼンリン住宅地図の加工

※ATYPE=1364のなかにはビルも含まれていますが、試算のためここでは便宜的に合わせます。

Page 49: Foss4 gマイクロジオデータ解析入門

3.4 ゼンリン住宅地図の加工

住宅関係の建物ポイントデータを選択

49

Page 50: Foss4 gマイクロジオデータ解析入門

3.4 ゼンリン住宅地図の加工

選択されているのを確認したら、ファイルを保存します。

50

Page 51: Foss4 gマイクロジオデータ解析入門

①ブラウズをクリックC¥MGDdata

データフォルダにtown2tatemono.shpとしてOK

②ブラウズをクリック

51

3.4 ゼンリン住宅地図の加工

Page 52: Foss4 gマイクロジオデータ解析入門

座標参照系

EPSG: 2448

世界測地系・ 平面直角座標系

(第6系) としてOK

52

3.4 ゼンリン住宅地図の加工

現在は「オンザフライCRS

変換」がオンになっていると自動的に合わせてくれるが、データ作成の際には座標系を定義する必要がある。

Page 53: Foss4 gマイクロジオデータ解析入門

エクスポートした建物ポイントデータを追加。

53

3.4 ゼンリン住宅地図の加工

Page 54: Foss4 gマイクロジオデータ解析入門

設定-プロジェクトのプロパティ -オンザフライCRS変換を有効にするのチェックをはずす

54

3.4 ゼンリン住宅地図の加工

すべてのシェープファイルの座標をEPSG: 2448に統一したため、 オンザフライCRS変換をオフにします。

Page 55: Foss4 gマイクロジオデータ解析入門

表示が重くなるので、 日本測地系・緯度経度座標系XYデータは削除しておく

55

※細目に経過を保存しましょう!

3.4 ゼンリン住宅地図の加工(任意)

Page 56: Foss4 gマイクロジオデータ解析入門

マイクロジオデータを扱う準備が整いました。立地評価には住宅

地図から簡易的に人口を試算し、バッファで集計を行います。

また、店舗・施設には電話帳データを利用することができます。

4 マイクロジオデータを活用した立地評価

56

Page 57: Foss4 gマイクロジオデータ解析入門

(人)

(平米)

出典: H22国勢調査 京都府 住居の状態 より作成 18-2 延べ面積(14区分),住居の種類・住宅の所有の関係(6区分)別一般世帯数,一般世帯人員及び1世帯当たり人員-都道府県※,市部,郡部,市町村※・旧市町村

宇治市の延べ面積と世帯人数の関係から、人数を推定

y = 0.8589ln(x) - 1.3104 R² = 0.9434

0

0.5

1

1.5

2

2.5

3

3.5

4

0 50 100 150 200 250 300

0.8589 * ln( "Shape_Area") - 1.3104

4.1 居住人数の試算

住宅地図の面積情報から人数を推定

入力式:

ただし、住宅地図に記載されている面積は建築面積であり、延べ面積ではないため、調整が必要。実際の分析では階数や共同住宅等の情報も考慮される必要がある。

57

Page 58: Foss4 gマイクロジオデータ解析入門

4.1 居住人数の試算

プラグイン>Table>Table managerより人口フィールドを追加

58

Page 59: Foss4 gマイクロジオデータ解析入門

4.1 居住人数の試算

最後の行のあとに人口フィールド“POP”を追加

Insertをクリック

どの列のあとに新しいフィールドを追加するか指定

フィールド名”POP”

と入力 フィールドタイプには“Real”を指定

クリックした状態でTable

Managerを開く

Page 60: Foss4 gマイクロジオデータ解析入門

4.1 居住人数の試算

フィールド“POP”が追加されました。次に を押してテーブル編集を開始します。その後、 を押してフィールド演算を行います。

テーブル編集ボタンをクリック フィールド計算機ボ

タンをクリック

60

Page 61: Foss4 gマイクロジオデータ解析入門

4.1 居住人数の試算

式の中に人口試算式を入力 チェック

さきほど作成した“POP”フィールドを指定

「0.8589 * ln( “Shape_Area”) - 1.3104」 と入力

61

Page 62: Foss4 gマイクロジオデータ解析入門

62

人口試算ができていることを確認します。

4.1 居住人数の試算

Page 63: Foss4 gマイクロジオデータ解析入門

63

4.2 バッファで集計

さきほど作成した施設1のバッファ(1000m)を用いて、空間検索します。

ベクタ > 調査ツール > 場所による選択 をクリック

Page 64: Foss4 gマイクロジオデータ解析入門

住宅地図が検索対象となるように設定します。

64

4.2 バッファで集計

Page 65: Foss4 gマイクロジオデータ解析入門

65

4.2 バッファで集計

バッファ内の建物ポイントデータが選択されているのを確認できます。

Page 66: Foss4 gマイクロジオデータ解析入門

4.2 バッファで集計 空間検索後、「選択を名前をつけて保存」から保存画面を起動し、

CSV(カンマ区切りファイル)形式で名前をつけて保存します。

対象レイヤを→クリック

66

Page 67: Foss4 gマイクロジオデータ解析入門

合計19,449人

が試算された

4.2 バッファで集計

POPフィールドを合計して、総人数を確認します。

対象とする店舗・住宅・施設に応じて集計方法は異なる。

67

Page 68: Foss4 gマイクロジオデータ解析入門

京都府宇治市 .csv

店舗・事業所の全業種が記載

日本測地系・緯度経度座標系

68

4.3 電話帳の概要

Page 69: Foss4 gマイクロジオデータ解析入門

住宅地図と異なり自己申告制でデータが作成されているため、 住宅関係の記載は住宅地図に劣る。しかし、部屋単位に至るまで の記載と店舗・事業所の業種情報を保持。 データはCSV形式で格納。

69

4.3 電話帳の概要

Page 70: Foss4 gマイクロジオデータ解析入門

設定-プロジェクトのプロパティ -オンザフライCRS変換を有効にするにチェック

70

4.4 電話帳データの読み込み

住宅地図と同様に、CSVデータに登録されている緯度・経度(EPSG:4301) から読み込むため、オンザフライCRS変換を有効にします。

※レイヤ上の他のファイルは削除するか、新規にプロジェクトを作成することをおすすめします。

Page 71: Foss4 gマイクロジオデータ解析入門

レイヤ(L)→デリミットテキストレイヤの追加(A)

71

4.4 電話帳データの読み込み

Page 72: Foss4 gマイクロジオデータ解析入門

参照をクリック

C:¥MGDdata¥テレポイント¥

京都府宇治市.csvを選択

72

4.4 電話帳データの読み込み

Page 73: Foss4 gマイクロジオデータ解析入門

XフィールドにX, YフィールドにYを選択

73

4.4 電話帳データの読み込み

Page 74: Foss4 gマイクロジオデータ解析入門

Search欄に4301と入れてFind

日本測地系・緯度経度座標系:TOKYO

EPSG: 4301を指定

4.4 電話帳データの読み込み

Page 75: Foss4 gマイクロジオデータ解析入門

マイクロジオデータの建物座標がポイントとして表示される

75

4.4 電話帳データの読み込み

Page 76: Foss4 gマイクロジオデータ解析入門

ブラウズをクリックC¥MGDdata¥Telepoint

データフォルダにteltatemono.shpとしてOK

ブラウズをクリック

76

4.5 電話帳データの書き出し

Page 77: Foss4 gマイクロジオデータ解析入門

座標参照系

EPSG: 2448

世界測地系・ 平面直角座標系

(第6系) としてOK

77

4.5 電話帳データの書き出し

Page 78: Foss4 gマイクロジオデータ解析入門

属性テーブルを開いて、美容店を示すコード3526000をCATCODE列から検索する

78

4.6 電話帳データから特定業種の抽出

Page 79: Foss4 gマイクロジオデータ解析入門

バッファ内にある美容店が選択される

79

4.6 電話帳データから特定業種の抽出

Page 80: Foss4 gマイクロジオデータ解析入門

マイクロジオデータを扱う準備が整いました。立地評価には住宅

地図から簡易的に人口を試算し、バッファで集計を行います。

また、店舗・施設には電話帳データを利用することができます。

5 ネットワーク探索アルゴリズムを 活用した立地評価

80

Page 81: Foss4 gマイクロジオデータ解析入門

ここまではQGISの基本的な使い方を演習してきました。

ここからはプログラミング言語Pythonを利用しながら、

ネットワーク探索アルゴリズムを活用した詳細な立地評価

について扱っていきます。

※これから扱う内容はQGIS1.8以上でのみ動作します

5.1 概要

81

Page 82: Foss4 gマイクロジオデータ解析入門

道路ネットワークデータ(全国デジタル道路地図:DRM)

5.1 利用データ

出典: 住友電工システムソリューション株式会社

http://www.seiss.co.jp/products/mapdb/map_products1.html

測地系:日本測地系 座標系:経度緯度

ナビゲーション向けの地図データとして開発され、日本全国で整備、地図更新については年複数回の提供が可能。

ハンズオンで利用するデータはここ

pythonコードはこちら

82

Page 83: Foss4 gマイクロジオデータ解析入門

5.2 プログラミング言語 とは

グイド・ヴァンロッサム Guido van Rossum (1960 - )

出典 Wikipediaグイド・ヴァンロッサム / Python

1990年に開発されたオブジェクト指向型スクリプト言語の1つ。RubyやJavascriptに影響を与えた言語の1つ。

Google やfacebookにも利用されており、APIを

通してさまざまなアプリケーション開発に用いられている。

QGISやArcGISのAPIもPythonで公開されており、

プラグイン開発や専用のオリジナルアプリケーション開発に利用することができる。

このハンズオンではQGISのPythonコンソールを使って演習を行います。

Page 84: Foss4 gマイクロジオデータ解析入門

5.3 Pythonで動かしてみよう: スタートアップ

Pythonコンソール画面を表示します。

本来のDRMは日本測

地系ですが、工程を省き既に世界測地系・平面直角座標系

(第6系) に変換してあります。

Page 85: Foss4 gマイクロジオデータ解析入門

5.3 Pythonで動かしてみよう: スタートアップ

“C:¥MGDdata¥python” フォルダのdijkstra.pyを開き、コードを貼り付けながら進めていきます。

85

Page 86: Foss4 gマイクロジオデータ解析入門

5.4 Pythonで動かしてみよう: データ登録①

1. from PyQt4.QtCore import * 2. from PyQt4.QtGui import * 3. from qgis.core import * 4. from qgis.gui import * 5. from qgis.networkanalysis import * 6. import csv 7. 8. #create graph from network data 9. vl = qgis.utils.iface.mapCanvas().currentLayer() 10. director = QgsLineVectorLayerDirector( vl, -1, '', '', '', 3 ) 11. properter = QgsDistanceArcProperter() 12. director.addProperter( properter ) 13. crs = qgis.utils.iface.mapCanvas().mapRenderer().destinationCrs() 14. builder = QgsGraphBuilder( crs )

Pythonコンソールを立ち上げたら、まずライブラリを呼び込みます。 その後、道路ネットワークデータを呼び込みます。

ここにあるコードをPythonコンソール画面にコピペしていきます。

※本演習では無向グラフとして道路ネットワークデータを利用 86

Page 87: Foss4 gマイクロジオデータ解析入門

5.4 Pythonで動かしてみよう: データ登録①

レイヤを選択した状態で、貼り付けてください(すぐに実行されます)。

①レイヤを選択した状態

②先のコードを貼り付けてください。

87

Page 88: Foss4 gマイクロジオデータ解析入門

5.4 Pythonで動かしてみよう: データ登録②

16 #startpoint 17 pStart = QgsPoint(-19897.06746, -123079.6186) 18 delta = qgis.utils.iface.mapCanvas().getCoordinateTransform().mapUnitsPerPixel() * 1 19 20 rb = QgsRubberBand( qgis.utils.iface.mapCanvas(), True ) 21 rb.setColor( Qt.green ) 22 rb.addPoint( QgsPoint( pStart.x() - delta, pStart.y() - delta ) ) 23 rb.addPoint( QgsPoint( pStart.x() + delta, pStart.y() - delta ) ) 24 rb.addPoint( QgsPoint( pStart.x() + delta, pStart.y() + delta ) ) 25 rb.addPoint( QgsPoint( pStart.x() - delta, pStart.y() + delta ) )¥

次に始点の登録・表示を行います。 ここでは地点(ポイント)を登録後、正方形で表示します。 コードをコンソールに貼り付けたら、確認してみましょう!

登録したい

地点の座標 ※今回はEPSG:2448

キャンバスを呼び出し、始点の4隅の座標を追加していきます

※文章の前に「#」をつけると、コメントアウトされます

88

Page 89: Foss4 gマイクロジオデータ解析入門

5.5 Pythonで動かしてみよう: コスト計算

27 ##Graph analysis: calculate shortest paths using a dijkstra method. 28 tiedPoints = director.makeGraph( builder, [ pStart ] ) 29 graph = builder.graph() 30 tStart = tiedPoints[0]

31 idStart = graph.findVertex( tStart )

32 ( tree, cost ) = QgsGraphAnalyzer.dijkstra( graph, idStart, 0 )

Dijkstra(ダイクストラ)法によるネットワークコストの計算 始点から各ノードまでの最短経路コストを全件検索します。

QgsGraphAnalyzerクラスの

なかにダイクストラ法が定義されている。

Page 90: Foss4 gマイクロジオデータ解析入門

5.5 グラフ理論の最短経路問題における ダイクストラ法

Edsger Wybe Dijkstra (1930-2002)

グラフ理論の最短経路問題における ダイクストラ法

出典 Wikipedia エドガー・ダイクストラ / ダイクストラ法

Page 91: Foss4 gマイクロジオデータ解析入門

5.6 Pythonで動かしてみよう: 到達点の頂点抽出

49 #Choosing upper bound vertexes 50 upperBound = [] 51 angle_dic = {} 52 r = 1000.0 #distance 53 i = 0

到達距離の設定 検索距離を指定します。

ここでは「1000m」と設定しています

55 while i < len(cost): 56 if cost[ i ] > r and tree[ i ] != -1: 57 outVertexId = graph.arc( tree [ i ] ).outVertex() 58 if cost[ outVertexId ] < r: 59 60 ~ 中略 ~ 65 i = i + 1

到達範囲の頂点の抽出

91

Page 92: Foss4 gマイクロジオデータ解析入門

5.7 Pythonで動かしてみよう: 到達圏ポリゴン作成

67 geomPolygon = [] 68 for key, value in sorted(angle_dic.items()): 69 geomPolygon.append(value)

到達圏ポリゴン配列のソート

71 #Create Polygon about areas of the availability 72 Polygonset = [geomPolygon] 73 gPolygon = QgsGeometry.fromPolygon(Polygonset)

到達圏ポリゴンのジオメトリテーブルの作成

92

Page 93: Foss4 gマイクロジオデータ解析入門

5.7 Pythonで動かしてみよう: 到達圏ポリゴン描画

75 #Visualization: show upperBound polygon area 76 r = QgsRubberBand(qgis.utils.iface.mapCanvas(), True) 77 r.setToGeometry(gPolygon, None)

79 #Visualization: show upperBound vertexes 80 for i in upperBound: 81 centerPoint = graph.vertex( i ).point() 82 rb = QgsRubberBand( qgis.utils.iface.mapCanvas(), True ) 83 rb.setColor( Qt.red ) 84 rb.addPoint( QgsPoint( centerPoint.x() - delta, centerPoint.y() - delta ) ) 85 rb.addPoint( QgsPoint( centerPoint.x() + delta, centerPoint.y() - delta ) ) 86 rb.addPoint( QgsPoint( centerPoint.x() + delta, centerPoint.y() + delta ) ) 87 rb.addPoint( QgsPoint( centerPoint.x() - delta, centerPoint.y() + delta ) )

到達圏ポリゴンを表示

到達圏の各頂点を表示

93

Page 94: Foss4 gマイクロジオデータ解析入門

5.7 Pythonで動かしてみよう: 到達ポリゴンの描画

こんなふうにできていれば、成功です!

94

Page 95: Foss4 gマイクロジオデータ解析入門

5.8 Pythonで動かしてみよう: ファイル保存

91 layer = QgsVectorLayer("Polygon", "temporary_polygons", "memory") 92 pr = layer.dataProvider() 93 pr.addAttributes( [ QgsField("id", QVariant.Int) ] ) 94 feature = QgsFeature() 95 feature.setGeometry(gPolygon) 96 feature.setAttributeMap( { 0 : QVariant(1) } ) 97 pr.addFeatures( [ feature ] ) 98 layer.updateExtents()

101 error = QgsVectorFileWriter.writeAsVectorFormat(layer, "C:¥MGDdata¥MGDdata¥python¥sample.shp", "utf-8", None, "ESRI Shapefile")

102 103 if error == QgsVectorFileWriter.NoError: 104 print "success!"

空のレイヤを作成し、先のポリゴンを追加

ファイルパスを指定して、ファイルを保存

保存したい場所・ファイル名を指定してください

属性テーブルを書き出しています

95

Page 96: Foss4 gマイクロジオデータ解析入門

5.8 Pythonで動かしてみよう: 到達ポリゴンの描画

“success!”が表示されたら成功!レイヤに追加しましょう!

96

Page 97: Foss4 gマイクロジオデータ解析入門

5.9 仕上げ: 集計

先に作成した住宅地図のレイヤを追加します。

97

Page 98: Foss4 gマイクロジオデータ解析入門

5.9 仕上げ: 集計

「ベクタ > 調査ツール > 場所による選択」で選択します。

98

Page 99: Foss4 gマイクロジオデータ解析入門

5.9 仕上げ: 集計

例によってCSV形式で保存します。

99

Page 100: Foss4 gマイクロジオデータ解析入門

5.9 集計

例によってCSV形式で保存します。

合計11,341人が試算。ユー

クリッド距離ベースの円バッファよりだいぶ少ない。

100

Page 101: Foss4 gマイクロジオデータ解析入門

問題

これまでの復習として実習を行います。

先の電話帳から任意の業種を選び出し、その業種の立地評価を行ってください。

その際、ユークリッド距離ベースの円バッファによる集計と、ネットワーク距離ベースの到達圏による集計において、カバー人数にどのような違いがでてくるか比較してみましょう。

(ⅰ)

(ⅱ)

101

Page 102: Foss4 gマイクロジオデータ解析入門

お疲れ様でした。前章でネットワーク探索アルゴリズムについて

扱いましたが、他の分析手法やサービスが提供されています。

また、データ解析におけるOpen Street Mapの活用可能性に

ついて紹介します。 ※本章では紹介に留めます。

6 その他のハンドリング手法について

102

Page 103: Foss4 gマイクロジオデータ解析入門

6.1 pgRoutingによる到達圏分析

出典 日本ユニシス「pgRouting翻訳文書」 p33 ftp://ftp.remotesensing.org/pgrouting/forum/pgrouting.postlbs.org/wiki/ja/pgRoutingDocs.html

pgRouting

PostGIS / PostgreSQL地理空間データベースに 経路探索機能を提供するための拡張ライブラリ

103

Page 104: Foss4 gマイクロジオデータ解析入門

6.1 pgRoutingによる到達圏分析

詳しくはこちらを参照!

http://download.osgeo.org/pgrouting/forum/pgrouting.postlbs.org/wiki/ja/DrivingDistance.html

104

Page 105: Foss4 gマイクロジオデータ解析入門

http://planet.qgis.org/planet/tag/pgrouting/ underdark

6.1 pgRoutingによる到達圏分析

QGISからの利用やpgRoutingをさらに究めたい方は下記のサイトがオススメ!

105

Page 106: Foss4 gマイクロジオデータ解析入門

6.2 動線解析プラットフォームAPI

誰でも無料で利用可能(要登録)

東京大学空間情報科学研究センター「人の流れプロジェクト」が提供する移動経路探索処理のためのWeb-API

http://pflow.csis.u-tokyo.ac.jp/platform.html

道路ネットワークデータがなくても 最短経路探索が可能!!

今回のハンズオンで扱った到達圏抽出には向いていないが、始点または終点がある場合の経路探索において利用可能!!

106

Page 107: Foss4 gマイクロジオデータ解析入門

6.2 動線解析プラットフォームAPI

サンプルコード(Java)が サイトにて配布中

動線解析PF WebAPIを使って時空間内挿 「PFlowSample_GetSTInterpolatedPoints.java」を開く 。パラメータを自分の移動履歴に合わせて変更する 。

出典: 金杉洋「空間情報システム演習2012 個人の行動記録と分析」より 107

Page 108: Foss4 gマイクロジオデータ解析入門

6.3 OpenStreetMap(OSM)

Wikipediaの地図版!地図は閲覧だけでなく、ダウンロードも可能

世界規模で使われているが、ボランティアによる作成のため未整備であることが多い

108

Page 109: Foss4 gマイクロジオデータ解析入門

DRM OSM

6.3 OpenStreetMap(OSM)

109

Page 110: Foss4 gマイクロジオデータ解析入門

6.3 OpenStreetMap(OSM)

Page 111: Foss4 gマイクロジオデータ解析入門

6.3 OpenStreetMap(OSM)

111

Page 112: Foss4 gマイクロジオデータ解析入門

6.3 OpenStreetMap(OSM)

JOSMエディタ: データのダウンロードおよびアップロードができる地図編集ソフト

112

Page 113: Foss4 gマイクロジオデータ解析入門

アカデミック分野におけるOSMの展開

Mark IliffeがOSMアカデミックグループの設立マニフェストを執筆 OSMのアカデミックにおける活用可能性および協力体制の確立を目指す

http://markiliffe.wordpress.com/2012/09/26/a-manifesto-for-the-osm-academic-working-group/

6.3 OpenStreetMap(OSM)

113

Page 114: Foss4 gマイクロジオデータ解析入門

以上で講習内容は終了となります。

研究者に限り、東京大学空間情報科学センター共同研究 システムJORASにデータの利用申請することができます。

114

Page 115: Foss4 gマイクロジオデータ解析入門

本ハンズオンで利用したデータを使うには

研究者に限り、東京大学空間情報科学センター共同研究 システムJORASにデータの利用申請することができます。

※申請が承諾されると、データを下記サイトからダウンロードできるようになります。 115

Page 116: Foss4 gマイクロジオデータ解析入門

QGIS利用上の注意を使うには

QGIS1.8.0はソフトにデータを読み込んだ際に日本語の文字化けが起きるエラーが起きております。 問題の対処には下記サイトをご覧ください。

http://www.geopacific.org/opensourcegis/qgis/qgis_install

■日本語文字化けの問題

■強制終了の問題

容量の大きなデータを扱うと強制終了することが少なくありません。プロジェクトは細目に保存し、必要でないときは画面の描画(レンダリング)をしないようにしましょう。 あとは64bit対応のQGISが出ることを期待しましょう!!

116

Page 117: Foss4 gマイクロジオデータ解析入門

謝辞

店舗情報+営業時間 本ハンズオンの講習資料は2012年10月14日(日)に開催されたマイクロジオデータ講習会の資料の続編として作成しました。資料作成にあたり、立命館大学歴史都市防災研究センター青木和人氏には大変お世話になりました。

また、本資料を作成にあたり東京大学地球観測データ統融合連携研究機構の金杉洋氏、新領域創成科学研究科博士課程の中村敏和氏には貴重な助言をいただきました。

この場を持ちまして一同に心より御礼申し上げます。

117

Page 118: Foss4 gマイクロジオデータ解析入門

本日はハンズオンにご参加いただき、 ありがとうございました。

118