激光雷达(LiDAR)数据格式
激光雷达类型众多,获取的数据形式多样,如全波形数据、光子计数数据、离散点云数据等,其中离散点云数据应用最为广泛。本文主要介绍几种常见的离散点云数据格式,如专门为存储点云数据设计的格式(LAS/LAZ、PTS/PTX、PCD 等),以及具备表达和存储点云能力的文件格式(计算机图形学领域的模型文件如 PLY、OFF 等)。
LAS/LAZ 格式
LAS(Laser File Format)是一种专门为三维点云数据设计的文件格式,由美国摄影测量和遥感学会(American Society for Photogrammetry and Remote Sensing,ASPRS)管理和维护。
- GitHub:LAS Specification
LAS 文件格式采用二进制存储,可以保存激光点 的三维坐标、强度、回波、RGB、扫描角等多种信息,是目前最为广泛使用的点云数据格式。LAZ 文件格式是 LAS 的无损压缩版本。
在 2019 年发布的最新版本 LAS 1.4 中,LAS 文件由公共文件头区、变长记录区、点数据记录区和可选的扩展变长记录区组成。
- 公共文件头区包含一些描述数据整体情况的记录,如点记录数、坐标边界;
- 变长记录区用来存储一些变长类型数据,如投影信息、元数据、波形数据包信息和用户应用数据等。
点数据记录了每个激光点的坐标和属性信息,LAS 1.4 格式支持 PDRFs(Point Data Record Formats)0 ~ 10 共计 11 种点类型。其中,PDRFs 6 ~ 10 为 ASPRS 推荐使用的点类型,PDRFs 0 ~ 5 主要用于兼容旧版本。每个 LAS 文件只能记录一种类型的点,在公共文件头区由“Point Data Format”字段标识。
LAS 文件中点坐标以长整型(4 字节)存储,相比直接采用双精度浮点型(8 字节)存储可以节省一半的存储空间。文件读写时,使用公共文件头区中的缩放因子和偏移量,对点数据记录区的长整型数值进行转换,得到真实坐标信息。
如果 LAS 文件包含波形数据包,可作为扩展变长记录(extended variable length record,EVLR)存储在所有点数据记录的末尾,以方便对其分离或实体化。EVLR 存储格式为无符号超长整型(8 字节),允许存储比变长记录(variable length record,VLR)更多的信息。
最后,由于 LAZ 格式采用了分块压缩方法减小文件的体积,因此会降低文件读写效率,主要用于对存储空间敏感而对读写效率不敏感的情况。
PTS/PTX 格式
PTX 和 PTS 是 Leica 扫描仪及配套软件使用的文件格式,均采用文本格式存储。PTX 格式采用了单独扫描的概念,每个文件中可以有一组或多组点云。一般每个扫描站点为一组,每组点云都提供了单独的头信息,包括行列数、扫描仪位置、扫描仪主轴和转换矩阵等。基于头信息和存储的点坐标,除计算激光点在统一坐标系中坐标外,还可以恢复每个激光点的扫描线信息。
PTS 格式不保存原始的扫描站点信息,相比 PTX 格式更为简单,第一行为点云数量,其后每一行为一个单独激光点信息,包括坐标、强度、RGB 等信息。
PCD 格式
PCD(Point Cloud Data)是用于点云处理的开源编程库 PCL(Point Cloud Library)的文件格式。PCD 有文本和二进制两种格式,能够存储和处理有序/无序的点云数据集,且支持 n 维点类型扩展。相比其他点云文件格式,PCD 能够最大限度适应并发挥 PCL 应用程序的最佳性能。
PCD 格式由文件头和点数据组成,文件头必须采用 ASCII 格式码保存,声明和存储了点云数据的数量、属性、类型等信息。点数据部分记录了点的坐标和属性,由文件头中的“FIELDS”字段可知每个点包含的维度和属性的名字。
模型文件格式
模型文件普遍具有良好的标准化和通用性,被许多软件或开源库支持,部分应用于点云文件的保存,常见的包括 PLY、OFF 等。
- PLY(Polygon File Format)是一种计算机图形学领域用于保存图 形对象集合的文件格式,采用文本或二进制存储。典型的 PLY 文件由顶点的 XYZ 坐标三元组列表和顶点列表索引描述的元素组成,包括文件头、顶点列表、面列表和其他元素列表。
- OFF(Object File Format)是一种使用多边形来表示模型几何形状的文件格式,同样采用文本格式存储。OFF 文件由文件头、顶点列表和多边形列表组成,每个多边形可以有任意数量的顶点,文件头中记录顶点、面片和边的数量。相比 LAS、PCD 等专门为点云设计的格式,模型文件格式除坐标外还能记录顶点间的拓扑关系以及其他一些属性信息,例如 PLY 数据格式可以记录 RGB、法向量等。
文本文件格式
除了上述有明确标准的文本格式外,文本文件凭借其广泛的兼容性也经常被用来保存点云数据。常用文本文件类型后缀包括 xyz、asc、neu、txt、csv 等。这类非标准化的文本文件灵活性较强,使用 ASCII 码按行存储点云,但读取时一般需要提前知道文件记录规则,否则无法正确解析。