論説

標高勾配付き道路トポロジーデータの構築

蒋

1

湧道路と道路データ
道路とは､ 人や車が通過するために整備された通路を指す (広辞苑)｡ 道路には地域の交通機能のみならず､ 都市の空間機能や市街地形成機能など､ 表 1に示したような複数の機能を担うことで､ 多くの地域研究の対象になってきた｡
本稿は､ 道路の通行機能に着目し､ 道路交通事故の数値解析に必要な道路データ構造とその実装方法を論じる｡ 具体的には､ 道路間の接続､ 道路沿線の標高勾配と道路周辺の交通事故を含め､ 複数の関連データを空間データベースに統合し､ GIS (地理情報システム) の解析に適する道路データ構造の構築方法を提示する｡
道路データとは､ 道路の位置､ 形状と属性､ 3 つの基本要素を備えたデータセットを指す｡ 例えば､ 国土交通省の ｢国土数値情報｣ ダウンロードサイトに公開している道路データにおいて (図 1)､ ｢場所：GM̲Curve｣ には道路の位置と形状の情報があり､ それによって道路が地図上に描ける｡ また､ ｢道路種別｣ と ｢路線名｣ などは道路の属性としてデータセットに付与されている｡
道路の基本要素だけで構成された道路データを道路の基礎データと呼ぶ｡ 通常､ 国土数値情報などから入手した道路の基礎データをベースに､ 研究に必要な情報を属性に追加するとともに､ 自らの研究に特化したデータ構造を設け､

―1―

表1

都市道路の機能(出典：実務者ための新都市計画マニュアル)

図1

道路のデータ構造 (出典：国土数値情報)

実装することが必要になる｡ 本稿は､ 道路交通事故の数値解析を目的とし､ ①道路間の接続属性､ ②道路沿線の標高情報､ ③研究対象の事故個票情報､ 3 つの要素を入れた道路データ構造を設け､ その実装について解説する｡ 本稿では
名古屋市中心部を対象に､ 表 2 のデータと QGIS＋PostgreSQL の環境を用いて､ 道路データ構造を実装する｡―2―

標高勾配付き道路トポロジーデータの構築

表2
ᵬᶍᴾ

2

使用する主なデータἙὊἑᴾЈχᴾ1ಕ࿑υʖν

ArcGIS Geo Suite ৆ࡋਦ 2020ɼESRI ζϡϏϱ2ඬ߶υʖν

ᅜᅵ஺㏻┬ࠊᇶ┙ᆅᅗ᝟ሗࠊᩘ್ᶆ㧗ࣔࢹࣝ P3 ᖺឡ▱┴஺㏻஦ᨾಶ⚊ឡ▱┴㆙ᐹᮏ㒊

道路トポロジーデータの作成
本研究は､ ESRI ジャパン社が提供する ArcGIS Geo Suite 詳細図 2020 の道路基礎データを利用する｡ ArcGIS Geo Suite の道路データには､ 道路(road) と細道 (nroad) の 2 種類のデータがあり､ 筆者はそれらを 1 つの道路データセットにまとめ､ 図 2 のようなデータベース構造を実装した｡ テーブᶑᶒᶀᵽᶌᶃᶒᶕᶍᶐᶉᵽᶂᵿᶒᵿ ỉ‫ࣱޓ‬ᴾ

図2

道路基礎データの属性と構造表3

道路の類別 (tb̲road̲type)OD\HUFRGHOD\HUFRGH

URDGBW\SH߶ଐࣙಊऄࠅಕ

URDGBW\SHҲൢ౐ಕැ‫ݟ‬ಕʤ༙ྋۢؔʥ߶ଐࣙಊऄࠅಕʤφϱϋϩۢؔʥकགྷҲൢಕ౐ࢤ߶ଐಕ࿑कགྷҲൢಕʤφϱϋϩۢؔʥ౐ࢤ߶ଐಕ࿑ʤφϱϋϩۢؔʥकགྷҲൢಕʤ༙ྋۢؔʥҲൢࠅಕҲൢಕ࿑ҲൢࠅಕʤφϱϋϩۢؔʥҲൢಕ࿑ʤφϱϋϩۢؔʥҲൢࠅಕʤ༙ྋۢؔʥҲൢಕ࿑ʤ༙ྋۢؔʥकགྷஏ๏ಕࡋಕ࿑कགྷஏ๏ಕʤφϱϋϩۢؔʥࡋಕ࿑ʤφϱϋϩۢؔʥकགྷஏ๏ಕʤ༙ྋۢؔʥϓΥϨʖߦҲൢ౐ಕැ‫ݟ‬ಕͨ͹ଠಕ࿑Ҳൢ౐ಕැ‫ݟ‬ಕʤφϱϋϩۢؔʥ

―3―

図3

道路基礎データのマッピング結果

ル stb̲network̲data には､ 識別子 id､ ジオメトリカラム geom と道路類別の識別子 layercode､ 3 つの属性を持ち､ 道路の類別はテーブル tb̲road̲typeを参照している｡
表 3 は､ テーブル tb̲road̲type にある道路の類別を示し､ 図 3 は道路基礎データのマッピング結果を示す｡

2.1

PostGIS を用いた道路トポロジーデータの作成

通常､ 道路上の交通事故は､ 人々が何らかの目的で､ 出発地点から到達終点までの道路を通過する (自動車走行､ あるいは徒歩) 際に生じる｡ その通過路を ｢経路｣ と呼ぶ｡ 経路は､ 利用者の目的 (通勤､ 買い物など) と目標 (始点・終点) などにより現れ､ 経路上の道路の性質 (形状､ 車線､ 幅員など) や交通事情 (交通量､ 走行速度) などは事故発生の原因になる｡ 従って､ 経路は事故原因の解明に研究すべき空間対象である｡ 経路とは､ 一般的に経由した複数道路を指す｡ 経路の基本情報として､ 道路と道路の接続､ つまり､ 前の道路の終点と次の道路の始点をつなぐ情報は欠かせない｡ しかし､ テーブル stb̲―4―

標高勾配付き道路トポロジーデータの構築ǤǱǮȂ ǤǱǮȂ 

図4トポロジー関連のデータベース構造

network̲data の 3 つの属性には､ 経路に関わる情報はない｡ 道路のジオメトリ情報 geom に､ 道路の接続情報を加えると､ 道路のトポロジーデータになる｡
次は､ テーブル stb̲network̲data にトポロジー情報を加える実装方法の概要を解説するが､ 詳細については文献 ｢1｣ で参照できる｡
本研究は､ データベース PostgreSQL の PostGIS を用いたトポロジーを構築する｡ 図 4 はトポロジー関連のデータベース構造を示す｡ トポロジーの実装は､ 図 4 と図 5 に示した 4 つのステップを踏んで行われる｡ ステップ 1 は､
PostgreSQL の拡張 Extensions に postgis̲topology の拡張パッケージを追加する｡ これをおこなうと Schemas に topology というトポロジー管理のスキーマが現れる｡ 次のステップでは､ SQL 構文で本研究専用のトポロジース
キーマ my̲road̲topology を新規作成する｡ ステップ 3 においては､ SQL 構
文でテーブル stb̲network̲data にトポロジーカラム topogeom を新規作成する (図 5 の右図)｡ 最後のステップは ｢データ移入｣ である｡ ジオメトリ geomの道路位置情報を､ 道路の接続情報へ変換し､ その結果を新規の topogeomに書き込む｡ ｢データ移入｣ 作業は､ PostGIS の SQL 構文で実行される｡―5―ǤǱǮȂ ǤǱǮȂ 

図5

データ移入前後の stb̲network̲data の属性表

図6

my̲road̲topology スキーマ内の edge と node

図 5 に示したように､ 道路基本データはジオメトリ geom の空間位置情報のみ存在していたが (図 5 の左図)､ トポロジー加える topogeom の接続情報が加えられている (図 5 の右図)｡ トポロジー構築の主な結果は my̲road̲topology スキーマに格納されている (図 6)｡ テーブル edge は道路セグメント､node は道路セグメント間の接点､ face は近隣の道路セグメントで囲まれるポリゴンを指す｡ テーブル edge̲data には､ 接点 node を経由した接続情報とface により隣接情報が記述されているが､ 筆者は edge̲data から接続情報だけを抽出し､ 新たに edge̲data̲2 を作成した (図 6 の右図)｡
図 7 は接続情報の実例を示す｡ 例えば edge̲id 3 の start̲node と end̲nodeは､ それぞれ 5 と 6 (図 7 右図に下線を引く数値)｡ 次の edge̲id 4 は node 5から node 7 へ､ つまり､ node 5 で edge̲id 3 と edge̲id 4 がつながっている｡
図 8 は edge̲data̲2 と node のマッピング結果を示す｡―6―標高勾配付き道路トポロジーデータの構築

図7

図8

edge と node による道路の接続情報

edge̲data̲2 と node のマッピング結果

この節の最後に､ トポロジー構築に関する注意すべき 3 点を述べる｡ ①start̲node と end̲node は単なる edge 端点の名称であり､ 有向 edge の意味ではない｡ ② 現時点高架道路と交差する一般道路の対応はできないので､ 手動で修正する必要がある｡ ③ PC の計算負荷が大きい｡ 本研究は名古屋市を対象にしているが､ 道路基礎データ stb̲network̲data には 66,462 件のデータがある｡ それをベースに構築した edge̲data と node の行数は､ それぞれ113,980 と 69,333 件にのぼる｡ 筆者は､ Intel (R) Core (TM) i7-7820HQ CPU―7―

@2.90GHz､ 32GB メモリの PC で計算時間は約 1 時間 10 分を要した｡

2.2道路トポロジーデータに道路類別属性の追加

前節で完成した edge̲data には､ 本来道路基礎データ stb̲network̲dataが持つ道路の類別 layercode はない｡ 今後の分析に備え､ 次は PostGIS のSQL 構文で edge̲data に layercode の属性を追加する｡

SQL 構文 1





edge̲id,   (geom, 0.50) geommy̲road̲topology.stb̲edge̲middle̲point my̲road̲topology.edge̲dataedge̲idSQL 構文 2

a.edge̲id, b.layercode my̲road̲topology.stb̲edge̲middle̲point a, s̲network̲nagoya.stb̲network̲data b (a.geom, b.geom)
a.edge̲id

SQL 構文 1 と 2 の解説
SQL 構文 1 は edge̲data のラインに中間点を作成する｡ スキーマ my̲road̲topology から edge̲data を選び (行 3)､ その中から edge̲id と geomを選択し､ PostGIS の関数 ST̲LineInterpolatePoint (geom, 0.50)を用いてedge̲data の中間点を求める (行 1)｡ その結果を､ edge̲id の順番で (行 4)､新規テーブル stb̲edge̲middle̲point へ書き出す (行 2)｡ SQL 構文 2 は､edge̲data の中間点と道路基礎データ stb̲network̲data の空間参照 (overlayer) で､ edge̲id と layercode の関連を抽出する｡ スキーマ my̲road̲topology から stb̲ edge̲middle̲point を､ スキーマ s̲network̲nagoya から
stb̲network̲data を選択し､ それぞれ a と b の別名で定義する (行 2)｡ 次―8―

標高勾配付き道路トポロジーデータの構築

図9egde̲data の中間点と stb̲network̲data のオーバーレイ

図 10

道路トポロジーを入れたデータ構造

は､ a と b が交差している条件で､ 関数 st̲intersects (a.geom, b.geom) が成り立つ場合 (行 3)､ a からは edge̲id を､ b からは layercode を抽出し (行1)､ その結果を edge̲id の順で並べ替える｡
図 9 は egde̲data の中間点と stb̲network̲data のオーバーレイの様子を示し､ 図 10 は道路トポロジーを含めた道路データ構造の拡張を示す｡

3

標高データの取り入れ
道路交通事故と道路沿線の標高勾配の関連性を調べるために､ 道路データ構造に標高の情報を取り入れる｡ 標高は､ 国土交通省の基盤地図情報サイトで公

―9―

図 11

標高データ：左図 5 m 間隔ポイント､ 右図ラスタ形式データ

図 12

QGIS の Point sampling tool プラグインとその使い方表されている数値標高モデル 5 m のポイントデータを使用した (図 11 の左図)｡
計算負荷を考慮し､ 本稿は 4 つの 5 次メッシュ範囲のデータ (523666､ 523667､523656､ 523657) を取り入れ､ 5 m 間隔の標高ポイント数は 12,572,400 に達した｡ それを QGIS の計算ツール ｢ベクタのラスタ化 (rasterize)｣ でラスタ形式へ変換した (図 11 の右図)｡
次に､ QGIS のプラグインツール Point sampling tool (図 12 の左図) を使って､ トポロジーの node データと標高のラスタデータ elevation をオーバーレイし､ node ごとに標高情報を取得する｡ その結果を node̲2 に保存すると､図 13 の標高情報を取り入れたデータ構造になった｡
トポロジー node に標高値を入れることで､ edge 両端点の標高値を用いて経― 10 ―

標高勾配付き道路トポロジーデータの構築

図 13

標高と道路トポロジーを入れたデータ構造

図 14

トポロジー node の標高分布路の標高勾配が計算できるようになった｡ 図 14 はトポロジー node の標高値で描いた道路標高の分布図を示す｡― 11 ―

図 15

42009 年愛知県交通事故統計情報のマッピング

交通事故個票データとの関連付け
次は 2009 年愛知県道路交通事故の統計データ (図 15) を用いて､ 下記のSQL 構文 3 と 4 で事故発生地点と edge̲data̲2 の最短直線を求め､ 両者を関連付ける｡

SQL 構文 3
a.id, b.edge̲id,   (a.geom, b.geom) geom, (  (a.geom, b.geom)) length s̲network̲nagoya.stb̲accident̲point̲to̲edge̲5m̲all  s̲network̲nagoya.stb̲accident̲2009̲nagoya a,my̲road̲topology.edge̲data̲2 b  (a.geom, b.geom, 5) a.id

SQL 構文 4
a.id, a.edge̲id, a.geom, a.length s̲network̲nagoya.stb̲line̲acci̲to̲edge̲2009  s̲network̲nagoya.stb̲accident̲point̲to̲edge̲5m̲all a― 12 ―

標高勾配付き道路トポロジーデータの構築





( id, (length) min̲length s̲network̲nagoya.stb̲accident̲point̲to̲edge̲5m̲all id) b

a.id=b.id a.length = b.min̲length





a.id

SQL 構文 3 と 4 の解説
まず､ SQL 構文 3 は道路 edge̲data̲2 周辺に 5m のバッファを発生させる｡
そのバッファ範囲内に含まれる事故発生地点 (ポイント) と各々の道路 edge̲
data̲2 の間の最短直線を求める｡ 次の SQL 構文 4 は､ 前の結果から､ 事故発生地点にとって､ 最寄りの edge̲data̲2 との最短直線を抽出し､ 事故 id と最寄り edge̲id を関連付ける｡ 同じ計算を道路周辺 15 m バッファまで拡大した
ところ､ 全ての事故 id と最寄りの edge̲id に関連付けることになった｡
SQL 構文 3 では､ まず､ 交通事故データ stb̲accident̲2009̲nagoya を a に､
道路 edge̲data̲2 を b に定義する (行 3)｡ 事故 a が道路 b 周辺 5 m のバッファに含まれる条件の下で､ つまり､ 関数 st̲dwithin (a.geom, b.geom, 5) が成り立つの条件で (行 4)､ 事故 id､ 道路 edge̲id､ 事故発生地と道路の間の最短直線 st̲shortestline (a.geom, b.geom) とその長さを抽出する (行 1)｡ その結果を事故 id の順で中間結果 stb̲accident̲point̲to̲edge̲5m̲all に格納する｡
SQL 構文 4 は､ 複合 SQL 構文を持いて中間結果 stb̲accident̲point̲to̲edge̲5m̲all から､ 各々の事故 id にとって最寄りの edge̲id との最短直線を抽出する｡ 行 1 と行 3 は stb̲accident̲point̲to̲edge̲5m̲all から全項目を抽出し､ その結果を a とする｡ 一方､ 行 4 の複合 SQL 構文は､ 同じ中間結果から事故 id と事故 id ごとの直線長さの最小値を抽出し､ その結果を b とする｡
行 5 の条件のもとで､ 行 1 の抽出を行い､ その結果を事故 id の順に (行 6)､最終結果 stb̲line̲acci̲to̲edge̲2009 に書き出す｡
図 16 は､ SQL 構文 3 と構文 4 の実行結果を示し､ 図 17 はそれに伴う道路― 13 ―

図 16

図 17

道路交通事故と道路 edge の関連付け

道路トポロジー､ 道路類別､ 標高と事故を含めたデータ構造

データ構造の拡張を示す｡ このデータ構造を用いて､ 交通事故を道路のトポロジー構造､ 沿線の標高勾配､ 道路の類別など多角的な視点から分析するが可能になる｡― 14 ―

標高勾配付き道路トポロジーデータの構築

5

応用事例について
本節では､ 提示した道路のデータ構造を用いた研究事例を解説する｡ 図 18の背景には 2009 年の交通事故の発生件数に基づいたカーネル密度の分布を表し､ 可視化された事故多発交差点から研究対象を特定する｡ また､ 研究対象の交差点から､ QGIS のネットワーク解析のサービスエリアの機能を使って､ 対象交差点を通過し､ 100 m 範囲で到達可能な経路を抽出することができる｡ こ
れらの経路は事故分析の対象になる｡ このように提案した道路データ構造を利用し､ 道路の性質､ 標高勾配､ 事故の属性を含めた統合的な数値解析をすることができる｡ これまでの広範囲交通事故を対象に､ メッシュ単位を用いた研究と比べ､ 本研究は経路を対象とし､ 道路データの空間トポロジー性質を活かしたより局部的な視点をもつことが特徴であると言えよう｡

ᄂᆮ‫ݣ‬ᝋʩࠀ

図 18

道路データ構造の応用事例― 15 ―

まとめ
本稿は､ 道路交通事故を解析するための道路データ構造を提案した｡ 通常の道路基礎データと PostGIS Topology パッケージを使って､ 道路のジオメト
リ geom 情報からトポロジー topogeom 情報を引き出すことができる｡ 道路のトポロジーデータは､ edge と node で構成され､ node には道路沿線の標高値を付与させ､ edge には周辺で発生した交通事故を関連付ける｡ 提案した道路のデータ構造は､ 主に経路を対象とした交通事故の分析に使われる｡ 例えば､通勤時間帯の主な通勤経路､ 主な産業集積地区間の物流経路､ 大型ショッピン
グセンターとそれをつなぐ周辺の経路､ 交通事故多発の交差点とそれをつなぐ周辺の経路など､ 様々な地域社会の視点から交通事故の特徴を分析することが考えられる｡
また､ 提案された道路のデータ構造は､ 道路交通事故の研究に限らず､ 津波避難行動､ 障碍者車イスの走行ルート､ 競輪・ランニングの走るコースなどを含め､ 様々な研究分野への応用が期待される｡

謝辞
本研究は､ 2020 年度愛知大学経営総合科学研究所の研究プロジェクト ｢人工知能と地理情報システムを用いた愛知県の死亡事故データ分析｣ の研究補助を受けた｡

参考文献[1] 蒋湧､ 湯川晴敏､ 駒木伸比古､ 飯塚隆藤､ 村山徹､ 小川勇樹､ ｢地域研究のための空間データ分析入門｣､ 古今書院､ 2019.

― 16 ―