foss4 gマイクロジオデータ解析入門
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=642TRANSCRIPT
マイクロジオデータ解析入門
東京大学大学院 新領域創成科学研究科
マイクロジオデータ研究会 副運営委員長
仙石裕明( )
~ QGISの基本操作からネットワーク探索アルゴリズムを ~ 活用した詳細な立地評価
本ハンズオンの概要と目的
本ハンズオンはマイクロジオデータの普及と利活用を
促進するために演習形式で開催しているハンズオンです。
時間的・空間的に詳細な空間分析を行いたい方を対象とした実習を行います。実習では東京大学空間情報科学センター(CSIS)が提供している住宅・施設等の建物単位のデー
タおよび経路探索アルゴリズムを活用した立地評価を行います。他にも動線解析プラットフォームWEB-API(経路推定)
を活用した実例に取り組みながらマイクロジオデータを解析する基礎を扱います。なお、QuantumGISをベースに実習を行う予定です。
2
ハンズオンで使用するデータ
ゼンリン住宅地図 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
本ハンズオンの進め方について
本ハンズオンは東京大学空間情報科学センター(CSIS)の協力を得て、貸出パソコン上で演習を行います。
ハンズオンで使用する本スライドや一部データ・ソースコードについては下記にて公開いたします。本ハンズオンで利用するQuantumGISのインストールガイド・基本操作に関する資料も公開しております。
http://geodata.csis.u-tokyo.ac.jp/wp/?page_id=642
4
ハンズオンで使用するGIS
• 本実習ではフリーオープンソースGISで
あるQuantumGIS(ver1.8.0)を使用します。
• FOSS4G(Free and Open Source Software for Geospatial)と呼ばれるソフトウェアの一つでソースコードが開示されていて無料で利用でき、自由に改良,再配布ができます。
• 他のオープンソースソフト(GRASS,R,PostGIS,Open Layers,Mapserver)との連携ができます。
QuantumGIS (以下、QGIS)
5
6
人口:189591人(2005年) 京阪神大都市圏の衛星都市 世界遺産ともなっている平等院鳳凰堂、宇治上神社や宇治茶などで知られ、歴史的にも有名な市である。
出典 Wikipedia: 宇治市ページ
ハンズオンの対象地域: 京都府宇治市
立命館大学 歴史都市防災研究センター 青木和人氏
本日の流れ
国勢調査のデータを用いた立地評価 p32
QGISの基本的操作のおさらい p9
MGDの概要と種類 p39
1
2
3 MDGを活用した立地評価 p56
ネットワーク探索アルゴリズムによる
立地評価 p80
その他のハンドリング手法について p102
4
5
6
習うより慣れろ!! ということで早速はじめていきましょう。
1.1 QGISの起動
9
Quantum GISが起動する
アイコンを ダブルクリック
スタート > すべてのプログラム > OSGeo4W > Quantum GIS DESKTOP(1.8.0) より起動。もしくはデスクトップ上のアイコンをダブルクリック。
1.1 「QuantumGIS」の起動
ファイル-新規プロジェクトを クリックする。
10
※QGISは大量のデータを載せると、強制終了することは少なくありません。 「プロジェクトを保存」から細目に作業途中で保存しましょう。
1.2 座標参照系とは
本実習ではQ-GISで世界測地系・平面直角座標系
(第6系) に変換して使用します。
元々の住宅地図・電話帳は、日本測地系・緯度経度座標系のデータです。
出典 国土地理院ホームページ http://www.gsi.go.jp/GIS/stdind/nyumon_0930.html 11
1.2 座標参照系の設定
設定>プロジェクトのプロパティ>オンザフライCRS変換を有効にするにチェック 異なる座標系を持つGISデータ情報を見た目上、重ねて表示してくれるようになる。
1.2 座標参照系の設定
Search欄に2448と入れてFind
座標参照系
EPSG: 2448
世界測地系・ 平面直角座標系
(第6系) を選択
http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do 平成20年4月1日開設 政府統計のポータルサイト
1.3 データのダウンロードと表示
地図で見る統計 (統計GIS)から、 地域分析に 利用できる 小地域統計 (町丁目)を 入手できる
14
1.3 データのダウンロードと表示
宇治市の町丁目境界の追加
レイヤ(L)→ベクタレイヤの追加 をクリック
15
1.3 データのダウンロードと表示
“C:¥MGDdata¥estat” フォルダのh17ka26204.shpを追加
16
宇治市の町丁目境界が表示される
1.3 データのダウンロードと表示
17
レイヤプロパティ-スタイルで塗りつぶし色を変更する
ダブルクリック
1.3 データのダウンロードと表示
18
町丁目の人口を表示
ラベルを表示
をチェック
町丁字ラベルが
含まれている
フィールド
“MOJI”
フォント6
でOK
1.3 データのダウンロードと表示
町丁目名が表示される
1.3 データのダウンロードと表示
20
1.4 QGISのカスタマイズ
地図ナビゲーションツールバーを上の段にドラッグ&ドロップ
ツールバーのお手てマークの
左側にマウスカーソルをもってくると十字矢印マークになるので、
十字矢印マークを
ツールバーの上の段に
ドラッグ&ドロップする
地図ナビゲーションツールバー 地図移動、拡大、縮小など表示を変えてみましょう。 直前の表示領域にズームで元に戻れます。
地図移動 拡大 縮小 全域表示 レイヤの領域に ズーム
直前の表示領域に ズーム
1.4 QGISのカスタマイズ
22
プラグイン>Pythonプラグインから背景地図を呼び出してみましょう。
OpenLayers Plugin
をインストール
1.5 QGISプラグインの活用
23
プラグイン→OpenLayers Pluginから選択
Add OpenStreetMap
Layersを選択
1.5 QGISプラグインの活用
OpenStreetMap が背景地図として表示される
1.5 QGISプラグインの活用
1.6 ベクターデータの作成
対象となる施設ポイントの作成
レイヤ(L)→追加→新しいシェープファイルレイヤ
26
CRSの指定をクリック
27
1.6 ベクターデータの作成
座標参照系
EPSG: 2448
世界測地系・ 平面直角座標系
(第6系) を選択
28
1.6 ベクターデータの作成
ファイル名を入力
ここでは、
施設01.shpと入力
29
1.6 ベクターデータの作成
編集モード 点を入力
施設01を選択し編集モードボタンを押して、地図上に点をクリック。IDに1を入力
30
1.6 ベクターデータの作成
保存
立地を検討したい施設データが保存する
31
1.6 ベクターデータの作成
住宅・店舗・施設等の立地評価を行う際には、
人口分布が評価の際に重要な基準となります。
立地評価には施設からバッファを描き、一定の範囲内の居住
者の合計を評価の基準とします。
32
2 国勢調査のデータを用いた立地評価
ベクタ → 空間演算ツール → バッファ をクリック
33
2.1 小地域統計による立地評価(施設の追加)
施設01から、1000mのバッファ作成
日本語通らないかも。。
34
2.1 小地域統計による立地評価(施設の追加)
施設01.shpから、1000mのバッファ作成
バッファ内の人口から、対象者人口が計算できる。
35
2.1 小地域統計による立地評価(施設の追加)
36
「ラベルを表示」 をチェック
町丁字ラベルが含まれているフィールド“JINKO”
フォント6
でOK
2.1 小地域統計による立地評価(施設の追加)
でも、1851人もいる
町丁字の人口は
カウントされない。
37
2.2 小地域統計による立地評価(空間集計問題)
※この図では分かりやすくするためにポイントデータで表しています
2.2 小地域統計による立地評価(空間集計問題)
これが非集計のデータであれば…
38 ※細目に経過を保存しましょう!
立地評価を行う際に有用なマイクロジオデータとして、
国勢調査の代わりにゼンリン住宅地図を利用していきます。
3 マイクロジオデータの概要と種類
39
実際に使用しながら、演習を行っていきます。
下記フォルダにアクセスしてください。
“C:¥MGDdata” フォルダ
マイクロジオデータ
(住宅地図データ)
マイクロジオデータ
(電話帳データ)
40
3.1 データの準備
ファイル名: 京都府宇治市_tatemono.csv
建物1軒1軒の情報が記載されている
日本測地系・緯度経度座標系
3.2 ゼンリン住宅地図の概要
1200: 目標物
1363: 名称のある建物
(ビル、アパート、マンション、団地等) 1364: 個人の家屋
1365: 事業所
1369: 準目標物(公民館、市民会館等) 2090: 用途不明あるいはその他。ただし住所の確認が出来る建物なので戸建住宅の可能性が高い
2091~: 住所不明の用途不明あるいはその他。住所不明のため倉庫・車庫等の可能性が高い。
属性情報の詳細については「住宅地図csvデータ属性情報.xlsx」を参照
※本ハンズオンでは演習用途につき住宅地図(TownⅡ)の建物ポリゴンデータの属性データのみを扱います。本来の住宅地図(TownⅡ)にはMDB形式で建物のみならず、道路・水域等のデータがポリライン・ポリゴンにおいて格納されています。
3.2 ゼンリン住宅地図の概要
「レイヤ(L)→デリミットテキストレイヤの追加(A)」をクリック
43
3.3 ゼンリン住宅地図の読み込み
参照をクリック
C:¥MGDdata¥TOWN2¥
京都府宇治市_tatemono.csvを選択
44
3.3 ゼンリン住宅地図の読み込み
XフィールドにX,
YフィールドにYを選択
45
3.3 ゼンリン住宅地図の読み込み
Search欄に4301と入れてFind
日本測地系・緯度経度座標系:TOKYO
EPSG: 4301を指定
46
3.3 ゼンリン住宅地図の読み込み
3.3 ゼンリン住宅地図の読み込み
住宅地図を地図上に表示できました。しかし、住宅地図には
事業所や店舗など住居とは関係ない建物も含んでいます。
そこで、住居関係の建物のみを抽出します。属性テーブルを開いて、
「アドバンストサーチ」から条件式(建物タイプ)を入力します。
48
「ATYPE = 1364 OR ATYPE = 1363 OR ATYPE = 2290」と入力
クリックすると、「検索クエリビルダ」が表示されます。
3.4 ゼンリン住宅地図の加工
※ATYPE=1364のなかにはビルも含まれていますが、試算のためここでは便宜的に合わせます。
3.4 ゼンリン住宅地図の加工
住宅関係の建物ポイントデータを選択
49
3.4 ゼンリン住宅地図の加工
選択されているのを確認したら、ファイルを保存します。
50
①ブラウズをクリックC¥MGDdata
データフォルダにtown2tatemono.shpとしてOK
②ブラウズをクリック
51
3.4 ゼンリン住宅地図の加工
座標参照系
EPSG: 2448
世界測地系・ 平面直角座標系
(第6系) としてOK
52
3.4 ゼンリン住宅地図の加工
現在は「オンザフライCRS
変換」がオンになっていると自動的に合わせてくれるが、データ作成の際には座標系を定義する必要がある。
エクスポートした建物ポイントデータを追加。
53
3.4 ゼンリン住宅地図の加工
設定-プロジェクトのプロパティ -オンザフライCRS変換を有効にするのチェックをはずす
54
3.4 ゼンリン住宅地図の加工
すべてのシェープファイルの座標をEPSG: 2448に統一したため、 オンザフライCRS変換をオフにします。
表示が重くなるので、 日本測地系・緯度経度座標系XYデータは削除しておく
55
※細目に経過を保存しましょう!
3.4 ゼンリン住宅地図の加工(任意)
マイクロジオデータを扱う準備が整いました。立地評価には住宅
地図から簡易的に人口を試算し、バッファで集計を行います。
また、店舗・施設には電話帳データを利用することができます。
4 マイクロジオデータを活用した立地評価
56
(人)
(平米)
出典: 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
4.1 居住人数の試算
プラグイン>Table>Table managerより人口フィールドを追加
58
4.1 居住人数の試算
最後の行のあとに人口フィールド“POP”を追加
Insertをクリック
どの列のあとに新しいフィールドを追加するか指定
フィールド名”POP”
と入力 フィールドタイプには“Real”を指定
クリックした状態でTable
Managerを開く
4.1 居住人数の試算
フィールド“POP”が追加されました。次に を押してテーブル編集を開始します。その後、 を押してフィールド演算を行います。
テーブル編集ボタンをクリック フィールド計算機ボ
タンをクリック
60
4.1 居住人数の試算
式の中に人口試算式を入力 チェック
さきほど作成した“POP”フィールドを指定
「0.8589 * ln( “Shape_Area”) - 1.3104」 と入力
61
62
人口試算ができていることを確認します。
4.1 居住人数の試算
63
4.2 バッファで集計
さきほど作成した施設1のバッファ(1000m)を用いて、空間検索します。
ベクタ > 調査ツール > 場所による選択 をクリック
住宅地図が検索対象となるように設定します。
64
4.2 バッファで集計
65
4.2 バッファで集計
バッファ内の建物ポイントデータが選択されているのを確認できます。
4.2 バッファで集計 空間検索後、「選択を名前をつけて保存」から保存画面を起動し、
CSV(カンマ区切りファイル)形式で名前をつけて保存します。
対象レイヤを→クリック
66
合計19,449人
が試算された
4.2 バッファで集計
POPフィールドを合計して、総人数を確認します。
対象とする店舗・住宅・施設に応じて集計方法は異なる。
67
京都府宇治市 .csv
店舗・事業所の全業種が記載
日本測地系・緯度経度座標系
68
4.3 電話帳の概要
住宅地図と異なり自己申告制でデータが作成されているため、 住宅関係の記載は住宅地図に劣る。しかし、部屋単位に至るまで の記載と店舗・事業所の業種情報を保持。 データはCSV形式で格納。
69
4.3 電話帳の概要
設定-プロジェクトのプロパティ -オンザフライCRS変換を有効にするにチェック
70
4.4 電話帳データの読み込み
住宅地図と同様に、CSVデータに登録されている緯度・経度(EPSG:4301) から読み込むため、オンザフライCRS変換を有効にします。
※レイヤ上の他のファイルは削除するか、新規にプロジェクトを作成することをおすすめします。
レイヤ(L)→デリミットテキストレイヤの追加(A)
71
4.4 電話帳データの読み込み
参照をクリック
C:¥MGDdata¥テレポイント¥
京都府宇治市.csvを選択
72
4.4 電話帳データの読み込み
XフィールドにX, YフィールドにYを選択
73
4.4 電話帳データの読み込み
Search欄に4301と入れてFind
日本測地系・緯度経度座標系:TOKYO
EPSG: 4301を指定
4.4 電話帳データの読み込み
マイクロジオデータの建物座標がポイントとして表示される
75
4.4 電話帳データの読み込み
ブラウズをクリックC¥MGDdata¥Telepoint
データフォルダにteltatemono.shpとしてOK
ブラウズをクリック
76
4.5 電話帳データの書き出し
座標参照系
EPSG: 2448
世界測地系・ 平面直角座標系
(第6系) としてOK
77
4.5 電話帳データの書き出し
属性テーブルを開いて、美容店を示すコード3526000をCATCODE列から検索する
78
4.6 電話帳データから特定業種の抽出
バッファ内にある美容店が選択される
79
4.6 電話帳データから特定業種の抽出
マイクロジオデータを扱う準備が整いました。立地評価には住宅
地図から簡易的に人口を試算し、バッファで集計を行います。
また、店舗・施設には電話帳データを利用することができます。
5 ネットワーク探索アルゴリズムを 活用した立地評価
80
ここまではQGISの基本的な使い方を演習してきました。
ここからはプログラミング言語Pythonを利用しながら、
ネットワーク探索アルゴリズムを活用した詳細な立地評価
について扱っていきます。
※これから扱う内容はQGIS1.8以上でのみ動作します
5.1 概要
81
道路ネットワークデータ(全国デジタル道路地図:DRM)
5.1 利用データ
出典: 住友電工システムソリューション株式会社
http://www.seiss.co.jp/products/mapdb/map_products1.html
測地系:日本測地系 座標系:経度緯度
ナビゲーション向けの地図データとして開発され、日本全国で整備、地図更新については年複数回の提供が可能。
ハンズオンで利用するデータはここ
pythonコードはこちら
82
5.2 プログラミング言語 とは
グイド・ヴァンロッサム Guido van Rossum (1960 - )
出典 Wikipediaグイド・ヴァンロッサム / Python
1990年に開発されたオブジェクト指向型スクリプト言語の1つ。RubyやJavascriptに影響を与えた言語の1つ。
Google やfacebookにも利用されており、APIを
通してさまざまなアプリケーション開発に用いられている。
QGISやArcGISのAPIもPythonで公開されており、
プラグイン開発や専用のオリジナルアプリケーション開発に利用することができる。
このハンズオンではQGISのPythonコンソールを使って演習を行います。
5.3 Pythonで動かしてみよう: スタートアップ
Pythonコンソール画面を表示します。
本来のDRMは日本測
地系ですが、工程を省き既に世界測地系・平面直角座標系
(第6系) に変換してあります。
5.3 Pythonで動かしてみよう: スタートアップ
“C:¥MGDdata¥python” フォルダのdijkstra.pyを開き、コードを貼り付けながら進めていきます。
85
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
5.4 Pythonで動かしてみよう: データ登録①
レイヤを選択した状態で、貼り付けてください(すぐに実行されます)。
①レイヤを選択した状態
②先のコードを貼り付けてください。
87
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
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クラスの
なかにダイクストラ法が定義されている。
5.5 グラフ理論の最短経路問題における ダイクストラ法
Edsger Wybe Dijkstra (1930-2002)
グラフ理論の最短経路問題における ダイクストラ法
出典 Wikipedia エドガー・ダイクストラ / ダイクストラ法
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
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
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
5.7 Pythonで動かしてみよう: 到達ポリゴンの描画
こんなふうにできていれば、成功です!
94
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
5.8 Pythonで動かしてみよう: 到達ポリゴンの描画
“success!”が表示されたら成功!レイヤに追加しましょう!
96
5.9 仕上げ: 集計
先に作成した住宅地図のレイヤを追加します。
97
5.9 仕上げ: 集計
「ベクタ > 調査ツール > 場所による選択」で選択します。
98
5.9 仕上げ: 集計
例によってCSV形式で保存します。
99
5.9 集計
例によってCSV形式で保存します。
合計11,341人が試算。ユー
クリッド距離ベースの円バッファよりだいぶ少ない。
100
問題
これまでの復習として実習を行います。
先の電話帳から任意の業種を選び出し、その業種の立地評価を行ってください。
その際、ユークリッド距離ベースの円バッファによる集計と、ネットワーク距離ベースの到達圏による集計において、カバー人数にどのような違いがでてくるか比較してみましょう。
(ⅰ)
(ⅱ)
101
お疲れ様でした。前章でネットワーク探索アルゴリズムについて
扱いましたが、他の分析手法やサービスが提供されています。
また、データ解析におけるOpen Street Mapの活用可能性に
ついて紹介します。 ※本章では紹介に留めます。
6 その他のハンドリング手法について
102
6.1 pgRoutingによる到達圏分析
出典 日本ユニシス「pgRouting翻訳文書」 p33 ftp://ftp.remotesensing.org/pgrouting/forum/pgrouting.postlbs.org/wiki/ja/pgRoutingDocs.html
pgRouting
PostGIS / PostgreSQL地理空間データベースに 経路探索機能を提供するための拡張ライブラリ
103
6.1 pgRoutingによる到達圏分析
詳しくはこちらを参照!
http://download.osgeo.org/pgrouting/forum/pgrouting.postlbs.org/wiki/ja/DrivingDistance.html
104
http://planet.qgis.org/planet/tag/pgrouting/ underdark
6.1 pgRoutingによる到達圏分析
QGISからの利用やpgRoutingをさらに究めたい方は下記のサイトがオススメ!
105
6.2 動線解析プラットフォームAPI
誰でも無料で利用可能(要登録)
東京大学空間情報科学研究センター「人の流れプロジェクト」が提供する移動経路探索処理のためのWeb-API
http://pflow.csis.u-tokyo.ac.jp/platform.html
道路ネットワークデータがなくても 最短経路探索が可能!!
今回のハンズオンで扱った到達圏抽出には向いていないが、始点または終点がある場合の経路探索において利用可能!!
106
6.2 動線解析プラットフォームAPI
サンプルコード(Java)が サイトにて配布中
動線解析PF WebAPIを使って時空間内挿 「PFlowSample_GetSTInterpolatedPoints.java」を開く 。パラメータを自分の移動履歴に合わせて変更する 。
出典: 金杉洋「空間情報システム演習2012 個人の行動記録と分析」より 107
6.3 OpenStreetMap(OSM)
Wikipediaの地図版!地図は閲覧だけでなく、ダウンロードも可能
世界規模で使われているが、ボランティアによる作成のため未整備であることが多い
108
DRM OSM
6.3 OpenStreetMap(OSM)
109
6.3 OpenStreetMap(OSM)
6.3 OpenStreetMap(OSM)
111
6.3 OpenStreetMap(OSM)
JOSMエディタ: データのダウンロードおよびアップロードができる地図編集ソフト
112
アカデミック分野における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
以上で講習内容は終了となります。
研究者に限り、東京大学空間情報科学センター共同研究 システムJORASにデータの利用申請することができます。
114
本ハンズオンで利用したデータを使うには
研究者に限り、東京大学空間情報科学センター共同研究 システムJORASにデータの利用申請することができます。
※申請が承諾されると、データを下記サイトからダウンロードできるようになります。 115
QGIS利用上の注意を使うには
QGIS1.8.0はソフトにデータを読み込んだ際に日本語の文字化けが起きるエラーが起きております。 問題の対処には下記サイトをご覧ください。
http://www.geopacific.org/opensourcegis/qgis/qgis_install
■日本語文字化けの問題
■強制終了の問題
容量の大きなデータを扱うと強制終了することが少なくありません。プロジェクトは細目に保存し、必要でないときは画面の描画(レンダリング)をしないようにしましょう。 あとは64bit対応のQGISが出ることを期待しましょう!!
116
謝辞
店舗情報+営業時間 本ハンズオンの講習資料は2012年10月14日(日)に開催されたマイクロジオデータ講習会の資料の続編として作成しました。資料作成にあたり、立命館大学歴史都市防災研究センター青木和人氏には大変お世話になりました。
また、本資料を作成にあたり東京大学地球観測データ統融合連携研究機構の金杉洋氏、新領域創成科学研究科博士課程の中村敏和氏には貴重な助言をいただきました。
この場を持ちまして一同に心より御礼申し上げます。
117
本日はハンズオンにご参加いただき、 ありがとうございました。
118