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 | データセット名 |
| #15 | dataset #15 |
| #55 | 砂防関係指定地情報_砂防指定地 |
| #56 | 砂防関係指定地情報_急傾斜地崩壊危険区域 |
| #57 | 砂防関係指定地情報_地すべり防止区域 |
| #59 | 渓流保全工基本情報 |
| #60 | 急傾斜地崩壊防止施設基本情報 |
| #61 | 地すべり防止施設基本情報 |
| #333 | dataset #333 |
| #444 | dataset #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 の市町別人口と
組み合わせることで、防災投資の地理的優先順位を診断する研究が可能。
独自用語の定義
- 急傾斜地崩壊防止施設: 急傾斜地法 (1969) に基づき、知事指定の急傾斜地崩壊危険区域内で
県・市町が整備した崖崩れ防止のための物理的構造物。
具体的には擁壁・法枠工・グランドアンカー・ロックネット・落石防護柵・
落石防護網・モルタル吹付等。本データは2,508 件の施設位置 (緯度経度 1 点) を保持。
ただし構造種別 (擁壁/法枠 etc.) や規模 (延長・高さ) の列は本データにないことに注意。
- 擁壁: 急斜面の足元に設ける重力式・もたれ式・補強土等の重量壁構造。
最も基本的な崩壊防止施設。コンクリート擁壁が大半。
- 法枠工 (のりわくこう): 急斜面表面に格子状の枠を造り、内部に植生を促す工法。
コンクリート吹付やモルタル吹付と併用される。表層崩壊の抑制に有効。
- グランドアンカー: 不安定な岩盤に長尺ボルト (アンカー)を打込み、
引張力で固定する工法。深層大規模崩壊の抑止に使う。
- 斜面区分 (本データの分類軸): 本データの「斜面区分」 列は 自然 / 人工の 2 値
(一部空欄)。自然 = もとから急斜面の崖、人工 = 道路掘削・宅地造成等で人為的に作られた急斜面。
本研究では自然 92% vs 人工 6% の構成を市町別に集計。
- 危険箇所番号 (本データの主キー): 各施設レコードの「危険箇所番号」 は
L46 #56 急傾斜地崩壊危険区域の区域識別子と対応する設計。
本記事 RQ2 ではこの番号を介して区域 (#56) ⇄ 施設 (#60) の 1 対 1 対応を
初めて定量化する。
- 下流人口 (本記事独自定義): 急傾斜地崩壊で影響を受ける可能性のある斜面下の住民数。
本研究では市町単位 (= L22 の人口 pop_total) で代理し、
1 施設あたり守る人口 = 市町人口 ÷ 市町施設件数を指標化する。
この指標が県平均より大きい市町 = 守備手薄、小さい市町 = 守備過剰と判定。
- 相対守備指数 (本記事独自定義): 各市町の「1 施設あたり守る人口」 を
全県平均 (= 1158 人/施設) で割った無次元数。
1.0 = 全県平均と同等、>1.0 = 守備手薄 (= 1 施設あたりが多くの人口を担当 = 守りが薄い)、
<1.0 = 守備過剰 (= 1 施設あたりが少ない人口を担当 = 歴史的に厚く整備された市町)。
研究の問い (3 RQ)
- RQ1 (主研究): 広島県の急傾斜地崩壊防止施設の構造はどう描けるか?
2,508 件の市町別ランキング、斜面区分 (自然 / 人工) の偏在、告示年月日の時系列、
地理的集中パターンを多角度に集計する。呉市単独でどれほどの比率を占めるか?
- RQ2 (副研究 1): 施設は急傾斜地崩壊危険区域 (L46 #56) や警戒区域 (L10/L11) と
どう対応するか? 区域 vs 施設の市町別ギャップ、施設点の警戒区域への近接度を
STRtree で空間結合し、配置の整合性を診断する。
- RQ3 (副研究 2): 施設は下流の人口 (L22) や建物 (L20) とどれだけ整合した配置か?
市町別施設件数と人口・建物・密度の相関、1 施設あたり守る人口のばらつき、
守られていない高リスク集落の同定を行う。これは防災投資の地理的優先順位の評価。
仮説 H1〜H5
- H1 (呉市偏重 ≥40%, RQ1): 呉市単独で 40% 以上を占める。
軍港背後の急斜面住宅密集の歴史的帰結。
- H2 (自然斜面優位 ≥80%, RQ1): 斜面区分は自然が 80% 以上。急傾斜地法 (1969) の
対象範囲が「自然崖の人家被害」 主眼であることに整合。
- H3 (1980-90 集中整備, RQ1): 告示年代の中央値は 1985-1990 年付近。
法施行 (1969) 直後の集中整備期から漸減し、2018 西日本豪雨後に再加速。
- H4 (区域 vs 施設ギャップ ~14%, RQ2): L46 #56 (2,935 件) と本データ #60 (2,508 件) の差
= 約 400 件 = 14% が「区域指定済 + 施設未整備」 残課題。
- H5 (人口・建物との正相関 r=0.5-0.7, RQ3): 市町別施設数と人口・建物数は正の相関。
ただし呉市は過剰、中山間市町は過小の非対称性。
到達点
本記事を読み終えた学習者は次の 3 点を体感できる:
- 1 つの「施設台帳 CSV」 (2,508 件 × 13 列) から、市町別偏重 (呉市 47%) と
斜面区分構造 (自然 92%)を多角度に読む方法を習得する。
- 同名の関連データセット (#56 区域 vs #60 施設) を市町別に照合し、
区域指定 vs 施設整備のギャップを定量化する 2 制度連鎖の比較研究手法を体感する。
- 市町別データを既存レッスン (L20 建物 / L22 人口) と結合し、1 施設あたり守る人口という
防災投資効率の指標を構築。守備手薄市町を同定する政策含意のある研究に発展できる。
使用データ
DoBoX のシリーズ「急傾斜地崩壊防止施設基本情報」 1 件のみを単独で扱う。
リソースは CSV 1 ファイルのシンプル構造。
| 項目 | 値 |
|---|
| dataset_id | 60 |
| 名称 | 急傾斜地崩壊防止施設基本情報 |
| 組織 | 広島県土木建築局 砂防課 |
| リソース | 22826 — CSV (438 KB, 2,508 行) |
| 根拠法 | 急傾斜地の崩壊による災害の防止に関する法律 (1969-07-01 施行) |
| 列構成 (13 列) | 履歴ID / 危険箇所番号 / 箇所名 / 県 / 市区郡町 / 字 / 斜面区分 / 地区名 / 位置 / 告示年月日 / 告示番号 / 緯度 / 経度 |
| CRS | WGS84 (緯度経度) → 解析時 EPSG:6671 へ変換 |
| ライセンス | クリエイティブ・コモンズ表示 4.0 |
| 最終更新 | 2026-04-27 |
| 取得日 | 2026-05-09 |
データの構造
- 13 列の構成: 履歴ID (主キー) / 危険箇所番号 (#56 区域識別子と対応) /
箇所名 / 県 / 市区郡町 / 字 / 斜面区分 (自然/人工) / 地区名 / 位置 / 告示年月日 /
告示番号 / 緯度 / 経度。
- 緯度経度: 全 2,508 件で欠損なし。WGS84 (EPSG:4326) と推定。
解析時は EPSG:6671 (平面直角座標系第 III 系) に変換し、距離・面積を m 単位で扱う。
- 告示年月日: 2,068 件 (82%) で記入あり。
範囲は 1900 年から 2024 年 の 55 年。
欠損 440 件は古い登録で告示記録未収のものと推察。
- 本データに無い列: 構造種別 (擁壁/法枠/アンカー/防護網)、規模 (延長・高さ)、
整備費、管理者。これらは別の維持管理系データ (本シリーズには未収) に属する。
本研究は「位置情報 + 行政属性」 の範囲で多角度集計を行う。
関連データセットとの対応
- L46 #56 急傾斜地崩壊危険区域 (= 区域 CSV, 2,935 件): 同じ急傾斜地法に基づく
区域指定 (= 危険箇所の場所)を記録。本データ (#60 = 施設) は
その区域内で整備された施設の位置を記録。1 対 1 対応が設計上の建前。
- L10/L11 土砂災害警戒区域 (急傾斜): 約 30K polygon の警戒範囲指定 (土砂災害防止法 2000)。
RQ2 で本施設点との距離区分集計に使用。
- L20 新築建物 / L22 市町別人口: 市町別の建物数・人口・密度の既処理 CSV を
RQ3 で結合し、防災投資効率の指標を構築。
ダウンロード
本レッスンの再現に必要な全データ・中間 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 読込 → 市町正規化 → 集計)
- STEP 1 (CSV 読込):
pd.read_csv() で 2,508 行 × 13 列を読込。
緯度経度を数値化、告示年月日を datetime 化。
- STEP 2 (市町名正規化): 「市区郡町」 列には「豊田郡大崎上島町」 のように
郡名混入がある → 「郡」 で分割して右側のみ採用 → 市町名列を新設。
これで admin (#15) と直接結合可能。
- STEP 3 (GeoDataFrame 化):
gpd.points_from_xy で点 GeoDataFrame を作成。
.to_crs("EPSG:6671") で平面直角座標系に変換 = 以後の距離計算が m 単位。
- STEP 4 (集計): 市町別件数、斜面区分構成 (自然/人工/不明)、告示年代別件数 (10 年区間)、
告示時期 5 区分 (法施行直後/集中整備/漸減/低水準/豪雨後) を
groupby で集計。
- STEP 5 (時期分類): 1969-1979 (法施行直後) / 1980-1989 (集中整備) /
1990-1999 (漸減) / 2000-2009 (低水準) / 2010-2024 (豪雨後) の 5 期に分類。
これは急傾斜地法施行史 + 西日本豪雨 (2018-07) の節目に基づく独自定義。
実装コード (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 は市町別件数の濃淡を示す。
呉市への極端な集中が両方の図で同時に確認できる。
この図から読み取れること:
- 左点マップ: 呉市 (1177 件) の点が圧倒的密度で集中 → 全 2,508 件の 46.9%。
軍港背後の急斜面住宅地が密に並ぶ歴史的帰結。
- 右 choropleth: 呉市の濃青が 1 つ突出。Top 5 (呉市, 尾道市, 福山市, 江田島市, 廿日市市) で 65% を占める →
H1 の支持。沿岸都市 + 中山間少数市町の二極構造。
- 左マップで点の緑 (自然斜面) が大半 = 92% を占める。
橙 (人工斜面) は呉市・広島市等の都市部に散見される程度 (6%) →
H2 の支持。急傾斜地法はもとからの急斜面に住む人家を主に守る制度として運用されている。
- 非対象市町 (灰色 choropleth) の大半は三次市・庄原市等の中山間市町。
地形は急斜面が多いはずだが、人家が点在し「人家 5 戸以上」 の急傾斜地法指定基準を
満たす集落が少ないため、施設整備の対象になりにくい。
- 沿岸島嶼 (江田島市・大崎上島町等) も施設点が集中 = 古い軍関係の人工急斜面が多い。
これは呉市と並ぶ軍関連都市の防災レガシーを示唆。
図 2: 市町別ランキング (Top 15, 自然/人工 stack) + 斜面区分パイ
なぜこの図か: H1 (呉市偏重) と H2 (自然斜面優位) を 1 図で同時検証する。
左の stack 棒で市町ごとの自然 vs 人工内訳、右パイで全体の比率を見る。
呉市は人工率が高いはず (= 軍港開発による人工急斜面) という派生仮説も読める。
この図から読み取れること:
- 左ランキング: 呉市 1177 件が他市町の 9 倍以上 (= 2 位の市町と桁違い)。
上位 5 市町で全 65% を占めるためH1 (呉市偏重) を強く支持。
- 各棒の橙 (人工斜面) 比率を見ると、呉市・広島市等の都市部市町で人工率が高い。
呉市の人工率 = 5.9% →
軍港開発に伴う道路掘削・宅地造成由来の人工急斜面が多い歴史的事実を反映。
- 右パイ: 自然 92% / 人工 6% / 不明 3% →
H2 (自然斜面優位) を支持。急傾斜地法 1969 は「自然崖の下の人家」 を主に守る制度として
運用された歴史を反映。人工斜面は道路法・建築基準法等の他制度でカバーされる前提。
- 2 位以下の市町 (尾道・福山・江田島・廿日市) はいずれも沿岸 + 島嶼の都市市町 →
内陸中山間市町 (庄原・三次・北広島) はランクインしない =
急傾斜地法は沿岸都市の急斜面住宅地を主舞台とする制度的特徴を持つ。
- 「不明」 (64 件) は古い登録で斜面区分列が空欄のレコード →
告示年が古い (1970 年代) 件に集中する可能性。データ品質改善の余地。
図 3: 告示年別ヒスト (1969-2024) + 時期別 5 区分パイ
なぜこの図か: 法施行後 55 年の時系列で施設整備のリズムを読む。
左で年別の山谷、右で 5 期の構成を確認する。
1969 年 (法施行) と 2018 年 (西日本豪雨) を縦線でマーキングし、
制度史と現場運用の対応を読みやすくしている。
この図から読み取れること:
- 左ヒスト: 告示年範囲は 1900-2024、
中央値 1989 年。
1970-1990 年代がピーク、1990 年代以降は漸減 → H3 を概ね支持。
- 1969 年 (法施行) 直後の 1970-1973 年に集中整備期。法律の対応に行政が直ちに動いたことを示す。
その後 1980-1990 年代に第二の整備ピーク (高度経済成長期の宅地拡張に対応?)。
- 2010 年代以降は年間 10 件以下に減少 → 既指定区域はほぼ整備済 + 新規指定が減少。
2018 西日本豪雨 (赤縦線) 後に微増がある場合、災害契機の追加整備のシグナル
(本データでは 2019-2021 で 15 件)。
- 右パイ: 集中整備期 (1980-1989) 29%、
漸減期 (1990-1999) 24%、
法施行直後 (1969-1979) 24% →
高度経済成長期に建設された宅地裏山の防護施設として急傾斜地法の運用が定着していった様子。
- 2010 年代以降の低水準維持は防災投資の縮小 + 既存施設の維持管理段階移行を示唆 →
新規整備よりも老朽化対策が今後の主課題になる予兆。
図 4: 告示時期別 5 期 small multiples マップ
なぜこの図か: 時系列ヒストだけでは「どこに整備されたか」 が分からない。
5 期 × 5 panels で同じ県地図に時期別の点を分けて配置し、
地理的拡散・縮退のリズムを直感的に読む可視化。
この図から読み取れること:
- 1 期 (1969-1979): 呉市・広島市の沿岸都市部に集中。
法施行直後の差し迫った危険箇所への対応が起点。
- 2 期 (1980-1989): 集中整備期。呉市での密度が最大になる一方、
尾道・福山・廿日市等の他沿岸都市にも拡大。
- 3 期 (1990-1999): 漸減期だが地理的に分散 = 既都市の隙間を埋める形で各市町に分布。
- 4 期 (2000-2009): 低水準だが島嶼 (江田島・大崎上島) の整備が進む。
- 5 期 (2010-2024): わずかな点が分散。2018 西日本豪雨 (呉市・坂町) 周辺に集中する場合、
災害復興整備のシグナル。本データの20 件が 2018 以降。
- 5 期通して呉市が常に最も密 = 都市の地形的脆弱性が時代を超えて持続する証拠。
表: 全体サマリ (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%) |
| 人口×施設 相関 r | 0.337 |
| 人口密度×施設 相関 r | -0.028 |
| 新築建物×施設 相関 r | 0.278 |
| 全県平均 1 施設あたり守る人口 | 1158 人 |
この表から読み取れること: 全 2,508 件の基本統計、呉市 偏重 (47%)、自然斜面 92%、区域 vs 施設整備率 85%、警戒区域内 39%、など 3 RQ の核心指標が 17 行に集約された統合サマリ。
表: 市町別ランキング (Top 20)
| 順位 | 市町名 | 件数 | シェア_% | 自然 | 人工 | 不明 | 人工率_% | 告示年中央 |
|---|
| 1 | 呉市 | 1177 | 46.9 | 1108 | 69 | 0 | 5.90 | 1,985 |
| 2 | 尾道市 | 129 | 5.14 | 109 | 12 | 8 | 9.30 | 1,985 |
| 3 | 福山市 | 114 | 4.55 | 94 | 0 | 20 | 0.000 | 1,992 |
| 4 | 江田島市 | 113 | 4.51 | 94 | 13 | 6 | 11.5 | 1,984 |
| 5 | 廿日市市 | 92 | 3.67 | 86 | 6 | 0 | 6.50 | 1,994 |
| 6 | 広島市安芸区 | 78 | 3.11 | 78 | 0 | 0 | 0.000 | 1,991 |
| 7 | 大崎上島町 | 68 | 2.71 | 61 | 7 | 0 | 10.3 | 1,978 |
| 8 | 大竹市 | 65 | 2.59 | 62 | 0 | 3 | 0.000 | 1,987 |
| 9 | 広島市東区 | 64 | 2.55 | 55 | 3 | 6 | 4.70 | 1,994 |
| 10 | 竹原市 | 63 | 2.51 | 57 | 5 | 1 | 7.90 | 1,987 |
| 11 | 三原市 | 60 | 2.39 | 57 | 2 | 1 | 3.30 | 1,998 |
| 12 | 広島市南区 | 53 | 2.11 | 52 | 0 | 1 | 0.000 | 1,989 |
| 13 | 安芸太田町 | 49 | 1.95 | 48 | 1 | 0 | 2.00 | 1,999 |
| 14 | 広島市安佐南区 | 47 | 1.87 | 44 | 0 | 3 | 0.000 | 2,004 |
| 15 | 広島市佐伯区 | 47 | 1.87 | 47 | 0 | 0 | 0.000 | 2,003 |
| 16 | 東広島市 | 47 | 1.87 | 41 | 5 | 1 | 10.6 | 1,992 |
| 17 | 広島市西区 | 45 | 1.79 | 37 | 2 | 6 | 4.40 | 1,994 |
| 18 | 坂町 | 44 | 1.75 | 42 | 0 | 2 | 0.000 | 1,990 |
| 19 | 三次市 | 35 | 1.40 | 34 | 1 | 0 | 2.90 | 1,990 |
| 20 | 広島市安佐北区 | 26 | 1.04 | 21 | 1 | 4 | 3.80 | 2,004 |
この表から読み取れること: 各市町の件数・斜面区分内訳・人工率・告示年中央が一覧。Top 1 市町は人工率が高めで、軍港開発に伴う人工急斜面が多い歴史を反映する。Top 5 を超えると件数が急減 = 呉市単独が突出する偏重構造を再確認できる。
表: 斜面区分構成 (3 区分)
| 斜面区分 | 件数 | シェア_% | 意味 |
|---|
| 自然 (もとから急斜面) | 2306 | 91.9 | もともとの地形が急傾斜である崖。雨水浸食・地震動で崩落リスク。 |
| 人工 (道路・造成由来) | 138 | 5.50 | 道路掘削・宅地造成等で人為的に作られた急斜面。施工管理が崩落リスクを左右。 |
| 不明 | 64 | 2.60 | 斜面区分列が空欄のレコード。古い登録で区別未記入の可能性。 |
この表から読み取れること: 自然斜面が 92% を占め、人工斜面はわずか6%。急傾斜地法 (1969) はもとからの自然急斜面に住む人家を主に守る制度として運用されてきた歴史的事実が確認される。
表: 告示年代別件数 (10 年区間)
| 告示年代 | 件数 | シェア_% |
|---|
| 1,900 | 1.00 | 0.000 |
| 1,960 | 11.0 | 0.500 |
| 1,970 | 474.0 | 22.9 |
| 1,980 | 598.0 | 28.9 |
| 1,990 | 505.0 | 24.4 |
| 2,000 | 414.0 | 20.0 |
| 2,010 | 50.0 | 2.40 |
| 2,020 | 15.0 | 0.700 |
この表から読み取れること: 告示年代の分布。1970-1990 年代がピーク、1990 年代以降は漸減 → 高度経済成長期の宅地拡張に対応した整備史を反映。
表: 告示時期別 5 区分
| 告示時期 | 件数 | シェア_% |
|---|
| 1969-1979 (法施行直後) | 486 | 23.5 |
| 1980-1989 (集中整備) | 598 | 28.9 |
| 1990-1999 (漸減) | 505 | 24.4 |
| 2000-2009 (低水準) | 414 | 20.0 |
| 2010-2024 (豪雨後) | 65 | 3.10 |
この表から読み取れること: 5 期分類で時代の重心が見える。1980-1989 集中整備期が最大シェアで、その後漸減 → 2010 年代は低水準維持。
【RQ2】 警戒区域 × 危険区域との関係 — 区域 vs 施設ギャップ 426 件
狙い (RQ2)
急傾斜地法は区域指定 (#56) と施設整備 (#60) を対で運用する設計。
本 RQ2 では (1) 危険箇所番号の市町別集計を介した #56 区域 vs #60 施設のギャップ、
(2) 施設点と土砂災害警戒区域 (急傾斜) polygon の距離区分を読む。
「区域指定済 + 施設未整備」 残課題 (426 件 = 区域の 14.5%) を
初めて市町別に同定する。
手法 (groupby 集計 + STRtree 最近傍距離)
- STEP 1 (#56 vs #60 市町別件数比較): L46 で扱った #56 急傾斜地崩壊危険区域 CSV を読込し、
同じ「市町名正規化」 を施した上で
groupby で市町別カウント。
本データ (#60) と merge して市町別の 区域数 / 施設数 / 差 / 整備率を集計。
- STEP 2 (STRtree 最近傍距離): 警戒区域 (急傾斜) polygon (29,756 個) に
shapely.STRtree で空間インデックス構築 → 各施設点から最近傍 polygon までの
距離を tree.nearest() で取得。2508 点 × 29,756 polygon を
10 秒以内で処理。
- STEP 3 (距離区分 4 階層): 0 = 区域内, 0-100m = 隣接, 100-500m = 近接, 500m+ = 離隔
の 4 階層に分類。
実装コード (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 超の灰点
(= 警戒指定がない場所での独立整備) のバランスから、施設配置の制度間連携の度合いを読む。
この図から読み取れること:
- 警戒区域内に立地: 976 件 (38.9%) →
施設の過半は土砂災害警戒区域内に整備されており、2 制度間で空間整合している。
警戒区域は土砂災害防止法 (2000) で後発指定 → 既存施設位置との整合性が
指定基準にも反映された結果と推察。
- 100m 以内 (隣接) 累計: 2440 件 (97.3%) →
施設の大半は警戒区域とほぼ重なる位置に整備済。
徒歩 1〜2 分の距離で警戒区域に到達可能 = 防護対象を直接守る配置。
- 500m 超 (離隔): 1 件 (0.0%) →
これらは警戒区域指定外での独立整備 = (1) 警戒区域指定漏れ、(2) 古い急傾斜地区域指定で
警戒区域基準を満たさない場所、(3) 緯度経度の精度問題、のいずれか。
要追跡対象。
- マップ上で赤薄の警戒区域 polygon は呉市・広島市・尾道市等の沿岸都市に密集 →
これは L11 で既扱の 29,756 polygon の総延べ。施設点 (緑) はこの密集帯に重なる。
- 地理的に「警戒区域はあるが施設点がない」 帯がある場所 (= 例: 庄原市・三次市の中山間地) →
これらは「区域指定済 + 施設未整備」 残課題エリアで、図 6 の市町別ギャップと連動して読む。
図 6: #56 区域 vs #60 施設 市町別ギャップ choropleth + ランキング
なぜこの図か: H4 (区域 vs 施設ギャップ) を市町単位で直接検証する図。
左の choropleth は市町ごとの施設整備率 (= 施設数 / 区域数 × 100)、
右の比較棒は #56 区域 (赤) と #60 施設 (青) を市町別に並べて差を視覚化する。
整備率 100% = 区域の数だけ施設整備済、整備率 < 100% = 区域指定済+施設未整備の残課題。
この図から読み取れること:
- 全県整備率: 85.5% (施設 2,508 ÷ 区域 2,934)。
差 426 件 = 区域の 14.5%が「指定済+施設未整備」 残課題 →
H4 を支持。
- 整備率が低い市町 (= 残課題が多い) は広島市東区, 広島市西区, 福山市, 広島市南区, 江田島市等。
これらは中山間または財政規模の小さい市町で、
区域指定は進んだが財源・施工事業者の不足で施設整備が追いついていないと推察。
- 整備率 > 100% (= 施設数 > 区域数) の市町 = 。
これは (1) 1 区域内に複数施設整備、(2) 危険箇所番号の照合精度の問題、
(3) 古い区域が解除されたが施設は残存、のいずれかを示唆。
- 右ランキング: 呉市は区域 1184 件 ・
施設 1177 件と桁違い。
呉市の整備率 = 99.4% →
呉市は区域・施設ともに県内最大規模で、整備履歴の長さも反映。
- 本研究は危険箇所番号レベルの 1 対 1 照合ではなく、市町別件数の集計比較による
ギャップ推定。厳密な照合は危険箇所番号文字列の正規化が必要 (発展課題で扱う)。
表: #56 区域 vs #60 施設 ギャップ Top 15
| 順位 | 市町名 | 区域数_56 | 施設数_60 | 差_区域-施設 | 施設整備率_% |
|---|
| 1 | 広島市東区 | 99 | 64 | 35 | 64.6 |
| 2 | 広島市西区 | 79 | 45 | 34 | 57.0 |
| 3 | 福山市 | 147 | 114 | 33 | 77.6 |
| 4 | 広島市南区 | 82 | 53 | 29 | 64.6 |
| 5 | 江田島市 | 141 | 113 | 28 | 80.1 |
| 6 | 尾道市 | 155 | 129 | 26 | 83.2 |
| 7 | 大崎上島町 | 93 | 68 | 25 | 73.1 |
| 8 | 広島市安佐南区 | 70 | 47 | 23 | 67.1 |
| 9 | 坂町 | 66 | 44 | 22 | 66.7 |
| 10 | 竹原市 | 85 | 63 | 22 | 74.1 |
| 11 | 廿日市市 | 110 | 92 | 18 | 83.6 |
| 12 | 東広島市 | 65 | 47 | 18 | 72.3 |
| 13 | 広島市安佐北区 | 43 | 26 | 17 | 60.5 |
| 14 | 庄原市 | 38 | 24 | 14 | 63.2 |
| 15 | 広島市安芸区 | 91 | 78 | 13 | 85.7 |
この表から読み取れること: 差 (区域-施設) の大きい市町が「指定済+未整備」 残課題エリア。上位 5 市町で 159 件のギャップ。施設整備率 100% 超の市町は 1 区域に複数施設整備または番号照合の問題を示唆。
表: 警戒区域距離区分 (4 階層)
| 距離区分 | 件数 | シェア_% | 意味 |
|---|
| 警戒区域内 (整合) | 976 | 38.9 | 施設位置が土砂災害警戒区域 polygon 内 = 警戒対象を直接守る配置 |
| 100m以内 (隣接) | 1464 | 58.4 | 警戒区域から徒歩 1〜2 分の距離 = 実質的に警戒対象を守る配置 |
| 100-500m | 67 | 2.70 | 警戒区域から離れた山際。崩壊が及ぶ範囲外の事例が多い |
| 500m超 (離隔) | 1 | 0.000 | 警戒区域指定がない場所での独立施設整備 (= 区域指定漏れの可能性) |
この表から読み取れること: 施設の 39% が警戒区域内、97% が 100m 以内累計 → 2 制度の空間整合性は高いことを定量確認。500m 超の 1 件は要追跡。
【RQ3】 下流人口・建物との関係 — 守備手薄市町の同定
狙い (RQ3)
施設整備は下流で守る人口・建物と整合しているか?
本 RQ3 では (1) 市町別施設件数 vs 人口・建物・密度のPearson 相関、
(2) 1 施設あたり守る人口のばらつき、(3) 守備手薄市町の同定を行う。
これは「人口集中の上流に施設あり」 という建前を実データで検証する研究。
手法 (市町集約 + merge + 相関 + 守備指数算出)
- STEP 1 (政令市集約): 本データの「市町名」 は「広島市中区」 等の区別だが、
L22 (人口) は「広島市」 = 政令市単位。市町_pyramid列を新設し、
広島市X区を「広島市」 に集約してから merge。
- STEP 2 (人口・建物の merge):
pd.merge で
L22 (pop_total / area_km2 / density_per_km2 / aging_rate) と
L20 (n_new / pop_k) を結合。
- STEP 3 (Pearson 相関):
df["施設数"].corr(df["pop_total"]) で
市町別の施設数と人口・建物・密度の相関係数を算出。
- STEP 4 (守備指数): 各市町の「1 施設あたり守る人口 = 人口 / 施設数」 を計算 →
全県平均で割って相対守備指数 (1.0 = 県平均と同等)。
>1.0 = 守備手薄、<1.0 = 守備過剰。
実装コード (政令市集約 + 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 施設で多くの人口を担当する市町) が地理的にどこに集中するかを
赤系の濃淡で同定する。
この図から読み取れること:
- r_pop = 0.337 (n=19) → H5 (部分支持)。
市町別の人口と施設件数は中程度の正の相関を示す。
人口が多い市町ほど施設件数も多い基本的な対応が確認される。
- 左散布の右上外れ値: 呉市 = 人口 21 万人だが施設 1,177 件で明らかに過剰整備。
これは軍港都市の歴史的脆弱性と長年の防災投資集中の結果 = 歴史的厚さを映す。
- 左散布の左下集まり: 中山間市町 (庄原・三次・北広島等) = 人口数万人で施設は数十件以下。
1 施設あたり守る人口が大きい (= 守備手薄) 状態。
- 右 choropleth の赤系 (相対守備指数 > 1) = 県平均より守備手薄 →
府中町, 熊野町, 東広島市等が該当。
これらは「人口に対して施設が過小」 で、追加投資の優先候補。
- 右 choropleth の緑 (相対守備指数 < 1) = 守備過剰 →
呉市, 江田島市, 坂町等が該当。
呉市・大崎上島町等の歴史的厚さ市町。
- 全県平均 = 1 施設あたり 1158 人を守る。
これは「中規模集落 1 つを守る程度」 で、急傾斜地法の制度設計に整合的。
図 8: 新築建物 × 施設件数 散布 + 1 施設あたり守る建物ランキング
なぜこの図か: 建物 (= 物的被害対象) との関係を独立に検証する。
人口指標 (図 7) と独立な建物指標を見ることで、防災投資の評価軸を多角化する。
人口だけでなく新築建物が増えている市町は 新規開発による曝露増加の指標になる。
この図から読み取れること:
- r_bld = 0.278 (n=19) → 建物との相関も人口と同様 部分支持。
ただし建物指標は新規開発の伸びを反映し、人口より動的な曝露指標。
- 左散布で呉市は建物 2,659 件 vs 施設 1,177 件 = 1 施設で 2.3 件守る →
建物指標で見ると呉市の守備過剰の度合いは緩和される (= 新築建物は減少傾向)。
- 左散布で東広島市・福山市は建物多いが施設は中位 = 1 施設で守る建物数が大きい =
新規開発が進む市町で守備が手薄。これは新規宅地造成のリスクの警告サイン。
- 右ランキング: 1 施設あたり守る建物数 Top 15 を表示。
府中町が最大で、
新築建物 vs 施設の比率が県平均の数倍 → 新規開発リスクが高い市町。
- 建物 vs 人口の2 つの守備指標を併用すると、防災投資の優先順位を多角的に評価できる。
これは行政データ科学の典型的な複数指標統合手法。
図 9 から読み取れること: Top 8 市町の施設数・区域数・守る人口・密度を1 図で並べた総合プロファイル。呉市 は施設・区域が突出するが、密度は中位 = 歴史的厚さ + 都市部の典型。他市町の施設密度との比較で都市規模と防災投資の関係が読める。
表: 人口 × 施設 結合 (Top 15)
| 市町 | 施設数 | 人口 | 面積_km2 | 密度_人km2 | 1施設あたり守る人口 | 相対守備指数 | 施設密度_件km2 |
|---|
| 呉市 | 1177 | 214592 | 352.8 | 608.3 | 182.0 | 0.160 | 3.34 |
| 広島市 | 367 | 1200754 | 906.7 | 1,324 | 3,272 | 2.83 | 0.405 |
| 尾道市 | 129 | 131170 | 285.1 | 460.1 | 1,017 | 0.880 | 0.452 |
| 福山市 | 114 | 460930 | 518.1 | 889.7 | 4,043 | 3.49 | 0.220 |
| 江田島市 | 113 | 21930 | 100.7 | 217.8 | 194.0 | 0.170 | 1.12 |
| 廿日市市 | 92 | 114173 | 489.5 | 233.2 | 1,241 | 1.07 | 0.188 |
| 大竹市 | 65 | 26319 | 78.7 | 334.4 | 405.0 | 0.350 | 0.826 |
| 竹原市 | 63 | 23993 | 118.2 | 203.0 | 381.0 | 0.330 | 0.533 |
| 三原市 | 60 | 90573 | 471.6 | 192.1 | 1,510 | 1.30 | 0.127 |
| 東広島市 | 47 | 196608 | 635.3 | 309.5 | 4,183 | 3.61 | 0.074 |
| 坂町 | 44 | 12582 | 15.7 | 801.4 | 286.0 | 0.250 | 2.80 |
| 三次市 | 35 | 50681 | 778.1 | 65.1 | 1,448 | 1.25 | 0.045 |
| 庄原市 | 24 | 33633 | 1,246 | 27.0 | 1,401 | 1.21 | 0.019 |
| 海田町 | 18 | 29636 | 13.8 | 2,148 | 1,646 | 1.42 | 1.30 |
| 府中市 | 14 | 37655 | 195.8 | 192.3 | 2,690 | 2.32 | 0.072 |
この表から読み取れること: 各市町の施設数・人口・密度・守備指数の一覧。全県平均 1 施設あたり 1158 人を守る基準で、市町間の格差が定量的に確認できる。
表: 守備手薄 vs 守備過剰 ランキング
| タイプ | 市町 | 施設数 | 人口 | 1施設あたり守る人口 | 相対守備指数 |
|---|
| 守備手薄 (要強化) | 府中町 | 2 | 51155 | 25,578 | 22.1 |
| 守備手薄 (要強化) | 熊野町 | 5 | 22834 | 4,567 | 3.94 |
| 守備手薄 (要強化) | 東広島市 | 47 | 196608 | 4,183 | 3.61 |
| 守備手薄 (要強化) | 福山市 | 114 | 460930 | 4,043 | 3.49 |
| 守備手薄 (要強化) | 北広島町 | 5 | 17763 | 3,553 | 3.07 |
| 守備過剰 (歴史的厚さ) | 呉市 | 1177 | 214592 | 182.0 | 0.160 |
| 守備過剰 (歴史的厚さ) | 江田島市 | 113 | 21930 | 194.0 | 0.170 |
| 守備過剰 (歴史的厚さ) | 坂町 | 44 | 12582 | 286.0 | 0.250 |
| 守備過剰 (歴史的厚さ) | 竹原市 | 63 | 23993 | 381.0 | 0.330 |
| 守備過剰 (歴史的厚さ) | 大竹市 | 65 | 26319 | 405.0 | 0.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.7 | r_pop=0.337, r_density=-0.028, r_bld=0.278 | 部分支持 |
3 RQ × 3 結論
- RQ1 結論: 急傾斜地崩壊防止施設は 2,508 件 / 29 市町で、呉市単独で 1177 件 (46.9%)と圧倒的偏重。上位 5 市町で 65% を占める。斜面区分は自然 92% / 人工 6%で自然斜面が大半。告示年中央値 1989 年 = 急傾斜地法 (1969) 施行後 20 年経過時点が施設整備の重心。1980-1990 年代の集中整備期から漸減し、2010 年代以降は低水準維持。
- RQ2 結論: #56 区域 (2,934 件) vs #60 施設 (2,508 件) の差 426 件 (14.5%)が「区域指定済+施設未整備」 残課題。全県整備率 85%。警戒区域 (急傾斜) 内立地 38.9% / 100m 以内累計 97.3% で、施設配置と警戒区域指定の空間整合性は高い。500m 超の離隔施設 1 件は要追跡対象。
- RQ3 結論: 市町別施設件数と人口の Pearson r = 0.34、建物との r = 0.28で正の相関を確認。全県平均は1 施設あたり 1158 人を守る。呉市・大崎上島町等は守備過剰 (歴史的厚さ)、府中町, 熊野町, 東広島市は守備手薄 (= 追加投資の優先候補)。これは「人口集中の上流に施設あり」 を統計的に裏付けつつ、市町間の非対称性を初めて定量化。
急傾斜地法 (本記事) と関連 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 由来): 構造種別データの収集と詳細分析
- 結果 X: 本データには2,508 件の施設位置はあるが、構造種別 (擁壁/法枠/アンカー/防護網)や
規模 (延長・高さ)の列が無い。斜面区分 (自然/人工) と告示年代だけでは
施設の物的多様性が読めない。
- 新仮説 Y: 構造種別は告示年代で明確に変化しているはず。
1970-1980 年代はコンクリート擁壁が主流、
1990-2000 年代に法枠工が増加、
2010 年代以降はアンカー工 + ロックネットの併用が増加、
といった技術発展の世代交代が観測されるはず。
- 課題 Z: 広島県砂防課に対する情報公開請求または追加データセット要望で
構造種別・規模データを取得し、本データに左 join。
告示年代別の構造比率を集計し、世代交代を検証する。
これはデータ充実化の研究で、行政との連携が必要な応用課題。
発展課題 2 (RQ2 由来): 危険箇所番号文字列の精密照合
- 結果 X: 本研究では市町別件数集計で #56 区域 vs #60 施設のギャップを近似推定したが、
厳密には危険箇所番号列を介した 1 対 1 対応が建前。
ただし両データの番号文字列は形式に揺れがあり (?-1-1008 等の prefix 表記等)、
機械的照合に課題が残る。
- 新仮説 Y: 危険箇所番号を厳密に正規化すれば、区域 1 対 1 で施設の有無を
判定でき、市町別の集計よりも詳細な「区域 ID ◯◯◯ は施設あり、▲▲▲ は未整備」 が
list 化できる。これは区域単位の優先順位リストの作成に直結。
- 課題 Z:
re.sub で危険箇所番号の prefix・区切り文字を統一正規化 →
#56 区域名と本データ箇所名をレーベンシュタイン距離でマッチング →
未整備区域 list を生成。市町別から区域別へ解像度を上げて、
防災投資の区域単位の優先順位を可視化する応用研究。
発展課題 3 (RQ3 由来): メッシュ単位の下流人口推定
- 結果 X: 市町単位の人口で守備指数を算出したが、市町は広い (例: 庄原 1244 km²)。
実際の急傾斜地崩壊で守られる人口は施設から数十〜数百 m の集落に限定される。
- 新仮説 Y: 施設位置から500m バッファ内のメッシュ人口 (国勢調査小地域)
を集計すれば、市町集約より精緻な「実際守られる人口」 が算出できる。
これにより、市町単位では守備手薄に見える市町でも、施設配置が集落直下なら実効性は高い
ということが分かるはず。
- 課題 Z: 国勢調査小地域 (= L22 で読み込んでいるメッシュデータ) を用い、
施設点 ×500m バッファでの空間結合 (
gpd.sjoin) で実際の下流人口を直接推定。
市町単位の守備指数と真の守備指数 (= 500m バッファ人口 / 施設) を比較し、
市町間の真の格差を再評価する。これは GIS の本格応用研究。
発展課題 4 (時系列): 老朽化分析 — 1970 年代施設の更新需要
- 結果 X: 告示年中央値 1989 年 → 既存施設の多くが築 30-50 年。
コンクリート構造物の標準耐用年数 (50 年) を超えるものが増加中。
- 新仮説 Y: 1970 年代に整備された施設 (約 485 件) は
2025-2030 年に大規模更新需要に達する。年間 50-100 件ペースの更新が必要 =
新規整備よりも更新事業の財源確保が今後の主課題になる。
- 課題 Z: 告示年から経過年数を計算し、市町別に「築 50 年超施設数」 を集計。
L22 の人口減少率と組み合わせて、「人口減少 + 施設老朽化」 の二重課題市町を同定。
これは公共インフラ老朽化問題の典型例で、土木計画・財政計画との連携が必要。