Skip to content

A proof-of-concept tool for converting PLATEAU's 3D city models (CityGML) of Japan into various geospatial formats, including 3D Tiles, MVT, and GeoPackage.

License

Notifications You must be signed in to change notification settings

MIERUNE/plateau-gis-converter

Repository files navigation

PLATEAU GIS Converter

Test Libraries Test GUI App Codecov FOSSA Status

A proof of concept GUI and CLI tool for converting PLATEAU's 3D city models (CityGML) of Japan into various geospatial formats, including 3D Tiles, MVT, and GeoPackage.

1. 概要

本リポジトリでは、FY2023 の Project PLATEAU「都市デジタルツインの実現に向けた研究開発及び実証調査業務」(内閣府/研究開発とSociety5.0との橋渡しプログラム(BRIDGE))において開発された「PLATEAU GIS Converter」のソースコードを公開しています。

PLATEAU GIS Converter は、PLATEAUが提供するCityGML形式の3D都市モデルを他の一般的なGISデータ形式に変換するソフトウェアです。

東京都23区の CityGML (v2) を読み込んで、3D Tiles に変換した例:

ソフトウェアのメイン画面:

ソフトウェアのメイン画面

PLATEAU の標準仕様に準拠した CityGML 2.0 形式の3D都市モデルは、専門のGISツールやCLIコマンドを用いて他のGIS形式に変換して用いられることが一般的ですが、一般ユーザーが簡易に利用できる汎用ツールは存在しません。そのため、流通や活用の範囲が専門家や技術者に限られていました。

2. 「PLATEAU GIS Converter」について

「PLATEAU GIS Converter」を利用することで、3D都市モデルを一般的なGIS形式に変換して、様々な分析・開発を行うことができます:

  • GeoPackage 形式による QGIS 等での解析
  • Mapbox Vector Tiles (MVT) 形式による、大規模データのWeb等での高速描画
  • 3D Tiles 形式による Cesium 等での可視化
  • KML 形式による Google Earth での可視化
  • など

3. 利用手順

  • ソフトウェアの最新版は、GitHub リポジトリの Releaseページ からダウンロードしてください。
  • 詳しい利用方法については、こちらのマニュアルをご覧ください。

4. システム概要

本ソフトウェアの機能は以下の通りです:

  • 3D都市モデル(CityGML)の以下の形式への変換:
    • 3D Tiles
    • Mapbox Vector Tiles (MVT)
    • GeoPackage
    • GeoJSON
    • Shapefile
    • KML
    • CZML
    • Minecraft
    • glTF
    • Wavefront OBJ
  • 複数の入力ファイルをもとにした変換
  • 属性名マッピングルールの取り込み
  • 指定された座標参照系に変換して出力(一部形式で対応)

5. 利用技術

利用技術は以下の通りです。

内部ロジック:

  • 都市モデルの解析および他形式への変換はすべてプログラミング言語 Rust で実装しています。多くの処理はゼロから独自に実装したものです。

ユーザインタフェース (UI):

  • デスクトップアプリケーション構築フレームワーク: Tauri
  • Web UI構築フレームワーク: Svelte

6. 動作環境

本ソフトウェアは以下の環境で動作することを想定しています:

  • OS:
    • Windows 10 以上 (Intel)
    • macOS (Apple Silicon, Intel)
  • CPU:
    • 特に制限はありませんが、出力形式や変換するデータ量によっては、CPU性能が処理時間に大きく影響します。
  • メモリ:
    • 特に制限はありませんが、出力形式や変換するデータ量によっては、変換時に多くのメモリを要します。
  • ネットワーク:
    • インターネット接続は不要です。
  • ストレージ:
    • インストールには30MB程度の空き容量が必要です。
    • データ変換時には、変換元データと同等ないしそれ以上の空き容量が必要です。

7. 本リポジトリのフォルダ構成

7.1. 外部リポジトリ

8. ライセンス

  • 本ソフトウェアは、MITライセンスのもとで提供されるオープンソースソフトウエアです。
  • ソースコードおよび関連ドキュメントの著作権は国土交通省および開発者に帰属します。
  • 本ソフトウェアの開発は株式会社MIERUNEが行っています。

9. 注意事項

  • 本リポジトリおよびソフトウェアは Project PLATEAU の参考資料として提供しているものです。動作の保証は行っておりません。
  • 本リポジトリおよび本ソフトウェアの利用により生じた損失及び損害等について、開発者および国土交通省はいかなる責任も負わないものとします。
  • 本リポジトリの内容は予告なく変更・削除する場合があります。

10. 参考資料

Development (開発者向け情報)

Build & Run

CLI

cd ./nusamai/
# Debug (非常に低速)
cargo run -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson
# Release (最適化コンパイル)
cargo run --release -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson
# Release (LTO有効のプロダクションビルド、最高速)
cargo run --profile release-lto -- ~/path/to/PLATEAU/15100_niigata-shi_2022_citygml_1_op/udx/bldg/*.gml --sink geojson --output foobar.geojson

GUI

Dev:

cd ./app/
npm install
RUST_BACKTRACE=1 npx tauri dev

Build:

cd ./app
npx tauri build

Test

  • Test & Lint
cargo clippy --all-targets --all-features
cargo test --workspace --exclude app --all-features

Coverage

Codecov: https://app.codecov.io/gh/MIERUNE/plateau-gis-converter

cargo llvm-cov --workspace --exclude app --html --all-features