Python 3

CityGML変換ツール (citygml-convert-tools)

CityGMLは、地理空間データのため標準データフォーマットです。 XMLベースで定義されているCityGMLは、中間データフォーマットと言われているように利用サイドが使いやすい形式に変換して利用することを想定されている。 手軽にCityGMLファイルを変換できるツールを作成した

コードは出来るだけシンプルにしたかったので、サンプルコードとしてバッサリとコードは簡潔にしてます。
エラー処理やテスト等も省略している部分があります。何かの参考にしていただければ幸いです

about py_plateau module

$ python cct.py --version     

CityGML convert tools (CCT) v0.0.1

Features

  • リポジトリルートに配置されているcct.pyを利用することで、py_plateauモジュールを利用したCityGMLの変換が可能
  • 以下の機能が利用可能
    • CityGMLファイル → PLYファイル変換
    • CityGMLファイル → GeoJSONファイル変換
    • 建物(bldg)のみ対応
    • LOD0, LOD1, LOD2対応
    • テクスチャは非対応
    • [緯度経度]、[経度緯度]の変換対応
    • 建物(bldg)分割

※1 2D座標系に変換する場合も3D座標で[longitude, latitude, height]に変換します

Usage

Main
$ python cct.py --help

Usage: cct.py [OPTIONS] COMMAND [ARGS]...

  CityGML convert tools (CCT) v0.0.1

Options:
  --version                 Show the version and exit.
  -d, --debug / --no-debug  debug mode
  -v, --verbose             verbose mode
  --help                    Show this message and exit.

Commands:
  geojson  Convert CityGML file to GeoJSON file
  ply      Convert CityGML file to PLY file
CityGMLファイル → PLYファイル変換
$ python cct.py ply --help

Usage: cct.py ply [OPTIONS] FILENAME

  Convert CityGML file to PLY file

Options:
  -o, --output TEXT        output path name
  -s, --to-srid TEXT       output SRID(EPSG)
  -l, --lod INTEGER RANGE  output lod type  [0<=x<=2]
  -sp, --separate          separate the building data
  --help                   Show this message and exit.

Examples

$ python cct.py ply 53392633_bldg_6697_2_op.gml --lod=2 --to-srid=6677
CityGMLファイル → GeoJSONファイル変換
$ python cct.py geojson --help

Usage: cct.py geojson [OPTIONS] FILENAME

  Convert CityGML file to GeoJSON file

Options:
  -o, --output TEXT        output path name
  -s, --to-srid TEXT       output SRID(EPSG)
  -l, --lod INTEGER RANGE  output lod type  [0<=x<=2]
  -sp, --separate          separate the building data
  -lonlat, --lonlat        swap lon lat order
  --help                   Show this message and exit.

Examples

$ python cct.py geojson 53392633_bldg_6697_2_op.gml --lod=2 --to-srid=4326

Installation

Pythonとpoetryを利用します。

$ git clone git@github.com:GeoPythonJP/citygml-convert-tools.git
$ poetry install
$ poetry shell

Changelog

see the changelog.

Tests Data

3D都市モデル(Project PLATEAU)東京都23区のCityGMLの東京都大田区羽田空港三丁目データ ”53392633_bldg_6697_2_op.gml” のみで動作確認

License

MIT See thelicense document for the full text.

Modules

下記のモジュールを参考、使用しています。 各々のライセンスに従ってください。

Contributors

GitHub Twitter
homata @homata
nokonoko1203 @nokonoko_1203

CityGMLビューワー

CityGMLファイルを表示させる下記のツールがあります。

座標系のメモ

座標系の変換等をする場合の参考情報を記述します

CityGMLの座標系

  • 日本測地系2011における経緯度座標系と東京湾平均海面を基準とする標高の複合座標参照系: 6697
  • 日本測地系2011における経緯度座標系: 6668

日本の測地系

EPSG:6697

EPSG:6697というのは「JGD2011 + JGD2011 (vertical) height」という座標参照系でEPSG:6668(JGD2011)とEPSG:6695(JGD2011 (vertical) height)からなる座標系である

  • EPSG:6697: JGD2011 + JGD2011 (vertical) height 緯度、経度、標高 (EPSG:6668+6695)
    • EPSG:6668: JGD2011 緯度、経度
    • EPSG:6695: JGD2011 (vertical) height 標高単位:m
  • EPSG:6666: JGD2011 地心直交座標系 (X, Y, Z) 地球中心のXYZ 単位:m

日本測地系2011 平面直角座標系:6669-6687

系	EPSG (JGD2011)	区域
1	6669	長崎県、鹿児島県の一部
2	6670	福岡県、佐賀県、熊本県、大分県、宮崎県、鹿児島県の一部
3	6671	山口県、島根県、広島県
4	6672	香川県、愛媛県、徳島県、高知県
5	6673	兵庫県、鳥取県、岡山県
6	6674	京都府、大阪府、福井県、滋賀県、三重県、奈良県、和歌山県
7	6675	石川県、富山県、岐阜県、愛知県
8	6676	新潟県、長野県、山梨県、静岡県
9	6677	東京都の一部、福島県、栃木県、茨城県、埼玉県、千葉県、群馬県、神祭川県
10	6678	青森県、秋田県、山形県、岩手県、宮城県
11	6679	北海道の一部
12	6680	北海道の一部
13	6681	北海道の一部
14	6682	東京都の一部
15	6683	沖縄県の一部
16	6684	沖縄県の一部
17	6685	沖縄県の一部
18	6686	東京都の一部
19	6687	東京都の一部

PLATEAU関連情報

PLATEAU関連情報のメモ

仕様と変換ツール類

CityGML

i-UR

3dcitydb

TBD

CityJSON

TBD

OpenStreetMap

便利なツール

その他

関連情報のメモ

3D都市空間モデルビューワー

3D都市空間モデルビューワーのサンプルです