生成AIとGISで健康遊具の優先整備地区を抽出してみた

【自治体GIS×生成AIシリーズ】~高齢者人口データを活用した公園整備の意思決定支援~

本記事は、生成AIとGISを活用した自治体業務の実証シリーズの第3回です。

関連記事

▶ 第1回:自治体GISとAIの融合
▶第2回:ArcGIS Onlineと生成AIを連携した人口統計分析の実証
▶第4回:自治体の人材不足はGIS AIで解決できるのか
▶第5回:e-Stat APIとGISを結合するときの落とし穴
▶第6回:PLATEAU MCPは自治体GISを変えるのか
▶第7回:健康遊具はどこに整備すべきか?生成AIとGISで検証
▶第8回:AIの回答は信用できるのか(検証と説明責任)
▶第9回:自治体GISにおける人口統計データの構造要件を生成AIで検証する
▶第10回:PLATEAU LOD1と生成AIで建物単位人口推計は可能か
▶第11回:PLATEAU建物人口から見る浸水リスク
▶第12回:建物単位人口で見る避難所シミュレーション
▶第13回:PLATEAUの建物に人口を配置する
▶第14回:PLATEAUを「人口を持つ都市」へ

背景

自治体では、

  • 高齢化の進展
  • 健康寿命の延伸
  • 公園施設の老朽化

が課題となっています。

一方で予算は限られており、

どの公園から整備すべきか

を客観的に判断する必要があります。今回は高齢者人口と健康遊具配置から優先整備地区を抽出する実証を行いました。

今回の目的

豊島区を例に、

65歳以上人口

健康遊具

利用圏

を組み合わせ、

健康遊具の優先整備地区を抽出しました。

分析に使用したデータ

e-Stat

  • 2020年国勢調査
  • 小地域統計
  • 年齢(5歳階級、4区分)別人口から町丁目単位の65歳以上人口

ArcGIS Online

  • 自社ポータルサイト内の豊島区公園施設データ
  • 健康遊具
  • 公園名称

公園データ

自社のArcGIS Onlineに登録済みの豊島区公園施設データを利用しました。

分析対象は、

  • 健康遊具
  • 公園名
  • 町丁目情報

です。

分析の流れ


e-Stat

65歳以上人口

ArcGIS Online

健康遊具

生成AI

ランキング

WebMap

実際に入力したプロンプト

今回の分析では、Codex CLIを利用し、3段階に分けて指示を行いました。

①健康遊具不足ランキングの作成

まず、豊島区遊具施設データと、e-Statの町丁目別高齢者人口を利用し、健康遊具不足ランキングを作成しました。

主な指示内容は以下のとおりです。

  • ArcGIS Onlineから豊島区遊具施設データを取得
  • 健康遊具のみを抽出
  • e-Statから町丁目単位の65歳以上人口を取得
  • 町丁目名で結合
  • 健康遊具数と高齢者人口から不足度を算出
  • CSVおよびMarkdownで出力

この段階で、

「高齢者人口に対して健康遊具が不足している町丁目」

を一覧化しました。

①のプロンプトの詳細

ArcGIS MCP、e-Stat統計ダッシュボードAPIを使って、豊島区の町丁目単位で「65歳以上人口に対して健康遊具が不足している町目」をランキング表にしてください。

前提:

  • 豊島区の遊具施設データは、私のArcGIS Online組織アカウントにアップロード済みです。
  • 遊具施設データには、遊具種別を示すフィールドがあるはずです。
  • 健康遊具は、遊具種別フィールドの値から「健康遊具」またはそれに相当する種別を判定してください。
  • 豊島区公式サイト内には町丁目単位の65歳以上人口データがないため、豊島区サイトから探すのではなく、e-Stat統計ダッシュボードAPIまたはe-Stat APIから町丁目単位の年齢別人口を取得してください。
  • 取得できる最新年を使用してください。
  • 町丁目名の表記ゆれがある場合は、正規化して結合してください。
  • 町丁目境界データが必要な場合は、ArcGIS OnlineまたはLiving Atlasから利用可能な公的境界データを検索してください。

作業手順:

  1. ArcGIS MCPで、私のArcGIS Onlineコンテンツから豊島区の遊具施設データを検索してください。
  2. レイヤ構造を確認し、町丁目名フィールド、遊具種別フィールド、公園名フィールドを特定してください。
  3. 健康遊具のみを抽出し、町丁目単位で件数を集計してください。
  4. e-Stat統計ダッシュボードAPIまたはe-Stat APIから、豊島区の町丁目単位の65歳以上人口を取得してください。
  5. 町丁目名をキーに、65歳以上人口と健康遊具数を結合してください。
  6. 以下の指標を計算してください。
  • 65歳以上人口
  • 健康遊具数
  • 65歳以上人口1,000人当たり健康遊具数
  • 不足度スコア = 65歳以上人口 / max(健康遊具数, 1)
  1. 不足度スコアが高い順にランキング表を作成してください。
  2. 結果をCSVとMarkdownの両方で出力してください。

出力項目:

  • rank
  • 町丁目名
  • 65歳以上人口
  • 健康遊具数
  • 65歳以上人口1,000人当たり健康遊具数
  • 不足度スコア
  • 該当する公園名
  • 備考

注意:

  • 町丁目単位の65歳以上人口が取得できない場合は、取得できなかった理由を明記し、代替案として国勢調査小地域、町丁・字等別人口、または住民基本台帳人口の利用可否を整理してください。
  • 推測で人口値を作らないでください。
  • 結果に使ったデータソース、統計年、フィールド名、結合キーを必ず明記してください。

② ランキング指標の改善

初回分析では、

不足度スコア

= 65歳以上人口 ÷ 健康遊具数

を採用しました。

しかし、

健康遊具0基の町丁目と1基の町丁目の差が十分に表現できなかったため、指標を改善しました。

追加した内容は以下のとおりです。

  • 健康遊具なしフラグ
  • 改良版不足度スコア
  • 優先度区分(A~D)
  • 町丁目内の公園一覧

その結果、

「どの公園が整備候補となるのか」

まで把握できるようになりました。

追加した内容は以下のとおりです。

  • 健康遊具なしフラグ
  • 改良版不足度スコア
  • 優先度区分(A~D)
  • 町丁目内の公園一覧

②のプロンプトの詳細

ランキング指標を修正してください。

現在の不足度スコア = 65歳以上人口 / max(健康遊具数, 1) では、
健康遊具0基と1基の差が小さくなっています。

以下の指標を追加してください。

  1. 健康遊具なしフラグ
    health_equipment_zero = 1 if 健康遊具数 == 0 else 0
  2. 不足度スコア改良版
    shortage_score_v2 =
    65歳以上人口 * 2.0 if 健康遊具数 == 0
    65歳以上人口 / 健康遊具数 if 健康遊具数 >= 1
  3. 優先度区分
    A: 65歳以上人口1000人以上 かつ 健康遊具数0
    B: 65歳以上人口1000人以上 かつ 健康遊具数1以下
    C: 65歳以上人口700人以上 かつ 健康遊具数0
    D: その他
  4. 町丁目内の公園名一覧
    健康遊具がない場合でも、その町丁目内に存在する公園名を別列に出してください。
    列名は all_park_names としてください。

CSVとMarkdownを再出力してください。

健康遊具不足ランキング結果例

順位町丁目65歳以上人口健康遊具数優先度
1東池袋五丁目1,1060A
2池袋二丁目1,0250A
3長崎四丁目9870C
4要町三丁目9560C
5上池袋三丁目9510C

実際の出力


③ WebMapの作成

最後に、ランキング結果を地図化しました。

主な処理内容は以下のとおりです。

  • 町丁目ポリゴン取得
  • shortage_score_v2との結合
  • 優先度A~Dによる色分け
  • ポップアップ設定

表示項目は、

  • 町丁目名
  • 65歳以上人口
  • 健康遊具数
  • 不足度スコア
  • 候補公園一覧

としました。

これにより、

ランキング表だけでは分かりにくい地域的な偏在状況を視覚的に把握できるようになりました。

プロンプト③の詳細

豊島区健康遊具不足ランキングを地図化してください。

現在作成済みのCSVを利用し、

① 町丁目ポリゴンを取得
② shortage_score_v2 を結合
③ A~Dを色分け

A:赤
B:橙
C:黄
D:灰

でWebMapを作成してください。

ポップアップには

・町丁目名
・65歳以上人口
・健康遊具数
・不足度スコア
・候補公園一覧

を表示してください。

③の結果:健康遊具不足ランキング


③利用圏を考慮した分析

そこで次に、

健康遊具から250mの利用圏を作成しました。

分析手順は以下のとおりです。

健康遊具ポイント

250mバッファ作成

町丁目ポリゴン

65歳以上人口との重ね合わせ

利用圏内人口割合算出

さらに、

優先度

= 65歳以上人口 ×(1 − 利用圏内人口割合)

として再評価しました。

プロンプト④の詳細

豊島区の健康遊具ポイントを使い、250m徒歩利用圏を作成してください。

町丁目ポリゴンごとに、

・65歳以上人口
・健康遊具数
・健康遊具250m圏内人口割合

を算出してください。

新しい優先度を以下で算出してください。

優先度 =
65歳以上人口 × (1 – 利用圏内人口割合)

結果をWebMapとして作成してください。

④の結果:健康遊具250m利用圏分析


分析の結果、

健康遊具数だけでは優先度が高く見えた町丁目でも、

近隣公園の利用圏に含まれている場合は優先度が下がることが確認できました。

例えば、

上池袋一丁目

  • 65歳以上人口:809人
  • 健康遊具数:1基
  • 250m圏内人口割合:97.79%

であり、

健康遊具数だけを見ると不足しているように見えますが、

実際にはほぼ全域が健康遊具の利用圏に含まれていました。

一方、

健康遊具利用圏のカバー率が低い町丁目では、

優先的な整備候補として抽出されました。


AIによる分析時間

今回の分析では、

  • e-Statからの人口取得
  • ArcGIS Onlineからの遊具データ取得
  • 健康遊具抽出
  • 250m利用圏作成
  • 人口との空間結合
  • 優先順位計算
  • Webマップ作成

までを実施しました。

延べ処理時間は約25分でした。

従来であれば、

  • 統計データ探索
  • CSV加工
  • GIS取り込み
  • バッファ作成
  • 空間集計
  • 主題図作成

を手作業で行う必要があり、半日程度を要する作業です。

また、今回の25分の多くはAIとGISが処理を実行している時間であり、職員が画面の前で操作し続ける時間ではありません。

その間に、

  • メール対応
  • 提案書作成
  • 打ち合わせ準備

など他の業務を進めることができます。


自治体にとっての価値

今回の分析は、

単に地図を作ることが目的ではありません。

本質は、

「限られた予算をどこへ優先的に投入するか」

を客観的に判断できることです。

例えば、

  • 健康遊具
  • 遊具更新
  • 樹木管理
  • 公園施設更新

などの分野に応用できます。

経験や勘だけでなく、

人口構成や利用圏を踏まえた説明可能な意思決定を支援できる点が大きな価値です。


おわりに

今回の実証では、

生成AI
×
e-Stat
×
ArcGIS Online

を組み合わせることで、

高齢者人口と健康遊具配置をもとにした優先整備地区の抽出が可能であることを確認しました。

これは単なるGIS分析の自動化ではなく、

統計データと空間情報を活用した政策判断支援の第一歩と考えています。

今後は、他市で進めている公園DXの取り組みにおいても、

  • 遊具
  • 樹木
  • 公園施設

を対象に、

人口構成や利用圏を考慮した維持管理・更新計画への活用を検討していきます。

補足:なぜ「推測で人口値を作らない」と指示したのか

今回の実証では、生成AIに対して

「推測で人口値を作らないでください」(①のプロンプト注意)

という指示を明示的に与えています。

一見すると当たり前のように見えますが、これは自治体業務で生成AIを活用する上で非常に重要な意味を持っています。

1. ハルシネーション(AIの誤生成)を防ぐため

生成AIは、回答に必要な情報が不足している場合でも、もっともらしい内容を生成してしまうことがあります。

例えば人口統計が取得できなかった場合、

「この規模の自治体なら人口は約○万人だろう」

と推測値を作成してしまう可能性があります。

しかし、行政業務では推測値と実データは明確に区別しなければなりません。

そのため本実証では、

「データが取得できない場合は推測せず、その旨を報告する」

というルールを設定しました。

2. 行政で最も求められるのは正確性だから

総務省の調査でも、自治体が生成AI活用において懸念している項目として、

「AI生成物の正確性」

が上位に挙げられています。

今回の実証では、AI自身に数値を考えさせるのではなく、

・e-Stat API
・自治体公開データ
・ArcGIS Online

などの実データを利用し、そのデータをもとに処理を行っています。

つまり生成AIは「答えを作る」のではなく、

「正しいデータを取得し、整理し、分析する」

役割を担っています。

3. 説明責任を確保するため

自治体業務では、

「なぜその結果になったのか」

を説明できることが重要です。

そのため本実証では、

・利用したデータソース
・統計年次
・対象項目
・分析条件

を確認できる状態で処理を行っています。

結果だけではなく、根拠まで追跡できることが行政利用の前提になります。

4. EBPMの品質を維持するため

今回の健康遊具の優先整備地区の抽出では、

250m利用圏人口や高齢化率などの客観的な指標を利用しています。

もし元となる人口値が推測値であれば、分析結果そのものの信頼性が失われます。

限られた予算の中で整備優先順位を判断するためには、

「正しいデータに基づいて分析すること」

が不可欠です。

まとめ

生成AIは非常に強力なツールですが、自治体業務では「それらしい回答」よりも「正しい回答」が求められます。

今回の実証で設定した

「推測で人口値を作らない」

というルールは、生成AIを行政実務で活用するための重要なガードレールです。

今後は、生成AIに判断を任せるのではなく、

・公的データを取得する
・分析を実行する
・結果を説明可能な形で提示する

という役割で活用することで、説明可能で信頼性の高い自治体DXにつながると考えています。

■ 関連記事

▶ 第1回:自治体GISとAIの融合
▶第2回:ArcGIS Onlineと生成AIを連携した人口統計分析の実証
▶第4回:自治体の人材不足はGIS AIで解決できるのか
▶第5回:e-Stat APIとGISを結合するときの落とし穴
▶第6回:PLATEAU MCPは自治体GISを変えるのか
▶第7回:健康遊具はどこに整備すべきか?生成AIとGISで検証
▶第8回:AIの回答は信用できるのか(検証と説明責任)
▶第9回:自治体GISにおける人口統計データの構造要件を生成AIで検証する
▶第10回:PLATEAU LOD1と生成AIで建物単位人口推計は可能か
▶第11回:PLATEAU建物人口から見る浸水リスク
▶第12回:建物単位人口で見る避難所シミュレーション
▶第13回:PLATEAUの建物に人口を配置する
▶第14回:PLATEAUを「人口を持つ都市」へ

コメント

“生成AIとGISで健康遊具の優先整備地区を抽出してみた” への1件のフィードバック

  1. […] ▶ 第3回:生成AIとGISで健康遊具の優先整備地区を抽出してみた […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です