Lesson 57
地すべり防止施設 単独 3 研究例分析 — 地すべり等防止法 1958 の polygon 台帳から砂防三施設族の地理を読む
L57地すべり等防止法地すべり防止施設RQ×3Format B防災施設中山間偏重庄原市L46連携L56比較砂防三施設族polygon 解析地理逆転
所要 35 分 / 想定レベル: 中級 / データ: DoBoX dataset 61 (Shapefile 1 セット, 32 polygon) + L46/L56 連携
データ取得手順
✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
| #55 | 砂防関係指定地情報_砂防指定地 |
| #56 | 砂防関係指定地情報_急傾斜地崩壊危険区域 |
| #57 | 砂防関係指定地情報_地すべり防止区域 |
| #59 | 渓流保全工基本情報 |
| #60 | 急傾斜地崩壊防止施設基本情報 |
| #61 | 地すべり防止施設基本情報 |
| #333 | dataset #333 |
| #444 | dataset #444 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L57_landslide_facility.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
学習目標と問い
本記事は DoBoX のシリーズ「地すべり防止施設基本情報」 1 件
(dataset_id = 61) を 単独で取り上げ、
広島県内の地すべり防止施設
32 polygon (Shapefile, 14 列, 約 14 KB の zip 圧縮) / 10 市町 /
合計面積 850 ha
を 3 つの独立した研究角度 (RQ1 / RQ2 / RQ3) で並列に分析する。
本データは地すべり等防止法 (1958-08-01 施行) に基づき広島県・国・市町が整備した
ハード対策の面 (polygon) ベース施設台帳で、
集水井・横ボーリング・抑止杭・排土工等の物理工事の工事範囲をひとまとまりに区切った polygon。
Phase 3 防災施設系の 2 本目 (L56 急傾斜地崩壊防止施設に続く)。
L56 (急傾斜) との対比: L56 は点 (緯度経度 1 点) で 2,508 件、
本記事 L57 は面 (polygon) で 32 件。同じ砂防シリーズに属するが
データ形式・規模・地理パターンが完全に逆転する。
L56 = 呉市 47% (沿岸都市の人家密集) ⇄ L57 = 庄原市 28% (中山間の地質依存)。
本記事はこの逆転を RQ3 で実データ検証する。
独自用語の定義
- 地すべり防止施設: 地すべり等防止法 (1958) に基づき、知事指定の地すべり防止区域内で
県・国・市町が整備した地すべり進行抑止のための物理的構造物群。
本データは 32 polygon の工事範囲 (面) を保持。
ただし個別工法 (集水井 / 横ボーリング 等) の数や仕様の列は本データにない。
polygon は「施設整備の対象地区全体」 を 1 単位とする。
- 集水井 (しゅうすいせい): 直径 3.5〜4 m の井戸を地すべり移動体に貫入し、
底から水平に集水ボーリングを放射状に展開して地下水を排水する工法。
地すべりの最大引き金は地下水位上昇のため、地下水を抜くだけで安定する事例多数。
- 横ボーリング: 山腹斜面に水平〜やや上向きの孔を多数掘削し、地下水を自然流下で排水する工法。
集水井より浅い・地下水位が深い場所に有効。
- 抑止杭 (よくしぐい): 移動体を貫通して不動層に達する長尺コンクリート杭。
移動の物理抵抗を増す。深礎杭 (しんそぐい) は直径 2-6 m の超大径杭で同じ役割。
- 排土工 / 押え盛土: 排土工 = 移動体上部の土を取り除く (= 重さを減らす)、
押え盛土 = 末端に盛土して押し付ける (= 抵抗を増す) 古典工法。
- 地すべり地形: 緩傾斜 (5-20°) で大規模 (数 ha〜数十 ha)・低速 (cm/年〜m/日) に
動く現象。急傾斜地 (がけ崩れ) や土石流 (渓流) とは現象スケール・速度が全く異なる。
第三紀堆積岩・蛇紋岩破砕帯等の特定地質に強く依存し地理的偏在が極端。
- 水系群 (suikei_gr): 本データの分類軸で1 級 / 2 級 / 不明の 3 値。
1 級 = 国交省管理の主要河川、2 級 = 県管理の中規模河川。
地すべり防止施設は河川環境への影響が大きく水系規模で整備優先度が変わる。
- 砂防三施設族 (本記事独自用語): 砂防三法 (砂防法 1897 / 地すべり等防止法 1958 /
急傾斜地法 1969) に基づくハード施設群を本記事では砂防三施設族と総称する。
本記事 (L57) と L56 はこの族の 2 本柱。
- 整備率 (本記事定義): 「施設件数 ÷ 区域件数 × 100」 (件数整備率) と
「施設総面積 ÷ 区域総面積 × 100」 (面積整備率) の 2 指標。
区域指定 (= 制度起点) に対する施設整備 (= 制度結果) の進捗度を測る。
研究の問い (3 RQ)
- RQ1 (主研究): 広島県の地すべり防止施設の構造はどう描けるか?
32 polygon を市町別ランキング、面積分布、水系群 (1級/2級) 分布、
告示年月日の時系列、polygon 形状特性で多角度に集計する。
庄原市・福山市が単独でどれほどの比率を占めるか? なぜ中山間市町に集中するか?
- RQ2 (副研究 1): 施設はL46 #57 地すべり防止区域 (39 件) とどう対応するか?
告示番号と空間 intersect の 2 経路で区域 ⇄ 施設の 1 対 1 対応を直接照合し、
件数整備率・面積整備率・市町別ギャップを定量化する。
- RQ3 (副研究 2): 地すべり施設はL56 急傾斜地崩壊防止施設 (2,508 件) とどう構造的に異なるか?
規模差 (1:78)、地理逆転、施設形態 (面 vs 点)、告示時代差を市町単位で並べ、
「砂防三施設族の地理が完全に逆転する」 現象を実データで初めて可視化する。
仮説 H1〜H5
- H1 (中山間偏重 ≥50%, RQ1): 上位 2 市町 (庄原市 + 福山市) で 50% 以上。
第三紀堆積岩・蛇紋岩破砕帯等の地すべり多発地質を持つ中山間市町に偏重。
- H2 (1 級水系優位 ≥70%, RQ1): 1 級水系 (江の川・芦田川・太田川) で 70% 以上。
地すべりは大規模流域の中山間部に多発するため。
- H3 (1980-95 集中整備, RQ1): 告示年中央値は 1985-1995 年付近。
法施行 (1958) → 1960-70 年代 1 次整備 → 1986-95 年 2 次整備 → 2006 以降停滞。
- H4 (区域 ≈ 施設 整備率 ~80%, RQ2): 区域 39 vs 施設 32 →
件数整備率 82%、面積整備率は同水準で高い対応関係。
告示番号での 1 対 1 対応も成立。
- H5 (砂防三施設族の地理逆転, RQ3): 呉市は L56 1 位 (47%) ・ L57 ゼロ件、
庄原市は L56 中位・L57 1 位 (28%)。L56 vs L57 の市町別件数相関は弱い〜負。
地質依存 (地すべり) vs 地形依存 (急傾斜) の防災工学の基本に整合。
到達点
本記事を読み終えた学習者は次の 3 点を体感できる:
- 1 つの「施設台帳 Shapefile (32 polygon)」 から、polygon の面積・コンパクト度・
水系群・告示年月日という多次元属性を多角度に読む方法を習得する。
32 件と少ないが、面 (polygon) データならではの分析の深さを体感できる。
- L46 で扱った同名関連データ (#57 区域 39 件) と本データ (#61 施設 32 件) を
告示番号と空間 intersect の 2 経路で 1 対 1 照合し、
区域指定 vs 施設整備のギャップを件数・面積の 2 指標で定量化する手法を体感する。
- L56 (急傾斜 2,508 件 / 点) と L57 (地すべり 32 件 / 面) を市町単位で並列比較し、
砂防三施設族の地理逆転という県の防災投資配分の地理学を初めて可視化できる。
これは制度・現象・データ形式が三位一体で対応する好例。
使用データ
DoBoX のシリーズ「地すべり防止施設基本情報」 1 件のみを単独で扱う。
リソースは Shapefile 1 セットのシンプル構造 (cpg/dbf/prj/shp/shx の 5 ファイル zip 圧縮)。
| 項目 | 値 |
|---|
| dataset_id | 61 |
| 名称 | 地すべり防止施設基本情報 |
| 組織 | 広島県土木建築局 砂防課 |
| リソース | 22827 — Shapefile (ZIP, 12,679 byte, 32 polygon) |
| 根拠法 | 地すべり等防止法 (1958-08-01 施行) / 主務大臣 = 国交+農水 共管 |
| 列構成 (14 列) | rireki_id (履歴ID) / kiken_no (危険箇所番号) / kasho_nm (箇所名) / prefecture / city / aza (字) / suikei_gr (水系群) / suikei_nm (水系名) / kansen_nm (幹川名) / keiryu_nm (渓流名) / tiku_nm (地区名) / address / kokuzi_ymd (告示年月日) / kokuzi_no (告示番号) |
| CRS | EPSG:6668 (JGD2011 経緯度) → 解析時 EPSG:6671 へ変換 |
| ライセンス | クリエイティブ・コモンズ表示 4.0 |
| 最終更新 | 2026-04-27 |
| 取得日 | 2026-05-09 |
データの構造
- 14 列の構成: rireki_id (履歴ID, 主キー) / kiken_no (危険箇所番号) /
kasho_nm (箇所名 = 地区名) / prefecture / city (市区郡町) / aza (字) /
suikei_gr (水系群: 1 級 / 2 級) / suikei_nm (水系名) / kansen_nm (幹川名) /
keiryu_nm (渓流名) / tiku_nm (地区名) / address (所在地) /
kokuzi_ymd (告示年月日) / kokuzi_no (告示番号)。
- geometry: Polygon (32 件、Multi なし)。
原 CRS = EPSG:6668 (JGD2011 経緯度)。
解析時は EPSG:6671 (平面直角座標系第 III 系) に変換し、面積・距離を m 単位で扱う。
- 告示年月日: 32 件 (100%) で記入あり。
範囲は 1964 年から 2006 年 の
42 年。
欠損 0 件。
- 本データに無い列: 個別工法種別 (集水井/横ボーリング/抑止杭) の数、
集水井深さ・横ボ延長・抑止杭本数等の規模諸元、
整備費、管理者の細別。これらは別の維持管理系データに属する。
本研究は「polygon ベースの工事範囲 + 行政属性」 の範囲で多角度集計を行う。
関連データセットとの対応 (砂防三施設族)
- L46 #57 地すべり防止区域 (= 区域 Shapefile, 39 polygon): 同じ地すべり等防止法に
基づく区域指定 (= 危険箇所の場所)を記録。本データ (#61 = 施設) はその区域内で
整備された施設の polygon を記録。1 対 1 対応が設計上の建前。
告示番号で直接照合可能。
- L10/L11 土砂災害警戒区域 (地すべり): 127 polygon の警戒範囲指定 (土砂災害防止法 2000)。
地すべり警戒区域は L46 区域より少ない (39 vs 127) のは
警戒区域基準 (傾斜・規模・人家) が指定要件と異なるため。
- L56 急傾斜地崩壊防止施設 (= 点 CSV, 2,508 件): 砂防三施設族のもう一方の柱。
RQ3 で本データと並列比較する。L56 = 沿岸都市 / L57 = 中山間 の地理逆転を実証。
- L46 #55 砂防指定地 (= 砂防法 1897, 3,207 polygon + 93 line): 三法の最古制度。
本記事と非合体だが、砂防三施設族の3 本目の柱 (= 渓流保全工データ) として参照。
ダウンロード
本レッスンの再現に必要な全データ・中間 CSV・図 PNG・スクリプトを以下から直接 DL できる:
生データ (DoBoX 直リンク)
本記事の中間 CSV (再現用)
図 (PNG 8 枚)
再現スクリプト
個別取得 (PowerShell):
cd "2026 DoBoX 教材"
iwr "https://hiroshima-dobox.jp/resource_download/22827" -OutFile "data/extras/L57_landslide_facility/砂防_地すべり防止施設_2026-04-27.zip"
py -X utf8 lessons\L57_landslide_facility.py
【RQ1】 構造分析 — 32 polygon / 庄原市 28% 集中の地理
狙い (RQ1)
地すべり防止施設 (32 polygon) は地すべり等防止法 (1958) に基づく公費施設。
法施行から 67 年で県内に整備された施設の地理偏在・面積分布・水系群構成・告示時期偏在を
4 軸で読む。L56 (急傾斜) では呉市 47% という極端偏重だったが、地すべりは地質依存のため
全く別の地理パターン (庄原市+福山市 で 50%) を示すと予想される。
手法 (Shapefile 読込 → CRS 変換 → 形状特性算出 → 集計)
- STEP 1 (Shapefile 読込):
gpd.read_file() で 32 polygon × 14 列を読込。
原 CRS は EPSG:6668 (JGD2011 経緯度)。
- STEP 2 (市町名正規化): 「city」 列には「山県郡安芸太田町」 のように
郡名混入がある → 「郡」 で分割して右側のみ採用 → 市町名列を新設。
- STEP 3 (CRS 変換):
.to_crs("EPSG:6671") で平面直角座標系第 III 系へ変換 =
面積・周長を m² / m 単位で扱える。
- STEP 4 (形状特性算出): 各 polygon の面積 (m² → ha) / 周長 / コンパクト度を計算。
コンパクト度 = 4π × 面積 / 周長² (= Polsby-Popper 比、1.0 = 完全な円、≈0 = 細長い)。
- STEP 5 (集計): 市町別件数 + 合計面積 + 平均面積 + 水系群構成、
告示年代別件数 (10 年区間) + 3 期 (法施行直後 / 集中整備 / 停滞)、
水系名上位 を
groupby で集計。
実装コード (Shapefile 読込 + CRS 変換 + 形状特性 + 集計)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 | # 1. Shapefile 読込・前処理
import geopandas as gpd, pandas as pd, numpy as np
gdf = gpd.read_file("data/extras/L57_landslide_facility/.../78_053_20260427.shp",
encoding="utf-8")
# 列名を日本語へリネーム (rireki_id → 履歴ID 等)
gdf = gdf.rename(columns={"rireki_id":"履歴ID", "kiken_no":"危険箇所番号",
"kasho_nm":"箇所名", "city":"市町_raw",
"suikei_gr":"水系群", "kokuzi_ymd":"告示年月日",
"kokuzi_no":"告示番号"})
# 2. 市町名正規化 (郡名除去)
def normalize_city(s):
s = str(s).strip()
if "郡" in s:
s = s.split("郡", 1)[1]
return s
gdf["市町名"] = gdf["市町_raw"].apply(normalize_city)
# 3. CRS 変換 (EPSG:6668 経緯度 → EPSG:6671 平面直角)
gdf = gdf.to_crs("EPSG:6671")
# 4. polygon 形状特性
gdf["面積_m2"] = gdf.geometry.area
gdf["面積_ha"] = gdf["面積_m2"] / 1e4
gdf["周長_m"] = gdf.geometry.length
# Polsby-Popper コンパクト度 (1.0 = 完全な円, ≈0 = 細長い)
gdf["コンパクト度"] = (4 * np.pi * gdf["面積_m2"]) / (gdf["周長_m"] ** 2)
# 5. 告示年 (datetime → year)
gdf["告示年月日_dt"] = pd.to_datetime(gdf["告示年月日"], errors="coerce")
gdf["告示年"] = gdf["告示年月日_dt"].dt.year
# 6. 市町別集計
city_summary = gdf.groupby("市町名").agg(
件数=("履歴ID", "count"),
合計面積_ha=("面積_ha", "sum"),
平均面積_ha=("面積_ha", "mean"),
一級=("水系群", lambda s: (s == "1級").sum()),
二級=("水系群", lambda s: (s == "2級").sum()),
).reset_index().sort_values("件数", ascending=False)
# 7. 告示時期 3 区分
def era3_label(y):
if y < 1980: return "1958-1979 (法施行直後)"
if y < 2000: return "1980-1999 (集中整備)"
return "2000-2024 (停滞)"
gdf["告示時期"] = gdf["告示年"].apply(era3_label)
|
図 1: 県全域 polygon マップ + 市町別件数 choropleth (2 panel)
なぜこの図か: 学習者がまず「施設はどこにあるか」 を一目で把握するため。
左の polygon マップは水系群 (1 級 = 青 / 2 級 = 緑) で色分けし、
右の choropleth は市町別件数の濃淡を示す。
L56 で呉市偏重を見た直後に、L57 で逆 (中山間偏重) が明らかになるのが本図のキー。
この図から読み取れること:
- 左 polygon マップ: 施設 polygon は県北部 (庄原市) ・ 県東部 (福山市) に集中。
呉市・広島市等の沿岸都市には1 件もない = L56 と地理が逆転。
- 各 polygon の面積は平均 26.6 ha (中央値 13.0 ha)。
最大 171 ha は廿日市市の
女鹿平地区。1 つの地すべり地区に長大な工事範囲。
- 右 choropleth: 庄原市と福山市の濃紫が突出。
Top 2 (庄原市+福山市) で 50% →
H1 (中山間偏重 ≥50%) を強支持。沿岸 / 内陸の二極構造で内陸完全支配。
- 左マップで polygon の青 (1 級水系) が大半 = 72%。
緑 (2 級水系) は沿岸島嶼の小流域に散見される程度 (22%) →
H2 を強支持。地すべりは大規模流域の中山間部で発生する地質現象として整合。
- 非対象市町 (灰色 choropleth) は呉市・広島市・福山市の市街・島嶼の大半。
地形は急斜面が多いはずだが、地すべり地形 (緩傾斜・大規模) は地質依存で
これらの地域に存在しないため、地すべり防止施設の対象にならない。
- polygon 1 件あたり ha 単位の規模は L56 (点) との本質的な違い。
L57 は 1 つの「地区」 を polygon でひとまとまりに区切る = 集水井・横ボ等を多数併設する
工事範囲を示す。L56 は施設 1 個 = 緯度経度 1 点。データ表現の違いがそのまま
防災工学の違い (面の地すべり vs 点の急傾斜施設) を反映。
図 2: 市町別ランキング (Top 10, 1 級/2 級 stack) + 水系群パイ
なぜこの図か: H1 (中山間偏重) と H2 (1 級水系優位) を 1 図で同時検証する。
左の stack 棒で市町ごとの 1 級 vs 2 級内訳、右パイで全体の比率を見る。
地すべり地形は地質依存のため、市町ランキングがほぼ「地すべり地質を持つ市町リスト」 そのもの
となる構造的特徴が読める。
この図から読み取れること:
- 左ランキング: 庄原市 9 件と福山市 7 件が突出。
上位 2 で全 50%、上位 5 で約 80% → H1 を強支持。
- 各棒の緑 (2 級水系) は沿岸 (尾道・廿日市等) の少数事例に限られ、
中山間市町はほぼ全件 1 級水系。1 級水系 (江の川・芦田川・太田川) の中流山地が
地すべり多発地。
- 右パイ: 1 級 72% / 2 級 22% / 不明 6% →
H2 (1 級水系優位 ≥70%) を強支持。
地すべり = 大規模流域の中山間 = 1 級水系の幹流・支流域、という地質と河川制度の対応を裏付け。
- 庄原市は典型的な備後流紋岩・凝灰岩地帯で第三紀堆積岩の地すべり地形が多い。
福山市も三原層群・神辺層等の第三紀堆積岩地帯。
両市の地質特性が地すべり多発の根本原因。
- 2 位以下の市町 (広島市佐伯区・三次市・安芸太田町) はいずれも太田川・江の川流域の中山間。
沿岸都市や島嶼市町 (呉市・江田島市・大崎上島町) はランクインしない =
地すべりは沿岸軟岩地帯にはほぼ存在しない地質的事実を反映。
- 水系不明 (2 件) は古い登録の欠損 → データ品質改善の余地。
図 3: 告示年別ヒスト (1958-2024) + polygon 面積分布
なぜこの図か: 法施行後 67 年の時系列で施設整備のリズムを読みつつ、
polygon 面積分布から「地すべり地区の物理的スケール」 を把握する。
1958 年 (法施行) と 2018 年 (西日本豪雨) を縦線でマーキングする。
面積分布は右に長い尾を持つ skewed 分布になるはず (= 大半は小〜中、稀に巨大地区)。
この図から読み取れること:
- 左ヒスト: 告示年範囲は 1964-2006、
中央値 1986 年。
1960 年代と 1990 年代の 2 山構造が見える → H3 を支持。
- 1960 年代 (法施行 1958 直後) に 1 次整備期 → 1980 年代に小休止 → 1990 年代に 2 次整備期 →
2006 年で新規整備が止まっている (停滞制度) ことが 1 図で確認できる。
- 2018 西日本豪雨 (赤縦線) 後に新規整備の追加なし =
地すべりは集中豪雨 1 回では新規指定されにくい制度的特徴。
地すべりは累積的・遅効的な現象なので、災害契機での新規指定は急傾斜地法と異なるリズム。
- 右ヒスト (面積): 右に長い尾の skewed 分布。
多くは 8.8-31.8 ha だが、
最大 171 ha は桁違いに大きい (廿日市市女鹿平地区)。
この巨大 polygon は数百棟規模の集落を含む大規模地すべり地区と推察。
- 面積中央値 13.0 ha = サッカー場 1852 個分。
1 地区 = 数十戸規模の集落周辺をカバーする想定スケール。
- 2010 年代以降の新規整備停止と既存施設の大規模面積を併せると、
今後の主課題は老朽化した集水井・横ボーリングの維持管理であることが示唆される。
図 4: 告示時期別 3 期 small multiples マップ
なぜこの図か: 時系列ヒストだけでは「どこに整備されたか」 が分からない。
3 期 (法施行直後 / 集中整備 / 停滞) × 3 panels で同じ県地図に時期別の polygon を分けて配置し、
地理的拡散・縮退のリズムを直感的に読む可視化。
この図から読み取れること:
- 1 期 (1958-1979 法施行直後): 13 件。
庄原・三次の県北中山間に集中。法施行直後の差し迫った大規模地すべり地区への対応が起点。
この時期の polygon は比較的大きく、現在の集水井・抑止杭の初期世代。
- 2 期 (1980-1999 集中整備): 15 件。
ピーク期。庄原市・福山市に拡大、安芸太田町・広島市佐伯区にも広がる。
この時期の整備は集水井 + 横ボーリングの組み合わせが標準化された世代。
- 3 期 (2000-2024 停滞): 4 件。
新規整備はほぼ停止。最後の告示は 2006 年。地すべり防止区域の新規指定が頭打ちになり、
施設整備も追従して停止。L56 (急傾斜) は 2010-2024 で 3% 整備があるのと対照的に、
地すべりは制度として実質的に終了状態。
- 3 期通して庄原市が常に最も多い = 県北の地すべり多発地質が時代を超えて持続。
地理は変わらないが、整備量は減少した = 1 次・2 次世代施設の維持管理段階に移行。
- 1 期と 2 期の polygon 配置を見ると、同一市町内で polygon が増えていくのが分かる
(= 既知の地すべり地区周辺で追加指定)。3 期になると新規拡張が止まる。
表: 全体サマリ (3 RQ 統合)
| 指標 | 値 |
|---|
| 総施設数 | 32 polygon (全 10 市町) |
| 総面積 | 850.1 ha (= 8.5 km²) |
| Top 1 市町 | 庄原市 9 件 (28.1%) |
| Top 2 累計 | 庄原市+福山市 16 件 (50.0%) |
| 水系群: 1 級 | 23 件 (71.9%) |
| 水系群: 2 級 | 7 件 (21.9%) |
| 水系群: 不明 | 2 件 (6.2%) |
| 告示年範囲 | 1964–2006 (中央値 1986 年) |
| 告示年 欠損 | 0 件 |
| 施設 polygon 平均面積 | 26.6 ha (中央値 13.0 ha) |
| 施設 polygon 最大面積 | 170.9 ha (廿日市市 女鹿平地区) |
| L46 #57 区域 (=指定地) | 39 件 / 合計 526.1 ha |
| 施設整備率 (件数) | 82.1% (施設 32 ÷ 区域 39) |
| 施設整備率 (面積) | 161.6% (施設面積 850 ÷ 区域面積 526 ha) |
| 告示番号 1-1 対応 | 23 件 (= 23 共通 + 9 facility-only/zone-only) |
| L56 急傾斜地崩壊防止施設 (参考) | 2,508 件 (点) |
| L56 vs L57 規模比 | 1 : 78 (2508 ÷ 32) |
| L56 vs L57 件数 Pearson r | -0.061 |
この表から読み取れること: 全 32 polygon の基本統計、庄原市+福山市 偏重 (50%)、1 級水系 72%、区域 vs 施設整備率 82%、L56 vs L57 規模比 1:78、など 3 RQ の核心指標が 18 行に集約された統合サマリ。
表: 市町別ランキング
| 順位 | 市町名 | 件数 | シェア_% | 合計面積_ha | 平均面積_ha | 1級 | 2級 | 不明 | 告示年中央 |
|---|
| 1 | 庄原市 | 9 | 28.1 | 287.7 | 32.0 | 9 | 0 | 0 | 1,986 |
| 2 | 福山市 | 7 | 21.9 | 127.4 | 18.2 | 1 | 5 | 1 | 1,987 |
| 3 | 広島市佐伯区 | 4 | 12.5 | 53.8 | 13.5 | 4 | 0 | 0 | 1,972 |
| 4 | 三次市 | 3 | 9.40 | 12.5 | 4.16 | 3 | 0 | 0 | 1,966 |
| 5 | 安芸太田町 | 3 | 9.40 | 128.9 | 43.0 | 3 | 0 | 0 | 1,999 |
| 6 | 尾道市 | 2 | 6.20 | 24.0 | 12.0 | 0 | 2 | 0 | 1,984 |
| 7 | 世羅町 | 1 | 3.10 | 15.8 | 15.8 | 1 | 0 | 0 | 1,981 |
| 8 | 府中市 | 1 | 3.10 | 7.76 | 7.76 | 1 | 0 | 0 | 1,996 |
| 9 | 廿日市市 | 1 | 3.10 | 170.9 | 170.9 | 1 | 0 | 0 | 1,992 |
| 10 | 東広島市 | 1 | 3.10 | 21.3 | 21.3 | 0 | 0 | 1 | 1,972 |
この表から読み取れること: 各市町の件数・面積・水系群内訳・告示年中央が一覧。上位 2 市町 (庄原市+福山市) が件数の 50% を占める。中山間市町に集中し、沿岸都市 (呉市・広島市等) は完全に欠落。面積を見ると 1 polygon あたりの規模感も市町で異なる (= 大規模地区 vs 小規模地区) ことが分かる。
表: 水系群構成
| 水系群 | 件数 | シェア_% | 意味 |
|---|
| 1 級水系 (国交省管理) | 23 | 71.9 | 太田川・芦田川・江の川・小瀬川等の主要河川流域。中山間部の地すべり地形が多い。 |
| 2 級水系 (県管理) | 7 | 21.9 | 中規模県管理河川。沿岸・島嶼を含むが地すべり地形は少ない。 |
| 不明 | 2 | 6.20 | 古い登録で水系群列が空欄のレコード。 |
この表から読み取れること: 1 級水系で 72% を占める。1 級水系 = 国交省管理の主要河川流域 (江の川・芦田川・太田川) で、中山間部の地すべり地形が地質的に発生しやすい場所と一致。2 級水系 (沿岸・島嶼) には地すべり地形がほぼ存在しない地質的事実を反映。
表: 告示年代別件数 (10 年区間)
| 告示年代 | 件数 | シェア_% |
|---|
| 1,960 | 6.00 | 18.8 |
| 1,970 | 7.00 | 21.9 |
| 1,980 | 7.00 | 21.9 |
| 1,990 | 8.00 | 25.0 |
| 2,000 | 4.00 | 12.5 |
この表から読み取れること: 告示年代の分布。1960 年代と 1980-1990 年代の 2 山構造、2010 年代以降の新規整備停止が見える。高度経済成長期 (1960-1990) に集中し、平成後半以降は制度として頭打ち。
表: 告示時期別 3 区分
| 告示時期 | 件数 | シェア_% |
|---|
| 1958-1979 (法施行直後) | 13 | 40.6 |
| 1980-1999 (集中整備) | 15 | 46.9 |
| 2000-2024 (停滞) | 4 | 12.5 |
この表から読み取れること: 3 期分類で時代の重心が見える。1980-1999 集中整備期が最大シェアで、その後停滞 → 2000 年代は新規整備ほぼゼロ。
【RQ2】 L46 区域 (#57) との対応 — 整備率 82%
狙い (RQ2)
地すべり等防止法は区域指定 (#57, 39 件) と施設整備 (#61, 32 件) を対で運用する設計。
本 RQ2 では (1) 告示番号を介した区域 ⇄ 施設の 1 対 1 直接照合、
(2) 空間 intersect による polygon 重なり判定、
(3) 件数整備率 + 面積整備率の 2 指標で、
「区域指定済 + 施設整備済」 / 「区域指定済 + 施設未整備」 を初めて市町別に同定する。
L56 (#56 区域 vs #60 施設, 件数のみ照合) と異なり、本 RQ2 は2 経路 + 2 指標の精密照合。
手法 (告示番号 set 演算 + sjoin intersect + overlay 面積)
- STEP 1 (告示番号 set 演算):
set(gdf['告示番号']) & set(zone['告示番号_z']) で
共通告示番号を抽出。file 共有な告示番号 = 区域と施設が同じ告示でセット指定された証拠。
- STEP 2 (空間 sjoin intersect):
gpd.sjoin(facility, zone, how='left', predicate='intersects')
で施設 polygon と区域 polygon の重なりを直接判定。
告示番号が一致しなくても空間的に重なれば「対応する区域」 と判定可能。
- STEP 3 (overlay 面積算出): 各 sjoin ペアについて
fac.intersection(zone).area で重なり面積を計算 →
最大重なり面積を持つ区域を「最も対応する区域」 と判定。
- STEP 4 (件数整備率 + 面積整備率):
件数整備率 = 施設件数 / 区域件数 × 100、
面積整備率 = 施設総面積 / 区域総面積 × 100、の 2 指標で評価。
実装コード (告示番号 set 演算 + 空間 sjoin + overlay 面積)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 | # RQ2: 区域 (L46 #57) vs 施設 (本データ #61) 1-1 照合
import geopandas as gpd, pandas as pd
# 1. L46 #57 地すべり防止区域 Shapefile を読込
zone = gpd.read_file("data/extras/L46_sabo_designation/.../地すべり防止区域.shp",
encoding="utf-8")
zone.columns = ["col_no","種別","区域名","県","市町_raw","字_raw",
"col07","告示日_z","告示番号_z","区分","geometry"]
zone = zone.to_crs("EPSG:6671")
zone["市町名"] = zone["市町_raw"].apply(normalize_city)
zone["面積_ha"] = zone.geometry.area / 1e4
# 2. 告示番号 set 演算 (1 対 1 直接照合)
gdf_kn = gdf["告示番号"].dropna().astype(int)
zone_kn = zone["告示番号_z"].dropna().astype(int)
kn_common = set(gdf_kn) & set(zone_kn)
print(f"告示番号 共通 (1-1 対応): {len(kn_common)} 件")
# 3. 空間 sjoin による intersect 判定
fac_idx = gdf.assign(fac_id=range(len(gdf)))
zone_idx = zone.assign(zone_id=range(len(zone)))
sj = gpd.sjoin(fac_idx, zone_idx, how="left", predicate="intersects")
# 4. 各 sjoin ペアの overlay 面積
overlays = []
for _, row in sj.iterrows():
if pd.isna(row["zone_id"]):
overlays.append(0.0)
continue
zg = zone_idx.loc[int(row["zone_id"]), "geometry"]
fg = fac_idx.loc[int(row["fac_id"]), "geometry"]
overlays.append(fg.intersection(zg).area / 1e4)
sj["overlay_ha"] = overlays
# 5. 各 facility について最大 overlay の zone を選ぶ
sj_best = sj.sort_values("overlay_ha", ascending=False).drop_duplicates("fac_id")
# 6. 市町別整備率
zone_per_city = zone.groupby("市町名").size().reset_index(name="区域数_57")
fac_per_city = gdf.groupby("市町名").size().reset_index(name="施設数_61")
zvf = pd.merge(zone_per_city, fac_per_city, on="市町名", how="outer").fillna(0)
zvf["施設整備率_%"] = (zvf["施設数_61"] / zvf["区域数_57"].replace(0,np.nan) * 100).round(1)
|
図 5: 区域 (赤) × 施設 (紫) 重ね合わせ全県マップ + 庄原市拡大
なぜこの図か: 区域 polygon (39 件) と施設 polygon (32 件) の空間整合性を 1 図で読む。
左の全県マップで全体の重ね合わせを、右の Top 1 市町拡大で個別の対応を確認する。
区域の赤と施設の紫がどれだけ重なるかでデータの整合性が分かる。
この図から読み取れること:
- 左全県マップ: 赤 (区域) と紫 (施設) はほぼ完全に重なる。
区域は施設より少し広い (区域 39 件 / 526 ha vs 施設 32 件 / 850 ha) =
区域指定の方が範囲が広く、施設整備はその一部を対象とする運用パターン。
- 左マップ上で区域だけがある (赤のみ) 場所がいくつか散見される =
「区域指定済 + 施設未整備」残課題エリア。
件数差 7 件、面積差 -324 ha が未整備。
- 呉市・広島市・福山市の沿岸都市部に赤も紫もない = 地すべり地形が存在しない地域。
地すべりは地質依存なので、地形があっても地質がなければ起きない。
- 右庄原市拡大: 9 件の施設 polygon と複数の区域 polygon が地区別に並ぶ。
箇所名ラベル (大久保・本郷・藤江等) が地すべり地区名として広島県の地誌に記録される
固有名詞群 = 地質学・地理学的に深い背景を持つ。
- Top 1 市町内では区域と施設がほぼ完全に重なる = 1 区域に 1 施設の 1-1 対応を
空間的にも確認できる。これは H4 を強く支持する図上証拠。
図 6: 市町別ギャップ並列棒 + 整備率 choropleth
なぜこの図か: H4 (区域 ≈ 施設 整備率 ~80%) を市町単位で直接検証する図。
左の並列棒は #57 区域 (赤) と #61 施設 (紫) を市町別に並べて差を視覚化、
右の choropleth は市町ごとの件数整備率 (= 施設数 / 区域数 × 100) を色濃淡で示す。
整備率 100% = 区域の数だけ施設整備済、整備率 < 100% = 区域指定済+施設未整備の残課題。
この図から読み取れること:
- 全県件数整備率: 82% (施設 32 ÷ 区域 39)、
面積整備率: 162% →
H4 (整備率 75-100%) を強支持。
L56 急傾斜の整備率 (85%) と同水準の高い対応関係。
- 告示番号で 1 対 1 一致するペアが 23 件 →
区域と施設は同じ告示でセット指定された制度的双子。これは件数整備率が 80% 以上である
根拠を直接示す。
- 整備率が低い (赤系) 市町 = 庄原市, 福山市, 尾道市等。
これらは区域指定は進んだが施設整備が追いつかない残課題市町。
- 整備率が 100% (緑) の市町 = 完全整備済。
整備率 > 100% (= 施設数 > 区域数) は本データではほぼない (区域 39 が施設 32 より大なので)。
- 庄原市 (区域 14 ・
施設 9) は整備率 64% →
区域に対して施設は十分整備済の状況。
- L56 で「区域あり施設なし」 がギャップとして注目されたが、L57 では地すべり等防止法の制度設計上、
区域指定 = 施設整備対象を意味する強い建前があるため、ギャップは小さく抑えられている。
これは 2 つの法律 (急傾斜 vs 地すべり) の制度厳しさの差を映す重要な発見。
表: 区域 (#57) vs 施設 (#61) 市町別ギャップ
| 順位 | 市町名 | 区域数_57 | 施設数_61 | 差_区域-施設 | 施設整備率_% |
|---|
| 1 | 庄原市 | 14 | 9 | 5 | 64.3 |
| 2 | 福山市 | 11 | 7 | 4 | 63.6 |
| 3 | 尾道市 | 3 | 2 | 1 | 66.7 |
| 4 | 安芸太田町 | 3 | 3 | 0 | 100.0 |
| 5 | 広島市佐伯区 | 2 | 4 | -2 | 200.0 |
| 6 | 府中市 | 2 | 1 | 1 | 50.0 |
| 7 | 世羅町 | 1 | 1 | 0 | 100.0 |
| 8 | 三次市 | 1 | 3 | -2 | 300.0 |
| 9 | 廿日市市 | 1 | 1 | 0 | 100.0 |
| 10 | 東広島市 | 1 | 1 | 0 | 100.0 |
この表から読み取れること: 区域・施設の市町別件数と差分・整備率の一覧。全県整備率 82%、上位 2 市町 (庄原市+福山市) で区域 25 ・ 施設 16 と圧倒的シェア。差 (区域-施設) が正の市町は「区域指定済 + 施設未整備」 残課題エリア。
表: 告示番号 1-1 対応 詳細 (上位 15 件)
| 告示番号 | 区域名 (L46) | 箇所名 (本記事) | 市町 | 区域 polygon 数 | 施設 polygon 数 | 区域面積_ha | 施設面積_ha |
|---|
| 39 | 小松原 | 小松原地区 | 東広島市 | 1 | 1 | 9.60 | 21.3 |
| 291 | 大二五 | 大二五地区 | 庄原市 | 1 | 1 | 18.9 | 24.5 |
| 459 | 山方A | 山方A地区 | 尾道市 | 2 | 2 | 17.2 | 117.3 |
| 560 | 馬騎 | 馬騎地区 | 世羅町 | 1 | 1 | 7.70 | 15.8 |
| 602 | 女鹿平 | 女鹿平地区 | 廿日市市 | 1 | 1 | 56.0 | 170.9 |
| 662 | 僧殿 | 僧殿地区 | 府中市 | 1 | 1 | 1.40 | 7.80 |
| 695 | 八尋川 | 八尋地区 | 福山市 | 2 | 2 | 18.3 | 58.4 |
| 717 | 小原 | 小原地区 | 福山市 | 1 | 1 | 8.50 | 8.50 |
| 783 | 押ヶ垰 | 押ヶ垰地区 | 安芸太田町 | 1 | 1 | 5.40 | 12.8 |
| 788 | 中門田下 | 中門田下地区 | 庄原市 | 1 | 1 | 7.50 | 12.3 |
| 805 | 藤城谷 | 藤城谷地区 | 庄原市 | 2 | 2 | 26.7 | 31.7 |
| 837 | 大久保小用 | 大久保小用地区 | 庄原市 | 1 | 1 | 5.10 | 44.4 |
| 840 | 大草 | 奥門田D(上)地区 | 庄原市 | 2 | 1 | 53.7 | 34.6 |
| 865 | 志井地区 | 志井地区 | 広島市佐伯区 | 1 | 1 | 15.0 | 15.8 |
| 872 | 奥門田中 | 奥門田E(中)地区 | 庄原市 | 1 | 1 | 66.4 | 60.4 |
この表から読み取れること: 告示番号で区域と施設が直接 1 対 1 で対応する組合せ一覧。区域名 (L46) と箇所名 (本記事) は同じ地区を別名で記録した可能性が高く、1 区域 polygon あたり 1 施設 polygon が標準パターン。区域面積 vs 施設面積を比較すると、施設が区域内のどの範囲を覆っているかが分かる。
【RQ3】 L56 急傾斜地崩壊防止施設との比較 — 砂防三施設族の地理逆転
狙い (RQ3)
砂防三施設族 (砂防 + 地すべり + 急傾斜) のうち、本記事 (L57 地すべり, 32 件 / 面) と
L56 (急傾斜, 2,508 件 / 点) の2 制度を直接対比する。
規模差 (1:78)、地理逆転、施設形態 (面 vs 点)、告示時代差を市町単位で並べ、
「砂防三施設族の地理が完全に逆転する」 現象を実データで初めて可視化する。
手法 (市町別 merge + symlog 軸 + シェア比較)
- STEP 1 (L56 市町ランキング読込): L56 既処理 CSV (assets/L56_city_ranking.csv) を
pd.read_csv() で読込。市町名は L56 で normalize 済 = 本データと直接 merge 可能。
- STEP 2 (市町別 outer merge):
pd.merge(L56, L57, on="市町名", how="outer") で
L56 のみ市町・L57 のみ市町・両方ある市町を 1 表にまとめる。
- STEP 3 (シェア・順位差・相関): 各 L で「件数 / 全件数 × 100」 のシェアを計算、
市町別 L56 vs L57 の件数 Pearson rを算出 (n=有効市町)。
r ≈ 0 や負相関なら地理逆転を支持。
- STEP 4 (symlog 棒グラフ): L56 (2,508 件) と L57 (32 件) は規模 1:78 で
線形スケールでは L57 が見えない → symlog 軸 (linthresh=10) で
0-10 線形 + log の混合軸を採用。これで両者を 1 グラフに表示できる。
実装コード (市町別 outer merge + symlog 軸 + シェア比較)
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
26
27
28
29
30 | # RQ3: L56 (急傾斜) vs L57 (地すべり) — 砂防三施設族の比較
import pandas as pd
# 1. L56 既処理 city ranking を読込
city_l56 = pd.read_csv("lessons/assets/L56_city_ranking.csv", encoding="utf-8-sig")
l56_short = city_l56[["市町名","件数"]].rename(columns={"件数":"L56_急傾斜施設"})
# 2. L57 (本データ) 市町別件数
fac_per_city_l57 = gdf.groupby("市町名").size().reset_index(name="L57_地すべり施設")
# 3. outer merge
cmp = pd.merge(l56_short, fac_per_city_l57, on="市町名", how="outer").fillna(0)
cmp["L56_急傾斜施設"] = cmp["L56_急傾斜施設"].astype(int)
cmp["L57_地すべり施設"] = cmp["L57_地すべり施設"].astype(int)
# 4. シェア計算
n56 = cmp["L56_急傾斜施設"].sum()
n57 = cmp["L57_地すべり施設"].sum()
cmp["L56_シェア_%"] = (cmp["L56_急傾斜施設"] / n56 * 100).round(1)
cmp["L57_シェア_%"] = (cmp["L57_地すべり施設"] / n57 * 100).round(1)
# 5. 順位差 (= L56 順位 - L57 順位)
cmp["順位差"] = (cmp["L56_急傾斜施設"].rank(ascending=False, method="min").astype(int)
- cmp["L57_地すべり施設"].rank(ascending=False, method="min").astype(int))
# 6. 件数 Pearson 相関 (n=有効市町)
valid = cmp[(cmp["L56_急傾斜施設"] + cmp["L57_地すべり施設"]) > 0]
corr_56_57 = valid["L56_急傾斜施設"].corr(valid["L57_地すべり施設"])
print(f"L56 vs L57 件数 Pearson r (n={len(valid)}): {corr_56_57:.3f}")
# r ≈ 0 や負なら地理逆転 = H5 支持
|
図 7: L56 (急傾斜 点) × L57 (地すべり 面) 重ね合わせ全県マップ
なぜこの図か: 砂防三施設族の地理逆転を 1 枚の地図で直感的に示す。
L57 (本記事) の polygon を紫面で、L56 (既扱) の点を青ドットで重ね、
沿岸の青密集と内陸の紫面が補完的に分布する様子を一覧する。
これは制度・現象・地理が一体化した防災工学の地理学的本質を示す画。
この図から読み取れること:
- マップ上の青ドット (L56 急傾斜 2,508 点) は呉市・尾道・福山・廿日市等の
沿岸都市と島嶼に密集。瀬戸内の島々は青で埋め尽くされる。
- マップ上の紫面 (L57 地すべり 32 polygon) は庄原市・福山市・
安芸太田町・広島市佐伯区等の内陸中山間 + 一部沿岸に散在。
polygon は ha-km² 単位の面で、点とは桁違いの空間スケール。
- 青と紫が重なる地域はほとんどない = L56 と L57 は地理的に補完的 (= 同じ場所には両方少ない)。
両者の market が完全に異なる証拠。
- 呉市は青で完全に埋まるが紫はゼロ件 → L56 で 1 位 (47%) なのに L57 ではゼロ。
これは「呉市の急斜面は固い基盤岩の上にあるので地すべり地形がない」 という地質特性に整合。
- 庄原市は紫面が 9 件・青ドット中位 (28 件 vs L56 平均 80 件) →
L57 で 1 位なのに L56 では中位。地すべり地質が支配的だが
急斜面下の住宅密集はほぼないため。
- 島嶼部 (江田島・大崎上島) は青ドット多数だが紫面ゼロ = 軍関連都市の人工急斜面は多いが
地すべり地質はないという地理 + 地質 + 歴史の三重対応。
- このマップは「制度ごとに別の地理がある」 という防災工学の基本原理を 1 枚で実証する画で、
防災投資の地理学を理解する上での教科書的レファレンス。
図 8: L56 vs L57 市町別ランキング 並列比較 (件数 + シェア %)
なぜこの図か: 図 7 の地理逆転を市町単位の数値で精密化する。
左 (件数 symlog 軸) で実数の桁違いを、右 (シェア %) で同じ市町でも L56 と L57 のランキングがどう違うかを示す。
規模 1:78 倍の 2 制度を 1 図に重ねる工夫として symlog 軸を使い、
学習者に「同じグラフに同居させる工夫」 を教える。
この図から読み取れること:
- L56 vs L57 件数の Pearson r = -0.061 (n=有効市町) →
ほぼ無相関。
H5 (地理逆転) を強支持 (逆転確認)。
件数規模の絶対値が桁違いなのに加え、市町別パターンも独立。
- 呉市: L56=1177 件 (シェア 47%, L56 ランキング 1 位) ⇄ L57=0 件 (= ゼロ件): L56 で圧倒的 1 位の市町が L57 ではゼロという劇的な逆転。
これは呉市の地形 (急斜面) と地質 (堅固な基盤岩) の組合せが
急傾斜地のみで地すべりを起こさない地質特性を示す。
- 庄原市: L56=24 件 (シェア 1%, 中位) ⇄ L57=9 件 (シェア 28%, L57 ランキング 1 位): L57 で 1 位の市町が L56 では中位。
内陸中山間 (備後流紋岩・凝灰岩) は地すべりを起こすが、急斜面の人家密集はないため。
- 右シェア (%) パネル: 同じ市町を見ると、L56 シェアと L57 シェアの大小関係が市町ごとに異なる。
これが市町単位での地理逆転の直接証拠。
- L56 (沿岸都市偏重) と L57 (中山間偏重) の補完性は、広島県の砂防投資が
2 つの全く別の使命を分担している事実を示す:
L56 = 沿岸都市の人家防護 / L57 = 中山間の地質災害抑止。
- 規模 1:78 の桁違いは、急傾斜地の発生頻度 vs 地すべりの希少性を反映。
急傾斜は人為的に作られる (道路・宅地造成) ので増えるが、
地すべりは地質固有なので新規発生しない。これが新規告示の頭打ち (H3) と整合。
表: L56 (急傾斜) vs L57 (地すべり) 市町別比較 Top 15
| 市町名 | L56_急傾斜施設 | L56_シェア_% | L57_地すべり施設 | L57_シェア_% | 順位差 |
|---|
| 庄原市 | 24 | 1.00 | 9 | 28.1 | 20 |
| 福山市 | 114 | 4.50 | 7 | 21.9 | 1 |
| 広島市佐伯区 | 47 | 1.90 | 4 | 12.5 | 11 |
| 三次市 | 35 | 1.40 | 3 | 9.40 | 15 |
| 安芸太田町 | 49 | 2.00 | 3 | 9.40 | 9 |
| 尾道市 | 129 | 5.10 | 2 | 6.20 | -4 |
| 府中市 | 14 | 0.600 | 1 | 3.10 | 16 |
| 廿日市市 | 92 | 3.70 | 1 | 3.10 | -2 |
| 世羅町 | 0 | 0.000 | 1 | 3.10 | 23 |
| 東広島市 | 47 | 1.90 | 1 | 3.10 | 7 |
| 坂町 | 44 | 1.80 | 0 | 0.000 | 7 |
| 呉市 | 1177 | 46.9 | 0 | 0.000 | -10 |
| 北広島町 | 5 | 0.200 | 0 | 0.000 | 15 |
| 三原市 | 60 | 2.40 | 0 | 0.000 | 0 |
| 広島市南区 | 53 | 2.10 | 0 | 0.000 | 1 |
この表から読み取れること: 各市町の L56 件数・シェア・L57 件数・シェア・順位差。順位差 = L56 順位 - L57 順位。正の値が大きい市町ほどL56 では下位だが L57 では上位 (= 中山間特化)、負の値が大きい市町ほどL56 では上位だが L57 では下位 (= 沿岸都市特化)。呉市は順位差 10 程度の差で典型的な L56 偏重 (沿岸都市)、庄原市は順位差 +20 程度の差で L57 偏重 (中山間)。制度ごとに別の市町ランキングが存在する事実を 1 表で実証。
仮説検証総合
本記事の 5 仮説と観測結果の照合:
| 仮説 | 予想 | 観測 | 判定 |
|---|
| H1 (中山間偏重 ≥50%, RQ1) | 庄原市+福山市 の 2 市単独で 50% 以上 | 庄原市 9 (28%) + 福山市 7 = 計 50% | 強支持 |
| H2 (1 級水系優位 ≥70%, RQ1) | 1 級水系で 70% 以上 | 1 級 23 (72%) / 2 級 7 (22%) | 強支持 |
| H3 (1980-95 集中整備, RQ1) | 告示年中央値が 1985-1995 年付近 | 中央値 1986 年 / 集中期 15 件 | 支持 |
| H4 (区域 ≈ 施設 整備率 ~80%, RQ2) | 整備率 75-100% の高一致 | 件数 82% (施設 32 ÷ 区域 39) / 面積 162% / 告示番号一致 23 | 強支持 |
| H5 (砂防三施設族の地理逆転, RQ3) | 庄原市は L57 単独 1 位だが L56 では中位 / 呉市は L56 単独 1 位だが L57 ゼロ件 | L56 vs L57 件数相関 r = -0.061, 呉市 L56=1177件 / L57=0件, 庄原市 L56=24件 / L57=9件 | 強支持 (逆転確認) |
3 RQ × 3 結論
- RQ1 結論: 地すべり防止施設は 32 polygon / 10 市町 / 合計 850 haで、庄原市+福山市単独で 50%と中山間偏重。水系群は1 級 72% / 2 級 22%で 1 級水系優位。告示年中央値 1986 年で集中整備期 (1980-1999) がピーク、2006 年以降は新規整備が事実上停止。地質依存で固有の地理パターンを示す。
- RQ2 結論: #57 区域 (39 件) vs #61 施設 (32 件) の件数整備率 82%、面積整備率 162%。告示番号で 1-1 対応 23 件、空間 intersect で 31/32 施設が区域に重なる。区域 = 施設の制度的双子として高い対応関係を確認。L56 (整備率 85%) と同水準で、地すべり等防止法の制度設計通りの運用が行われている。
- RQ3 結論: L56 (2,508 件 / 点 / 沿岸都市偏重) vs L57 (32 件 / 面 / 中山間偏重) で規模 1:78 の差 + 件数 Pearson r = -0.061。呉市は L56 1 位・L57 ゼロ件、庄原市は L56 中位・L57 1 位と劇的な地理逆転。地質依存 (地すべり) vs 地形依存 (急傾斜) の防災工学の基本原理が実データで裏付けられた。県の砂防投資は沿岸都市の人家防護 + 中山間の地質災害抑止という 2 使命を分担。
砂防三法 (砂防 / 地すべり / 急傾斜) の制度・施設・地理の対応
| 側面 | 砂防法 | 地すべり等防止法 (本記事) | 急傾斜地法 (L56) |
|---|
| 対象現象 | 土石流 (渓流) | 地すべり (緩慢移動体) | がけ崩れ (急斜面) |
| 施行年 | 1897 (明治 30) | 1958 (昭和 33) | 1969 (昭和 44) |
| 区域指定 (= 面) | 砂防指定地 3,207 件 (#55) | 地すべり防止区域 39 件 (#57) | 急傾斜地崩壊危険区域 2,935 件 (#56, CSV緯度経度) |
| 施設整備データ | 渓流保全工 (#59 等, 別データ) | 32 polygon (本データ) | 2,508 点 (L56 既扱) |
| 施設の typical | 堰堤・床固・床版・流路工 | 集水井・横ボーリング・抑止杭・排土工 | 擁壁・法枠・アンカー・防護網 |
| 防災投資の主舞台 | 中山間 + 沿岸両域 | 中山間 (地質依存) | 沿岸都市 (人家密集) |
| 施設の地理 (Top 市町) | 中山間広域分散 | 庄原市 28% / 福山市 次点 | 呉市 47% |
この表から読み取れること: 砂防三法 (砂防法 1897 / 地すべり等防止法 1958 / 急傾斜地法 1969) は、それぞれ別の現象を対象とし、別の施設タイプを整備し、別の地理を主舞台とする。本記事 (L57 地すべり) と L56 (急傾斜) の対比は、この三制度の2 つの極を実データで初めて並列可視化したもの。砂防法系の渓流保全工 (#59) を将来分析することで、三施設族の三国志が完成する。
発展課題
結果 X → 新仮説 Y → 課題 Z (3 RQ × 1 課題以上)
発展課題 1 (RQ1 由来): 個別工法種別データの収集と詳細分析
- 結果 X: 本データには32 polygon の工事範囲はあるが、
個別工法種別 (集水井 / 横ボーリング / 抑止杭 / 排土工 等) の数や
規模諸元 (集水井深さ・横ボ延長・抑止杭本数) の列が無い。
告示年代と面積だけでは施設の物的多様性が読めない。
- 新仮説 Y: 個別工法は告示年代で明確に変化しているはず。
1960-1970 年代は排土工 + 押え盛土が主流、
1980-1990 年代に集水井 + 横ボーリングが標準化、
2000 年代以降はアンカー工 + 大深度抑止杭の高度化、
といった地すべり工学の世代交代が観測されるはず。
- 課題 Z: 広島県砂防課に対する情報公開請求または追加データセット要望で
個別工法種別・規模データを取得し、本データに左 join。
告示年代別・市町別の工法構成比率を集計し、世代交代を検証する。
地すべり工学の歴史的発展を実データで読む応用研究。
発展課題 2 (RQ2 由来): 区域 polygon と施設 polygon の精密 overlay 解析
- 結果 X: 本研究では告示番号 1-1 対応 23 件と空間 intersect 判定で
区域 vs 施設の対応を確認したが、区域内の施設未整備エリア (= 区域から施設を引いた残差) の
面積分布は厳密には算出していない。
- 新仮説 Y: 各区域 polygon について「施設で覆われている割合」 (= 区域内施設率) を計算すれば、
区域単位での整備進捗の精密マップが作れる。
整備率 100% の区域 = 完全整備済、< 50% の区域 = 未整備残課題が大きい区域。
これは行政の区域単位の事業優先順位に直結。
- 課題 Z:
gpd.overlay(zone, facility, how='difference') で
各区域から施設を引いた残差 polygon を抽出 → 残差面積 / 区域面積で未整備率を算出。
市町別・地区別に未整備率を可視化し、追加投資の優先順位リストを作成する応用研究。
発展課題 3 (RQ3 由来): L46 砂防指定地 (#55) を加えた砂防三施設族の三角分析
- 結果 X: 本記事は L56 (急傾斜) vs L57 (地すべり) の 2 制度比較に絞ったが、
砂防三法のもう 1 本 = 砂防法 (1897) に基づく砂防指定地 #55 (3,207 polygon) や
渓流保全工 (#59 等) は未統合。三制度の三角関係はまだ完全には描けていない。
- 新仮説 Y: 三制度の市町分布は地形・地質・人口の三軸三国志で説明できる:
- 砂防 (土石流): 渓流が走る中山間 + 沿岸両域に広く
- 地すべり (緩慢移動): 第三紀堆積岩の中山間に集中
- 急傾斜 (がけ崩れ): 急斜面下に人家が密集する沿岸都市に集中
→ 各市町の三制度シェアは地形・地質・歴史の組合せで予測可能。
- 課題 Z: L46 (#55 砂防指定地) と本記事 (L57) と L56 を市町別に統合し、
三軸スコアプロット (= 砂防シェア vs 地すべりシェア vs 急傾斜シェア の三角座標) を作成。
呉市・庄原市・他の市町をプロットし、地形・地質・人口の三軸での位置を可視化。
これは PCA や CCA の応用で、防災工学の地理学を統計的に確立する研究。
発展課題 4 (時系列): 老朽化分析 — 集水井・横ボーリングの維持管理需要
- 結果 X: 告示年中央値 1986 年 →
既存施設の多くが築 30-50 年。集水井・横ボーリングの標準耐用年数 (30 年程度、再生産可能) を
超えるものが増加中。2006 年以降の新規整備停止と相まって、
維持管理が今後の主課題。
- 新仮説 Y: 1960-1980 年代に整備された施設 (約 14 件) は
2025-2035 年に大規模更新需要に達する。
集水井の浚渫・横ボの目詰り対策・抑止杭の腐食診断など、新規整備とは違う維持管理事業に
財源シフトする必要。
- 課題 Z: 告示年から経過年数を計算し、市町別に「築 50 年超施設数」 を集計。
L22 の人口減少率と組み合わせて、「人口減少 + 施設老朽化」 の二重課題市町を同定。
集水井・横ボはモニタリングが不可欠なので、継続的なセンサー設置 + データ収集と
組み合わせた運用研究に発展可能。