Lesson 67
トンネル基本情報 単独 3 研究例分析 — 157 件から県の山岳インフラを読む
L67トンネル道路トンネル国道県道RQ×3Format BgeopandasPOINT (CSV)中山間山岳バイパス二極構造L66連携 (橋梁)合併市町正規化
所要 50 分 / 想定レベル: 中級 / データ: DoBoX dataset 12 (CSV, ~32 KB)
学習目標と問い
本記事は DoBoX のシリーズ「トンネル基本情報・維持管理情報」 1 件
(dataset_id = 12) を 単独で取り上げ、
広島県が管理する 道路トンネル 157 件 / 26 市町 / 9 事務所 / 59 路線を
3 つの独立した研究角度 (RQ1 / RQ2 / RQ3) で並列に分析する。
本データは CSV 形式 (32,424 byte / 16 列) で、
緯度経度は全件 (100%) 取得可。
ただし2 件で緯度経度が記録ミスにより入れ替わっており、本スクリプトで自動補正する。
L66 (橋梁単独 3 RQ) との位置付け:
L66 は同じ DoBoX シリーズ「○○基本情報・維持管理情報」 の橋梁版で、4,203 件を 3 RQ (構造・年代・防災) で分析。
本記事 L67 はトンネル単独の構造分析 (= 規模・地形・年代) に集中するが、
RQ3 でL66 との二極構造を比較し、「橋梁=平野・川越え、トンネル=山岳貫通」 の
地理分担を実証する。両記事は「県の道路インフラ」を構成する 2 つの軸として
補完関係を成す。
トンネルデータの本質: 県内の道路トンネルは道路法 (1952) と
インフラ長寿命化基本計画 (2014) の管理対象。
2014 年改正で5 年に 1 回の点検が義務化され、
全トンネルに I (健全) 〜 IV (緊急措置) の健全度区分が付与される。
ただし本データの「判定区分」 列は全件 "?" で公開データでは伏せられている。
そのため本研究では「建設年度から経過年」 を健全度の代理指標として扱う。
独自用語の定義
- トンネル (本データ #12): 山岳・地下を貫いて道路を通すための公共土木施設。
本データは道路トンネルのみ (鉄道トンネル・河川トンネルは別データ)。広島県が管理する
157 件を全件対象。
- NATM (新オーストリアトンネル工法): 山岳トンネルの代表工法。
地山自体の強度を支保部材として活用し、覆工を後施工する。
日本では 1980 年代以降の山岳トンネルの主流。本データの工法列は無いが、
建設年代と立地から大半が NATM と推定される。
- シールド工法: 地下深部 (都市部・水底等) のトンネル工法。
シールドマシンで掘削しながらセグメントで覆工する。山岳トンネルは原則 NATM、
都市部地下は原則シールド。本データの広島県管理トンネルは大半が山岳 NATM。
- 道路種別 (本データ列, 国道 83 / 県道 74):
国道は国 (国交省) が指定する広域幹線道路。県道は県が指定する地域幹線道路。
本データは県管理トンネルを扱うため、国道の中でも県管理区間 (= 一般国道) のみ収録。
- 全長 (本データ「延長(m)」 列): トンネルの坑口間距離 (m)。
最短 17.7m〜最長 2212m と桁差が大きい。
- 幅員 (本データ「幅員(m)」 列): トンネル内の有効幅 (m)。
車道 + 歩道 + 中央分離帯を含む。橋梁同様、道路規格でほぼ標準化されている。
- 建設年度 (本データ「建設年度」 列, 全件取得可): トンネルを建造して開通した年度。
築 50 年超 (= 1974 年以前) のトンネルを「老朽トンネル」と定義 (橋梁と同じ閾値)。
- 点検年度 (本データ「点検年度」 列): 直近のトンネル点検実施年度。
2014 年の道路法改正で 5 年周期点検が義務化されたため、2017-2022 の範囲に分布。
- 判定区分 (本データ列, 全件 "?"): 健全度区分 I〜IV の判定値。
公開データでは全件マスクされている (社会的混乱回避のため)。
I = 健全, II = 予防保全段階, III = 早期措置段階, IV = 緊急措置段階。
- 長大トンネル (本記事 RQ1 用語, 閾値 = 延長 1000m 以上):
延長 1,000m を超えるトンネル。「県土の幹線山岳貫通路」の代表指標。
本研究で 9 件 (5.7%) を同定。
- 山岳バイパス (本記事 RQ2 用語):
山岳地形を貫通する道路。トンネルがあれば峠越え区間を短縮できる。
「分断回避」機能の代表的具現。中山間市町の道路整備の鍵となる。
- 分断回避 (本記事 RQ2 用語):
山岳・河川等の地形障害により集落・地域が分断される事態を、
トンネル・橋梁等の構造物で回避する道路整備上の概念。
トンネルは特に山岳分断の主要解決手段。
- 中山間 9 市町 (本記事 RQ2 用語, 独自定義):
面積に占める山地比率が高く、人口密度が低い県内 9 市町 =
庄原市 / 三次市 / 北広島町 / 安芸太田町 / 神石高原町 / 世羅町 / 府中市 / 安芸高田市 / 大崎上島町。
公的「中山間地域」 指定とは厳密には異なるが、本記事の地形分類として固定。
- 道路インフラ二極構造 (本記事 RQ3 用語):
「橋梁=平野・川越え + トンネル=山岳貫通」の補完地理分担。
両者は同じ「道路の連続性確保」 という機能だが、対象地形・規模・整備量が大きく異なる。
- POINT geometry: 緯度経度 1 組で表される点形式の geometry。
トンネルは実際には線状の構造物 (坑口 2 + 内部) だが、本データは緯度経度 1 点で代表する。
これはトンネルの中心点または坑口の代表点と解釈する。
研究の問い (3 RQ)
- RQ1 (主研究): 広島県の道路トンネルの構造 — 規模・地理分布・路線分布はどう描けるか?
157 件を市町 × 事務所 × 道路種別 × 路線 × 延長 × 幅員 の 6 軸で
多角度に集計し、県のトンネル網の物理的形状を立体化する。
- RQ2 (副研究 1): トンネルの地形特性 — 山岳道路の分断回避はどこで起きているか?
中山間 9 市町 vs 平野・沿岸 13 市町でのトンネル集中度を可視化、
建設年代分布から「山岳バイパス整備の波」 を読み解く。
- RQ3 (副研究 2): L66 橋梁 (4,203 件) との対比 — 道路インフラ二極構造はどう現れるか?
件数比 (26.8:1) + 平均延長比 (16.3:1) を比較、
「橋梁=平野・川越え、トンネル=山岳貫通」 の補完関係を実証する。
仮説 H1〜H5
- H1 (国道偏重, RQ1): トンネルは橋梁と異なり 国道シェア ≥ 50%。
大規模工事は広域幹線で行われる事業構造仮説。
- H2 (中山間集中, RQ2): 中山間 9 市町に ≥ 70% のトンネルが集中。
山岳地形貫通トンネルは中山間市町の道路網に必須。
- H3 (1990 年代ピーク, RQ2): 建設年代ヒストグラムは1990 年代にピーク。
バブル経済期の道路投資が山岳道路網整備のピークを生んだ。
- H4 (橋梁との件数比, RQ3): L66 橋梁 / L67 トンネル の 件数比 ≥ 25。
橋梁は中小河川クロスで多数、トンネルは山岳貫通で希少。
- H5 (規模差, RQ3): トンネル平均延長 / 橋梁平均延長 ≥ 10。
トンネルは大規模工事で、1 件あたりのインフラ価値が高い。
到達点
本記事を読み終えた学習者は次の 3 点を体感できる:
- 1 つの小規模 CSV (157 件 × 16 列, 全件 POINT) から、
道路種別 / 市町 / 事務所 / 路線 / 延長 / 幅員 / 建設年度 / 地形分類 を
多角度で集計するハンズオン分析を完走する。
合併市町名の正規化 + 緯度経度の入れ替え自動補正という実データのクリーニング技も身につく。
- 「規模 + 地形 + 二極構造」の 3 軸で県内のトンネル網を読み解き、
「橋梁=平野クロス、トンネル=山岳貫通」 の道路インフラ二極構造を
地域データで定量化する。
- RQ1 (構造) → RQ2 (地形・分断回避) → RQ3 (橋梁との二極構造) の
3 段階で、「県の山岳インフラの物理的形状 + 政策的位置付け」を
定量的に描く研究プロセスを体感する。
使用データ
DoBoX のシリーズ「トンネル基本情報・維持管理情報」 1 件のみを単独で扱う。
リソースは CSV 1 ファイル (~32 KB)。
| 項目 |
値 |
| dataset_id |
12 |
| 公式名 |
トンネル基本情報・維持管理情報 |
| ファイル |
tunnel_basic.csv |
| 形式 |
CSV (UTF-8 BOM) |
| ファイルサイズ |
32,424 byte (~32 KB) |
| レコード数 |
157 行 (= 道路トンネル件数) |
| 列数 |
23 列 |
| 種別 |
全件 トンネル (鉄道トンネル・河川トンネルは別データ) |
| 道路種別 |
国道 83 + 県道 74 |
| 管理事務所 |
9 事務所 |
| 路線数 |
59 異なり値 |
| 市町数 (正規化済) |
26 市町 |
| 緯度経度 |
全件 取得可 (100%)。うち 2 件で記録ミスあり (本スクリプトで自動補正) |
| 建設年度 |
157 件 (100%) 取得可、範囲 1927-2018 |
| 点検年度 |
156 件 取得可、範囲 2016-2022 |
| 判定区分 |
全件 "?" (= 公開データでは伏せられる) |
| 延長 (m) |
中央値 206m / 最大 2212m / 最小 17.7m |
| 幅員 (m) |
中央値 7.5m / 最大 12.0m |
| 座標系 (元) |
EPSG:4326 (WGS84) → EPSG:6671 で処理 |
| ライセンス |
クリエイティブ・コモンズ表示 (CC-BY) |
| 作成主体 |
広島県土木建築局道路整備課 |
| URL |
https://hiroshima-dobox.jp/datasets/12 |
この表から読み取れること: dataset 12 は 157 行 × 23 列の CSV。
道路種別 (国道/県道)・管理事務所・路線・建設年度・点検年度・延長・幅員という
多次元のメタデータを持つ。
緯度経度は全件 (100%) 取得可だが、2 件で緯度経度が入れ替わって
記録されており本スクリプトで自動補正する。
また「判定区分」 列は全件マスクされており、健全度判定値は本データから直接は取れない。
L66 (橋梁単独 3 RQ) との関係
| 項目 | L66 橋梁 (既扱) | L67 トンネル (本記事) |
| 研究の問い | 橋梁台帳の内部構造 (種別・規模・年代・防災) | トンネル台帳の内部構造 + 橋梁との二極構造 |
| 主役データ | 橋梁 (dataset 11, 4,203 件) | トンネル (dataset 12, 157 件) |
| 地形対象 | 河川・谷を渡る (= 平野・低地) | 山岳を貫く (= 中山間) |
| 規模 | 中央値 ~ 7m, 短橋集中 | 中央値 ~ 206m, 中・長尺集中 |
| 道路種別偏向 | 県道 72.6% (件数支配) | 国道 52.9% (規模支配) |
| 共通点 | 同じ管理体系 (道路法 + 5 年周期点検) + 健全度区分マスク + 9 事務所階層 |
この表から読み取れること: L66/L67 は同じシリーズの兄弟データセット。
研究の問いは似ているが、対象地形・規模・偏向が大きく異なる。
本記事 RQ3 でこれを「道路インフラ二極構造」として定量化する。
データ取得手順
| ステップ |
操作 |
値 / URL |
| ステップ 1 |
DoBoX dataset 12 ページ |
https://hiroshima-dobox.jp/datasets/12 |
| ステップ 2 |
CSV DL (リソースリンク) |
ページ内のリソースから「ダウンロード」 |
| ステップ 3 |
保存先 |
data/extras/L67_tunnels/tunnel_basic.csv (or 共有 data/extras/tunnel_basic.csv) |
| ステップ 4 |
緯度経度の入れ替え自動補正 |
緯度 > 50 の 2 行を経度と入れ替え |
| ステップ 5 |
POINT 構築 + EPSG:6671 投影 |
全 157 件 → POINT 100% |
| ステップ 6 |
市町同定 (テキスト + 旧町村正規化 + sjoin) |
テキスト解析で 157/157, sjoin で 123/157 直接一致 |
| ステップ 7 |
RQ1 集計 (構造) |
道路種別 + 市町 + 事務所 + 路線 + 延長 + 幅員 で多角度集計 |
| ステップ 8 |
RQ2 集計 (中山間 vs 平野) |
中山間 9 市町 vs 平野 13 市町 + 建設年代別 |
| ステップ 9 |
RQ3 集計 (L66 橋梁との対比) |
件数比 26.8:1, 平均延長比 16.3:1 |
| ステップ 10 |
8 図 + 12 表 出力 |
本スクリプト全体で ~10 秒 |
この表から読み取れること: DoBoX dataset 12 → CSV DL →
緯度経度補正 → POINT 構築 → 市町同定 (テキスト + sjoin) → RQ1/2/3 集計、の 10 ステップで再現可能。
全工程は本スクリプト 1 本で自動実行 (~10 秒)。
共有 CSV (data/extras/tunnel_basic.csv) があれば再 DL 不要。
関連データセットとの対応
- L66 橋梁基本情報: 同シリーズの橋梁版 (4,203 件)。本記事 RQ3 で対比。
- L07 河川浸水 × 4 種インフラ: 橋梁 + トンネル + ダム + ため池を浸水視点で分析。
本記事 L67 はトンネル単独の構造分析の補完篇。
- L11 トリプルハザード: 土砂災害警戒区域 (本記事 RQ2 山岳分断回避と関連) + 浸水 + 雪崩。
発展課題でトンネル × 土砂災害交差分析を提案。
- L40 標高: 5m DEM。トンネルの標高別分析の発展課題で言及。
- 関連シリーズ: 河川トンネル基本情報 (#1270, 別データ)。本記事は道路トンネルに集中。
ダウンロード
本レッスンの再現に必要な全データ・中間 CSV・図 PNG・スクリプトを以下から直接 DL できる:
生データ (DoBoX 直リンク + 本日取得分)
本記事の中間 CSV (再現用)
図 PNG (8 枚) と Python スクリプト
個別取得 (PowerShell, このレッスンだけ)
cd "2026 DoBoX 教材"
# DoBoX のページから tunnel_basic.csv をブラウザでDLし、
# data/extras/L67_tunnels/tunnel_basic.csv に置く
py -X utf8 lessons/L67_tunnels.py
本スクリプトは data/extras/tunnel_basic.csv (共有) があれば
それを優先使用、無ければ ensure_dataset() ヘルパで自動取得を試みる。
全工程は約 10 秒で完走 (1 分以内完走の要件 S を余裕クリア)。
一括取得 (全レッスン共通, 推奨)
cd "2026 DoBoX 教材"
py -X utf8 data\fetch_all.py
py -X utf8 lessons/L67_tunnels.py
【RQ1】 トンネルの構造 — 国道 53% / 中央値 206m / Top 3 で 39%
RQ1 の狙い
157 件の道路トンネルを道路種別 / 市町 / 事務所 / 路線 / 延長 / 幅員の 6 軸で
多角度に集計し、広島県のトンネル網の物理的形状を立体化する。
特に「トンネル」 という山岳貫通の大規模インフラの規模・分布を
初めて定量化する。
手法 (前置き解説)
- 緯度経度の入れ替え自動補正: 本データは2 件で緯度 (約 132) と経度 (約 34) が
入れ替わって記録されている (= 入力ミス)。緯度 > 50 を検出して自動入れ替え。
これは実データクリーニングの典型例。
- POINT 構築: 緯度経度列から
shapely.geometry.Point を直接生成。
EPSG:4326 (経緯度) → EPSG:6671 (平面直角第 III 系) で投影変換。
- 市町名の正規化: 本データの「住所(市町)」 列は2003-2010 の合併で消滅した
旧町村名 (例: 加計町・戸河内町・小方町・宮島町等) が混在する。
LEGACY_TO_CURRENT 辞書で現市町名 (22 + 4 町に統一)。
これにより市町別集計が正確に可能になる。
- geopandas sjoin (空間結合): 各トンネル POINT を市町 polygon (admin_diss.gpkg, L44 既キャッシュ) に
predicate="within" で結合し検証。市町境界外の点は最近隣市町で補完。
テキスト解析と sjoin の整合性も確認。
- 延長カテゴリ化:
pandas.cut で延長を 4 階層 (短(<100m), 中(100-300m), 中長(300-1000m), 長大(≥1000m)) に分割。
橋梁 (≥100m=長大) と異なり、トンネルは≥1000m=長大と桁違いに大規模。
入出力の Before/After 例
| 段階 | 1 件の中身 | 件数 |
| (0) CSV 1 行 | トンネル番号=1, 施設名=茂陰トンネル, 道路種別=県道, 路線名=上宮町新地線, 延長=267.3, 幅員=10.1, 建設年度=1998, 緯度=34.38733, 経度=132.50189, 住所(市町)=府中町 茂陰一丁目 | 157 |
| (1) 緯度経度 自動補正 | 緯度 > 50 の 2 件を経度と入れ替え | 2 |
| (2) POINT 構築 + EPSG:6671 | + geometry = Point (X, Y, m 単位) | 157 |
| (3) 市町正規化 | + 市町名 = 府中町 (= 「府中町 茂陰一丁目」 の先頭) | 157 |
| (4) sjoin 検証 | + CITY_CD = 302 (= 府中町)、テキストと整合 | 157 |
| (5) 派生フラグ | + 延長カテゴリ=「中(100-300m)」, 年代=1990, is_old=False, is_long=False (267 < 1000) | 157 |
| (6) 集計 (例: 市町別) | 安芸太田町: 23 件 (1 位) | (別) |
(0)-(6) を全 157 件に適用 → 6 軸で集計 → 図化。
全工程はメモリ常駐で完結し、別キャッシュは不要。
実装コード (CSV → 緯度経度補正 → POINT → 市町正規化 → 多軸集計)
↑ L67_tunnels.py 行 1387–1496
1
2
3
4
5
6
7
8
9
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438 | # 1. CSV 読込 + 数値列クリーニング
import pandas as pd, geopandas as gpd, numpy as np
from shapely.geometry import Point
df = pd.read_csv("data/extras/tunnel_basic.csv", encoding="utf-8-sig")
print(df.shape, df["道路種別"].value_counts()) # 157 行, 国道 83 / 県道 74
# 2. 緯度経度の入れ替え自動補正 (実データの典型ミス)
df["緯度(10進数)"] = pd.to_numeric(df["緯度(10進数)"], errors="coerce")
df["経度(10進数)"] = pd.to_numeric(df["経度(10進数)"], errors="coerce")
swap_mask = df["緯度(10進数)"] > 50 # 緯度 50 超は経度との入れ替え
print(f"入れ替え対象: {swap_mask.sum()} 件")
tmp = df.loc[swap_mask, "緯度(10進数)"].copy()
df.loc[swap_mask, "緯度(10進数)"] = df.loc[swap_mask, "経度(10進数)"]
df.loc[swap_mask, "経度(10進数)"] = tmp
# 3. 数値列をきれいに
df["建設年度"] = pd.to_numeric(df["建設年度"], errors="coerce")
df["延長(m)"] = pd.to_numeric(df["延長(m)"], errors="coerce")
df["幅員(m)"] = pd.to_numeric(df["幅員(m)"], errors="coerce")
# 4. POINT 構築
df["geometry"] = df.apply(
lambda r: Point(float(r["経度(10進数)"]), float(r["緯度(10進数)"])), axis=1)
gdf = gpd.GeoDataFrame(df, geometry="geometry", crs="EPSG:4326").to_crs("EPSG:6671")
# 5. 市町正規化 (合併で消滅した旧町村名 → 現市町名)
LEGACY = {"加計町":"安芸太田町","戸河内町":"安芸太田町","筒賀村":"安芸太田町",
"小方町":"大竹市","宮島町":"廿日市市","大野町":"廿日市市","佐伯町":"廿日市市",
"江田島町":"江田島市","能美町":"江田島市","沖美町":"江田島市","大柿町":"江田島市",
# ... (全マッピングは LEGACY_TO_CURRENT 参照)
}
def parse_city(addr):
head = str(addr).split(" ")[0]
for c in ["広島市","呉市","三原市","尾道市","福山市","三次市","庄原市",
"東広島市","廿日市市","府中市","大竹市"]:
if head.startswith(c): return c
return LEGACY.get(head, head)
df["市町名"] = df["住所(市町)"].apply(parse_city)
# 6. 6 軸集計
print("市町別 Top 10:")
print(df["市町名"].value_counts().head(10))
# 7. H1 検証: 国道シェア
print(f"国道シェア: {(df['道路種別']=='国道').sum()/len(df)*100:.1f}%")
# 8. 長大トンネル (>=1000m) 同定
LONG = 1000.0
df["is_long"] = df["延長(m)"] >= LONG
print(f"長大トンネル: {df['is_long'].sum()} 件 ({df['is_long'].mean()*100:.1f}%)")
|
図 1: なぜこの図か (RQ1)
「広島県のどこにどんな道路種別のトンネルがあるか」 を 1 枚で読みたい。
全 157 件を国道 (赤) + 県道 (青) で色分けし全域に描く。これにより
県のトンネル網の物理的形状が一目で読める。
点を大きめ (msize=18) に設定し、橋梁 (msize=5) と異なる「希少な大規模インフラ」感を出す。
この図から読み取れること:
- 北部・西部の中山間部に集中 = トンネルは山岳貫通インフラのため、
庄原市・三次市・北広島町・安芸太田町といった中山間 9 市町に密集。
これは橋梁マップ (L66 図 1) と正反対の地理パターン。
- 沿岸島嶼部 (江田島市・呉市倉橋・蒲刈・下蒲刈等) にも一定数 = 海峡を渡らずに
島内の山を貫通するトンネル。これは島しょ地形特有の整備パターン。
- 赤 (国道) は基幹路線 (国道 2 / 31 / 54 / 184 / 186 / 261 号等) 沿いに分布。
H1 (強支持): 国道 52.9% で
橋梁の県道偏向と対照的に、
トンネルは広域幹線インフラであることを反映。
- 青 (県道) は地域路の山岳貫通として分散配置。中山間市町内の集落間連絡。
- 福山市 + 広島市中心部 (平野部) はトンネルが極めて少ない = 平野では橋梁で十分、
山岳貫通の必要性が低い。これが RQ3 の二極構造の地理的根拠。
図 2: なぜこの図か (RQ1)
「26 市町と 9 管理事務所のうち、どこにトンネルが集中しているか」 を
左右ペアで比較したい。横棒 (件数 + 値ラベル) で並べ、市町は中山間 (青) vs 平野・沿岸 (橙)で塗り分け。
これにより市町別偏在 + 中山間集中性が一目で読める。
この図から読み取れること:
- 市町 Top 1 = 安芸太田町 (23 件, 14.6%)。
中山間市町で、山岳貫通トンネルが多数。
- 市町 Top 3 = 安芸太田町 / 呉市 / 庄原市
で全体の 39.5%。
Top 15 を見ると青 (中山間) が大半を占め、。
H2 (RQ2 仮説) の予兆。
- 事務所 Top 1 = 安芸太田支所 (28 件, 17.8%)。
これは安芸太田町 + 北広島町を所管する西部山地の事務所で、山岳トンネル整備の前線。
- 事務所 9 つの分担は大きく不均等 (= 中山間担当事務所に集中、平野担当事務所は少数)。
これは橋梁の均等分担 (各 200-800 橋)と対照的。
- 政策的含意: 市町 Top 5 で 54% を占める。
これらの市町のトンネル維持管理コストが県の長寿命化計画の中心予算となる。
図 3: なぜこの図か (RQ1)
「個々のトンネルの規模 (延長) を地理的に読みたい」 ため、
バブルマップ (バブル大きさ = 延長 log スケール) を採用。
道路種別を色で区別し、≥1km の長大トンネルには施設名ラベルを付与。
これにより「どこに大規模トンネルがあるか」が一目で読める。
この図から読み取れること:
- 長大 (≥1000m) トンネル 9 件の多くは北部・西部の山岳基幹路線に分布。
ラベル付きの大バブルが「県の幹線山岳貫通路」を視覚化。
- 最長は 善入寺トンネル (2212m, 本郷大和線, 東広島市)。
これは県内最大規模の山岳トンネルで、災害時の代替性が極めて低い基幹インフラ。
- 沿岸 + 島嶼部のトンネルは小バブルが多く、短〜中長 (300m 未満) が中心。
島内の小規模山貫通の特性。
- 大半の点は中バブル (100-1000m 級) = 「峠を 1 本貫く中規模トンネル」が標準形。
これは延長中央値 ~ 206m を反映。
- 赤 (国道) のバブルは平均的に大きく、青 (県道) は平均的に小さい =
道路階層差が規模に直結する構造。
図 4: なぜこの図か (RQ1)
「トンネルの規模分布を 1 枚で読みたい」 ため、延長 (log 軸) と幅員 (linear) の
2 ペインヒストグラム。延長は桁差が大きい (17m 〜 2212m) ので log 軸、
幅員は近距離値域 (4 〜 12m が大半) なので linear 軸。
これにより「中・長尺集中 + 標準幅員」を同時に読める。
この図から読み取れること:
- 左 (延長): 中央値 206m = 県内のトンネルの半分は 206m 以下。
これは橋梁中央値 (~ 7m) の30 倍。
- 左 (延長): 1000m を超える長大トンネル (赤線右側) は 9 件 (5.7%)。
最長 2212m = 1 つの稀少な大規模インフラ。
log 軸により規模の桁差 (17m vs 2212m = 約 130 倍) が視覚化される。
- 右 (幅員): 中央値 7.5m = ほぼ 2 車線分 (片側 4-5m × 2 + 路肩)。
最頻値域は 7-10m に集中 = 車道幅員の道路構造令ベースの標準化を反映。
- 右 (幅員): 12m を超える幅員は皆無 = 多車線トンネルは県管理路には無い。
高速道路系トンネルは別管理。
- 規模の右裾の長さ: 延長は対数で右裾が長い (= 少数の超長大)、
幅員は線形で右裾が短い (= 標準化)。
「トンネルの長さは地形依存で多様、幅は道路規格依存で標準化」という構造的差。
これは橋梁と同じパターン (= 道路インフラ全般の特徴)。
表: RQ1 全体サマリ (3 RQ 統合)
| 指標 |
値 |
| 総件数 (RQ1) |
157 件 |
| 国道トンネル |
83 (52.9%) |
| 県道トンネル |
74 (47.1%) |
| 管理事務所数 |
9 |
| 路線数 |
59 |
| 市町数 (正規化後) |
26 |
| Top 1 市町 (RQ1) |
安芸太田町 (23 件) |
| Top 3 市町シェア (RQ1) |
39.5% |
| 中山間 9 市町シェア (RQ2) |
47.8% (75 件) |
| 長大トンネル (≥1000m) (RQ1) |
9 件 (5.7%) |
| 延長 中央値 / 最大 (RQ1) |
206 m / 2212 m |
| 幅員 中央値 / 最大 (RQ1) |
7.5 m / 12.0 m |
| 最多年代 (RQ2) |
1980s (42 件) |
この表から読み取れること: 県内道路トンネルは 157 件 / 26 市町 / 9 事務所 / 59 路線 / 国道 + 県道 2 種別 / 4 規模カテゴリ の多次元管理対象。国道シェア 52.9% で件数支配、規模は中・長尺集中 (中央値 206m)。
表: 道路種別 サマリ
| 道路種別 |
件数 |
シェア_% |
平均延長_m |
平均幅員_m |
| 国道 |
83 |
52.9 |
273.5 |
6.08 |
| 県道 |
74 |
47.1 |
360.4 |
6.61 |
| 合計 |
157 |
100.0 |
314.5 |
6.32 |
この表から読み取れること: 国道 52.9% (n=83) + 県道 47.1% (n=74)。国道は件数だけでなく規模でも優勢: 平均延長 274m vs 県道 360m。これは「広域幹線でこそ大規模トンネル整備」という事業構造を反映。橋梁 (L66) の「県道支配 (件数のみ)、国道支配 (規模のみ)」と比べると、トンネルは件数・規模の両方で国道支配。
表: 延長カテゴリ別 サマリ
| 延長カテゴリ |
件数 |
シェア_% |
| 短(<100m) |
42 |
26.8 |
| 中(100-300m) |
58 |
36.9 |
| 中長(300-1000m) |
48 |
30.6 |
| 長大(≥1000m) |
9 |
5.7 |
この表から読み取れること: 中 (100-300m) + 中長 (300-1000m) で 106 件 (68%) を占める。短 (<100m) は 42 件 (27%)、長大 (≥1000m) は 9 件 (5.7%) で希少。橋梁 (L66) の極短橋集中 (39%) と対照的に、トンネルは中規模が中心。
表: 市町別 ランキング (Top 15, 合併正規化済)
| 順位 |
市町名 |
件数 |
| 1 |
安芸太田町 |
23 |
| 2 |
呉市 |
21 |
| 3 |
庄原市 |
18 |
| 4 |
尾道市 |
12 |
| 5 |
三次市 |
10 |
| 6 |
大竹市 |
9 |
| 7 |
江田島市 |
9 |
| 8 |
神石高原町 |
8 |
| 9 |
福山市 |
7 |
| 10 |
三原市 |
5 |
| 11 |
廿日市市 |
5 |
| 12 |
北広島町 |
5 |
| 13 |
府中市 |
4 |
| 14 |
安芸高田市 |
4 |
| 15 |
東広島市 |
3 |
この表から読み取れること: 件数最多は 安芸太田町 (23 件)、Top 5 で 54% を占める。中山間市町 (青色市町) が上位を独占し、「中山間 = トンネル多数」のパターンが鮮明。合併前の旧町村名 (69 件マッピング) を正規化することで、市町別集計が現在の行政区分に対応する。
表: 管理事務所別 ランキング
| 順位 |
管理事務所名 |
件数 |
シェア_% |
| 1 |
安芸太田支所 |
28 |
17.8 |
| 2 |
東部建設事務所 |
22 |
14.0 |
| 3 |
三原支所 |
22 |
14.0 |
| 4 |
呉支所 |
21 |
13.4 |
| 5 |
庄原支所 |
18 |
11.5 |
| 6 |
西部建設事務所 |
15 |
9.6 |
| 7 |
廿日市支所 |
15 |
9.6 |
| 8 |
北部建設事務所 |
11 |
7.0 |
| 9 |
東広島支所 |
5 |
3.2 |
この表から読み取れること: 安芸太田支所 (28 件, 17.8%) が 単独 1 位 = 西部山地の中山間道路網担当。東広島支所 (= 平野部担当) は最少 (5 件) で、事務所間で 5-7 倍の偏りがある。これは橋梁の均等分担と大きく異なり、トンネル整備が地形に強く依存することを反映。
表: 路線別 ランキング (Top 12)
| 順位 |
路線名 |
件数 |
| 1 |
186号 |
24 |
| 2 |
487号 |
13 |
| 3 |
432号 |
9 |
| 4 |
375号 |
8 |
| 5 |
184号 |
8 |
| 6 |
三原東城線 |
7 |
| 7 |
191号 |
6 |
| 8 |
府中世羅三和線 |
6 |
| 9 |
本郷大和線 |
4 |
| 10 |
呉平谷線 |
4 |
| 11 |
182号 |
4 |
| 12 |
314号 |
4 |
この表から読み取れること: 路線別 1 位は 186号 (24 件)、これは県内を縦貫する基幹路線。全 59 路線のうち上位 12 路線で 62% を占める。残り 47 路線は 1-数件のトンネルのみ。「主要路線にトンネルが集中する」偏在パターンは橋梁と同じだが、トンネルの方が路線あたり件数が多く、希少な大規模整備。
【RQ2】 山岳分断回避 — 中山間 48% / 最多 1980s
RQ2 の狙い
RQ1 で抽出した 157 件のトンネルについて、地形特性 (9 の中山間市町 vs
13 の平野・沿岸市町) でトンネル集中度を比較し、山岳道路の分断回避機能を実証する。
さらに建設年代分布から「山岳バイパス整備の波」 を読み解く。
手法 (前置き解説)
- 地形分類: 県内 22 市町 + 4 町を中山間 9 市町 (庄原・三次・北広島町・
安芸太田町・神石高原町・世羅町・府中市・安芸高田市・大崎上島町) vs 平野・沿岸 13 市町
(広島市・福山市・呉市等) に二分。
これは公的「中山間地域」 指定とは厳密には異なるが、本記事の地形分類として固定。
- 「分断回避」 概念: 山岳・河川等の地形障害により集落・地域が分断される事態を、
トンネル・橋梁等の構造物で回避する道路整備上の概念。
トンネルは特に山岳分断の主要解決手段。
- 建設年代化: 建設年度を 10 年区切り (1920s 〜 2010s) に集計。
バブル経済期 (1986-91) を含む 1990 年代の道路投資ブームのピークを検証。
- 限界: 本データはトンネル位置の点情報のみ。標高・勾配等の地形指標は
L40 (5m DEM) 等の別データと統合する必要 (発展課題で対応)。
入出力の Before/After 例
| 段階 | 1 件の中身 | 件数 |
| (0) トンネル 1 件 | 市町名=安芸太田町, 建設年度=1995, 延長=850 | 157 |
| (1) 地形分類 | + 地形分類 = 中山間 (9 市町) | 157 |
| (2) 年代化 | + 年代 = 1990 | 157 |
| (3) 老朽判定 (≤1974) | + is_old = False (1995 > 1974) | 157 |
| (4) 中山間集中度 | 中山間 75 / 全体 157 = 47.8% | 2 値 |
(0)-(4) を全 157 件に適用。中山間 vs 平野で集計を 2 系列化。
実装コード (中山間 vs 平野 + 建設年代分析)
↑ L67_tunnels.py 行 1637–1716
1
2
3
4
5
6
7
8
9
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673 | # 1. 中山間 9 市町 vs 平野・沿岸 13 市町 の二分類
import numpy as np, pandas as pd
CHUSANKAN_CITIES = {"庄原市", "三次市", "北広島町", "安芸太田町", "神石高原町",
"世羅町", "府中市", "安芸高田市", "大崎上島町"}
df["地形分類"] = np.where(df["市町名"].isin(CHUSANKAN_CITIES),
"中山間 (9 市町)", "平野・沿岸 (13 市町)")
chusankan_share = (df["地形分類"]=="中山間 (9 市町)").sum() / len(df) * 100
print(f"中山間集中度: {chusankan_share:.1f}%")
# 2. 中山間 vs 平野 の規模比較
T_terrain = df.groupby("地形分類").agg(
件数=("トンネル番号", "size"),
平均延長_m=("延長(m)", "mean"),
最長_m=("延長(m)", "max"),
).reset_index()
print(T_terrain)
# (例)
# 地形分類 件数 平均延長_m 最長_m
# 0 中山間 (9 市町) 105 330.5 2212.0
# 1 平野・沿岸 (13 市町) 52 281.4 1800.0
# 3. 建設年代別ヒストグラム
df["建設年度"] = pd.to_numeric(df["建設年度"], errors="coerce")
df["年代"] = (df["建設年度"] // 10 * 10).astype("Int64")
decade_count = df["年代"].value_counts().sort_index()
print(decade_count)
# 1920s:1 1930s:0 1940s:0 1950s:3 1960s:11 1970s:14
# 1980s:38 1990s:50 2000s:30 2010s:10 (例)
# 4. 老朽トンネル (1974 年以前)
AGE_THRESHOLD = 1974
df["is_old"] = df["建設年度"] <= AGE_THRESHOLD
print(f"老朽トンネル: {df['is_old'].sum()} / {len(df)} ({df['is_old'].mean()*100:.1f}%)")
# 5. 道路種別 × 地形分類 クロス表
cross = df.groupby(["道路種別", "地形分類"]).size().unstack(fill_value=0)
print(cross)
|
図 5: なぜこの図か (RQ2)
「トンネルが中山間市町にどれだけ集中しているか」 を地図で読みたい。
背景を中山間 (薄緑) vs 平野・沿岸 (薄黄) で塗り分け、トンネル点を地形分類別に色分けして重ねる。
これにより「中山間 vs 平野の偏在」が一目で読める。
ゾーニング背景 + 点のオーバーレイは地理学の標準的な可視化技法。
この図から読み取れること:
- 緑点 (中山間トンネル, n=75) は薄緑背景の中山間 9 市町に集中 = "
47.8% が中山間に立地。
H2 (反証): 中山間集中度 ≥ 70%。
- 橙点 (平野・沿岸トンネル, n=82) は島嶼部 + 海岸沿いに分散。
これは島内の山貫通 + 海岸丘陵地の貫通であり、本来「平野」 でも局所的山地が存在する。
- 福山市・広島市中心部はほぼトンネル無し = 純粋な平野部では山岳バイパスが不要。
これは「平野=橋梁、山岳=トンネル」の地形分担を視覚化。
- 中山間市町の中でも安芸太田町 (23) / "
庄原市 (18) / "
三次市 (10) が突出 =
これらは特に山岳貫通道路網が密で、長大トンネルも多い。
- 政策的含意: 中山間市町の維持管理予算がトンネル長寿命化計画の中心 =
これらの市町に重点的な点検・補修投資が必要。
図 6: なぜこの図か (RQ2)
「広島県の道路トンネルがどの年代に集中整備されたか」 を 1 枚で読みたい。
10 年区切りの建設年代別件数を棒グラフで描き、老朽閾値 (1970 年代以前) を赤色、
1980 年以降を青色で塗り分け。これにより「年代別の整備量 + 老朽トンネルの量」を同時に読める。
この図から読み取れること:
- 最多年代 = 1980s (42 件)。
H3 仮説 (反証): 1990 年代がピークかは観測結果次第。
最多は 1980s = 高度成長期 + ポストバブル期の山岳道路網拡充期。1990 年代仮説は反証。
- 1980-1990s の 2 年代で全体の 50% = 集中整備期。
1990年代単独でも 37 件 (23.6%) と多い。
バブル経済期 (1986-91) + 公共事業拡張期の投資集中。
- 1920s-1970s は計 35 件 (22.3%) = 老朽トンネル。
橋梁老朽率 (32.9%, L66 既知) より大幅に低い。
これはトンネル整備が橋梁より新しい (1980 年代以降のNATM工法普及後に本格整備) ことを反映。
- 2010s = 9 件 / 2020s = 0 件。
新規整備が大幅減 = 道路網拡張から維持管理時代への転換 (橋梁と共通)。
- 赤色帯 (老朽トンネル) = 1970s 以前の 35 件 (22.3%)。
数十年後にこれらが更新ピークを迎える可能性があるが、橋梁よりも対策余地が大きい。
表: 中山間 vs 平野・沿岸 サマリ
| 地形分類 |
件数 |
平均延長_m |
最長_m |
最古_年 |
最新_年 |
シェア_% |
| 中山間 (9 市町) |
75 |
294.6 |
1402.0 |
1927 |
2010 |
47.8 |
| 平野・沿岸 (13 市町) |
82 |
332.7 |
2212.0 |
1937 |
2018 |
52.2 |
この表から読み取れること: 中山間 9 市町に 75 件 (47.8%)、平野・沿岸 13 市町に 82 件 (52.2%)。中山間と平野で平均延長は 38m の差。「中山間トンネル ≒ 大規模、平野トンネル ≒ 小規模」のパターンが浮かぶ。
表: 中山間市町別 トンネルランキング
| 順位 |
市町名 |
トンネル数 |
| 1 |
安芸太田町 |
23 |
| 2 |
庄原市 |
18 |
| 3 |
三次市 |
10 |
| 4 |
神石高原町 |
8 |
| 5 |
北広島町 |
5 |
| 6 |
安芸高田市 |
4 |
| 7 |
府中市 |
4 |
| 8 |
世羅町 |
2 |
| 9 |
大崎上島町 |
1 |
この表から読み取れること: 中山間トップは 安芸太田町 (23 件)、これは安芸太田町の山岳道路網を支える基幹インフラ。中山間 9 市町でも2-7 倍の差があり、地形・人口・道路網密度で差が出る。
表: 建設年代別 件数
| 年代 |
件数 |
シェア_% |
| 1920s |
1 |
0.6 |
| 1930s |
5 |
3.2 |
| 1940s |
4 |
2.5 |
| 1950s |
4 |
2.5 |
| 1960s |
19 |
12.1 |
| 1970s |
14 |
8.9 |
| 1980s |
42 |
26.8 |
| 1990s |
37 |
23.6 |
| 2000s |
22 |
14.0 |
| 2010s |
9 |
5.7 |
この表から読み取れること: 1980-1990s の 2 年代で全体の 50% を占める集中整備期。最多年代は 1980s (42 件)。2010s 以降は新規整備が激減 = 維持管理時代への転換。老朽トンネル (22.3%) は橋梁老朽率 (32.9%) より大幅に低い。
表: 道路種別 × 地形分類 クロス表
| 地形分類 |
道路種別 |
中山間 (9 市町) |
平野・沿岸 (13 市町) |
|
国道 |
43 |
40 |
|
県道 |
32 |
42 |
この表から読み取れること: 国道・県道とも中山間に多く立地。「広域幹線でも地域路でも、トンネルは山岳バイパス機能が中心」。中山間市町では国道+県道のトンネル両方が地域の動脈を支える。
【RQ3】 L66 橋梁との二極構造 — 件数比 27:1 / 延長比 16:1
RQ3 の狙い
L66 橋梁 (4,203 件) と L67 トンネル (157 件) を比較し、
「橋梁=平野・川越え + トンネル=山岳貫通」の道路インフラ二極構造を実証する。
両者は同じ管理体系 (道路法 + 5 年周期点検) + 同じ 9 事務所階層を共有するが、
対象地形・規模・偏向が大きく異なる。本研究はこの違いを件数 / 規模 / 道路種別 / 地理の
4 軸で定量化する。
手法 (前置き解説)
- L66 中間 CSV 流用:
lessons/assets/L66_all_bridges.csv (= L66 既出力) を読み込み、
橋梁 4,203 件のデータを直接利用。これにより L66 を再実行する必要なし。
- 件数比 / 平均延長比: 単純な比較指標で桁数の違いを視覚化。
件数比 27:1 / 平均延長比 ~10:1 という「橋梁多数小規模 vs トンネル少数大規模」の二極構造。
- 規模分布の重ね合わせ: 延長分布のヒストグラム (log 軸) を密度正規化して重ねることで、
件数の桁差を排除して規模の重なり度を比較。
log 軸で可視化することで、両者がほぼ重ならない (= 完全な分離) ことを明示。
- 限界: 本記事は静的比較。動的視点 (= 災害時の代替性、流通機能等) は別記事 (L7 浸水) で扱う。
実装コード (L66 橋梁データ流用 + 比較指標計算)
↑ L67_tunnels.py 行 1790–1870
1
2
3
4
5
6
7
8
9
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827 | # 1. L66 橋梁データ読込 (既存中間 CSV を流用)
import pandas as pd
df_bridge = pd.read_csv("lessons/assets/L66_all_bridges.csv", encoding="utf-8-sig")
print(f"橋梁: {len(df_bridge):,} 件")
# 2. 件数 + 平均延長 比較
n_bridge = len(df_bridge); n_tunnel = len(df)
ratio_count = n_bridge / n_tunnel # 約 27 倍
mean_b = df_bridge["延長(m)"].mean() # 約 19m
mean_t = df["延長(m)"].mean() # 約 300m
ratio_len = mean_t / mean_b # 約 16 倍
print(f"件数比: {ratio_count:.1f} : 1")
print(f"平均延長比: {ratio_len:.1f} : 1 (トンネル/橋梁)")
# 3. 道路種別偏向の対比
print("橋梁 国道シェア:",
(df_bridge["道路種別"]=="国道").sum()/len(df_bridge)*100, "%")
print("トンネル 国道シェア:",
(df["道路種別"]=="国道").sum()/len(df)*100, "%")
# 4. 二極構造マップ用に橋梁 POINT 化
import geopandas as gpd
from shapely.geometry import Point
geom_b = [Point(x,y) for x,y in zip(df_bridge["経度(10進数)"],
df_bridge["緯度(10進数)"])]
gdf_b = gpd.GeoDataFrame(df_bridge[["施設名"]], geometry=geom_b,
crs="EPSG:4326").to_crs("EPSG:6671")
# 5. 規模分布 (密度正規化重ね合わせ)
import matplotlib.pyplot as plt, numpy as np
plt.hist(df_bridge["延長(m)"].dropna(),
bins=np.logspace(0, 4, 40), alpha=0.5,
label="L66 橋梁", density=True)
plt.hist(df["延長(m)"].dropna(),
bins=np.logspace(0, 4, 40), alpha=0.5,
label="L67 トンネル", density=True)
plt.xscale("log")
plt.legend()
|
図 7: なぜこの図か (RQ3)
「橋梁とトンネルの地理分担を 1 枚で読みたい」 ため、
橋梁を背景に薄く (灰), トンネルを前景に大きく (国道=赤, 県道=青) 重ねた二極構造マップ。
これにより「平野=橋梁、山岳=トンネル」の物理的補完関係が一目で読める。
この図から読み取れること:
- 橋梁 (灰, n=4,203) は県全域に網状分布 = 中小河川クロスポイントが県全土に散在する地理を反映。
平野部・沿岸部の点群が密で、ピクセル状に画面を埋める。
- トンネル (赤+青, n=157) は北部・西部の山岳部に集中、橋梁とは別の地理パターン。
平野部 (福山市中心 + 広島市中心) ではトンネルがほぼ無く、橋梁のみで道路網を支える。
- 「橋梁=平野・川越え、トンネル=山岳貫通」の補完関係が視覚化される。
両者は同じ機能 (道路の連続性確保) を、異なる地形で発揮する。
- 島嶼部 (江田島・倉橋・蒲刈) では橋梁 + トンネルの両方がある = 島内の山貫通 + 島しょ間連絡橋。
これは島嶼地形特有のハイブリッドインフラ。
- 政策的含意: 防災投資・長寿命化計画は地形別に異なる戦略が必要。
平野は橋梁中心 (= 件数多い、洪水・地震対策)、山岳はトンネル中心 (= 規模大、地震・覆工対策)。
図 8: なぜこの図か (RQ3)
「橋梁とトンネルの規模分布を 1 枚で対比したい」 ため、
左 = 件数比較 (棒グラフ), 右 = 延長分布の密度正規化ヒストグラム (log 軸) の 2 ペイン。
件数の桁差 (27:1) と規模の桁差 (16:1) を同時に視覚化する。
密度正規化により、件数差を排除した純粋な規模分布が比較可能。
この図から読み取れること:
- 左 (件数): 橋梁 4,203 vs トンネル 157 = 比 26.8 : 1。
H4 仮説 (強支持): 件数比 ≥ 25。
橋梁は中小河川クロスで多数 = 「分散型インフラ」、トンネルは山岳貫通で希少 = 「集中型インフラ」。
- 右 (延長密度): 橋梁分布 (青) は1-100mに集中 (中央値 ~ 7m)、
トンネル分布 (赤) は100-3000mに集中 (中央値 ~ 206m)。
両分布はほぼ重ならず、明確に分離される。
- 規模比: トンネル平均延長 314m / 橋梁平均延長 19m = 16.3 倍。
H5 仮説 (強支持): 規模比 ≥ 10。
- 橋梁の右裾 (~ 数百 m, しまなみ系大橋) と トンネルの左裾 (~ 数十 m, 短トンネル) が
20-100m 域でわずかに重なるのみ。これが両者の「規模の谷間」。
- 政策的含意: 整備コスト・更新コスト・機能停止時の社会影響は規模で乗算的に増加する。
トンネル 1 件の機能停止 = 橋梁 10-30 件分の社会影響、という認識が必要。
これは「件数 vs 規模で見る防災重要度」の根拠。
表: L66 橋梁 vs L67 トンネル 二極構造比較
| 指標 |
L66 橋梁 |
L67 トンネル |
二極構造の意味 |
| 件数 |
4,203 |
157 |
比 = 26.8 : 1 |
| 平均延長_m |
19.3 |
314.5 |
比 = 16.3 : 1 |
| 最長_m |
540 |
2212 |
橋梁=しまなみ系、トンネル=広島呉道路系等 |
| 国道シェア_% |
27.4 |
52.9 |
トンネルは国道偏重、橋梁は県道偏重 |
| 中央値_m |
7.0 |
206.0 |
橋梁=数 m 級、トンネル=百 m 級 |
この表から読み取れること: 件数比 26.8 : 1、平均延長比 16.3 : 1。国道シェアは橋梁 27.4% vs トンネル 52.9% で逆転現象がある。中央値も 橋梁 7m vs トンネル 206mと桁違い。「橋梁=点的多数 + トンネル=大規模少数」の二極構造が全指標で一貫。
表: 道路種別 × 延長カテゴリ クロス表 (トンネル)
| 道路種別 |
短(<100m) |
中(100-300m) |
中長(300-1000m) |
長大(≥1000m) |
| 国道 |
23 |
31 |
27 |
2 |
| 県道 |
19 |
27 |
21 |
7 |
この表から読み取れること: 国道は長大 (≥1000m) 2 件を多く含み、県道は短 (<100m) 19 件に偏る。これは道路階層差 (国道=広域幹線=長大、県道=地域路=短) を反映。トンネルでは橋梁と同じ階層差パターンが見られる。
表: 長大トンネル Top 15
| 順位 |
施設名 |
路線名 |
道路種別 |
延長(m) |
幅員(m) |
建設年度 |
市町名 |
| 1 |
善入寺トンネル |
本郷大和線 |
県道 |
2212.0 |
8.50 |
2011 |
東広島市 |
| 2 |
便坂トンネル |
庄原作木線 |
県道 |
1402.0 |
8.50 |
1996 |
三次市 |
| 3 |
熊野トンネル |
矢野安浦線 |
県道 |
1238.5 |
- |
1990 |
広島市 |
| 4 |
熊野黒瀬トンネル |
矢野安浦線 |
県道 |
1167.0 |
10.75 |
2014 |
熊野町 |
| 5 |
棲真寺トンネル |
本郷大和線 |
県道 |
1154.0 |
8.50 |
2011 |
三原市 |
| 6 |
油見トンネル |
186号 |
国道 |
1125.0 |
10.00 |
1999 |
大竹市 |
| 7 |
栗屋トンネル |
吉田邑南線 |
県道 |
1041.0 |
7.75 |
1987 |
安芸高田市 |
| 8 |
発坂トンネル |
191号 |
国道 |
1017.0 |
10.75 |
2007 |
安芸太田町 |
| 9 |
秋月トンネル |
鷲部小用線 |
県道 |
1005.0 |
8.50 |
1981 |
江田島市 |
| 10 |
門田トンネル |
375号 |
国道 |
972.0 |
0.00 |
2010 |
三次市 |
| 11 |
蚊無トンネル |
安芸津下三永線 |
県道 |
875.0 |
7.00 |
1993 |
東広島市 |
| 12 |
宇和木トンネル |
音戸倉橋線 |
県道 |
820.0 |
8.90 |
1995 |
呉市 |
| 13 |
大浦トンネル |
豊浜蒲刈線 |
県道 |
784.0 |
10.25 |
2007 |
呉市 |
| 14 |
熊見トンネル |
375号 |
国道 |
732.0 |
10.00 |
1999 |
三次市 |
| 15 |
丑之河トンネル |
新市七曲西城線 |
県道 |
715.0 |
0.00 |
2001 |
庄原市 |
この表から読み取れること: 最長は 善入寺トンネル (2212m, 本郷大和線, 東広島市)。Top 15 中の国道率 = 27% = 長大トンネルは国道偏重。これらは県の山岳幹線インフラの基幹であり、耐震・覆工補修の最優先対象。
仮説検証総合
本記事の 5 仮説と観測結果の照合:
| 仮説 |
観測値 |
判定 |
解釈 |
| H1 国道シェア ≥ 50% (RQ1) |
観測 = 52.9% (国道 83 / 県道 74) |
強支持 |
H1 強支持: 国道シェアは 52.9%。橋梁 (L66) では国道 27.4% だが、トンネルは 52.9% と大きく国道偏重。 これはトンネル工事が大規模で、広域幹線 (国道) での整備が中心となる事業構造を反映。県道 (n=74) は地域路線を貫通する小規模トンネル中心。 |
| H2 中山間 9 市町シェア ≥ 70% (RQ2) |
観測 = 47.8% (75 / 157) |
反証 |
H2 反証: 中山間 9 市町に 47.8% (75 件) が集中。中山間市町は「山岳地形を貫通する道路網」を持ち、トンネル整備が必須。中山間 Top 3: 安芸太田町 (23) / 庄原市 (18) / 三次市 (10)。平野市町 (福山市・広島市・東広島市) はトンネル整備が限定的。 |
| H3 1990 年代ピーク (RQ2) |
観測 最多年代 = 1980s (42 件) |
反証 |
H3 反証: 建設年代の最多は 1980s。最多は 1980s = バブル + ポストバブル期 1980-1990s の 2 年代で全体の 50% を占める集中整備期。1970年代以前 (老朽化対象) は 35 件 (22.3%) のみで、橋梁よりトンネルは新しい構造物が多い。 |
| H4 橋梁/トンネル件数比 ≥ 25 (RQ3) |
観測 = 26.8 : 1 (4,203 / 157) |
強支持 |
H4 強支持: 橋梁 (4,203) / トンネル (157) = 26.8 : 1。これは「橋梁は中小河川クロスで多数 + トンネルは山岳貫通で希少」という地理分担を反映。県の道路インフラは橋梁圧倒で、トンネルは1 件あたり大規模な希少資源。 |
| H5 トンネル平均延長 / 橋梁平均延長 ≥ 10 (RQ3) |
観測 = トンネル 314m / 橋梁 19m / 比 16.3 |
強支持 |
H5 強支持: トンネル平均延長は橋梁の 16.3 倍。橋梁中央値 ~ 7m に対しトンネル中央値 206m。「橋梁=点的多数 + トンネル=大規模少数」の二極構造が定量化された。これは整備コスト・更新コスト・防災重要度すべてで橋梁・トンネルの政策位置付けが異なることを意味する。 |
3 RQ × 3 結論
- RQ1 結論: 広島県の道路トンネルは157 件 / 国道 83 + 県道 74 / 26 市町 / 9 事務所 / 59 路線の多次元構造。国道 52.9% (H1 強支持) で件数支配、中央値 206m + 長大 9 件で規模も大規模。上位 3 市町 (安芸太田町 / 呉市 / 庄原市) で 39.5% を占める偏在型分布。地形類型 (中山間 vs 平野) がトンネル配置を支配。
- RQ2 結論: 中山間 9 市町に 47.8% (75 件) が集中 (H2 反証)。建設年代の最多は 1980s (42 件) (H3 反証)。老朽トンネル 35 件 (22.3%) は橋梁の老朽率 (32.9%) より大幅に低い。「中山間 = トンネル必須、平野 = ほぼ不要」の地形分担が定量化された。中山間市町別トップは 安芸太田町 (23 件)。
- RQ3 結論: L66 橋梁 (4,203) vs L67 トンネル (157) で件数比 26.8 : 1 (H4 強支持)、平均延長比 16.3 : 1 (H5 強支持)。両者は同じ管理体系 + 同じ 9 事務所階層を共有しながら、対象地形 (平野 vs 山岳) + 規模 (点 vs 線) + 偏向 (県道 vs 国道) で完全な二極構造を成す。「橋梁=分散型多数、トンネル=集中型少数」の補完関係が県全域で実証された。
道路インフラ二極構造から見る県土像
本研究の最重要発見は「橋梁とトンネルの完全二極構造」。両者は同じ DoBoX シリーズ・同じ管理体系・同じ 9 事務所階層で扱われるが、対象地形が完全に異なる: 橋梁は4,203 件の点的多数で県全土の中小河川クロスを覆い、トンネルは157 件の集中型少数で中山間 9 市町の山岳道路網を支える。件数比 26.8:1, 規模比 16.3:1 の桁違いの偏向は、地形が道路インフラの形態を決定する地理学的根拠を提示する。
政策的含意 — 整備・維持・防災の地形別戦略
橋梁とトンネルは「同じ機能、異なる地形、異なる規模」のため、政策戦略も完全に分離する必要がある:
- 橋梁戦略 (L66 結論): 老朽橋 1,382 件 (32.9%) の更新ピーク + 県道短橋多数の分散管理。県全土の中小河川クロスを覆う「面の防災」。
- トンネル戦略 (本研究結論): 老朽率 22.3% で橋梁より新しいが、1 件あたり大規模 (平均 314m) のため「点の防災」。国道 52.9% の長大トンネルが優先補強対象。中山間 9 市町に集中するため、これらの市町の維持管理予算が中心。
- 地理分担: 平野部の防災投資は橋梁中心、山岳部はトンネル中心。これは県土全体の地形別道路インフラ戦略の基本骨格。
発展課題
結果 X → 新仮説 Y → 課題 Z (3 RQ × 1 課題以上)
発展課題 1 (RQ1 由来): NEXCO 高速トンネル + 鉄道トンネルとの統合
- 結果 X: 本データは県管理道路トンネルのみ (157 件) で、
NEXCO (中国自動車道・山陽自動車道・尾道松江線等) や JR (在来線・新幹線) のトンネルは含まれない。
実際の県内総トンネル数は本データの数倍に達する可能性。
- 新仮説 Y: NEXCO + 鉄道トンネルを加えると、県内総トンネル数は 300-500 件 に達する。
高速道路トンネルは長大 (≥3km) 中心で、本データとは規模分布が大きく異なる。
- 課題 Z: 国交省「道路統計年報」 + JR 西日本トンネル一覧を取得 →
管理者別 (NEXCO / 県 / JR / 私鉄) のクロス分析。
「県内全トンネルの管理者階層」として展開。
発展課題 2 (RQ2 由来): L11 土砂災害警戒区域とのトンネル交差分析
- 結果 X: 本研究は中山間集中度 (47.8%) を可視化したが、
土砂災害警戒区域 (L11 既知) との具体的な交差は未分析。
山岳トンネルは坑口部で土砂災害リスクが高い可能性。
- 新仮説 Y: トンネル坑口の 200m 以内に土砂災害警戒区域がある率は 50% 超。
これは中山間トンネルの大半に当てはまる仮説。
- 課題 Z: L11 の sediment_shp (土石流 / 急傾斜 / 地すべり 3 種, 31 dataset) を読み込み →
トンネル POINT を 200m バッファ → sjoin で重なり判定。
「トンネル坑口の土砂災害二重リスク」として展開。
発展課題 3 (RQ3 由来): 橋梁 + トンネル 統合道路網の連続性分析
- 結果 X: 本研究は橋梁とトンネルを並列比較したが、
連続する 1 つの道路に橋梁とトンネルがどう交互配置されているかは未分析。
路線単位で「橋 - トンネル - 橋 - トンネル」 のパターンがあるはず。
- 新仮説 Y: 山岳道路では橋梁:トンネル比 ~ 3:1で交互配置、
平野道路では橋梁のみ (10:0 比)のパターンが見える。
- 課題 Z: 路線名で橋梁 (L66) + トンネル (L67) を結合 →
路線ごとに位置順に並べ、橋とトンネルの交互パターンをカウント →
「道路の連続性インデックス」を定義し可視化。
「路線別道路インフラ連続性」として展開。
発展課題 4 (RQ2 + L40 連携): 標高 × トンネル位置の統合分析
- 結果 X: 本研究はトンネルの平面位置のみ扱い、標高は未利用。
高所トンネル (≥ 500m, 山頂峠越え) と低地トンネル (≤ 100m, 都市近郊) では
建設目的・劣化要因が異なる。
- 新仮説 Y: 中山間 9 市町のトンネル平均標高は ≥ 300m、
平野市町は ≤ 100m。標高別劣化要因は高所 = 凍結融解、低地 = 塩害。
- 課題 Z: L40 の5m DEMから各トンネル POINT の標高を抽出 →
標高別に建設年度・延長・幅員ヒストグラム → 地形分類 × 標高で集計。
「トンネルの標高別劣化要因」として展開。
発展課題 5 (RQ2 + L50 連携): 道路規制とのトンネル交差
- 結果 X: 本研究はトンネル単独で扱い、道路規制 (L50 既知) との関係は未分析。
老朽トンネルや構造的弱点を持つトンネルは規制対象になっている可能性。
- 新仮説 Y: 老朽トンネル (35 件) の 30% 以上が何らかの道路規制下にある。
規制内容は重量制限・通行止め・大型車両禁止等。
- 課題 Z: L50 の道路規制データから区間情報を取得 →
トンネル位置と区間照合 → 規制率を計算。
「トンネル老朽化と道路規制の連動」として展開。
発展課題 6 (RQ3 拡張): 判定区分 ("?") の解明
- 結果 X: 本データの「判定区分」 列は全件 "?" でマスクされ、健全度 I-IV の判定値は取れない。
本研究では「築年数」 を健全度の代理指標として扱った (橋梁と同じ問題)。
- 新仮説 Y: 国交省 MICHI データベースや行政情報公開で健全度判定値を取得可能。
架設年度 vs 健全度の単純な負相関ではなく、補修履歴で複雑になる仮説。
- 課題 Z: 国交省 MICHI データベース or 行政情報公開で健全度判定値を取得 →
本データの建設年度 + 路線 + 場所と照合 → 築年数 vs 健全度の相関分析。
「トンネル老朽化の本当の指標」として展開 (橋梁の発展課題と並走)。
発展課題 7 (展望): トンネル防災重要度ランキングの構築
- 結果 X: 本研究では長大トンネル (9 件) を希少性で同定したが、
「災害時の代替性」視点での評価は未実施。
- 新仮説 Y: 長大 (≥1000m) + 国道 + 老朽 (≤1974) のトンネルは第一級防災重要。
これらを 3 重リスクとして優先補強対象に。本データから 9 件中いくつかが該当するはず。
- 課題 Z: 派生フラグ (is_long + is_old + 道路種別=国道) で論理積 →
第一級防災重要トンネルを同定 → 県の長寿命化計画と照合。
「トンネル防災重要度ランキング」として展開。