论文部分内容阅读
机载激光扫描系统(Light Detection and Ranging,LiDAR)作为一种主动式对地观测系统,具有自动化程度高、扫描速度快、受天气条件影响小等特点且能够获取到高密度、高精度的三维点云数据,因此在数字城市建设、地形测绘、海岸带监测等领域受到极大关注。而随着新应用领域的出现和新技术的快速发展,点云本身发生了巨大变化,主要体现在数据规模海量化、数据结构多样化等方面。现有的点云管理软件如Cyclone6.0、Polywork和Geomagic等,都侧重于解决点云建模问题,对于海量点云支持不足,主要原因是这些软件不具备高效的点云组织管理方法。针对以上问题,本文以海量非结构化机载LiDAR点云数据作为研究对象,以其存储方式为突破口,重点探索点云的组织管理。主要研究内容和创新点如下:(1)使用MongoDB管理机载LiDAR点云数据。以往基于文件和关系型数据库的点云管理系统,在海量数据的存储、访问、非结构化数据管理和扩展性等方面都存在难以克服的问题。本文应用MongoDB解决了海量机载LiDAR点云存储去结构化的问题,并充分挖掘其性能,以指导点云空间索引的设计工作。(2)设计了海量点云基于MongoDB的多层索引,其性能超越了多数基于内存的索引方法。首先以网格划分点云的二层空间并进行Hash编码,使用MongoDB的B树索引对二级索引码进行组织,形成基于空间网格的Hash码与B树的混合索引方法。考虑到应用中点云区域查询优先级高于单点查询的事实和Mongo DB的查询特性,利用JSON格式对点云建立了第三层存储结构,设计了点云基于MongoDB的多层索引方法,提高了区域查询效率。通过与传统索引方式的对比实验,证明此法具有更高的点云查找性能。(3)优化海量点云可视化性能。在完成了点云存储和索引的基础上,综合利用基于视点的数据裁剪、“5-5-5”动态调度策略、LOD技术、多线程和OpenGL等技术,实现了海量点云在普通PC上的高效检索和实时快速可视化,保证了海量点云漫游的流畅性和平滑性。在上述理论和实践研究的基础上,选择Linux Ubuntu14.04作为开发平台,利用C语言和Mongo-C-Driver1.2.1,结合OpenGL图形库,开发了海量机载LiDAR点云数据可视化系统,验证了本文点云数据组织管理方法的有效性和优越性。