Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PythonでPLATEAUのデータを扱ってみる

ぴっかりん
February 08, 2025
370

 PythonでPLATEAUのデータを扱ってみる

2025年2月8日(土)に静岡県静岡市で開催されたPyCon mini Shizuoka 2024 continueにて発表した資料です。

ぴっかりん

February 08, 2025
Tweet

Transcript

  1. PyCon mini Shizuoka 2024 continue はじめに • 本発表は、所属会社で行っていることではなく、個人で 使ってみたライブラリの発表になります •

    本発表では、以下のPLATEAUのデータを使用しています 3D都市モデル(Project PLATEAU)静岡市(2022年度) CityGML(v2) 2
  2. PyCon mini Shizuoka 2024 continue 発表内容 1. トークの概要 2. 自己紹介

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

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

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

    4. Pythonが使われているこれまでの取り組み事例 5. PlateauKitのご紹介 6. PLATEAUのデータを可視化してみよう 7. PLATEAUのデータを分析に使用してみよう 7 レベル: Advanced (経験者向け)
  6. PyCon mini Shizuoka 2024 continue 2. 自己紹介 • 出身: 静岡県駿東郡長泉町

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

    データから作成しています 14 「国土数値情報(行政区域データ)」(国土交通省)を加工して作成
  8. PyCon mini Shizuoka 2024 continue 2. 自己紹介? 3Dの地理空間情報もあります! 19 静岡県「VIRTUAL

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

    SHIZUOKA 静岡県 中・西部 点群データ」を東京都デジタルツイン3Dビューアで表示 1つ1つの点がX, Y, Zの 位置情報と色の情報などを持つ
  10. PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • Google

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

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

    → 商用利用も含め、だれでも無償で自由に利用可能 27 出典: 国土交通省「Project PLATEAU Site Policy」
  13. PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • どんなデータか手軽に確認するには?

    ✓ 国土交通省が公式に提供しているPLATEAU VIEWより確認可能 31 出典: PLATEAU VIEW
  14. PyCon mini Shizuoka 2024 continue 3. Project PLATEAUについて • データのダウンロード方法(手動)

    ✓ G空間情報センターというサイトからダウンロード可能 32 出典: 3D都市モデル(Project PLATEAU)ポータルサイト
  15. PyCon mini Shizuoka 2024 continue 4. Pythonが使われているこれまでの取り組み事例 • Project PLATEAUのユースケースにおいて、

    Pythonが使われている事例はたくさん! 34 都市構造のシミュレーション 損害保険支払い作業の迅速化 衛星データを用いた浸水被害把握 出典: https://www.mlit.go.jp/plateau/use-case/
  16. PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • PythonでPLATEAUのデータを扱うためのライブラリ →

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

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

    PLATEAUのデータセットのダウンロード、管理 ✓ GeoDataFrame形式への変換 ✓ GeoJSONやCityJSONといった地理空間情報を表現できる JSON形式への変換 ✓ JupyterLab/Jupyter Notebook上でデータの表示 (Google Colabでも使えます) 38
  19. PyCon mini Shizuoka 2024 continue 5. PlateauKitのご紹介 • インストール方法 pipコマンドを用いて、簡単にインストールできます

    ※ poetryやcondaなどで環境構築している方は 仮想環境を新しく作ることをオススメします → 地理空間情報周りのライブラリは、依存関係が複雑なため 39 $ pip install 'plateaukit[all]'
  20. PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 1.

    ダウンロードしたい都市のデータセットIDを調べる → plateaukit list コマンドを使用 41 $ plateaukit list
  21. 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はこれ
  22. PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 2.

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

    uninstall コマンドで可能 下の例、静岡市のデータを削除する場合 44 $ plateaukit uninstall plateau-22100-shizuoka-shi-2022 先ほど調べたデータセットID
  24. 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")
  25. 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”)
  26. PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する ✓

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

    建物等のランドマークの名前から範囲を選択 49 # 静岡市のデータの読み込み shizuoka = load_dataset("plateau-22100-shizuoka-shi-2022") # ランドマークから範囲を選択 area = shizuoka.area_from_landmark("新静岡駅")
  28. PyCon mini Shizuoka 2024 continue 6. PLATEAUのデータを可視化してみよう • PLATEAUのデータを可視化 50

    # ランドマークから範囲を選択 around_landmark = shizuoka.area_from_landmark("新静岡駅") # 選択した範囲を表示 around_landmark.show()
  29. 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()
  30. PyCon mini Shizuoka 2024 continue 7. PLATEAUのデータを分析に使用してみよう • GeoDataFrameへの変換 ➢

    pandasでデータの処理を行うように、PLATEAUのデータも 扱える! 53
  31. PyCon mini Shizuoka 2024 continue 8. 宣伝 • 今回お話したPLATEAUのデータを用いた作品コンテストである 「PLATEAU

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

    AWARD 2024」の最終審査会が2/15(土)に 開催されます! → オンライン(YouTube)でも視聴できます 61 出典: https://asciistartup.connpass.com/event/338852/
  33. PyCon mini Shizuoka 2024 continue 8. 宣伝 • その他にも様々な地理空間情報関連のイベントが2/15に開催されます 62

    地理空間情報やオープンな地図に関するイベント @北海道札幌市 3Dスキャンアプリに関するイベント @静岡県掛川市 嬉しいことに?、既に満席! https://peatix.com/event/4273999?lang=ja-jp https://peatix.com/event/4205624/
  34. PyCon mini Shizuoka 2024 continue 8. まとめ • PLATEAUは都市に関する形状と意味を持った データで誰でも無償で自由に使用可能

    • Pythonで扱うためのツールが開発されて 便利になりつつある • PLATEAUのデータをPlateauKitで扱うとデータの管理が できるほか、範囲選択やDataFrameに変換できて扱いやすい 63