✅ このスクリプトは初回実行時にデータを自動取得します(DoBoX からの直接ダウンロード)。
| ID | データセット名 |
|---|---|
| #222 | dataset #222 |
| #333 | dataset #333 |
| #444 | dataset #444 |
| #600 | 雪崩危険箇所情報_北広島町 |
| #888 | 都市計画区域情報_区域データ_安芸高田市_行政区域 |
| #1408 | 都市計画区域情報_農林漁業関係施策_安芸高田市_2022 |
| #1409 | 都市計画区域情報_農林漁業関係施策_呉市_2022 |
| #1410 | 都市計画区域情報_農林漁業関係施策_広島市_2022 |
| #1411 | 都市計画区域情報_農林漁業関係施策_江田島市_2022 |
| #1412 | 都市計画区域情報_農林漁業関係施策_坂町_2022 |
| #1413 | 都市計画区域情報_農林漁業関係施策_三原市_2022 |
| #1414 | 都市計画区域情報_農林漁業関係施策_三次市_2022 |
| #1415 | 都市計画区域情報_農林漁業関係施策_庄原市_2022 |
| #1416 | 都市計画区域情報_農林漁業関係施策_世羅町_2022 |
| #1417 | 都市計画区域情報_農林漁業関係施策_大竹市_2022 |
| #1418 | 都市計画区域情報_農林漁業関係施策_竹原市_2022 |
| #1419 | 都市計画区域情報_農林漁業関係施策_東広島市_2022 |
| #1420 | 都市計画区域情報_農林漁業関係施策_廿日市市_2022 |
| #1421 | 都市計画区域情報_農林漁業関係施策_尾道市_2022 |
| #1422 | 都市計画区域情報_農林漁業関係施策_府中市_2022 |
| #1423 | 都市計画区域情報_農林漁業関係施策_福山市_2022 |
| #1424 | 都市計画区域情報_農林漁業関係施策_北広島町_2022 |
実行コマンド:
cd "2026 DoBoX 教材"
python -X utf8 lessons/L25_agroforestry_policy.py
DoBoX のオープンデータは申請不要・商用/非商用とも利用可。
data/extras/ は .gitignore 対象(約 57 GB のキャッシュ)。
スクリプト実行で自動再生成されます。
本記事は、広島県インフラマネジメント基盤 DoBoX が公開する 「都市計画区域情報_農林漁業関係施策」シリーズ 17 件 (#1410, #1409, #1423, #1419, #1420, #1421, #1413, #1418, #1422, #1417, #1414, #1415, #1408, #1411, #1412, #1424, #1416) を縦結合し、2022 年 (単年) の広島県内 17 市町の 農林漁業関係施策ポリゴン 計 1,912 件 (合計実測 24,007 ha = 240 km²) から、広島県内の「保全策の地理構造」 ── 施策面積分布・市町別パターン・ NRG_AN 文字列の施策種別分類・KUIKI_CD 別の都市計画階層・ 農地転用 L24 との空間対比 ── を分析する研究記事である。 全 20 市町中 3 町 (熊野町・府中町・海田町) は施策データ無指定。 L24 (農地転用) と L25 (本記事) は同じ 17 市町数だが 1 町だけスワップ (L24=熊野町を含み坂町を含まない、L25=坂町を含み熊野町を含まない) ─ このコントラストも分析対象とする。
GeoDataFrame
(1,912 polygon × 7 列 + 派生 5 列) に縦結合できる。
CRS が EPSG:2445 で記録されている (L24 は EPSG:6671) ─
to_crs("EPSG:6671") で統一する手順を学ぶ。groupby で実装する。shapely.union_all().intersection() で計算し、
『保全策と転用のせめぎあい』の定量化を体験する。本記事は農林漁業関係施策 17 件のみを主データとする研究記事である。 姉妹シリーズ 農地転用 (L24, 17 件) は前記事で扱った。 本記事では L24 既知データを参考併置する (空間重複分析と重ね合わせマップ) が、両記事を合体させない (要件 I の水増し回避)。 17 市町行政区域 (L15 既取得) のみ背景レイヤーとして利用するが、 L15 都市計画区域記事と論点を重複させない。
農林漁業関係施策 17 件はそれぞれ 1 市町分の農林漁業施策ポリゴン GeoJSON (Polygon または MultiPolygon) を ZIP で配布している。 列構造は 17 件で 100% 一致 (7 列)。 データは2022 年単年のスナップショット (L24 が 2016-2020 の 5 年集計だったのと対照的)。
| dataset_id | 市町 | 市町タイプ | 地理 | DoBoX | 件数 | MultiP | Multi% | NRG null | KUIKI_CD | TOKEI_CD |
|---|---|---|---|---|---|---|---|---|---|---|
| #1410 | 広島市 | 政令市 | 都市 | DoBoX | 426 | 13 | 3.1% | 2 | 0,2,6 | 1,2,3 |
| #1409 | 呉市 | 中核市 | 都市 | DoBoX | 54 | 2 | 3.7% | 0 | 0,4 | 1,3 |
| #1423 | 福山市 | 中核市 | 都市 | DoBoX | 318 | 53 | 16.7% | 38 | 0,1,2 | 1,3 |
| #1419 | 東広島市 | 施行時特例市 | 都市 | DoBoX | 358 | 63 | 17.6% | 1 | 0,1,2,4 | 1,3 |
| #1420 | 廿日市市 | 市 | 都市 | DoBoX | 32 | 0 | 0.0% | 0 | 2,3,4 | 1 |
| #1421 | 尾道市 | 市 | 都市 | DoBoX | 200 | 25 | 12.5% | 9 | 0,2,3,4 | 1,3 |
| #1413 | 三原市 | 市 | 都市 | DoBoX | 40 | 3 | 7.5% | 0 | 0,2,4 | 1,3 |
| #1418 | 竹原市 | 市 | 都市 | DoBoX | 36 | 1 | 2.8% | 0 | 4 | 1 |
| #1422 | 府中市 | 市 | 都市 | DoBoX | 44 | 9 | 20.5% | 6 | 0,1,2 | 1,3 |
| #1417 | 大竹市 | 市 | 都市 | DoBoX | 9 | 0 | 0.0% | 0 | 0 | 3 |
| #1414 | 三次市 | 市 | 中山間 | DoBoX | 50 | 12 | 24.0% | 0 | 0,3,4 | 1,3 |
| #1415 | 庄原市 | 市 | 中山間 | DoBoX | 76 | 20 | 26.3% | 4 | 0,4 | 1,3 |
| #1408 | 安芸高田市 | 市 | 中山間 | DoBoX | 25 | 7 | 28.0% | 0 | 0,4 | 1,3 |
| #1411 | 江田島市 | 市 | 離島 | DoBoX | 16 | 0 | 0.0% | 0 | 0,4 | 1,3 |
| #1412 | 坂町 | 町 | 近郊町 | DoBoX | 1 | 0 | 0.0% | 0 | 2 | 1 |
| #1424 | 北広島町 | 町 | 中山間 | DoBoX | 126 | 0 | 0.0% | 0 | 0,4 | 1,3 |
| #1416 | 世羅町 | 町 | 中山間 | DoBoX | 101 | 27 | 26.7% | 0 | 0,3,4 | 1,3 |
合計: 1,912 ポリゴン (うち Polygon 1,677, MultiPolygon 235) / 実測面積合計 24,007 ha = 240.1 km²。 広島県全域面積 8,479 km² に対し、施策面積率は 2.8%。 件数最大は広島市 426 件、件数最小は坂町 1 件(漁業基地のみ)。 17 市町 100% で同一 7 列構造、追加列なし。
| 市町 | タイプ | 地理 | 面積 km² | 人口 (千人) | 密度 (人/km²) |
|---|---|---|---|---|---|
| 熊野町 | 町 | 近郊町 | 33.7 | 23 | 682 |
| 府中町 | 町 | 近郊町 | 10.4 | 53 | 5096 |
| 海田町 | 町 | 近郊町 | 13.8 | 30 | 2174 |
3 町 (熊野町・府中町・海田町) はL25 シリーズ未指定。 府中町・海田町は L24 でも未指定 (= 都市部 100%)、 熊野町は L24 にあったが L25 では無い ─ 熊野町には農地転用の対象は記録されたが、 保全/振興施策の対象は無い (= 「保全せず転用していく町」)。 逆に L25 で追加された坂町は L24 に無く、 施策ポリゴンが 1 件のみ「森山北漁業基地」(漁業施設) ─ 広島湾岸ベッドタウンだが漁港の小さな伝統が残る。
| 列名 | 型 | 意味 |
|---|---|---|
ID | int32 | ポリゴン ID (市町内の連番)。L24 の TOKEI_CD/CITY_CD に相当する位置だが、 L25 では別途 ID 列が付与される |
TOKEI_CD | int32 | 統計区分コード (1, 2, 3 の 3 値)。施策種別のフラグと推定 ─ 市町別に値分布が異なる (中山間は 1 と 3 主体、都市は 1, 2, 3 混在) |
CITY_CD | int32 | 市区町村コード。広島市は 8 区中 105/106/108 のみデータあり (他区はデータ無し)。各市町は単一 CITY_CD |
KUIKI_CD | int32 | 区域コード (0-6 の 7 値、仕様書未公開)。 都市計画区域階層のフラグと推定 (詳細は分析 6 で解読) |
NRG_AN | object | 施策名/対象地区名 (本記事の主役の文字列列)。 実データから観察すると大半が地区名・集落名、 一部が「ダム」「池」「漁業基地」「ほ場整備」等の施設・施策名。 欠損率は市町により 0-15% で、広島市 0.5%と極小 |
RITTEKI_CD | int32 | 立地コード (0, 1, 2 の 3 値、仕様書未公開)。 全 17 市町で値 0 が支配的、廿日市市のみ 1 が 1/3 程度。 立地タイプフラグと推定 |
geometry | Polygon または MultiPolygon | 施策対象境界。EPSG:2445 (旧広島県平面直角)で記録され、
L24 の EPSG:6671 と異なる ─ 本記事では to_crs("EPSG:6671")
で統一。MultiPolygon は全件の 12.3% で、
中山間市町ほど高比率 |
to_crs() で正確に変換可能。
2. 監査時 (2026-05-03) の DL では 坂町 (1412)・竹原市 (1418) が KMZ 形式しか
自動取得できなかったが、再取得で GeoJSON 単独 ZIP を確保。
→ fetch スクリプトの pick_best() を「geojson 単独 rid を最優先」
に修正することで 17 件全て GeoJSON で揃った。
3. 広島市 (1410) は監査時 NRG_AN サンプルが None だったが、
実データでは 426 行中 424 行 (99.5%) に地区名が入っている。
「サンプル 1 行で判断するな」のデータ取扱い教訓 (H6 で検証)。
4. L24 (転用) との 1 町スワップ: L24 = 熊野町を含み坂町を含まない。
L25 = 坂町を含み熊野町を含まない。「施策の有無」は「転用の有無」と
完全には一致しない ─ シリーズ性格の違い (動的 vs 静的) を反映。本記事の再現性を担保するため、HTML 1 枚から 生データ・中間 CSV・図 PNG・再現 Python を直リンクで取得できる。
17 件の ZIP は前項の表からそれぞれ DoBoX へリンク。 あるいは一括取得スクリプト:
cd "2026 DoBoX 教材"
py -X utf8 data\extras\L25_agroforestry_policy\fetch_agroforestry_policy.py
合計サイズ約 2 MB (L24 の 12 MB より遥かに小さい)。
監査時取得済の 3 市町 (広島市・呉市・福山市) は
data/extras/_urban_planning_audit/ から自動コピー、
残り 14 市町は DoBoX から HTTP 取得 (約 15 秒)。
実行は cd "2026 DoBoX 教材"; py -X utf8 lessons\L25_agroforestry_policy.py。
17 ZIP がローカルにあれば 30 秒程度で全図 + CSV 再生成 (要件 S 準拠)。
17 ZIP の農林漁業施策 GeoJSON を 1 個の GeoDataFrame (1,912 polygon × 7 列 + 派生 4 列) に統合し、後段の市町別集計・主題図・NRG_AN 分析の基盤データを作る。行政区域 20 件 (施策あり 17 + 無し 3) を背景レイヤーとして同時に読み込む。CRS が EPSG:2445 (旧) で記録されているため、EPSG:6671 (新, L24 と同じ) に変換することがこの分析の核。併せて NRG_AN 文字列をキーワード辞書で 8 タイプに分類する。
直感: ZIP を読む → 列を共通 7 列に揃える → CRS を to_crs(EPSG:6671) で変換 → 縦結合 → NRG_AN を分類関数でタイプ化 → 派生指標 (実測ha・ジオメトリ型・分類タイプ) を計算 → 行政区域 dissolve で背景レイヤー作成。
大筋 (5 ステップ)
load_geojson_zip() で GeoDataFrame を読むto_crs('EPSG:6671') で変換 (旧→新平面直角座標系の正確な変換)pd.concat で縦結合 → 1,912 行 1 個の GeoDataFramegeom_area_m2, geom_area_ha, geom_type, nrg_classNRG_AN 分類アルゴリズム: 各文字列を以下の優先順位でチェック ─ ダム → ため池 → 漁業 → 林業 → ほ場整備 → 基地・施設 → 地区名のみ → 欠損。「池」のように複数タイプに当てはまる場合は最初に当たったタイプを採用(複数タイプ計上による二重カウント防止)。
前提と限界: 17 件の施策データは追加列が全く無い。坂町 (1412) のみ 1 ポリゴン (= 漁業基地) で他市町と質的に異なる。広島市 (1410) は CITY_CD = 105/106/108 の 3 区分のみで、8 区全部のデータは含まれない (中区・東区・西区など南部デルタは除外)。NRG_AN 分類はキーワード辞書ベースで完璧ではない (「林田」のような地名が「林業」に誤分類される可能性) が、全体傾向把握には十分。
↑ L25_agroforestry_policy.py 行 1348–1531
NRG_AN 文字列はデータごとに 地区名・施設名・None が混在する。
分類関数 classify_nrg_an() が 1 件をどう変換するかを、
広島市最大施策ポリゴン (鹿之道地区, 「ほ場整備」キーワード含む) を例に追跡する:
| 段階 | 列 | このデータで何が起きるか | 1 行の値の例 (広島市の代表的施策ポリゴン) |
|---|---|---|---|
| 入力 (生) | NRG_AN (object) |
GeoJSON から読込時、文字列または None | 'ほ場整備鹿之道地区' |
| 分類関数 | classify_nrg_an(s) |
Null チェック → キーワード辞書を順番に走査 → 最初に当たったタイプを返す | キーワード「ほ場整備」を検出 |
| 出力 | nrg_class |
分類結果の文字列 | 'ほ場整備' |
| 派生 | geometry → geom_area_m2 |
EPSG:6671 で正確な面積 (m²) を計算 | 例: 5,135,462 m² (広島市最大施策) |
| 派生 | geom_area_ha = m2/1e4 |
m² → ha 変換 | 513.5 ha (広島市最大) |
| 派生 | geom_type |
geometry の型 (Polygon / MultiPolygon) | 'Polygon' (広島市最大は単一 Polygon) |
このように、7 列の生データから NRG_AN 分類・実測ha・ジオメトリ型の派生指標を導出する。 特に nrg_class 列は本記事の『施策の質的構造』を表す核心列で、 『仕様書未公開でも、文字列パターンから施策タイプを推定できる』本記事の中核手法。
余談: NRG_AN は 17 市町で地区名 (88%) と キーワード分類 (9%)に ほぼ二分される。「ほ場整備」「ダム」「池」などキーワードが入る施策ポリゴンは 全 1,912 件中 約 170 件 (= 9%)、残りは地名のみ。 これは広島県の農林漁業施策が「集落単位」で運営されている実態を示す。
17 ZIP のうち、17 件すべてが共通 7 列で読み込み成功。統合後の agro GeoDataFrame は 1,912 polygon × 16 列。実測面積合計 = 24,007 ha = 240 km² (= 広島県全域の 2.8%)。Polygon : MultiPolygon = 1,677 : 235 (= MultiPolygon 12.3%)。処理時間は 24.3 秒で要件 S を満たす。
| 市町 | 地理 | 件数 | MultiP | Multi% | NRG null | NRG null% | KUIKI | TOKEI |
|---|---|---|---|---|---|---|---|---|
| 広島市 | 都市 | 426 | 13 | 3.1% | 2 | 0.5% | 0,2,6 | 1,2,3 |
| 呉市 | 都市 | 54 | 2 | 3.7% | 0 | 0.0% | 0,4 | 1,3 |
| 福山市 | 都市 | 318 | 53 | 16.7% | 38 | 11.9% | 0,1,2 | 1,3 |
| 東広島市 | 都市 | 358 | 63 | 17.6% | 1 | 0.3% | 0,1,2,4 | 1,3 |
| 廿日市市 | 都市 | 32 | 0 | 0.0% | 0 | 0.0% | 2,3,4 | 1 |
| 尾道市 | 都市 | 200 | 25 | 12.5% | 9 | 4.5% | 0,2,3,4 | 1,3 |
| 三原市 | 都市 | 40 | 3 | 7.5% | 0 | 0.0% | 0,2,4 | 1,3 |
| 竹原市 | 都市 | 36 | 1 | 2.8% | 0 | 0.0% | 4 | 1 |
| 府中市 | 都市 | 44 | 9 | 20.5% | 6 | 13.6% | 0,1,2 | 1,3 |
| 大竹市 | 都市 | 9 | 0 | 0.0% | 0 | 0.0% | 0 | 3 |
| 三次市 | 中山間 | 50 | 12 | 24.0% | 0 | 0.0% | 0,3,4 | 1,3 |
| 庄原市 | 中山間 | 76 | 20 | 26.3% | 4 | 5.3% | 0,4 | 1,3 |
| 安芸高田市 | 中山間 | 25 | 7 | 28.0% | 0 | 0.0% | 0,4 | 1,3 |
| 江田島市 | 離島 | 16 | 0 | 0.0% | 0 | 0.0% | 0,4 | 1,3 |
| 坂町 | 近郊町 | 1 | 0 | 0.0% | 0 | 0.0% | 2 | 1 |
| 北広島町 | 中山間 | 126 | 0 | 0.0% | 0 | 0.0% | 0,4 | 1,3 |
| 世羅町 | 中山間 | 101 | 27 | 26.7% | 0 | 0.0% | 0,3,4 | 1,3 |
この表から読み取れること: 件数最大は広島市 426 件、最小は坂町 1 件 (漁業基地のみ)。MultiPolygon 比率の市町間差が大きい ─ 中山間市町 (世羅町 26.7%, 三次市 24.0%, 東広島市 17.6%, 庄原市 26.3%) は分散圃場が多く MultiPolygon 多用。対して都市市町 (廿日市市 0%, 大竹市 0%, 府中市 20.5% 等) は単一 Polygon 主体。NRG_AN null は 17 市町中 11 市で 0% ─ ほぼ全件に地区名が入る。福山市 (11.9%)・尾道市 (4.5%) のみ若干高め。広島市 NRG_AN null = 0.5% ─ 監査時の「広島市 None」結論を反証 (H6)。KUIKI_CD 値は中山間で 0 主体 (= 区域外/非線引き)、都市市町で 0,1,2,4 混在 (= 線引き都市計画区域あり) ─ L24 と整合的。
広島県内の農林漁業施策ポリゴン全 1,912 件の地理的配置を 1 枚で見せる。「県のどこで、どう密集して保全策が広がっているか」を地図で直接視覚化することは、本シリーズの本質を理解する最短経路。施策あり 17 市町 vs 無し 3 町を色分けで対比する 2 枚目で、L24 との「1 町スワップ」(熊野町=L24 のみ、坂町=L25 のみ) も明示する。
(a) 県全域 主題図: 全 20 市町と広島県全域の行政区域を背景にし、geopandas.plot(facecolor=rtype_color, alpha=0.65) で施策ポリゴンを地理タイプ色 (都市=赤・中山間=緑・離島=青・近郊町=紫) で描画。
(b) 17 vs 3 マップ: 17 市町を緑、3 町を赤で塗り、施策ポリゴンを濃緑で重ねる。坂町 (L25 のみ、漁業基地 1 件) をハイライト矢印で強調。「施策無し 3 町」は L24 と一部異なる (熊野町は L24 にあった)。
↑ L25_agroforestry_policy.py 行 1540–1585
なぜこの図か: テーブルや棒グラフでは「保全策が県のどこに、どう広がっているか」が分からない。地図 1 枚で「中山間 (緑) に保全策が広く、都市 (赤) は中心部のみ点在」という県全体の地理構造を一気に伝える。

この図から読み取れること
なぜこの図か: L24 と L25 で 17 市町の構成が 1 町だけ違う(L24 = 熊野町を含む / L25 = 坂町を含む)。この『1 町スワップ』はシリーズの性格差 (動的指標 vs 静的指標) を反映する。地図でないと伝わらない構造変化を可視化する。

この図から読み取れること
| 区分 | 市町数 | 合計面積 km² | 合計人口 千人 | 施策ポリゴン | 施策面積 ha | 施策面積率 |
|---|---|---|---|---|---|---|
| L25 施策あり 17 | 17 | 7,655 | 2,656 | 1,912 | 24,007 | 3.14% |
| L25 施策無し 3 | 3 | 58 | 106 | 0 | 0 | 0% |
| 計 (20 市町) | 20 | 7,713 | 2,762 | 1,912 | 24,007 | 3.11% |
この表から読み取れること: L25 施策の県内面積率は 3.11% ─ L24 (約 18%) より桁違いに小さい。これは『施策ポリゴンは制度的に保全対象を切り出した「キワ」のエリア』であり、L24 の『農地転用の対象農地全体』とは粒度が異なることを示す。1 町スワップ (熊野町↔坂町) は L24/L25 のシリーズ性格を表象 ─ L24 は動的指標 (転用フラグ)、L25 は静的指標 (制度区分)。
17 市町の施策配置パターンを 17 panels small multiples で並列比較する。市町ごとの「保全策が市域のどこに、どう広がっているか」を一目で見せ、都市 vs 中山間 vs 離島 vs 近郊町の質的違いを地図で示す。ランキング 3 連 panel で、『面積』『件数』『MultiPolygon 比率』の 3 軸から市町順位を立体的に描く。MultiPolygon 比率 (= 集落+分散圃場の指標) は L25 特有の新しい軸で、L24 では使えない。
plt.subplots(4, 5) で 20 panel を作り、17 市町 + 1 (3 町) + 余り 2。各 panel は市域に bbox を揃え、施策ポリゴンを地理タイプ色で描画。ランキングは横軸を 3 つに切って barh で並べる ─ 件数は log スケール。MultiPolygon 比率は地形 (集落配置) の指標として読める。
↑ L25_agroforestry_policy.py 行 1675–1714
なぜこの図か: 1 枚の県全域図では、市町ごとの「施策パターンの質的違い」が分からない。17 panels で並列比較すると、「庄原市の市域全体に散布」と「広島市の市域北側のみ」が同じスケールで対比でき、市町タイプと施策パターンの関係が直感的に伝わる。

この図から読み取れること
なぜこの図か: 市町を 3 つの異なる指標 ─ 「総面積」「ポリゴン件数」「MultiPolygon 比率」 ─ で並べると、都市 vs 中山間の構造の違いが立体的に見える。MultiPolygon 比率は「集落+分散圃場」を反映する地形指標で、中山間ほど高くなる。

この図から読み取れること
| 市町 | 地理 | 件数 | MultiP | Multi% | 面積ha | 最大ha | 密度 | 1人あたり(a) |
|---|---|---|---|---|---|---|---|---|
| 東広島市 | 都市 | 358 | 63 | 17.6% | 6,787 | 291.8 | 10.68 | 3.4 |
| 福山市 | 都市 | 318 | 53 | 16.7% | 3,165 | 267.8 | 6.11 | 0.7 |
| 三次市 | 中山間 | 50 | 12 | 24.0% | 2,896 | 2,405.8 | 3.72 | 5.8 |
| 広島市 | 都市 | 426 | 13 | 3.1% | 2,555 | 513.5 | 2.82 | 0.2 |
| 尾道市 | 都市 | 200 | 25 | 12.5% | 2,140 | 252.0 | 7.51 | 1.6 |
| 世羅町 | 中山間 | 101 | 27 | 26.7% | 2,130 | 206.9 | 7.66 | 14.2 |
| 庄原市 | 中山間 | 76 | 20 | 26.3% | 1,593 | 236.0 | 1.28 | 4.8 |
| 安芸高田市 | 中山間 | 25 | 7 | 28.0% | 864 | 138.0 | 1.61 | 3.2 |
| 三原市 | 都市 | 40 | 3 | 7.5% | 589 | 217.8 | 1.25 | 0.7 |
| 呉市 | 都市 | 54 | 2 | 3.7% | 457 | 164.4 | 1.29 | 0.2 |
| 北広島町 | 中山間 | 126 | 0 | 0.0% | 370 | 59.8 | 0.57 | 2.2 |
| 府中市 | 都市 | 44 | 9 | 20.5% | 180 | 41.1 | 0.92 | 0.5 |
| 江田島市 | 離島 | 16 | 0 | 0.0% | 113 | 53.6 | 1.12 | 0.5 |
| 廿日市市 | 都市 | 32 | 0 | 0.0% | 81 | 27.7 | 0.17 | 0.1 |
| 竹原市 | 都市 | 36 | 1 | 2.8% | 53 | 8.4 | 0.45 | 0.2 |
| 大竹市 | 都市 | 9 | 0 | 0.0% | 34 | 12.0 | 0.44 | 0.1 |
| 坂町 | 近郊町 | 1 | 0 | 0.0% | 2 | 2.5 | 0.16 | 0.0 |
この表から読み取れること: 面積 1 位は東広島市 6,787 ha、最下位は坂町 2.5 ha。1 人あたり施策面積は庄原市 4.8 a/人 や 世羅町 14.2 a/人 と中山間で大きく、政令市は0.21 a/人 (広島市)と最小。『中山間住民は 1 人あたり数十 a の施策対象を背景に持つ』 vs 『都市住民は 0.0X a の施策対象しかない』という対比。L24 (1 人あたり対象農地数 a〜数百 a) と桁が違うのは、L25 が制度的「キワ」のみだから。
L25 シリーズの主役の文字列列 NRG_AN を実データで観察し、施策の『質的構造』を可視化する。「ダム」「池」「漁業」「ほ場整備」など特定キーワードを含むかで施策タイプを8 区分に分類し、『施策ポリゴンの 90% は地名のみ、10% が施設・整備』という H2 を検証する。監査時「広島市 NRG_AN は None」結論を実データで反証する H6 もここで処理。
(a) NRG_AN 分類別 件数% vs 面積% 双子バー: 8 タイプ各々が全体に占める比率を、件数比 (青) と 面積比 (赤) の2 本並列で表示。『件数の少数派が面積の多数派になる』パレート構造の検証。
(b) NRG_AN 分類 × 市町 stacked bar (件数比率): 市町別の NRG_AN 分類分布を 100% 棒グラフで並べ、『市町ごとの施策の質的違い』 (大竹市は基地・施設のみ vs 中山間は地区名主体) を示す。
(c) NRG_AN 分類別 県全域マップ: ダム・ため池・漁業などをそれぞれ別色で塗り分けた主題図。『どこにどの施策があるか』を地理的に可視化。ダムは特定地点 (大規模水源)、漁業は瀬戸内沿岸限定、ほ場整備は中山間や都市郊外に分散、というパターンが期待される。
↑ L25_agroforestry_policy.py 行 172–233
なぜこの図か: NRG_AN 分類は本記事の中核手法。件数 % と面積 % の関係を双子バーで見ると、『地区名のみが大多数だが、面積では「ダム」「ほ場整備」が大きい』という規模差が読み取れる。市町別 stacked bar で市町タイプ別の施策性格(漁業の多い坂町・江田島市 vs 地区名主体の中山間) を可視化。

この図から読み取れること
なぜこの図か: 分類タイプを地理的に分布させると、『どの施策がどこにあるか』が直視できる。ダムは内陸山間 (大規模水源)、漁業は瀬戸内沿岸限定、ほ場整備は中山間や郊外、という地理的偏りが現れるはず。

この図から読み取れること
| 分類 | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 地区名のみ | 1,682 | 88.0% | 20,682 | 86.1% |
| ため池 | 132 | 6.9% | 1,528 | 6.4% |
| _欠損 | 60 | 3.1% | 1,014 | 4.2% |
| 林業 | 12 | 0.6% | 379 | 1.6% |
| 漁業 | 9 | 0.5% | 235 | 1.0% |
| ほ場整備 | 7 | 0.4% | 76 | 0.3% |
| ダム | 7 | 0.4% | 80 | 0.3% |
| 基地・施設 | 3 | 0.2% | 14 | 0.1% |
この表から読み取れること: 地区名のみ 88.0% が件数の主流。特定キーワード上位は 「ほ場整備」 (7 件)、「ため池」。面積比でも地区名が最大だが、「ダム」と「ほ場整備」は件数比より面積比が大きい ─ 大規模な区域指定として図面化されている証拠。「漁業」「基地・施設」は件数も面積も少ない (合計 5% 程度)。欠損 (NRG_AN null) は全体の 3.6% で、福山市・尾道市に偏在。
| 順位 | NRG_AN | 出現件数 |
|---|---|---|
| 1 | 鈴張 | 80 |
| 2 | 高根 | 74 |
| 3 | 広島北部 | 63 |
| 4 | 鈴張南 | 62 |
| 5 | 中王 | 48 |
| 6 | 上垣内 | 43 |
| 7 | 中吉山 | 33 |
| 8 | 菅野(沼隈) | 29 |
| 9 | 御調河内第2地区 | 28 |
| 10 | 西田口 | 28 |
この表から読み取れること: NRG_AN 文字列は市町境を跨いで重複しないユニーク地名がほとんど。top 1 が頻度 80 件 = 全体の 4.2% にすぎず、『各施策ポリゴンが固有の地区名を持つ』こと示す。L24 では BIKOU 列に「国土数値情報を活用して作成したため、図面精度は1/50,000である」が大半を占めていたのと対照的 ─ L25 の NRG_AN は意味のある属性データ。top 10 はほぼ全て地名・池名・ダム名で、『施策ごとに固有の名称』が付与されている = データ品質の高さを示す。
監査時 (2026-05-03) のサンプル 1 行は NRG_AN = None だったが、実データ 426 行中 NRG_AN = null は 2 行のみ (= 0.5%) で、99.5% は地区名で埋まる。監査結論「広島市 NRG_AN None」は誤り ─ サンプル 1 行が偶発的に None だっただけ。『データ全体を見ずにサンプル 1 行で判断するな』のデータ取扱い教訓。判定: H6 支持。
L24 と同じ列名 KUIKI_CD (区域コード, 0-7) と TOKEI_CD (統計区分, 1-3) の意味を、L25 でも実データから解読する。『L24 との整合性』を検証 ─ 同じ列名なら同じ意味のはず。中山間で 0 主体、都市で 1/2 混在のパターンが両シリーズで一致するか。
(a) KUIKI_CD 別 県全域マップ: 各値を異なる色で塗り、地理分布から仮説を立てる。『線引き都市計画区域 (市街化/調整区域)』の都市市町と、『線引きなし』の中山間市町で値分布が異なるはず。L24 で観察された傾向が L25 でも同じか。
(b) KUIKI_CD × 市町 stacked bar: 各市町の値分布を 100% 棒グラフで並べる。
↑ L25_agroforestry_policy.py 行 1974–2009
なぜこの図か: KUIKI_CD は仕様書未公開の「ブラックボックス列」。地理分布と市町クロスの 2 角度から見ることで、都市計画階層フラグという解読仮説の妥当性を検証する。

この図から読み取れること
| KUIKI_CD | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 0.0 | 1,144.0 | 59.8% | 14,529 | 60.5% |
| 1.0 | 35.0 | 1.8% | 894 | 3.7% |
| 2.0 | 398.0 | 20.8% | 5,768 | 24.0% |
| 3.0 | 17.0 | 0.9% | 91 | 0.4% |
| 4.0 | 314.0 | 16.4% | 2,666 | 11.1% |
| 6.0 | 4.0 | 0.2% | 59 | 0.2% |
この表から読み取れること: KUIKI_CD = 0 が件数の最大値 (59.8%) で、中山間+一部都市 (区域外/非線引き) の合計。面積比でも KUIKI=0 が最大 ─ 大規模な区域指定が多い。KUIKI=1 (市街化区域) は件数 1.8% ─ 市街化区域内の農地は施策対象が少ない (= 都市化が優先)。KUIKI=2 (調整区域) は都市市町の主要値。
| TOKEI_CD | 件数 | 件数 % | 面積 ha | 面積 % |
|---|---|---|---|---|
| 1.0 | 764.0 | 40.0% | 9,419 | 39.2% |
| 2.0 | 4.0 | 0.2% | 59 | 0.2% |
| 3.0 | 1,144.0 | 59.8% | 14,529 | 60.5% |
この表から読み取れること: TOKEI_CD = 3 が件数最大 (60%) ─ L24 と同じ傾向。『非線引き地域の施策』を表すフラグと推定。TOKEI_CD = 1 は都市計画区域内の施策、TOKEI_CD = 2 は中間。3 値はそれぞれ意味が異なるが、本記事では深追いしない (発展課題)。
本記事のもう 1 つの中核分析: 同じ 16 市町 (L24 ∩ L25) について、農地転用ポリゴン (L24, 動的) と農林漁業施策ポリゴン (L25, 静的) を空間重ね合わせ、「保全策と転用がどう同居/分離するか」を定量化する。完全すみ分け (重複 0%) なら『保全と転用が分離』、完全重なり (重複 100%) なら『保全策が形骸化、転用と同領域』、中間 (10-30%) なら『せめぎあい』 ─ どのモードか実データで判別する。
STEP 1: L24 ZIP 17 件を読み込む ─ L24 は EPSG:6671、L25 は EPSG:2445 → 6671 変換済 ─ 両者を同じ CRS に揃える。
STEP 2: 各市町ごとに shapely.union_all().intersection() ─ (a) 施策ポリゴンを 1 つの大きな MultiPolygon にまとめる (agro_sub.geometry.union_all())、(b) 同様に転用ポリゴンも統合 (farm_sub.geometry.union_all())、(c) a.intersection(b) で重なり領域を計算、(d) .area / 1e4 で重なり面積 (ha) を得る。
注意: 一部市町でジオメトリの自己交差によりTopologyException が発生する。shapely.validation.make_valid() または buffer(0) でジオメトリを修復してから再試行する 2 段フォールバックを実装。
(c) 可視化: 県全域に L24 (赤) ⊕ L25 (緑) を重ねる主題図 + 市町別重複率 barh の 2 連 panel。
なぜこの図か: 『同じ市町内で、保全策エリアと転用エリアが同居しているか分離しているか』は地図でないと伝わらない。右側の市町別重複率 barh は『どの市町でせめぎあいが激しいか』を定量化。本記事の最大の発見が現れる。

この図から読み取れること
| 市町 | 地理 | L25 施策 ha | L24 転用 ha | 重複 ha | 施策中重複% | 転用中重複% |
|---|---|---|---|---|---|---|
| 北広島町 | 中山間 | 370 | 8,317 | 326 | 88.3% | 3.92% |
| 大竹市 | 都市 | 34 | 441 | 29 | 85.5% | 6.67% |
| 三次市 | 中山間 | 2,896 | 17,073 | 2,328 | 80.4% | 13.63% |
| 庄原市 | 中山間 | 1,593 | 46,710 | 1,218 | 76.5% | 2.61% |
| 竹原市 | 都市 | 53 | 1,361 | 40 | 75.4% | 2.94% |
| 東広島市 | 都市 | 6,787 | 14,806 | 4,986 | 73.5% | 33.68% |
| 三原市 | 都市 | 589 | 8,976 | 410 | 69.6% | 4.57% |
| 安芸高田市 | 中山間 | 864 | 12,183 | 551 | 63.8% | 4.52% |
| 世羅町 | 中山間 | 2,130 | 6,213 | 1,252 | 58.8% | 20.15% |
| 尾道市 | 都市 | 2,140 | 8,014 | 1,250 | 58.4% | 15.59% |
| 広島市 | 都市 | 2,555 | 5,592 | 1,335 | 52.3% | 23.88% |
| 福山市 | 都市 | 3,165 | 9,940 | 1,511 | 47.7% | 15.20% |
| 府中市 | 都市 | 180 | 3,604 | 58 | 32.5% | 1.62% |
| 江田島市 | 離島 | 113 | 2,750 | 36 | 31.5% | 1.29% |
| 廿日市市 | 都市 | 81 | 3,308 | 21 | 26.4% | 0.65% |
| 呉市 | 都市 | 457 | 5,471 | 33 | 7.1% | 0.60% |
この表から読み取れること: 施策中重複率 (= 施策の何 % が転用と重なる) は中山間市町で 60-90% と高く、都市市町で 30-60% と低めの傾向。転用中重複率 (= 転用の何 % が施策と重なる) は全市町で 1-15% と低い ─ 『転用対象は施策エリアの何倍も広い』(L24 全 154,757 ha vs L25 全 24,007 ha = 6.4 倍)。都市市町 (広島市・福山市・呉市) は転用対象が広いため、施策エリアの大半が転用と重なるが、転用全体に占める施策エリアは小さい。中山間市町でも同様の傾向で、施策の対象農地が広くないことを示す。
| 順位 | 市町 | 地理 | NRG_AN | 分類 | geom型 | 面積 ha | KUIKI | 規模クラス |
|---|---|---|---|---|---|---|---|---|
| 1 | 三次市 | 中山間 | 東山線 | 地区名のみ | MultiPolygon | 2,405.8 | 0 | 5_巨大(≥100 ha) |
| 2 | 広島市 | 都市 | 戸山 | 地区名のみ | Polygon | 513.5 | 0 | 5_巨大(≥100 ha) |
| 3 | 広島市 | 都市 | 小河内 | 地区名のみ | Polygon | 411.5 | 0 | 5_巨大(≥100 ha) |
| 4 | 東広島市 | 都市 | 志和堀 | 地区名のみ | Polygon | 291.8 | 2 | 5_巨大(≥100 ha) |
| 5 | 東広島市 | 都市 | 小関池 | ため池 | Polygon | 273.4 | 2 | 5_巨大(≥100 ha) |
| 6 | 福山市 | 都市 | 常金丸 | 地区名のみ | MultiPolygon | 267.8 | 0 | 5_巨大(≥100 ha) |
| 7 | 東広島市 | 都市 | 保田 | 地区名のみ | Polygon | 259.9 | 2 | 5_巨大(≥100 ha) |
| 8 | 東広島市 | 都市 | 竹仁 | 地区名のみ | MultiPolygon | 252.4 | 0 | 5_巨大(≥100 ha) |
| 9 | 尾道市 | 都市 | 板後(イタゴ) | 地区名のみ | Polygon | 252.0 | 0 | 5_巨大(≥100 ha) |
| 10 | 広島市 | 都市 | 井原 | 地区名のみ | Polygon | 243.7 | 0 | 5_巨大(≥100 ha) |
この表から読み取れること: top 1 は三次市 東山線 (2,406 ha) ─ 地区名のみ タイプ。top 10 は中山間と都市が混在するが、NRG_AN は地区名・池名・ダム名・ほ場整備地区が混在。『500 ha 超の大規模ブロック』は L24 と同様に少数だが、L25 では「ほ場整備」「ダム」「池」など特定の制度区分が多く、L24 より『施策の意図が読み取れる』データ。geom_type は MultiPolygon が多い ─ 中山間集落+分散圃場の地形を反映。
| 仮説 | 内容 | 実データ結果 | 判定 |
|---|---|---|---|
| H1 | 県内 17 市町の総施策面積 ≥ 20,000 ha かつ 件数 < 2,000 (制度的指定エリア型) | 施策合計 = 24,007 ha, 件数 = 1,912 | 支持 |
| H2 | NRG_AN は「地区名のみ」(地名タイプ) が大多数 (>=60%)、キーワード分類は 5-35% | 地区名のみ = 88.0%, キーワード分類 = 9.0% | 支持 |
| H3 | MultiPolygon 比率は中山間市町ほど高く、都市市町は単一 Polygon 主体 | 中山間 5 市町平均 MultiPolygon% = 21.0, 都市 10 市平均 = 8.4 | 支持 |
| H4 | KUIKI_CD=0 が中山間で支配的、KUIKI_CD=2 が都市市町に多い (都市計画階層フラグ) | 中山間 KUIKI=0 比率 = 88.1%, 都市 KUIKI=2 比率 = 26.2% | 支持 |
| H5 | 施策と転用の重複は 10-30% (せめぎあい構造) | 重複面積 = 15,384 ha (施策の 64.1% / 転用の 9.94%) | 反証(重複過大 or 過少) |
| H6 | 広島市 NRG_AN null は監査時の偶発、実データでは大部分が地区名 (null < 5%) | 広島市 NRG_AN null = 0.5% | 支持 |
RQ「広島県内 17 市町の農林漁業関係施策は、面積規模・施策種別・地理分布・農地転用 L24 との 対比でどのような構造を持ち、保全策と転用がどのようにせめぎあっているか?」に対して:
水増しなき意味のある分析: 全 9 図 + 9 表 + 6 仮説検証はそれぞれ独立した観点を持ち、 同じ結論を別角度から補強する。中核は (1) NRG_AN の文字列分類 (2) L24 vs L25 重複の定量化 で、 両方とも仕様書未公開の生データから『広島県の食農政策の哲学』を読み解いた。
新仮説 Y1: 「重複している部分」と「重複していない部分」では、 施策の意図 (NRG_AN 分類) が異なる可能性。 「ほ場整備」キーワードは転用と強く重なる(同じ地区で整備と転用を同時推進)、 「ダム」「池」は転用とすみ分ける(水利施設は保全特化) ─ などの差。
課題 Z1: NRG_AN 分類別にL24 vs L25 重複率の差を計測。
agro.groupby("nrg_class").apply(compute_overlap_with_farm) で、
分類別の重複率を出す。さらに重複と非重複の地理分布を比較し、
『どこで保全と転用が分離し、どこで同居するか』を可視化。
新仮説 Y2: 地区名は地形地名 (谷・丘・池・川)と 集落地名 (○○地区・○○原・○○町)に分かれ、地形地名比率は中山間で高く、 集落地名比率は都市市町で高い。地名学的な分布パターンが市町タイプと相関するはず。
課題 Z2: NRG_AN 文字列を地形語彙辞書 (谷, 丘, 池, 川, 田, 山, 沢) と 集落語彙辞書 (地区, 原, 町, 村) で 2 次分類し、 市町タイプ別の出現比率を分析。地名学的アプローチで施策ポリゴンの背景文化を解読。
新仮説 Y3: 「保全策あり / 転用無し」(= 坂町) と「保全策無し / 転用あり」(= 熊野町) の 2 町は、L23 (DID) や L22 (人口ピラミッド) の都市化指標で異なる位置にあるはず。 熊野町は『食料生産は捨てたが住宅は維持』、 坂町は『食料生産は維持 (漁業のみ)、住宅も維持』のような差。
課題 Z3: 熊野町・坂町のL22 人口ピラミッド + L23 DID 比率 + L24 転用 + L25 施策を 4 軸 radar chart で並べ、『2 町の都市化プロセスの違い』を視覚化。 さらに同じく近郊町だが施策ありの市町と比較。
新仮説 Y4: 同じ KUIKI_CD 値 (例: 0) を持つ施策ポリゴン (L25) と転用ポリゴン (L24) は、 ほぼ同じ地区を指している。逆に異なる KUIKI_CD 値の交差は地形境界 (山と平地の境) と 強く相関する。KUIKI_CD は『都市計画区域階層』として L24/L25 で完全互換。
課題 Z4: KUIKI_CD = k の施策と KUIKI_CD = k の転用を空間結合し、 『同じ k 値での重複率』を計測。値ごとの重複率の表を作り、 KUIKI_CD の意味の整合性を定量化する。
新仮説 Y5: 「ダム」キーワードを含む施策ポリゴンの地理は、 地形図の流域 (川の上流) と強く相関する。「漁業」は海岸線、 「ため池」は瀬戸内沿岸の古代灌漑遺産地区と相関する。 施策の地理的偏在は地形決定論的に説明できる。
課題 Z5: 国土数値情報の水系ポリゴン + 海岸線と本データを空間結合し、 キーワード分類別の『地形要素との距離』分布を計測。 ダムから上流まで何 km、漁業基地から海岸まで何 m、を分布図で示す。