背景
庄子在两千多年前就提出“一尺之锤日取一半万世不竭”, 说的是物体是可以被无限分割的, 反过来说, 我们的时空是由无限小的东西组成.
而今天量子理论体系下, 能量不是连续的, 由不可分割的量子组成.
不管谁对谁错, 我要表达的是, 我们可以从宏观去看这个世界, 也可以从微观去看这个世界, 尺度能做到做精细取决于当今的科技.
例如, 在表达一个建筑物的时候, 我们可以用一副照片就可以, 也可以全方位无死角的拍摄, 拍摄又有分辨率的差别
除了照片, 位置, 材质, 内部结构等等也是建筑物的表达
所以要表达一个东西, 和我们想把它表达到多细也是有莫大关系的. 激光点云是目前在3D打印、自动驾驶、测绘、3D城市、VR等领域非常常见的技术, 甚至Iphone手机都内置了激光雷达.
很显然激光点云的信息量非常巨大, 例如它的每个点包含的维度多(如三原色、材质、时间、位置等等)、且维度需要动态弹性
场景:
- 3D打印、自动驾驶、测绘、3D城市、VR.
- 激光雷达传感器.
挑战:
- 数据量大, 要求高效写入和查询
- 每个点存储的信息量大: 维度多(pcid表达格式,如三原色、材质、时间、位置等等)、且维度需要动态弹性, 存储和查询不方便
- 存储空间消耗、计算挑战
- 传统采用文件存储,
- 数据效率低查询(为了得到一部分数据,您需要读取整个文件)
- 无法并发性(一次只能有一个用户修改点/读取点)
- 文件往往会有很多重复(每个工人都有自己的私有版本),没有数据的安全性(文件可能会被处理破坏,很难管理谁访问什么)
- 很难同时使用几个不同的点云
- 难以与其他空间数据(矢量、栅格、图像)一起使用点云
PG 解决方案:
- 支持点云插件
- 包含点云类型、patch类型、支持空间属性、附加属性
- 支持自定义点云格式
- 包含相应的索引和操作符接口
- 自动压缩存储(二进制)
- 支持高效写入、查询
pgPointcloud提供了一种在postgres数据库中有效存储点的方法。
实际上,pgpPointCloud存储点组(pcPoints),称为pcPatch,存储点组允许有效地压缩数据。
这个补丁有一个边界框,PostGIS空间特性可以使用它来大大加快查询速度。
pgPointcloud允许高效地查询非常大的点云。可以使用空间标准(哪些点在这个区域中)和点属性标准(between and)。
点云位于服务器中,它们可以用于处理或可视化,或流。
参考
https://pgpointcloud.github.io/pointcloud/concepts/index.html
《无人驾驶背后的技术 - PostGIS点云(pointcloud)应用 - 1》