✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
|---|---|
| #222 | dataset #222 |
| #333 | dataset #333 |
| #444 | dataset #444 |
| #600 | 雪崩危険箇所情報_北広島町 |
| #666 | dataset #666 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
| #1391 | 都市計画区域情報_農地転用状況_安芸高田市_2016-2020 |
| #1392 | 都市計画区域情報_農地転用状況_熊野町_2016-2020 |
| #1393 | 都市計画区域情報_農地転用状況_呉市_2016-2020 |
| #1394 | 都市計画区域情報_農地転用状況_広島市_2016-2020 |
| #1395 | 都市計画区域情報_農地転用状況_江田島市_2016-2020 |
| #1396 | 都市計画区域情報_農地転用状況_三原市_2016-2020 |
| #1397 | 都市計画区域情報_農地転用状況_三次市_2016-2020 |
| #1398 | 都市計画区域情報_農地転用状況_庄原市_2016-2020 |
| #1399 | 都市計画区域情報_農地転用状況_世羅町_2016-2020 |
| #1400 | 都市計画区域情報_農地転用状況_大竹市_2016-2020 |
| #1401 | 都市計画区域情報_農地転用状況_竹原市_2016-2020 |
| #1402 | 都市計画区域情報_農地転用状況_東広島市_2016-2020 |
| #1403 | 都市計画区域情報_農地転用状況_廿日市市_2016-2020 |
| #1404 | 都市計画区域情報_農地転用状況_尾道市_2016-2020 |
| #1405 | 都市計画区域情報_農地転用状況_府中市_2016-2020 |
| #1406 | 都市計画区域情報_農地転用状況_福山市_2016-2020 |
| #1407 | 都市計画区域情報_農地転用状況_北広島町_2016-2020 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L24_farmland_conversion.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
本記事は、広島県インフラマネジメント基盤 DoBoX が公開する 「都市計画区域情報_農地転用状況」シリーズ 17 件 (#1394, #1393, #1406, #1402, #1403, #1404, #1396, #1401, #1405, #1400, #1397, #1398, #1391, #1395, #1392, #1407, #1399) を縦結合し、2016-2020 年の広島県内 17 市町の 農地転用対象ポリゴン 計 14,459 件 (合計 155,111 ha = 1551 km²) から、広島県内の「農地が非農地に変わるパターン」 ── 全県転用配置・市町別パターン・ 規模分布・KUIKI_CD 別の都市計画区域階層別 ── を分析する研究記事である。 全 20 市町中 3 町 (府中町・海田町・坂町) は農地転用対象なし ─ 都市部 100% で 都市計画基礎調査の対象農地が無い ─ そのコントラストも分析対象とする。
AREA合計 (ha) / 市域面積 (km²) / 100 ×100%。
「市域の何 % が転用対象農地として図面化されているか」。AREA合計 (ha) / 市域面積 (km²)。
「市域 1 km² あたりの対象農地 ha」。GeoDataFrame
(14,459 polygon × 7 列 + 派生 5 列) に縦結合できる。
AREA 列は pd.to_numeric(errors="coerce") で安全に数値化する手順を学ぶ。groupby で実装する。geopandas.plot() で
主題図 (choropleth) + バブル図化し、地理分布を可視化する。本記事は農地転用状況 17 件のみを主データとする研究記事である。 同じ都市計画基礎調査シリーズの農林漁業関係施策 (L25, 17 件) は次記事で扱う (本記事と合体させない、要件 I 違反の水増し回避)。 都市計画区域階層との対比 (KUIKI_CD 解読) のため、 17 市町行政区域 (L15 既取得) のみ背景レイヤーとして利用するが、 L15 都市計画区域記事と論点を重複させない。
農地転用状況 17 件はそれぞれ 1 市町分の 農地転用ポリゴン GeoJSON (Polygon) を ZIP で配布している。列構造は 17 件で 100% 一致 (7 列)。 データは2016-2020 年の 5 年間を対象、 都市計画法に基づく都市計画基礎調査の結果として公表されている。
| dataset_id | 市町 | 市町タイプ | 地理タイプ | DoBoX | 件数 | AREA合計(ha) | AREA最大(ha) | 0件 | CITY_CD | KUIKI_CD |
|---|---|---|---|---|---|---|---|---|---|---|
| #1394 | 広島市 | 政令市 | 都市 | DoBoX | 272 | 5,592 | 1,114.2 | 48 | 105,106,107,108 | 0,1,2,5,6 |
| #1393 | 呉市 | 中核市 | 都市 | DoBoX | 225 | 5,471 | 981.9 | 26 | 202 | 0,1,2,3,4 |
| #1406 | 福山市 | 中核市 | 都市 | DoBoX | 688 | 9,940 | 1,909.3 | 214 | 207 | 0,1,2 |
| #1402 | 東広島市 | 施行時特例市 | 都市 | DoBoX | 1,003 | 14,806 | 1,605.3 | 580 | 212 | 0,1,2,3,4 |
| #1403 | 廿日市市 | 市 | 都市 | DoBoX | 266 | 3,308 | 770.8 | 47 | 213 | 0,3,4 |
| #1404 | 尾道市 | 市 | 都市 | DoBoX | 852 | 8,014 | 1,219.2 | 290 | 205 | 0,1,2,3,4 |
| #1396 | 三原市 | 市 | 都市 | DoBoX | 264 | 8,976 | 2,310.3 | 10 | 204 | 0,1,2,3,4 |
| #1401 | 竹原市 | 市 | 都市 | DoBoX | 8,879 | 1,360 | 5.4 | 1,197 | 203 | 3,4 |
| #1405 | 府中市 | 市 | 都市 | DoBoX | 158 | 3,604 | 1,070.1 | 13 | 208 | 0,1,2,3,4 |
| #1400 | 大竹市 | 市 | 都市 | DoBoX | 33 | 441 | 101.1 | 0 | 211 | 0 |
| #1397 | 三次市 | 市 | 中山間 | DoBoX | 466 | 17,073 | 1,473.8 | 14 | 209 | 0,3,4 |
| #1398 | 庄原市 | 市 | 中山間 | DoBoX | 304 | 46,710 | 19,230.6 | 17 | 210 | 0,3,4 |
| #1391 | 安芸高田市 | 市 | 中山間 | DoBoX | 114 | 12,183 | 6,591.6 | 5 | 214 | 0,3,4 |
| #1395 | 江田島市 | 市 | 離島 | DoBoX | 142 | 2,750 | 364.4 | 13 | 215 | 0,3,4 |
| #1392 | 熊野町 | 町 | 近郊町 | DoBoX | 145 | 356 | 60.2 | 89 | 307 | 1,2 |
| #1407 | 北広島町 | 町 | 中山間 | DoBoX | 305 | 8,317 | 1,612.2 | 16 | 369 | 0,3,4 |
| #1399 | 世羅町 | 町 | 中山間 | DoBoX | 343 | 6,213 | 1,338.0 | 36 | 462 | 0,3,4 |
合計: 14,459 ポリゴン / AREA合計 155,111 ha = 1551.1 km² (2016-2020 年期間)。広島県全域面積 8,479 km² に対し、 対象農地率は 18.3%。 件数最大は竹原市 8,879 件 (異常に多い、別ソースの精密データの可能性)、 件数最小は大竹市 33 件。 AREA 最大は庄原市 19,231 ha (1 ポリゴンで 192 km²、市域 1,246 km² の 15%)。
| 市町 | タイプ | 地理タイプ | 面積 km² | 人口 (千人) | 密度 (人/km²) |
|---|---|---|---|---|---|
| 府中町 | 町 | 近郊町 | 10.4 | 53 | 5096 |
| 海田町 | 町 | 近郊町 | 13.8 | 30 | 2174 |
| 坂町 | 町 | 近郊町 | 15.7 | 12 | 764 |
3 町 (府中町・海田町・坂町) は広島市の近郊ベッドタウンで 町域の大半が市街化済 ─ 農業振興地域・農用地区域がほぼ存在しないため、 都市計画基礎調査の「農地転用対象」シリーズに含まれない。 3 町とも人口密度が DID 認定線 (4,000 人/km²) を超える都市町。
| 列名 | 型 | 意味 |
|---|---|---|
TOKEI_CD | int32 | 統計区分コード (1, 2, 3 の 3 値、仕様書未公開)。 農用地区域種別のフラグと推定 ─ 市町別に値分布が異なる (中山間市は 1 と 3 主体、都市市は 1, 2, 3 混在) |
CITY_CD | int32 | 市区町村コード。広島市は 8 区中 105-108 のみデータあり (中区・東区・西区・南区・佐伯区・安佐北区はデータ無し or 別 CITY_CD)。 他市町は単一 CITY_CD |
KUIKI_CD | int32 | 区域コード (0-6 の 7 値、仕様書未公開)。 都市計画区域階層のフラグと推定 (詳細は分析 6 で解読) |
AREA | float64 | 対象農地面積 (ha)。実測比 geom_area_m² / AREA = 10,000 から
ha 単位と確定。AREA = 0 の polygon は図面精度由来の四捨五入結果
(実測 50 m² 未満) で全体の 18.1%。
※ 監査時 (2026-05) の dtype は object (文字列)、
現データ取得時点では float64 だが、教材として
pd.to_numeric(errors="coerce") で
常に安全な数値化処理を入れている |
RITTEKI_CD | int32 | 立地コード (0, 1, 2 の 3 値、仕様書未公開)。 全 17 市町中 8 市町で値 0 のみ、9 市町で 0/1 混在、 3 市町で 0/1/2 混在。転用先用途のフラグと推定 |
BIKOU | object | 備考。「国土数値情報を活用して作成したため、図面精度は1/50,000である」 という図面精度の警告メッセージが入っている (16 市町)。 竹原市のみ全件 None で、件数も 8,879 と異常に多いため 別ソースの精密データの可能性 |
geometry | Polygon | 農地転用対象境界 Polygon。EPSG:6671 (JGD2011 平面直角第III系)。 本記事の主役データ。MultiPolygon は無く、すべて単一 Polygon |
本記事の再現性を担保するため、HTML 1 枚から 生データ・中間 CSV・図 PNG・再現 Python を直リンクで取得できる。
17 件の ZIP は前項の表からそれぞれ DoBoX へリンク。 あるいは一括取得スクリプト:
cd "2026 DoBoX 教材"
py -X utf8 data\extras\L24_farmland_conversion\fetch_farmland_conversion.py
合計サイズ約 12 MB。監査時に取得済の 3 市町 (広島市・呉市・福山市) は
data/extras/_urban_planning_audit/ から自動コピー、
残り 14 市町は DoBoX から HTTP 取得 (約 30 秒)。
実行は cd "2026 DoBoX 教材"; py -X utf8 lessons\L24_farmland_conversion.py。
17 ZIP がローカルにあれば 30 秒程度で全図 + CSV 再生成 (要件 S 準拠)。
17 ZIP の農地転用 GeoJSON を 1 個の GeoDataFrame (14,459 polygon × 7 列 + 派生 5 列) に統合し、後段の市町別集計・主題図・規模分析の基盤データを作る。行政区域 21 件 (転用対象 17 + 無し 3 + 広島県全域 1) を背景レイヤーとして同時に読み込む。AREA 列の単位確定 (仕様書未公開) と文字列→数値の安全変換がこの分析の核。
直感: ZIP を読む → 列を共通 7 列に揃える → AREA を pd.to_numeric で安全に数値化 → 縦結合 → CRS 変換 → 派生指標 (実測 ha・整合性比・規模クラス) を計算 → 行政区域 dissolve で背景レイヤー作成。
大筋 (5 ステップ)
load_geojson_zip() で GeoDataFrame を読むpd.to_numeric(errors='coerce') で安全に数値化 (失敗時 NaN で型崩れ防止 — 監査時の object dtype 対応)pd.concat で縦結合 → 14,459 行 1 個の GeoDataFramegeom_area_m2, geom_area_ha, area_ratio (申告/実測), scale_class (規模分類)前提と限界: 17 件の AREA データは追加列が全く無い。竹原市 (ds=1401) のみ件数が 8,879 と異常に多く BIKOU=None で、他市町と異なる精密データソースの可能性 (本記事では補正せず合体)。広島市 (ds=1394) は CITY_CD = 105-108 の 4 区分のみで、8 区全部のデータは含まれない (都心部 4 区は対象農地ほぼ無し)。『仕様書未公開でも、データから読める』のが本シリーズの面白さで、本記事はその解読プロセスを教材化している。
↑ L24_farmland_conversion.py 行 97–242
仕様書未公開で監査時 (2026-05-03) の AREA 列は object (文字列) 型だった。 現データ取得時点 (2026-05-09) では float64 になっているが、 教材として『常に安全な数値化処理』を組み込む。 広島市最大ポリゴン (1 件) を例に、最初から最後まで追跡する:
| 段階 | 列 | このデータで何が起きるか | 1 行の値の例 (広島市 最大 polygon) |
|---|---|---|---|
| 入力 (生) | AREA (str?) |
GeoJSON から読込時、自治体ごとに dtype が揺れうる
(object / float64)。 ※ 監査時 object → 現在 float64 |
'1114.18' または 1114.18 |
| 正規化 | AREA = pd.to_numeric(.., errors="coerce") |
文字列 → float64 に変換。失敗 (e.g. 空文字, "N/A") は NaN。 本データでは全件成功 | 1114.18 (float64) |
| 派生 | geom_area_m2 = geom.area |
geometry の正確な面積 (m²、CRS=EPSG:6671 の単位) | 11,141,775 m² |
| 派生 | geom_area_ha = geom_area_m2 / 1e4 |
m² を ha に変換 (1 ha = 10,000 m²) | 1114.18 ha (申告 AREA と完全一致!) |
| 派生 | area_ratio = geom_area_ha / AREA |
申告と実測の整合性検証 (1.000 が完全一致) | 1.0000 (整合) |
| 派生 | scale_class = _scale_class(AREA) |
規模クラスに分類 (微小/小/中/大/超大/巨大) | '5_巨大(≥100 ha)' |
このように、7 列の生データから 規模・整合性・実測haの派生指標を導出することで、 農地転用ポリゴンの分布を多角的に評価できる。 特に area_ratio 列は「申告データと実測ジオメトリの整合性検証」として機能し、 『仕様書未公開でも、データから単位を確定できる』本記事の中核手法。
余談: AREA 単位は ha と確定したが、 全 14,459 ポリゴンの中央値 area_ratio = 1.0000 で IQR = [0.982, 1.012]。 誤差 ±2% 以内に収まり、データの内部整合性は良好。 小ポリゴンほど誤差が大きく (図面精度の限界)、 大ポリゴンほど誤差は 0 に近づく (相対誤差が縮む)。
17 ZIP のうち、17 件すべてが共通 7 列で読み込み成功。統合後の farm GeoDataFrame は 14,459 polygon × 12 列(7 共通 + AREA_raw + src_city + src_dsid + ctype + rtype + 派生 4)。AREA 合計 = 155,111 ha = 1551 km² (= 広島県全域の 18.3%)。処理時間は 21.8 秒で要件 S を満たす。
| 市町 | 地理 | 件数 | AREA計(ha) | AREA最大(ha) | AREA=0件 | CITY_CD | KUIKI_CD群 |
|---|---|---|---|---|---|---|---|
| 広島市 | 都市 | 272 | 5,592 | 1,114.2 | 48 (18%) | 105,106,107,108 | 0,1,2,5,6 |
| 呉市 | 都市 | 225 | 5,471 | 981.9 | 26 (12%) | 202 | 0,1,2,3,4 |
| 福山市 | 都市 | 688 | 9,940 | 1,909.3 | 214 (31%) | 207 | 0,1,2 |
| 東広島市 | 都市 | 1,003 | 14,806 | 1,605.3 | 580 (58%) | 212 | 0,1,2,3,4 |
| 廿日市市 | 都市 | 266 | 3,308 | 770.8 | 47 (18%) | 213 | 0,3,4 |
| 尾道市 | 都市 | 852 | 8,014 | 1,219.2 | 290 (34%) | 205 | 0,1,2,3,4 |
| 三原市 | 都市 | 264 | 8,976 | 2,310.3 | 10 (4%) | 204 | 0,1,2,3,4 |
| 竹原市 | 都市 | 8,879 | 1,360 | 5.4 | 1,197 (13%) | 203 | 3,4 |
| 府中市 | 都市 | 158 | 3,604 | 1,070.1 | 13 (8%) | 208 | 0,1,2,3,4 |
| 大竹市 | 都市 | 33 | 441 | 101.1 | 0 (0%) | 211 | 0 |
| 三次市 | 中山間 | 466 | 17,073 | 1,473.8 | 14 (3%) | 209 | 0,3,4 |
| 庄原市 | 中山間 | 304 | 46,710 | 19,230.6 | 17 (6%) | 210 | 0,3,4 |
| 安芸高田市 | 中山間 | 114 | 12,183 | 6,591.6 | 5 (4%) | 214 | 0,3,4 |
| 江田島市 | 離島 | 142 | 2,750 | 364.4 | 13 (9%) | 215 | 0,3,4 |
| 熊野町 | 近郊町 | 145 | 356 | 60.2 | 89 (61%) | 307 | 1,2 |
| 北広島町 | 中山間 | 305 | 8,317 | 1,612.2 | 16 (5%) | 369 | 0,3,4 |
| 世羅町 | 中山間 | 343 | 6,213 | 1,338.0 | 36 (10%) | 462 | 0,3,4 |
この表から読み取れること: 件数最大は竹原市 8,879で異常に多く、AREA最大はわずか 5.4 ha ─ 『大量の微小ポリゴン』で他市町と質的に異なる。AREA最大は庄原市 19,231 ha (1 ポリゴン!) で、市域 1,246 km² の 15%。AREA=0 比率は市町間で大きく違う: 大竹市 0% (33 件全部に値あり) ↔ 竹原市 13% ↔ 庄原市 6% ↔ 広島市 18%。これは図面精度の市町間差を示す。KUIKI_CD 群は中山間市は 0,3,4 のみ (= 線引き無し)、都市市は 0,1,2 (+ 5,6) のフル区分 (= 線引きあり) という構造的差が見える。
広島県内の農地転用ポリゴン全 14,459 件の地理的配置を 1 枚で見せる。「県のどこで、どう密集して農地転用対象が広がっているか」を地図で直接視覚化することは、本シリーズの本質を理解する最短経路。農地転用あり 17 市町 vs 無し 3 町を色分けで対比する 2 枚目で、「農地転用対象がない地域 = 都市 100%」の地理的意味も同時に伝える。
(a) 県全域 主題図: 全 20 市町 (= 17 + 無し 3) と広島県全域の行政区域を背景にし、geopandas.plot(facecolor=rtype_color, alpha=0.55) で農地転用ポリゴンを地理タイプ色 (都市=赤・中山間=緑・離島=青・近郊町=紫) で描画。ポリゴン枠線は描かない (alpha 重なりで密度が読める)。
(b) 17 vs 3 マップ: 17 市町をオレンジ、3 町を緑で塗り、農地転用ポリゴンを赤で重ねる。「3 町には赤が乗らない = 都市 100% で農地転用対象なし」を一目で見せる。
↑ L24_farmland_conversion.py 行 1413–1446
なぜこの図か: テーブルや棒グラフでは「対象農地が県のどこに、どう広がっているか」が分からない。地図 1 枚で「中山間 (緑) に対象農地が広く、都市 (赤) は中心部のみ」という県全体の地理構造を一気に伝える。

この図から読み取れること
なぜこの図か: 「対象農地ゼロの地理境界」を一目で見せる。3 町 (府中町・海田町・坂町) はすべて広島市近郊のベッドタウン ─ これは地図でないと伝わらない。「政令市の通勤圏に取り込まれた小規模町は、対象農地が消滅する」という都市化の最終段階を示す。

この図から読み取れること
| 区分 | 市町数 | 合計面積 km² | 合計人口 千人 | 転用ポリゴン | AREA合計 ha | 対象農地率 |
|---|---|---|---|---|---|---|
| 農地転用あり 17 | 17 | 7,673 | 2,667 | 14,459 | 155,111 | 20.2% |
| 農地転用無し 3 | 3 | 40 | 95 | 0 | 0 | 0% |
| 計 (20 市町) | 20 | 7,713 | 2,762 | 14,459 | 155,111 | 20.1% |
この表から読み取れること: 17 市町は面積では県の 99.5%を占め、対象農地率は20.2%。3 町は面積で 0.52%のみだが対象農地ゼロ ─ 『都市部の対象農地は完全に消失している』。県全域の対象農地率は 20.1% ─ 県の市域面積の約 18% が「都市計画基礎調査における転用対象農地」として図面化されている。
17 市町の農地転用配置パターンを 17 panels small multiples で並列比較する。市町ごとの「対象農地が市域のどこに、どう広がっているか」を一目で見せ、都市 vs 中山間 vs 離島 vs 近郊町の質的違いを地図で示す。ランキング 3 連 panel で、『面積』『件数』『転用密度』の 3 軸から市町順位を立体的に描く。
plt.subplots(4, 5) で 20 panel を作り、17 市町 + 1 (3 町) + 余り 2。各 panel は市域に bbox を揃え、対象農地を地理タイプ色で描画。ランキングは横軸 (面積/件数/密度) を 3 つに切って barh で並べる。件数は log スケールで広島市と大竹市の 270 倍格差を圧縮表示。
↑ L24_farmland_conversion.py 行 1541–1580
なぜこの図か: 1 枚の県全域図では、市町ごとの「転用パターンの質的違い」が分からない。17 panels で並列比較すると、「庄原市の市域 8 割が緑」と「府中市の市域中央に小さい緑」が同じスケールで対比でき、市町タイプと転用パターンの関係が直感的に伝わる。

この図から読み取れること
なぜこの図か: 市町を 3 つの異なる指標 ─ 「総面積」「ポリゴン件数」「単位面積あたり転用密度」 ─ で並べると、都市 vs 中山間の構造の違いが立体的に見える。1 つの指標だけでは見えない『市町タイプの多軸性』を伝える。

この図から読み取れること
| 市町 | 地理 | 件数 | AREA計(ha) | AREA最大(ha) | 密度 | 対象農地率 | 1人あたり(a) |
|---|---|---|---|---|---|---|---|
| 庄原市 | 中山間 | 304 | 46,710 | 19,230.6 | 37.47 | 37.5% | 142 |
| 三次市 | 中山間 | 466 | 17,073 | 1,473.8 | 21.94 | 21.9% | 34 |
| 東広島市 | 都市 | 1,003 | 14,806 | 1,605.3 | 23.30 | 23.3% | 7 |
| 安芸高田市 | 中山間 | 114 | 12,183 | 6,591.6 | 22.65 | 22.6% | 45 |
| 福山市 | 都市 | 688 | 9,940 | 1,909.3 | 19.19 | 19.2% | 2 |
| 三原市 | 都市 | 264 | 8,976 | 2,310.3 | 19.03 | 19.0% | 10 |
| 北広島町 | 中山間 | 305 | 8,317 | 1,612.2 | 12.87 | 12.9% | 49 |
| 尾道市 | 都市 | 852 | 8,014 | 1,219.2 | 28.11 | 28.1% | 6 |
| 世羅町 | 中山間 | 343 | 6,213 | 1,338.0 | 22.33 | 22.3% | 41 |
| 広島市 | 都市 | 272 | 5,592 | 1,114.2 | 6.17 | 6.2% | 0 |
| 呉市 | 都市 | 225 | 5,471 | 981.9 | 15.51 | 15.5% | 3 |
| 府中市 | 都市 | 158 | 3,604 | 1,070.1 | 18.41 | 18.4% | 10 |
| 廿日市市 | 都市 | 266 | 3,308 | 770.8 | 6.76 | 6.8% | 3 |
| 江田島市 | 離島 | 142 | 2,750 | 364.4 | 27.31 | 27.3% | 12 |
| 竹原市 | 都市 | 8,879 | 1,360 | 5.4 | 11.51 | 11.5% | 6 |
| 大竹市 | 都市 | 33 | 441 | 101.1 | 5.60 | 5.6% | 2 |
| 熊野町 | 近郊町 | 145 | 356 | 60.2 | 10.56 | 10.6% | 2 |
この表から読み取れること: AREA 合計 1 位は庄原市 46,710 ha (市域の 37.5%)、最下位は大竹市 440.7 ha。1 人あたり対象農地は中山間市町で41 a/人 (世羅町) や 142 a/人 (庄原市) と桁違いに大きく、政令市は0 a/人 (広島市)と最小。『中山間住民は 1 人あたり 1 ha 規模の農地を背景に持つ』 vs 『都市住民は 0.0X ha 規模の対象農地しかない』という対比が定量化された。
仕様書未公開のAREA 列の単位を、ジオメトリ実測との比較から確定する。AREA = 0 のポリゴンが大量にある (全 18%) 事実は図面精度 1/50,000 の限界を示すデータ品質の話。これらを定量的に解明することで、「仕様書未公開の公開データを安全に使う方法」を学習者に伝える。
(a) AREA 申告 vs 実測 散布図 (log-log): x軸 = AREA (申告 ha)、y軸 = geom_area_ha (m² から換算した実測 ha)。y = x の対角線が「申告 = 実測」を意味する。『AREA × 10,000 = m²』であれば、両軸 ha で y = x にぴったり乗る。別の単位 (a だったら 100 倍ずれ、m² だったら 10,000 倍ずれ) ならズレる。AREA = 0 を除外 (log は 0 を扱えない)。
(b) AREA = 0 の geom_area 分布: AREA = 0 ポリゴンの実測面積をヒストグラム化。『どの程度小さいから 0 に丸められたか』を可視化することで、図面精度 1/50,000 の四捨五入境界を逆算する。ha 単位での 0 とは0.005 未満 = 50 m² 未満。
なぜこの図か: AREA 列の単位確定は『仕様書なしのデータと向き合う』教材の核心。log-log 散布で y = x ラインに点が乗ることで 『申告 ≒ 実測』が視覚的に確認できる。右側の AREA=0 ポリゴンの実測ヒストグラムは、図面精度の限界を直視させる。

この図から読み取れること
| 順位 | 市町 | 地理 | CITY_CD | KUIKI_CD | AREA(ha) | 実測(ha) | area_ratio | 規模クラス |
|---|---|---|---|---|---|---|---|---|
| 1 | 庄原市 | 中山間 | 210 | 0 | 19,230.6 | 19,230.6 | 1.0000 | 5_巨大(≥100 ha) |
| 2 | 安芸高田市 | 中山間 | 214 | 0 | 6,591.6 | 6,591.6 | 1.0000 | 5_巨大(≥100 ha) |
| 3 | 庄原市 | 中山間 | 210 | 0 | 5,068.8 | 5,068.8 | 1.0000 | 5_巨大(≥100 ha) |
| 4 | 庄原市 | 中山間 | 210 | 0 | 3,823.6 | 3,823.6 | 1.0000 | 5_巨大(≥100 ha) |
| 5 | 三原市 | 都市 | 204 | 0 | 2,310.3 | 2,310.3 | 1.0000 | 5_巨大(≥100 ha) |
| 6 | 庄原市 | 中山間 | 210 | 0 | 1,912.8 | 1,912.7 | 1.0000 | 5_巨大(≥100 ha) |
| 7 | 福山市 | 都市 | 207 | 2 | 1,909.3 | 1,909.3 | 1.0000 | 5_巨大(≥100 ha) |
| 8 | 三原市 | 都市 | 204 | 0 | 1,743.2 | 1,743.2 | 1.0000 | 5_巨大(≥100 ha) |
| 9 | 北広島町 | 中山間 | 369 | 0 | 1,612.2 | 1,612.2 | 1.0000 | 5_巨大(≥100 ha) |
| 10 | 東広島市 | 都市 | 212 | 2 | 1,605.3 | 1,605.3 | 1.0000 | 5_巨大(≥100 ha) |
この表から読み取れること: top 1 は庄原市 19,231 ha (1 ポリゴン!) ─ 市域 1,246 km² の 15% が単一 polygon で覆われている。area_ratio = 1.0000 で実測と完全一致。top 10 はすべて中山間 (庄原・三次・東広島・北広島・世羅・安芸高田)で、AREA が 500 ha 以上の「巨大ブロック」。これらは『市町全域を覆う農用地区域指定エリア』と推定 ─ 個別の転用許可ではなく、制度上の区分図面と思われる。上位 10 件の AREA 合計 = 45,808 ha = 全 AREA の29.5%を占める ─ パレート構造の極端な実例。
農地転用ポリゴンを規模クラス 6 段階に分類し、『何件のポリゴンが、どれくらいの面積を占めるか』のパレート構造を可視化する。市町別の規模構成も比較し、『市町タイプによって転用ポリゴンの規模が違う』(中山間=巨大、都市=小規模)の二極構造を確認する。
(a) 規模クラス × 市町 stacked bar (件数比率): 市町別に規模クラス分布を 100% 棒グラフで並べ、『竹原市は微小ばかり』『庄原市は大きいの混在』の質的違いを示す。
(b) パレート図 (件数 % vs 面積 %, 規模クラス毎): 横軸 = 規模クラス、縦軸 = 全体に占める比率 (件数 % と 面積 % を 2 本並列)。『規模クラス間で件数 % と面積 % が逆転する』= 「数の少数派が量の多数派」のパレート構造を直視する。
↑ L24_farmland_conversion.py 行 1767–1810
なぜこの図か: 単純な平均値や合計では 『規模分布の歪み』が見えない。stacked bar で市町ごとの規模構成を直視し、パレート図で件数 % vs 面積 % の逆転現象を視覚化することで、『大規模ポリゴンが面積を支配する』を一目で伝える。

この図から読み取れること
| 規模クラス | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 0_微小(<0.01 ha) | 2,615 | 18.1% | 0 | 0.0% |
| 1_小(0.01-0.1 ha) | 5,222 | 36.1% | 186 | 0.1% |
| 2_中(0.1-1 ha) | 4,198 | 29.0% | 1,342 | 0.9% |
| 3_大(1-10 ha) | 1,384 | 9.6% | 4,974 | 3.2% |
| 4_超大(10-100 ha) | 806 | 5.6% | 26,299 | 17.0% |
| 5_巨大(≥100 ha) | 234 | 1.6% | 122,310 | 78.9% |
この表から読み取れること: 0_微小 (2,615 件 = 18%) は件数で全体の 1/3 を占めるが、面積では 0%。5_巨大 (234 件 = 1.6%)はわずか件数の 0.X%だが、面積で 50% 超を占める ─ 『1 件の巨大区画 = 数千件の微小区画』。これは「データ集計時に件数で重み付けすると、面積実態を見誤る」という教訓 ─ 必ず面積加重で集計せよ。
なぜこの図か: パレート構造の上位 8% (≥10 ha) を地理的に確認する。県全域マップでは大小ポリゴンが alpha 重ねで判別困難。ここではバブル (centroid 中心、AREA に比例した大きさ) で大規模区画の地理的偏在を可視化する。

この図から読み取れること
仕様書未公開のKUIKI_CD (区域コード, 0-6 の 7 値) とTOKEI_CD (統計区分コード, 1-3 の 3 値) の意味を、市町別の値分布と地理的位置から『推定』する。これは『公開オープンデータの仕様書がない場合に、自分で意味を解読する』という研究プロセスの実演である。
(a) KUIKI_CD 別 県全域マップ: 0-6 を異なる色で塗り、地理分布から仮説を立てる。『線引き都市計画区域 (市街化/調整区域)』の都市市町と、『線引きなし』の中山間市町で値分布が異なるはず。
(b) KUIKI_CD × 市町 stacked bar (件数比率): 各市町の値分布を 100% 棒グラフで並べる。市町タイプごとに値の組み合わせがクラスタ化されることを期待。
↑ L24_farmland_conversion.py 行 1896–1941
なぜこの図か: KUIKI_CD = 0-6の 7 値が何を意味するか、テーブルだけでは分からない。地図に色分けして『地理的にどう分布するか』を見せると、都市計画区域の階層構造と整合する分布が見えれば仮説が支持される。

この図から読み取れること
| KUIKI_CD | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 0.0 | 2,563.0 | 17.7% | 117,524 | 75.8% |
| 1.0 | 999.0 | 6.9% | 81 | 0.1% |
| 2.0 | 702.0 | 4.9% | 18,259 | 11.8% |
| 3.0 | 2,851.0 | 19.7% | 167 | 0.1% |
| 4.0 | 7,318.0 | 50.6% | 18,844 | 12.1% |
| 5.0 | 9.0 | 0.1% | 0 | 0.0% |
| 6.0 | 17.0 | 0.1% | 235 | 0.2% |
この表から読み取れること: KUIKI_CD = 0 が件数 % で18% ─ 中山間に多い「都市計画区域外」の農地と推定 (面積も最大)。KUIKI_CD = 3, 4 が件数 %で大きい ─ 『非線引き / 区域外』の混在と推定。KUIKI_CD = 1, 2 は件数 %は小さいが、これらは『市街化区域 + 調整区域』= 都市計画区域内の農地で、都市拡張の最前線。KUIKI_CD = 5, 6 は極めて少ない (広島市のみ) ─ 『広島市特有のサブ区分』(政令市の独自 KUIKI 値か?)。
| TOKEI_CD | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 1.0 | 11,870.0 | 82.1% | 37,352 | 24.1% |
| 2.0 | 26.0 | 0.2% | 235 | 0.2% |
| 3.0 | 2,563.0 | 17.7% | 117,524 | 75.8% |
この表から読み取れること: TOKEI_CD = 1 が件数で82%と最大 ─ 『農用地区域指定 (主要)』と推定。TOKEI_CD = 3 は件数で次点 ─ 『農業振興地域内農用地白地』と推定。TOKEI_CD = 2 は最少 ─ 『その他』と推定。仕様書未公開のため確定できないが、『市町間でも値分布のパターンが類似 (= 制度上の意味があるはず)』と推測される。発展課題で都市計画基礎調査要綱との照合により確定する。
市町の総面積・総人口と AREA の関係を log-log 散布で示し、「市町規模と対象農地の関係」と「1 人あたり対象農地の地理タイプ依存」を可視化する。農地転用無し 3 町を ×印で同じ散布に重ね、「対象農地ゼロの境界」を観察する。
(a) 市域面積 vs AREA (log-log): x軸 = 市町面積 km²、y軸 = AREA 合計 ha。1% / 10% の対象農地率ライン (= 1 ha/km², 10 ha/km²) を補助線として引く。
(b) 市町総人口 vs 1 人あたり対象農地 (a/人): 市町人口 vs 市民 1 人あたり対象農地。中山間市は1 万 a/人 = 100 ha/人規模、都市市は0.X a/人と桁違い。地理タイプで 4 グループにクラスタ化されるはず。
なぜこの図か: 市町の対象農地は市域規模に依存することが想像できるが、log-log 散布で『市域 1% ライン vs 10% ライン』を引くと、市町の『対象農地率階層』が一目で分かる。1 人あたり指標と組み合わせると、『地理タイプによる構造的違い』が立体的に見える。

この図から読み取れること
| 地理タイプ | 市町数 | 合計面積 km² | 合計人口 千人 | AREA ha | 対象農地率 % | 1人あたり a |
|---|---|---|---|---|---|---|
| 都市 | 10 | 4,052 | 2,480 | 61,511 | 15.2% | 2.5 |
| 中山間 | 5 | 3,487 | 142 | 90,494 | 26.0% | 63.7 |
| 離島 | 1 | 101 | 22 | 2,750 | 27.3% | 12.5 |
| 近郊町 | 1 | 34 | 23 | 356 | 10.6% | 1.5 |
| 農地転用無し町 | 3 | 40 | 95 | 0 | 0% | 0 |
この表から読み取れること: 『中山間 5 市町』は面積 3,487 km² (県の 45%) で AREA = 90,494 ha ─ 県の対象農地の 58% を 5 市町が占める。対する『都市 10 市』は面積 4,052 km² (県の 53%) だが AREA = 61,511 ha (40%)。『中山間が県の食料供給基盤を背負う』地理構造が明確。近郊町 (熊野町) と離島 (江田島市) は補助的な役割。
分析 1〜7 の結果から、仮説 H1〜H6 を改めて検証する。
| 仮説 | 仮説内容 | 検証結果 | 判定 |
|---|---|---|---|
| H1 | 県内 17 市町の総 AREA (対象農地) ≥ 50,000 ha | AREA合計 = 155,111 ha (= 1551.1 km²) | 支持 |
| H2 | 中山間 5 市町 (庄原・三次・東広島・北広島・世羅) ≥ 50,000 ha かつ 都市 5 市の合計より大きい | 中山間 5 市町 = 93,117 ha, 都市 5 市 = 32,324 ha (中山間/都市 比率 = 2.9x) | 支持 |
| H3 | AREA=0 ポリゴン (図面精度由来) は市町別中央値 5-25% | 全件 AREA=0 = 2,615/14,459 = 18.1%, 市町別 min/median/max = 0.0/10.5/61.4% | 支持 |
| H4 | AREA(ha) × 10,000 = geom_area_m² → ratio (geom_ha/AREA) 中央値 ≒ 1.0 | ratio 中央値 = 1.0000 (IQR = [0.9815, 1.0119]) | 支持 |
| H5 | KUIKI_CD は都市計画区域階層フラグと推定 — 都市 7 市町に 1/2 値、中山間に 3/4 値 | 都市 7 市中 KUIKI=1or2 を持つ市町 = 7/7、中山間 5 市町中 KUIKI=3or4 を持つ市町 = 5/5 | 支持 |
| H6 | 大規模対象農地 (≥10 ha) は件数 <10% かつ 面積 ≥50% (パレート構造) | ≥10ha件数 = 1,040 (7.19%), ≥10ha面積 = 148,609 ha (95.8%) | 支持 |
本記事で得られた結果から導かれる新たな問いと、 それを検証するための具体的な発展手順を 3 つ提示する。
結果 X: 本記事で県内 17 市町の対象農地 14,459 ポリゴン (155,111 ha) の地理が定量化された。 都市計画基礎調査の同じ期間 (2016-2020) で、もう 1 つのシリーズ 「農林漁業関係施策」(L25, 17 件) が公開されており、 これは『国・県の農地保全策が適用される区域』を示す。
新仮説 Y: 農林漁業施策エリアと農地転用対象エリアは地理的に重なる (= 同じ農地に保全策と転用区分が同居)か、 相補的に分布する (= 保全区域と転用区域は別)のどちらか。 広島県は中山間振興策 (中山間直接支払等) を多く実施するため、 「中山間 5 市町で重なり率 ≥ 80%」と予想される。
課題 Z: geopandas.overlay(farm, sisaku, how='intersection') で
17 市町ごとに重なり面積を計算 →
「保全 ∩ 転用 / 転用」の包含率を市町別に集計 →
17 panels small multiples で重なり地理を可視化 →
『広島県の中山間農地は保全と転用が同居している』仮説を検証。
本記事の次記事 L25 でこれを実装する予定。
結果 X: 本記事で KUIKI_CD = 都市計画区域階層フラグ (推定) が 都市市町と中山間市町で値分布が異なることを確認した。 ただし『どの値が市街化区域』かは推定の域を出ない。
新仮説 Y: L15 の市街化区域 / 市街化調整区域 ポリゴン (14 + 14 件)と 本記事の対象農地ポリゴンを空間結合すれば、 KUIKI_CD = 1 が市街化区域、KUIKI_CD = 2 が市街化調整区域、 KUIKI_CD = 3, 4 が非線引きまたは区域外、と確定できる。 『各 KUIKI 値ポリゴンの 80% 以上が、対応する都市計画区域内に位置する』 ことを定量的に確認する。
課題 Z: L15 都市計画区域データを取得 →
gpd.sjoin(farm, kuiki_zones, predicate='within') で
各転用ポリゴンに区域種別を付与 →
KUIKI_CD × 区域種別のクロス集計 →
『KUIKI_CD = 1 のポリゴンは市街化区域内』等の対応関係を表で示す。
発展手順としては data/extras/_urban_planning_audit/ の市街化区域 ZIP を活用。
結果 X: 本記事は 2016-2020 (5 年間) のスナップショット。 転用が静的か動的かを語るには 1 期しかなく不十分。
新仮説 Y: 次期都市計画基礎調査 (2021-2025) では、 (a) 都市市の調整区域内ポリゴンが都市開発で減少する一方、 (b) 中山間市町の区域外ポリゴンは耕作放棄で『非農地』扱いに変わる ─ 両ベクトルで対象農地は『縮小』すると予想される。 庄原市・三次市の中山間ポリゴンは5 年で 5-10% 縮減。
課題 Z: 都市計画基礎調査の次期版が公開されたら (R8 頃想定)、 同じ ID 体系で 17 市町分の差分計算。 ポリゴン重なり率 (Jaccard 係数) を市町別に算出 → 「Δ 面積 = 縮小と新規追加」を定量化 → 中山間と都市で減少パターンの違いを比較 → 『どこで耕作放棄が進み、どこで転用が進むか』の地理を描く。 これは現時点では未来課題だが、本記事の手法 (load_geojson_zip + AREA 数値化 + 派生) を流用すれば即実装可能な再現性を確保している。