✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
|---|---|
| #222 | dataset #222 |
| #333 | dataset #333 |
| #444 | dataset #444 |
| #600 | 雪崩危険箇所情報_北広島町 |
| #666 | dataset #666 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
| #1468 | 都市計画区域情報_DID地区境界データ_広島市_2020 |
| #1471 | 都市計画区域情報_DID地区境界データ_呉市_2020 |
| #1473 | 都市計画区域情報_DID地区境界データ_竹原市_2020 |
| #1476 | 都市計画区域情報_DID地区境界データ_三原市_2020 |
| #1479 | 都市計画区域情報_DID地区境界データ_尾道市_2020 |
| #1482 | 都市計画区域情報_DID地区境界データ_福山市_2020 |
| #1485 | 都市計画区域情報_DID地区境界データ_府中市_2020 |
| #1487 | 都市計画区域情報_DID地区境界データ_三次市_2020 |
| #1490 | 都市計画区域情報_DID地区境界データ_大竹市_2020 |
| #1493 | 都市計画区域情報_DID地区境界データ_東広島市_2020 |
| #1495 | 都市計画区域情報_DID地区境界データ_廿日市市_2020 |
| #1500 | 都市計画区域情報_DID地区境界データ_府中町_2020 |
| #1502 | 都市計画区域情報_DID地区境界データ_海田町_2020 |
| #1505 | 都市計画区域情報_DID地区境界データ_坂町_2020 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L23_did_boundary.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
本記事は、広島県インフラマネジメント基盤 DoBoX が公開する 「都市計画区域情報_DID地区境界データ」シリーズ 14 件 (#1468, #1471, #1482, #1493, #1495, #1479, #1476, #1473, #1485, #1490, #1487, #1500, #1502, #1505) を縦結合し、R2 国勢調査ベースで広島県内 14 DID 指定市町の 人口集中地区 (DID) 計 48 ポリゴンから、 広島県の都市部の地理構造 ── 全県 DID 配置・市町別 DID 個数と規模・人口密度・ DID 面積占有率・居住誘導区域 (LIP) との関係 ── を分析する研究記事である。 DID は「都市そのもの」を定義する国勢調査の中心概念であり、 DID の地理は都市計画・コンパクトシティ政策の出発点である。 全 20 市町中 6 市町は DID 無指定 ── そのコントラストも研究対象とする。
geom_area_m² / 10,000 ≈ TOCHI_A で約 1.0 倍の比率
(本データで実測 0.998-1.000)。'a', 'b', 'c', ... のアルファベット 1 文字。
広島市は 8 区にまたがる 18 DID で a-r、福山市は 6 DID で a-f。DID 人口 / 市総人口。
「市民の何割が DID に住んでいるか」。
府中町 (1.0 ≈ 全員 DID) ↔ 三次市・三原市 (低い、町全体に住宅が散在)。DID 面積 / 市総面積。
「市域の何割が DID か」。
ベッドタウン町 (府中町・海田町・坂町) で >30%、
広い中山間都市 (三次・三原) では 1% 程度。4πA / P²。完全な円なら 1.0、細長い形ほど 0 に近づく。
DID の形状が「コンパクトな都市核」か「線的な集落」か判定する指標。GeoDataFrame
(48 polygon × 9 列 + 派生 5 列) に縦結合できる。
内 1 件 (三次市 ds=1487) は GeoJSON リソースが他市町データを誤配布していたため、
Shapefile リソースから geojson に変換する手順も学ぶ。groupby で実装する。geopandas.plot(column=...) で
主題図 (choropleth)化し、人口密度の地理分布を可視化する。本記事はDID 地区境界 14 件のみを主データとする研究記事である。 L19 居住誘導区域 8 件は「現在の都市核 vs 将来の集約核」のコントラストを 描く参考データとして使用するが、L19 主導の居住誘導分析記事と合体させない (要件 I 違反の水増し回避)。 L22 性別年齢別人口の町丁単位データとのクロス分析 (DID 内 vs 外の高齢化率) は発展課題に留める。 14 DID 市町と 6 DID 無指定市町のコントラスト (人口・面積・地理タイプ) は 本データ + 行政区域で完結するため分析に含める。
DID 地区境界 14 件はそれぞれ 1 市町分の DID polygon GeoJSON (MultiPolygon) を ZIP で配布している。列構造は 14 件で 100% 一致 (9 列)。
| dataset_id | 市町 | 市町タイプ | DoBoX | DID数 | DID人口 | DID面積(ha) | CITY_CD |
|---|---|---|---|---|---|---|---|
| #1468 | 広島市 | 政令市 | DoBoX | 18 | 1,039,093 | 13,220 | 101,102,103,104,105,106,107,108 |
| #1471 | 呉市 | 中核市 | DoBoX | 5 | 142,702 | 2,771 | 202 |
| #1482 | 福山市 | 中核市 | DoBoX | 6 | 264,631 | 5,990 | 207 |
| #1493 | 東広島市 | 施行時特例市 | DoBoX | 4 | 67,464 | 1,165 | 212 |
| #1495 | 廿日市市 | 市 | DoBoX | 3 | 81,178 | 1,503 | 213 |
| #1479 | 尾道市 | 市 | DoBoX | 3 | 48,121 | 1,142 | 205 |
| #1476 | 三原市 | 市 | DoBoX | 1 | 44,685 | 1,039 | 204 |
| #1473 | 竹原市 | 市 | DoBoX | 1 | 6,084 | 221 | 203 |
| #1485 | 府中市 | 市 | DoBoX | 1 | 18,628 | 568 | 208 |
| #1490 | 大竹市 | 市 | DoBoX | 2 | 21,871 | 793 | 211 |
| #1487 | 三次市 | 市 | DoBoX | 1 | 8,793 | 220 | 209 |
| #1500 | 府中町 | 町 | DoBoX | 1 | 50,893 | 578 | 302 |
| #1502 | 海田町 | 町 | DoBoX | 1 | 27,732 | 481 | 304 |
| #1505 | 坂町 | 町 | DoBoX | 1 | 9,263 | 265 | 309 |
合計: 48 DID polygon / DID 人口 1,831,138 人 / DID 面積 29,956 ha = 299.6 km² (R2 国勢調査ベース)。広島県全域人口約 278 万人に対し、 DID 集中率は 65.9% ─ 県民の約 2/3 が DID 内に居住している。
| 市町 | タイプ | 地理タイプ | 面積 km² | 人口 (千人) | 密度 (人/km²) |
|---|---|---|---|---|---|
| 庄原市 | 市 | 中山間 | 1246.5 | 33 | 26 |
| 安芸高田市 | 市 | 中山間 | 537.8 | 27 | 50 |
| 江田島市 | 市 | 離島 | 100.7 | 22 | 218 |
| 熊野町 | 町 | 広島近郊町 | 33.7 | 23 | 682 |
| 北広島町 | 町 | 中山間 | 646.2 | 17 | 26 |
| 世羅町 | 町 | 中山間 | 278.2 | 15 | 54 |
DID 無指定の 6 市町は「中山間」「離島」「広島近郊町」の 3 タイプ。 人口密度は最大の熊野町 (683/km²) でも DID 認定線の 4,000 人/km² の 1/6 程度。
| 列名 | 型 | 意味 |
|---|---|---|
TOKEI_CD | int32 | 統計区分コード。本データ全件 1 (定数) |
CITY_CD | int32 | 市区町村コード。広島市は 8 区を 101-108 で分割するため、 広島市内の DID は 8 通りの CITY_CD を持つ |
KUIKI_CD | int32 | 区域コード。本データ全件 1 (DID 区域識別、定数)。
三次市の Shapefile 経由データのみ 3 となるが、
意味解釈に大きな影響なし |
ZU_NO | object | DID 地区番号 ('a','b','c'... アルファベット)。
市町内で連番。広島市は a-r の 18 文字、
福山市は a-f |
TOCHI_A | int32 | DID 面積 (ha)。単位はヘクタール。
geom.area / 10,000 とほぼ完全に一致 (実測 0.998-1.000 倍) |
JINKOU_S | int32 | DID 人口。R2 国勢調査ベース。 DID 認定基準により最小 5,000 人以上が原則 |
BIKOU | object | 備考。本データでは全件 None |
RITTEKI_CD | int32 | 立地コード (1 / 2 の 2 値、仕様書未公開のため参考扱い) |
geometry | MultiPolygon | DID ポリゴン境界。EPSG:6671 (JGD2011 平面直角第III系)。 本記事の主役データ。市内に飛び地のある DID は MultiPolygon が複数 part |
本記事の再現性を担保するため、HTML 1 枚から 生データ・中間 CSV・図 PNG・再現 Python を直リンクで取得できる。
14 件の ZIP は前項の表からそれぞれ DoBoX へリンク。 あるいは一括取得スクリプト:
cd "2026 DoBoX 教材"
py -X utf8 data\extras\L23_did_boundary\fetch_did_boundary.py
合計サイズ約 1.7 MB。監査時に取得済の 3 市町 (広島市・呉市・福山市) は
data/extras/_urban_planning_audit/ から自動コピー、
残り 11 市町は DoBoX から HTTP 取得 (約 10 秒)。
三次市 (ds=1487) のみ Shapefile から GeoJSON への変換手順を含む。
実行は cd "2026 DoBoX 教材"; py -X utf8 lessons\L23_did_boundary.py。
14 ZIP がローカルにあれば 1 分以内で全図 + CSV 再生成 (要件 S 準拠)。
14 ZIP の DID GeoJSON を 1 個の GeoDataFrame (48 polygon × 9 列 + 派生 5 列) に統合し、後段の市町別集計・主題図・LIP オーバーレイの基盤データを作る。行政区域 21 件 (DID 14 + 無指定 6 + 広島県全域 1) を背景レイヤーとして同時に読み込む。
直感: ZIP を読む → 列を共通 9 列に揃える → 縦結合 → CRS 変換 → 派生指標 (面積/密度/コンパクトネス/飛び地数) を計算 → 行政区域 dissolve で背景レイヤー作成。
大筋 (5 ステップ)
load_geojson_zip() で GeoDataFrame を読むsrc_city / src_dsid / ctype を付与pd.concat で縦結合 → 48 行 1 個の GeoDataFramegeom_area_km2, density_per_km2, compactness (Polsby-Popper), n_parts (飛び地数), src_citydissolve(by='city') で市町単位の境界を作成前提と限界: 14 件の DID データは追加列が全く無く、L22 の庄原市のような付加列ケースは無い。三次市 (ds=1487) の GeoJSON リソースは府中市 (ds=1485) のデータを誤配布していた事例があり、fetch スクリプトで Shapefile から geojson 変換する追加処理を入れた。コンパクトネス指標 (Polsby-Popper) は境界線の凹凸に敏感で、実距離で精密に面積測定された MultiPolygon でも 0.3-0.5 程度の値が出る (完全な円形を期待しない)。
↑ L23_did_boundary.py 行 1120–1253
| 段階 | 列 | このデータで何が起きるか | 1 行の値の例 (広島市 ZU_NO=a) |
|---|---|---|---|
| 入力 | JINKOU_S |
DID 内人口 (国勢調査の生データ) | 203,202 (人) |
| 入力 | TOCHI_A |
DID 面積 (ha 単位) | 2,507 (ha) = 25.07 km² |
| 入力 | geometry |
DID 境界 MultiPolygon (m 単位、EPSG:6671) | POLYGON ((...300 頂点...)) |
| 派生 | geom_area_km2 = geom.area / 1e6 |
geometry 由来の正確な面積 (km²) | 25.064 km² (TOCHI_A の 0.999 倍 ─ ほぼ一致) |
| 派生 | density_per_km2 = JINKOU_S / geom_area_km2 |
DID 内の人口密度 (人/km²) | 8,107 人/km² (DID 認定線 4,000 の 2 倍) |
| 派生 | compactness = 4πA/P² |
形状の円形度 (1=円, 0=線) | 0.382 (細長い都市軸を反映) |
| 派生 | n_parts |
MultiPolygon の構成 polygon 数 (飛び地数) | 3 (川や山で分断された 3 つの部分) |
このように、9 列の生データから 密度・形状・連続性の派生指標を導出することで、 DID の地理構造を多角的に評価できる。 特に density と compactness の組み合わせは 「コンパクトな高密度都市核」と「線的な集落」を区別する強力な指標。
14 ZIP のうち、14 件すべてが共通 9 列で読み込み成功。統合後の did GeoDataFrame は 48 polygon × 14 列(9 共通 + src_city + src_dsid + ctype + 派生 5)。処理時間は 20.1 秒で要件 S を満たす。
| 市町 | タイプ | DID数 | DID人口 | DID面積(ha) | CITY_CD群 | ZU_NO |
|---|---|---|---|---|---|---|
| 広島市 | 政令市 | 18 | 1,039,093 | 13,220 | 101,102,103,104,105,106,107,108 | a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r |
| 呉市 | 中核市 | 5 | 142,702 | 2,771 | 202 | a,b,c,d,e |
| 福山市 | 中核市 | 6 | 264,631 | 5,990 | 207 | a,b,c,d,e,f |
| 東広島市 | 施行時特例市 | 4 | 67,464 | 1,165 | 212 | a,b,c,d |
| 廿日市市 | 市 | 3 | 81,178 | 1,503 | 213 | a,b,c |
| 尾道市 | 市 | 3 | 48,121 | 1,142 | 205 | c,b,a |
| 三原市 | 市 | 1 | 44,685 | 1,039 | 204 | a |
| 竹原市 | 市 | 1 | 6,084 | 221 | 203 | a |
| 府中市 | 市 | 1 | 18,628 | 568 | 208 | a |
| 大竹市 | 市 | 2 | 21,871 | 793 | 211 | a,b |
| 三次市 | 市 | 1 | 8,793 | 220 | 209 | a |
| 府中町 | 町 | 1 | 50,893 | 578 | 302 | a |
| 海田町 | 町 | 1 | 27,732 | 481 | 304 | a |
| 坂町 | 町 | 1 | 9,263 | 265 | 309 | a |
この表から読み取れること: 広島市 18 DIDが圧倒的に多く、CITY_CD={101..108} の 8 区にまたがる。次が福山市 6, 呉市 5, 東広島市 4, 尾道市 3, 廿日市市 3 と続く。8 市町は DID が 1 つのみで、ZU_NO は 'a' 単独。単核都市 vs 多核都市の構造の違いが ZU_NO のリストから直視できる。広島市の a-r という 18 文字は、地理的にも「都市の核が 18 ある」(8 区 × 平均 2-3 DID) ことを示している。
広島県内の DID 全 48 polygon の地理的配置を 1 枚で見せる。「都市部はどこで、非都市部はどこか」を地図で直接視覚化することは、DID 概念の本質を理解する最短経路。DID 指定 14 市町 vs 無指定 6 市町を色分けで対比する 2 枚目で、「都市指定の有無」の地理的意味も同時に伝える。
(a) 県全域 DID 主題図: 全 21 市町 (= 14 DID + 6 無指定 + 広島県全域)の行政区域を背景にし、geopandas.plot(facecolor=ctype_color, alpha=0.78) で DID polygon を市町タイプ色 (政令市赤・中核市紫・施行時特例市紫・市青・町緑) で描画。凡例とラベル ('広島市 18DID/103 万人' のような注記) で要約する。
(b) DID 指定 vs 無指定 マップ: 14 DID 市町をオレンジ、6 無指定市町を緑で塗り、DID polygon を赤で重ねる。「無指定市町には DID 赤が乗らない」を一目で見せる。
↑ L23_did_boundary.py 行 1275–1310
なぜこの図か: テーブルや棒グラフでは「DID が県のどこに、どう連なっているか」が分からない。地図 1 枚で「沿岸部 (広島・呉・福山) に DID が集中、中山間 (北・東部) に DID が無い」という県全体の地理構造を一気に伝える。

この図から読み取れること
なぜこの図か: 「都市指定の地理境界」を一目で見せる。DID 無指定 6 市町は『中山間 + 離島 + 広島近郊町』の 3 タイプに明確に分類される ─ これは地図でないと伝わらない (テーブルでは抽象的)。

この図から読み取れること
| 区分 | 市町数 | 合計面積 km² | 合計人口 千人 | DID 数 | DID 人口 千人 | DID 集中率 |
|---|---|---|---|---|---|---|
| DID 指定 14 | 14 | 4,870 | 2,625 | 48 | 1,831 | 69.8% |
| DID 無指定 6 | 6 | 2,843 | 137 | 0 | 0 | 0% |
| 計 (20 市町) | 20 | 7,713 | 2,762 | 48 | 1,831 | 66.3% |
この表から読み取れること: DID 指定 14 市町は面積では県の 63.1%だが、人口では 95.0%を占める ─ DID 無指定 6 市町は面積で 36.9%あるのに人口は 5.0%。県全域の DID 集中率は 65.9% ─ 県民の約 2/3 が DID 内に居住。「14 市町の都市部に県人口の大半が集中する」のが広島県の地理構造。
14 市町の DID 配置パターンを 14 panels small multiples で並列比較する。市町ごとの「都市の核がいくつあって、市域のどこに位置するか」を一目で見せ、単核都市 (n=1) と多核都市 (n≥2) の質的違いを地図で示す。
plt.subplots(3, 5) で 15 panel を作り、14 市町の DID をそれぞれ市町タイプ色で描画。最後の 1 panel は DID 無指定 6 市町の参考表示。各 panel のタイトルに DID 数 / 人口 / 面積を併記。panel ごとに bbox は市域に揃える (= 各市町の市域全体を表示) ので市域に対する DID の相対的な大きさが伝わる。
↑ L23_did_boundary.py 行 530–557
なぜこの図か: 1 枚の県全域図では、市町ごとの「DID パターンの質的違い」が分からない。14 panels で並列比較すると、「広島市の 18 DID 帯」と「府中町の 1 DID で町域ほぼ全部」が同じスケールで対比でき、都市規模と DID 配置の関係が直感的に伝わる。

この図から読み取れること
なぜこの図か: 市町を 3 つの異なる指標 ─ 「DID がいくつあるか」「市民の何割が DID に住むか」「市域の何割が DID か」 ─ で並べると、大都市と小都市の構造の違いが立体的に見える。1 つの指標だけでは見えない『都市らしさ』の多軸性を伝える。

この図から読み取れること
| 市町 | タイプ | DID数 | DID人口 | DID面積 km² | 密度 人/km² | 集中率 | 占有率 |
|---|---|---|---|---|---|---|---|
| 広島市 | 政令市 | 18 | 1,039,093 | 132.2 | 7,860 | 87.4% | 14.58% |
| 福山市 | 中核市 | 6 | 264,631 | 59.9 | 4,418 | 57.7% | 11.56% |
| 呉市 | 中核市 | 5 | 142,702 | 27.7 | 5,150 | 68.0% | 7.85% |
| 東広島市 | 施行時特例市 | 4 | 67,464 | 11.7 | 5,791 | 34.1% | 1.83% |
| 廿日市市 | 市 | 3 | 81,178 | 15.0 | 5,401 | 69.4% | 3.07% |
| 尾道市 | 市 | 3 | 48,121 | 11.4 | 4,214 | 37.0% | 4.01% |
| 大竹市 | 市 | 2 | 21,871 | 7.9 | 2,758 | 84.1% | 10.08% |
| 三原市 | 市 | 1 | 44,685 | 10.4 | 4,301 | 49.6% | 2.20% |
| 竹原市 | 市 | 1 | 6,084 | 2.2 | 2,753 | 25.4% | 1.87% |
| 府中市 | 市 | 1 | 18,628 | 5.7 | 3,280 | 50.3% | 2.90% |
| 三次市 | 市 | 1 | 8,793 | 2.2 | 3,997 | 17.6% | 0.28% |
| 府中町 | 町 | 1 | 50,893 | 5.8 | 8,805 | 96.0% | 55.58% |
| 海田町 | 町 | 1 | 27,732 | 4.8 | 5,765 | 92.4% | 34.86% |
| 坂町 | 町 | 1 | 9,263 | 2.6 | 3,495 | 77.2% | 16.88% |
この表から読み取れること: DID 数の最大は広島市 18、最小は 1 が 8 市町。n=1 の市町でも DID 集中率は 30-100% と幅広い ─ 単核都市の中にも『町ぐるみ型 (府中町)』と『中心部だけ型 (三次市)』の質的差がある。密度は府中町 8,805 ~ 竹原市 2,753 人/km² で3.20 倍の格差 ─ 同じ DID でも市町間で密度が大きく違う。占有率上位は小規模町 (府中町・海田町・坂町) で 17-56%、政令市・中核市は 8-15%、中山間市は 1-2% という3 階層構造。
DID polygon 単位で人口密度の地理を可視化する。DID 認定線 (4,000 人/km²) を基準に、各 DID がどの程度上回っているかを色で示し、「都市らしさの強度」を地理的に把握する。
geopandas.plot(column='density_per_km2', cmap='YlOrRd') でpolygon を密度で塗り分け。vmin=2000, vmax=12000 にクリップ(DID 認定線 4,000 を中央に置く)。凡例 colorbar に水平線で 4,000 ラインを描画して、認定基準を視覚化する。
なぜこの図か: 「同じ DID でも密度は均一ではない」という事実を地図で見せる。YlOrRd (黄→橙→赤) は連続値の段階を視覚的に強調するパレットで、高密度 DID と低密度 DID を直感的に区別できる。

この図から読み取れること
| 順位 | 市町 | ZU_NO | CITY_CD | 人口 | 面積 ha | 密度 人/km² | コンパクト | 飛び地 |
|---|---|---|---|---|---|---|---|---|
| 1 | 広島市 | a | 101 | 142,699 | 1316 | 10841 | 0.19 | 1 |
| 2 | 広島市 | e | 105 | 6,934 | 64 | 10779 | 0.42 | 1 |
| 3 | 広島市 | o | 107 | 6,999 | 76 | 9152 | 0.14 | 1 |
| 4 | 府中町 | a | 302 | 50,893 | 578 | 8802 | 0.19 | 1 |
| 5 | 広島市 | p | 108 | 96,392 | 1149 | 8390 | 0.10 | 1 |
| 6 | 広島市 | b | 102 | 104,525 | 1274 | 8205 | 0.04 | 1 |
| 7 | 広島市 | f | 105 | 203,202 | 2507 | 8105 | 0.03 | 1 |
| 8 | 広島市 | d | 104 | 178,803 | 2314 | 7727 | 0.07 | 1 |
| 9 | 広島市 | c | 103 | 144,689 | 1936 | 7475 | 0.12 | 1 |
| 10 | 広島市 | q | 108 | 8,996 | 122 | 7348 | 0.16 | 1 |
この表から読み取れること: 密度トップは 広島市 a 10841 人/km²。全国の高密度都市 (東京都心 ~15,000) と同水準ではないが、県内ではトップクラス。上位 10 件はすべて広島市 + 府中町 + 海田町 + 福山市の中心 DID。高密度 DID はコンパクトネス指標も比較的高め (0.4 前後) で、『密で円形に近い都市核』がトップに入る。
| 順位 | 市町 | ZU_NO | CITY_CD | 人口 | 面積 ha | 密度 人/km² | コンパクト | 飛び地 |
|---|---|---|---|---|---|---|---|---|
| 1 | 大竹市 | a | 211 | 16,267 | 601 | 2705 | 0.15 | 1 |
| 2 | 竹原市 | a | 203 | 6,084 | 221 | 2756 | 0.07 | 1 |
| 3 | 廿日市市 | c | 213 | 6,300 | 219 | 2871 | 0.10 | 1 |
| 4 | 大竹市 | b | 211 | 5,604 | 192 | 2915 | 0.08 | 1 |
| 5 | 府中市 | a | 208 | 18,628 | 568 | 3279 | 0.10 | 1 |
| 6 | 東広島市 | c | 212 | 6,237 | 181 | 3439 | 0.20 | 1 |
| 7 | 坂町 | a | 309 | 9,263 | 265 | 3491 | 0.07 | 1 |
| 8 | 尾道市 | b | 205 | 13,074 | 368 | 3549 | 0.11 | 1 |
| 9 | 尾道市 | c | 205 | 7,268 | 196 | 3703 | 0.08 | 1 |
| 10 | 三次市 | a | 209 | 8,793 | 220 | 4005 | 0.11 | 1 |
この表から読み取れること: 下位は密度 2,500-3,500 人/km² で、DID 認定線 4,000 をやや下回る polygon もある。これは『連担すれば部分的に 4,000 を下回ってもよい』という DID 定義の柔軟性を示す。下位 10 件には中山間 (竹原・三次・大竹) の DID が多く、飛び地数 (n_parts) が複数のものが目立つ ─ 小集落をつないで連担とみなす『細長い DID』のパターン。
DID 面積と人口の関係を log-log 散布で示し、「都市の規模分布」と「密度の都市タイプ依存」を可視化する。コンパクトネス指数 × 密度の散布図で、形状と密度の関係も同時に確認する。
(a) log-log 散布: x軸 = TOCHI_A (ha)、y軸 = JINKOU_S (人)、両対数。傾き 1 の直線は密度一定を意味し、4,000人/km² の DID 認定線を y = 40·x で重ね描き (x が ha なので 4,000人/km² = 40 人/ha)。市町タイプで色分けする。
(b) コンパクトネス × 密度 散布: x軸 = density_per_km2、y軸 = compactness (Polsby-Popper)。「密度が高い + コンパクト」の DID は理想的な都市核、「密度が低い + 細長」の DID は線形集落。
↑ L23_did_boundary.py 行 1618–1647
なぜこの図か: 面積と人口は4 桁にまたがる広いレンジ(20 ha ~ 5,000 ha, 5,000 人 ~ 200,000 人)、log-log でないと小さい DID が原点付近で潰れて見えなくなる。認定線を重ねることで、「DID 内の密度ばらつき」が直感的に伝わる。

この図から読み取れること
なぜこの図か: 密度と形状はそれぞれ独立した『都市らしさ』の側面。両者の散布を見ると『コンパクトな高密度都市核』vs『線的な低密度集落』の二極構造があるかを定量的に判定できる。

この図から読み取れること
| 順位 | 市町 | ZU_NO | CITY_CD | 人口 | 面積 ha | 密度 人/km² | コンパクト | 飛び地 |
|---|---|---|---|---|---|---|---|---|
| 1 | 福山市 | a | 207 | 208,342 | 4734 | 4401 | 0.04 | 1 |
| 2 | 広島市 | f | 105 | 203,202 | 2507 | 8105 | 0.03 | 1 |
| 3 | 広島市 | d | 104 | 178,803 | 2314 | 7727 | 0.07 | 1 |
| 4 | 広島市 | c | 103 | 144,689 | 1936 | 7475 | 0.12 | 1 |
| 5 | 広島市 | a | 101 | 142,699 | 1316 | 10841 | 0.19 | 1 |
| 6 | 広島市 | b | 102 | 104,525 | 1274 | 8205 | 0.04 | 1 |
| 7 | 広島市 | p | 108 | 96,392 | 1149 | 8390 | 0.10 | 1 |
| 8 | 呉市 | a | 202 | 64,536 | 1326 | 4866 | 0.02 | 1 |
| 9 | 廿日市市 | a | 213 | 55,571 | 979 | 5678 | 0.06 | 1 |
| 10 | 呉市 | b | 202 | 52,428 | 1013 | 5174 | 0.05 | 1 |
この表から読み取れること: 人口トップは 福山市 a 208,342 人 (広島市 8 区中の最大 DID)。上位 10 件中 広島市が 5+ 件を占め、福山市・呉市・東広島市などが続く。「人口集中地区」の名にふさわしく、トップ DID は地方中核都市の主要駅・繁華街周辺に対応する。top10 の人口合計は1,251,187 人で、これだけで全 DID 人口 (1,831,138) の 68.3% を占める ─ 『DID 内のさらなる集中』が見える。
市町の総人口と DID 人口の関係を散布で示し、「都市らしさが市町規模にどう依存するか」を可視化する。DID 無指定 6 市町を×印で同じ散布に重ね、「人口があっても DID にならない閾値」を観察する。
x軸 = 市総人口、y軸 = DID 人口、市町タイプ色で散布。「100% 集中ライン」(y=x) と「50% 集中ライン」(y=0.5x) を破線で重ね、市町ごとの DID 集中率を視覚的に判定。DID 無指定 6 市町は y=0 の x 印として配置し、「同じ人口規模でも DID 化する/しない」の境界を観察する。
↑ L23_did_boundary.py 行 1722–1749
なぜこの図か: 市町別 14 件のデータを 1 軸ずつ(個数・占有率・集中率) で見せた前節 fig 06 を、『総人口を横軸にとった散布図』に統合する。DID 無 6 市町を混ぜると「人口があっても DID にならない例外」の存在が一目で分かる ─ これは1次元のテーブルでは伝わらない。

この図から読み取れること
| 市町 | タイプ | 地理タイプ | 面積 km² | 人口 千人 | 密度 人/km² |
|---|---|---|---|---|---|
| 庄原市 | 市 | 中山間 | 1246.5 | 33 | 26 |
| 安芸高田市 | 市 | 中山間 | 537.8 | 27 | 50 |
| 江田島市 | 市 | 離島 | 100.7 | 22 | 218 |
| 熊野町 | 町 | 広島近郊町 | 33.7 | 23 | 682 |
| 北広島町 | 町 | 中山間 | 646.2 | 17 | 26 |
| 世羅町 | 町 | 中山間 | 278.2 | 15 | 54 |
この表から読み取れること: DID 無指定 6 市町は『中山間 4 + 離島 1 + 広島近郊町 1』のタイプ分布。全市町の人口密度は最大の熊野町 683 人/km² が最高 ─ DID 認定線 4,000 の 1/6 程度。『市町平均密度が低い + 集落が分散 → DID 化しない』のパターン。江田島市は離島で集落が小島ごとに分散、中山間 4 市町 (庄原・北広島・安芸高田・世羅) は山間に集落が散在、熊野町は広島市近郊だが筆形地形で集落が線状に細長く伸びるため認定基準を満たさない。
居住誘導区域 (LIP, L19 で扱った 8 件) と DID の空間的オーバーレイを計算する。LIP は『将来この区域に人口を集約する』と自治体が定めた区域、DID は『現在の人口集中地区』。両者の重なり率 LIP_in_DID で「現在の都市核 → 将来の集約核」の連続性を検証する。
LIP は L19 で取得済の 8 件 (広島市・呉市・竹原市・三原市・福山市・府中市・東広島市・廿日市市) を読込。各市町についてgeopandas.overlay(did_city, lip_city, how='intersection') で重なり面積を計算。LIP_in_DID = 重なり / LIP 全体(LIP の何割が DID 内か)、DID_covered_by_LIP = 重なり / DID 全体 (DID の何割が LIP 化されたか) を出す。前者が『将来計画の現実性』、後者が『縮約意図の強さ』を表す。
↑ L23_did_boundary.py 行 1808–1843
なぜこの図か: 数値表 (LIP_in_DID = 80% など) では実感がわかない。赤 (DID) と緑 (LIP) を重ね描きすることで、「LIP は DID にどれだけ似ているか/縮約しているか」が視覚的に伝わる。8 panels で並列表示し、市町ごとの政策スタイルの違いも見せる。

この図から読み取れること
| 市町 | DID 面積 km² | LIP 面積 km² | 重なり km² | LIP_in_DID | DID_covered_by_LIP |
|---|---|---|---|---|---|
| 広島市 | 132.20 | 145.70 | 112.57 | 77.3% | 85.1% |
| 呉市 | 27.71 | 16.63 | 12.81 | 77.0% | 46.2% |
| 福山市 | 59.90 | 73.50 | 43.24 | 58.8% | 72.2% |
| 東広島市 | 11.65 | 24.52 | 9.00 | 36.7% | 77.3% |
| 廿日市市 | 15.03 | 20.30 | 12.87 | 63.4% | 85.6% |
| 三原市 | 10.39 | 8.21 | 5.88 | 71.6% | 56.7% |
| 竹原市 | 2.21 | 3.29 | 1.39 | 42.3% | 63.0% |
| 府中市 | 5.68 | 5.56 | 4.79 | 86.3% | 84.4% |
この表から読み取れること: LIP_in_DID 中央値は 67.5% ─ つまり『LIP の半分前後が DID 内』。これは「LIP = DID の継承」という素朴な仮説を支持する一方、50% という数字は「LIP は DID をそのまま使うのではなく、少し変形して将来の集約核を作っている」ことも示す。市町別では広島市・福山市の LIP が DID をほぼ覆う一方、廿日市市 (63%) はLIP がかなり外れている ─ 山地部の DID を LIP から除外している。「LIP は将来計画、DID は現状実態」の差分が政策スタイルの違いを浮かび上がらせる。
分析 1〜7 の結果から、仮説 H1〜H6 を改めて検証する。
| 仮説 | 仮説内容 | 検証結果 | 判定 |
|---|---|---|---|
| H1 | 広島市が DID 件数の 30% 超 + DID 人口の 50% 超を占める | 広島市 DID 数 18/48=37.5%, DID 人口 1,039,093/1,831,138=56.7% | 支持 |
| H2 | DID 個数 1 つの市町が 5 件以上 + 3+ DID の市町も 3 件以上 | 単核 DID (n=1) 7 市町、多核 DID (n>=3) 6 市町 | 支持 |
| H3 | 市町間 DID 平均人口密度の最大/最小 ≥ 3 倍 | max=府中町 8805人/km², min=竹原市 2753人/km², ratio=3.20x | 支持 |
| H4 | 市町の DID 面積占有率 5% 未満が 8 市町以上 + 30% 超が 2 市町以上 | 占有率 <5% は 7 市町、>=30% は 2 市町 | 部分支持 |
| H5 | LIP の 50% 以上が DID 内 (LIP ⊆ DID) | LIP_in_DID >= 50% は 6/8 市町, 中央値 67.5% | 支持 |
| H6 | DID 無 6 市町のうち 5+ 件が人口 3 万以下 | 人口 ≤3 万: 5/6 件 | 支持 |
本記事で得られた結果から導かれる新たな問いと、 それを検証するための具体的な発展手順を 3 つ提示する。
結果 X: 本記事で県内 DID 48 polygon の地理が定量化された。 L22 では町丁単位の高齢化率・年少率・性比が計算済。 両者を空間結合すれば『DID 内町丁 vs DID 外町丁』の人口構造比較が可能。
新仮説 Y: DID 内町丁の高齢化率は DID 外町丁より10%pt 以上低く、 年少率は 5%pt 以上高い。『人口集中地区は構造的に若い』。 中山間市町 (三次市・三原市) でも DID 内 (中心市街地) と DID 外 (集落) で 構造が分裂し、市町平均では捉えきれない局地差が見える。
課題 Z: geopandas.sjoin(pop, did, how='left', predicate='intersects')
で町丁に DID 内/外フラグを付与し、4 群構成 (年少/生産/前期高齢/後期高齢) を
DID 内外でクロス比較。20 市町 small multiples で
DID 内 vs 外の人口ピラミッドを並列。
『DID 内ほど若い』が市町間で一貫するかを検証。
結果 X: 本記事は R2 (2020) DID の 1 時点スナップショット。 人口減少社会では、5 年前 (H27) との差分が政策上重要。
新仮説 Y: 中山間都市 (三次市・三原市) の DID は5 年で面積が縮小し、 中心部だけに後退している (郊外集落が DID 認定基準を割り込む)。 逆に東広島市の DID は面積が拡大し (大学・産業発展)、 広島市は緩やかに北側へ拡張 (郊外住宅地化)。
課題 Z: 政府統計 e-Stat から H27 国勢調査 DID 境界 GIS を取得 →
ZU_NO で対応付けして R2 と空間差分計算 →
fig: H27 DID 境界 (薄青) + R2 DID 境界 (赤) 重ね描き →
ΔDID 面積 / ΔDID 人口の市町ランキング。
『DID の縮小と拡大の地理』が見える。
R7 (2025) のデータが出れば 10 年スパン 3 点比較。
結果 X: 本記事の DID 単位密度 (= JINKOU_S/geometry面積) は下位 polygon で 2,500-3,500 と DID 認定線 (4,000) を下回るものが見つかった。 これは『連担すれば部分的に下回ってもよい』という DID 定義の柔軟性を示すが、 具体的にどの程度緩和されているか定量的には不明。
新仮説 Y: 国勢調査メッシュ (1/4 地域メッシュ ≈ 500m) を使えば、 DID polygon 内のメッシュ単位密度を計算でき、 『DID polygon 全体の平均密度は 4,000 を下回ることもあるが、 構成メッシュの 70%+ は 4,000 超』のような連担条件が定量できる。
課題 Z: e-Stat から R2 国勢調査 1/4 地域メッシュ 人口を取得 → DID polygon と空間結合 → polygon 内メッシュ別密度ヒストグラム → 「polygon 平均は低くても構成メッシュの大半は 4,000 超」を確認。 DID 定義を実データで再現する作業。 『国勢調査の中心概念をデータから自分で再構築する』体験となる。