项目简介
本项目是用于解析和可视化PLATEAU(CityGML)数据的Python模块及应用程序。能从CityGML数据中解析建筑、地表、道路等信息,通过Open3D或Blender Python进行3D可视化展示。项目最初在「東京23区から新しい世界を創るアイデアソン/ハッカソン」开发并获大赛冠军,目前支持处理公开的PLATEAU数据。
项目的主要特性和功能
- 数据解析:支持解析建筑(bldg)的LOD 0、1、2,以及地表(dem)、道路(tran),还能解析元数据和codelists定义。
- 数据缓存:对解析过的数据缓存,实现下次高速读取。
- 3D可视化:可将数据转换为Open3D的TriangleMesh或Blender的Object进行3D显示,支持LOD2纹理显示(速度较慢)。
- 数据输出:支持将数据输出为.ply文件。
- 实用命令:提供查看区画编号列表、查看元数据、查看codelists定义等命令。
安装使用步骤
安装
- 复制项目:
bash
- 进入项目目录并安装依赖模块:
bash cd plateaupy pip install -r requirements.txt
- 下载并安装Open3D v0.11.2:
bash pip install open3d-0.11.2-***.whl
下载PLATEAU数据
可以使用download_plateau.py
脚本下载数据:
bash
python download_plateau.py plateau-tokyo23ku-citygml-2020
若要查看数据集列表,可使用-h
参数:
bash
python download_plateau.py -h
还可以使用--basedir
参数指定下载和展开的目录。
使用查看器应用程序appviewer
- 创建数据路径链接(可选):
bash ln -s CityGML2020/plateau-tokyo23ku-citygml-2020 path_to_citygml
- 查看区画编号列表:
bash python appviewer.py -cmd locations
- 显示指定区画的建筑、道路、地面:
bash python appviewer.py -loc 533925
- 使用缓存数据高速启动:
bash python appviewer.py -loc 533925 -c
- 指定gml类型:
bash python appviewer.py -loc 533925 -c -k 0
- 显示LOD2纹理:
bash python appviewer.py -paths../CityGML_02 -k 0 -loc 53392633 -lod2texture
- 保存为.ply文件:
bash python appviewer.py -loc 533925 -c -plypath tmp
- 查看bldg内的元数据:
bash python appviewer.py -loc 533925 -c -cmd dumpmeta
- 查看codelists定义:
bash python appviewer.py -cmd codelists
使用Blender - Python
安装
参考blender/blendertest.sh
进行安装,确保Blender版本在2.8以上,安装必要模块:
bash
BLENDER_PYTHON=$BLENDER/2.91/python/bin/python3.7m
$BLENDER_PYTHON -m ensurepip
BLENDER_PIP=$BLENDER/2.91/python/bin/pip3
$BLENDER_PIP install --upgrade pip
$BLENDER_PIP install lxml open3d opencv-python
运行
bash
$BLENDER/blender --python [blender/blendertest.py](blender/blendertest.py) --python-use-system-env
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】