Lesson 74
走行注意区間 単独 3 研究例分析 — 381 区間 / 1078 km / 3 階層情報伝達 (L50/L73/L74) + 3 重指定 69 件 を読む
L74走行注意区間予防情報配信制度落石注意rakuseki_03rakuseki_04注意レベル情報配信制度3 階層情報伝達逆ピラミッド構造制度階層注意 ⊃ 規制3 重指定RQ×3Format BgeopandasLineString (NDJSON)L50連携 (動的規制)L72連携 (緊急輸送道路)L73連携 (事前通行規制)中山間集中
所要 50 分 / 想定レベル: 中級 / データ: DoBoX dataset 1246 (ZIP × 1, ~757 KB)
データ取得手順
⚠️ このスクリプトは自動取得に対応していません。以下のデータセットを DoBoX から手動でダウンロードし、data/extras/ 以下に保存してください。
| ID | データセット名 |
| #333 | dataset #333 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
| #1246 | 走行注意区間 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L74_caution_segments.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
学習目標と問い
本記事の対象 — 「走行注意区間」 1 件 単独分析
本記事は DoBoX のデータセット 「走行注意区間」 (dataset 1246)
1 件を 単独で取り上げ、 広島県の走行注意区間
381 区間 / 総延長 1078 kmを
3 つの独立した研究角度で並列に分析する記事である。
他のシリーズ (事前通行規制 L73 / 道路規制 L50 / 緊急輸送道路 L72) と
本記事は 合体しない。 RQ2 で事前通行規制 (L73)、 RQ3 で L50 + L73 +
L72 を参照するが、 これは「県の道路情報 3 階層の量的実証」 を明らかに
するための既扱データの従属的参照に留め、 本記事の主軸はあくまで
走行注意区間 1 dataset の分析である。
「走行注意区間」 とは:
通行止めにはしないが、 ドライバーに「落石・崩落リスクあり」 を予告する
道路区間。 過去の小規模崩落履歴・地質脆弱性・植生状態等から道路管理者が
指定し、 注意喚起レベルに応じて
2 階層で運用される広島県独自の
「予防情報配信制度」。 法的拘束力 (規制) はないが、 道路法第 30 条の 2 に
基づく道路情報提供の一環として運用される。
広島県の走行注意区間は
2 階層 (orange/red)に区分される:
- 階層 03 (orange, #ffa500): 注意レベル低 — 253 区間 /
708 km。 通常走行可、 雨天時・夜間に減速注意
- 階層 04 (red, #ff0000): 注意レベル高 — 128 区間 /
370 km。 常時注意、 通行は可能だが豪雨時・地震後は迂回推奨
本記事の主要発見 (3 RQ):
- RQ1: 県の走行注意区間は381 区間 / 1078 km。
低注意 (03) が 253 件 (66.4%)と多数派、 高注意 (04) は
128 件。 中山間山地に 172 件 (45.1%)
が集中。
- RQ2: L74 (注意) と L73 (事前通行規制) の重複は
181 件 / 389.1 km。 残り
52.5%が「注意のみ」 区間 = L74 は L73 より広い予防
情報層という制度階層が確認された。
- RQ3: 県の道路情報 3 階層はL74 注意 (381) > L50 動的 (218)
> L73 静的規制 (164)の逆ピラミッド構造。 L74 ∩ L72 重複
394.6 km、 3 重指定 (L74∩L73∩L72)
69 件が「制度的最警戒箇所」。
独自に定義する用語 (本記事限定)
- 走行注意区間 (本記事の中心概念): 通行止めにせず注意喚起のみを
行う道路区間。 道路法第 30 条の 2 に基づく道路情報提供の一環として運用される
県管理道路の「予防情報配信制度」。 規制 (L73) のような自動発動・
強制力はないが、 ドライバーに事前情報を提供することで自主的な減速・
迂回を促す。
- 注意レベル 03 (低注意, orange, 本記事独自呼称): 公式 JSON 内の
rakuseki_03 に対応。 過去に小規模落石はあるが頻度は低い区間。
通常走行可、 雨天時・夜間のみ減速注意。 公式色は #ffa500。
- 注意レベル 04 (高注意, red, 本記事独自呼称): 公式 JSON 内の
rakuseki_04 に対応。 過去に複数回の落石・崩落履歴があり、 急斜面
地質脆弱性も高い区間。 常時注意、 豪雨時・地震後は迂回推奨。 公式色は
#ff0000。
- 動的規制 (L50 を指す, 本記事独自呼称): 工事規制 + 災害短期規制で
時間と共に変化する規制。 「本日の規制」 + 「今後の規制」 (L50 dataset
1257 + 1258, 計 218 件)。
- 静的規制 (L73 を指す, 本記事独自呼称): 雨量閾値超過で自動発動する
事前通行規制 + 冬期閉鎖。 恒常的に指定された区間 (164 件) で、 「規制
ルール」 自体は静的だが「発動状態」 は動的。
- 注意 (L74, 本記事の主データ): 法的強制力なし、 注意喚起のみ。
恒常的に指定された静的な情報層で、 規制とは異なり「発動」 概念がない。
- 3 階層情報伝達 (本記事独自): 県の道路情報を動的 (L50) +
静的規制 (L73) + 静的注意 (L74)の 3 階層で捉える本記事独自フレーム。
災害時の情報伝達は注意 → 規制 → 動的規制の順に強化される。
- 逆ピラミッド構造 (本記事独自): 件数規模が「注意 (広い) > 動的
(中間) > 規制 (狭い)」 になる構造。 「弱い情報は広く、 強い規制は狭く」 と
いう情報配信設計思想。 本記事 H4 で量的検証。
- 3 重指定 (本記事独自): L74 (注意) ∩ L73 (規制) ∩ L72 (緊急輸送
道路) の3 重交差区間。 「災害時に通行確保すべき + 災害前に予防
規制 + 平常時から注意喚起」 という 3 つの制度が重なる最警戒箇所。
- 中山間山地 (本記事独自定義): 庄原市・三次市・安芸太田町・安芸高田市・
北広島町・神石高原町・世羅町・府中市の 8 市町。 公式分類ではないが、
地形・人口密度から「中山間」 と一般に呼ばれる地域。 L73 と同じ定義を採用。
- 注意のみ区間 (本記事独自): L74 のうち L73 と重ならない区間。
「規制まで強化されていないが、 ドライバーには注意喚起したい」 箇所。 H3 で
これが 80% 以上を占めることを検証。
研究の問い (3 RQ)
- RQ1 (主研究): 広島県の走行注意区間の構造 — 注意レベル × 区間長 ×
地理クラス × 市町はどう描けるか? 381 区間を 4 軸で集計し、 「県の
予防情報配信制度」 の物理形状を初めて系統的に記述する。 H1 (orange ≥ 60%) を
検証。
- RQ2 (副研究 1): 走行注意区間 (L74, 弱予防) と事前通行規制区間
(L73, 強予防) は階層構造を成すか? 100m バッファ sjoin で重複 +
「注意のみ」 区間を分離し、 制度階層の連続性を実証する。 H2 (重複 ≥ 10),
H3 (注意のみ ≥ 80%) を検証。
- RQ3 (副研究 2): 県の道路情報3 階層 (L50/L73/L74)はどんな
統合構造を持つか? 件数規模・延長・空間分布を統合分析し、 緊急輸送道路 (L72)
との重複も含めて 3 重指定箇所を特定。 H4 (件数 注意>動的>規制), H5
(L74 ∩ L72 ≥ 20 km) を検証。
仮説 (5)
- H1 (RQ1, 階層構造): 走行注意区間 381 のうち低注意 (03)が
≥ 60%。 弱注意が多数派で、 強注意 (04) は厳選された少数派という
制度設計仮説。
- H2 (RQ2, 規制との重複): L74 と L73 の100m バッファ重複が ≥ 10 件。
「同じ道路に規制 + 注意」 の二重指定箇所が一定数存在する仮説。
- H3 (RQ2, 注意のみが多数派): L74 のうち L73 と重ならない「注意のみ」
区間が≥ 80%。 注意制度は規制より広い範囲をカバーする予防情報層
仮説。
- H4 (RQ3, 件数規模順): 件数 注意 (L74=381) > 動的 (L50=218) >
規制 (L73=164)。 「弱い情報は広く、 強い規制は狭く」 の逆ピラミッド構造仮説。
- H5 (RQ3, 緊急輸送道路との空間相関): L74 と L72 の 30m バッファ重複延長
が≥ 20 km。 注意区間は主要道路の沿道に分布する仮説。
到達点
本記事を読み終えると、 (1) 県の走行注意区間 381 区間・1078 km・
2 階層 (低注意 03 + 高注意 04) の制度構造を完全に俯瞰、 (2) 事前通行規制 (L73)
との 181 件重複 + 「注意のみ」 52.5% という2 層の制度階層を
定量把握、 (3) 県の道路情報 3 階層 (L50/L73/L74) の逆ピラミッド構造と
緊急輸送道路 (L72) との3 重指定箇所 69 件を特定できる、 という
3 段階の知識が獲得できる。 これにより県の道路情報配信制度における「弱い情報の
広い層 (注意) → 強い規制の狭い層 (規制)」という制度設計が研究者視点で見える
ようになる。
使用データ
本研究で使う 1 つの dataset (1 ZIP リソース) を以下の表に示す。
本データは走行注意区間 LineString を ZIP 形式 (.json 拡張子で配信) で
公開しており、 ZIP 内に階層別 NDJSON 風 JSON 2 つ + メタ JSON 1 つ の
合計 3 ファイルが格納されている。
データセット仕様
| 項目 |
値 |
| dataset_id |
1246 |
| 公式名 |
走行注意区間 |
| 公式説明 |
広島県が管理する道路の走行注意区間情報 |
| リソース数 |
1 (ZIP, 拡張子は .json で配信) |
| リソース ID |
32490 |
| ZIP サイズ |
774,763 byte (~757 KB) |
| ZIP 内 ファイル |
04_warning_rakuseki_03.json + _04.json + 04_warning_route.json |
| 形式 |
NDJSON 風 (1 配列 = 1 LineString) + メタ JSON |
| レコード数 |
381 区間 (03=253 / 04=128) |
| 総延長 |
1078.2 km |
| 座標系 (元) |
WGS84 (EPSG:4326) → 本記事 EPSG:6671 で処理 |
| 階層 |
rakuseki_03 (低注意, orange) / rakuseki_04 (高注意, red) |
| 配信日 (フォルダ名) |
2022-09-08-T00:00:00 (公式 stamp) |
| ライセンス |
クリエイティブ・コモンズ表示 (CC-BY) |
| URL |
https://hiroshima-dobox.jp/datasets/1246 |
| 作成主体 |
広島県 (土木建築局道路整備課・防災担当) |
ZIP 内 3 JSON の内訳
| ファイル | 役割 | 形式 | 件数 | 延長 km |
04_warning_rakuseki_03.json |
低注意 (orange) LineString 集 |
NDJSON 風 (1 配列 = 1 LineString, 「,」 区切り) |
253 区間 |
708.4 |
04_warning_rakuseki_04.json |
高注意 (red) LineString 集 |
NDJSON 風 |
128 区間 |
369.8 |
04_warning_route.json |
階層メタ ({name, color, weight, type}) |
NDJSON 風 (2 オブジェクト) |
2 階層 (rakuseki_03 + 04) |
- |
NDJSON 風 形式の解読
各階層 JSON は以下のような形式 (改行・インデント整形は本記事による):
[{"e":132.10052,"d":34.39173}, {"e":132.10042,"d":34.39177}, ...]
,
[{"e":132.10120,"d":34.39250}, {"e":132.10115,"d":34.39260}, ...]
,
...
つまり「[配列] が「,改行」 区切りで複数並ぶ」形式。 標準 JSON では
ないので json.load() でそのまま読めない。 L72 緊急輸送道路と同じ
「[ + 全テキスト + ]」でラップしてから json.loads() で
配列の配列として読み込む。 各内部配列が 1 LineString に対応し、 各点は
{"e": 経度, "d": 緯度}形式。
JSON 解読の注意点
- 拡張子は .jsonだが実体はZIP。 ファイル先頭バイト
50 4B 03 04 (= "PK\x03\x04") で magic 判定し、 zipfile
で展開する。
- NDJSON 風形式は標準 JSON ではないため、
json.load() 直読は失敗。
json.loads("[" + text + "]") でラップして配列の配列として読む。
- 緯度経度はWGS84 (EPSG:4326)で、 各点は
{"e": lon, "d": lat}。
距離計算 (RQ2 / RQ3) のためEPSG:6671 (JGD2011 平面直角第 III 系) に
投影変換する。
- 属性は階層名のみ(L73 のような豊富な属性なし)。 路線名・規制内容・
規制ランク・雨量閾値・迂回路有無 等は本データには含まれない。 これは
「ドライバー向け情報提供」 の最小限公開と推定される。
04_warning_route.json はメタ JSON で、 階層名と表示色・線太・線種の
対応を定義 (rakuseki_03 → #ffa500, rakuseki_04 → #ff0000)。
ダウンロード
本記事の再現に必要なすべてを直リンクで提供する。
HTML だけ読めば学習者が完全再現できることが目標 (要件 A)。
生データ (DoBoX 1 件)
このスクリプト本体
中間 CSV (本記事生成、再利用可)
図 (PNG, 直 DL 可)
【RQ1】 走行注意区間の構造 — 注意レベル × 区間長 × 地理 / 381 区間 / 1078 km / 03 シェア 66.4%
狙い (RQ1)
RQ1 では「県の予防情報配信制度」 の物理構造を初めて系統的に記述する。
具体的には 381 区間 / 総延長 1078 km の走行注意区間を
注意レベル (03/04) × 区間長 × 地理クラス × 市町の 4 軸で集計し、
「どのレベルがどこに分布するか」 を 1 枚で俯瞰できるようにする。 H1
(orange ≥ 60%) は階層構造の中心仮説を検証する。
手法 — 4 ステップ
- STEP 1: ZIP 展開 + NDJSON 風 パース
公式リソースは拡張子 .jsonだが実体はZIP。 magic 判定
(50 4B 03 04) で確認後、 zipfile で展開する。 中の
JSON はNDJSON 風([配列] が「,改行」 区切りで複数並ぶ)
形式なので、 "[" + text + "]" でラップしてから
json.loads() で配列の配列として読む。 L72 と同じパターン。
- STEP 2: LineString 化 + 投影変換
各内部配列の点 ({"e": lon, "d": lat}) を
shapely.geometry.LineString に変換、 階層名 (rakuseki_03 /
rakuseki_04) と組み合わせて GeoDataFrame に。 EPSG:4326 → EPSG:6671
(JGD2011 第 III 系) に to_crs() で投影変換 → 距離・面積が
m 単位で計算可能に。
- STEP 3: 派生列の追加
・level_label: 階層名を「03 (低注意) / 04 (高注意)」 に変換
・len_m, len_km: 区間長 (= LineString.length)
・seg_id: 派生主キー (L74_0000 〜 L74_0380)
- STEP 4: 4 軸で集計 + 中山間判定
代表点 sjoin で市町判定 → 中山間 7-8 市町 vs 平野・沿岸都市 vs 沿岸島嶼を
区別。 groupby("level") で階層別、 groupby("地理クラス") で
地理別、 groupby("市町名") で市町別の集計。
実装 (主要部のみ抜粋)
↑ L74_caution_segments.py 行 1539–1626
1
2
3
4
5
6
7
8
9
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578 | import zipfile, json
from pathlib import Path
import geopandas as gpd
from shapely.geometry import LineString
import pandas as pd
DATA_DIR = Path("data/extras/L74_caution_segments")
EXTRACT = DATA_DIR / "340006_driving_caution_section_20220908T000000"
# (1) ZIP 展開 (拡張子 .json だが実体 ZIP)
zip_path = DATA_DIR / "caution_segments.json"
if zip_path.read_bytes()[:4] == b"PK\x03\x04" and not EXTRACT.exists():
with zipfile.ZipFile(zip_path) as z:
z.extractall(DATA_DIR)
# (2) NDJSON 風 → LineString 配列
def load_caution_lines(level):
p = EXTRACT / f"04_warning_{level}.json"
text = p.read_text(encoding="utf-8")
arr = json.loads("[" + text + "]") # NDJSON 風: 配列の配列としてラップ
return [LineString([(pt["e"], pt["d"]) for pt in seg])
for seg in arr if len(seg) >= 2]
records = []
for lvl in ["rakuseki_03", "rakuseki_04"]:
for ln in load_caution_lines(lvl):
records.append({"level": lvl, "geometry": ln})
# (3) GeoDataFrame 化 (4326 → 6671 投影変換)
gdf = gpd.GeoDataFrame(records, crs="EPSG:4326").to_crs("EPSG:6671")
gdf["len_m"] = gdf.geometry.length
gdf["len_km"] = gdf["len_m"] / 1000
print(f"区間数: {len(gdf)}")
# (4) 階層別 集計
T_level = (gdf.groupby("level")
.agg(区間数=("level", "count"),
延長_km=("len_km", "sum"))
.reset_index())
print(T_level)
|
結果 1: 県全域 注意レベル別 マップ (図 1)
なぜこの図か: 2 階層の注意レベル (03 = orange / 04 = red) が県内に
どう分布するかを県全域地図に重ねて一目で確認したい。 注意レベルを
色 + 線幅で区別 (03 = orange 細, 04 = red 太) することで、 「中山間 + 沿岸の
脆弱地質道路」に注意区間が集中することが直感できる。
図 1 から読み取れること:
- 03 (低注意, orange, 253 件 / 708 km):
圧倒的多数派。 中山間 + 沿岸島嶼の地形脆弱地に広く分布する
- 04 (高注意, red, 128 件 / 370 km):
03 のサブセット的に分布。 特に過去落石履歴がある主要道路で長区間指定
- 地理的偏在: 県北部 (庄原・三次・安芸太田) + 西部山岳 (廿日市) +
島嶼部 (江田島・蒲刈・倉橋) に集中、 平野部 (広島市・福山市) ではほとんど
見られない
- 路線パターン: 連続した山岳路線で長く指定される区間が多く、 単発 100m
区間ではなく数 km 連続が普通 (= 注意は「ある区間全体」 への警告として運用)
結果 2: 階層 + 区間長 + 地理クラス 3 角度 (図 2)
なぜこの図か: H1 (03 ≥ 60%) を直感検証するために、 階層別件数を
最初のパネルで確認。 区間長は対数スケールで広く分布する想定なので 2 番目の
パネルで log10 ヒストで階層別の分布を見る。 3 番目で地理クラス別件数を見て、
中山間集中度を量化する。
図 2 から読み取れること:
- 左パネル (階層別件数): 03 が 253 件 (66.4%)と
04 (128 件) の 2.0 倍。 H1 (03 ≥ 60%)
強支持
- 中央パネル (区間長 log10 分布): 中央値2975 m、
最大5925 m (5.9 km)と
4 桁の幅。 04 (赤) は 03 (橙) よりやや右シフトしており、
強注意は連続した長区間で運用される傾向が見える
- 右パネル (地理クラス): 中山間山地が
172 件 (45.1%)で最多 — 「予防情報 = 中山間
地形脆弱性対応」 という運用思想が量的に確認
- 3 軸で見ると注意区間は「中山間 × 連続長区間 × 多数派は弱注意」と
整理できる
結果 3: 中山間境界 + 注意区間 重ね合わせマップ (図 3)
なぜこの図か: 図 2 の中山間集中を地図上で直感検証するため、
中山間 8 市町を橙色背景、 沿岸島嶼を青色背景で塗り、 注意区間を中山間内 (橙=03 /
赤=04) / それ以外 (灰) で色分けして重ねる。 「中山間にどれだけ集中するか」 が
一目で見える。
図 3 から読み取れること:
- 橙色背景 (中山間 8 市町): 庄原市・三次市・安芸太田町・安芸高田市・
北広島町・神石高原町・世羅町・府中市
- 橙線 (中山間内 03 注意区間): 主要地方道・一般県道の山岳路線
- 赤線 (中山間内 04 注意区間): 過去落石履歴がある県道・国道
- 灰線 (中山間外 注意区間, 209 件):
沿岸島嶼 (江田島・大崎上島) + 平野部 (広島市山間部・廿日市山間部) — 中山間
8 市町の厳密定義から外れるが、 地形的には類似
- 中山間が45.1% — L73 の中山間集中度
36.0% と同等水準で、 県の予防情報 (L73 規制 + L74 注意) は共通して
中山間地形脆弱性対応として運用される
結果 4: 階層・地理・市町 詳細表
注意レベル別サマリ:
| 階層 |
level_label |
区間数 |
延長_km |
平均長_m |
中央長_m |
最大長_m |
シェア_% |
| rakuseki_03 |
03 (低注意) |
253 |
708.4 |
2800.0 |
2976.0 |
5926.0 |
66.4 |
| rakuseki_04 |
04 (高注意) |
128 |
369.8 |
2889.0 |
2975.0 |
3240.0 |
33.6 |
注意レベル 表から読み取れること: 03 が
253 件 (66.4%) / 延長 708.4 km、 04 が
128 件 / 369.8 km。 平均長は 03 が
2800 m、 04 が
2889 m と、
04 のほうが長い (= 強注意は連続した長区間で運用)。
地理クラス別サマリ:
| 地理クラス |
区間数 |
延長_km |
シェア_% |
| 平野・沿岸都市 |
199 |
563.4 |
52.2 |
| 中山間山地 |
172 |
487.4 |
45.1 |
| 沿岸島嶼 |
10 |
27.4 |
2.6 |
地理クラス 表から読み取れること:
平野・沿岸都市 が
199 件 (52.2%)と最多、
2 位 中山間山地 が 172 件
(45.1%)。 注意区間は地形脆弱な領域に
明確に偏り、 平野・沿岸都市は少数。
注意レベル × 地理クラス クロス:
| 地理クラス |
level_label |
中山間山地 |
平野・沿岸都市 |
沿岸島嶼 |
|
03 (低注意) |
111 |
135 |
7 |
|
04 (高注意) |
61 |
64 |
3 |
クロス 表から読み取れること:
03 と 04 の地理クラス分布は概ね同パターン (中山間 + 沿岸島嶼集中) だが、
04 (高注意) は 03 (低注意) よりやや中山間集中度が高い傾向 — 強い注意は
最も脆弱な地形に厳選指定される。
市町別サマリ (Top 15):
| 市町名 |
地理クラス |
区間数 |
延長_km |
| 庄原市 |
中山間山地 |
83 |
236.2 |
| 不明 (代表点が県外/海上) |
平野・沿岸都市 |
73 |
200.1 |
| 呉市 |
平野・沿岸都市 |
38 |
109.9 |
| 廿日市市 |
平野・沿岸都市 |
31 |
89.0 |
| 福山市 |
平野・沿岸都市 |
31 |
88.8 |
| 三次市 |
中山間山地 |
30 |
86.9 |
| 安芸高田市 |
中山間山地 |
21 |
58.3 |
| 安芸太田町 |
中山間山地 |
18 |
48.6 |
| 府中市 |
中山間山地 |
16 |
45.5 |
| 東広島市 |
平野・沿岸都市 |
12 |
34.3 |
| 江田島市 |
沿岸島嶼 |
10 |
27.4 |
| 三原市 |
平野・沿岸都市 |
4 |
12.1 |
| 大竹市 |
平野・沿岸都市 |
4 |
11.6 |
| 世羅町 |
中山間山地 |
4 |
11.9 |
| 尾道市 |
平野・沿岸都市 |
4 |
11.6 |
市町別 表から読み取れること:
庄原市 (83 件)が圧倒的最多、
2 位 不明 (代表点が県外/海上) (73 件)、
3 位 呉市 (38 件)。
中山間市町 (庄原・三次・安芸太田・北広島・神石高原・世羅・府中) と沿岸島嶼
(江田島・大崎上島) が上位を独占。
区間長 代表値 (階層別):
| カテゴリ |
平均_m |
中央_m |
最大_m |
| 全体 |
2830.0 |
2976.0 |
5926.0 |
| 03 (低) |
2800.0 |
2976.0 |
5926.0 |
| 04 (高) |
2889.0 |
2975.0 |
3240.0 |
区間長 表から読み取れること:
平均長は 03 で約 2800 m、
04 で約 2889 m。
最大は 03 で 5926 m、
04 で 3240 m と
ともに数 km 級。 中央値は数百 m で、 連続した山岳路線への面的指定が支配的。
【RQ2】 事前通行規制 (L73) との階層構造 — 注意 ⊃ 規制 / 重複 181 / 注意のみ 52.5%
狙い (RQ2)
RQ1 で「注意区間の構造」 が分かったが、 これはL74 単独の話。
RQ2 では「L74 (注意, 弱) と L73 (規制, 強) の制度階層」を見る。
具体的には(1) L74 ∩ L73 の重複箇所(同じ道路に二重指定)、
(2) 「注意のみ」 区間の比率(L74 が L73 をカバーするか) を計算し、
「注意 = 広い情報層, 規制 = 狭い強制層」 という2 層の制度階層を実証する。
H2 (重複 ≥ 10) と H3 (注意のみ ≥ 80%) の 2 仮説を検証する。
手法 — L73 100m バッファ + sjoin (intersects)
狙い: L73 (164 区間 / 750 km) に対して100m バッファを作成
(= 道路敷地 + 隣接路面の余裕)、 L74 LineString を
gpd.sjoin(predicate="intersects") で重なり判定。 重複延長は
L74 LineString と L73 バッファ union の intersectionを計算。
| 項目 | 値 | 意味 |
| L74 走行注意 |
381 区間 / 1078 km |
本記事の主データ |
| L73 事前通行規制 (既扱) |
164 区間 / 750 km |
強い予防制度 (雨量基準で自動規制) |
| バッファ幅 |
100 m |
道路敷地 + 隣接路面の余裕 |
| 重複判定 |
sjoin (intersects) |
1 注意区間が L73 buffer に少しでも掛かれば重複 |
| 重複延長 |
L73 buffer union との intersection length |
実際の重複 km |
注意: なぜ 100m バッファか — L73 の道路敷地 (典型 4-15m) + L74 とは
配信時期が違う (L73 = 2026-05-01, L74 = 2022-09-08) ため、 同じ道路でも
ベクトル幾何が完全には一致しない可能性。 100m バッファは「同じ路線・同じ
区間と判定するための寛容な閾値」。 L73 の RQ3 で使った 30m バッファより
広いのは、 L74 の地理測位精度を控えめに見積もるため。
実装 (主要部)
↑ L74_caution_segments.py 行 1740–1812
1
2
3
4
5
6
7
8
9
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772 | # L73 事前通行規制区間を読み込み LineString 化
import json
from shapely import wkt as swkt
with open("data/extras/L73_pre_traffic_restriction/pre_traffic.json",
"r", encoding="utf-8") as f:
raw = json.load(f)
recs = raw["results"]
geoms_l73 = []
for r in recs:
try:
geoms_l73.append(swkt.loads(r.get("kukanroot") or r.get("kukan", "")))
except Exception:
geoms_l73.append(None)
gdf_l73 = gpd.GeoDataFrame({"id": [r["id"] for r in recs],
"naiyo": [r["kiseinaiyo"] for r in recs]},
geometry=geoms_l73, crs="EPSG:4326")
gdf_l73 = gdf_l73[gdf_l73.geometry.notna()].to_crs("EPSG:6671")
# L73 100m バッファ → L74 と sjoin (intersects)
gdf_l73_buf = gdf_l73.copy()
gdf_l73_buf["geometry"] = gdf_l73.geometry.buffer(100)
overlap = gpd.sjoin(gdf, gdf_l73_buf, how="left", predicate="intersects")
overlap_grp = (overlap.dropna(subset=["index_right"])
.groupby("seg_id").size())
gdf["on_l73"] = gdf["seg_id"].map(overlap_grp).fillna(0).astype(bool)
print(f"L74 ∩ L73 重複: {gdf['on_l73'].sum()}/{len(gdf)} 区間")
# 重複延長 (L74 LineString と L73 buffer union の intersection)
buf_union = gdf_l73_buf.geometry.union_all()
gdf["overlap_km"] = gdf.geometry.apply(
lambda g: g.intersection(buf_union).length / 1000)
print(f"重複延長: {gdf['overlap_km'].sum():.1f} km")
|
結果 1: L74 ∩ L73 重ね合わせマップ (図 4)
なぜこの図か: 「L74 注意区間と L73 規制区間がどこで重なるか」 を
地図で直接見せる。 L73 (背景の薄青)、 L74 単独 (橙), L74 ∩ L73 (赤太線+★) の
3 段階色分けで、 二重指定箇所が最警戒地点として浮き上がる。
図 4 から読み取れること:
- 薄青線 (L73 事前通行規制, 背景, 164 件):
規制制度の物理形 — 主要地方道 + 国道 + 沿岸国道 + 山岳道路
- 橙線 (L74 単独, 200 件 = 注意のみ):
L73 と重ならない注意区間 — 規制まで強化されていないが注意が必要な
多数派
- 赤太線 + ★ (L74 ∩ L73, 181 件 = 二重指定):
最警戒箇所 — 同じ道路に「注意 (常時) + 規制 (異常時)」 の二重
指定があり、 道路管理者が制度切替で運用
- 重複は181/381 区間 = 47.5%。
注意のみが52.5%を占め、 H3 (反証)
- 重複延長は389.1 kmで、 L74 総延長
1078 km の 36.1% に過ぎない =
L74 は L73 より広い予防情報層を提供する
結果 2: 階層別重複率 + 規制内容クロス (図 5)
なぜこの図か: H2 (重複 ≥ 10) を 2 角度から検証: (1) 注意レベル別に
重複率を見て「03/04 のどちらが規制と重なりやすいか」, (2) 重複先の L73 規制内容
分布を見て「注意 + 規制が共起する規制種類」 を量化する。
図 5 から読み取れること:
- 左パネル (階層別重複率):
03 と 04 の L73 重複率を比較すると、
03 (103/253 =
40.7%) vs
04 (78/128 =
60.9%) で比較。
高注意 (04) のほうが規制との重複率が高い傾向 (= 04 = より厳しい状態 → 規制
指定にも近い)
- 右パネル (重複 L73 規制内容):
L74 ∩ L73 の重複先 L73 規制内容は「落石等」が支配的 (L74 が
「rakuseki = 落石」 専門のため必然的)。 凍結等・強風・冠水・越波も
少数現れる場合があり、 これは「同じ路線でも区間によって規制理由が違う」
ことを示す
- H2 (重複 ≥ 10) 強支持: 181 件
= 注意 + 規制の二重指定箇所が一定数存在
結果 3: 重複 詳細表
L74 階層別 L73 重複:
| level_label |
区間数 |
重複ありL73 |
重複_km |
重複率_% |
| 03 (低注意) |
253 |
103 |
204.83 |
40.7 |
| 04 (高注意) |
128 |
78 |
184.23 |
60.9 |
階層別 表から読み取れること:
03 (低注意) と 04 (高注意) で L73 重複率が異なり、
04 のほうが重複率が
高い。
これは「強注意 (04) は規制 (L73) 指定に近い」 という制度階層の連続性を示す。
L74 ∩ L73 重複箇所 詳細 (Top 15):
| seg_id |
level |
level_label |
市町名 |
地理クラス |
len_km |
l73_n_match |
l73_naiyo_match |
l73_type_match |
overlap_l73_km |
on_l72 |
l72_label |
| L74_0002 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
5.926 |
2 |
落石等 |
jizen |
2.984 |
False |
(なし) |
| L74_0003 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.874 |
2 |
冠水, 落石等 |
jizen |
2.406 |
True |
第2次 |
| L74_0004 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.955 |
1 |
落石等 |
jizen |
2.542 |
False |
(なし) |
| L74_0007 |
rakuseki_03 |
03 (低注意) |
大竹市 |
平野・沿岸都市 |
2.994 |
2 |
落石等 |
jizen |
1.498 |
True |
第2次 |
| L74_0008 |
rakuseki_03 |
03 (低注意) |
大竹市 |
平野・沿岸都市 |
2.994 |
1 |
落石等 |
jizen |
2.994 |
True |
第2次 |
| L74_0010 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.993 |
1 |
落石等 |
jizen |
2.351 |
True |
第2次 |
| L74_0012 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.940 |
1 |
落石等 |
jizen |
1.497 |
False |
(なし) |
| L74_0013 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
1.025 |
2 |
落石等 |
jizen |
1.025 |
False |
(なし) |
| L74_0014 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
1.927 |
2 |
凍結等, 落石等 |
jizen, winter |
1.927 |
True |
第2次 |
| L74_0015 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.931 |
2 |
凍結等, 落石等 |
jizen, winter |
0.680 |
False |
(なし) |
| L74_0019 |
rakuseki_03 |
03 (低注意) |
江田島市 |
沿岸島嶼 |
1.812 |
1 |
落石等 |
jizen |
0.101 |
False |
(なし) |
| L74_0020 |
rakuseki_03 |
03 (低注意) |
江田島市 |
沿岸島嶼 |
2.941 |
1 |
落石等 |
jizen |
0.619 |
False |
(なし) |
| L74_0021 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
2.972 |
1 |
落石等 |
jizen |
0.817 |
True |
第3次 |
| L74_0022 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
1.538 |
1 |
落石等 |
jizen |
1.538 |
True |
第1次 |
| L74_0028 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
2.993 |
1 |
落石等 |
jizen |
2.289 |
True |
第3次 |
重複箇所 表から読み取れること:
これら181 区間は「常時=注意 (L74) / 異常時=規制 (L73)」 の
切替運用がされる制度階層の最警戒箇所。 全件 CSV
(L74_overlap_l73_segments.csv) で詳細を提供 — これらの箇所は
注意+規制の連続性のフィールド検証研究の対象として直接利用可能。
【RQ3】 県の道路情報 3 階層 (L50/L73/L74) + L72 — 逆ピラミッド構造 / 3 重指定 69 件
狙い (RQ3)
RQ2 で「L74 と L73 の 2 層階層」 を見たが、 これでも県の道路情報を完全には
描けない。 県にはもう 1 層がある: L50 動的規制 (本日 + 今後)。
RQ3 ではL50 + L73 + L74 の 3 階層を統合的に分析し、 さらに緊急輸送道路
(L72) との空間相関を見ることで、 県の道路情報配信制度全体を量的に俯瞰する。
H4 (件数 注意>動的>規制) と H5 (L74 ∩ L72 ≥ 20km) を検証する。
手法 — 3 階層件数 + L72 30m バッファ重複
狙い: (1) L50 (1257 + 1258, 動的規制 218 件) を読み込んで
件数比較、 (2) L72 緊急輸送道路 (630 セグ / 2789 km) に対して
30m バッファを作成、 L74 LineString と sjoin で重複判定 + intersection
で重複延長計算。 (3) 4 カテゴリ (L74 単独 / ∩L73 / ∩L72 / 3 重) で集計。
| 階層 | 件数 | 性質 | 規制力 |
| L50 動的規制 (本日+今後) |
218 件 (69+149) |
短期 (~数日)・工事 + 災害短期 |
強 (通行止/片側交互/車線規制) |
| L73 事前通行規制 (静的) |
164 件 |
恒常・雨量閾値超過で発動 |
強 (発動時 通行止) |
| L74 走行注意 (静的) |
381 件 |
恒常・落石注意の情報提供 |
弱 (法的強制なし、 注意喚起のみ) |
実装 (主要部)
↑ L74_caution_segments.py 行 1894–1976
1
2
3
4
5
6
7
8
9
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931 | # L50 動的規制件数を読み込み (本日 + 今後)
import json
n_today = len(json.load(open("data/extras/L50_road_restrictions/1257_today.json",
encoding="utf-8")).get("results", []))
n_future = len(json.load(open("data/extras/L50_road_restrictions/1258_future.json",
encoding="utf-8")).get("results", []))
n_l50 = n_today + n_future
# L72 緊急輸送道路を読み込み (NDJSON 風: 4 階層)
def load_l72_lines(idx):
p = f"data/extras/L72_emergency_road/.../05_kinkyu_route_{idx}.json"
with open(p, encoding="utf-8") as f:
text = f.read()
return [LineString([(pt["e"], pt["d"]) for pt in seg])
for seg in json.loads("[" + text + "]") if len(seg) >= 2]
records_l72 = []
for idx in ["01", "02", "03", "04"]:
for ln in load_l72_lines(idx):
records_l72.append({"l72_rank": idx, "geometry": ln})
gdf_l72 = gpd.GeoDataFrame(records_l72, crs="EPSG:4326").to_crs("EPSG:6671")
# L72 30m バッファ → L74 と重複延長
gdf_l72_buf = gdf_l72.copy()
gdf_l72_buf["geometry"] = gdf_l72.geometry.buffer(30)
buf_union_l72 = gdf_l72_buf.geometry.union_all()
gdf["overlap_l72_km"] = gdf.geometry.apply(
lambda g: g.intersection(buf_union_l72).length / 1000)
gdf["on_l72"] = gdf["overlap_l72_km"] > 0
print(f"L74 ∩ L72: {gdf['on_l72'].sum()} 区間 / "
f"{gdf['overlap_l72_km'].sum():.1f} km")
# 4 カテゴリ (L74 単独 / ∩L73 / ∩L72 / 3 重)
n_only = (~gdf["on_l73"] & ~gdf["on_l72"]).sum()
n_l73 = (gdf["on_l73"] & ~gdf["on_l72"]).sum()
n_l72 = (~gdf["on_l73"] & gdf["on_l72"]).sum()
n_triple = (gdf["on_l73"] & gdf["on_l72"]).sum()
print(f"4 カテゴリ: 単独={n_only} / ∩L73={n_l73} / ∩L72={n_l72} / 3重={n_triple}")
|
結果 1: 3 階層 件数比較 + 重ね合わせマップ (図 6)
なぜこの図か: H4 (件数 注意>動的>規制) を直接検証するため、 3 階層
件数を棒グラフで並べる。 同時に右パネルで 3 階層を地図に重ねて、 「弱い情報は
広く、 強い規制は狭く」 の物理形を見せる。
図 6 から読み取れること:
- 左パネル (3 階層件数):
L74 注意 (381) > L50 動的 (218) > L73 規制 (164)
の逆ピラミッド構造。 H4 (強支持)
- 件数比は 2.3 : 1.3 : 1.0 (L73 = 1)。
L74 は L73 の 2.3 倍の件数規模を持ち、 「弱い情報の広い層」 と
して機能
- 右パネル (3 階層 重ね合わせマップ):
L74 (橙) が広い面で分布、 L73 (赤) が中山間・沿岸の山岳道路に絞られる、
L50 (紫点) が県内に散発的に動的発生 — 3 階層の地理的な階層差が
一目で見える
- L50 (紫点) は中央 (広島市・東広島・福山) にも多く分布し、 L73 / L74 が中山間
集中なのと対比的 — 動的規制 = 工事ベースで都市部にも多い
結果 2: L74 ∩ L72 緊急輸送道路 重複マップ (図 7)
なぜこの図か: 県の重要道路 (緊急輸送道路 L72) の沿道に注意区間が
集中するか? を地図で確認する。 L72 (灰背景), L74 単独 (橙), L74 ∩ L72 (緑強調),
3 重指定 (★) の 4 段階色分けで、 「注意 = 主要道路の沿道に多い」 という空間相関
が一目で見える。
図 7 から読み取れること:
- 灰線 (L72 緊急輸送道路, 630 セグ / 2789 km):
4 階層を重ねた背景
- 橙線 (L74 単独, 184 件):
L72 と重ならない注意区間 — 一般県道・市町道の山岳路線
- 緑線 (L74 ∩ L72, 197 件 / 394.6 km):
緊急輸送道路の沿道に分布する注意区間 — H5
(強支持)
- 赤★ (3 重指定 L74∩L73∩L72, 69 件):
制度的最警戒箇所 — 「災害時に通行確保すべき + 災害前に予防規制 +
平常時から注意喚起」 の4 層 BCP 矛盾
- L74 ∩ L72 重複は36.6%
(= L74 総延長 1078 km 中 395 km) — 注意区間の
相当割合が緊急輸送道路の沿道に分布
結果 3: 4 カテゴリ + L72 階層別重複 (図 8)
なぜこの図か: L74 区間を「単独 / ∩L73 / ∩L72 / 3 重」 の 4 カテゴリに
クロス分類してパイ図で見せ、 制度的な重なり構造を量化する。 同時に右パネルで
L72 階層別 (第 1 次〜補完) の重複分布を見て、 注意区間がどの階層の緊急輸送
道路と重なりやすいかを量化する。
図 8 から読み取れること:
- 左パネル (4 カテゴリ パイ):
L74 単独 (72 件 = 18.9%) が最多 —
多くの注意区間は規制も緊急輸送道路もない一般県道・市町道に位置。
L74 ∩ L72 = 128 件 (33.6%) で
緊急輸送道路の沿道。
L74 ∩ L73 = 112 件 (29.4%) で
規制との二重指定。
3 重指定 = 69 件が最警戒
- 右パネル (L72 階層別重複):
L74 ∩ L72 のうち、 第 2 次 + 補完が多くを占める傾向 — 主要地方道 + 一般国道
がマッチする路線。 第 1 次 (高速 + 主要国道) は注意区間が少ない (= 高速は
落石対策が完備)
- 「注意区間 = 主要道路の沿道」 という空間相関が量的に確認 —
これは緊急輸送道路 = 主要地方道・国道という性質上必然的
結果 4: 3 階層 + 4 カテゴリ + 3 重指定 詳細表
3 階層比較サマリ:
| 階層 |
件数 |
性質 |
規制力 |
| L50 動的規制 (本日 + 今後) |
218 |
短期 (~数日)・工事 + 災害短期 |
強 (通行止/片側交互/車線規制) |
| L73 事前通行規制区間 (静的) |
164 |
恒常・雨量閾値超過で発動 |
強 (発動時 通行止) |
| L74 走行注意区間 (静的) |
381 |
恒常・落石注意の情報提供 |
弱 (法的強制なし、 注意喚起のみ) |
3 階層 表から読み取れること:
件数規模は L74 (381) > L50 (218) > L73 (164) の順。
規制力は L74 (弱) < L50 (強・短期) < L73 (強・恒常)。 性質も「弱い情報の
広い層 → 強い動的規制 → 強い恒常規制」 という階層構造が確認。
4 カテゴリ クロス:
| カテゴリ |
区間数 |
シェア_% |
| L74 単独 (規制も緊急輸送道路もなし) |
72 |
18.9 |
| L74 ∩ L73 (規制と二重指定, 緊急輸送道路外) |
112 |
29.4 |
| L74 ∩ L72 (緊急輸送道路上, 規制なし) |
128 |
33.6 |
| L74 ∩ L73 ∩ L72 (3 重指定 = 最警戒) |
69 |
18.1 |
4 カテゴリ 表から読み取れること:
L74 単独が圧倒的多数 (18.9%) で、 注意制度は
規制・緊急輸送と独立に運用される箇所が大多数。 一方3 重指定
69 件は最警戒の制度的最重要箇所リストとして
注目すべき。
L72 階層別重複:
| 緊急輸送道路階層 |
区間数 |
重複_km |
| 第1次 |
20 |
32.26 |
| 第2次 |
113 |
240.18 |
| 第3次 |
64 |
122.17 |
L72 階層別 表から読み取れること:
第1次
が最多重複。 主要地方道 + 国道に注意区間と緊急輸送道路の二重指定が集中する。
3 重指定 区間 詳細 (上位 15):
| seg_id |
level |
level_label |
市町名 |
地理クラス |
len_km |
l73_naiyo_match |
l73_type_match |
overlap_l73_km |
l72_label |
overlap_l72_km |
| L74_0003 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.874 |
冠水, 落石等 |
jizen |
2.406 |
第2次 |
1.167 |
| L74_0007 |
rakuseki_03 |
03 (低注意) |
大竹市 |
平野・沿岸都市 |
2.994 |
落石等 |
jizen |
1.498 |
第2次 |
2.994 |
| L74_0008 |
rakuseki_03 |
03 (低注意) |
大竹市 |
平野・沿岸都市 |
2.994 |
落石等 |
jizen |
2.994 |
第2次 |
2.889 |
| L74_0010 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
2.993 |
落石等 |
jizen |
2.351 |
第2次 |
2.907 |
| L74_0014 |
rakuseki_03 |
03 (低注意) |
廿日市市 |
平野・沿岸都市 |
1.927 |
凍結等, 落石等 |
jizen, winter |
1.927 |
第2次 |
0.012 |
| L74_0021 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
2.972 |
落石等 |
jizen |
0.817 |
第3次 |
0.135 |
| L74_0022 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
1.538 |
落石等 |
jizen |
1.538 |
第1次 |
0.088 |
| L74_0028 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
2.993 |
落石等 |
jizen |
2.289 |
第3次 |
2.993 |
| L74_0029 |
rakuseki_03 |
03 (低注意) |
安芸高田市 |
中山間山地 |
1.850 |
落石等 |
jizen |
1.850 |
第3次 |
1.850 |
| L74_0038 |
rakuseki_03 |
03 (低注意) |
呉市 |
平野・沿岸都市 |
1.304 |
落石等 |
jizen |
0.550 |
第2次 |
0.010 |
| L74_0039 |
rakuseki_03 |
03 (低注意) |
呉市 |
平野・沿岸都市 |
2.219 |
落石等 |
jizen |
1.224 |
第2次 |
0.081 |
| L74_0040 |
rakuseki_03 |
03 (低注意) |
呉市 |
平野・沿岸都市 |
3.001 |
落石等, 越波 |
jizen |
1.813 |
第2次 |
0.018 |
| L74_0047 |
rakuseki_03 |
03 (低注意) |
呉市 |
平野・沿岸都市 |
2.807 |
落石等 |
jizen |
1.894 |
第3次 |
0.647 |
| L74_0058 |
rakuseki_03 |
03 (低注意) |
呉市 |
平野・沿岸都市 |
3.048 |
強風, 越波 |
jizen |
1.738 |
第2次 |
3.048 |
| L74_0067 |
rakuseki_03 |
03 (低注意) |
不明 (代表点が県外/海上) |
平野・沿岸都市 |
2.958 |
落石等 |
jizen |
0.282 |
第1次 |
0.288 |
3 重指定 表から読み取れること:
これら69 区間は「災害時に通行確保すべき (L72) + 災害前に
予防規制 (L73) + 平常時から注意喚起 (L74)」 の4 層 BCP 矛盾。 全件 CSV
(L74_triple_segments.csv) で詳細を提供 — 県の地域防災計画に直接
フィードバックできる制度的最重要箇所リストとして利用可能。
仮説検証総合
仮説検証総合 (H1〜H5)
本記事冒頭で立てた 5 仮説の検証結果を以下にまとめる。
すべての仮説の検証根拠は本記事中の図表に明示されており、 再現可能。
| 仮説 |
観測値 |
判定 |
詳細解説 |
| H1 階層構造: orange (03) ≥ 60% (RQ1) |
観測 = 03: 253/381 = 66.4% |
強支持 |
H1 強支持: 走行注意区間 381 のうち低注意 (03, orange) が 253 件 (66.4%)、 高注意 (04, red) が 128 件 (33.6%)。 弱注意が圧倒的多数派で、 強注意は厳選された 少数派という逆ピラミッド型の制度設計を示す。 これは「広く弱い 情報を提供しつつ、 ほんとうに危険な箇所だけ強調する」 という道路情報 提供の品質設計思想を反映 (情報過多回避)。 階層 03 の合計延長 708 kmと階層 04 の 370 kmを比較すると、 区間あたり平均長は 04 のほうが 1.0 倍と 長い (= 強注意は連続した長区間で運用される)。 |
| H2 規制との重複: L74 ∩ L73 ≥ 10 件 (RQ2) |
観測 = L74 ∩ L73: 181 件 |
強支持 |
H2 強支持: 走行注意区間 (L74) のうち、 事前通行規制区間 (L73) 100m バッファ内にあるのは181 件 (47.5%)、 重複延長は389.1 km。 これは「同じ道路に注意 (弱) + 規制 (強) の二重指定」 がある箇所で、 制度階層の連続性を示す物理的証拠。 規制側の主な内容は 強風, 越波, 冠水, 落石等,冠等で、 これらの箇所は道路管理者が通常時=注意/異常時=規制と運用切替を 設計する最警戒地点。 ただし重複区間は L74 全体の 47.5% に過ぎない (= H3 で見るように L74 は L73 より 広い予防情報層)。 |
| H3 注意のみが多数派: ≥ 80% (RQ2) |
観測 = 注意のみ 52.5% |
反証 |
H3 反証: 走行注意区間のうち、 事前通行規制 (L73) と重ならない 「注意のみ」 区間は200 件 (52.5%)。 これは注意制度が規制制度より広い範囲の 道路をカバーすることを意味する。 注意 = 「広く弱い予防情報層」、 規制 = 「狭く強い予防制度」 という2 層の制度階層が量的に確認 — 県の予防防災は(1) ドライバーへの注意喚起 (L74 = 広い情報層) → (2) 道路管理者の自動規制 (L73 = 狭い強制層)の段階的設計に なっている。 (反証) |
| H4 件数規模: 注意 (381) > 動的 (218) > 規制 (164) (RQ3) |
観測 = L74 381 / L50 218 / L73 164 |
強支持 |
H4 強支持: 県の道路情報 3 階層の件数比はL74 注意 381 > L50 動的 218 > L73 静的規制 164。 これは「弱い情報は 広く、 強い規制は狭く」 という逆ピラミッド構造の量的実証。 L74 (注意, 弱, 恒常) が広い情報層 → L50 (動的, 強, 短期) が中間の 運用層 → L73 (静的規制, 強, 恒常) が頂点の予防的安全層。 件数比 = 2.3 : 1.3 : 1.0 (L73 を 1 とした比率)。 これは情報配信の3 階層ピラミッド設計の 具体形であり、 災害時の情報伝達はL74 → L50 → L73の順に強化 されていく構造。 |
| H5 緊急輸送道路との重複 ≥ 20 km (RQ3) |
観測 = L74 ∩ L72 重複 394.6 km |
強支持 |
H5 強支持: 走行注意区間 (L74) と緊急輸送道路 (L72, 630 セグ / 2789 km) の 30m バッファ重複は 197 区間 / 394.6 km = L74 総延長 1078 km の 36.6%。 これは「注意区間は主要道路 (緊急輸送道路) の沿道に集中する」 という空間相関の量的証拠。 特に3 重指定 (L74 ∩ L73 ∩ L72) = 69 件は 「災害時に通行確保すべき + 災害前に予防規制 + 平常時から注意喚起」 という4 層 BCP 矛盾の最警戒箇所。 県の地域防災計画では、 これらの 3 重指定箇所こそが「制度的最重要箇所リスト」として 維持管理 + 防災工事の優先順位上位となる。 |
主要発見の整理
- RQ1 主発見: 県の走行注意区間は381 区間 / 1078 km
の 2 階層構造 (低注意 03 = 253 件 (66.4%) + 高注意 04 = 128 件)。
H1 (強支持)。 中山間 8 市町に
172 件 (45.1%)が集中、 中央区間長
2975 m と「連続した山岳路線への面的指定」 が支配的。
これは「弱い情報の広い層」 という予防情報配信制度の物理形状を
初めて系統的に記述した。
- RQ2 主発見: L74 ∩ L73 重複は181 件 / 389.1 km
(H2 強支持)、 「注意のみ」 区間が
52.5%で多数派 (H3 反証)。
これは「注意 = 広い情報層 ⊃ 規制 = 狭い強制層」という 2 層の制度
階層を量的に実証した。 重複箇所 181 件は「常時=注意 / 異常時=
規制」 の制度切替地点。
- RQ3 主発見: 県の道路情報 3 階層はL74 (381) > L50 (218)
> L73 (164)の逆ピラミッド構造 (H4 強支持)。
L74 ∩ L72 緊急輸送道路 重複は197 区間 / 394.6 km
(H5 強支持)、 3 重指定 (L74∩L73∩L72)
69 件が「制度的最警戒箇所」 として量的同定された。
これらは県の地域防災計画 BCP の最優先課題リストとして直接利用可能。
本記事の独自貢献
- 「予防情報配信制度」 の概念定量化: 走行注意区間 381 区間 を
注意レベル × 区間長 × 地理クラス × 市町の 4 軸で初めて系統的に集計。
県の予防情報運用が「rakuseki_03/04 の 2 階層 + 連続山岳路線への面的指定」
という制度に整理されていることを実証。
- 「注意 vs 規制」 の制度階層実証: L74 (注意) と L73 (規制) の
100m バッファ重複で、 「注意 = 広い情報層 ⊃ 規制 = 狭い強制層」と
いう 2 層の制度階層を量的に支持。 注意のみ 52.5% +
重複 47.5% の構造で、 注意制度が規制制度より広い予防
情報をカバーする設計を確認。
- 「県の道路情報 3 階層」 概念フレームの提案: L50 動的 +
L73 静的規制 + L74 静的注意の 3 階層を統合して分析する初の研究。 件数規模
の逆ピラミッド構造(注意 > 動的 > 規制) を量的実証し、 災害時の情報伝達
は「注意 → 規制 → 動的規制」の順に強化される構造を整理。
- 「3 重指定箇所」 リストの作成: L74 (注意) ∩ L73 (規制) ∩ L72 (緊急輸送
道路) の3 重交差を空間判定で69 件同定 (CSV 出力)。
これらは「災害時に通行確保すべき + 災害前に予防規制 + 平常時から注意喚起」 の
4 層 BCP 矛盾を持つ最警戒箇所であり、 県の地域防災計画 BCP の最優先
課題リストとして直接利用可能。
- L50 + L72 + L73 との横断連携 (4 dataset 統合): 走行注意 (L74, 1 dataset) +
動的規制 (L50, 既扱) + 事前規制 (L73, 既扱) + 緊急輸送道路 (L72, 既扱) の
4 dataset を sjoin で組合わせ、 県の道路情報配信制度ネットワークを
初めて統合的に定量化。
- NDJSON 風形式の解読パターン例示: L72 と同様の「[配列] が「,改行」
区切りで複数並ぶ」 形式を
"[" + text + "]" ラップで解読する
手法を再利用。 公開データの非標準形式を実装で吸収する手法を例示。
本記事の限界
- 属性の制約 (L73 と比較): L74 公開データには L73 のような豊富属性
(路線名・規制内容・規制ランク・雨量閾値・迂回路有無) が含まれない。 これは
「ドライバー向け情報提供」 の最小限公開と推定されるが、 研究用途には限界。
路線名や注意理由の詳細は道路管理台帳との結合が必要。
- 注意レベル基準の不明: rakuseki_03 と rakuseki_04 の判定基準
(どんな履歴があれば 04 になるか?) は公開資料からは確認できない。 公式メタには
色情報のみで、 数値閾値や判定アルゴリズムは公開されていない。
- 配信時期の差: L73 (2026-05-01) と L74 (2022-09-08) で配信時期が異なり、
同じ路線でも区間定義が更新されている可能性。 100m バッファでほぼ吸収できるが、
厳密な路線一致判定はできない。
- L50 の地理的扱いの単純化: L50 は本記事で件数比較のみとして扱った
(動的規制は時間軸が短いため、 静的注意との空間 sjoin は意味が弱い)。 L50 の
点 (lat/lon) を地図に重ねたが、 実際の規制区間 LineString はL50 自体の
別フィールドに格納される可能性 — 本記事ではスコープ外。
- 因果関係不確定: 「L74 注意 → L73 規制 → L72 緊急輸送道路」 の
制度階層は近接性 (重複) からの推測であり、 実際の指定順序や因果関係は
道路管理者の意思決定文書を見ないと確定できない。 GIS の空間判定は「制度階層
仮説の量的支持」 として使う。
- ライン形状の精度: 配信時期の異なる L73/L72/L74 を 30m〜100m バッファで
sjoin するため、 道路敷地の正確な一致判定はできない。 重複あり区間でも
実際は別路線の可能性が低確率で残る。
発展課題
発展課題 — 結果 X → 新仮説 Y → 課題 Z 形式
発展課題 1 (RQ1 拡張): 注意レベル基準の数値化
- 結果 X: 本記事は注意レベル 03/04 の判定基準が公開資料から
確認できない (色情報のみ) を限界として示した。 04 のほうが平均長が長い
傾向があるが、 これは結果であって基準ではない。
- 新仮説 Y: 04 (高注意) は (i) 過去 5 年の落石履歴 ≥ 2 回 OR (ii) 急傾斜
警戒区域 50m 圏内 OR (iii) 雨量基準 100mm/24h 未満設定 のいずれかを
満たす区間と推定。 これらの仮説基準で再分類すると、 公式 04 と 80%
以上で一致する。
- 課題 Z: L61 過去災害履歴 + L11 警戒区域 + L73 雨量閾値 の 3 dataset を
L74 の各区間と sjoin → 04 の判定基準を機械学習 (決定木) で逆推定 →
「注意レベル基準の数値化」を提案。 県の制度透明化の根拠データ。
発展課題 2 (RQ2 拡張): L73 ∩ L74 二重指定の運用詳細解析
- 結果 X: 本記事は L74 ∩ L73 重複 181 件を同定したが、
これらの運用詳細 (普段は注意 / 雨量超過時に規制 / 終了時に解除) は
未検証。
- 新仮説 Y: 重複 181 件のうち、 過去 1 年で実際に L73 規制が
発動したのは 50-70%。 残りは「雨量閾値が高くて発動稀」 の予備規制で、
実態は「注意のみ」 と同等の運用。
- 課題 Z: 県道路規制履歴 (動的データ) を 1 年分取得 → L74 ∩ L73
重複区間と照合 → 規制発動回数 × 重複箇所 のクロス → 「重複の実運用
頻度マップ」を作成。 注意+規制の制度切替の実態解明。
発展課題 3 (RQ2 拡張): 注意区間の沿道地形・地質との相関
- 結果 X: 本記事は注意区間の中山間集中
(45.1%) を確認したが、 沿道斜面の具体的な傾斜・標高分布は
未検証。 04 (高注意) は 03 より急傾斜なはずだが量化なし。
- 新仮説 Y: 04 注意区間の沿道斜面の中央値傾斜は30 度以上
(土砂災害防止法 急傾斜地指定基準と一致)、 03 は中央 20 度。 標高は
04 が中央 400 m、 03 が中央 250 m と分離する。
- 課題 Z: L40 標高ラスタ + L39 斜度ラスタを取得 → 注意区間 LineString の
沿道に 30m バッファ → ラスタ集計 (zonal stats) → 注意レベル別 比較 →
「注意 × 地形」 の量的相関を示す。
発展課題 4 (RQ3 拡張): 3 重指定 69 件の防災工事優先順位
- 結果 X: 本記事は 3 重指定 (L74∩L73∩L72) を 69 件
同定したが、 これらの防災工事優先順位は未検証。
- 新仮説 Y: 優先順位は(1) 緊急輸送道路階層 (1次が最高), (2) 注意レベル
04 vs 03, (3) 規制ランク A vs C, (4) 過去災害近接性の 4 軸で決まる。 上位
5 件が県の防災工事 5 か年計画の中核となる。
- 課題 Z: 上記 4 指標を 0-100 スケールで標準化 → 重み付け合計でスコア化 →
上位 N 件抽出 → 「3 重指定 防災工事優先順位マップ」を作成。 県の道路
防災計画への直接インプット。
発展課題 5 (RQ3 拡張): 動的 (L50) との時間的重なり解析
- 結果 X: 本記事は L50 を件数比較のみとした。 L74 (静的) と L50 (動的) の
路線一致解析は時間軸の違いから本記事スコープ外とした。
- 新仮説 Y: 過去 1 年で L50 動的規制が発生した路線の10-20%は
L74 注意区間と路線一致する。 これらは「注意区間で実際に工事 + 災害が
発生した」 路線で、 注意指定の妥当性検証となる。
- 課題 Z: L50 の
rosen_key を 1 年分蓄積 → L74 区間の
代表 路線と照合 → 路線一致率を計算 → 「注意区間の実発動マップ」を
作成。 注意制度の運用実績検証。
発展課題 6 (展望): 地域住民への注意区間情報配信
- 結果 X: 本記事は研究者・行政向けの分析だが、 地域住民は「自分の
最寄り道路に注意区間があるか」 を直感的に知る権利がある。 現状の DoBoX は
専門家指向で、 住民向け UX は未整備。
- 新仮説 Y: 県内集落 (~1000 集落) のうち15-20%の集落は最寄り
道路に L74 注意区間がある。 これらの集落住民は普段から落石リスクを
意識する必要がある。
- 課題 Z: 集落の代表点 → 最寄り注意区間を BallTree で検索 → 集落 ×
注意区間 距離マトリクス → 「集落別注意リスクポータル」(Web ページ) を
作成。 地域住民が自分の集落 ID から見ることができる。
発展課題 7 (展望): 注意 → 規制 制度移行のリードタイム解析
- 結果 X: 本記事は L74 (注意) ⊃ L73 (規制) という 2 層階層を空間で
実証したが、 制度の時系列推移 (注意 → 規制 → 解除) は未検証。
ある区間が L74 で長年指定された後、 何年後に L73 化されるか?
- 新仮説 Y: 注意 → 規制への昇格は平均5-10 年かかり、 過去 5 年
で L74 だった区間のうち5-10%が L73 に昇格。 昇格きっかけは
落石頻度増加・新たな崩落履歴・ドライバー苦情等。
- 課題 Z: 過去 10 年の DoBoX アーカイブを取得 → L74/L73 区間の出現年・
消失年・昇格年を同定 → 「制度移行時系列」を作成。 注意 → 規制の
制度ダイナミクスを定量化。