Slide 1

Slide 1 text

PythonでPLATEAUの データを扱ってみる 青木亮祐 / ぴっかりん (@ra0kley) PyCon mini Shizuoka 2024 continue 2025.02.08

Slide 2

Slide 2 text

PyCon mini Shizuoka 2024 continue はじめに ● 本発表は、所属会社で行っていることではなく、個人で 使ってみたライブラリの発表になります ● 本発表では、以下のPLATEAUのデータを使用しています 3D都市モデル(Project PLATEAU)静岡市(2022年度) CityGML(v2) 2

Slide 3

Slide 3 text

PyCon mini Shizuoka 2024 continue 発表内容 1. トークの概要 2. 自己紹介 3. Project PLATEAUについて 4. PlateauKitのご紹介 5. PLATEAUのデータを可視化してみよう 6. PLATEAUのデータを分析に使用してみよう 7. まとめ 3

Slide 4

Slide 4 text

4 トークの概要 01

Slide 5

Slide 5 text

PyCon mini Shizuoka 2024 continue 1. トークの概要 3. Project PLATEAUについて 4. Pythonが使われているこれまでの取り組み事例 4. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 5 レベル: All (エンジニア以外も対象) ここが7割

Slide 6

Slide 6 text

PyCon mini Shizuoka 2024 continue 2. トークの概要 3. Project PLATEAUについて 4. Pythonが使われているこれまでの取り組み事例 4. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 6 レベル: Basic (初学者向け)

Slide 7

Slide 7 text

PyCon mini Shizuoka 2024 continue 2. トークの概要 3. Project PLATEAUについて 4. Pythonが使われているこれまでの取り組み事例 5. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 7 レベル: Advanced (経験者向け)

Slide 8

Slide 8 text

8 自己紹介 02

Slide 9

Slide 9 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介 ● 出身: 静岡県駿東郡長泉町 ● 趣味: 地理空間情報と戯れる、ラジオを聴く、散歩、旅行... ● 推し: 鬼頭明里さん(声優)、すそのん(静岡県裾野市ゆるキャラ) ● 社外: PLATEAU ADVOCATE 2024、 地理空間情報課ラボ スペシャルサポーター、 OSGeo日本支部 個人会員、SatAI.Challenge サーベイメンバ ←個人では「ぴっかりん」という名前で SNS等に生息してます 9

Slide 10

Slide 10 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介 今年度、PLATEAU ADVOCATEに就任さていただいています! 10 出典: https://www.mlit.go.jp/plateau/journal/j062/

Slide 11

Slide 11 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介 地理空間情報課ラボ スペシャルサポーターにも 就任さていただいています! 11 出典: https://www.mlit-gis-lab.jp/

Slide 12

Slide 12 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介 ところで、皆さんは長泉町がどこだか分かりますか? 12 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成

Slide 13

Slide 13 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介 正解は赤色の場所です!! 13 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成

Slide 14

Slide 14 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 実は右の静岡県の図、 県名や市町村名のほかに 位置の情報も含まれている データから作成しています 14 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成

Slide 15

Slide 15 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 15 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 ・・・ =

Slide 16

Slide 16 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 16 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成 ・・・ = 市町村の形が緯度、経度で表され格納

Slide 17

Slide 17 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? このように「位置情報」をもつデータ(位置情報+αでも当然OK) → 地理空間情報 世の中には、様々な地理空間情報が溢れています! 17

Slide 18

Slide 18 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 世の中には、様々な地理空間情報が溢れています! 18 位置情報! 静岡市「静岡市公共施設一覧」を加工して作成

Slide 19

Slide 19 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 3Dの地理空間情報もあります! 19 静岡県「VIRTUAL SHIZUOKA 静岡県 中・西部 点群データ」を東京都デジタルツイン3Dビューアで表示

Slide 20

Slide 20 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 3Dの地理空間情報もあります! 20 静岡県「VIRTUAL SHIZUOKA 静岡県 中・西部 点群データ」を東京都デジタルツイン3Dビューアで表示 1つ1つの点がX, Y, Zの 位置情報と色の情報などを持つ

Slide 21

Slide 21 text

PyCon mini Shizuoka 2024 continue 2. 自己紹介? 今回お話するPLATEAUは、3Dの地理空間情報の1つです 21 出典: https://plateauview.mlit.go.jp/

Slide 22

Slide 22 text

22 Project PLATEAUについて 03

Slide 23

Slide 23 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 国土交通省主導の「日本全国の都市の3Dモデル化プロジェクト」 23 出典: Project PLATEAU公式サイト

Slide 24

Slide 24 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 建築物などの形状が3Dで整備されており、 名称や用途、建築年などの属性情報が含まれている 24 出典: Project PLATEAU公式サイト

Slide 25

Slide 25 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ● Google Earthと何が違う? → セマンティクスとジオメトリを統合したソリッドモデル 25 出典: 令和4年度 Project PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会

Slide 26

Slide 26 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて 26 出典: 令和4年度 Project PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会 ● Google Earthと何が違う? → オブジェクトが独立して整備され、意味や属性情報が付与されている

Slide 27

Slide 27 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ● オープンデータ → 商用利用も含め、だれでも無償で自由に利用可能 27 出典: 国土交通省「Project PLATEAU Site Policy」

Slide 28

Slide 28 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ PLATEAUのデータを使うとどんなことができる? 28 出典: Project PLATEAU公式サイト

Slide 29

Slide 29 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ さまざまな(100以上)ユースケースが開発されている 29 出典: Project PLATEAU公式サイト

Slide 30

Slide 30 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ⚫ エンタメ分野での活用も 30 出典: https://www.youtube.com/watch?v=Xim2_tARjhU

Slide 31

Slide 31 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ● どんなデータか手軽に確認するには? ✓ 国土交通省が公式に提供しているPLATEAU VIEWより確認可能 31 出典: PLATEAU VIEW

Slide 32

Slide 32 text

PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて ● データのダウンロード方法(手動) ✓ G空間情報センターというサイトからダウンロード可能 32 出典: 3D都市モデル(Project PLATEAU)ポータルサイト

Slide 33

Slide 33 text

33 Pythonが使われている これまでの取り組み事例 04

Slide 34

Slide 34 text

PyCon mini Shizuoka 2024 continue 4. Pythonが使われているこれまでの取り組み事例 ● Project PLATEAUのユースケースにおいて、 Pythonが使われている事例はたくさん! 34 都市構造のシミュレーション 損害保険支払い作業の迅速化 衛星データを用いた浸水被害把握 出典: https://www.mlit.go.jp/plateau/use-case/

Slide 35

Slide 35 text

35 PlateauKitのご紹介 05

Slide 36

Slide 36 text

PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 ● PythonでPLATEAUのデータを扱うためのライブラリ → JupyterLab(Notebook)上でデータを扱うための PlateauLabライブラリも同胞 36 出典: https://ozekik.github.io/plateaukit/

Slide 37

Slide 37 text

PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 ● PLATEAU AWARD 2023で発表されて、 継続して開発中 37 出典: https://www.mlit.go.jp/plateau/journal/j059/

Slide 38

Slide 38 text

PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 ● 機能 ✓ PLATEAUのデータセットのダウンロード、管理 ✓ GeoDataFrame形式への変換 ✓ GeoJSONやCityJSONといった地理空間情報を表現できる JSON形式への変換 ✓ JupyterLab/Jupyter Notebook上でデータの表示 (Google Colabでも使えます) 38

Slide 39

Slide 39 text

PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 ● インストール方法 pipコマンドを用いて、簡単にインストールできます ※ poetryやcondaなどで環境構築している方は 仮想環境を新しく作ることをオススメします → 地理空間情報周りのライブラリは、依存関係が複雑なため 39 $ pip install 'plateaukit[all]'

Slide 40

Slide 40 text

40 PLATEAUのデータを可視化してみよう 06

Slide 41

Slide 41 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● PLATEAUのデータをダウンロード 1. ダウンロードしたい都市のデータセットIDを調べる → plateaukit list コマンドを使用 41 $ plateaukit list

Slide 42

Slide 42 text

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はこれ

Slide 43

Slide 43 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● PLATEAUのデータをダウンロード 2. 1.で調べたデータセットIDを用いてダウンロード plateaukit install コマンドで可能 ここでは、静岡市のデータをダウンロードしてみます 43 $ plateaukit install plateau-22100-shizuoka-shi-2022 先ほど調べたデータセットID

Slide 44

Slide 44 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● PLATEAUのデータを削除 plateaukit uninstall コマンドで可能 下の例、静岡市のデータを削除する場合 44 $ plateaukit uninstall plateau-22100-shizuoka-shi-2022 先ほど調べたデータセットID

Slide 45

Slide 45 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう 今まで、コマンドばかりでしたが ここからようやくPythonの出番です! 45

Slide 46

Slide 46 text

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")

Slide 47

Slide 47 text

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”)

Slide 48

Slide 48 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● 表示・分析に使用する範囲を選択する ✓ 全範囲選択 → get_area()メソッドを使用 → PLATEAUのデータは重いので、全範囲は選択しない方が 無難 48 # 静岡市のデータの読み込み shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022") # 全範囲を選択 area = shizuoka.get_area()

Slide 49

Slide 49 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● 表示・分析に使用する範囲を選択する 例) 建物等のランドマークの名前から範囲を選択 49 # 静岡市のデータの読み込み shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022") # ランドマークから範囲を選択 area = shizuoka.area_from_landmark("新静岡駅")

Slide 50

Slide 50 text

PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう ● PLATEAUのデータを可視化 50 # ランドマークから範囲を選択 around_landmark = shizuoka.area_from_landmark("新静岡駅") # 選択した範囲を表示 around_landmark.show()

Slide 51

Slide 51 text

51 PLATEAUのデータを分析に 使用してみよう 07

Slide 52

Slide 52 text

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()

Slide 53

Slide 53 text

PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう ● GeoDataFrameへの変換 ➢ pandasでデータの処理を行うように、PLATEAUのデータも 扱える! 53

Slide 54

Slide 54 text

PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう ● 地階がある建物を赤色で表示 54

Slide 55

Slide 55 text

PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう ● 会場がある建物にも地階があるみたいです 55

Slide 56

Slide 56 text

PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう ● 会場がある建物にも地階があるみたいです → ありました!(お昼休憩時に確認) 56

Slide 57

Slide 57 text

PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう ● 属性情報を用いて建物用途ごとに色を分けて表示した例 57

Slide 58

Slide 58 text

58 まとめ 08

Slide 59

Slide 59 text

59 まとめと思いきや宣伝です! 08

Slide 60

Slide 60 text

PyCon mini Shizuoka 2024 continue 8. 宣伝 ● 今回お話したPLATEAUのデータを用いた作品コンテストである 「PLATEAU AWARD 2024」の最終審査会が2/15(土)に 東京で開催されます! 60 出典: https://asciistartup.connpass.com/event/338852/

Slide 61

Slide 61 text

PyCon mini Shizuoka 2024 continue 8. 宣伝 ● 今回お話したPLATEAUのデータを用いた作品コンテストである 「PLATEAU AWARD 2024」の最終審査会が2/15(土)に 開催されます! → オンライン(YouTube)でも視聴できます 61 出典: https://asciistartup.connpass.com/event/338852/

Slide 62

Slide 62 text

PyCon mini Shizuoka 2024 continue 8. 宣伝 ● その他にも様々な地理空間情報関連のイベントが2/15に開催されます 62 地理空間情報やオープンな地図に関するイベント @北海道札幌市 3Dスキャンアプリに関するイベント @静岡県掛川市 嬉しいことに?、既に満席! https://peatix.com/event/4273999?lang=ja-jp https://peatix.com/event/4205624/

Slide 63

Slide 63 text

PyCon mini Shizuoka 2024 continue 8. まとめ ● PLATEAUは都市に関する形状と意味を持った データで誰でも無償で自由に使用可能 ● Pythonで扱うためのツールが開発されて 便利になりつつある ● PLATEAUのデータをPlateauKitで扱うとデータの管理が できるほか、範囲選択やDataFrameに変換できて扱いやすい 63

Slide 64

Slide 64 text

PyCon mini Shizuoka 2024 continue 8. まとめ Pythonを用いて、地理空間情報で遊ぶのは めっちゃ楽しいです!!! あなたもぜひ、地理空間情報の沼へ! 64

Slide 65

Slide 65 text

ありがとうございました! ↑ X (旧Twitter)アカウント ↑ GitHubアカウント 65