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

Pythonではじめる地理空間情報

 Pythonではじめる地理空間情報

PyCon JP 2022
2022-10-15 13:50-14:20
#pyconjp_5

Hiroshi Omata

October 15, 2022
Tweet

More Decks by Hiroshi Omata

Other Decks in Programming

Transcript

  1. Who? 小俣 博司 (Hiroshi Omata) ソフトウェアデベロッパー + いろいろ 情報技術と都市、地域、社会基盤を融合させた分野で、 例えば地理空間情報や人々の移動など、都市に関する

    様々な情報を収集・分析し、人々の生活改善や地域課題 解決に活かすための研究と普及活動を行っている Geo+Python JP Twitter: @homata 詳細: https://hackmd.io/@homata/self-introduction
  2. GISと地理空間情報 GISとは ”地理情報システム(GIS:Geographic Information System)は、地理的位置を手がかりに、 位置に関する情報を持ったデー タ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術である。 ” 地理空間情報とは "地理空間情報とは、空間上の特定の地点又は区域の位置を示す情報(

    位置情報)とそれに関連付けられた様々な事象に 関する情報、もしくは位置情報のみからなる情報をいう。地理空間情報には、地域における自然、災害、社会経済活動など 特定のテーマについての状況を表現する土地利用図、地質図、ハザードマップ等の主題図、都市計画図、地形図、地名情 報、台帳情報、統計情報、空中写真、衛星画像等の多様な情報がある。 地理空間情報は、その位置情報をキーにして異 なるデータを重ね合わせることで、分析等の活用がなされることから、様々な主体によって整備されるデータ間で位置情報の 整合がとれている必要がある。 ” 国土地理院 https://www.gsi.go.jp/GIS/whatisgis.html
  3. 形状・距離・方位・面積等の全てを正確に保つ事は不可能なため、用途に応じて様々な方法・ 分類がある。 性質で分類 • 正積図法:面積が正しい • 正角図法:任意の二地点間を結んだ直線と経線のなす角度が正しい • 正距図法:距離が正しい 投影で分類

    • 方位図法:地球の周辺に置かれた平面に地球の姿を投影する。 • 円錐図法:地球に傘のような円錐をかぶせて地球の姿を投影し、平面に切り広げる。 • 円筒図法:地球に帯を巻くように円筒をかぶせて地球の姿を投影し、平面に切り広げる。 図法と投影法 https://docs.qgis.org/2.8/en/docs/gentle_gis_introduction/coordinate_reference_systems.html 正距方位図法
  4. geemapとleafmap • インタラクティブなマッピングと地理空間分析を行うための無料でオープンソース のPythonパッケージ • ユーザーが最小限のコーディングで地理空間データを分析および視覚化可能に したもの • Google Colab、JupyterNotebook環境で動作

    • テネシー大学 地理学部 准教授のQiusheng Wu, PhDが開発 • foliumやipyleafletなどのライブラリをベースに構築 • geemapは、Google Earth Engine (GEE) が動作 • leafmapは、geemapのスピンオフでgeemapのGEEなしのバージョン
  5. geemapとleafmap A Python package for interactive mapping with Google Earth

    Engine, ipyleaflet, and ipywidgets. • GitHub repo: https://github.com/giswqs/geemap • Documentation: https://geemap.org • PyPI: https://pypi.org/project/geemap • Conda-forge: https://anaconda.org/conda-forge/geemap • 360+ GEE notebook examples: https://github.com/giswqs/earthengine-py-notebooks • GEE Tutorials on YouTube: https://www.youtube.com/c/QiushengWu • Free software: MIT license Google Earth Engine and geemap Python Tutorials https://www.youtube.com/playlist?list=PLAxJ4-o7ZoPccOFv1dCwvGI 6TYnirRTg3 geemap
  6. geemapとleafmap A Python package for geospatial analysis and interactive mapping

    in a Jupyter environment. • GitHub repo: https://github.com/giswqs/leafmap • Documentation: https://leafmap.org • PyPI: https://pypi.org/project/leafmap • Conda-forge: https://anaconda.org/conda-forge/leafmap • Leafmap tutorials on YouTube: https://www.youtube.com/c/QiushengWu • Free software: MIT license Leafmap GeoPython Tutorials https://www.youtube.com/playlist?list=PLAxJ4-o7ZoPeMITwB8 eyynOG0-CY3CMdw leafmap
  7. インストール geemap Install from PyPI pip install geemap Install from

    conda-forge conda install geemap -c conda-forge 依存関係のあるライブラリ(e.g. pygis)をインストール conda create -n gee python conda activate gee conda install -c conda-forge mamba mamba install -c conda-forge geemap pygis
  8. インストール leafmap Install from PyPI pip install leafmap Install from

    conda-forge conda install leafmap -c conda-forge 依存関係のあるライブラリ (e.g. geopandas, localtileserver, keplergl, pydeck)をインストール conda create -n geo python=3.9 conda activate geo conda install geopandas conda install mamba -c conda-forge mamba install localtileserver keplergl pydeck leafmap -c conda-forge
  9. 3次元データのファイル形式   • 点群形式 ◦ 点データ ◦ 複雑なモデルの形状を正確に表現可能 ◦ 編集が難しい

    • メッシュ形式 ◦ 三角形のポリゴンメッシュ(面形状)のデータ ◦ 文字やテクスチャなど面の細かい情報もスキャン可能
  10. 3次元データのファイル形式   • 点群形式 ◦ 点データ ◦ 複雑なモデルの形状を正確に表現可能 ◦ 編集が難しい

    • メッシュ形式 ◦ 三角形のポリゴンメッシュ(面形状)のデータ ◦ 文字やテクスチャなど面の細かい情報もスキャン可能
  11. 3次元データのファイル形式 • 点群データ系 ◦ las、laz形式 ◦ ply形式 (Polygon File Format)

    ◦ PCD形式 (Point Cloud Data) • メッシュデータ系 ◦ STL形式 (Standard Triangulated Language) ◦ OBJ形式 ◦ FBX形式 ※ 点群データは、las → ply → メッシュデータ(ポリゴン)形式に変換して、使用することが多い※ 各データ のデータ形式は、テキストまたはバイナリデータの形式がある (例 las, ply等)
  12. 点群データに便利なツール • CloudCompare ◦ 点群データの表示、簡易編集に便利 ◦ オープンソースのソフトウェア ◦ コマンドラインで実行可能 ◦

    https://www.danielgm.net/cc/ • MeshLab ◦ 点群データやメッシュデータの表示や簡易編集に便利 ◦ オープンソースのソフトウェア ◦ https://www.meshlab.net/ • Point Cloud Library ◦ 3次元の点群データを扱う、C++言語のソフトウェアライブラリ ◦ オープンソースのソフトウェア • Open3D ◦ 3次元データを扱うソフトウェアライブラリ ◦ オープンソースのソフトウェア ◦ http://www.open3d.org/ • OpenCV ◦ 画像処理・画像解析のためのライブラリ ◦ https://opencv.org/
  13. Project PLATEAU (プラトー) PLATEAUデータは、CityGML形式でデータを整備 データソース 1. 都市計画基本図(基盤地図情報) 2. 都市計画基礎調査 3.

    公共測量成果(航空写真又は LP) ・データ特性  国際標準化団体 OGCが策定した「CityGML 2.0」を採用 ・高い拡張性・互換性  国際標準規格であるため、 BIMなどの多様な分野のデータとの  連携・交換やソフトウェア対応が可能  日本独自の情報を追加可能 ・オープンデータによるイノベーション創出  二次利用等が可能なオープンライセンスを採用し  「G空間情報センター」で一般に公開 CityGML形式は中間フォーマットとして、利用者が「使いやすいフォーマッ ト」に変換した上で利用することを想定 https://www.mlit.go.jp/plateau/ 国土交通省が進める3D都市モデルの整備・活用・オープンデータ化推進するプロジェクト
  14. My City Construction 受注者が検査前に電子納品成果をアップロードす ることで、点群データや UAV撮影データ等の重い データを円滑にプレビュー表示・検索することや、 オープンデータについては G空間情報センターから も検索可能な、自治体単位でも採用しやすい低コス

    トかつ包括的なオンライン型電子納品システム(仮 称:My City Construction)を設計・構築した https://mycityconstruction.jp/ 電子納品成果の包括的な活用と共有が可能なオンライン型電子納品システム
  15. My City Forecast Ver2.0 将来の地域の世帯・人口データを推計し、指標化 My City Forecast Ver2.0 コンセプト

    • 世帯をエージェントとした世帯推計データを開発し、自 治体単位の転出入等も加味した確率で考慮した2020 年~2040年の世帯推移モデルを構築 • 小地域をベースに可視化や集計値算出を行い、よりミ クロなスケールでリアリティが伝わるように改良 • 従来の14指標から政策分野ごとに10テーマ(政策)に 分類し直し、各分野での重要指標も可視化できるよう にした https://mycityforecast.net/ 現状の人口分布・施設配置データをもとに、2015年~2040年に想定される居住地域の環境を可視化
  16. My City Report My City Report for Citizens 市民協働投稿サービス My

    City Report for citizens は、市民と自治体が協働してまちの課題に取り組 むことができる市民協働投稿サービスです 。 https://www.mycityreport.jp/ 市民協働投稿サービス / 道路損傷検出サービス My City Report for road managers 道路損傷検出サービス My City Report for road managers(は、これまで多くの自治体で行われていた、車 上からの目視による道路損傷確認業務を AI(人工知能)に置き換え、正確かつスピー ディな道路損傷個所検出を行い、業務の効率化を図るサービス My City Reportコンソーシアム事務局 • ⼈般社団法⼈社会基盤情報流通推進協議会 • 合同会社Georepublic Japan • 株式会社アーバンエックステクノロジーズ
  17. Geo +Python JP コミュニティ Geo と Pythonを中心として、地理空間情報、地域情報、機械学 習、ディープラーニング、自然言語処理、画像処理、データビジュ アライゼーションなどの情報交換や交流するためのコミュニティで す。

    PyConJP2019のポスターセッションの応募がキッカケで始まった コミュニティです GeoとPythonなので、Python以外の言語でも、もちろん参加可能 です。 Connpass: https://geopythonjp.connpass.com/ Discord: https://discord.gg/K9f3ygK
  18. GeoPython スイス北西部応用科学芸術大学 (University of Applied Sciences and Arts Northwestern Switzerland

    FHNW)やPyBaselが主催している年 次カンファレンス、2016年から開催さ れ、Python と Geo、そのツールキット とアプリケーションに焦点をあてて開催 されている GeoPython 2022 https://2022.geopython.net/ 2022年6月20日~22日 Basel, Switzerland & Online
  19. 地理空間情報系のコミュニティ • 位置情報データ ◦ OpenStreetMap(OSM)は、誰でも自由に地図を使えるよう、みんなでオープンデータの地理情報を作るプロジェクト ◦ OpenStreetMap <https://openstreetmap.jp/> ◦ プロジェクトには、誰でも自由に参加して、誰でも自由に地図を編集して、誰でも自由に地図を利用することが可能

    ◦ イベント:State of the Map Japan 2022 in Kakogawa <https://stateofthemap.jp/2022/> ▪ 2022年12月3日 (土曜日) 13:00 - 18:00 加古川商工会議所 • 位置情報アプリケーション ◦ FOSS4G(Free Open Source Software for GeoSpatial)<https://foss4g.org/>、オープンソースの地理情報ソフトウェア (GIS)群。オープンソースソフトウエアの地図利用に特化したもの ◦ OSGeo財団日本支部 <https://www.osgeo.jp/> ◦ イベント:FOSS4G 2022 Japan Online <https://www.osgeo.jp/events/foss4g-2022/foss4g-2022-japan-online> ▪ 2022年11月12日(土)〜2022年11月13日(日)
  20. プログラミング学園 Python部 - デジタルツイン Interface 2022年11月号から「別 冊1:プログラミング学園 Python 部」で「デジタルツイン」をテーマに 数回の予定で連載してます

    高校生向けのPython入門書とし て都市情報やLiDARやPLATEAU 等をやさしく紹介をしてます。 https://interface.cqpub.co.jp/ma gazine/202211/