← 教材インデックス
Lesson 54
宅地造成等工事規制区域 単独 3 研究例分析 — 盛土規制法 12 条 1 項の地理的射程を 21 ファイルから読み解く
L54 盛土規制法 宅地造成等工事規制区域 RQ×3 Format B 12条1項 二重リスク L52連携 L53連携 制度間ギャップ
所要 40 分 / 想定レベル: 中級+ / データ: DoBoX dataset 1427 (Shapefile 120 polygon + XLSX 規制資料) + L52/L10/L11 連携
データ取得手順
✅ このスクリプトは初回実行時にデータを自動取得します (DoBoX からの直接ダウンロード)。
ID データセット名
#333 dataset #333
#444 dataset #444
#888 都市計画区域情報_区域データ_安芸高田市_行政区域
#1427 宅地造成等工事規制区域
#1429 許可盛土等(法第12条第1項・30条第1項)
#1430 届出盛土等(法第21条第1項・40条第1項)
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L54_residential_filling_zone.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
学習目標と問い
本記事は DoBoX のシリーズ「宅地造成等工事規制区域 」 1 件
(dataset_id = 1427 ) を 単独 で取り上げ、
広島県内の宅造規制区域
380 polygon (県知事指定 120 + 市町長指定 260) / 18 市町 /
union 面積 2075 km² (24.5% of 県土)
を 3 つの独立した研究角度 (RQ1 / RQ2 / RQ3) で並列に分析する。
本データは盛土規制法 (2023-05-26 施行) 第 12 条第 1 項 に基づく区域指定であり、
旧「宅地造成等規制法」 (1961-2023) からの指定継承 である。
本データは DoBoX で21 ファイル構成 :
県知事指定の県全域版 1 ファイル (51124, 2023-04-27 版) +
各市町長指定の市町別 20 ファイル (51125〜51144, 2023-09 版)。
盛土規制法 12 条 1 項は都道府県知事が指定 するが、
広島市・呉市・尾道市・福山市・東広島市等の政令指定都市/中核市 は
法令により独自に指定権限を持つため別ファイルで配信されている。
本記事は 21 ファイルすべてを統合して扱う。
本記事の独自ポイントは、L52 (許可盛土 152 件) / L53 (届出盛土 284 件) と並列で読むことで、
盛土規制法の「区域 → 工事監督」 という 2 階建て構造 を初めてデータから可視化する点。
区域指定 (本記事 L54) は地理範囲 を法的に固定し、
許可制 (L52) と届出制 (L53) はその区域内で個別工事 を監督する。
区域なしには工事監督が成立しないため、L54 は L52・L53 の地理的根拠 である。
独自用語の定義
宅地造成等工事規制区域 : 盛土規制法第 12 条第 1 項に基づき
都道府県知事 (政令指定都市/中核市は市町長) が指定する区域。
都市計画区域内の宅地等で、盛土・切土工事に許可制を実施する地理範囲を法的に固定する。
本データは広島県全 23 市町中 18 市町・union 面積 2075 km² 。
12 条 1 項 : 盛土規制法の区域指定根拠条文。本データの法的根拠。
『災害の防止のため必要があると認めるときは、宅地造成等工事規制区域として指定する』。
許可閾値 : 区域内で許可 を要する工事規模 (盛土規制法施行令 第 3 条)。
盛土 1m 超の崖を生ずる工事 / 切土 2m 超 / 面積 500m² 超 等。
閾値以下でも区域内なら21 条 1 項届出 義務が発動する (= L53)。
指定継承 (本記事独自定義): 旧「宅地造成等規制法」 (1961) で指定された区域を、
新法施行 (2023-05-26) でそのまま新法の規制区域 として引き継ぐこと
(盛土規制法附則第 2 条)。本データの指定日 2023-04-27 はその直前で、
実質的に旧法時代の区域指定をそのまま引き継いだ と推察される。
二重リスクエリア (本記事独自定義): 宅造規制区域 (= 行政が宅造工事を許可制で監督) と
土砂災害警戒区域 (= 自然災害想定エリア) が地理的に重なる場所 。
本来「規制 + 警戒」 の二重防御が働くべき領域だが、指定タイミングや
空間的差で連携の薄い箇所がありうる。RQ3 で定量化する。
制度間ギャップ (本記事独自定義): 警戒区域に指定されているが
宅造規制区域外 の場所 = 自然災害想定があるのに宅造工事の許可制が及ばないエリア。
山間・郊外で発生しやすい。本研究では 98 km²
(全警戒区域の 62%) と定量化。
区域内盛土密度 (本記事独自定義): 各区域 polygon 内の許可盛土件数 ÷ 区域面積。
単位は件/km² 。市町区域の盛土行為強度を直接比較する独自指標。
地形タイプ (本記事独自定義): 規制区域指定市町を以下 3 タイプに分類:
A 沿岸都市 (広島市・呉市・尾道市・三原市・福山市・東広島市等の沿岸 + 広島都心)、
B 内陸都市 (府中市・三次市・庄原市・安芸高田市)、
C 山間/島嶼 (世羅町・安芸太田町・北広島町・神石高原町・大崎上島町)。
地形タイプは独自のリアスト分類で、DoBoX の公式分類ではない。
研究の問い (3 RQ)
RQ1 (主研究) : 広島県内の宅造規制区域の地理範囲と市町指定状況 はどうか?
380 polygon (18 市町) の面積分布、市町別ランキング、地形タイプ別構成、
県総面積に占めるシェアを多角度に集計する。
これは「県の宅造工事監督の地理的射程」 を初めて単独で記述する基礎研究。
RQ2 (副研究 1) : 許可盛土 (L52 既扱) の発生密度との関係 はどうか?
L52 152 件のうち何 % が本区域内に立地するか、
区域別の盛土密度 (件/km²) はどれほどか、区域外 で許可された盛土の地理特性は?
「区域指定 = 許可盛土集中」 の仮説を直接検証する。
RQ3 (副研究 2) : 土砂災害警戒区域 (L10/L11 既扱) との重ね合わせ はどうか?
規制区域 ∩ 警戒区域の面積、二重リスクエリアの市町別偏在、
警戒のみ (= 制度間ギャップ) の地理的特徴を読み解く。
これは盛土規制と土砂災害想定の制度連携の実装状況 を定量化する診断研究。
仮説 H1〜H5
H1 (都市集中, RQ1) : Top 5 市町で全県指定面積の 50% 以上を占める。
山間部市町は指定なしか小面積。
H2 (区域内立地率高, RQ2) : L52 許可盛土 152 件のうち、本規制区域内立地は 70% 以上。
区域外立地は特定盛土区域 (法 30 条) 側の許可で少数派。
H3 (区域内密度の市町偏在, RQ2) : 本区域内の許可盛土密度 (件/km²) は
市町別に 2 桁以上の幅で偏在 (都市部高 / 山間市町低)。
H4 (警戒区域との部分重複, RQ3) : 規制 ∩ 警戒の重複面積比は 20-40%。
規制は市街地中心 を、警戒は急傾斜・渓流 を捉えるため空間目的が異なる。
H5 (二重リスクエリアの市町偏在, RQ3) : 二重リスク (規制 ∩ 警戒) の市町別ランキングは
「規制面積トップ × 警戒面積トップ」 のクロス積。広島市・呉市・尾道市が上位 3。
到達点
本記事を読み終えた学習者は次の 3 点を体感できる:
1 つの「区域 Shapefile」 (120 polygon) から、
盛土規制法の地理的射程 (36.2%) を読み取り、
L52 (許可) / L53 (届出) との地理的依存関係 を可視化する方法を習得する。
区域内盛土密度という独自指標で、件数の絶対値ではなく
面積正規化した強度 で市町を比較する眼を獲得する。
規制 × 警戒の 4 区分カバレッジ分析で、制度間ギャップ (警戒のみ 98 km²) という
行政設計上の重要課題を定量化する手法を体感する。
使用データ
DoBoX のシリーズ「宅地造成等工事規制区域 」 1 件のみを単独で扱う。
リソースは Shapefile 21 件 (県知事 1 + 市町長 20) + XLSX 1 件の計 22 ファイル構造 :
項目 値 dataset_id 1427 名称 宅地造成等工事規制区域 組織 広島県土木建築局 都市環境整備課 リソース 1 (県知事) 51124 — 県全域 Shapefile (120 polygon, 24 区域整理番, 2.3 MB, 2023-04-27 版) リソース 2-21 (市町長) 51125〜51144 — 市町別 Shapefile 計 20 ファイル (260 polygon, 2023-09 版) リソース 22 (規制資料) 51145 — 盛土規制法関係資料 XLSX (規制内容 + 手続き先, 23.1 KB) 根拠法 宅地造成及び特定盛土等規制法 第 12 条第 1 項 (2023-05-26 施行) 旧法 宅地造成等規制法 (1961-2023) CRS EPSG:2445 (JGD2000 平面直角第 III 系) → 解析時 EPSG:6671 へ変換 指定日 2023-04-27 (新法施行直前 = 旧法指定の継承) ライセンス クリエイティブ・コモンズ表示 4.0 取得日 2026-05-09
データの構造
県知事指定 Shapefile (51124, 120 polygon, 2.3 MB) : 県全域版 (2023-04-27 指定継承)。
CRS は EPSG:2445 (JGD2000 平面直角第 III 系 = m 単位)。
属性は 区域整理番 / 面積 (km²) / 備考 + 国土数値情報 N03_* 列 (行政区域連携)。
24 区域整理番 × 平均 5 polygon = 120 polygon の MultiPart 構造。
ただし区域整理番=None の細片 137 行も同梱されており本研究では除外。
市町長指定 Shapefile (51125〜51144, 計 20 ファイル, 260 polygon) :
政令指定都市/中核市 (広島市・呉市・尾道市・福山市・東広島市等) の
市町長指定 (2023-09 版)。これらは盛土規制法施行令により独自に指定権限を持つため
別ファイルで配信される。市町別に polygon 数 1-72 の幅。
市町コードはファイル名の最初 5 桁 (例: 342033 = 34203 = 竹原市) で識別。
XLSX (51145, 23.1 KB) : 盛土規制法の規制内容と手続き先。
L52/L53 のものと同一ファイル (= 区域 / 許可制 / 届出制で共通)。
シート 1 「規制内容」 = 法 12/21/30/40 条の文面、許可・届出閾値、経過措置 等。
シート 2 「手続き先」 = 各市町の窓口・電話番号。
21 ファイル統合の真の指定面積 : 県知事 991 km² + 市町長 2,076 km² の単純合算は
3067 km² だが、両者の geometry が一部重複するため、
unary_union で重複除去した真の指定面積 = 2075 km²
(24.5% of 県土)。本研究では union 後の値を主指標として用いる。
CRS と単位の取扱
原 CRS = EPSG:2445 (JGD2000 平面直角座標系第 III 系) = m 単位。
解析時は EPSG:6671 (JGD2011 平面直角第 III 系) に再投影。
両者は ITRF 系の更新差で数 cm 程度の差しかなく、km² 単位の集計には影響しない。
属性「面積」 列の単位は km² (= geometry.area / 10⁶)。
実 geometry 面積と一致することを確認済 (本研究では geometry.area を主用)。
本記事は dataset 1427 を単独 で扱う Format B 記事。
L52 (dataset 1429 = 許可盛土) との比較は本区域指定が L52 許可立地の前提であるため
RQ2 で使用する。土砂災害警戒区域 (sediment_shp) は L10/L11 で扱った既存データを
RQ3 で空間結合に利用するが、警戒区域そのものの分析は別レッスンに委ねる。
ダウンロード
本レッスンの再現に必要な全データ・中間 CSV・図 PNG・スクリプトを以下から直接 DL できる:
生データ (DoBoX 直リンク)
本記事の中間 CSV (再現用)
図 (PNG 9 枚)
再現スクリプト
個別取得 (PowerShell) :
cd "2026 DoBoX 教材"
iwr "https://hiroshima-dobox.jp/resource_download/51124" -OutFile "data/extras/L54_residential_filling_zone/340006_residential_land_construction_regulation_area_shp_20230427.zip"
iwr "https://hiroshima-dobox.jp/resource_download/51145" -OutFile "data/extras/L54_residential_filling_zone/340006_earth_filling_regulation_related_documents.xlsx"
py -X utf8 lessons\L54_residential_filling_zone.py
注: RQ2 (L52 比較) には L52 の処理済 CSV
(lessons/assets/L52_permits_processed.csv) が必要。
未生成の場合、本スクリプトは RQ2 部分を「データ無し」 表示にしてフォールバック実行する。
【RQ1】 地理範囲と市町指定状況の研究 — 21 ファイル・約 2,075 km² (県の 24%) の沿岸都市偏重
狙い (RQ1)
宅造規制区域 (18 市町指定) は広島県の宅造工事監督の地理的射程 を法的に固定する。
本 RQ1 では (1) 県全体の指定面積、(2) 市町別指定面積ランキング、
(3) 地形タイプ別構成、(4) polygon 個別の規模分布の4 軸 で構造を読む。
これは「県は何を、どの面積で、どんな地形タイプで、どの市町で監督対象としているか」 を
全方位で記述する基礎研究。
手法 (21 ファイル読込 → 統合 → CRS 変換 → admin sjoin → 集計)
STEP 1 (県知事 Shapefile 読込) :
gpd.read_file() で県全域版 (51124, 257 行) を読込。
原 CRS = EPSG:2445 (JGD2000 平面直角第 III 系)。
区域整理番.notna() で 120 行を抽出 (None 137 行は無効ジオメトリ・細片で除外)。
STEP 2 (市町長 Shapefile 読込) :
20 ファイル (51125〜51144) を順次読込し、計 260 polygon を抽出。
ファイル名最初 5 桁 (例: 342033) は 市町コード + チェック桁 。
STEP 3 (CRS 統一 + 縦結合) : 全ファイルを to_crs("EPSG:6671") に統一し、
指定主体 (県知事/市町長) 列を付与してから pd.concat で縦結合 →
統合 380 polygon になる。
STEP 4 (admin sjoin) : 各 polygon の representative_point() を
行政区域 (admin_diss) と sjoin して市町コードを取得。
representative_point は polygon 内に必ず収まる代表点 (centroid と異なり凹部の外に出ない)。
STEP 5 (市町別 dissolve) : gdf.dissolve(by="市町名") で
同市町の県知事/市町長指定 polygon を合算した市町別面積を確定。
STEP 6 (地形タイプ分類) : 指定市町を本研究独自の 3 タイプ
(沿岸都市 / 内陸都市 / 山間・島嶼) に手動分類。集計と地図表示で使用。
STEP 7 (集計) : 市町別指定面積ランキング、地形タイプ別構成、
polygon 規模分布、union 面積 (重複除去) を計算。
入出力 Before/After 具体例 (1 ファイル追跡)
市町別 Shapefile 51140 (= 345458_..., 大崎上島町相当) の処理例:
段階 対象 geometry CRS polygon数 RAW (zip) 市町別 zip 1 個 Shapefile 集合 EPSG:2445 — 1. unzip + read_file GeoDataFrame Polygon × N EPSG:2445 N 2. to_crs(6671) GeoDataFrame EPSG:6671 へ再投影 EPSG:6671 N 3. 指定主体列付与 GeoDataFrame + 指定主体='市町長' EPSG:6671 N 4. concat (20 ファイル) 全市町長 GDF Polygon × 260 EPSG:6671 260 5. concat (県知事 + 市町長) 統合 zones Polygon × 380 EPSG:6671 380 6. unary_union 重複除去後 1 MultiPolygon EPSG:6671 面積 2075 km²
実装コード (Shapefile 読込 + dissolve + admin sjoin) ↑ L54_residential_filling_zone.py 行 1650–1757
1
2
3
4
5
6
7
8
9
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700 # 21 ファイル統合: 県知事 + 20 市町長指定 Shapefile
import geopandas as gpd , pandas as pd , zipfile
from pathlib import Path
from shapely.ops import unary_union
# 1. 県知事指定 (51124, 県全域版) を読込
zone_pref = gpd . read_file (
"data/extras/L54_residential_filling_zone/shp/"
"340006_residential_land_construction_regulation_area_shp_20230427.shp"
) . to_crs ( "EPSG:6671" )
pref_named = zone_pref [ zone_pref [ "区域整理番" ] . notna ()] . copy ()
pref_named [ "指定主体" ] = "県知事"
# 2. 20 市町長指定 Shapefile を順次読込 (51125〜51144)
city_dir = Path ( "data/extras/L54_residential_filling_zone/all_cities/" )
city_polys = []
for zip_path in sorted ( city_dir . glob ( "*.zip" )):
code5 = zip_path . name [: 5 ] # 例: 342033 → "34203" (市町コード)
extract = city_dir / f "tmp_ { code5 } "
extract . mkdir ( exist_ok = True )
if not any ( extract . glob ( "*.shp" )):
with zipfile . ZipFile ( zip_path ) as zf :
zf . extractall ( extract )
g = gpd . read_file ( next ( extract . glob ( "*.shp" ))) . to_crs ( "EPSG:6671" )
g [ "指定主体" ] = "市町長"
g [ "指定主体_code" ] = code5
city_polys . append ( g )
city_named = pd . concat ( city_polys , ignore_index = True )
# 3. 統合 (縦結合)
common_cols = [ "指定主体" , "geometry" ]
zones = gpd . GeoDataFrame (
pd . concat ([ pref_named [ common_cols ], city_named [ common_cols ]], ignore_index = True ),
crs = "EPSG:6671" )
zones [ "poly_area_km2" ] = zones . geometry . area / 1e6
zones [ "poly_id" ] = range ( len ( zones ))
# 4. 各 polygon の代表点で行政区域と sjoin → 市町名解決
zones [ "rep_pt" ] = zones . geometry . representative_point ()
zone_pts = gpd . GeoDataFrame ( zones [[ "poly_id" ]], geometry = zones [ "rep_pt" ], crs = "EPSG:6671" )
join = gpd . sjoin ( zone_pts , admin_diss [[ "CITY_CD" , "geometry" ]],
how = "left" , predicate = "within" ) . drop_duplicates ( "poly_id" )
zones [ "市町名" ] = join . set_index ( "poly_id" )[ "CITY_CD" ] . reindex ( zones [ "poly_id" ]) \
. map ( CITY_NAME ) . fillna ( "不明" ) . values
# 5. 市町別 dissolve + union 面積
zone_dissolved = zones . dissolve ( by = "市町名" , as_index = False )
zone_dissolved [ "zone_area_km2" ] = zone_dissolved . geometry . area / 1e6
zone_pref_union = unary_union ( list ( zone_dissolved . geometry ))
print ( f "統合 polygon: { len ( zones ) } , union 面積: { zone_pref_union . area / 1e6 : .1f } km²" )
図 1: 全規制区域マップ (指定主体別) + 市町別指定面積コロプレス (2 panel)
なぜこの図か : 学習者がまず「規制区域はどこにあるか」 を一目で把握するため。
左の指定主体別色分けで、県知事指定 (赤) と市町長指定 (青) の制度的色彩 を視覚化。
右のコロプレスで市町別指定面積の濃淡を見る。
両方を並べることで「指定権限主体の違い」 と「量の偏り」 を別軸で読む基本訓練ができる。
この図から読み取れること :
規制区域は三原市 (589 km²) を筆頭に、
上位 5 市町 (三原市, 東広島市, 廿日市市, 三次市, 竹原市 ) で
全指定面積の 65.8% を占める →
H1 (支持) 。
宅造規制は都市部偏重 の地理的設計。
地形タイプ別構成:
A 沿岸都市 = 1502 km²
(72%) /
B 内陸都市 = 441 km² /
C 山間・島嶼 = 75 km² →
沿岸都市が圧倒的優位。山間市町でも区域指定はあるが小面積で限定的。
広島市・呉市・尾道市・三原市・福山市の主要 5 都市 は瀬戸内海沿岸に並び、
共通して丘陵地宅地造成の歴史 を持つ。これは旧法時代の指定継承で
新法でもそのまま規制下に置かれている。
右コロプレスでは非指定市町 (灰色) も視覚的に確認できる →
広島県 23 市町中、規制区域指定があるのは 18 市町。
残り市町は宅造規制の対象外 = 区域外 での盛土工事は L53 届出
(40 条 1 項 = 特定盛土区域) 側に分流される。
左マップの三原市 の polygon は県内最大の連続規制エリアを構成 →
この市町単独で県の宅造監督の地理的中核 を担う。
図 2: polygon 規模分布 (log) + 市町別指定面積ランキング (Top 15)
なぜこの図か : 統合 {len(zones)} polygon は市町・指定主体別に大きさが大きく異なる。
左のヒストグラム (log) で polygon の規模分布、右の市町ランキングで
県全体での偏在度を読む。両方を並べることで「polygon 数の多さ ≠ 面積の多さ」 を体感できる。
この図から読み取れること :
polygon 規模分布 : 中央値 0.533 km² (= 53 ha)、
最大 515.2 km² 、最小 4 m² 。
log 軸で 8 桁 の幅 →
polygon は均一サイズではなく、大規模区域内に小ピース (細い谷筋・河川分水域) が混在する構造。
右ランキング : 棒の色は地形タイプ (青=沿岸都市/橙=内陸/緑=山間)。
上位 5 はすべて沿岸都市 (三原市, 東広島市, 廿日市市, 三次市, 竹原市) で
地形タイプの均質性が見える → H1 を視覚的に裏付ける。
尾道市 以下の市町は1 桁少ない指定面積 (~211 km²) →
上位市町は単独で全県の 19% を占める。
polygon 数 (件) と面積 (km²) は必ずしも比例しない →
上位市町 (三原市) は polygon 数 18 件で
面積 589 km² だが、polygon 数最多市町 (
不明: 75 polygon) は
面積では 10 位 = 面積と数の不一致。
polygon 個別の最小面積は数 m² レベル (= 地番境界の細片) →
これは Shapefile の幾何的特性で、研究結果の解釈には影響しない (集計は km² 単位で意味を持つ)。
図 3: 地形タイプ別 指定面積構成 (パイ) + 県総面積シェア比較 (棒)
なぜこの図か : 規制区域指定の地理的偏り を 2 つのスケールで見る。
左パイは「規制区域の中での 3 タイプの内訳」、右棒は「県全体に対する規制区域の量」。
両方を並べることで、規制区域の質 (どこに偏るか) と量 (県のうちどれだけか) を分けて理解できる。
この図から読み取れること :
左パイ: 沿岸都市 72% / 内陸都市 21% / 山間・島嶼 4% →
規制区域は沿岸都市に圧倒的偏重 。これは「都市計画区域内の宅地」 という法定要件で、
都市計画区域が沿岸都市に集中する事実が反映される。
右棒: 県総面積 8479 km² のうち規制区域は 3067 km² (36.17%) 、
非指定が 5413 km² (63.8%) →
県の 9 割近くは宅造規制対象外 。これは森林・農地・水域が県土の大半を占める広島県の地理的事実を反映する。
言い換えれば、規制区域は県土の 36% という小さな area で全宅造工事を捕捉 する設計 →
盛土行為は本来県全土で起きうるが、制度設計上は都市計画区域に集中させて監督する戦略。
4% の山間・島嶼指定は都市計画区域に編入された山間集落 を反映する微小指定で、
地理的には本制度の中心ではないが、過疎地の宅地造成を取りこぼさないカバレッジの広さ を担保する。
この 36.2% の地理的射程に対し、L52 (許可) 152 件・L53 (届出) 284 件が分布する →
RQ2 でこれを定量検証する。
表: 全体サマリ (規制区域 + L52 比較 + 警戒区域) 指標 値 総 polygon 数 380 polygon (県知事 120 + 市町長 260, 市町別 dissolve 後 18 市町) 対象市町数 18 市町 指定面積 (合算) 3066.59 km² (県+市町長別々の合算, 重複あり) 指定面積 (union) 2075.40 km² (重複除去後の真の指定面積, 県 8479 km² の 24.48%) polygon 規模 中央値 / 最大 0.533 km² / 515.15 km² Top 1 市町 三原市 (588.7 km²) Top 5 シェア 65.8% 地形タイプ別 沿岸都市 1502 km² (72%) L52 許可盛土 総件数 152 L52 区域内立地 131/152 件 (86.2%) L52 区域外立地 21 件 (13.8%) 規制区域 ∩ 警戒区域 60.93 km² (規制内 2.9% / 警戒内 38.3%) 二重リスク Top 3 シェア 45% (東広島市, 尾道市, 三原市) 警戒のみ (規制外) 98 km² (全警戒の 61.7%)
この表から読み取れること : 380 polygon / 18 市町 / union 面積 2075 km² / 県シェア 24.5% という基礎数値、L52 区域内立地 86%、二重リスク 61 km² 等の横断指標が一覧で確認できる。RQ1〜RQ3 の核心が 13 行に集約された統合サマリ。
表: 市町別規制区域一覧 (面積順) 順位 市町名 地形タイプ 面積_km2 指定面積シェア_% 県総面積シェア_% 県知事n 市町長n 1 東広島市 A_沿岸都市 517.1 24.9 6.10 0 8 2 三原市 A_沿岸都市 294.3 14.2 3.47 9 9 3 尾道市 A_沿岸都市 211.4 10.2 2.49 0 20 4 廿日市市 A_沿岸都市 196.1 9.45 2.31 8 8 5 庄原市 B_内陸都市 188.6 9.08 2.22 0 72 6 三次市 B_内陸都市 141.5 6.82 1.67 22 23 7 竹原市 A_沿岸都市 118.2 5.69 1.39 4 5 8 江田島市 A_沿岸都市 65.8 3.17 0.780 6 6 9 府中市 B_内陸都市 58.0 2.79 0.680 0 6 10 不明 D_その他 57.6 2.77 0.680 34 41 11 安芸高田市 B_内陸都市 53.1 2.56 0.630 0 20 12 安芸太田町 C_山間/島嶼 48.1 2.32 0.570 19 20 13 熊野町 A_沿岸都市 33.6 1.62 0.400 1 1 14 世羅町 C_山間/島嶼 26.8 1.29 0.320 14 15 15 大竹市 A_沿岸都市 25.6 1.23 0.300 0 3 16 坂町 A_沿岸都市 15.7 0.760 0.180 1 1 17 海田町 A_沿岸都市 13.8 0.660 0.160 1 1 18 府中町 A_沿岸都市 10.4 0.500 0.120 1 1
この表から読み取れること : 各市町の地形タイプ・面積・指定主体構成を一覧で確認できる。Top 5 はすべて沿岸都市で、上位 5 で県の 66% を占める。下位の小区域 (1 km² 未満) は山間集落の小規模市街地で、規制区域指定のカバレッジの広さ を担保している。
表: 地形タイプ別集計 (3 タイプ) 地形タイプ 市町数 指定面積_km2 シェア_% A 沿岸都市 11 1,502 72.4 B 内陸都市 4 441.2 21.3 C 山間/島嶼 2 74.9 3.60 D その他 1 57.6 2.80
この表から読み取れること : 沿岸都市が 72% を占め、内陸 21% / 山間・島嶼 4% と続く。市町数で見ると沿岸都市は少ないが面積が大きく、山間・島嶼は市町数が多いが面積は小さい =
都市規模と市町数の逆対応 関係が現れる。
【RQ2】 許可盛土発生密度との関係 — L52 152 件の区域内立地検証
狙い (RQ2)
宅造規制区域は L52 許可盛土の地理的根拠 。
区域指定が無ければ 12 条 1 項の許可義務は発動しないため、
本来「L52 152 件は本区域内に立地する」 のが制度設計上の前提である。
本 RQ2 では (1) 区域内立地率の検証、(2) 区域別の盛土密度 (件/km²)、
(3) 区域外 立地の地理特性 (= 特定盛土区域 30 条側) を読み解く。
「件数」 は絶対値だが、密度 (件/km²) は面積で正規化された強度指標。
都市部の小区域に多くの許可盛土が集中するか、山間市町の大区域に薄く分散するか —
密度ランキングはそれを直接比較できる本研究独自の指標。
手法 (within 判定 + 区域別 sjoin + 密度計算)
STEP 1 (区域 union) : 380 polygon (県知事 + 市町長指定) を
unary_union で 1 つの multipolygon に統合。
L52 各点に対して「この union 内か?」 を within() で一発判定。
STEP 2 (区域別 sjoin) : gpd.sjoin(g52, zone_dissolved, predicate="within") で
各盛土点に zone_id を付与。区域別の盛土件数を集計。
STEP 3 (密度計算) : 区域別件数 ÷ 区域面積 (km²) = 密度 (件/km²)。
区域面積は Step 4 (RQ1) で計算済の値を流用。
STEP 4 (区域内/外 規模比較) : 区域内/外の盛土の高さ・面積・土量中央値を比較。
区域内立地と区域外立地で規模に差があるか を検証。
入力 : L52 152 点 + 規制区域 union (2075 km²)。
出力 : 各 L52 点に in_zone フラグ (True/False)、市町別に許可盛土件数・密度。
限界 : within 判定は polygon 境界線上の点を「外」 と判定する場合がある
(誤差は数 m レベルで実用上問題ない)。本データは座標精度 ~10 m なので影響は無視可能。
実装コード (within 判定 + 区域別 sjoin + 密度計算) ↑ L54_residential_filling_zone.py 行 1836–1897
1
2
3
4
5
6
7
8
9
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863 # RQ2: 規制区域 × L52 許可盛土の空間解析
from shapely.ops import unary_union
import pandas as pd , geopandas as gpd
# 1. L52 既処理 CSV から GeoDataFrame
df_l52 = pd . read_csv ( "lessons/assets/L52_permits_processed.csv" , encoding = "utf-8-sig" )
g52 = gpd . GeoDataFrame (
df_l52 ,
geometry = gpd . points_from_xy ( df_l52 [ "lon" ], df_l52 [ "lat" ]),
crs = "EPSG:4326" ) . to_crs ( "EPSG:6671" )
# 2. 規制区域 (県知事 + 市町長指定 全 polygon) を 1 つに統合し、各 L52 点が内/外を判定
zone_union = unary_union ( list ( zone_dissolved . geometry ))
g52 [ "in_zone" ] = g52 . geometry . within ( zone_union )
n_in = g52 [ "in_zone" ] . sum ()
print ( f "L52 区域内立地: { n_in } / { len ( g52 ) } = { n_in / len ( g52 ) : .1% } " )
# 3. 区域別盛土件数 (sjoin)
g52_zone = gpd . sjoin ( g52 , zone_dissolved [[ "zone_id" , "geometry" ]],
how = "left" , predicate = "within" )
zone_count = g52_zone . groupby ( "zone_id" ) . size () . reset_index ( name = "許可盛土件数" )
# 4. 密度 = 件数 / 区域面積 (km²)
zone_density = zone_dissolved [[ "zone_id" , "市町名" , "zone_area_km2" ]] . merge (
zone_count , on = "zone_id" , how = "left" ) . fillna ( 0 )
zone_density [ "密度_件_km2" ] = zone_density [ "許可盛土件数" ] / zone_density [ "zone_area_km2" ]
print ( zone_density . sort_values ( "密度_件_km2" , ascending = False ) . head ( 5 ))
図 4: 規制区域 × L52 許可盛土オーバーレイ + 規模分布比較
なぜこの図か : 「区域指定 = 許可盛土集中」 仮説 (H2) を地図上で直接検証する。
左で規制区域 (緑) と許可盛土 (区域内=青○ / 区域外=紫△) を重ね、
右で区域内/外の盛土面積分布を log で並列比較する。
規模に差があれば「区域指定の有無で許可される盛土の質も変わる」 ことを示す。
この図から読み取れること :
区域内立地 : 131/152 件 (86.2%) →
H2 (支持) 。
L52 許可盛土の大半が本区域内に立地し、
区域指定が許可盛土の地理的根拠 として機能していることを定量確認。
区域外立地 : 21 件 (13.8%) →
これらは特定盛土区域 (法 30 条 1 項) 側で許可された盛土と推察される。
盛土規制法は宅造規制区域 (12 条) と特定盛土区域 (30 条) の2 種類 を持ち、
L52 はこの両方を含む混合台帳。
右ヒスト: 区域内中央値 929 m² vs 区域外中央値 3825 m² →
区域外が大きい。
これは「区域内 = 都市部宅地造成は中規模 (戸建擁壁) 中心、区域外 = 山間部の大規模工事も許可される」 という
地理的特性を示唆する。
左マップを見ると、紫△ (区域外) は山間部・離島 に分布する傾向 →
特定盛土区域は山間地・林地の大規模盛土 (= 太陽光発電関連等) を捕捉する設計。
区域境界線上 の点は判定が微妙だが、本研究では within (= 厳密に内側) を採用。
実運用では buffer(10m) 程度のバッファを許容するのが現実的。
図 5: 区域別 許可盛土密度ランキング + 区域面積 × 件数 散布
なぜこの図か : 「件数」 は絶対値だが「密度 (件/km²)」 は面積正規化指標。
小区域に少数立地でも密度は高くなり、大区域に多数立地でも密度は低くなる。
ランキングは件数だけでは見えない区域の盛土圧 を可視化する。
右の散布図 (面積 × 件数) で、密度 = 傾きの解釈もできる。
この図から読み取れること :
密度トップ : 府中町 = 1.06 件/km²
(11 件 / 10.41 km²) →
この区域が県内で最も盛土行為が集中 している場所。
小面積に多数立地で密度が極端に高い場合は都市開発の集中地 を示す。
桁差 : 密度 max (1.06) / 密度 min(>0) (0.0150) =
70 倍 (1.8 桁) →
H3 (部分支持) 。
区域指定下でも盛土行為強度は地理的に均一ではなく、
都市部小区域に集中する。
右散布: 区域面積 (log) と盛土件数 (symlog) のプロット。
地形タイプで色分け (青=沿岸都市 / 橙=内陸 / 緑=山間)。
中央値密度 (0.07 件/km²) ラインを
下回る区域は「予想より盛土が少ない」 = 区域指定はあるが工事需要が低い場所。
盛土件数ゼロ の区域 (1 区域) も多数 →
これは「指定はあるが現代工事はない」 区域で、旧法時代の指定継承の名残。
法的には許可制が発動可能な状態だが、実需要がないため運用は休止。
地形タイプ別に見ると、青 (沿岸都市) は右上 (大面積 × 多件数)、
緑 (山間) は左下 (小面積 × 少件数) に集まる傾向 →
地理タイプと盛土需要の整合性 が確認される。
表: 区域別 許可盛土密度 順位 市町名 区域面積_km2 L52許可盛土件数 密度_件km2 1 府中町 10.4 11 1.06 2 世羅町 26.8 4 0.149 3 海田町 13.8 2 0.145 4 尾道市 211.4 22 0.104 5 熊野町 33.6 3 0.089 6 竹原市 118.2 10 0.085 7 大竹市 25.6 2 0.078 8 不明 57.6 4 0.069 9 廿日市市 196.1 13 0.066 10 三次市 141.5 9 0.064 11 東広島市 517.1 33 0.064 12 安芸高田市 53.1 3 0.056 13 府中市 58.0 2 0.034 14 三原市 294.3 8 0.027 15 安芸太田町 48.1 1 0.021 16 庄原市 188.6 3 0.016 17 江田島市 65.8 1 0.015 18 坂町 15.7 0 0.000
この表から読み取れること : 密度トップは 府中町 = 1.06 件/km²。区域面積が小さく盛土件数が多い区域が密度上位を占める = 都市部の集中開発エリア の特徴。
表: 区域内/外 L52 規模比較 指標 区域内 区域外 差 (区域内 - 区域外) 件数 (件) 131.0 21.0 110.0 高さ 中央値 (m) 2.07 4.55 -2.48 面積 中央値 (m²) 929.0 3,825 -2,896 盛土量 中央値 (m³) 611.0 5,650 -5,038 面積 最大 (m²) 9,954 41,501 -31,546
この表から読み取れること : 区域内盛土と区域外盛土の規模中央値の差で、「区域指定の有無で許可される盛土の質が変わるか」 を直接確認できる。件数差 110 件 (区域内 - 区域外) は区域指定の地理的偏在の現れ。
【RQ3】 土砂災害警戒区域との重ね合わせ — 二重リスクと制度間ギャップ
狙い (RQ3)
宅造規制区域 (= 行政が宅造工事を許可制で監督) と
土砂災害警戒区域 (= 自然災害想定エリア) は異なる行政目的 で指定される
2 つの polygon 集合。本来は「規制 ∩ 警戒 = 二重防御」 の領域があるはずだが、
指定タイミングの差や空間目的の違いで、想定外の重複構造を持つ可能性がある。
本 RQ3 では (1) 全県の規制 ∩ 警戒重複面積、(2) 市町別二重リスクランキング、
(3) 4 区分カバレッジ (規制∩警戒 / 規制のみ / 警戒のみ / どちらも該当外) を読み解く。
特に「警戒のみ (= 規制区域外の警戒区域)」 は制度間ギャップ として重要。
手法 (geometry intersection + 4 区分集計)
STEP 1 (警戒区域 union) : 急傾斜 polygon 30K + 土石流 polygon 13K を
unary_union で 1 つに統合。これは初回のみ計算 (~5 秒)。
STEP 2 (区域 union) : 規制区域も同様に union。
STEP 3 (intersection) :
zone_pref.intersection(warn_pref) で全県の重複 polygon を計算。
面積 = .area / 1e6 で km² 取得。
STEP 4 (区域別二重リスク) : 各 zone_id の polygon と warn_pref の
intersection を取って区域別二重リスク面積を計算。
STEP 5 (4 区分集計) :
規制 ∩ 警戒 = 二重リスク
規制のみ = zone_pref - warn_pref
警戒のみ = warn_pref - zone_pref
どちらも該当外 = 県全体 - 上記 3 つ
4 区分の面積で県土全体のカバレッジを定量化。
入力 : 規制区域 polygon (union 2075 km²) + 急傾斜 30K + 土石流 13K polygon。
出力 : 全県重複面積、区域別二重リスク、4 区分面積。
限界 : 警戒区域の面積は dissolve 前後で変わらない (= 同種類の警戒同士の重複は無視できる)。
ただし急傾斜 ∩ 土石流 の重複 (異種警戒の重複) は本研究では合計に含めて扱う。
実装コード (geometry intersection + 4 区分集計) ↑ L54_residential_filling_zone.py 行 1978–2045
1
2
3
4
5
6
7
8
9
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008 # RQ3: 規制区域 × 警戒区域の重ね合わせ
from shapely.ops import unary_union
import geopandas as gpd
# 1. 警戒区域 (急傾斜 + 土石流) を 1 つに union
warn_all_geom = unary_union ( list ( warn_kyukei . geometry ) + list ( warn_doseki . geometry ))
# 2. 規制区域も union
zone_pref_geom = unary_union ( list ( zone_dissolved . geometry ))
# 3. intersection で重複面積
overlap_geom = zone_pref_geom . intersection ( warn_all_geom )
overlap_km2 = overlap_geom . area / 1e6
# 4. 4 区分集計
zone_only_geom = zone_pref_geom . difference ( warn_all_geom )
warn_only_geom = warn_all_geom . difference ( zone_pref_geom )
zone_only_km2 = zone_only_geom . area / 1e6
warn_only_km2 = warn_only_geom . area / 1e6
print ( f "規制 ∩ 警戒 = { overlap_km2 : .1f } km²" )
print ( f "規制のみ = { zone_only_km2 : .1f } km²" )
print ( f "警戒のみ = { warn_only_km2 : .1f } km² ← 制度間ギャップ" )
# 5. 区域別二重リスク
double_risk = []
for _ , r in zone_dissolved . iterrows ():
inter = r . geometry . intersection ( warn_all_geom )
double_risk . append ({
"市町名" : r [ "市町名" ],
"二重リスク_km2" : inter . area / 1e6 if not inter . is_empty else 0 ,
})
図 6: 規制区域 × 警戒区域 重ね合わせ全県マップ
なぜこの図か : 全県で規制区域 (緑) と警戒区域 (赤=急傾斜・橙=土石流) が
どう重なるかを 1 図で俯瞰する。レイヤ順は warn → zone で、
警戒区域の上に規制区域が透過で乗る。
重なる場所は 2 色が混ざって見え、二重リスクエリアが視覚的に確認できる。
この図から読み取れること :
規制区域 (緑) と警戒区域 (赤・橙) は部分重複 。重複面積 = 60.9 km² →
規制区域内の 2.9% が警戒区域でもある =
H4 (観測 3.0%) 。
警戒区域 (赤+橙) は山間斜面・渓流 に広く分布し、規制区域 (緑) は都市市街地 に集中 →
両者の空間目的 は異なる:
規制区域 = 「人の住む場所での宅地造成監督」、警戒区域 = 「自然災害が起きやすい場所の想定」。
両方に該当するのは丘陵都市の住宅地 。
上位 3 二重リスク市町 (東広島市, 尾道市, 三原市 ) は
ラベル付きで表示 → これらは「都市部 + 急傾斜地」 を併せ持つリアス式海岸沿いの市町。
宅造工事の許可制と災害想定の二重防御が最も実装される場所。
地図全体では、規制区域 (緑) の外側に警戒区域 (赤・橙) が大量に存在 →
これは「警戒のみ」 (= 規制区域外の警戒区域) で、面積は 98 km² 。
これらの場所では宅造規制が及ばず、特定盛土区域 (40 条) や届出制 (21 条 / 40 条) で
間接的に監督される。
規制区域 (緑) のうち警戒区域外 の部分 (= 規制のみ 2014 km²) は
平地の市街地中心部で、宅造規制があるが土砂災害想定はない場所 =
洪水・地震等別ハザードの担当領域 と推察される。
図 7: 市町別 二重リスク面積 choropleth + ランキング
なぜこの図か : 二重リスクを市町単位 で正規化したランキングと地図。
左コロプレスで地理分布、右ランキングで絶対値+区域内比率を読む。
これにより「どの市町が最も二重リスクを抱えるか」 と「区域面積に占める警戒比率」 を同時に把握できる。
この図から読み取れること :
二重リスク Top 3 :
東広島市 (10.3 km², 区域内 2%) / 尾道市 (8.8 km², 区域内 4%) / 三原市 (8.2 km², 区域内 3%) →
H5 (部分支持) 。
上位 3 で全二重リスクの 45% を占める。
右ランキング: 灰色背景バー = 区域面積、赤バー = 二重リスク面積 →
区域面積に占める二重リスク比率が市町別に異なる。
区域面積が大きく二重リスク比率も高い市町 = 大きな丘陵都市 (例: 三原市)。
区域内警戒比率 (区域内警戒区域比率_%) は 8%
(最大) から 2% (最小) まで幅がある →
同じ「規制区域」 でも自然災害想定の重なり方は市町別に大きく異なる。
左コロプレスの濃赤地域は都市部のリアス式海岸 に集中 →
これは瀬戸内海特有の地形 (山が海に迫る) で人口集中地域と急傾斜地が同居する宿命的な構造。
古くから宅地開発と斜面防災が同時並行する都市 (呉市等) が典型。
下位市町 (二重リスク 0 km²) は島嶼または平野部市町 →
指定区域はあるが地形上警戒区域がほぼ存在しない場所。
宅造規制のみで自然災害想定との重複は限定的。
図 8: 県全土 4 区分カバレッジ — 規制 / 警戒の組合せパターン
なぜこの図か : 県全土 (8479 km²) を「規制と警戒の有無」 で 4 区分し、
それぞれの面積を可視化することで制度間カバレッジ を診断する。
特に「警戒のみ」 の面積は規制が及ばない災害リスクエリア = 制度間ギャップ。
左パイで構成比、右棒で絶対面積を見る。
この図から読み取れること :
4 区分構成 (県 8479 km²):
規制 ∩ 警戒 = 61 km² (0.7%) /
規制のみ = 2014 km² (23.8%) /
警戒のみ = 98 km² (1.2%) /
該当外 = 6306 km² (74.4%)。
「警戒のみ」 が 98 km² = 県の 1.2%、
全警戒区域の 62% →
これは制度間ギャップ 。土砂災害警戒区域に指定されているが宅造規制区域外 で、
宅造工事の許可制が及ばない場所。山間・郊外の集落周辺が典型。
「警戒のみ」 エリアでも盛土工事は L53 届出制 (40 条 1 項 = 特定盛土区域内) で間接的に監督されるが、
規制区域 (12 条) ほど厳格な許可制ではない →
制度設計上の意図的なグラデーション と解釈すべき。
「該当外」 (約 74%) は
森林・農地・水域等で、宅造工事も土砂災害想定もないエリア。
これは県土の大半を占めるが、住民密度が低いため宅地監督の対象外。
4 区分のうち、規制 ∩ 警戒 = 二重リスク 61 km² は
行政の最重点エリア。許可制で工事監督 + 警戒区域指定で災害想定 = 二重防御が成立する場所。
この面積を増やすことが防災上の理想だが、それは都市計画区域の拡張を要する課題。
表: 区域別 二重リスクランキング (Top 15) 順位 市町名 区域面積_km2 二重リスク_km2 区域内警戒区域比率_% 1 東広島市 517.1 10.3 2.00 2 尾道市 211.4 8.80 4.20 3 三原市 294.3 8.21 2.80 4 庄原市 188.6 5.69 3.00 5 廿日市市 196.1 4.98 2.50 6 竹原市 118.2 4.86 4.10 7 不明 57.6 4.34 7.50 8 三次市 141.5 2.91 2.10 9 府中市 58.0 2.69 4.60 10 江田島市 65.8 2.12 3.20 11 安芸高田市 53.1 1.58 3.00 12 安芸太田町 48.1 1.13 2.40 13 大竹市 25.6 0.867 3.40 14 世羅町 26.8 0.644 2.40 15 海田町 13.8 0.574 4.20
この表から読み取れること : 二重リスク面積トップは 東広島市 (10.3 km², 区域内警戒比率 2%)。区域面積が大きいだけでなく、区域内に占める警戒区域の比率も高い = 地形リスクと宅地需要が重なる宿命的な都市構造 。
表: 4 区分カバレッジ (県 8479 km²) 区分 面積_km2 県シェア_% 意味 1. 規制 ∩ 警戒 (二重リスク) 60.9 0.720 宅地工事に許可必要 + 自然災害想定 = 二重防御エリア 2. 規制のみ (警戒区域外) 2,014 23.8 宅地工事の許可制のみ。市街地中心の平地等 3. 警戒のみ (規制区域外) 98.3 1.16 災害想定のみ。山間・郊外で宅造規制なし → 制度間ギャップ 4. どちらも該当外 6,306 74.4 両制度の対象外。森林・農地・水域など
この表から読み取れること : 4 区分のうち「警戒のみ」 が 98 km² (1.2%) と最大級で、これが制度間ギャップ 。宅造規制が及ばない災害想定エリアで、山間・郊外集落周辺に分布する。該当外 が県土の大半を占めるが、これは森林・農地・水域で住民密度が低く宅地監督対象外という当然の結果。
表: 警戒のみエリア 上位市町 (制度間ギャップ) 順位 市町名 警戒のみ_km2 1 福山市 14.2 2 広島市安佐北区 11.7 3 呉市 10.7 4 庄原市 9.08 5 三次市 8.20 6 安芸太田町 5.64 7 広島市佐伯区 5.59 8 安芸高田市 5.24 9 広島市安佐南区 4.24 10 広島市安芸区 3.87 11 廿日市市 2.26 12 府中市 2.24 13 世羅町 1.90 14 広島市東区 1.66 15 広島市西区 1.61
この表から読み取れること : 警戒のみエリアの上位市町は 福山市 (14.2 km²) を筆頭に山間市町が多く名を連ねる → 山間市町は警戒区域の絶対面積が大きいが宅造規制区域が小さい ため、制度間ギャップが集中して発生。これらの市町は L53 届出制度 (40 条 = 特定盛土区域) で間接的に盛土工事を監督する設計だが、規制区域 (12 条) のような厳格な許可制ではない。
表: polygon サンプル (Top 10 大 polygon) 順位 指定主体 団体コード 市町名 polygon面積_km2 1 市町長 342122 東広島市 515.2 2 県知事 340006 三原市 278.2 3 市町長 342041 三原市 278.2 4 市町長 342131 廿日市市 161.2 5 県知事 340006 廿日市市 161.2 6 県知事 340006 三次市 127.5 7 市町長 342092 三次市 127.5 8 県知事 340006 竹原市 116.8 9 市町長 342033 竹原市 116.8 10 市町長 342050 尾道市 103.8
この表から読み取れること : 個別 polygon の最大は 東広島市 の 515.2 km²。1 区域内に複数大規模 polygon を含む場合、その区域は連続した広い市街地 を持つ大都市と推察される。
仮説検証総合 本記事の 5 仮説と観測結果の照合:
仮説 予想 観測 判定 H1 (都市集中, 上位 5 シェア ≥ 50%, RQ1) Top 5 市町で全県の 50% 以上 Top 5 = 三原市, 東広島市, 廿日市市, 三次市, 竹原市, シェア 65.8% 支持 H2 (区域内立地率 ≥ 70%, RQ2) L52 152 件のうち区域内立地が 70% 以上 L52 区域内 131/152 件 = 86.2% 支持 H3 (区域内密度の市町偏在 ≥ 2 桁, RQ2) 区域別 件/km² が 2 桁以上の幅で偏在 密度 max 1.06 / min(>0) 0.0150 = 70 倍 部分支持 H4 (規制 ∩ 警戒 = 20-40%, RQ3) 規制区域内に占める警戒区域の割合が 20-40% 規制 ∩ 警戒 = 60.9 km², 規制内 2.9% 観測 3% (予想外) H5 (二重リスク Top 3 集中, RQ3) 上位 3 で二重リスク全体の半数以上 Top 3 = 東広島市, 尾道市, 三原市, シェア 44.8% 部分支持 (45%)
3 RQ × 3 結論 RQ1 結論 : 広島県の宅造規制区域は 380 polygon / 18 市町指定 / union 面積 2075 km² で、県総面積 8479 km² の 36.17% を占める。上位 5 市町 (三原市, 東広島市, 廿日市市, 三次市, 竹原市) で 66% を占め、地形タイプは沿岸都市 72% / 内陸 21% / 山間 4% という沿岸都市偏重 の構造。polygon 規模は中央値 0.533 km² / max 515 km² で8 桁の幅 。RQ2 結論 : L52 許可盛土 152 件のうち 131 件 (86.2%) が規制区域内立地 →区域指定が許可盛土の地理的根拠として強く機能。区域内盛土密度の桁差 = 70 倍 (1.8 桁) で、部分的偏在。区域外立地 21 件は特定盛土区域 (法 30 条) 側で許可された案件と推察。RQ3 結論 : 規制 ∩ 警戒の重複面積 = 60.9 km² (規制区域内の 2.9%, 警戒区域内の 38.3%)。二重リスク Top 3 (東広島市, 尾道市, 三原市) で全体の 45% 。「警戒のみ」 (= 制度間ギャップ) = 98 km² で全警戒区域の 62% を占め、宅造規制が及ばない災害想定エリアが県土に大量に存在する事実を初めて定量化。これは制度設計上のグラデーションだが、防災投資の優先順位付けに直結する重要発見。3 制度モデル — 規制区域 (L54) / 許可制 (L52) / 届出制 (L53) の関係表 側面 規制区域 (L54) 許可制 (L52) 届出制 (L53) 根拠条文 法 12 条 1 項 (本記事) 法 12 条 1 項 / 30 条 1 項 法 21 条 1 項 / 40 条 1 項 対象 地理範囲 (区域指定 = ポリゴン) 個別工事 (規模超 = 許可必要) 個別工事 (規模以下 = 届出必要) 本データ単位 380 polygon (18 市町, union 2075 km²) 152 件 (個別工事) 284 件 (個別工事) 全県カバレッジ union 2075 km² (24.5% of 県) L52 区域内立地 86% 区域内 + 特定盛土区域 (40 条) 指定の意味 区域内全工事に許可/届出義務発動の前提条件 事前審査 + 許可条件 (重い手続) 事前通知のみ (軽い手続) L54 との関係 — L52 のうち 86% が L54 区域内 L53 もすべて L54 区域内 (区域指定が前提)
この表から読み取れること : 盛土規制法の3 階層構造 が見える: (1) 区域 (L54) = 地理範囲を法的に固定 → (2) 区域内で許可閾値超 = 12/30 条許可 (L52) → (3) 区域内で許可閾値以下 = 21/40 条届出 (L53)。L54 (区域) は L52 / L53 の地理的前提 であり、L52 / L53 は L54 の具体実装 。3 つを並列で読むことで、盛土規制法の制度設計が初めて立体的に理解できる。
発展課題
結果 X → 新仮説 Y → 課題 Z (3 RQ × 1 課題以上)
発展課題 1 (RQ1 由来): 区域指定の都市計画整合性検証
結果 X : 規制区域は県の 36.2% に留まり、Top 5 市町で 66% を占める沿岸都市偏重の地理。
地形タイプは沿岸都市 72% / 内陸 21% / 山間 4%。
新仮説 Y : 規制区域は都市計画区域 (L16 既扱) と完全に整合 するはず
(法定要件 = 都市計画区域内の宅地)。しかし旧法時代の指定がそのまま継承されているため、
都市計画区域の後続拡張 に追従していないズレ が存在する可能性。
また、市街化区域 (L18 既扱) との関係では、市街化区域の方が狭く、
規制区域 ⊃ 市街化区域 の包含関係が成立するはず。
課題 Z : L16 (都市計画区域 polygon) と L18 (市街化区域線) を本データと
gpd.overlay で空間結合し、(1) 規制区域 ∩ 都市計画区域 = どれだけ整合するか、
(2) 規制区域 - 都市計画区域 = 都市計画外の規制区域が存在するか
(= 制度の追従ズレ) を計算。
また、市街化区域 - 規制区域 = 都市化最前線の宅地造成監督ギャップを同定し、
行政の区域指定追加候補 として政策提言する研究に発展可能。
発展課題 2 (RQ2 由来): 盛土密度と人口密度・地価の連関
結果 X : 区域内盛土密度は max 1.057 件/km²、
最大 70 倍の幅で偏在。
地形タイプ別では沿岸都市が高密度、山間市町が低密度。
新仮説 Y : 区域内盛土密度は人口密度 と正相関し、
地価 (公示地価) とも正相関する。盛土行為は宅地需要 = 人口流入 + 地価上昇に
引きずられ、都市化前線で集中的に発生する。
また、密度上位市町は新興住宅地開発 (= 1980 年代以降) の名残で、
地形改変履歴が継続的に進む。
課題 Z : e-Stat 国勢調査から各市町の人口密度 (人/km²)、
国土地理院 公示地価から代表地点の地価を取得し、
区域内盛土密度との Pearson 相関 + Spearman 相関を計算。
傾きから「人口密度 1,000 人/km² 増あたり盛土密度何件/km² 増えるか」 という
需要弾性 を推定。これは盛土行政の需要予測モデル に直結し、
将来の密度上昇候補市町の事前同定に使える。
発展課題 3 (RQ3 由来): 警戒のみエリアの宅地造成リスク定量化
結果 X : 「警戒のみ」 (規制区域外の警戒区域) = 98 km² で、
全警戒区域の 62%。
これは制度間ギャップで、宅造規制が及ばない災害想定エリア。
新仮説 Y : 「警戒のみ」 エリアでは L53 届出盛土 (40 条 = 特定盛土区域) が
L52 許可盛土より多数立地し、規模は届出 ≥ 許可 (経過措置遡及で大規模が含まれる)。
また、これらのエリアは旧法時代から宅地造成が進んでいたが行政把握下に
入っていなかった「埋没盛土」 の主要発生地。
課題 Z : L52 (許可) と L53 (届出) を本記事の zone_pref で in/out 判定し、
「警戒のみ」 エリア (= warn_only) に立地する盛土を抽出。
これらの盛土の規模分布、工事着手年分布、現在の管理状態 (= 旧法時代の遡及届出か等) を集計し、
「制度間ギャップ × 盛土実需」 のクロス分析 を構築。
防災投資の事後検証ターゲット として「警戒のみ × 大規模盛土」 の
上位案件を抽出することで、行政の優先点検対象リスト を作成可能。
また、L46 (砂防関係指定地) との sjoin で防災工事の有無も追跡できる。
本教材は 広島県インフラマネジメント基盤 DoBoX のオープンデータを用いて作成しました。
データのライセンスは各データセットページの表記に従います。教材中のコード・解説は CC-BY 4.0 で再配布可能です。
最終更新: 2026-05-01 / 再現スクリプト: L54_residential_filling_zone.py