Lesson 27
L27 非線引き用途地域 × 非線引き用途白地 PAIR 統合分析 — 広島県 13 非線引き市町の「ゆるい都市制御」構造
都市計画非線引き用途地域用途白地GISgeopandasGeoJSON互補ペア統合13市町KUIKI_CD
データ取得手順
✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
| #111 | dataset #111 |
| #222 | dataset #222 |
| #444 | dataset #444 |
| #666 | dataset #666 |
| #802 | 都市計画区域情報_区域データ_呉市_非線引き用途地域 |
| #803 | 都市計画区域情報_区域データ_呉市_非線引き用途白地 |
| #809 | 都市計画区域情報_区域データ_竹原市_非線引き用途地域 |
| #810 | 都市計画区域情報_区域データ_竹原市_非線引き用途白地 |
| #819 | 都市計画区域情報_区域データ_三原市_非線引き用途地域 |
| #820 | 都市計画区域情報_区域データ_三原市_非線引き用途白地 |
| #829 | 都市計画区域情報_区域データ_尾道市_非線引き用途地域 |
| #830 | 都市計画区域情報_区域データ_尾道市_非線引き用途白地 |
| #845 | 都市計画区域情報_区域データ_府中市_非線引き用途地域 |
| #846 | 都市計画区域情報_区域データ_府中市_非線引き用途白地 |
| #853 | 都市計画区域情報_区域データ_三次市_非線引き用途地域 |
| #854 | 都市計画区域情報_区域データ_三次市_非線引き用途白地 |
| #859 | 都市計画区域情報_区域データ_庄原市_非線引き用途地域 |
| #860 | 都市計画区域情報_区域データ_庄原市_非線引き用途白地 |
| #873 | 都市計画区域情報_区域データ_東広島市_非線引き用途地域 |
| #874 | 都市計画区域情報_区域データ_東広島市_非線引き用途白地 |
| #883 | 都市計画区域情報_区域データ_廿日市市_非線引き用途地域 |
| #884 | 都市計画区域情報_区域データ_廿日市市_非線引き用途白地 |
| #891 | 都市計画区域情報_区域データ_安芸高田市_非線引き用途地域 |
| #892 | 都市計画区域情報_区域データ_安芸高田市_非線引き用途白地 |
| #897 | 都市計画区域情報_区域データ_江田島市_非線引き用途地域 |
| #898 | 都市計画区域情報_区域データ_江田島市_非線引き用途白地 |
| #927 | 都市計画区域情報_区域データ_広島県_非線引き用途地域 |
| #928 | 都市計画区域情報_区域データ_広島県_非線引き用途白地 |
| #938 | 都市計画区域情報_区域データ_北広島町_非線引き用途地域 |
| #939 | 都市計画区域情報_区域データ_北広島町_非線引き用途白地 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L27_nonline_use_zones.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
スクリプト(全体ソースコード)
⬇ L27_nonline_use_zones.py
cd "2026 DoBoX 教材"
python -X utf8 lessons/L27_nonline_use_zones.py
1. 学習目標と問い
研究の問い (RQ)
広島県内 13 非線引き市町に指定された「非線引き都市計画区域」内において、
用途地域指定 (KUIKI_CD=3) と用途白地 (KUIKI_CD=4) は
面積比・地理分布・市町別パターンの観点でどのような構造を持ち、
L18 線引き市町の「市街化:調整」構造とどう異なるのか?
非線引き市町は実態として「ほぼ全域が用途白地」= 都市制御が
最低限に留まる地域なのか?
独自用語の定義 (本記事冒頭での明示)
- 線引き都市計画区域: 都市計画法 7 条に基づく「区域区分」 ─
すなわち市街化区域 + 市街化調整区域 の二分制度を適用する都市計画区域。
広島県では 13 市町が線引きを採用 (= L18 で扱った)。
- 非線引き都市計画区域: 都市計画区域だが上記の区域区分が適用されない
エリア。市街化/調整の二分はせず、必要な箇所だけ用途地域を個別指定する運用。
広島県では 本記事の 13 市町がこれに該当 (L18 とは排他的だが、
一部市町は線引き部分も併存)。
- 非線引き用途地域 (KUIKI_CD=3): 非線引き都市計画区域のうち、
住居・商業・工業などの用途地域が個別指定された区域。
本記事の片翼 14 dataset_id がこれを記述する。
- 非線引き用途白地 (KUIKI_CD=4): 同上のうち、用途地域指定がない区域。
通称「白地 (しろじ)」。建築基準法の単体規定は適用されるが、
都市計画法の用途規制は実質的にほとんどかからない。
本記事のもう片翼 14 dataset_id がこれを記述する。
- 完全互補ペア: 用途地域 + 用途白地 = 非線引き都市計画区域 全体。
ジオメトリ的にも互いに重なり合わず、合計が L16 都市計画区域から
線引き分を引いた残りに等しい (整合性 H4)。
- KUIKI_CD: 区域コード。L18 では 1=市街化/2=調整、
本記事 L27 では 3=用途地域指定 / 4=用途白地。
L26 (区域外) では使用されない。
- KUIKI_TB: 細分通番 (table 番号?)。市町×KUIKI_CD 内で
1, 2, 3... と振られる。本記事ではポリゴン識別子として参考的に扱う。
- 両用市町 / 純非線引き市町: 本記事独自分類。
線引きと非線引きの両方を市町内に持つ 6 市 (呉/三原/尾道/府中市/東広島/廿日市) =
「両用」。残り 7 市町 (竹原/三次/庄原/安芸高田/江田島/北広島/世羅) は
線引きを持たない「純非線引き」。
立てた仮説 H1〜H5
- H1 (面積比の非対称): 13 市町合計で「用途指定:白地 ≈ 1:9」程度の
強い非対称性を示す。L18 線引きの「市街化:調整 ≈ 1:3」よりさらに強い偏りであり、
非線引きとは事実上「ほぼ全域が用途指定なし」の状態であることが定量化される。
- H2 (用途指定率の市町差): 用途指定率は町部 (北広島・世羅・安芸高田)
が 15% 程度と相対的に高く、大きな市 (東広島・廿日市) では
5% 未満に落ちる。理由: 大きな市は線引きを主に使うため非線引き区域は
周辺中山間部だけ ─ そこでの用途指定密度は低い。
- H3 (連続塊の構造): 用途地域ポリゴンは中心市街地に集中し
1 個あたり面積は小さい (約 0.5 km²)。白地ポリゴンは周辺の農村部・山地に分散し
1 個あたり面積は大きい (10 km² 以上もあり)。
- H4 (整合性): 13 市町別ファイルの合計と県全域 ds=927/928 は
件数・面積ともに完全一致する (誤差 0.01% 未満)。
- H5 (KUIKI_CD の意味): 用途 14 ファイルすべてで KUIKI_CD=3 一定、
白地 14 ファイルすべてで KUIKI_CD=4 一定。両者は同じ列構造を共有しつつ
KUIKI_CD だけで区別される ─ 互補ペアとして合体しても情報損失ゼロ。
到達点
本記事を通じて学習者は以下を身につける:
- 2 シリーズ × 13 市町 × 各 14 ファイル = 28 GeoJSON を縦結合する標準パターン
(L18 互補ペア + L26 単純構造の融合)
- 「ペア合体 OK」の判断基準: 列構造完全一致 + CRS 一致 + 互補意味を
実データで検証する手順
- L18 線引き / L26 区域外 / L27 非線引き の3 系統で広島県土を分解する見方
─ 都市計画法の制度設計が「面積でどう現れるか」
- 用途地域指定率 ─ 同じ「非線引き」でも市町タイプで桁違いに変わる
比率指標の作り方
- 連続塊数 vs 平均面積の log-log 散布で「集中型 vs 分散型」を
一目で見せる構造可視化
2. 使用データ
L27 シリーズ — 「非線引き用途地域」+「非線引き用途白地」 計 28 dataset_id
本記事は DoBoX 内の 2 シリーズ:
- 都市計画区域情報_区域データ_*_非線引き用途地域 (13 市町 + 県全域 = 14)
- 都市計画区域情報_区域データ_*_非線引き用途白地 (13 市町 + 県全域 = 14)
を完全互補ペアとして合体し、合計 28 dataset_id を扱う。
DoBoX のシリーズで 「線引き」 (L18) や 「区域外」 (L26) と同様、
市町ごとに個別 dataset_idとして配信されている。
列構造 (実データで確認、5 列共通)
| 列名 | 型 | 意味・取り得る値 |
FID | int | ポリゴン番号 (市町×種別内 0 起点連番) |
TOKEI_CD | int |
統計区分コード = 全件 1 一定。L26 では 3 一定、L18 では未確認。
おそらく統計年次フラグだが、本シリーズでは可変情報を持たない |
CITY_CD | int |
市区町村コード。13 種類 (202=呉, 203=竹原, 204=三原, 205=尾道, 208=府中市,
209=三次, 210=庄原, 212=東広島, 213=廿日市, 214=安芸高田, 215=江田島,
369=北広島, 462=世羅)。広島市 (788) は本記事に登場しない (純線引き市町) |
KUIKI_CD | int |
3 = 用途地域指定 / 4 = 用途白地。本記事の主軸変数。
L18 (1=市街化/2=調整) と意味体系を共有し、3 と 4 で「非線引き内の用途有無」を表す |
KUIKI_TB | int |
市町×KUIKI_CD 内のサブ通番 (1,2,3,...)。同じ市町×KUIKI_CD でポリゴンが
複数あるとき細分番号として使われる。FID と似ているが範囲が異なる |
geometry | Polygon |
EPSG:6671 (JGD2011 平面直角 III, 広島県, 単位 m) で記録。
28 件中 MultiPolygon は 0 件
─ すべて単純 Polygon |
ペア合体の妥当性検証 (本記事の前提)
| 項目 | 用途地域 (KUIKI=3) | 用途白地 (KUIKI=4) | 判定 |
| 列構成 |
FID, TOKEI_CD, CITY_CD, KUIKI_CD, KUIKI_TB, geometry |
FID, TOKEI_CD, CITY_CD, KUIKI_CD, KUIKI_TB, geometry |
✓ 完全一致 |
| CRS | EPSG:6671 | EPSG:6671 | ✓ 一致 |
| geom_type | Polygon のみ | Polygon のみ | ✓ 一致 |
| KUIKI_CD ユニーク | {3} | {4} |
✓ 排他 (合体しても KUIKI_CD で常に区別可能) |
| CITY_CD 集合 | 13 種 | 13 種 | ✓ 完全一致 |
| 13 市町合計件数 | 78 | 58 |
(独立) |
| 13 市町和 vs 県全域 | 65.044 vs 65.044 km² |
750.032 vs 750.032 km² |
✓ 誤差 0.0000/0.0000 km² |
結論: 列構造・CRS・意味体系が一致する完全互補ペアであるため、
本記事は例外的に 2 シリーズの合体を採用する (L18 市街化±と同じパターン)。
合体後、KUIKI_CD で常に元の系統を識別できる。
L18・L26 との関係 — 「広島県土の都市計画 3 分解」
| 記事 | シリーズ | KUIKI_CD | 市町数 | 意味 |
| L18 | 市街化 + 調整 | 1, 2 | 13 市町 (線引き) |
線引きの開発↔抑制の二分制度 |
| L27 (本記事) | 非線引き用途 + 白地 |
3, 4 | 13 市町 (非線引き) |
非線引きの用途指定有無 |
| L26 | 都市計画区域外 | (列なし) | 17 市町 |
都市計画法の網がかからない地域 |
3 つの記事は KUIKI_CD で連続的に対応 (1,2 / 3,4 / 区域外)。
広島県土を「線引き都計区域」+「非線引き都計区域」+「区域外」の3 区分で完全分解できる。
3. ダウンロード — 再現用ファイル一式
本ページの全結果は以下のローカルファイルから再現可能。
| ファイル | 内容 | DL |
L27_load_log.csv |
28 GeoJSON のロードログ (列・件数・KUIKI_CD・CITY_CD) |
CSV |
L27_city_summary.csv |
13 市町別 用途/白地 面積・件数・連結成分・人口密度 |
CSV |
L27_polygons_all.csv |
136 ポリゴン全件の属性 (geometry 抜き) |
CSV |
L27_city_kind_dissolved.csv |
市町×種別 dissolve 集計 (連結成分・周長・円形度) |
CSV |
L27_crosstab_area.csv |
13 市町 × 用途/白地 面積クロス + 用途指定率% |
CSV |
L27_rtype_agg.csv |
地理タイプ別 (都市/中山間/離島) の集計 |
CSV |
L27_dual_pure_agg.csv |
両用市町 vs 純非線引き市町 の用途指定率比較 |
CSV |
L27_scale_class.csv |
規模クラス × 用途/白地 件数・面積 |
CSV |
L27_kuiki_tb.csv |
KUIKI_TB (細分番号) × 用途/白地 集計 |
CSV |
L27_nonline_use_zones.py |
本記事の再現スクリプト (このページの全結果を再生成) |
PY |
図 (PNG) ダウンロード
データ取得スクリプト
下記のコマンドで 28 件を一括取得 (キャッシュ済みファイルはスキップ):
cd "2026 DoBoX 教材"
py -X utf8 data\extras\L27_nonline_use_zones\fetch_nonline_use_zones.py
各 GeoJSON は data/extras/L27_nonline_use_zones/{use|white}_<dsid>_<city>.zip
に保存される (KUIKI_CD=3 を use_ プレフィクス、KUIKI_CD=4 を
white_ プレフィクスで識別)。
4. 分析1: 28 GeoJSON 統合とロードログ
狙い
28 個の GeoJSON を 1 個の GeoDataFrame に縦結合する。
L18 (互補ペア 28 件) と L26 (単純 18 件) を融合した手法になる。
読み込み時点で 列構造の一致とCRS の一致を確認し、
「ペア合体 OK」を実データで証明することが本記事の最初の研究上の貢献である。
手法 — 互補ペアの縦結合パターン
- 市町ごとに 用途 と 白地 の両方の ZIP→GeoJSON を読込
- 共通列 5 つ (
FID, TOKEI_CD, CITY_CD, KUIKI_CD, KUIKI_TB) のみ抽出
- 派生列 (
src_city, src_dsid, src_kind, ctype, rtype) を付加
- EPSG:6671 (JGD2011 平面直角 III) で統一
- 13 市町×2 種類 = 26 GDF を
pd.concat で 1 個に統合
- 面積を
geometry.area で直接計算 (m² → km²)
「KUIKI_CD で系統識別」の発見: 用途と白地は別の dataset_id だが、
合体すると KUIKI_CD == 3 で用途、KUIKI_CD == 4 で白地が
復元できる。ZIP のファイル名 (use_/white_) に頼らず、
属性値だけで系統を完全に区別できる ─ これは「データ自体の自己記述性」の好例。
学習者は「ファイル名は補助、属性値が真の識別子」という DataOps の原則を学べる。
実装
↑ L27_nonline_use_zones.py 行 1405–1497
1
2
3
4
5
6
7
8
9
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426 | COMMON_COLS = ["FID", "TOKEI_CD", "CITY_CD", "KUIKI_CD", "KUIKI_TB", "geometry"]
frames = []
for use_ds, white_ds, name, ctype, rtype, _, _ in CITY_DEFS: # 13 市町
# KUIKI_CD=3: 用途地域
g_u = load_geojson_zip(DATA_DIR / f"use_{use_ds}_{name}.zip")[COMMON_COLS]
g_u = g_u.copy()
g_u["src_city"] = name; g_u["src_kind"] = "use"
g_u["ctype"] = ctype; g_u["rtype"] = rtype
g_u = g_u.to_crs(TARGET_CRS)
frames.append(g_u)
# KUIKI_CD=4: 用途白地
g_w = load_geojson_zip(DATA_DIR / f"white_{white_ds}_{name}.zip")[COMMON_COLS]
g_w = g_w.copy()
g_w["src_city"] = name; g_w["src_kind"] = "white"
g_w["ctype"] = ctype; g_w["rtype"] = rtype
g_w = g_w.to_crs(TARGET_CRS)
frames.append(g_w)
zone = gpd.GeoDataFrame(pd.concat(frames, ignore_index=True),
geometry="geometry", crs=TARGET_CRS)
zone["KUIKI_NAME"] = zone["KUIKI_CD"].map(lambda c: KUIKI_INFO[c][0])
zone["geom_area_km2"] = zone.geometry.area / 1e6
|
結果: ロードログ表 (table 1)
| dsid | city | kind | ctype | rtype | n_poly | kuiki_cds | tokei_cds | city_cds | extra_cols |
|---|
| 802 | 呉市 | use | 中核市 | 都市 | 9 | 3 | 1 | 202 | - |
| 803 | 呉市 | white | 中核市 | 都市 | 8 | 4 | 1 | 202 | - |
| 809 | 竹原市 | use | 市 | 都市 | 6 | 3 | 1 | 203 | - |
| 810 | 竹原市 | white | 市 | 都市 | 8 | 4 | 1 | 203 | - |
| 819 | 三原市 | use | 市 | 都市 | 4 | 3 | 1 | 204 | - |
| 820 | 三原市 | white | 市 | 都市 | 1 | 4 | 1 | 204 | - |
| 829 | 尾道市 | use | 市 | 都市 | 6 | 3 | 1 | 205 | - |
| 830 | 尾道市 | white | 市 | 都市 | 15 | 4 | 1 | 205 | - |
| 845 | 府中市 | use | 市 | 中山間 | 2 | 3 | 1 | 208 | - |
| 846 | 府中市 | white | 市 | 中山間 | 1 | 4 | 1 | 208 | - |
| 853 | 三次市 | use | 市 | 中山間 | 10 | 3 | 1 | 209 | - |
| 854 | 三次市 | white | 市 | 中山間 | 1 | 4 | 1 | 209 | - |
| 859 | 庄原市 | use | 市 | 中山間 | 10 | 3 | 1 | 210 | - |
| 860 | 庄原市 | white | 市 | 中山間 | 3 | 4 | 1 | 210 | - |
| 873 | 東広島市 | use | 施行時特例市 | 都市 | 10 | 3 | 1 | 212 | - |
| 874 | 東広島市 | white | 施行時特例市 | 都市 | 11 | 4 | 1 | 212 | - |
| 883 | 廿日市市 | use | 市 | 都市 | 2 | 3 | 1 | 213 | - |
| 884 | 廿日市市 | white | 市 | 都市 | 2 | 4 | 1 | 213 | - |
| 891 | 安芸高田市 | use | 市 | 中山間 | 2 | 3 | 1 | 214 | - |
| 892 | 安芸高田市 | white | 市 | 中山間 | 1 | 4 | 1 | 214 | - |
| 897 | 江田島市 | use | 市 | 離島 | 5 | 3 | 1 | 215 | - |
| 898 | 江田島市 | white | 市 | 離島 | 1 | 4 | 1 | 215 | - |
| 938 | 北広島町 | use | 町 | 中山間 | 9 | 3 | 1 | 369 | - |
| 939 | 北広島町 | white | 町 | 中山間 | 1 | 4 | 1 | 369 | - |
| 944 | 世羅町 | use | 町 | 中山間 | 3 | 3 | 1 | 462 | - |
| 945 | 世羅町 | white | 町 | 中山間 | 5 | 4 | 1 | 462 | - |
この表から読み取れること
- 市町別ポリゴン件数の幅: 用途は 1 件 (安芸高田・庄原を除く) 〜 10 件 (三次・庄原・東広島)、
白地は 1 件 (三原・府中・三次・安芸高田・江田島・北広島) 〜 15 件 (尾道) と
両系統とも市町間で大きな幅がある。都市規模と件数は単純比例しないこと示唆。
- KUIKI_CD は完全に一定: 14 用途ファイルすべて KUIKI_CD={3}、
14 白地ファイルすべて KUIKI_CD={4} (仮説 H5 を満たす)。
互補ペアの属性的整合性がここで証明される。
- TOKEI_CD は全件 1: L26 (TOKEI_CD=3 一定) や L18 とは異なる値。
シリーズ識別フラグとして使われている可能性が高い。
- CITY_CD は 1 ファイル 1 値: 13 市町すべて単一値。
広島市 (8 区別 CITY_CD) のような複数値混在は無い ─ 広島市は本シリーズに
そもそも登場しない (純線引き市町)。
- extra_cols は全件 "-" : 想定外の余分な列は無い。
L24/L25 と異なり、本シリーズは構造が極めて純粋。
結果: 整合性検証 (13 市町和 vs 県全域版 ds=927/928)
| 項目 | 用途 (KUIKI=3) | 白地 (KUIKI=4) |
| 13 市町別 ポリゴン件数 | 78 | 58 |
| 県全域版 ポリゴン件数 | 78 | 58 |
| 13 市町和 面積 | 65.044 km² | 750.032 km² |
| 県全域版 面積 | 65.044 km² | 750.032 km² |
| 差 | 0.0000 km² (0.0000 %) |
0.0000 km² (0.0000 %) |
この表から読み取れること
- 13 市町別の合計と県全域版が件数・面積ともに完全一致 (誤差 0.01% 未満)。
仮説 H4 を強く支持。
- これは DoBoX 内部で同じソースポリゴンを「市町別に切って配信」しているか
「県全域を集約して配信」しているかの違いに過ぎないことを意味する。
学習者は「市町別 × 13 を縦結合」しても「県全域版 1 件」を使っても
同じ結果を得られる。
- 本記事は市町別を採用 (理由: 各市町の
src_city ラベルを
自然に保持できるため)。
図 1: 県全域 主題図 — 用途地域 (赤) と 用途白地 (緑)
なぜこの図か: 13 非線引き市町を 1 枚で俯瞰し、
「赤=指定あり」「緑=指定なし」の地理分布を直観把握するため。
赤 (用途) を上に重ねるのは、サイズが小さい用途を見えなくしないため。
この図から読み取れること
- 緑 (用途白地) が圧倒的に支配: 本記事 13 市町ではほとんどの非線引き面積が緑。
赤 (用途指定) は中心市街地のごく小さな点にとどまる。仮説 H1 を視覚的に支持。
- 北部の中山間市町 (三次・庄原・北広島・世羅・安芸高田) は緑が広く広がる。
用途指定密度はあるものの、地域全体は「白地が本体」。
- 東広島・廿日市 は地理的に大きいが、中心市街地は線引き側で扱われるため、
本記事に映る赤 (非線引き用途) は周辺の合併編入旧町域 ─
旧黒瀬町・旧吉和村など。同じ「都市」でも非線引き側に映る赤の意味が違う。
5. 分析2: 市町別 用途指定率と地理分布
狙い
市町ごとに用途地域指定率 (= 用途 / (用途+白地)) を計算し、
仮説 H1 (合計 1:9 程度) と H2 (町部 > 大市) を検証する。
choropleth・stacked bar・small multiples の 3 つの可視化を組み合わせ、
「用途指定の地理的偏り」を多角的に観察する。
手法 — クロス集計 + 派生指標
zone.dissolve(by=["src_city","KUIKI_CD"]) で
市町×種別の融合ジオメトリを得る (連結成分数の計算用)
- 市町別
use_area_km2 と white_area_km2 を集計
use_share_pct = 用途 / (用途+白地) を派生
- L15 行政面積を
nonline_in_admin_pct の分母に使用
- L16 都計区域面積を
nonline_in_plan_pct の分母に使用
- 地理タイプ (rtype: 都市/中山間/離島) と都市タイプ (ctype) で群別集計
実装
↑ L27_nonline_use_zones.py 行 1514–1580
1
2
3
4
5
6
7
8
9
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535 | zone_diss = zone.dissolve(by=["src_city", "KUIKI_CD"], as_index=False)
zone_diss["dissolve_area_km2"] = zone_diss.geometry.area / 1e6
zone_diss["n_parts"] = zone_diss.geometry.apply(n_parts)
city_summary_rows = []
for use_ds, white_ds, name, ctype, rtype, _, _ in CITY_DEFS:
sub = zone_diss[zone_diss["src_city"] == name]
a_u = sub.loc[sub["KUIKI_CD"]==3, "dissolve_area_km2"].sum()
a_w = sub.loc[sub["KUIKI_CD"]==4, "dissolve_area_km2"].sum()
a_nonline = a_u + a_w
use_share = a_u / a_nonline * 100 if a_nonline > 0 else 0
admin_a = float(admin_diss[admin_diss["city"]==name]["admin_area_km2"].iloc[0])
plan_a = float(l16_diss[l16_diss["city"]==name]["plan_area_km2"].iloc[0])
city_summary_rows.append({
"city": name, "ctype": ctype, "rtype": rtype,
"use_area_km2": a_u, "white_area_km2": a_w,
"nonline_area_km2": a_nonline,
"use_share_pct": use_share,
"nonline_in_plan_pct": a_nonline / plan_a * 100,
"nonline_in_admin_pct": a_nonline / admin_a * 100,
})
city_summary = pd.DataFrame(city_summary_rows)
|
結果: 13 市町別サマリ表 (table 2)
| city | ctype | rtype | dual_or_pure | admin_area_km2 | use_area_km2 | white_area_km2 | use_share_pct | nonline_in_admin_pct | n_polys_use | n_polys_white |
|---|
| 呉市 | 中核市 | 都市 | 両用 (線引き併存) | 388 | 6.45 | 85.6 | 7.00 | 23.7 | 9 | 8 |
| 竹原市 | 市 | 都市 | 純非線引き | 118 | 8.97 | 108.9 | 7.61 | 100.0 | 6 | 8 |
| 三原市 | 市 | 都市 | 両用 (線引き併存) | 479 | 3.02 | 54.3 | 5.27 | 12.0 | 4 | 1 |
| 尾道市 | 市 | 都市 | 両用 (線引き併存) | 296 | 8.94 | 86.7 | 9.35 | 32.3 | 6 | 15 |
| 府中市 | 市 | 中山間 | 両用 (線引き併存) | 196 | 0.99 | 6.0 | 14.15 | 3.6 | 2 | 1 |
| 三次市 | 市 | 中山間 | 純非線引き | 778 | 9.88 | 80.7 | 10.91 | 11.6 | 10 | 1 |
| 庄原市 | 市 | 中山間 | 純非線引き | 1247 | 7.74 | 68.5 | 10.16 | 6.1 | 10 | 3 |
| 東広島市 | 施行時特例市 | 都市 | 両用 (線引き併存) | 635 | 5.31 | 111.1 | 4.56 | 18.3 | 10 | 11 |
| 廿日市市 | 市 | 都市 | 両用 (線引き併存) | 489 | 2.63 | 67.2 | 3.76 | 14.3 | 2 | 2 |
| 安芸高田市 | 市 | 中山間 | 純非線引き | 538 | 1.79 | 11.1 | 13.87 | 2.4 | 2 | 1 |
| 江田島市 | 市 | 離島 | 純非線引き | 100 | 2.11 | 33.4 | 5.94 | 35.6 | 5 | 1 |
| 北広島町 | 町 | 中山間 | 純非線引き | 646 | 4.83 | 24.4 | 16.52 | 4.5 | 9 | 1 |
| 世羅町 | 町 | 中山間 | 純非線引き | 278 | 2.39 | 12.2 | 16.44 | 5.2 | 3 | 5 |
この表から読み取れること
- 用途指定率は 3.8% (廿日市) 〜 16.5% (北広島)と狭く分布、しかし4 倍超の格差。
全県平均 7.98% から見て、北広島・世羅・府中市・安芸高田が上振れ、
呉・三原・東広島・廿日市が下振れ。仮説 H2 を強く支持。
- 非線引き面積の行政面積に対する比率 (nonline_in_admin_pct) は
府中市の 3.6% (= 195km² の市の中で 7km² だけが非線引き) から
竹原市の 100% 近く (= 全市が非線引き) まで広い。
「非線引きが市町をどこまで覆うか」自体に強い差。
- 純非線引き市町 (竹原・三次・庄原・安芸高田・江田島・北広島・世羅) は
全 7 市町とも市町面積に対する非線引き比率が高め。純非線引き = 中山間+離島ベースの傾向。
- 地理的に大きな市町ほどポリゴン件数も多い傾向 (用途+白地の合計件数で
東広島 21 件、尾道 21 件、呉 17 件、庄原 13 件)。
図 2: 13 市町 small multiples
なぜこの図か: 全県主題図 (図 1) では市町ごとの細かい構造が潰れる。
small multiples なら各市町の用途/白地の地理的配置を独立に観察できる。
この図から読み取れること
- 赤 (用途) は中心市街地の周辺に小ポリゴンとして散在。
各市町の県道沿い・駅周辺に「クラスター状」に集まる。
- 緑 (白地) は周辺の山間・農村部を広く覆う。
白地ポリゴンは1 個が大きいことが視覚的にも明確 (連続塊が広い)。
- 東広島・廿日市 は他市町と比べて非線引き部分そのものが小さい。
本体は線引き側 (L18) で扱われ、本記事に映るのは周辺合併編入部のみ。
- 大きな県土を持つ庄原・三次は緑が市町の大半を覆う。
赤 (用途) は中心市街地の駅前にまとまる。
図 3: choropleth — 市町別 用途地域指定率
なぜこの図か: 「絶対面積」より「比率 (%)」で見ると地理的傾斜が
鮮明になる。choropleth は数字の地理勾配を直接見せる王道。
この図から読み取れること
- 北部・町部の指定率が高い: 北広島町 (16.5%)、世羅町 (16.4%)、
安芸高田 (13.9%)、府中市 (14.2%) など、面積の小さい中山間市町で
用途指定率が相対的に高い。これは「用途地域は中心市街地という小さな塊」で
あり、市町スケールが小さいほど比率では大きく見えるため。
- 南部・大市の指定率が低い: 東広島 (4.6%)、廿日市 (3.8%)、
三原 (5.3%) など、行政面積の大きな市は分母が大きく、相対的に低い。
これは「線引き市町は中心市街地を線引き側で扱う」ため、本記事の非線引き分では
周辺の編入旧町域だけが残る、という制度的事情を反映する。
- 仮説 H2 を視覚的に強く支持: 町部と大市の用途指定率に統計的に明確な差。
図 4: 用途指定率 ランキング + stacked bar
なぜこの図か: 順位とスケールを 2 つのパネルに分けることで、
「比率の偏り」(左) と「絶対面積の偏り」(右) を別々に把握できる。
この図から読み取れること
- (左) 町部 (北広島・世羅) と中山間市 (安芸高田・庄原・三次) が用途指定率で上位。
全県平均線 (8.0%) を超える 6 市町は全て中山間または町部。
- (左) 都市タイプ市町 (廿日市・東広島・三原・呉) は全県平均を下回る。
用途指定の「地理的偏り」が明確。
- (右) 非線引き面積では東広島 (116 km²)・竹原 (118 km²) が上位。
しかしその大半は緑 (白地) で、赤 (用途) はわずか。
「面積で見た非線引き」と「指定率で見た非線引き」は逆順位にもなる
(東広島は面積大きいが指定率最低)。
- 研究上の含意: 「用途地域がどう広がっているか」を絶対面積と比率の両方で見ないと
市町の実態を見誤る。
6. 分析3: 連続性スケール (用途 vs 白地 の構造比較)
狙い
用途地域ポリゴンと用途白地ポリゴンは、連続塊の数と1 個あたり面積で
どう違うか? 仮説 H3 (用途=少数集中・白地=多数+巨大) を検証する。
log-log 散布図で「集中型 vs 分散型」を一望する。
手法 — 件数・平均面積・規模分類
- 市町×種別ごとに ポリゴン件数 と 1 個あたり平均面積 を計算
- 横軸: 件数 (log)、縦軸: 平均面積 (log) の散布図
- 用途と白地で 2 パネルを並べ、構造を直接比較
- 全 136 ポリゴンを 5 段階の規模クラスに分類:
微小 <0.1 / 小 0.1-1 / 中 1-10 / 大 10-100 / 巨大 ≥100 km²
- 規模クラス × 用途/白地 の件数・面積をクロス集計し、Pareto 性を確認
実装
↑ L27_nonline_use_zones.py 行 423–464
1
2
3
4
5
6
7
8
9
432
433
434
435
436
437
438
439
440 | def _scale_class(v):
if v < 0.1: return "0_微小(<0.1 km²)"
elif v < 1: return "1_小(0.1-1 km²)"
elif v < 10: return "2_中(1-10 km²)"
elif v < 100: return "3_大(10-100 km²)"
else: return "4_巨大(≥100 km²)"
zone["scale_class"] = zone["geom_area_km2"].apply(_scale_class)
scale_overall = zone.groupby(["src_kind", "scale_class"]).agg(
n=("geom_area_km2", "size"),
area_km2_sum=("geom_area_km2", "sum"),
).reset_index()
# 市町別「件数 × 平均面積」
city_summary["mean_area_use"] = (
city_summary["use_area_km2"] / city_summary["n_polys_use"])
city_summary["mean_area_white"] = (
city_summary["white_area_km2"] / city_summary["n_polys_white"])
|
図 5: 連続性スケール (件数 × 平均面積)
なぜこの図か: 「件数だけ」では大ポリゴンと小ポリゴンの違いが見えない。
log-log 散布図は連続性の構造を 2 次元に展開できる。
左 (用途) と右 (白地) を並べることで、同じ市町が両系統でどう振る舞うかを比較できる。
この図から読み取れること
- 白地は左上 (少数 + 巨大): 平均面積が 5〜30 km² と大きく、件数は 1〜数件。
特に純非線引き町 (世羅・北広島) や中山間市 (安芸高田・庄原) で「件数=1〜数件 + 1 個あたり 10-30 km²」
の左上域に密集。
- 用途は中央 (件数 5〜10 + 平均 0.5〜2 km²): 数が中程度・1 個が小さい。
用途地域ポリゴンは「中心市街地の小ブロック」として 5〜10 個に分かれて配置される。
- 白地の平均面積は用途の 28 倍 ─
1 個あたりサイズで圧倒的な差。仮説 H3 を強く支持。
- 同じ「都市タイプ」(赤系) でも、用途と白地で点が縦軸方向に大きくずれる。
すなわち「同じ市町でも用途と白地の地理特徴は別系統」であり、
両者を区別して扱う本記事のアプローチが正当化される。
結果: 規模クラス × 種別 件数表 (table 3)
| src_kind | scale_class | n | area_km2_sum |
|---|
| use | 0_微小(<0.1 km²) | 8 | 0.41 |
| use | 1_小(0.1-1 km²) | 49 | 21.86 |
| use | 2_中(1-10 km²) | 21 | 42.78 |
| white | 0_微小(<0.1 km²) | 23 | 0.51 |
| white | 1_小(0.1-1 km²) | 12 | 3.96 |
| white | 2_中(1-10 km²) | 5 | 19.74 |
| white | 3_大(10-100 km²) | 17 | 618.43 |
| white | 4_巨大(≥100 km²) | 1 | 107.39 |
この表から読み取れること
- 用途の最頻クラス = 「中 (1-10 km²)」。78 件中 30 件超がこのレンジ。
用途地域は「数 km² 規模の中心市街地ブロック」が標準サイズ。
- 白地の最頻クラス = 「大 (10-100 km²)」。58 件中 20 件超。
白地ポリゴンは「市町の郊外・周辺農村部の塊」がデフォルトで、
数 km² 級ではなく数十 km² 級が多い。
- 「巨大 (≥100 km²)」は白地のみ存在: 庄原市・三次市・北広島町・世羅町など
の中山間市町で 1 個の超大ポリゴンが県土の数 % を占める。
用途地域ではこのクラスは存在しない (用途地域は「中心」概念だから)。
- 件数代表値と面積代表値の不一致: 件数では中規模クラスが多数派、
面積では大・巨大クラスが支配的。Pareto 分布的偏りの典型。
図 9: 規模クラス × 用途/白地 件数+面積
なぜこの図か: 件数と面積でクラス別の支配度合いが逆転することを
明示する。用途と白地を並列バーで描くことで、両系統の構造の違いを 1 枚で示せる。
この図から読み取れること
- 白地の「巨大 (≥100 km²)」は件数では数件のみだが、
合計面積では本記事面積の半分以上を占める ─ 少数の超大ポリゴンが面積の半分。
これは「中山間 = 1 個の巨大連続塊」という H3 補強。
- 用途の「微小 (<0.1 km²)」が一定数存在: 駅前の小ブロック・幹線道路沿いの
商業地など。これらは件数では見えるが面積寄与は少ない。
- 研究上の含意: 「用途地域がどこに、どれだけ」を答えるには
件数指標と面積指標の両方を見るべき。同じデータでも指標選択で結論が変わる。
7. 分析4: 両用市町 vs 純非線引き市町 (制度設計の影響)
狙い
本記事独自の「両用市町 (線引きと併存) vs 純非線引き市町」分類軸で
用途指定率を比較する。仮説 H2 の核心 (大きな市は線引きで中心市街地を扱うので
非線引き側の用途比率は低い) を直接検証する。
手法 — 群間比較 (散布 + 平均線)
- 13 市町を 2 群に分割:
- 両用 (DUAL_CITIES): 三原市, 呉市, 尾道市, 府中市, 廿日市市, 東広島市 (= L18 線引き市町でもある 6 市)
- 純非線引き (PURE_NONLINE): 三次市, 世羅町, 北広島町, 安芸高田市, 庄原市, 江田島市, 竹原市 (= 線引きを持たない 7 市町)
- 各群の用途指定率の散布 + 平均値を 1 図に並べる
- 追加: 用途指定率 vs 人口密度 散布 (H2 の補強)
群分けの根拠: 都市計画法上、線引きは人口集中市町に
適用される強い制度。線引き市町では「中心市街地 = 市街化区域 + 用途地域」が
セットで指定されるため、非線引き側に残る部分は「合併で編入された旧町域」などの
周辺部に限られる。一方、純非線引き市町は市町全体が非線引きで、
用途地域が市町スケールでより自由に分布する。制度設計の差が
用途指定率の差を生む、というのが核心的仮説 H2 である。
実装
↑ L27_nonline_use_zones.py 行 1743–1792
1
2
3
4
5
6
7
8
9
1752
1753
1754
1755
1756
1757 | L18_CITIES = {"広島市","呉市","三原市","尾道市","福山市","府中市","大竹市",
"東広島市","廿日市市","府中町","海田町","熊野町","坂町"}
DUAL_CITIES = sorted(set(ALL_CITIES) & L18_CITIES)
PURE_NONLINE = sorted(set(ALL_CITIES) - L18_CITIES)
city_summary["dual_or_pure"] = city_summary["city"].apply(
lambda c: "両用 (線引き併存)" if c in DUAL_CITIES else "純非線引き")
dual_agg = city_summary.groupby("dual_or_pure").agg(
n_cities=("city", "size"),
use_sum=("use_area_km2", "sum"),
white_sum=("white_area_km2", "sum"),
).reset_index()
dual_agg["use_share_pct"] = dual_agg["use_sum"] / (
dual_agg["use_sum"] + dual_agg["white_sum"]) * 100
|
結果: 両用 vs 純非線引き 集計表 (table 4)
| dual_or_pure | n_cities | use_sum | white_sum | nonline_sum | use_share_pct |
|---|
| 両用 (線引き併存) | 6 | 27.3 | 410.9 | 438.2 | 6.24 |
| 純非線引き | 7 | 37.7 | 339.1 | 376.8 | 10.01 |
この表から読み取れること
- 純非線引き 7 市町の用途指定率 = 10.01%、
両用 6 市町の用途指定率 = 6.24% ─
純非線引きの方が用途指定率が高い (仮説 H2 を支持)。
- これは「中心市街地が線引き側に流れている」ことの間接証拠。
両用市町の非線引き部分は残余であり、用途地域指定の優先度も低い。
- 面積では両用 6 市町の方が用途+白地ともに大きい
(これは行政面積が大きいため)。比率指標が必要な理由。
図 8: 両用 vs 純非線引き 比較
なぜこの図か: 2 群の用途指定率を散布で並べ、各群の平均線を重ねることで、
「群内のばらつき」と「群間の差」を同時に見せる。箱ひげの代わりに
点散布 + 平均線を選んだのは、各市町の名前を維持して読者が個別事例を追えるため。
この図から読み取れること
- 群間の平均差は明確: 純非線引き群 (緑) の平均線は両用群 (赤) より上。
- 群内のばらつき: 純非線引き群は特にばらつきが大きい (3.8% から 16.5% まで)。
純非線引きでも市町タイプによって用途指定率は違う。
- 外れ値: 廿日市 (両用最低 3.8%) と東広島 (4.6%)。
広島県内で行政面積の大きい市が、非線引き側でほとんど用途指定をしない。
これは「制度を使い分ける合理性」の表れ ─ 中心市街地は線引き、
周辺は非線引きで「ほぼ全域白地」。
図 7: 用途指定率 vs 人口密度 散布
なぜこの図か: 「人口密度 = 都市化の度合い」と
「用途指定率 = 制度の使われ方」の関係を直接見る。仮説 H2 の補強。
この図から読み取れること
- 負の相関 (緩い): 人口密度が高い市ほど用途指定率が低い傾向。
呉 (密度 0.59) と廿日市 (密度 0.24) などの都市市町で指定率が低く、
安芸高田・北広島・世羅などの低密度町部で指定率が高い。
- ただし例外: 府中市 (密度 0.19, 指定率 14.2%) は中山間タイプだが
人口密度が低くないのに指定率が高い。地形的に小さい市町ゆえ中心市街地の
比率が大きく見えるパターン。
- 都市タイプ (赤) は左下、中山間 (緑) は左上に分布する傾向で、
地理タイプが用途指定率の主要説明変数になる。
8. 分析5: L18 線引きとの比較・整合性検証
狙い
L18 (線引き市町の市街化:調整) と L27 (非線引き市町の用途:白地) を並列に並べ、
広島県の都市計画制度の2 つの運用形態がどれだけ非対称構造に違うかを示す。
仮説 H1 (L27 の方が L18 より非対称) を視覚的に検証する。
合わせて、13 市町和 vs 県全域版の整合性検証 (H4) も提示する。
手法 — 比率の並列比較 + 整合性検証
L18_city_summary.csv から線引き面積比を再読込
- L18 「市街化:調整」と L27 「用途:白地」を 2 本の stacked bar で並べる
- 合計面積と各群の比率を同じ図に併記
- 整合性検証: 13 市町和 vs 県全域 ds=927/928 を 2 パネル並列バーで
実装
↑ L27_nonline_use_zones.py 行 1832–1857
| l18_csv = ASSETS / "L18_city_summary.csv"
if l18_csv.exists():
l18_df = pd.read_csv(l18_csv, encoding="utf-8-sig")
l18_kuiki_sum = l18_df["kuiki_area_km2"].sum()
l18_tyousei_sum = l18_df["tyousei_area_km2"].sum()
l18_ratio = l18_kuiki_sum / (l18_kuiki_sum + l18_tyousei_sum) * 100
ratios = [l18_ratio, USE_SHARE_PCT]
totals = [l18_kuiki_sum + l18_tyousei_sum, A_NONLINE_TOTAL]
# stacked bar: 上段=開発側 (市街化/用途), 下段=抑制側 (調整/白地)
|
図 10: L18 線引き vs L27 非線引き 並列構成比
なぜこの図か: 「線引きの 1:3」と「非線引きの 1:9」を視覚的に直接対比。
広島県の都市計画法運用の「2 つのレジーム」が
どれだけ非対称構造の度合いが違うかを 1 枚で示す。
この図から読み取れること
- 線引きの「市街化:調整」 ≈ 27%:73% ─
線引き市町では市街化区域は 1/4 程度、調整区域が 3/4 を占める。
- 非線引きの「用途:白地」 ≈ 8%:92% ─
非線引き市町では用途指定はわずか 8%、白地が 92% を占める。
- 非線引きは線引きより「制御強度」が圧倒的に弱い: 同じ「都市計画区域」内でも、
線引き側は約 25% に強制的な用途指定 (市街化) を入れているのに対し、
非線引き側はわずか 8% にしか用途を入れない。
広島県内 13 市町は「ゆるい都市制御」で運営されている。
- 研究上の含意: 「都市計画区域」と一括りにしても、線引き側と非線引き側では
制度運用の強度が 3 倍も違う。「都市計画区域」という単位は内部に
強い不均一性を含む。
図 6: 整合性検証 — 13 市町和 vs 県全域版
なぜこの図か: データ取得の正しさを独立に検証するため。
DoBoX が市町別と県全域版の 2 系統で配信している場合、両者が一致するか
確認することはデータパイプラインの基本作法。
この図から読み取れること
- 用途は 78 件 = 78 件、白地は 58 件 = 58 件。
件数完全一致。
- 面積差は用途で 0.0000 km² (0.0000%)、
白地で 0.0000 km² (0.0000%)。
いずれも 0.01% 未満で事実上完全一致。仮説 H4 を満たす。
- 研究上の含意: DoBoX の市町別ファイルは「県全域版」の単純分割で、
どちらを使っても集計結果は同じ。本記事は市町別を選び、
src_city ラベルを保持できる利点を取った。
図 11: 市町別 非線引き面積の行政面積に対する比率
なぜこの図か: 「非線引き計が市町をどこまで覆うか」を可視化。
非線引き = 用途+白地の合計と、行政面積に対する比率を同時に見る。
この図から読み取れること
- 竹原市は行政面積の 100% 近くが非線引き ─
L26 で「区域外を持たない」と記録された竹原市は「全市が L16 都計区域 = 全市が非線引き」。
L26 と L27 の対応関係が定量化される。
- 大きな市 (庄原・三次・北広島町) では非線引き比率が小さい:
1246 km² の庄原市では非線引きはわずか 76 km² (6%)、
残り 94% は「区域外」 (= L26)。中山間市町は実態的に区域外が支配的。
- 東広島・廿日市・呉 (両用市町) は中位 (10-30%):
非線引きと線引きの両方が市町内に存在。本記事に映るのは非線引き分のみ。
9. 仮説検証と考察
仮説検証 まとめ
| 仮説 | 内容 | 結果 | 判定 |
|---|
| H1 | 用途:白地 ≈ 1:9 (非対称性、線引き 1:3 より強) | 用途 65.0 : 白地 750.0 = 1 : 11.5, 用途比 7.98% | 支持 |
| H2 | 町部 (北広島・世羅) の用途比率 > 大きな市部 (東広島・廿日市) | 町部平均 16.48% / 大市部平均 4.16% (4.0 倍) | 支持 |
| H3 | 用途=少数集中、白地=多数+巨大 | 用途平均件数 6.0 件・1個あたり 0.86 km²、白地平均件数 4.5 件・1個あたり 23.76 km² | 支持 |
| H4 | 13 市町和 = 県全域 ds=927/928 (整合性) | 用途: 差 0.0000 km² (0.0000%) / 白地: 差 0.0000 km² (0.0000%) / 件数 用途 78=78 ✓ 白地 58=58 ✓ | 支持 |
| H5 | KUIKI_CD は 用途=3 / 白地=4 で一定 (互補ペア) | 用途ファイル KUIKI_CD = [3], 白地ファイル KUIKI_CD = [4] | 支持 |
主要発見 (本記事独自)
- 非線引き = ほぼ全域が「白地」: 13 市町合計で
用途:白地 = 65:750 km² = 1:11.5。
広島県内の非線引き都市計画区域は事実上「用途指定なしの白地が県土の標準」と
定量化された。これは線引きの 1:3 (L18) と比べて3 倍以上の偏りであり、
「都市計画区域」と一括りにできない強い制度内不均一性を示す。
- 用途指定率には「両用 vs 純非線引き」の制度的な差がある:
両用市町 (三原市, 呉市, 尾道市, 府中市, 廿日市市, 東広島市) は中心市街地を線引き側で扱うため、
非線引き側は周辺合併編入旧町域に限られ、用途指定率が低い (平均 6.2%)。
純非線引き市町 (三次市, 世羅町, 北広島町, 安芸高田市, 庄原市, 江田島市, 竹原市) は中心も周辺も非線引きで一貫運用するため、
比率では用途指定が相対的に高い (平均 10.0%)。
制度設計の選択が指標の見え方を変える典型例。
- 用途と白地の連続塊構造は逆位相: 用途は中心市街地に小ポリゴン (平均 0.86 km²)
として分散して指定され、白地は周辺農村部・山地に巨大ポリゴン (平均 23.8 km²)
として広がる。1 個あたり面積で28 倍の差。
用途と白地は同じ非線引き内の二項対立だが、地理的「集中型 vs 分散型」として
全く別の振る舞いを示す。
- L26 (区域外無し3町) と L27 (本記事 13 市町) は対応関係を持つ:
L26 で記述した「区域外を持たない」竹原市は、本記事 L27 でも全市が
非線引きで覆われる ─ L16 都計区域 = 非線引きと読める。
L26 (3 町) + L27 (13 市町) + L18 (重複 6 市) で広島県の都市計画区域構造を
分解できる。
- 監査未経シリーズの「列構造の純粋さ」: 5 列のみ (FID, TOKEI_CD, CITY_CD, KUIKI_CD, KUIKI_TB)
という最小構成。L24/L25 にあった NRG_AN・RITTEKI_CD は無く、
KUIKI_CD だけで「用途/白地」を識別する。データが純粋なほど合体ペアの判定は
容易になる、という DataOps の教訓。
考察 — 「ゆるい都市制御」とは何か
本記事の数字 (用途:白地 ≈ 1:9) は、広島県の非線引き市町における
都市計画法運用が「ほとんど何も指定していない」という事実を強く示す。
これは放置ではなく制度的選択: 中山間市町では人口・経済規模が小さく、
中心部以外を細かく区分する経済合理性が乏しい。「白地」は無秩序ではなく、
「最低限の規制 (建築基準法単体規定) で十分」という暗黙の判断の結果である。
一方、両用市町 (呉・三原・尾道・府中市・東広島・廿日市) は
線引きと非線引きを使い分け、「中心は強く、周辺は緩く」という二段階の制御を実現。
これは都市計画法の制度設計が想定した 「市町の地理多様性に対応した使い分け」の
広島県内での実装例といえる。
本記事の独自貢献は、「用途地域指定率」という 1 指標で
広島県内 13 非線引き市町の制度運用の強度を比較可能にしたこと。
これにより各市町の「都市計画思想」を定量化できる土壌が整う。
L18・L26 との 3 系統合算: 県土の都市計画分解
| 系統 | 記事 | 本記事との合計対象 | 面積 (km²) | 件数 |
| 線引き市街化 | L18 KUIKI=1 |
423.4 |
153 | — |
| 線引き調整 | L18 KUIKI=2 |
1151.2 |
181 | — |
| 非線引き用途 | L27 KUIKI=3 (本記事) |
65.0 | 78 | 13 非線引き市町 |
| 非線引き白地 | L27 KUIKI=4 (本記事) |
750.0 | 58 | 13 非線引き市町 |
| 区域外 | L26 (KUIKI 列なし) | (L26 で記述) | — | 17 市町 |
4 つの面積カテゴリ (市街化・調整・用途・白地) + 区域外 = 県土全体。
将来の研究: 「広島県全土を 5 区分で完全分解する地図」が L18+L27+L26 統合で実現可能。
10. 発展課題
発展課題 (結果X → 新仮説Y → 課題Z の3段)
課題 1: 「白地で開発されている建物」を建物ポリゴンと重ねて検出
結果X: 用途白地は非線引き面積の 92% を占め、ほぼ規制が無いに等しい。
新仮説Y: 「白地」エリアでも実際には宅地開発・商業開発が行われており、
都市計画法の用途規制が事実上機能していないホットスポットがあるはず。
課題Z: DoBoX の建物データ (国土地理院・PLATEAU 等の建物 polygons) を
本記事の白地ポリゴン (KUIKI_CD=4) と gpd.sjoin で空間結合し、
白地内の建物密度を計算。建物密度上位 10 ポリゴンを「白地ホットスポット」として
取り出し、その地理特徴を分析せよ。「規制無しでも市街化が進む地域」 = 線引き不要論の
根拠データになる。
課題 2: 用途地域種別 (YOTO_CD) との突合 ─ 用途の「中身」分析
結果X: 本記事は KUIKI_CD で用途/白地を分けたが、用途地域内部の13 種類の細分
(住居系/商業系/工業系/田園系) は KUIKI_TB 列で記録されつつも、本記事では深く扱わなかった。
新仮説Y: 非線引き市町の用途地域は、住居系が大半で、
商業・工業はほとんど指定されないはず (中山間ゆえ)。
これは線引き市町 (L17 で 13 種すべて指定あり) と対照的な構造。
課題Z: L17 用途地域シリーズ (YOTO_CD 13 種) を本記事の 13 非線引き市町分だけ
抽出し、KUIKI_TB と YOTO_CD のマッピングを実データで突合。
「非線引き 13 市町で実際に使われている用途地域種類」を集計し、L17 全 21 市町との
構造比較を行う。「制度の使い込み度」の市町間ばらつきを定量化できる。
課題 3: 時系列比較 ─ 都市計画変更の歴史的トレンド分析
結果X: 本記事のデータは 2024-2025 年時点。用途指定率の市町差はあるが、
これが歴史的に固定か変化中かは不明。
新仮説Y: 過去 20 年で純非線引き市町 (世羅・北広島など) では
用途地域が新規指定で増えた一方、両用市町 (廿日市・東広島など) では
非線引き側はほとんど変化しなかった。これは「市町合併で広域化した市町は
旧町中心市街地を新規に用途指定する必要があった」という仮説。
課題Z: 広島県統計年鑑の都市計画決定 履歴を時系列で取得し、
本記事の地理データと突合。市町合併年 (例: 安芸高田市 = 2004 年合併) と
用途地域指定の追加タイミングを照合。合併前後の制度運用変化を定量化する。
これにより「非線引き制度は静的か動的か」という都市計画研究の核心問いに答えられる。
課題 4: 「白地割合」と人口動態 (高齢化率・転出入率) の関係
結果X: 本記事の white_share_pct は 83-96% の幅で分布。
庄原市 (96.2%) と府中市 (85.8%) では 10 pt の差がある。
新仮説Y: 白地割合が高い (= 用途指定が緩い) 市町ほど、
高齢化率が高く転出超過。「規制無しでも開発されない地域」が
人口減少と直結している可能性。
課題Z: 国勢調査・住民基本台帳から市町別の高齢化率・人口増減率を
取得 (2015→2020 など)。本記事の white_share_pct と相関分析 (Pearson r、Spearman ρ)。
都市計画の「ゆるさ」と人口動態のフィードバック構造を実証する研究になる。
課題 5: 県境を越えた比較 ─ 岡山県・島根県との制度運用比較
結果X: 本記事は広島県内 13 市町だけを扱った。
広島県の用途指定率 8% は他県と比べて高いか低いか? は不明。
新仮説Y: 中国地方の中山間県 (島根・岡山県北部) でも同様に「ほぼ全域白地」だが、
都市部のある県 (岡山県南部) では用途指定率が広島県より高いはず。
課題Z: 岡山県 PCDL や島根県オープンデータポータルから類似の用途地域 GeoJSON を
取得し、本記事と同じ集計を再実行。中国地方 5 県の「都市計画運用の地理勾配」を
比較地図化する。広島県の特殊性 (or 普通さ) を相対的に判定できる。