Skip to content

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. 利用手順

4. システム概要

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

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

5. 利用技術

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

内部ロジック:

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

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

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

6. 動作環境

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

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

7. CLI のインストール手順(macOS / Linux)

Releaseページから、お使いの環境に合ったファイルをダウンロードしてください。

環境 ファイル名
macOS (Apple Silicon) nusamai-<VERSION>-aarch64-apple-darwin.tar.gz
Linux (x86_64) nusamai-<VERSION>-x86_64-unknown-linux-gnu.tar.gz
# 展開
tar -xzf nusamai-<VERSION>-<TARGET>.tar.gz

# インストール(いずれかを選択)
sudo install -m 755 nusamai /usr/local/bin/nusamai   # 全ユーザー向け
install -m 755 nusamai ~/.local/bin/nusamai          # ユーザー配下(要PATH設定)

macOSでの実行について

macOSでは初回実行時に「開発元を検証できません」と表示される場合があります。 以下のコマンドで隔離属性を削除してからインストールしてください:

xattr -d com.apple.quarantine nusamai

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

8.1. 当プロジェクトを基点とした外部リポジトリ

9. ライセンス

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

10. 注意事項

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

11. 参考資料

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

Enable the feature to download data from the map:

cd ./app
PUBLIC_ENABLE_PLATEAU_API=true 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

Documentation

ドキュメントのローカルプレビュー:

cd ./docs/
docfx docfx.json --serve

ビルド後、http://localhost:8080 でプレビューできます。

docfxのインストール:

# .NET Tool
dotnet tool install -g docfx

# または Homebrew (macOS)
brew install docfx

Authors(主要開発者)

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages