狠狠撸

狠狠撸Share a Scribd company logo
LLM を使って
GIS データ解析を
自動化したい!
2024/11/10
株式会社ノーザンシステムサービス
佐々木 优兴
2
LLM の登場で、猫も杓子も自動化の世の中
この流れに乗って、 GIS データの
解析?可視化も自動化したい…
ので調べてみたら
※ 画像はフィクションです
3
LLM-Geo
https://github.com/gladcolor/LLM-Geo
arXiv: https://arxiv.org/abs/2305.06453
画像 : https://www.tandfonline.com/doi/full/10.1080/17538947.2023.2278895
良さそうなのがあった
4
LLM-Geo が動作するしくみ
処理フロー
1) 危険廃棄物施設を含む地域区分を特
定し、それらの地域に住む人口を計算
して表示してください。調査対象地域
はアメリカ合衆国ノースカロライナ州
( NC )です。
2) ノースカロライナ州のすべての地域
区分ごとの人口を色分けで示す地図を
作成し、…
言葉による指示 コード
「処理フローを出力→コードを出力」という 2 段構成にすることで
複雑な GIS 系解析タスクへの処理能力を高めている
OpenAI API
(GPT-4o)
グラフの各点が 1 つの処理を表す
Python で記述
① してほしいこと
② データの場所と構造
を記載
5
LLM-Geo を使ってみよう
公式デモ
有害廃棄物処理施設がある地域の人口マップ(ノースカロライナ州)
Task:
1) Find out the total population that lives within a tract that contain
hazardous waste facilities. The study area is North Carolina, US.
2) Generate a map to show the spatial distribution of population at
the tract level and highlight the borders of tracts that have
hazardous waste facilities. '
Data locations:
1. NC hazardous waste facility ESRI shape file location:
https://github.com/gladcolor/LLM-
Geo/raw/master/overlay_analysis/Hazardous_Waste_Sites.zip
2. NC tract boundary shapefile location:
https://github.com/gladcolor/LLM-Geo/raw/master/overlay_analysis/tract
_shp_37.zip. The tract id column is 'Tract'
3. NC tract population CSV file location: https://github.com/gladcolor/LLM-
Geo/raw/master/overlay_analysis/NC_tract_population.csv. The
population is stored in 'TotalPopulation' column. The tract ID column is
'GEOID’…
なのだが、いまいちピンとこない…
出典 : gladcolor/LLM-Geo (https://github.com/gladcolor/LLM-Geo/blob/master/LLM_Geo_API4.ipynb)
6
LLM-Geo を使ってみよう
日本語指示で国内のデータを解析してみた
G 空間情報センターにてダウンロード可能
(静岡県様、公開ありがとうございます!)
https://www.geospatial.jp/ckan/dataset/shizuoka-20240702-hamatome
2024 年 7 月 2 日
静岡県焼津市県道 416 号「浜当目トンネ
ル」
付近の斜面崩壊に関するデータ
崩落範囲
出典 : 静岡県 “県道静岡焼津線
「浜当目トンネル」対策検討会” [1]
[1] https://www.pref.shizuoka.jp/_res/projects/default_project/_page_/001/064/693/kentoukai_siryou01.pdf
7
LLM-Geo を使ってみよう
今回は崩壊前後のグリッドデータ( X/Y/Z )をもとに
Z 方向の変位をプロットしてみる
[WSL] user@host:~/gh/LLM-Geo/data/hamatome_grid/after$ head –n5
20240703hamatome_0.5grid.txt
-14751.750,-123035.250,145.127
-14751.250,-123035.250,145.340
-14751.750,-123035.750,144.959
-14751.250,-123035.750,145.180
-14750.750,-123035.750,145.433
[WSL] user@host:~/gh/LLM-Geo/data/hamatome_grid/before$ head –n5 08od1602.txt
1,-15199.75,-123000.25,11.80,1
2,-15199.25,-123000.25,11.70,1
3,-15198.75,-123000.25,11.50,1
4,-15198.25,-123000.25,11.30,1
5,-15197.75,-123000.25,11.10,1
崩壊前グリッドデータ
崩壊後グリッドデータ
8
LLM-Geo を使ってみよう
とりあえずざっくりした指示文を与えてみる
指示文
斜面崩落地で取得した崩落前後のグリッドデータをもとに、崩壊に伴う Z 方向の変位を 2D マップと
して画面上にインラインでプロットせよ。プロット範囲は崩壊後のグリッドデータ範囲でクリップする
こと。
データ
1. 崩壊前のグリッドデータ :
data/hamatome_grid/before/{08od1602,08od1603,08od1612,08od1613}.txt (CSV 形式 [ カンマ区切
り ], 2-4 列目が X/Y/Z にそれぞれ対応。マージして使用すること )
2. 崩壊後のグリッドデータ : data/hamatome_grid/after/20240703hamatome_0.5grid.txt (CSV 形式
[ カンマ区切り ], 1-3 列目が X/Y/Z にそれぞれ対応 )
データの説明は詳細にする(データ形式、列番号、 etc… )
※ 処理フローの制約上「 LLM がデータを見てからコードを書く」ことができないため
9
LLM-Geo を使ってみよう
うまくいった例 (参考 : 崩落前空撮 [1] )
[1] 静岡県( https://www.geospatial.jp/ckan/dataset/shizuoka-20240702-hamatome, CC BY 4.0 )をもとに発表者作成
(崩壊前グラウンドデータの LAS をプロット)
うまくいく…こともある
処理途中のエラーが解決できず、スタックしてしまうことも…
10
現時点での限界、展望
1. 細かい指示を出さないと期待通りに動いてくれない場合がある
(=専門家でないと正確な指示が出せない)
2. コード作成&デバッグが自動化されるのは便利だが、お膳立てが面倒
データを取ってくるところ、データを見てコードを再記述するところも
自動化してほしい
データを
探す
データ構造の
調査?解析
コード記述
&デバッグ
ここは手動
完成!
LLM-Geo で
自動化
GIS データの解析?可視化作業のフロー
11
Appendix: QGIS プラグインもあったので紹介
同じ開発チーム(?)が自然言語指示によるデータ解析を行う
QGIS プラグインも公開していた
https://github.com/Teakinboyewa/SpatialAnalysisAgent
ファイルの種類は、現在 ShapeFile, CSV, GPKG, GeoTIFF, JPEG の 5 種に対応
12
Appendix: QGIS プラグインもあったので紹介
うまくいった例
元画像 DEM
この DEM ファイルから、
5m 間隔の等高線を
作成してください。
線の色は黄緑とする。
プロンプト
DEM の出典:静岡県( https://www.geospatial.jp/ckan/dataset/shizuoka-20240702-hamatome, CC BY 4.0 )
13
まとめ
言葉で指示するだけで
お手軽に GIS データを解析できれば、
より多くの人が GIS データを活用できる!
LLM を使って GIS データ解析を自動化したい!
2024/11/10
株式会社ノーザンシステムサービス 佐々木 优兴

More Related Content

I want to use the LLM to automate GIS data analysis!