Lesson 58
渓流保全工 単独 3 研究例分析 — 砂防法 1897 の LineString 台帳から砂防三施設族の地理学を完成させる
L58砂防法渓流保全工RQ×3Format B防災施設バランス型分布工種8種L46連携L56比較L57比較砂防三施設族LineString 解析三角座標プロット
所要 40 分 / 想定レベル: 中級 / データ: DoBoX dataset 59 (Shapefile 1 セット, 1,862 LineString) + L46/L56/L57 連携
データ取得手順
✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
| #55 | 砂防関係指定地情報_砂防指定地 |
| #56 | 砂防関係指定地情報_急傾斜地崩壊危険区域 |
| #57 | 砂防関係指定地情報_地すべり防止区域 |
| #59 | 渓流保全工基本情報 |
| #60 | 急傾斜地崩壊防止施設基本情報 |
| #61 | 地すべり防止施設基本情報 |
| #222 | dataset #222 |
| #333 | dataset #333 |
| #444 | dataset #444 |
| #555 | 土砂災害警戒区域・特別警戒区域情報_尾道市 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L58_keiryu_facility.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
学習目標と問い
本記事は DoBoX のシリーズ「渓流保全工基本情報」 1 件
(dataset_id = 59) を 単独で取り上げ、
広島県内の渓流保全工 1,862 LineString (Shapefile, 18 列, 約 1.4 MB の zip 圧縮) /
29 市町 / 総延長 345 km を
3 つの独立した研究角度 (RQ1 / RQ2 / RQ3) で並列に分析する。
本データは砂防法 (1897-06-01 施行 = 世界初の砂防法) に基づき広島県が整備した
河床・河岸の線的工事 (LineString) の台帳で、護岸工・流路工・床固工等の
物理工事の起点-終点を 1 line で記録。Phase 3 防災施設系の
3 本目 = 砂防三施設族の最終ピース (L56 急傾斜・L57 地すべりに続く)。
L56 / L57 との対比: L56 は点で 2,508 件、
L57 は面で 32 件、本記事 L58 は線 (LineString)で 1,862 件。
3 制度・3 形態・3 規模の砂防三施設族がついに完成する。
L56 = 呉市 47% (沿岸都市) ⇄ L57 = 庄原市 28% (中山間) ⇄ L58 = 呉市14% +
三次市+尾道市で 27% (沿岸・中山間バランス型)。
本記事 RQ3 で三施設族の地理学的全体像を初めて描く。
独自用語の定義
- 渓流保全工: 砂防法 (1897) に基づき、広島県が渓流の侵食・洗掘を防ぐために
整備した河床・河岸の線的な土木工事 (LineString)。
本データは 1,862 件の起点-終点 line を保持。
個別工事 (護岸工・流路工・床固工) ごとに別 lineとして記録される。
- 護岸工 (ごがんこう): 渓流の岸を石積・コンクリートブロックで補強し、
洪水時の岸侵食 (河床洗掘) を防ぐ工事。本データの 974 件 (52%) で最多。
構造種別はコンクリート・ブロック積・空石積・練石積・自然護岸 (土) 等。
- 流路工 (りゅうろこう): 河床・河岸を一体的に整形し、
渓流の流れを安定させる工事。底張り (コンクリート) + 護岸の組合せ。
本データ 755 件 (41%) で 2 番目に多い。
- 床固工 (とこがためこう): 河床に小堰堤 (高さ H = 1-3 m 程度) を
設置し、河床の侵食を抑え土砂流出を抑制する工事。
流路工内に組込む (流路工内床固工 91 件) のが一般的、単独設置は 2 件のみ。
- 暗渠工 (あんきょこう): 渓流を地下水路化し、地表面を有効利用する工事。
本データ 32 件。
- 山腹工 (さんぷくこう): 渓岸の斜面を植生・編柵で安定化する工事。本データ 6 件。
- 砂防三施設族 (本記事独自用語): 砂防三法 (砂防法 1897 / 地すべり等防止法 1958 /
急傾斜地法 1969) に基づくハード施設群を本記事では砂防三施設族と総称する。
L58 (本記事) ・ L57 (地すべり) ・ L56 (急傾斜) が族の 3 本柱。
対応する区域指定 = #55 砂防指定地 / #56 急傾斜区域 / #57 地すべり区域 (L46 で集約)。
- 水系群 (suikei_gr): 本データの分類軸で1 級 / 2 級 / その他 / 不明の 4 値。
1 級 = 国交省管理の主要河川 (太田川・芦田川・江の川・小瀬川等)、
2 級 = 県管理の中規模河川、その他 = 普通河川 (市町管理) や水系不明の小渓流。
- 施設充足比率 (本記事定義): 「市町別 渓流保全工件数 ÷ 砂防指定地件数」
= 1.0 で件数同等、>1.0 で過剰整備、<1.0 で未整備残存。
指定地 = 整備されるべき場所、渓流保全工 = 実際に整備された場所、の差を測る。
- 砂防戦略タイプ (本記事定義): 三施設族の市町内構成比から
「急傾斜特化型 (L56≥60%)」「地すべり主導型 (L57≥30%)」「渓流主導型 (L58≥50%)」
「急傾斜+渓流バランス型 (L56≥40 かつ L58≥30)」「混合型」の 5 タイプに分類。
研究の問い (3 RQ)
- RQ1 (主研究): 広島県の渓流保全工の構造はどう描けるか?
1,862 件の LineString を市町別ランキング、工種 8 種分布、構造 76 種、
規模特性 (高さ × 延長)、告示年代、水系群分布で多角度に集計する。
呉市 264 件 + 三次・尾道で計 27% のバランス型分布は何故か?
- RQ2 (副研究 1): 渓流保全工はL46 #55 砂防指定地 (3,207 polygon) とどう対応するか?
空間 sjoin で「指定地内整備率」 を計測し、告示番号で 1 対 1 直接照合。
件数の差 (3,207 vs 1,862) を市町別に分解し、未整備指定地の残課題エリアを特定する。
- RQ3 (副研究 2): 砂防三施設族 (L56 + L57 + L58) の総合構造はどう描けるか?
三施設の合計 4,402 件を市町別に統合し、三角座標プロット (L56-L57-L58 シェア) で
各市町の砂防戦略タイプを分類。
「広島県の砂防投資の地理学」 の総合像を初めて描く。
仮説 H1〜H5
- H1 (バランス型分布, Top 3 ≤ 30%, RQ1): 渓流保全工は沿岸+中山間の両方に分散。
Top 3 市町 (呉市+三次市+尾道市) で 30% 以下と予想。
L56 (呉市偏重 47%) や L57 (中山間偏重 50%) と対照的なバランス型。
- H2 (護岸+流路 ≥ 90%, RQ1): 工種 8 種のうち護岸工 + 流路工で 90% 以上。
渓流保全の中心は河床整形と河岸補強という基本工事のため。
- H3 (1960-75 集中整備, RQ1): 告示年中央値は 1965-1975 年付近。
砂防法 (1897) は最古制度で告示時系列が長く、高度経済成長期 (1960-1975) に集中。
- H4 (砂防指定地内整備率 ≥ 80%, RQ2): 渓流保全工の大半 (≥80%) が指定地内に存在。
指定地 = 整備されるべき場所として制度設計されているため。
「指定地あり + 渓流保全工なし」 は数百〜千件の未整備残課題として残存。
- H5 (三施設族の地形依存配分, RQ3): 三施設族の市町別シェアは地形・地質で決まる:
沿岸都市 = 急傾斜特化型 / 中山間 = 地すべり+渓流型 / 島嶼 = 急傾斜単独型 のように
砂防戦略タイプで明確に分類可能。混合型は少数派。
到達点
本記事を読み終えた学習者は次の 3 点を体感できる:
- 1 つの「線形施設台帳 Shapefile (1,862 LineString × 18 列)」 から、
工種 8 種・構造 76 種・規模 (高さ × 延長)・告示年代という多次元属性を多角度に読む方法を習得する。
点 (L56) や面 (L57) と異なる線データの特徴を体感できる。
- L46 で扱った同名関連データ (#55 砂防指定地 3,207 polygon) と本データ (#59 渓流保全工 1,862 line) を
空間 sjoin と告示番号の 2 経路で照合し、
指定地内整備率と未整備残課題の地理を定量化する手法を体感する。
- L56 (急傾斜 2,508 点) ・ L57 (地すべり 32 面) ・ L58 (渓流 1,862 線) の砂防三施設族を
市町単位で並列比較し、三角座標プロットで各市町の砂防戦略タイプを分類できる。
これは制度・現象・地形・施設形態が四位一体で対応する好例で、
防災投資の地理学を理解する上での教科書的レファレンス。
使用データ
DoBoX のシリーズ「渓流保全工基本情報」 1 件のみを単独で扱う。
リソースは Shapefile 1 セットのシンプル構造 (cpg/dbf/prj/shp/shx の 5 ファイル zip 圧縮、約 1.4 MB)。
| 項目 | 値 |
|---|
| dataset_id | 59 |
| 名称 | 渓流保全工基本情報 |
| 組織 | 広島県土木建築局 砂防課 |
| リソース | 22825 — Shapefile (ZIP, 1,386,718 byte, 1,862 LineString) |
| 根拠法 | 砂防法 (1897-06-01 施行) — 世界初の砂防法 / 国土交通省所管 |
| 列構成 (18 列) | objid (主キー) / suikei_gr (水系群=1級/2級/その他) / suikei_nm (水系名) / kansen_nm (幹川名) / keiryu_nm (渓流名) / prefecture / city / aza (字) / kousyu (工種) / kouzou (構造) / height (高さ m) / length (延長 m) / area (面積 m²) / sekou_year (施工年) / syunko_ymd (竣工年月日) / skeiryu_nm / kokuzi_ymd (告示年月日) / kokuzi_no (告示番号) |
| CRS | EPSG:6668 (JGD2011 経緯度) → 解析時 EPSG:6671 へ変換 |
| ライセンス | クリエイティブ・コモンズ表示 4.0 |
| 最終更新 | 2026-04-27 |
| 取得日 | 2026-05-10 |
データの構造
- 18 列の構成: objid (主キー) / suikei_gr (1 級 / 2 級 / その他) /
suikei_nm (太田川・芦田川等) / kansen_nm (幹川名) / keiryu_nm (渓流名) /
prefecture / city / aza (字) /
kousyu (工種 8 種) / kouzou (構造 76 種) /
height (高さ m) / length (延長 m) / area (面積 m², 沈砂池等) /
sekou_year (施工年, 平成期のみ) / syunko_ymd / skeiryu_nm /
kokuzi_ymd (告示年月日) / kokuzi_no (告示番号)。
- geometry: LineString 1,313 +
MultiLineString 549 = 計 1,862。
原 CRS = EPSG:6668 (JGD2011 経緯度)。
解析時は EPSG:6671 (平面直角座標系第 III 系) に変換し、距離を m 単位で扱う。
- 告示年月日: 961 件 (52%) で記入あり。
範囲は 1909 年から 2024 年 の
115 年。
欠損 901 件 (48.4%)。
- 規模列の特徴: 高さ H は床固工・堰堤等で記入、延長 L は線全体の長さ。
面積は沈砂池等の点的構造物のみ (45 件)。
高さ・延長はL56 / L57 にない 本データの特長。
関連データセットとの対応 (砂防三施設族)
- L46 #55 砂防指定地 (= 区域 Shapefile, 3,207 polygon + 93 line):
同じ砂防法に基づく区域指定 (= 整備されるべき場所)を記録。
本データ (#59 = 施設) はその指定地内で整備された線的工事。
告示番号と空間 sjoin で照合可能。
- L57 地すべり防止施設 (= 面 Shapefile, 32 polygon): 砂防三施設族の2 本目。
地すべり等防止法 1958 に基づく集水井・横ボーリング等の polygon ベース台帳。
- L56 急傾斜地崩壊防止施設 (= 点 CSV, 2,508 件): 砂防三施設族の1 本目。
急傾斜地法 1969 に基づく擁壁・法枠等の点ベース台帳。
- L46 #56 急傾斜区域 (2935 polygon, CSV 緯度経度) と
#57 地すべり防止区域 (39 polygon): 三制度の区域指定。
L58 (砂防 1897) は三法のうち最古制度で歴史的厚みが最大。
ダウンロード
本レッスンの再現に必要な全データ・中間 CSV・図 PNG・スクリプトを以下から直接 DL できる:
生データ (DoBoX 直リンク)
本記事の中間 CSV (再現用)
図 (PNG 8 枚)
再現スクリプト
個別取得 (PowerShell):
cd "2026 DoBoX 教材"
iwr "https://hiroshima-dobox.jp/resource_download/22825" -OutFile "data/extras/L58_keiryu_facility/砂防_渓流保全工_2026-04-27.zip"
py -X utf8 lessons\L58_keiryu_facility.py
【RQ1】 構造分析 — 1,862 LineString / Top 3 で 27% のバランス型
狙い (RQ1)
渓流保全工 (1,862 LineString) は砂防法 (1897, 世界初) に基づく公費施設。
法施行から 127 年で県内に整備された施設の地理偏在・工種構成・規模分布・告示時期偏在を
4 軸で読む。L56 (呉市 47% 沿岸偏重) や L57 (呉市14% 中山間偏重 — L57 のことではなく
庄原 28% を指す) と異なり、渓流は地形を選ばず存在するため、
呉市+三次市+尾道市の Top 3 でも合計 27% というバランス型を予想する。
手法 (Shapefile 読込 → CRS 変換 → 多次元集計)
- STEP 1 (Shapefile 読込):
gpd.read_file() で 1,862 LineString × 18 列を読込。
原 CRS は EPSG:6668 (JGD2011 経緯度)。
- STEP 2 (市町名正規化): 「city」 列には「山県郡安芸太田町」 のように郡名混入がある →
「郡」 で分割して右側のみ採用 → 市町名列を新設。
- STEP 3 (CRS 変換):
.to_crs("EPSG:6671") で平面直角座標系第 III 系へ変換 =
延長を m 単位で扱える。
- STEP 4 (構造正規化): 半角カナの揺れ (コンクリート → コンクリート、ブロック積 → ブロック積) を統合。
- STEP 5 (集計): 市町別件数 + 合計延長 + 平均延長 + 工種構成、
工種別件数 (8 種)、構造別件数 (76 種、Top 10)、
告示年代別件数 (10 年区間) + 3 期 (戦前+復興 / 高度成長 / 維持)、
規模 (高さ × 延長) joint plot を
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 | # 1. Shapefile 読込・前処理
import geopandas as gpd, pandas as pd, numpy as np
gdf = gpd.read_file("data/extras/L58_keiryu_facility/.../78_051shp_20260427.shp",
encoding="utf-8")
# 列名を日本語へリネーム (objid → 施設ID 等)
gdf = gdf.rename(columns={"objid":"施設ID", "suikei_gr":"水系群",
"kousyu":"工種", "kouzou":"構造",
"height":"高さ_m", "length":"延長_m",
"city":"市町_raw", "kokuzi_ymd":"告示年月日"})
# 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. 構造の半角カナ正規化
def normalize_kouzou(s):
s = str(s).strip()
if s in ("None","nan",""):
return "不明"
return s.replace("コンクリート","コンクリート").replace("ブロック積","ブロック積")
gdf["構造"] = gdf["構造"].apply(normalize_kouzou)
# 4. CRS 変換 (EPSG:6668 経緯度 → EPSG:6671 平面直角)
gdf = gdf.to_crs("EPSG:6671")
gdf["延長_geom_m"] = gdf.geometry.length # geometry から計算
# 5. 告示年
gdf["告示年"] = pd.to_datetime(gdf["告示年月日"], errors="coerce").dt.year
# 6. 市町別集計
city_summary = gdf.groupby("市町名").agg(
件数=("施設ID", "count"),
合計延長_m=("延長_m", "sum"),
平均高さ_m=("高さ_m", "mean"),
護岸=("工種", lambda s: (s == "護岸工").sum()),
流路=("工種", lambda s: (s == "流路工").sum()),
).reset_index().sort_values("件数", ascending=False)
# 7. 工種・構造の集計
kousyu_count = gdf["工種"].value_counts().reset_index()
kouzou_count = gdf["構造"].value_counts().reset_index()
|
図 1: 県全域 LineString マップ + 市町別件数 choropleth (2 panel)
なぜこの図か: 学習者がまず「渓流保全工はどこにあるか」 を一目で把握するため。
左の LineString マップは工種別 (護岸 = 青 / 流路 = 緑 / 床固 = 赤 / 暗渠 = 黄)、
右の choropleth は市町別件数の濃淡を示す。
L56 (呉市偏重) や L57 (中山間偏重) と異なり、L58 は県内全域に分散するのが本図のキー。
この図から読み取れること:
- 左 LineString マップ: 渓流保全工は県内全域に分散。
呉市 (沿岸都市)・三次市 (中山間)・尾道市 (沿岸)・庄原市 (中山間) の地形を問わず多数。
これはL56 (沿岸特化) や L57 (中山間特化) と本質的に異なる構造。
- 線の色 = 工種で大半は青 (護岸工 974 件) と緑 (流路工 755 件)。
赤 (床固工) は流路工内に組込まれているため線として描かれる量は少ない。
- 右 choropleth: 呉市 264 件と三次市 129 件が
濃緑で突出。Top 3 (呉市+三次市+尾道市) で 27.2% →
H1 (バランス型分布 ≤ 30%) を強支持。
L56 (呉市単独 47%) や L57 (Top 2 で 50%) と比べて分散度合いが格段に高い。
- 渓流が県内全域に存在 (= 谷地形は地質に依らず) → 砂防法 1897 の射程は地理的に最広。
これが渓流保全工が三施設族の中で件数最多 (1,862 件) になる構造的理由。
- 非対象市町 (灰色 choropleth) は大崎上島町 (島嶼)・府中町・海田町 (沿岸都市部)等。
島嶼や市街化進展地区では渓流が小さく整備対象に至らない。
- 線データ (1,862 件) は L56 (点 2,508 件) や L57 (面 32 件) と幾何形態が
根本的に異なる。線 = 起点から終点まで持つ 1 次元的工事範囲を示し、
渓流保全の連続的性質 (= 河床整形は岸沿いに連続) を反映する。
図 2: 市町別ランキング Top 12 (工種 stack) + 工種構成パイ
なぜこの図か: H1 (バランス型分布) と H2 (護岸+流路で 90%) を 1 図で同時検証する。
左の stack 棒で市町ごとの工種内訳、右パイで全体の工種比率を見る。
渓流保全の中心は護岸 + 流路という基本工事である構造的特徴が読める。
この図から読み取れること:
- 左ランキング: 呉市 264 件が突出するが、
Top 12 まで見ると多数市町に分散。Top 3 で 27.2% →
H1 (バランス型 ≤ 30%) を強支持。
L56 (呉市単独 47%)・L57 (庄原市 28%+福山市 22% で計 50%) と本質的に異なる平等分布。
- 各棒の青 (護岸工) と緑 (流路工) が大半を占める。市町問わずこの 2 工種で 80-95% を構成。
- 右パイ: 護岸工 52.3% / 流路工 40.5% /
流路工内床固工 4.9% / その他 (暗渠・山腹工等) 2.2% →
H2 (護岸+流路 ≥ 90%) を強支持。
渓流保全の中心は河岸補強と河床整形という基本工事に集中。
- 呉市は渓流保全工で 1 位だが、その内訳は流路工が多い (= 河床整形主体) =
呉市は急斜面の谷が多く河床勾配が急なため流路工で底張りする必要があった歴史的経緯。
- 三次市 (三次市) は内陸の比較的緩やかな渓流が多く、護岸工と流路工がほぼ均等。
- 島嶼や沿岸市街地で 0 件の市町 (大崎上島・府中町等) は、渓流が小さい / 既に暗渠化のため
対象外。L58 のバランス型分布の例外。
- 床固工 (赤) は単独 2 件・流路工内 91 件と少ないが、
これは床固工が線データ 1 件として記録されにくい (= 流路工の中に組込まれる) ため。
規模ベースでは床固の現場数はもっと多いはずだが本データでは表現されない。
図 3: 告示年別ヒスト + 規模散布 (高さ × 延長, log-log)
なぜこの図か: 法施行 (1897) 後 127 年の時系列で施設整備のリズムを読みつつ、
規模散布図から「渓流保全工の物理的スケール」 を工種別に把握する。
1897 年 (砂防法施行) と 2018 年 (西日本豪雨) を縦線でマーキング。
規模は log-log 軸で3 桁オーダーの広がりを読む。
この図から読み取れること:
- 左ヒスト: 告示年範囲は 1909-2024、
中央値 1967 年。1960-1980 年代に厚い山が見える →
H3 (1965-1975 集中整備) を強支持。
高度経済成長期 (1960-1975) に集中、その後も維持期として継続。
- 砂防法 1897 (赤縦線) は三法の中で最も古い。
地すべり 1958 (L57) や急傾斜 1969 (L56) の半世紀以上前から整備されており、
時系列の厚みが本記事のデータの大きな特徴。
- 2018 西日本豪雨 (橙縦線) 後、新規告示は微増 = 災害契機での新規指定が緩やか。
渓流保全工は連続的整備が必要な性質のため、災害ピークで急増しない。
- 右散布 (規模 高さ H × 延長 L, log-log): 3 桁オーダーの広がり。
高さ H = 0.1〜117 m、延長 L = 0.5〜6,114 m。
多くは H = 1-3 m, L = 10-200 m の中規模工事。
- 工種別に色が分かれる: 護岸工 (青) は L 軸の右上 (= 長い)、
床固工 (赤) は H 軸の上部 (= 高い堰堤) のように物理的属性で分離。
工種が違う = 物理規模が違う、という機能と寸法の対応が散布図で確認できる。
- 最大規模 H = 117 m は異常値 (= 床固工ではなく堰堤的な大規模構造物の可能性)、
最大 L = 6,114 m は流路工の長距離整備区間。
- 高さ記録あり 1,545 件 / 延長記録あり 1,843 件 で
規模データの記録率は高い (護岸工は H が記録されない場合あり)。
L56・L57 にない定量的物理属性が L58 の特長。
図 4: 工種別 small multiples マップ (上位 6 工種)
なぜこの図か: 工種ごとに地理パターンが異なるかを直感的に読む。
護岸工と流路工は地理的に補完か共立か?
床固工と暗渠工は特定地域に偏るのか?
6 panels × 同じ県地図で工種別の分布を比較する可視化。
この図から読み取れること:
- 護岸工 (974 件 = 52%): 県内全域に最も広く分散。
渓流の岸補強は地理を選ばない普遍的工事。
呉市・三次市・尾道市等の Top 市町すべてで多数。
- 流路工 (755 件 = 41%): 護岸工とほぼ同じ地理だが、
沿岸都市 (呉市・尾道市) でやや多い。
これは沿岸都市の渓流が勾配急 + 短いため底張り (流路工) を要するため。
- 流路工内床固工 (91 件): 流路工と地理が一致するが件数は少ない。
床固工は流路工に組込まれるサブ要素として記録される。
- 暗渠工 (32 件): 呉市・尾道市・福山市等の沿岸市街地に偏在。
市街化進展で地表水路を地下化した工事 = 都市化の歴史的痕跡。
内陸中山間にはほとんど存在しない。
- 山腹工 (6 件): 中山間市町に少数。渓岸斜面の植生・編柵安定化は限定的工種。
地すべり防止 (L57) との境界が曖昧で、本データではあまり記録されない。
- 単独床固工 (2 件): 例外的少数。本来は砂防堰堤として別データセットに記録されるべきだが、
渓流保全工の付帯として僅かに含まれている。
- 各 panel の地理的差異から、工種は単なる施設分類ではなく地形・都市化との対応関数であることが分かる。
暗渠工=市街化、山腹工=自然渓岸 のように、工種ごとに整備の文脈が異なる。
表: 全体サマリ (3 RQ 統合)
| 指標 | 値 |
|---|
| 総施設数 | 1,862 LineString (全 29 市町) |
| 総延長 | 345 km (= 345 km、記録 length 列の合算) |
| Top 1 市町 | 呉市 264 件 (14.2%) |
| Top 3 累計 | 呉市+三次市+尾道市 計 506 件 (27.2%) |
| 工種: 護岸工 | 974 件 (52.3%) |
| 工種: 流路工 | 755 件 (40.5%) |
| 工種: 床固工系 | 93 件 (流路工内 + 単独) |
| 工種: 護岸+流路 | 1,729 件 (92.9%) |
| 水系群: 1 級 | 869 件 (46.7%) |
| 水系群: 2 級 | 485 件 (26.0%) |
| 水系群: その他 | 506 件 (27.2%) |
| 告示年範囲 | 1909–2024 (中央値 1967 年) |
| 告示年 欠損 | 901 件 (48.4%) |
| 延長 (記録 length) | 平均 187 m / 中央値 56 m / 最大 6,114 m |
| 高さ H (床固/堰堤) | 平均 2.05 m / 中央値 1.70 m / 最大 117.0 m / 記録あり 1,545 件 |
| L46 #55 砂防指定地 | 3,207 polygon / 合計 17,551 ha |
| 指定地内 渓流保全工 | 1,772 件 (95.2%) |
| 告示番号 1-1 対応 | 214 件 |
| L56 急傾斜防止施設 (参考) | 2,508 件 (点) |
| L57 地すべり防止施設 (参考) | 32 件 (面) |
| 砂防三施設族 合計 | 4,402 件 (L56+L57+L58) |
| L56 vs L58 件数 Pearson r | 0.757 |
| L57 vs L58 件数 Pearson r | 0.240 |
この表から読み取れること: 全 1,862 LineString の基本統計、Top 3 で 27% のバランス型分布、工種は護岸+流路で 93%、指定地内整備率 95%、砂防三施設族合計 4,402 件、など 3 RQ の核心指標が 20 行に集約された統合サマリ。
表: 市町別ランキング
| 順位 | 市町名 | 件数 | シェア_% | 合計延長_km | 平均延長_m | 平均高さ_m | 護岸 | 流路 | 床固 | 暗渠 | 告示年中央 |
|---|
| 1 | 呉市 | 264 | 14.2 | 39.0 | 147.7 | 1.69 | 111 | 145 | 1 | 7 | 1,966 |
| 2 | 三次市 | 129 | 6.93 | 30.1 | 233.4 | 2.03 | 95 | 22 | 12 | 0 | 1,969 |
| 3 | 尾道市 | 113 | 6.07 | 20.2 | 185.5 | 3.48 | 84 | 21 | 5 | 2 | 1,968 |
| 4 | 広島市安佐北区 | 107 | 5.75 | 22.0 | 209.4 | 2.11 | 61 | 40 | 2 | 3 | 1,965 |
| 5 | 三原市 | 106 | 5.69 | 30.4 | 286.5 | 2.46 | 84 | 18 | 2 | 1 | 1,968 |
| 6 | 庄原市 | 102 | 5.48 | 13.0 | 127.3 | 2.21 | 69 | 33 | 0 | 0 | 1,972 |
| 7 | 東広島市 | 98 | 5.26 | 43.9 | 457.0 | 1.98 | 57 | 40 | 0 | 1 | 1,956 |
| 8 | 廿日市市 | 96 | 5.16 | 10.3 | 108.5 | 2.15 | 46 | 42 | 7 | 1 | 1,968 |
| 9 | 江田島市 | 80 | 4.30 | 4.00 | 51.2 | 1.55 | 26 | 12 | 37 | 4 | 2,008 |
| 10 | 安芸太田町 | 79 | 4.24 | 12.8 | 162.3 | 2.42 | 50 | 27 | 2 | 0 | 1,984 |
| 11 | 竹原市 | 70 | 3.76 | 14.2 | 202.2 | 2.01 | 36 | 34 | 0 | 0 | 1,960 |
| 12 | 福山市 | 69 | 3.71 | 2.40 | 35.9 | 1.85 | 15 | 47 | 5 | 1 | 1,965 |
| 13 | 広島市佐伯区 | 63 | 3.38 | 4.60 | 73.7 | 2.06 | 18 | 34 | 8 | 2 | 2,001 |
| 14 | 安芸高田市 | 62 | 3.33 | 5.10 | 82.0 | 1.93 | 40 | 19 | 2 | 1 | 1,951 |
| 15 | 広島市安芸区 | 54 | 2.90 | 1.60 | 29.1 | 1.53 | 28 | 21 | 2 | 3 | 1,959 |
| 16 | 世羅町 | 52 | 2.79 | 12.1 | 233.2 | 1.59 | 20 | 29 | 0 | 3 | 1,934 |
| 17 | 府中市 | 41 | 2.20 | 1.20 | 29.7 | 1.93 | 19 | 20 | 0 | 2 | 1,967 |
| 18 | 北広島町 | 41 | 2.20 | 33.2 | 808.8 | 2.04 | 36 | 5 | 0 | 0 | 1,963 |
| 19 | 大崎上島町 | 40 | 2.15 | 5.60 | 143.8 | 4.71 | 14 | 26 | 0 | 0 | 1,966 |
| 20 | 大竹市 | 38 | 2.04 | 2.50 | 65.9 | 2.28 | 21 | 16 | 1 | 0 | 1,952 |
この表から読み取れること: 各市町の件数・延長・平均高さ・工種別内訳・告示年中央が一覧。呉市単独で 14.2% (沿岸都市)、三次市 (中山間) と 尾道市 (沿岸) が続く沿岸+中山間バランス型分布。延長を見ると 1 件あたりの規模が市町で異なる (都市部短い vs 中山間長い) ことが分かる。
表: 工種別構成 (8 種)
| 工種 | 件数 | シェア_% |
|---|
| 護岸工 | 974 | 52.3 |
| 流路工 | 755 | 40.5 |
| 流路工内床固工 | 91 | 4.89 |
| 暗渠工 | 32 | 1.72 |
| 山腹工 | 6 | 0.320 |
| 単独床固工 | 2 | 0.110 |
| 沈砂池 | 1 | 0.050 |
| 流路工+護岸工 | 1 | 0.050 |
この表から読み取れること: 護岸工 52.3% と流路工 40.5% の2 工種で 92.9%を占める。床固工系は流路工に組込まれて記録されるため単独件数は少ない。渓流保全の中心は河岸補強と河床整形という基本的工事。
表: 構造別 Top 10 (76 種中)
| 構造 | 件数 | シェア_% |
|---|
| コンクリート | 552 | 29.6 |
| 不明 | 260 | 14.0 |
| ブロック積 | 241 | 12.9 |
| 空石積 | 157 | 8.43 |
| 自然護岸(土) | 151 | 8.11 |
| 練石積 | 124 | 6.66 |
| ブロック | 81 | 4.35 |
| 自然護岸 | 70 | 3.76 |
| 重力式コンクリート | 55 | 2.95 |
| 石積 | 28 | 1.50 |
この表から読み取れること: コンクリート (29.0%) ・ ブロック積 (12.2%) ・ 空石積 (8.4%) ・ 自然護岸 (土) (7.3%) が Top 4。コンクリート系 (= ブロック・コンクリート) が約 50%、伝統的石積系 (= 練石積・空石積) が 約 16%、自然系 (土・植生) が約 8% と3 系統が共存する。古い工事は石積系、新しい工事はコンクリート系の世代交代が示唆される。
表: 告示年代別件数 (10 年区間)
| 告示年代 | 件数 | シェア_% |
|---|
| 1,900 | 1.00 | 0.100 |
| 1,910 | 4.00 | 0.420 |
| 1,920 | 5.00 | 0.520 |
| 1,930 | 114.0 | 11.9 |
| 1,940 | 55.0 | 5.72 |
| 1,950 | 145.0 | 15.1 |
| 1,960 | 226.0 | 23.5 |
| 1,970 | 120.0 | 12.5 |
| 1,980 | 85.0 | 8.84 |
| 1,990 | 59.0 | 6.14 |
| 2,000 | 57.0 | 5.93 |
| 2,010 | 37.0 | 3.85 |
| 2,020 | 53.0 | 5.52 |
この表から読み取れること: 告示年代の分布。1960-1980 年代に厚い山、戦前 (1909-1939) も少数ながら存在 = 築 100 年超の渓流保全工が記録されている (砂防法 1897 = 三法最古制度の歴史的厚み)。
表: 告示時期別 3 区分
| 告示時期 | 件数 | シェア_% |
|---|
| 1909-1959 (戦前+戦後復興) | 324 | 33.7 |
| 1960-1989 (高度成長期 集中整備) | 431 | 44.9 |
| 1990-2024 (維持期) | 206 | 21.4 |
この表から読み取れること: 3 期分類で時代の重心が見える。1960-1989 高度成長期 集中整備期が最大シェア、1990 年代以降は維持期として継続。戦前+戦後復興期は少数だが歴史的価値が高い。
【RQ2】 L46 砂防指定地 (#55) との対応 — 指定地内整備率 95%
狙い (RQ2)
砂防法は砂防指定地 (3,207 polygon, L46 #55) と渓流保全工 (1,862 line, 本記事)
を対で運用する設計。
本 RQ2 では (1) 空間 sjoin で「渓流保全工の何 % が指定地内にあるか」、
(2) 告示番号での 1 対 1 直接照合、
(3) 市町別施設充足比率 (= 渓流保全工件数 / 指定地件数) で、
「指定地内整備済」 と 「指定地あり + 渓流保全工なし」 (未整備残課題) を
初めて市町別に同定する。
指定地が施設の 72% 多い (3,207 vs 1,862) ため、
未整備指定地は数百〜千件の規模で残る。
手法 (空間 sjoin + 告示番号 set 演算 + 市町別比率)
- STEP 1 (空間 sjoin intersect):
gpd.sjoin(facility, shitei, how='left',
predicate='intersects') で渓流保全工 LineString と砂防指定地 polygon の重なりを判定。
LineString が polygon に部分的にでも触れれば intersect = True。
- STEP 2 (告示番号 set 演算):
set(gdf['告示番号']) &
set(shitei['kokuzi_no']) で共通告示番号を抽出。
共通な告示番号 = 同じ告示で指定地と施設がセット指定された証拠。
- STEP 3 (市町別ギャップ集計): 各市町について「指定地数」 と「渓流保全工件数」 を outer merge し、
施設充足比率 = 渓流保全工 / 指定地 を計算。
1.0 で同件数、>1.0 で過剰整備、<1.0 で未整備残存。
- STEP 4 (指定地ごとの紐づき件数): 各指定地 polygon について「紐づく渓流保全工 line の数」 を集計。
0 = 未整備指定地、≥1 = 整備済指定地。
実装コード (空間 sjoin + 告示番号 set 演算 + 市町別比率)
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 | # RQ2: 砂防指定地 (L46 #55) vs 渓流保全工 (本データ #59) 空間照合
import geopandas as gpd, pandas as pd
# 1. L46 #55 砂防指定地 Shapefile を読込 (3,207 polygon)
shitei = gpd.read_file("data/extras/L46_sabo_designation/.../砂防指定地-ポリゴン.shp",
encoding="utf-8")
shitei = shitei.to_crs("EPSG:6671")
shitei["市町名"] = shitei["city"].apply(normalize_city)
shitei["面積_ha"] = shitei.geometry.area / 1e4
# 2. 空間 sjoin (渓流保全工 LineString が指定地 polygon と intersect)
fac_idx = gdf.assign(fac_id=range(len(gdf)))
shitei_idx = shitei.assign(zone_id=range(len(shitei)))
sj = gpd.sjoin(fac_idx, shitei_idx, how="left", predicate="intersects")
n_fac_in_shitei = sj.dropna(subset=["zone_id"])["fac_id"].nunique()
n_fac_outside = len(gdf) - n_fac_in_shitei
print(f"指定地内: {n_fac_in_shitei:,} / {len(gdf):,} = {n_fac_in_shitei/len(gdf)*100:.1f}%")
# 3. 告示番号での 1 対 1 直接照合
gdf_kn = gdf["告示番号"].dropna().astype(int)
shitei_kn = shitei["kokuzi_no"].dropna().astype(int)
kn_common = set(gdf_kn) & set(shitei_kn)
print(f"告示番号 1-1 対応: {len(kn_common):,} 件")
# 4. 市町別 充足比率
shitei_pc = shitei.groupby("市町名").size().reset_index(name="指定地数_55")
fac_pc = gdf.groupby("市町名").size().reset_index(name="渓流保全工_59")
svf = pd.merge(shitei_pc, fac_pc, on="市町名", how="outer").fillna(0)
svf["施設充足比率"] = (svf["渓流保全工_59"]
/ svf["指定地数_55"].replace(0, np.nan)).round(2)
# 5. 指定地ごとの紐づき件数 (= 整備済 / 未整備 の判定)
sj_with_zone = sj.dropna(subset=["zone_id"])
zone_fac_count = sj_with_zone.groupby("zone_id")["fac_id"].nunique()
zone_no_fac = len(shitei) - len(zone_fac_count) # 未整備指定地
print(f"未整備指定地: {zone_no_fac:,} / {len(shitei):,}")
|
図 5: 砂防指定地 (赤面 3,207) × 渓流保全工 (緑線 1,862) 重ね合わせ + 呉市拡大
なぜこの図か: 指定地 (面 3,207) と渓流保全工 (線 1,862) の空間整合性を 1 図で読む。
指定地は施設より 1.7 倍多いため、
「指定地はあるが施設なし」 の未整備残課題が地図上で赤の見えるエリアとして可視化される。
左の全県マップで全体を、右の Top 1 市町拡大で個別の対応を確認する。
この図から読み取れること:
- 左全県マップ: 赤 (指定地) が緑 (施設) より圧倒的に広く分布。
指定地 17,551 ha vs 施設 1,862 件 (面積換算は記録なし) =
指定地は整備候補地として広く設定され、施設整備はその一部を実現する運用パターン。
- 赤と緑が重なる地域 (= 整備済指定地) は呉市・三次市・尾道市等。
赤のみで緑がない地域 (= 未整備指定地) は1,021 件残存 →
「指定地ありだが渓流保全工なし」 残課題エリア。
- 右呉市拡大: 指定地 516 個に対し
渓流保全工 264 件。
両者がほぼ完全に重なり、呉市は整備が進んだ模範市町と言える。
- 指定地が大きい (面積 ha 単位) のは渓流流域全体をカバーするため。
渓流保全工は河床に沿った line なので1 指定地に複数 line が紐づくのが標準。
平均: 整備済指定地 1 件あたり1.2 件の渓流保全工が紐づく。
- 島嶼や沿岸市街地で赤も緑もない = 渓流自体がない地域。
砂防法の射程は本質的に渓流が走る地形に限られる。
- 指定地内 95% という高い包含率は、砂防指定地 = 渓流保全工が整備されるべき場所
という制度設計が地理的に守られている強い証拠。
図 6: 市町別 指定地 vs 渓流保全工 並列棒 + 施設充足比率 choropleth
なぜこの図か: 市町ごとの指定地と施設の整合性を 2 角度で読む。
左の並列棒で指定地 (赤) と施設 (緑) を市町別に並べて差を視覚化、
右の choropleth で施設充足比率 (= 施設 / 指定地) の地域差を色濃淡で示す。
比率 1.0 = 件数同等、< 1.0 = 未整備残存、> 1.0 = 過剰整備 (= 1 指定地に複数施設)。
この図から読み取れること:
- 全県: 指定地 3,207 件 / 渓流保全工 1,862 件 → 比 1:0.58。
指定地が施設の 1.7 倍多い = 整備が追いついていない構図。
一方空間内包含率 95.2% →
H4 (指定地内整備率 ≥ 80%) を強支持。
「指定地は広く先行設定 + 施設は順次整備」 の制度パターンが明らか。
- 左並列棒: 多くの市町で赤 (指定地) > 緑 (施設)。
最大ギャップは 呉市等 (指定地 516 vs
渓流保全工 264)。
2018 西日本豪雨被災地でも整備が追いつかない実態を反映。
- 右 choropleth: 充足比率の地域差が一目で見える。
緑 (≥1.0) = 施設 ≥ 指定地で整備充足、赤 (<0.5) = 整備不足が顕著。
庄原市・神石高原町等の中山間で赤系 = 広大な指定地に対し施設整備が遅れている。
- 告示番号 1-1 一致 214 件 →
指定地と施設は同じ告示でセット指定された制度的双子。
これは充足比率が一定値に収束する制度的根拠を示す。
- (該当なし)等は
指定地あり + 渓流保全工 0 件の市町 = 制度上の指定はあるが整備未着手のケース。
ただし極めて少数 (0 市町) で、ほぼすべての対象市町で何らかの整備が進む。
- 指定地の方が施設より多いのは、L57 (区域 39 vs 施設 32) と同じ「設計 > 実装」の構図。
L56 (区域 2,935 vs 施設 2,508) も同様。三制度すべてで区域が施設を上回るのは制度的恒等性。
表: 砂防指定地 (#55) vs 渓流保全工 (#59) 市町別ギャップ Top 15
| 順位 | 市町名 | 指定地数_55 | 渓流保全工_59 | 施設充足比率 |
|---|
| 1 | 呉市 | 516 | 264 | 0.510 |
| 2 | 広島市安佐北区 | 201 | 107 | 0.530 |
| 3 | 三次市 | 184 | 129 | 0.700 |
| 4 | 広島市安佐南区 | 183 | 38 | 0.210 |
| 5 | 広島市佐伯区 | 149 | 63 | 0.420 |
| 6 | 庄原市 | 147 | 102 | 0.690 |
| 7 | 三原市 | 144 | 106 | 0.740 |
| 8 | 尾道市 | 139 | 113 | 0.810 |
| 9 | 廿日市市 | 137 | 96 | 0.700 |
| 10 | 東広島市 | 131 | 98 | 0.750 |
| 11 | 福山市 | 121 | 69 | 0.570 |
| 12 | 竹原市 | 116 | 70 | 0.600 |
| 13 | 安芸太田町 | 112 | 79 | 0.710 |
| 14 | 江田島市 | 103 | 80 | 0.780 |
| 15 | 広島市安芸区 | 103 | 54 | 0.520 |
この表から読み取れること: 指定地・施設の市町別件数と充足比率の一覧。全県充足比率 0.58 (= 施設 1,862 ÷ 指定地 3,207)、上位 3 市町 (呉市+三次市+尾道市) で施設 506 件と圧倒的シェア。充足比率 < 1.0 の市町は「指定地多 + 施設整備が追いつかない」 残課題エリア。充足比率 > 1.0 の市町は「1 指定地に複数施設」 の整備充足エリア。
【RQ3】 砂防三施設族 (L56+L57+L58) 総合構造 — 計 4,402 件
狙い (RQ3)
砂防三施設族 (L56 + L57 + L58) の合計4,402 件を市町別に統合し、
「広島県の砂防投資の地理学」の総合像を初めて描く。
(1) 三制度の規模比 (L56 2,508 : L57 32 : L58 1,862 = 57 : 1 : 42)、
(2) 法施行年代 (1897 / 1958 / 1969) と整備時代の関係、
(3) 三角座標プロット (L56-L57-L58 シェア) で各市町の砂防戦略タイプを分類、
(4) 三制度の市町別 Pearson 相関、を 1 セットで可視化する。
手法 (三施設 outer merge + 重心三角座標 + Pearson r)
- STEP 1 (三施設 outer merge): L56 / L57 / L58 の市町別件数を
pd.merge(L56, L57, L58, on='市町名', how='outer') で 3 段 merge。
合計列「三施設合計」 を新設。
- STEP 2 (シェア計算): 各市町について市町内シェア
(= L56 件数 / 三施設合計 × 100 等) を計算。
これは「県全体での L56 シェア」 ではなく「その市町の砂防投資のうち何 % が L56 か」を示す。
- STEP 3 (砂防戦略タイプ分類): 市町内シェアから 5 タイプに分類:
急傾斜特化型 (L56 ≥ 60%) / 地すべり主導型 (L57 ≥ 30%) /
渓流主導型 (L58 ≥ 50%) / 急傾斜+渓流バランス型 (L56 ≥ 40 かつ L58 ≥ 30) / 混合型。
- STEP 4 (重心三角座標プロット): 3 シェアを 2D に投影。
L56 = 左下頂点 / L58 = 右下頂点 / L57 = 上頂点 の正三角形内に各市町を散布。
座標変換:
x = 0.5 × (2 × s58 + s57) / 100, y = s57 × √3 / 2 / 100。
頂点に近い市町 = 特化型、中央付近 = 混合型。
- STEP 5 (Pearson r): 三制度の市町別件数の相関を計算。
r ≈ 0 や負相関 = 地理逆転、r > 0.5 = 共立を示す。
実装コード (三施設 outer merge + 重心三角座標 + Pearson r)
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 | # RQ3: 砂防三施設族 (L56 + L57 + L58) の総合構造
import pandas as pd, numpy as np
# 1. 三施設の市町別件数を outer merge
fac_l58 = gdf.groupby("市町名").size().reset_index(name="L58_渓流保全工")
city_l56 = pd.read_csv("lessons/assets/L56_city_ranking.csv", encoding="utf-8-sig")
city_l57 = pd.read_csv("lessons/assets/L57_city_ranking.csv", encoding="utf-8-sig")
l56 = city_l56[["市町名","件数"]].rename(columns={"件数":"L56_急傾斜施設"})
l57 = city_l57[["市町名","件数"]].rename(columns={"件数":"L57_地すべり施設"})
triple = fac_l58.merge(l56, on="市町名", how="outer").merge(
l57, on="市町名", how="outer").fillna(0)
triple["三施設合計"] = (triple["L56_急傾斜施設"] + triple["L57_地すべり施設"]
+ triple["L58_渓流保全工"])
# 2. 市町内シェア計算
def safe_div(a, b): return (a / b * 100) if b > 0 else 0
triple["L56_市町内_%"] = triple.apply(lambda r:
safe_div(r["L56_急傾斜施設"], r["三施設合計"]), axis=1).round(1)
triple["L57_市町内_%"] = triple.apply(lambda r:
safe_div(r["L57_地すべり施設"], r["三施設合計"]), axis=1).round(1)
triple["L58_市町内_%"] = triple.apply(lambda r:
safe_div(r["L58_渓流保全工"], r["三施設合計"]), axis=1).round(1)
# 3. 砂防戦略タイプ分類
def classify_type(r):
s56, s57, s58 = r["L56_市町内_%"], r["L57_市町内_%"], r["L58_市町内_%"]
if s56 >= 60: return "急傾斜特化型"
if s57 >= 30: return "地すべり主導型"
if s58 >= 50: return "渓流主導型"
if s56 >= 40 and s58 >= 30: return "急傾斜+渓流バランス型"
return "混合型"
triple["砂防戦略タイプ"] = triple.apply(classify_type, axis=1)
# 4. 重心三角座標 (3 シェア → 2D)
def to_xy(s56, s57, s58):
"""L56 を左下, L58 を右下, L57 を上頂点に配置"""
total = s56 + s57 + s58 + 1e-9
x = 0.5 * (2 * s58 + s57) / total
y = (s57 * np.sqrt(3) / 2) / total
return x, y
# 5. 三制度の Pearson 相関
valid = triple[(triple["L56_急傾斜施設"] + triple["L57_地すべり施設"]
+ triple["L58_渓流保全工"]) > 0]
corr_56_58 = valid["L56_急傾斜施設"].corr(valid["L58_渓流保全工"])
corr_57_58 = valid["L57_地すべり施設"].corr(valid["L58_渓流保全工"])
print(f"L56 vs L58 r = {corr_56_58:.3f} / L57 vs L58 r = {corr_57_58:.3f}")
|
図 7: 砂防三施設族 (L56 点 + L57 面 + L58 線) 重ね合わせ全県マップ
なぜこの図か: 三施設族の地理的全体像を 1 枚の地図で示す。
L58 (本記事) を緑線、L57 を紫面、L56 を青ドットで重ね、
3 制度・3 形態が県内でどう配分されているかを一覧する。
これは制度・現象・地形・施設形態が四位一体で対応する防災工学の地理学的本質を示す画。
この図から読み取れること:
- マップ上に3 形態の施設が重なる: 緑線 (1,862) ・ 紫面 (32) ・ 青点 (2,508)。
合計 4,402 件、点と線と面の三重構造で県の砂防投資が描かれる。
- 沿岸都市 (呉市・尾道・福山・廿日市): 青ドット密集 + 緑線多数 + 紫面ゼロ →
急傾斜+渓流バランス型。沿岸の急斜面下に人家密集 + 短い急勾配渓流が共存。
- 中山間 (三次・庄原・安芸太田・神石高原): 緑線 + 紫面が共存、青点は中位 →
地すべり+渓流型。地すべり地形 + 渓流が共立する第三紀堆積岩地帯。
- 島嶼 (江田島・大崎上島): 青点のみ密集、緑線+紫面はほぼなし →
急傾斜特化型。島嶼は渓流が小さく地すべり地形なしで急傾斜のみ。
- マップ全体で緑線 (L58) が最多 1,862 = 砂防三施設族の中心。
渓流は地形を選ばず存在するため線データの密度が最高。
- L56 (青点) と L58 (緑線) が重なる地域 = 沿岸都市の急斜面下渓流。
L57 (紫面) と L58 (緑線) が重なる地域 = 中山間の地すべり地形を流れる渓流。
「制度の重なり」 = 「現象の重なり」として地理的に読み取れる。
- このマップは「広島県の砂防投資の地理学」 そのものを 1 枚で示す画で、
防災投資の地理学を理解する上での総合的レファレンス。
図 8: 三角座標 (L56-L57-L58 市町内シェア) + 市町別 stacked 棒 (Top 15)
なぜこの図か: 図 7 の地理を市町単位の数値に変換。
左の三角座標で各市町を 3 シェアの比で散布図化し、砂防戦略タイプに分類、
右のstacked 棒で Top 15 市町の三施設構成を絶対件数で並べる。
左で「タイプ」、右で「規模」 を読む 2 段階構造。
この図から読み取れること:
- 左三角座標: 各市町が 3 制度の比で散布される。
左下隅 (急傾斜特化) = L56 主導、右下隅 (渓流主導) = L58 主導、
上頂点 (地すべり主導) = L57 主導、中央 = 混合型。
砂防戦略タイプ分布: 渓流主導型 16市町, 急傾斜特化型 9市町, 急傾斜+渓流バランス型 5市町 →
H5 (地形依存配分) を強支持。
- 呉市 = 急傾斜特化型 (L56:L57:L58 = 82:0:18): 急傾斜地法 1969 が支配する沿岸都市の典型。
L57 はゼロ件で三角形の左下隅に位置。
- 三次市 = 渓流主導型 (L56:L57:L58 = 21:2:77): 中山間で渓流保全工 + 地すべり防止が共立する典型。
L56 (急傾斜) は中位で、三角形の中央〜上寄りに位置。
- 尾道市 = 急傾斜+渓流バランス型 (L56:L57:L58 = 53:1:46): 沿岸都市の渓流主導タイプ。
L56 と L58 が共立し三角形の下辺中央付近に位置。
- 庄原市 = 渓流主導型 (L56:L57:L58 = 18:7:76): 地すべり主導の例外的中山間市町。
L57 単独 1 位 (28%) で三角形の上頂点に近い。
- 江田島市 = 急傾斜+渓流バランス型 (L56:L57:L58 = 58:0:42): 島嶼急傾斜特化型。
L56 のみで三角形の左下頂点に強く張り付く。
- 右 stacked 棒: Top 15 市町の三施設合計を絶対件数で並べる。
呉市 (青>緑、合計 1,441 件)が圧倒的 1 位、
次に 三次市・尾道市等が続く。
- 三制度の Pearson 相関: L56 vs L58 r = 0.757 (弱〜中) /
L57 vs L58 r = 0.240。
L58 (渓流) は L56 (急傾斜) と弱い正の関係 (沿岸都市で共立) があるが、
L57 (地すべり) とは独立に近い (= 地すべりは特殊地質依存)。
- 三制度合計 4,402 件は広島県の砂防投資の総量。
法施行年代 (1897 / 1958 / 1969) と整備時代の対応を見ると、
L58 (砂防 1897) が最古で告示中央 1967 年、
L56 (急傾斜 1969) は中央 1985 年、L57 (地すべり 1958) は中央 1986 年と、
古い法律が古い告示で整備されてきた歴史的厚みが読み取れる。
表: 砂防三施設族 市町別 Top 15
| 市町名 | L56_急傾斜施設 | L57_地すべり施設 | L58_渓流保全工 | 三施設合計 | L56_市町内_% | L57_市町内_% | L58_市町内_% | 砂防戦略タイプ |
|---|
| 呉市 | 1177 | 0 | 264 | 1441 | 81.7 | 0.000 | 18.3 | 急傾斜特化型 |
| 尾道市 | 129 | 2 | 113 | 244 | 52.9 | 0.800 | 46.3 | 急傾斜+渓流バランス型 |
| 江田島市 | 113 | 0 | 80 | 193 | 58.5 | 0.000 | 41.5 | 急傾斜+渓流バランス型 |
| 福山市 | 114 | 7 | 69 | 190 | 60.0 | 3.70 | 36.3 | 急傾斜特化型 |
| 廿日市市 | 92 | 1 | 96 | 189 | 48.7 | 0.500 | 50.8 | 渓流主導型 |
| 三次市 | 35 | 3 | 129 | 167 | 21.0 | 1.80 | 77.2 | 渓流主導型 |
| 三原市 | 60 | 0 | 106 | 166 | 36.1 | 0.000 | 63.9 | 渓流主導型 |
| 東広島市 | 47 | 1 | 98 | 146 | 32.2 | 0.700 | 67.1 | 渓流主導型 |
| 庄原市 | 24 | 9 | 102 | 135 | 17.8 | 6.70 | 75.6 | 渓流主導型 |
| 広島市安佐北区 | 26 | 0 | 107 | 133 | 19.5 | 0.000 | 80.5 | 渓流主導型 |
| 竹原市 | 63 | 0 | 70 | 133 | 47.4 | 0.000 | 52.6 | 渓流主導型 |
| 広島市安芸区 | 78 | 0 | 54 | 132 | 59.1 | 0.000 | 40.9 | 急傾斜+渓流バランス型 |
| 安芸太田町 | 49 | 3 | 79 | 131 | 37.4 | 2.30 | 60.3 | 渓流主導型 |
| 広島市佐伯区 | 47 | 4 | 63 | 114 | 41.2 | 3.50 | 55.3 | 渓流主導型 |
| 大崎上島町 | 68 | 0 | 40 | 108 | 63.0 | 0.000 | 37.0 | 急傾斜特化型 |
この表から読み取れること: 各市町の L56・L57・L58 件数 + 市町内シェア + 砂防戦略タイプ。呉市は急傾斜+渓流バランス型 (L56 圧倒的、L58 多)、三次市・尾道市は急傾斜+渓流バランス型、庄原市は地すべり主導型 (L57 28%) と分類される。砂防戦略タイプは地形・地質で予測可能 = H5 を支持する 1 表的証拠。
表: 砂防三法対応総括
| 法律 | 施行年 | L番号 | 施設タイプ | 県内施設件数 | シェア_% | 告示年中央 | 代表工種 |
|---|
| 砂防法 | 1897 | L58 (本記事) | 渓流保全工 (LineString) | 1862 | 42.3 | 1967 | 護岸工 974 + 流路工 755 |
| 地すべり等防止法 | 1958 | L57 | 地すべり防止施設 (面) | 32 | 0.700 | 1985 | 集水井 + 横ボーリング + 抑止杭 |
| 急傾斜地法 | 1969 | L56 | 急傾斜地崩壊防止施設 (点) | 2508 | 57.0 | 1992 | 擁壁 + 法枠 + アンカー |
この表から読み取れること: 1897 / 1958 / 1969 と72 年スパンで段階的に整備された砂防三法。本記事 (L58 砂防 1897) は最古制度で件数最多 (1,862 件 = 三施設族の 42%)、L57 (地すべり 1958) は最少 32 件、L56 (急傾斜 1969) は中規模 2,508 件。古い法律 = 普遍現象 = 件数大、新しい法律 = 特殊現象 = 件数小という関係が読み取れる。
仮説検証総合
本記事の 5 仮説と観測結果の照合:
| 仮説 | 予想 | 観測 | 判定 |
|---|
| H1 (バランス型分布, Top 3 ≤ 30%, RQ1) | Top 3 市町で 30% 以下 (沿岸・中山間両方に分散) | Top 3 = 呉市+三次市+尾道市 で計 27.2% | 強支持 |
| H2 (護岸+流路で >90%, RQ1) | 工種 8 種のうち護岸工 + 流路工で 90% 以上 | 護岸 974 (52.3%) + 流路 755 (40.5%) = 92.9% | 強支持 |
| H3 (1960-75 集中整備, RQ1) | 告示年中央値が 1965-1975 年 (高度経済成長期) | 中央値 1967 年 / 範囲 1909-2024 | 強支持 |
| H4 (砂防指定地内整備率 ≥ 80%, RQ2) | 渓流保全工の大半 (≥80%) が指定地内に存在 | 指定地内: 1,772 / 1,862 = 95.2% / 指定地外: 90 件 / 告示番号一致 214 | 強支持 |
| H5 (三施設族の市町別配分は地形で決まる, RQ3) | 各市町の砂防戦略タイプは地形・地質で分類可能 (混合型は少数派) | 三施設族 4,402 件、30 / 30 市町が特化型 / L56-L58 r=0.757, L57-L58 r=0.240 | 強支持 |
3 RQ × 3 結論
- RQ1 結論: 渓流保全工は 1,862 LineString / 29 市町 / 総延長 345 kmで、Top 3 市町で 27% のバランス型分布。工種は護岸工 52% + 流路工 41% = 93%に集中、告示年中央値 1967 年で高度経済成長期 (1960-1980) がピーク。規模は高さ平均 2.0 m × 延長平均 187 m の中規模工事が主体。L56 (沿岸特化) や L57 (中山間特化) と異なる地形横断型分布。
- RQ2 結論: #55 砂防指定地 (3,207 件) vs #59 渓流保全工 (1,862 件) の指定地内整備率 95%、件数比 1:0.58。告示番号で 1-1 対応 214 件、未整備指定地 1,021 件が残存。指定地 = 整備されるべき場所、渓流保全工 = 実際に整備された場所、の関係が制度設計通り運用されている。「設計が実装を 42% 上回る」 砂防三制度共通の構図を渓流保全工でも確認。
- RQ3 結論: 砂防三施設族の合計 4,402 件 (L56:L57:L58 = 57:1:42)。市町別 Pearson r: L56-L58 = 0.757 (弱正)、L57-L58 = 0.240 (独立)。砂防戦略タイプは渓流主導型 16市町, 急傾斜特化型 9市町, 急傾斜+渓流バランス型 5市町に分類でき、地形・地質で予測可能。三角座標プロットで各市町の砂防戦略が可視化された。県の砂防投資は3 制度・3 現象・3 地形類型の総合体として運用されている事実を実データで裏付けた。
砂防三法 (砂防 / 地すべり / 急傾斜) の制度・施設・地理の対応
| 法律 | 施行年 | L番号 | 施設タイプ | 県内施設件数 | シェア_% | 告示年中央 | 代表工種 |
|---|
| 砂防法 | 1897 | L58 (本記事) | 渓流保全工 (LineString) | 1862 | 42.3 | 1967 | 護岸工 974 + 流路工 755 |
| 地すべり等防止法 | 1958 | L57 | 地すべり防止施設 (面) | 32 | 0.700 | 1985 | 集水井 + 横ボーリング + 抑止杭 |
| 急傾斜地法 | 1969 | L56 | 急傾斜地崩壊防止施設 (点) | 2508 | 57.0 | 1992 | 擁壁 + 法枠 + アンカー |
この表から読み取れること: 砂防三法は1897 年 (砂防) → 1958 年 (地すべり) → 1969 年 (急傾斜)と72 年スパンで段階的に整備された。三制度の県内施設件数はL58 1,862 > L56 2,508 > L57 32 で、最古制度 (砂防) が最大件数 = 渓流の地理的普遍性を反映。本記事 (L58) は L46 (区域 = 制度起点) と L56 (急傾斜施設) ・ L57 (地すべり施設) と並ぶ砂防三施設族の最終ピースとして機能し、これで広島県の砂防投資の地理学が初めて完成形で描けた。
発展課題
結果 X → 新仮説 Y → 課題 Z (3 RQ × 1 課題以上)
発展課題 1 (RQ1 由来): 構造種別 76 種の分類とコンクリート率の地理
- 結果 X: 本データには構造列に 76 種類の値がある。
コンクリート 539 / ブロック積 228 / 空石積 157 / 自然護岸 (土) 135 / 練石積 124 等の Top 5 で全体の 70% を占めるが、
残り 71 種は少数。古い工事は石積系・新しい工事はコンクリート系と推察できるが未検証。
- 新仮説 Y: 構造種別は告示年代で明確に変化しているはず。
戦前 (1909-1945) は空石積・練石積が主流、
戦後復興期 (1946-1965) はブロック積、
1970-1980 年代はコンクリート、
1990 年代以降は自然護岸 (環境配慮) という世代交代が観測されるはず。
- 課題 Z: 構造列を「石積系・ブロック積系・コンクリート系・自然系」 の 4 大カテゴリに集約し、
告示年代別 × 大カテゴリのクロス集計で世代交代を検証する。
可視化はMarimekko 図 (面積=件数の比例) で時代×構造の遷移を 1 枚で読む。
環境配慮への転換時期が特定できれば防災工学史の研究に発展可能。
発展課題 2 (RQ1 由来): 規模分布と工種の対応 (高さ × 延長の階層クラスタリング)
- 結果 X: 高さ × 延長の散布図 (図 3b) で工種別の物理スケールに差異が見えた。
しかし定量的なクラスタリングは未実施。
工種が同じでも規模で複数のサブグループが存在する可能性。
- 新仮説 Y: 護岸工は H × L 平面で3 サブグループに分かれるはず:
(1) 都市部小規模 (H<1m, L<50m) = 暗渠化前段の応急護岸、
(2) 中山間中規模 (H=1-3m, L=50-300m) = 標準的護岸工、
(3) 大規模 (H>3m, L>300m) = 主要河川の長距離整備。
これらは整備時代と地域性で説明できるはず。
- 課題 Z:
scipy.cluster.hierarchy で階層クラスタリングを行い、
工種ごとに 3-5 サブグループを自動分離。各クラスタの中心市町・告示年代を集計し、
工種内の物理的多様性を体系化する。
機械学習教材として scipy + scikit-learn の応用に展開可能。
発展課題 3 (RQ2 由来): 未整備指定地の優先順位リスト作成
- 結果 X: 砂防指定地 3,207 件のうち、渓流保全工が紐づかない指定地が
1,021 件残存。
これらは「指定地ありだが施設なし」 の未整備残課題だが、
どれを優先すべきかの判断材料は未収集。
- 新仮説 Y: 未整備指定地のうち、下流に人家・避難所が密集するものは
整備優先度が高いはず。L11 三重ハザード重ね合わせや L4 文化財近接で
被害想定を組合せれば、定量的な優先順位スコアが作れる。
- 課題 Z: 各未整備指定地 polygon について、
(1) 最近接の避難所までの距離 (L7), (2) 1km 圏の人口 (L22),
(3) 文化財数 (L4), (4) 浸水深ハザード (L7) を結合し、
「下流被害想定スコア」 で優先順位付け。
防災行政の事業優先順位リスト作成に直結する応用研究。
発展課題 4 (RQ3 由来): 砂防三施設族 × 区域三制度の 6 軸統合分析
- 結果 X: 本記事は施設 3 制度 (L56 + L57 + L58) を統合したが、
対応する区域指定 (L46 #55 + #56 + #57) はバラバラに扱った。
施設 + 区域 = 6 制度を市町単位で統合する分析は未実施。
- 新仮説 Y: 施設整備は区域指定の後追いになるため、
「区域多 + 施設少」 = 整備遅れ市町、「区域少 + 施設多」 = 整備過剰市町という
整備進捗マトリクスが市町別に作れるはず。
整備遅れ市町は将来の防災投資の主舞台。
- 課題 Z: 6 制度の市町別件数を 6 軸 PCA 分析し、
第 1 主成分で「砂防投資量」、第 2 主成分で「施設 / 区域 比率」 を抽出。
市町を 4 象限に分類し、「整備遅れ市町ランキング」 を作成。
L46 と本記事を統合した広島県砂防制度の総合分析として完成形。
発展課題 5 (時系列): 古い渓流保全工 (戦前+戦後復興期) の保全
- 結果 X: 告示年範囲は 1909-2024。
最古の告示は1909 年 (明治末期)で、
築 100 年超の渓流保全工が存在。これらは石積・練石積などの歴史的構造物として
文化財的価値を持つ可能性。
- 新仮説 Y: 戦前 (1909-1945) 整備の渓流保全工は当時の石工技術の粋で、
昭和コンクリートとは異なる地域固有の石材文化を体現する。
これらを砂防遺産として再評価し、観光・教育資源化する研究が成立するはず。
- 課題 Z: 戦前告示の渓流保全工 141 件を抽出し、
所在地・構造種別・現存状況を地図化。
L4 (文化財) との空間結合で「砂防文化財候補」 を選定。
防災工学と文化財学の境界領域研究として発展可能。