Lesson 56

急傾斜地崩壊防止施設 単独 3 研究例分析 — 急傾斜地法 1969 の施設台帳から防災投資の地理を読む

L56急傾斜地法急傾斜地崩壊防止施設RQ×3Format B防災施設呉市偏重L46連携L22連携L20連携区域vs施設守備指数
所要 35 分 / 想定レベル: 中級 / データ: DoBoX dataset 60 (CSV 1 ファイル, 2,508 件) + L46/L10/L20/L22 連携

データ取得手順

このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。

IDデータセット名
#15dataset #15
#55砂防関係指定地情報_砂防指定地
#56砂防関係指定地情報_急傾斜地崩壊危険区域
#57砂防関係指定地情報_地すべり防止区域
#59渓流保全工基本情報
#60急傾斜地崩壊防止施設基本情報
#61地すべり防止施設基本情報
#333dataset #333
#444dataset #444
#888都市計画区域情報_区域データ_安芸高田市_行政区域

実行コマンド:

cd "2026 DoBoX 教材"
python -X utf8 lessons/L56_steep_slope_facility.py

DoBoX のオープンデータは申請不要・商用/非商用とも利用可。 data/extras/.gitignore 対象(約 57 GB のキャッシュ)。 スクリプト実行で自動再生成されます。

学習目標と問い

本記事は DoBoX のシリーズ「急傾斜地崩壊防止施設基本情報」 1 件 (dataset_id = 60) を 単独で取り上げ、 広島県内の急傾斜地崩壊防止施設 2,508 件 (CSV 1 ファイル, 13 列, 約 440 KB) / 29 市町 を 3 つの独立した研究角度 (RQ1 / RQ2 / RQ3) で並列に分析する。 本データは急傾斜地法 (1969-07-01 施行) に基づき広島県・市町が整備したハード対策の施設台帳で、 擁壁・法枠工・グランドアンカー・落石防護網等の物理工事の位置情報版。 Phase 3 防災施設系の最初の記事。

本データは1 ファイル単独 (CSV 2,508 行)の単純構造だが、 危険箇所番号を介して L46 で扱った #56 急傾斜地崩壊危険区域 (区域 polygon = 2,935 件) と 1 対 1 対応する設計。これにより「区域指定済 + 施設整備済」 vs 「区域指定済 + 施設未整備」の 最初の定量化が可能になる。さらに L10/L11 の警戒区域 polygon, L20 の新築建物, L22 の市町別人口と 組み合わせることで、防災投資の地理的優先順位を診断する研究が可能。

独自用語の定義

研究の問い (3 RQ)

仮説 H1〜H5

  1. H1 (呉市偏重 ≥40%, RQ1): 呉市単独で 40% 以上を占める。 軍港背後の急斜面住宅密集の歴史的帰結。
  2. H2 (自然斜面優位 ≥80%, RQ1): 斜面区分は自然が 80% 以上。急傾斜地法 (1969) の 対象範囲が「自然崖の人家被害」 主眼であることに整合。
  3. H3 (1980-90 集中整備, RQ1): 告示年代の中央値は 1985-1990 年付近。 法施行 (1969) 直後の集中整備期から漸減し、2018 西日本豪雨後に再加速。
  4. H4 (区域 vs 施設ギャップ ~14%, RQ2): L46 #56 (2,935 件) と本データ #60 (2,508 件) の差 = 約 400 件 = 14% が「区域指定済 + 施設未整備」 残課題。
  5. H5 (人口・建物との正相関 r=0.5-0.7, RQ3): 市町別施設数と人口・建物数は正の相関。 ただし呉市は過剰中山間市町は過小の非対称性。

到達点

本記事を読み終えた学習者は次の 3 点を体感できる:

  1. 1 つの「施設台帳 CSV」 (2,508 件 × 13 列) から、市町別偏重 (呉市 47%) と 斜面区分構造 (自然 92%)を多角度に読む方法を習得する。
  2. 同名の関連データセット (#56 区域 vs #60 施設) を市町別に照合し、 区域指定 vs 施設整備のギャップを定量化する 2 制度連鎖の比較研究手法を体感する。
  3. 市町別データを既存レッスン (L20 建物 / L22 人口) と結合し、1 施設あたり守る人口という 防災投資効率の指標を構築。守備手薄市町を同定する政策含意のある研究に発展できる。

使用データ

DoBoX のシリーズ「急傾斜地崩壊防止施設基本情報」 1 件のみを単独で扱う。 リソースは CSV 1 ファイルのシンプル構造。

項目
dataset_id60
名称急傾斜地崩壊防止施設基本情報
組織広島県土木建築局 砂防課
リソース22826 — CSV (438 KB, 2,508 行)
根拠法急傾斜地の崩壊による災害の防止に関する法律 (1969-07-01 施行)
列構成 (13 列)履歴ID / 危険箇所番号 / 箇所名 / 県 / 市区郡町 / 字 / 斜面区分 / 地区名 / 位置 / 告示年月日 / 告示番号 / 緯度 / 経度
CRSWGS84 (緯度経度) → 解析時 EPSG:6671 へ変換
ライセンスクリエイティブ・コモンズ表示 4.0
最終更新2026-04-27
取得日2026-05-09

データの構造

関連データセットとの対応

ダウンロード

本レッスンの再現に必要な全データ・中間 CSV・図 PNG・スクリプトを以下から直接 DL できる:

生データ (DoBoX 直リンク)

本記事の中間 CSV (再現用)

図 (PNG 9 枚)

再現スクリプト

個別取得 (PowerShell):

cd "2026 DoBoX 教材"
iwr "https://hiroshima-dobox.jp/resource_download/22826" -OutFile "data/extras/L56_steep_slope_facility/砂防_急傾斜地崩壊防止施設_2026-04-27.csv"
py -X utf8 lessons\L56_steep_slope_facility.py

【RQ1】 構造分析 — 県内 2,508 件・呉市 47% 集中の地理

狙い (RQ1)

急傾斜地崩壊防止施設 (2,508 件) は急傾斜地法 (1969) に基づく公費施設。 法施行から 55 年で県内に整備された施設の地理偏在・斜面区分構成・告示時期偏在を 4 軸で読む。呉市の偏重は H1 で予想されるが、その実数値と他市町との差を確認する。

手法 (CSV 読込 → 市町正規化 → 集計)

実装コード (CSV 読込 + 市町正規化 + GeoDataFrame 化 + 時期分類)

L56_steep_slope_facility.py 行 1433–1514

 1
 2
 3
 4
 5
 6
 7
 8
 9
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
# 1. CSV 読込・前処理
import pandas as pd, geopandas as gpd
df = pd.read_csv("data/extras/L56_steep_slope_facility/砂防_急傾斜地崩壊防止施設_2026-04-27.csv",
                  encoding="utf-8-sig")
df["緯度"] = pd.to_numeric(df["緯度"], errors="coerce")
df["経度"] = pd.to_numeric(df["経度"], errors="coerce")
df["告示年月日_dt"] = pd.to_datetime(df["告示年月日"], errors="coerce")
df["告示年"] = df["告示年月日_dt"].dt.year
df["斜面区分"] = df["斜面区分"].fillna("").str.strip().replace("", "不明")

# 2. 市町名正規化 (郡名混入の除去)
def normalize_city(s):
    s = str(s).strip()
    if "郡" in s:
        s = s.split("郡", 1)[1]
    return s
df["市町名"] = df["市区郡町"].apply(normalize_city)

# 3. GeoDataFrame 化 (CRS 変換)
gdf = gpd.GeoDataFrame(df,
                        geometry=gpd.points_from_xy(df["経度"], df["緯度"]),
                        crs="EPSG:4326").to_crs("EPSG:6671")

# 4. 市町別集計 + 斜面区分 cross
city_summary = df.groupby("市町名").agg(
    件数=("履歴ID", "count"),
    自然=("斜面区分", lambda s: (s == "自然").sum()),
    人工=("斜面区分", lambda s: (s == "人工").sum()),
).reset_index().sort_values("件数", ascending=False)

# 5. 時期 5 区分の分類
def era_label(y):
    if y < 1980: return "1969-1979 (法施行直後)"
    if y < 1990: return "1980-1989 (集中整備)"
    if y < 2000: return "1990-1999 (漸減)"
    if y < 2010: return "2000-2009 (低水準)"
    return "2010-2024 (豪雨後)"
df["告示時期"] = df["告示年"].apply(era_label)

図 1: 県全域 施設マップ + 市町別件数 choropleth (2 panel)

なぜこの図か: 学習者がまず「施設はどこにあるか」 を一目で把握するため。 左の点マップは斜面区分 (自然=緑/人工=橙/不明=灰) で色分けし、 右の choropleth は市町別件数の濃淡を示す。 呉市への極端な集中が両方の図で同時に確認できる。

図 1 (RQ1): 県全域 施設マップ + 市町別件数 choropleth
図 1 (RQ1): 県全域 施設マップ + 市町別件数 choropleth

この図から読み取れること:

図 2: 市町別ランキング (Top 15, 自然/人工 stack) + 斜面区分パイ

なぜこの図か: H1 (呉市偏重) と H2 (自然斜面優位) を 1 図で同時検証する。 左の stack 棒で市町ごとの自然 vs 人工内訳、右パイで全体の比率を見る。 呉市は人工率が高いはず (= 軍港開発による人工急斜面) という派生仮説も読める。

図 2 (RQ1): 市町別ランキング Top 15 + 斜面区分パイ
図 2 (RQ1): 市町別ランキング Top 15 + 斜面区分パイ

この図から読み取れること:

図 3: 告示年別ヒスト (1969-2024) + 時期別 5 区分パイ

なぜこの図か: 法施行後 55 年の時系列で施設整備のリズムを読む。 左で年別の山谷、右で 5 期の構成を確認する。 1969 年 (法施行) と 2018 年 (西日本豪雨) を縦線でマーキングし、 制度史と現場運用の対応を読みやすくしている。

図 3 (RQ1): 告示年別ヒスト + 時期別 5 区分パイ
図 3 (RQ1): 告示年別ヒスト + 時期別 5 区分パイ

この図から読み取れること:

図 4: 告示時期別 5 期 small multiples マップ

なぜこの図か: 時系列ヒストだけでは「どこに整備されたか」 が分からない。 5 期 × 5 panels で同じ県地図に時期別の点を分けて配置し、 地理的拡散・縮退のリズムを直感的に読む可視化。

図 4 (RQ1): 告示時期別 5 期 small multiples マップ
図 4 (RQ1): 告示時期別 5 期 small multiples マップ

この図から読み取れること:

表: 全体サマリ (3 RQ 統合)

指標
総施設数2,508 件 (全 29 市町)
Top 1 市町呉市 1177 件 (46.9%)
Top 5 シェア64.8%
斜面区分: 自然2,306 件 (91.9%)
斜面区分: 人工138 件 (5.5%)
斜面区分: 不明64 件 (2.6%)
告示年範囲1900〜2024 (中央値 1989 年)
告示年 欠損440 件
L46 #56 急傾斜地崩壊危険区域 (区域)2,934 件
施設整備率 (全県)85.5% (施設 2508 ÷ 区域 2934)
区域あり施設なし (差)426 件 (14.5% of 区域)
警戒区域内に立地976 件 (38.9%)
100m以内 (隣接) 累計2440 件 (97.3%)
人口×施設 相関 r0.337
人口密度×施設 相関 r-0.028
新築建物×施設 相関 r0.278
全県平均 1 施設あたり守る人口1158 人

この表から読み取れること: 全 2,508 件の基本統計、呉市 偏重 (47%)、自然斜面 92%、区域 vs 施設整備率 85%、警戒区域内 39%、など 3 RQ の核心指標が 17 行に集約された統合サマリ。

表: 市町別ランキング (Top 20)

順位市町名件数シェア_%自然人工不明人工率_%告示年中央
1呉市117746.911086905.901,985
2尾道市1295.141091289.301,985
3福山市1144.55940200.0001,992
4江田島市1134.519413611.51,984
5廿日市市923.6786606.501,994
6広島市安芸区783.1178000.0001,991
7大崎上島町682.71617010.31,978
8大竹市652.5962030.0001,987
9広島市東区642.5555364.701,994
10竹原市632.5157517.901,987
11三原市602.3957213.301,998
12広島市南区532.1152010.0001,989
13安芸太田町491.9548102.001,999
14広島市安佐南区471.8744030.0002,004
15広島市佐伯区471.8747000.0002,003
16東広島市471.87415110.61,992
17広島市西区451.7937264.401,994
18坂町441.7542020.0001,990
19三次市351.4034102.901,990
20広島市安佐北区261.0421143.802,004

この表から読み取れること: 各市町の件数・斜面区分内訳・人工率・告示年中央が一覧。Top 1 市町は人工率が高めで、軍港開発に伴う人工急斜面が多い歴史を反映する。Top 5 を超えると件数が急減 = 呉市単独が突出する偏重構造を再確認できる。

表: 斜面区分構成 (3 区分)

斜面区分件数シェア_%意味
自然 (もとから急斜面)230691.9もともとの地形が急傾斜である崖。雨水浸食・地震動で崩落リスク。
人工 (道路・造成由来)1385.50道路掘削・宅地造成等で人為的に作られた急斜面。施工管理が崩落リスクを左右。
不明642.60斜面区分列が空欄のレコード。古い登録で区別未記入の可能性。

この表から読み取れること: 自然斜面が 92% を占め、人工斜面はわずか6%。急傾斜地法 (1969) はもとからの自然急斜面に住む人家を主に守る制度として運用されてきた歴史的事実が確認される。

表: 告示年代別件数 (10 年区間)

告示年代件数シェア_%
1,9001.000.000
1,96011.00.500
1,970474.022.9
1,980598.028.9
1,990505.024.4
2,000414.020.0
2,01050.02.40
2,02015.00.700

この表から読み取れること: 告示年代の分布。1970-1990 年代がピーク、1990 年代以降は漸減 → 高度経済成長期の宅地拡張に対応した整備史を反映。

表: 告示時期別 5 区分

告示時期件数シェア_%
1969-1979 (法施行直後)48623.5
1980-1989 (集中整備)59828.9
1990-1999 (漸減)50524.4
2000-2009 (低水準)41420.0
2010-2024 (豪雨後)653.10

この表から読み取れること: 5 期分類で時代の重心が見える。1980-1989 集中整備期が最大シェアで、その後漸減 → 2010 年代は低水準維持。

【RQ2】 警戒区域 × 危険区域との関係 — 区域 vs 施設ギャップ 426 件

狙い (RQ2)

急傾斜地法は区域指定 (#56) と施設整備 (#60) を対で運用する設計。 本 RQ2 では (1) 危険箇所番号の市町別集計を介した #56 区域 vs #60 施設のギャップ、 (2) 施設点と土砂災害警戒区域 (急傾斜) polygon の距離区分を読む。 「区域指定済 + 施設未整備」 残課題 (426 件 = 区域の 14.5%) を 初めて市町別に同定する。

手法 (groupby 集計 + STRtree 最近傍距離)

実装コード (groupby 集計 + STRtree 最近傍距離)

L56_steep_slope_facility.py 行 1599–1674

 1
 2
 3
 4
 5
 6
 7
 8
 9
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
# RQ2: #56 区域 vs #60 施設 + 警戒区域距離
import pandas as pd
from shapely import STRtree

# 1. #56 急傾斜地崩壊危険区域 CSV を読込 (L46 既扱)
df_zone = pd.read_csv("data/extras/L46_sabo_designation/sabo_designation_56_kyukeisha_kuiki.csv",
                       encoding="utf-8-sig")
df_zone = df_zone[df_zone["砂防関係指定地の種類"] == "急傾斜地崩壊危険区域"].copy()
df_zone["市町名"] = df_zone["市区郡町"].apply(normalize_city)

# 2. 市町別 区域数 vs 施設数
zone_count = df_zone.groupby("市町名").size().reset_index(name="区域数_56")
fac_count = df.groupby("市町名").size().reset_index(name="施設数_60")
gap = pd.merge(zone_count, fac_count, on="市町名", how="outer").fillna(0)
gap["差_区域-施設"] = gap["区域数_56"] - gap["施設数_60"]
gap["施設整備率_%"] = (gap["施設数_60"] / gap["区域数_56"] * 100).round(1)

# 3. STRtree で各施設点から最近傍警戒区域 polygon までの距離
warn = gpd.read_file("data/extras/sediment_shp/kyukeisha/.../73_031krp_34_20260427.shp"
                       ).to_crs("EPSG:6671")
tree = STRtree(warn.geometry.values)
import numpy as np
dists = np.zeros(len(gdf), dtype="float32")
for i, pt in enumerate(gdf.geometry.values):
    idx = tree.nearest(pt)  # 最近傍 polygon の index
    dists[i] = pt.distance(warn.geometry.values[idx])
gdf["dist_warn_m"] = dists

# 4. 距離区分 (0 = 区域内 / 100 / 500 / 500+)
def warn_class(d):
    if d <= 0.5: return "0_警戒区域内"
    if d <= 100: return "1_100m以内"
    if d <= 500: return "2_100-500m"
    return "3_500m超"
gdf["警戒距離区分"] = gdf["dist_warn_m"].apply(warn_class)

図 5: 警戒区域 (急傾斜) × 施設 重ね合わせ全県マップ

なぜこの図か: 施設配置と警戒区域 (土砂災害防止法 2000 指定) の空間整合を 1 図で読む。 警戒区域 polygon を赤薄で塗り、施設点を距離区分で色分けする。 区域内の緑点 (= 警戒対象を直接守る整合配置) と500m 超の灰点 (= 警戒指定がない場所での独立整備) のバランスから、施設配置の制度間連携の度合いを読む。

図 5 (RQ2): 警戒区域 × 施設 重ね合わせ全県マップ
図 5 (RQ2): 警戒区域 × 施設 重ね合わせ全県マップ

この図から読み取れること:

図 6: #56 区域 vs #60 施設 市町別ギャップ choropleth + ランキング

なぜこの図か: H4 (区域 vs 施設ギャップ) を市町単位で直接検証する図。 左の choropleth は市町ごとの施設整備率 (= 施設数 / 区域数 × 100)、 右の比較棒は #56 区域 (赤) と #60 施設 (青) を市町別に並べて差を視覚化する。 整備率 100% = 区域の数だけ施設整備済整備率 < 100% = 区域指定済+施設未整備の残課題

図 6 (RQ2): #56 区域 vs #60 施設 市町別ギャップ
図 6 (RQ2): #56 区域 vs #60 施設 市町別ギャップ

この図から読み取れること:

表: #56 区域 vs #60 施設 ギャップ Top 15

順位市町名区域数_56施設数_60差_区域-施設施設整備率_%
1広島市東区99643564.6
2広島市西区79453457.0
3福山市1471143377.6
4広島市南区82532964.6
5江田島市1411132880.1
6尾道市1551292683.2
7大崎上島町93682573.1
8広島市安佐南区70472367.1
9坂町66442266.7
10竹原市85632274.1
11廿日市市110921883.6
12東広島市65471872.3
13広島市安佐北区43261760.5
14庄原市38241463.2
15広島市安芸区91781385.7

この表から読み取れること: 差 (区域-施設) の大きい市町が「指定済+未整備」 残課題エリア。上位 5 市町で 159 件のギャップ。施設整備率 100% 超の市町は 1 区域に複数施設整備または番号照合の問題を示唆。

表: 警戒区域距離区分 (4 階層)

距離区分件数シェア_%意味
警戒区域内 (整合)97638.9施設位置が土砂災害警戒区域 polygon 内 = 警戒対象を直接守る配置
100m以内 (隣接)146458.4警戒区域から徒歩 1〜2 分の距離 = 実質的に警戒対象を守る配置
100-500m672.70警戒区域から離れた山際。崩壊が及ぶ範囲外の事例が多い
500m超 (離隔)10.000警戒区域指定がない場所での独立施設整備 (= 区域指定漏れの可能性)

この表から読み取れること: 施設の 39% が警戒区域内、97% が 100m 以内累計 → 2 制度の空間整合性は高いことを定量確認。500m 超の 1 件は要追跡。

【RQ3】 下流人口・建物との関係 — 守備手薄市町の同定

狙い (RQ3)

施設整備は下流で守る人口・建物と整合しているか? 本 RQ3 では (1) 市町別施設件数 vs 人口・建物・密度のPearson 相関、 (2) 1 施設あたり守る人口のばらつき、(3) 守備手薄市町の同定を行う。 これは「人口集中の上流に施設あり」 という建前を実データで検証する研究。

手法 (市町集約 + merge + 相関 + 守備指数算出)

実装コード (政令市集約 + merge + 相関 + 守備指数)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# RQ3: 人口・建物 × 施設件数
import pandas as pd

# 1. 政令市集約
def to_pyramid_city(s):
    return "広島市" if s.startswith("広島市") else s
df["市町_pyramid"] = df["市町名"].apply(to_pyramid_city)
fac_count = df.groupby("市町_pyramid").size().reset_index(name="施設数")

# 2. L22 (人口) と merge
city_l22 = pd.read_csv("lessons/assets/L22_city_summary.csv")
pop_join = pd.merge(fac_count, city_l22[["city","pop_total","area_km2","density_per_km2"]],
                     left_on="市町_pyramid", right_on="city", how="inner")

# 3. 1 施設あたり守る人口 + 相対守備指数
pop_join["1施設あたり守る人口"] = (pop_join["pop_total"] / pop_join["施設数"]).round(0)
overall_per = pop_join["pop_total"].sum() / pop_join["施設数"].sum()
pop_join["相対守備指数"] = (pop_join["1施設あたり守る人口"] / overall_per).round(2)

# 4. 相関
r_pop = pop_join["施設数"].corr(pop_join["pop_total"])
r_density = pop_join["施設数"].corr(pop_join["density_per_km2"])

# 5. 守備手薄 Top 5 (相対守備指数 > 1)
underserved = pop_join.sort_values("相対守備指数", ascending=False).head(5)

図 7: 人口 × 施設件数 散布 + 相対守備指数 choropleth

なぜこの図か: H5 (人口・建物との正相関) を 2 panel で検証する。 左の log-log 散布で市町別の関係を、右の choropleth で守備指数の地理偏在を読む。 守備手薄市町 (= 1 施設で多くの人口を担当する市町) が地理的にどこに集中するかを 赤系の濃淡で同定する。

図 7 (RQ3): 人口 × 施設件数 + 相対守備指数 choropleth
図 7 (RQ3): 人口 × 施設件数 + 相対守備指数 choropleth

この図から読み取れること:

図 8: 新築建物 × 施設件数 散布 + 1 施設あたり守る建物ランキング

なぜこの図か: 建物 (= 物的被害対象) との関係を独立に検証する。 人口指標 (図 7) と独立な建物指標を見ることで、防災投資の評価軸を多角化する。 人口だけでなく新築建物が増えている市町は 新規開発による曝露増加の指標になる。

図 8 (RQ3): 新築建物 × 施設件数 + 1 施設あたり守る建物
図 8 (RQ3): 新築建物 × 施設件数 + 1 施設あたり守る建物

この図から読み取れること:

図 9 (統合): Top 8 市町の 4 系列プロファイル
図 9 (統合): Top 8 市町の 4 系列プロファイル

図 9 から読み取れること: Top 8 市町の施設数・区域数・守る人口・密度を1 図で並べた総合プロファイル。呉市 は施設・区域が突出するが、密度は中位 = 歴史的厚さ + 都市部の典型。他市町の施設密度との比較で都市規模と防災投資の関係が読める。

表: 人口 × 施設 結合 (Top 15)

市町施設数人口面積_km2密度_人km21施設あたり守る人口相対守備指数施設密度_件km2
呉市1177214592352.8608.3182.00.1603.34
広島市3671200754906.71,3243,2722.830.405
尾道市129131170285.1460.11,0170.8800.452
福山市114460930518.1889.74,0433.490.220
江田島市11321930100.7217.8194.00.1701.12
廿日市市92114173489.5233.21,2411.070.188
大竹市652631978.7334.4405.00.3500.826
竹原市6323993118.2203.0381.00.3300.533
三原市6090573471.6192.11,5101.300.127
東広島市47196608635.3309.54,1833.610.074
坂町441258215.7801.4286.00.2502.80
三次市3550681778.165.11,4481.250.045
庄原市24336331,24627.01,4011.210.019
海田町182963613.82,1481,6461.421.30
府中市1437655195.8192.32,6902.320.072

この表から読み取れること: 各市町の施設数・人口・密度・守備指数の一覧。全県平均 1 施設あたり 1158 人を守る基準で、市町間の格差が定量的に確認できる。

表: 守備手薄 vs 守備過剰 ランキング

タイプ市町施設数人口1施設あたり守る人口相対守備指数
守備手薄 (要強化)府中町25115525,57822.1
守備手薄 (要強化)熊野町5228344,5673.94
守備手薄 (要強化)東広島市471966084,1833.61
守備手薄 (要強化)福山市1144609304,0433.49
守備手薄 (要強化)北広島町5177633,5533.07
守備過剰 (歴史的厚さ)呉市1177214592182.00.160
守備過剰 (歴史的厚さ)江田島市11321930194.00.170
守備過剰 (歴史的厚さ)坂町4412582286.00.250
守備過剰 (歴史的厚さ)竹原市6323993381.00.330
守備過剰 (歴史的厚さ)大竹市6526319405.00.350

この表から読み取れること: 守備手薄 Top 5 = 追加投資の優先候補、守備過剰 Top 5 = 歴史的厚さの市町。これは政策含意のある具体的な市町リストで、防災投資の地理的優先順位の根拠になる。

仮説検証総合

本記事の 5 仮説と観測結果の照合:

仮説予想観測判定
H1 (呉市偏重 ≥40%, RQ1)呉市単独で 40% 以上呉市 1177 件 (46.9%)強支持
H2 (自然斜面優位 ≥80%, RQ1)自然斜面が全体の 80% 以上自然 2,306 件 (91.9%) / 人工 138 (5.5%)強支持
H3 (1980-90 集中整備, RQ1)告示年中央値が 1985-1990 年付近中央値 1989 年 / 1980-89 期 598 件支持
H4 (区域 vs 施設ギャップ ~14%, RQ2)区域指定済だが施設未整備 = 5-30%差 426 件 = 区域の 14.5% (施設整備率 85%)支持
H5 (人口・建物との正相関 r=0.5-0.7, RQ3)市町別施設数と人口・建物の Pearson r = 0.5-0.7r_pop=0.337, r_density=-0.028, r_bld=0.278部分支持

3 RQ × 3 結論

急傾斜地法 (本記事) と関連 4 制度の連鎖

側面急傾斜地法 (本記事)砂防法 (L46)地すべり等防止法 (L46)土砂災害防止法 (L10/L11)
対象現象がけ崩れ (急斜面崩壊)土石流 (渓流)地すべり (緩慢移動)上記 3 現象の警戒区域指定
施行年1969 (昭和 44)1897 (明治 30)1958 (昭和 33)2000 (平成 12)
区域指定急傾斜地崩壊危険区域 2,934 件 (#56)砂防指定地 3,207 件 + line 93 (#55)地すべり防止区域 39 件 (#57)急傾斜 29,756 / 土石流 13,337 / 地すべり 127
施設整備データ2,508 件 (本データ)渓流保全工 #59 等 (本データ外)地すべり防止施設 #61 (本データ外)整備義務なし (情報公示のみ)
規制の性格区域指定 + 行為制限 + 公費施設整備指定地 + 強い行為制限指定地 + 強い行為制限情報公示 + 宅建説明義務 (行為制限なし)

この表から読み取れること: 砂防三法 (砂防法 1897 / 地すべり等防止法 1958 / 急傾斜地法 1969) と土砂災害防止法 (2000) の 4 法は、それぞれ別の現象を対象としつつ 区域指定 + 施設整備の二段構造を共有する。本記事の急傾斜地法施設データ (#60) は、急傾斜地法に基づく施設整備の最新状態を示す唯一の オープンデータ。砂防法 (#59 渓流保全工) や地すべり防止施設 (#61) は同じシリーズに別途存在し、本記事と並べることで砂防三法の施設運用全体像を捉える研究に発展可能。

発展課題

結果 X → 新仮説 Y → 課題 Z (3 RQ × 1 課題以上)

発展課題 1 (RQ1 由来): 構造種別データの収集と詳細分析

発展課題 2 (RQ2 由来): 危険箇所番号文字列の精密照合

発展課題 3 (RQ3 由来): メッシュ単位の下流人口推定

発展課題 4 (時系列): 老朽化分析 — 1970 年代施設の更新需要