Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PythonでPLATEAUのデータを扱ってみる
Search
ぴっかりん
February 08, 2025
0
370
PythonでPLATEAUのデータを扱ってみる
2025年2月8日(土)に静岡県静岡市で開催されたPyCon mini Shizuoka 2024 continueにて発表した資料です。
ぴっかりん
February 08, 2025
Tweet
Share
More Decks by ぴっかりん
See All by ぴっかりん
FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデータを手軽に扱ってみる
ra0kley
1
250
FOSS4G 2023 Japan@FUKUI コアデイ 一般発表8 Segment Anything Modelを用いて地物抽出を試してみた
ra0kley
0
26
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
We Have a Design System, Now What?
morganepeng
51
7.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Building Applications with DynamoDB
mza
93
6.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Code Reviewing Like a Champion
maltzj
521
39k
A Tale of Four Properties
chriscoyier
158
23k
Automating Front-end Workflow
addyosmani
1367
200k
Fireside Chat
paigeccino
34
3.2k
Scaling GitHub
holman
459
140k
Embracing the Ebb and Flow
colly
84
4.6k
Transcript
PythonでPLATEAUの データを扱ってみる 青木亮祐 / ぴっかりん (@ra0kley) PyCon mini Shizuoka 2024
continue 2025.02.08
PyCon mini Shizuoka 2024 continue はじめに • 本発表は、所属会社で行っていることではなく、個人で 使ってみたライブラリの発表になります •
本発表では、以下のPLATEAUのデータを使用しています 3D都市モデル(Project PLATEAU)静岡市(2022年度) CityGML(v2) 2
PyCon mini Shizuoka 2024 continue 発表内容 1. トークの概要 2. 自己紹介
3. Project PLATEAUについて 4. PlateauKitのご紹介 5. PLATEAUのデータを可視化してみよう 6. PLATEAUのデータを分析に使用してみよう 7. まとめ 3
4 トークの概要 01
PyCon mini Shizuoka 2024 continue 1. トークの概要 3. Project PLATEAUについて
4. Pythonが使われているこれまでの取り組み事例 4. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 5 レベル: All (エンジニア以外も対象) ここが7割
PyCon mini Shizuoka 2024 continue 2. トークの概要 3. Project PLATEAUについて
4. Pythonが使われているこれまでの取り組み事例 4. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 6 レベル: Basic (初学者向け)
PyCon mini Shizuoka 2024 continue 2. トークの概要 3. Project PLATEAUについて
4. Pythonが使われているこれまでの取り組み事例 5. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 7 レベル: Advanced (経験者向け)
8 自己紹介 02
PyCon mini Shizuoka 2024 continue 2. 自己紹介 • 出身: 静岡県駿東郡長泉町
• 趣味: 地理空間情報と戯れる、ラジオを聴く、散歩、旅行... • 推し: 鬼頭明里さん(声優)、すそのん(静岡県裾野市ゆるキャラ) • 社外: PLATEAU ADVOCATE 2024、 地理空間情報課ラボ スペシャルサポーター、 OSGeo日本支部 個人会員、SatAI.Challenge サーベイメンバ ←個人では「ぴっかりん」という名前で SNS等に生息してます 9
PyCon mini Shizuoka 2024 continue 2. 自己紹介 今年度、PLATEAU ADVOCATEに就任さていただいています! 10
出典: https://www.mlit.go.jp/plateau/journal/j062/
PyCon mini Shizuoka 2024 continue 2. 自己紹介 地理空間情報課ラボ スペシャルサポーターにも 就任さていただいています!
11 出典: https://www.mlit-gis-lab.jp/
PyCon mini Shizuoka 2024 continue 2. 自己紹介 ところで、皆さんは長泉町がどこだか分かりますか? 12 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成
PyCon mini Shizuoka 2024 continue 2. 自己紹介 正解は赤色の場所です!! 13 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 実は右の静岡県の図、 県名や市町村名のほかに 位置の情報も含まれている
データから作成しています 14 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 15 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 ・・・
=
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 16 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 ・・・
= 市町村の形が緯度、経度で表され格納
PyCon mini Shizuoka 2024 continue 2. 自己紹介? このように「位置情報」をもつデータ(位置情報+αでも当然OK) → 地理空間情報
世の中には、様々な地理空間情報が溢れています! 17
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 世の中には、様々な地理空間情報が溢れています! 18 位置情報!
静岡市「静岡市公共施設一覧」を加工して作成
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 3Dの地理空間情報もあります! 19 静岡県「VIRTUAL
SHIZUOKA 静岡県 中・西部 点群データ」を東京都デジタルツイン3Dビューアで表示
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 3Dの地理空間情報もあります! 20 静岡県「VIRTUAL
SHIZUOKA 静岡県 中・西部 点群データ」を東京都デジタルツイン3Dビューアで表示 1つ1つの点がX, Y, Zの 位置情報と色の情報などを持つ
PyCon mini Shizuoka 2024 continue 2. 自己紹介? 今回お話するPLATEAUは、3Dの地理空間情報の1つです 21 出典:
https://plateauview.mlit.go.jp/
22 Project PLATEAUについて 03
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 国土交通省主導の「日本全国の都市の3Dモデル化プロジェクト」 23
出典: Project PLATEAU公式サイト
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 建築物などの形状が3Dで整備されており、 名称や用途、建築年などの属性情報が含まれている
24 出典: Project PLATEAU公式サイト
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • Google
Earthと何が違う? → セマンティクスとジオメトリを統合したソリッドモデル 25 出典: 令和4年度 Project PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 26 出典:
令和4年度 Project PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会 • Google Earthと何が違う? → オブジェクトが独立して整備され、意味や属性情報が付与されている
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • オープンデータ
→ 商用利用も含め、だれでも無償で自由に利用可能 27 出典: 国土交通省「Project PLATEAU Site Policy」
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ PLATEAUのデータを使うとどんなことができる?
28 出典: Project PLATEAU公式サイト
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ さまざまな(100以上)ユースケースが開発されている
29 出典: Project PLATEAU公式サイト
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ エンタメ分野での活用も
30 出典: https://www.youtube.com/watch?v=Xim2_tARjhU
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • どんなデータか手軽に確認するには?
✓ 国土交通省が公式に提供しているPLATEAU VIEWより確認可能 31 出典: PLATEAU VIEW
PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • データのダウンロード方法(手動)
✓ G空間情報センターというサイトからダウンロード可能 32 出典: 3D都市モデル(Project PLATEAU)ポータルサイト
33 Pythonが使われている これまでの取り組み事例 04
PyCon mini Shizuoka 2024 continue 4. Pythonが使われているこれまでの取り組み事例 • Project PLATEAUのユースケースにおいて、
Pythonが使われている事例はたくさん! 34 都市構造のシミュレーション 損害保険支払い作業の迅速化 衛星データを用いた浸水被害把握 出典: https://www.mlit.go.jp/plateau/use-case/
35 PlateauKitのご紹介 05
PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • PythonでPLATEAUのデータを扱うためのライブラリ →
JupyterLab(Notebook)上でデータを扱うための PlateauLabライブラリも同胞 36 出典: https://ozekik.github.io/plateaukit/
PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • PLATEAU AWARD
2023で発表されて、 継続して開発中 37 出典: https://www.mlit.go.jp/plateau/journal/j059/
PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • 機能 ✓
PLATEAUのデータセットのダウンロード、管理 ✓ GeoDataFrame形式への変換 ✓ GeoJSONやCityJSONといった地理空間情報を表現できる JSON形式への変換 ✓ JupyterLab/Jupyter Notebook上でデータの表示 (Google Colabでも使えます) 38
PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • インストール方法 pipコマンドを用いて、簡単にインストールできます
※ poetryやcondaなどで環境構築している方は 仮想環境を新しく作ることをオススメします → 地理空間情報周りのライブラリは、依存関係が複雑なため 39 $ pip install 'plateaukit[all]'
40 PLATEAUのデータを可視化してみよう 06
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 1.
ダウンロードしたい都市のデータセットIDを調べる → plateaukit list コマンドを使用 41 $ plateaukit list
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 1.
ダウンロードしたい都市のデータセットIDを調べる → plateaukit list コマンドの実行結果(加工しています) 42 +---------------------------------+-----+---------+---------+--------+----------------------------------------------------------- ---------------+ | id | name | version | spec | homepage | +---------------------------------+-----+---------+---------+--------+----------------------------------------------------------- ---------------+ | plateau-22215-gotenba-shi-2023 | 静岡県御殿場市 | 2023 | v3 | https://w//.geospatial.jp/ckan/dataset/plateau-22215- gotenba-shi-2023 | | plateau-22100-shizuoka-shi-2022 | 静岡県静岡市 | 2022 | v2 | https://w//.geospatial.jp/ckan/dataset/plateau-22100- shizuoka-shi-2022 | | plateau-22209-shimada-shi-2023 | 静岡県島田市 | 2023 | v3 | https://w//.geospatial.jp/ckan/dataset/plateau-22209- shimada-shi-2023 | | plateau-22341-shimizu-cho-2023 | 静岡県清水町 | 2023 | v3 | https://w//.geospatial.jp/ckan/dataset/plateau-22341- shimizu-cho-2023 | 会場がある静岡市のデータセットIDはこれ
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 2.
1.で調べたデータセットIDを用いてダウンロード plateaukit install コマンドで可能 ここでは、静岡市のデータをダウンロードしてみます 43 $ plateaukit install plateau-22100-shizuoka-shi-2022 先ほど調べたデータセットID
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータを削除 plateaukit
uninstall コマンドで可能 下の例、静岡市のデータを削除する場合 44 $ plateaukit uninstall plateau-22100-shizuoka-shi-2022 先ほど調べたデータセットID
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう 今まで、コマンドばかりでしたが ここからようやくPythonの出番です! 45
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータを読み込む →
plateaukitの中にあるload_dataset関数を 用いて読み込む 46 from plateaukit import load_dataset # 静岡市のデータの読み込み # `plateau-22100-shizuoka-shi-2022`は静岡市のデータセットID shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022")
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する →
範囲選択する方法は6つ 47 範囲選択の方法 メソッド 全範囲 get_area() バウンディングボックス area_from_bbox(ul_x, ul_y, lr_x, lr_y) 一つ以上の地点の座標と範囲の サイズ area_from_points(point, size=[width, height]) 郵便番号 area_from_postcode(“postcode”) 住所 area_from_address(“address”) ランドマーク名 area_from_landmark(“landmark”)
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する ✓
全範囲選択 → get_area()メソッドを使用 → PLATEAUのデータは重いので、全範囲は選択しない方が 無難 48 # 静岡市のデータの読み込み shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022") # 全範囲を選択 area = shizuoka.get_area()
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する 例)
建物等のランドマークの名前から範囲を選択 49 # 静岡市のデータの読み込み shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022") # ランドマークから範囲を選択 area = shizuoka.area_from_landmark("新静岡駅")
PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータを可視化 50
# ランドマークから範囲を選択 around_landmark = shizuoka.area_from_landmark("新静岡駅") # 選択した範囲を表示 around_landmark.show()
51 PLATEAUのデータを分析に 使用してみよう 07
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • GeoDataFrameへの変換 ➢
Pythonでデータ分析などをする際に使用するDataFrameの 位置情報対応版 ➢ pandasでデータの処理を行うように、PLATEAUのデータも 扱える! 52 # ランドマークから範囲を選択 around_landmark = shizuoka.area_from_landmark("新静岡駅") # 選択した範囲のデータをGeoDataFrameに変換 around_landmark_gdf = around_landmark.gdf around_landmark_gdf.head()
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • GeoDataFrameへの変換 ➢
pandasでデータの処理を行うように、PLATEAUのデータも 扱える! 53
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • 地階がある建物を赤色で表示 54
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • 会場がある建物にも地階があるみたいです 55
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • 会場がある建物にも地階があるみたいです →
ありました!(お昼休憩時に確認) 56
PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • 属性情報を用いて建物用途ごとに色を分けて表示した例 57
58 まとめ 08
59 まとめと思いきや宣伝です! 08
PyCon mini Shizuoka 2024 continue 8. 宣伝 • 今回お話したPLATEAUのデータを用いた作品コンテストである 「PLATEAU
AWARD 2024」の最終審査会が2/15(土)に 東京で開催されます! 60 出典: https://asciistartup.connpass.com/event/338852/
PyCon mini Shizuoka 2024 continue 8. 宣伝 • 今回お話したPLATEAUのデータを用いた作品コンテストである 「PLATEAU
AWARD 2024」の最終審査会が2/15(土)に 開催されます! → オンライン(YouTube)でも視聴できます 61 出典: https://asciistartup.connpass.com/event/338852/
PyCon mini Shizuoka 2024 continue 8. 宣伝 • その他にも様々な地理空間情報関連のイベントが2/15に開催されます 62
地理空間情報やオープンな地図に関するイベント @北海道札幌市 3Dスキャンアプリに関するイベント @静岡県掛川市 嬉しいことに?、既に満席! https://peatix.com/event/4273999?lang=ja-jp https://peatix.com/event/4205624/
PyCon mini Shizuoka 2024 continue 8. まとめ • PLATEAUは都市に関する形状と意味を持った データで誰でも無償で自由に使用可能
• Pythonで扱うためのツールが開発されて 便利になりつつある • PLATEAUのデータをPlateauKitで扱うとデータの管理が できるほか、範囲選択やDataFrameに変換できて扱いやすい 63
PyCon mini Shizuoka 2024 continue 8. まとめ Pythonを用いて、地理空間情報で遊ぶのは めっちゃ楽しいです!!! あなたもぜひ、地理空間情報の沼へ!
64
ありがとうございました! ↑ X (旧Twitter)アカウント ↑ GitHubアカウント 65