本人是学测绘遥感的,最近在研究激光点云数据库的建立。我想问下这里的高手,根据我的问题讲述,觉得没有必要建立数据库,对存储和查询效率有没有提高。
    首先,大家可能不是很了解激光点云,我介绍下激光点云数据。一个激光扫描仪发出很多束激光,仪器接受回波,记录反射处点的x,y,z坐标,外加一个强度指数;存储的点云数据文件只存储x,y,z和强度i。对成千上百万的点坐标进行面拟合,即可对扫描的物体进行三维重建。
    实际应用当中由于点的数据量极大,一般要按坐标范围对其进行划分成块;一般每次读取都是读出一块数据。以前都是用vc编程,读取原始数据文件后按一定算法对其划分成块,分别存储在不同子文件中等待调用。听说oracle数据库中有“空间数据模块”,但是一般用在地理信息系统中比较多,本人也不知道有没有必要用它来搞激光点云数据。只是觉得激光点云数据结构较简单,查询方式也较单一。
    请高手发表下意见(1)有没有必要用oracle数据库,尤其是空间数据库。(2)与vc编写文件读取和分块相比,数据库的方案有什么优势。(3)运行效率会比vc编写的程序效率高一些吗?

解决方案 »

  1.   

    个人觉得用数据库是可行的。因为Oracle数据库每秒可以处理10W条记录。所以只要你数据库建得合理的话肯定会在你的速度上有所提高。
      

  2.   

    我是做GPS这个行业的,虽然GIS有所接触,但是和GIS相差比较远,GPS最关心的是经纬度,而你也只关心,XYZ,以及强度。
    以你描述的来看,觉得很有必要用ORACLE,我的考虑是这样的:
    1:数据量大小考虑,你的数据量也是非常巨大的,ORACLE的大数据管理机制比较健全
    2:查询效率考虑,ORACLE有空间索引,能够对空间位置更快的查询处理
    3:扩展考虑:ORACLE提供健全的产品功能使用,如果使用VC,自己需要考虑很多细节,不能专注于业务和功能
    当然:缺点就是功能块的产品,无法自己修改某些东西,你懂的
      

  3.   

    与vc编写文件读取和分块相比,数据库的方案有什么优势。开发Oracle的人的技术水平 - 你的技术水平 = 数据库的优势。够牛就自己写,Oracle要钱的。
      

  4.   

    我不建议使用Oracle Space,我做过CAD逆向工程,相比你的遥感数据,估计数据量不会比你少,只不过我是中小尺度,你是大尺度;你的精度视情况估计在mm等级,我的精度一般在5~10μm。在3D还原时为加快速度,一般使用内存映像文件或数据分块技术,对于逆向工程来说一般必须保证二阶连续,数据处理量很大。Oracle Space一般与GIS相结合使用,即使这样,实际工程应用也不多。