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

FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデー...

FOSS4G 2024 Japan コアデイ 一般発表25 PythonでPLATEAUのデータを手軽に扱ってみる

202411月10日(日)に専修大学生田キャンパスにて開催されたFOSS4G 2024 Japan コアデイの一般発表25「PythonでPLATEAUのデータを手軽に扱ってみる」に使用した発表資料です。

ぴっかりん

November 10, 2024
Tweet

More Decks by ぴっかりん

Other Decks in Technology

Transcript

  1. FOSS4G 2024 Japan 発表内容 1. 自己紹介 & 会社紹介 2. Project

    PLATEAUについて 3. PlateauKitのご紹介 4. PLATEAUのデータを可視化してみよう 5. PLATEAUのデータを分析に使用してみよう 6. まとめ 3
  2. FOSS4G 2024 Japan 1. 自己紹介 • 本名: 青木 亮祐(あおき りょうすけ)

    • 出身: 静岡県東部地域 • 趣味: 地理空間情報と戯れる、ラジオを聴く、散歩、旅行... • 推し: 鬼頭明里さん、すそのん ←個人では「ぴっかりん」という名前で SNS等に生息してます 5
  3. FOSS4G 2024 Japan 2. Project PLATEAUについて ⚫ 3D都市モデルとは? CityGML形式により都市スケールで整備されたジオメトリとセマンテ ィクスの統合モデル

    ➢ 幾何形状(ジオメトリモデル)に「建物」、「壁」、「屋根」等の 地物の定義や「用途」、「構造」、「建築年」などの属性情報が付与 されている ➢ 国際的な標準規格である「CityGML」を日本国内向けに ローカライズした標準仕様に沿って整備されている 10
  4. FOSS4G 2024 Japan 2. Project PLATEAUについて • 特徴1: セマンティクスとジオメトリを統合したソリッドモデル →

    Google Earthと何が違う? 12 出典: 令和4年度 Project PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会
  5. FOSS4G 2024 Japan 2. Project PLATEAUについて 13 出典: 令和4年度 Project

    PLATEAU 第6回 3D都市モデルの整備・活用促進に関する検討分科会 • 特徴1: セマンティクスとジオメトリを統合したソリッドモデル → オブジェクトが独立して整備され、意味や属性情報が付与されている
  6. FOSS4G 2024 Japan 2. Project PLATEAUについて • 特徴2: 国際的な標準規格(CityGML)で整備 →

    国際的な標準規格に沿って、整備されているため 様々なフォーマットに変換しやすい → XMLで記述されたテキスト形式のデータなので、パースが 比較的に簡単 14
  7. FOSS4G 2024 Japan 2. Project PLATEAUについて • 特徴3: オープンデータ →

    商用利用も含め、だれでも無償で自由に利用可能 15 出典: 国土交通省「Project PLATEAU Site Policy」
  8. FOSS4G 2024 Japan 2. Project PLATEAUについて • 特徴4: LOD(Level Of

    Detail)が定義されている → 3D都市モデルの詳細度のことで、1つの地物の幾何を 目的などに応じて複数段階に抽象化できる → 同じ地物に関する詳細度の異なる様々な情報を統合的に管理や 利用することが可能 16
  9. FOSS4G 2024 Japan 3. Pythonが使われているこれまでの取り組み事例 • Project PLATEAUのユースケースにおいて、 Pythonが使われている事例はたくさん! 20

    都市構造のシミュレーション 損害保険支払い作業の迅速化 衛星データを用いた浸水被害把握 出典: https://www.mlit.go.jp/plateau/use-case/
  10. FOSS4G 2024 Japan 4. PlateauKitのご紹介 • 機能 ✓ PLATEAUのデータセットのダウンロード、管理 ✓

    GeoDataFrame形式への変換 ✓ GeoJSONやCityJSONといった地理空間情報を表現できる JSON形式への変換 ✓ JupyterLab/Jupyter Notebook上でデータの表示 (Google Colabでも使えます) 24
  11. FOSS4G 2024 Japan 4. PlateauKitのご紹介 • インストール方法 pipコマンドを用いて、簡単にインストールできます ※ poetryやcondaなどで環境構築している方は

    仮想環境を新しく作ることをオススメします → 地理空間情報周りのライブラリは、依存関係が複雑なため 25 $ pip install 'plateaukit[all]'
  12. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 1. ダウンロードしたい都市のデータセットIDを調べる →

    plateaukit list コマンドの実行結果(加工しています) 28 +---------------------------------+-----+---------+---------+--------+---------------------------------------- ----------------------------------+ | id | name | version | spec | homepage | +---------------------------------+-----+---------+---------+--------+---------------------------------------- ----------------------------------+ | plateau-14212-atsugi-shi-2023 | 神奈川県厚木市 | 2023 | v3 | https://w//.geospatial.jp/ckan/dataset /plateau-14212-atsugi-shi-2023 | | plateau-14130-kawasaki-shi-2022 | 神奈川県川崎市 | 2022 | v3 | https://w//.geospatial.jp/ckan/dataset /plateau-14130-kawasaki-shi-2022 | | plateau-14100-yokohama-shi-2023 | 神奈川県横浜市 | 2023 | v3 | https://w//.geospatial.jp/ckan/dataset /plateau-14100-yokohama-shi-2023 | 会場がある川崎市のデータセットIDはこれ
  13. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • PLATEAUのデータをダウンロード 2. 1.で調べたデータセットIDを用いてダウンロード plateaukit

    install コマンドで可能 ここでは、川崎市のデータをダウンロードしてみます 29 $ plateaukit install plateau-14130-kawasaki-shi-2022 先ほど調べたデータセットID
  14. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • PLATEAUのデータを削除 plateaukit uninstall コマンドで可能

    下の例、川崎市のデータを削除する場合 30 $ plateaukit uninstall plateau-14130-kawasaki-shi-2022 先ほど調べたデータセットID
  15. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • PLATEAUのデータを読み込む → plateaukitの中にあるload_dataset関数を 用いて読み込む

    32 from plateaukit import load_dataset # 川崎市のデータの読み込み # `plateau-14130-kawasaki-shi-2022`は川崎市のデータセットID kawasaki = load_dataset("plateau-14130-kawasaki-shi-2022")
  16. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する → 範囲選択する方法は6つ 33

    範囲選択の方法 メソッド 全範囲 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”)
  17. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する ✓ 全範囲選択 →

    get_area()メソッドを使用 → PLATEAUのデータは重いので、全範囲は選択しない方が 無難 34 # 川崎市のデータの読み込み kawasaki = load_dataset("plateau-14130-kawasaki-shi-2022") # 全範囲を選択 area = kawasaki.get_area()
  18. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • 表示・分析に使用する範囲を選択する ✓ 郵便番号で範囲選択 ✓

    建物等のランドマークの名前から範囲を選択 35 # 川崎市のデータの読み込み kawasaki = load_dataset("plateau-14130-kawasaki-shi-2022") # 郵便番号で範囲を選択 area = Kawasaki.area_from_postcode("4228063") # 川崎市のデータの読み込み kawasaki = load_dataset("plateau-14130-kawasaki-shi-2022") # ランドマークから範囲を選択 area = kawasaki.area_from_landmark("向ヶ丘遊園駅")
  19. FOSS4G 2024 Japan 5. PLATEAUのデータを可視化してみよう • PLATEAUのデータを可視化 36 # ランドマークから範囲を選択

    around_landmark = kawasaki.area_from_landmark("向ヶ丘遊園駅") # 選択した範囲を表示 around_landmark.show()
  20. FOSS4G 2024 Japan 6. PLATEAUのデータを分析に使用してみよう • GeoDataFrameへの変換 ➢ Pythonでデータ分析などをする際に使用するDataFrameの 位置情報対応版

    ➢ pandasでデータの処理を行うように、PLATEAUのデータも 扱える! 38 # ランドマークから範囲を選択 around_landmark = kawasaki.area_from_landmark("向ヶ丘遊園駅") # 選択した範囲のデータをGeoDataFrameに変換 around_landmark_gdf = around_landmark.gdf around_landmark_gdf.head()
  21. FOSS4G 2024 Japan 7. まとめ • PLATEAUは都市に関する形状と意味を持った データで誰でも無償で自由に使用可能 • Pythonで扱うためのツールが開発されて

    便利になりつつある • PLATEAUのデータをPlateauKitで扱うとデータの管理が できるほか、範囲選択やDataFrameに変換できて扱いやすい 41