吴清勇 冯成武
摘 要:三维城市模型(3D City Models,3DCM) 作为城市的三维逼真描述,为城市建设和规划等相关领域提供了具有真实表现力的应用模型。本文针对关系数据库管理三维建模数据的一些问题,通过设计非关系MongoDB数据库系统,实现对纹理、模型数据的快速更新,并支持各类建模数据的快速出入库、快速更新、快速检索,并通过实验支持本文数据库系统的可用性。
关键词:城市 三维建模 數据库 检索
中图分类号:P208 文献标识码:A 文章编号:1674-098X(2020)04(c)-0011-02
城市三维建模是我国数字城市建设的重要内容。城市建筑物繁多、地形复杂,现有数据管理方式普遍存在外业数据管理难度大,数据冗余等问题。同时因数据格式各异,难以采用统一管理方式,大量建模数据一般以文件形式独立保存或简单利用关系数据库保存,缺乏海量三维数据管理的支持,数据的整理、查询等占用大量时间。
本文针对当前三维建模数据管理的一些问题,设计基于模型库、纹理库的三维建模数据库建库方案,并对建库方案进行实现。
1 三维建模数据库现状
关系型数据库采用表结构组织数据,对海量数据管理的数据库结构复杂,应用效率低,为简化数据读取流程,提供统一便捷的数据源,有必要采用合适数据管理方式对数据集成,以便建模人员建模。非关系数据库MongoDB和关系型数据库有本质区别,MongoDB以BSON格式组织数据,BSON格式类似于JSON格式,不存在关系数据库表结构的限制,可方便存储数据本身,且效率很高。
2 三维建模建库方案设计
2.1 数据库总体设计
三维建模数据库系统包括源数据库、纹理库、模型库以及系统软硬件支撑环境组成。
数据库体系如图1所示。如图1,源数据库是系统的主数据库,纹理库和模型库是相对固定的库,纹理数据库是对纹理数据分门别类的保存,模型数据库存放常见模型,当源数据用到相关的纹理、模型时,可从纹理库、模型库直接获取,反之当有新纹理、模型时可导入纹理库、模型库。
2.2 数据存储方式及格式设计
2.2.1 纹理数据编码格式
三维建模纹理数据通常以类别存放,是纹理数据的库外部存放方式。纹理数据库主要由纹理数据库名、纹理类型、纹理顺序号等表列组成。纹理库按照纹理编码结构存放纹理,且支持纹理更新、调用。更新时根据纹理的类型,结合已有的顺序号顺次自动赋予新顺序号,顺序号作为纹理在纹理库的唯一标识,支持通过顺序号找到该文件来应用。
2.2.2 模型数据编码格式
模型与纹理是匹配的,三维建模实质也是纹理映射到模型的过程,因此模型库的设计原理与纹理库一致。模型数据库由数据库名、类型、顺序号等表列组成。模型的组织方式与纹理类似,通过类型判定模型的归属,模型库为模型分配唯一的模型顺序号,支持通过顺序号检索出模型来应用。
2.2.3 源数据库数据编码格式
根据纹理库与模型库的特点,源数据库中文件是以工程来组织的,之所以选择按工程管理数据,是为了属于同一工程的模型与纹理的准确匹配,源数据库可以从纹理库、模型库直接调用数据,源数据库中的数据也可以导入到纹理库、模型库中。
2.3 数据字典设计
纹理在纹理库中按类型分门别类存放,纹理库为每个类型分配唯一的编号,当需要使用某个纹理时,可按照编号从纹理库中检索出来。模型数据结构与纹理结构设计原理类似。
2.4 数据集合与接口设计
数据集的设计考虑物体空间参考、平均大小及数量,此外还要结合当前三维建模的操作流程及习惯,建立起对建模数据,例如模型、纹理、DLG数据、DEM数据的工程化管理,如图2。每个三维建模场景作为一个工程管理,每个工程都包含3类基本数据集合,即影像数据集、LiDAR点云数据集、矢量数据集。通过可视化数据库系统管理数据,并支持按列表视图、树状视图等显示方式查看,查看信息包括文件名,文件类型,文件坐标,上传时间等。建模数据的存储、更新及各类检索方式,以接口提供给外部系统调用。
3 三维建模数据库实现
3.1 建模数据库框架
数据库系统总体框架如图3所示。建模数据库分为数据管理层、数据库层、数据应用层。数据入库实现模型、纹理以封装文件夹形式整体导入,模型包含若干个模型立面,纹理包含若干纹理面片。数据查询实现属性检索与地理空间检索两种方式,属性查询允许用户按属性信息查找文件,地理空间查找允许用户按地理坐标(X,Y坐标)和查询半径建立缓冲圆查找文件。此外,本文通过数据库系统为每个数据自动生成keyvalue键值对形式的索引,相比关系型数据库,可直接按key定位到数据,检索效率提升明显。
3.2 检索数据与模型关联
建模数据库系统支持查询到的影像添加到指定的模型,实现检索数据与模型的快速关联,对已有模型或新建模型快速更新。支持设定查询距离和检索影像个数,对已有模型或新建模型实时更新,方便外业采集数据及时导入到相应模型中,实现数据与模型关联。
4 数据库系统实验
为验证数据库系统的入库效率,进行如下数据出入库测试,测试机器配置如下:(1)CPU:Intel(R)Core(TM)2Duo,2.66GHz;(2)内存:16GB;(3)操作系统:Windows7UltimateX64;(4)测试数据库:MongoDB2.6.3、MySql、SQLServer2008。实验数据:若干平均大小为5M的街景系统文件,若干SWDC-5数字航空倾斜摄影仪拍摄影像,平均大小为160MB。不同数据库导入平均大小为6MB的数据时,随着数据量增大,SqlServer变化较大,MongoDB和MySql比较平稳,用时较少,导出同样数据时,本文系统用时最小。当导入相同数量不同大小的数据时,本文设计的MongoDB数据库系统耗时最少,导出数据时情况类似,本文数据库系统耗时最少。
5 结语
本文针对关系数据库管理三维建模数据的一些问题,通过设计非关系MongoDB数据库系统,实现对纹理、模型数据的快速更新,并支持各类建模数据的快速出入库、快速更新、快速检索,并通过实验支持本文数据库系统的可用性。
参考文献
[1] 许娇龙,李军.基于City GML的三维城市模型实时可视化研究[J].系统仿真学报,2012(6):25-32.
[2] 周松涛.基于关系数据库的三维模型库技术[J].测绘信息与工程,2005,30(6):30-31.
[3] 李成名,李华,赵占杰,等.CH/T 9016-2012三维地理信息模型数据生产规范[S].北京:测绘出版社,2013.