2. Leica点云数据格式与组织

在Leica点云质量控制流程中,数据格式与组织方式决定了后续检查、转换和验收能否顺利进行。Leica Cyclone、Register 360、Infinity 等软件输出的点云可能以 PTX、E57、LAS/LAZ、RCP 等格式存在,不同格式对坐标系、强度、颜色、扫描仪位置、时间戳等信息的承载能力差异很大。若在格式转换或交付时忽略这些差异,轻则丢失属性,重则导致坐标错位、模型无法配准。因此,本节围绕“格式能力—转换策略—坐标系定义—元数据检查”四个关键环节展开。

一、常见格式的能力与适用场景

PTX 是 Leica 及多数扫描仪常用的中间交换格式,采用 ASCII 文本存储,头部包含扫描仪位置、旋转矩阵和行列数,点记录为 X Y Z Intensity R G B。它的优点是结构简单、便于人工查看,缺点是文件体积大、不支持多扫描站组织、无标准元数据描述,通常用于单站或小范围数据交换。

E57 是 ASTM E2807 标准定义的三维点云交换格式,采用二进制压缩存储,可同时容纳多个扫描站、点云、图像和扩展元数据。E57 能记录每站的原点、旋转、坐标系定义以及点属性,是 Leica 项目跨平台交付的首选。但 E57 对坐标系语义的表达依赖写入方是否规范,若写入时未明确 CRS,读取端可能默认按局部坐标处理。

LAS/LAZ 是 ASPRS 定义的激光雷达点云标准格式,LAZ 为无损压缩版本。LAS 1.4 支持 WKT 坐标系描述、分类码、强度、回波、GPS 时间等,适合与 GIS、测绘成果对接。其局限在于对扫描仪站心、旋转矩阵等 Leica 专有信息支持较弱,转换时需通过 Extra Bytes 或 VLR 补充。

RCP 是 Autodesk ReCap 的项目格式,常用于 Revit、Civil 3D 等 BIM 环境。RCP 本身是索引容器,实际点数据存于 RCS,支持多站合并和坐标显示,但它是封闭格式,元数据可读性差,不适合作为归档或跨平台交换的原始交付格式。

Leica点云常见格式能力与转换路径 PTX ASCII · 单站 含旋转矩阵/站心 无标准CRS元数据 E57 二进制 · 多站 支持图像/扩展元数据 跨平台交换首选 LAS / LAZ ASPRS标准 · 压缩 WKT/分类/回波/GPS时间 站心信息需VLR补充 转换与组织核心 ① 坐标系定义与传递 ② 站心/旋转矩阵保留 ③ 强度/颜色/分类映射 ④ 元数据完整性校验 (转换前先确认目标格式能力) RCP / RCS BIM/Revit环境 多站合并索引 封闭格式 · 元数据弱 E57(交付) 多站+元数据完整 适合归档与验收 需写入明确CRS LAS/LAZ(GIS) 投影坐标+分类 适合地形/断面分析 注意站心信息丢失 转换 转换 转换 输出 输出 输出

二、格式转换的关键操作与参数

以 Leica Cyclone 导出 E57 为例,转换前应确认项目已完成配准并处于目标坐标系。在 Cyclone 中打开已配准的 ModelSpace,选择 File → Export → E57,弹出对话框中需关注三项:一是“Coordinate System”应选择项目实际使用的坐标系,如“WGS 84 / UTM zone 50N”或本地工程坐标系;二是“Include Scanner Positions”应勾选,以保留站心;三是“Point Attributes”中强度、颜色、分类按需勾选。若目标为 LAS,则需在导出前将点云转换到投影坐标系,并在 LAS 头中写入 WKT。

从 E57 转 LAS 时,常用 PDAL 或 LAStools。以 PDAL 为例,管道配置如下:

{
  "pipeline": [
    { "type": "readers.e57", "filename": "scan.e57" },
    { "type": "filters.reprojection",
      "in_srs": "EPSG:32650",
      "out_srs": "EPSG:32650" },
    { "type": "writers.las",
      "filename": "scan.laz",
      "compression": "laszip",
      "minor_version": 4,
      "global_encoding": 16,
      "scale_x": 0.001, "scale_y": 0.001, "scale_z": 0.001 }
  ]
}

其中 scale 决定坐标存储精度,0.001 表示毫米级,适合建筑扫描;若为地形扫描可放宽至 0.01。global_encoding 设为 16 表示写入 WKT 坐标系。转换完成后应检查 LAS 头中的 X/Y/Z 范围是否与源数据一致,避免因偏移量或缩放导致坐标跳变。

三、坐标系定义与一致性检查

坐标系定义是点云质量控制的红线。Leica 项目常见三种坐标状态:扫描仪局部坐标、项目配准坐标、国家/工程坐标。局部坐标以扫描仪为原点,单位米,无 CRS;配准坐标通过靶球或云对云配准得到,仍可能无 CRS;只有明确指定 EPSG 或 WKT 后,才具备地理参考意义。

检查时先看元数据中的 CRS 字段。E57 可用 pye57 读取 header 中的 coordinateMetadata;LAS 可用 lasinfo 查看 WKT 和 VLR。若 CRS 为空,需回溯配准报告中的控制点坐标,判断实际坐标系。若同一项目不同站点的 CRS 不一致,应统一重投影后再合并,不能直接拼接。

注意:PTX 和 RCP 通常不携带标准 CRS。PTX 头部只有扫描仪位置和旋转矩阵,RCP 的坐标显示依赖 ReCap 项目设置。将 PTX 直接转 LAS 而不指定 CRS,会得到“有坐标数值、无坐标含义”的假地理参考数据。

四、元数据完整性检查清单

元数据完整性直接决定点云能否被验收方正确读取。建议在交付前逐项核对以下内容,并形成检查记录:

检查项 PTX E57 LAS/LAZ RCP
坐标系(CRS/WKT) 无 可写入,需确认 WKT/VLR,需确认 项目设置,弱
扫描站心/旋转 有 有 需VLR补充 内部保留
强度 有 有 有 有
RGB颜色 有 有 需额外维度 有
分类码 无 可扩展 有 无
时间戳/GPS时间 无 可扩展 有 无
点数量与范围 头部行列数 有 有 有

检查时还应关注点数量是否与源数据一致、坐标范围是否合理、是否存在 NaN 或无穷值。对于 E57,可用 pye57 读取 scan_count 和每站 point_count;对于 LAS,可用 lasinfo -i scan.laz -stdout 查看 point count、min/max 和 scale factor。若发现点数量明显减少,应检查转换时是否误用了抽稀或过滤。

实用建议:建立“格式—坐标系—元数据”三列检查表,每转换一次填写一次。例如:源 E57(EPSG:32650,含站心)→ 目标 LAZ(EPSG:32650,WKT 已写入,站心丢失)→ 结论:可用于地形分析,不可用于站心复核。这样在验收时能快速说明数据可用边界。

综上,Leica 点云格式转换不是简单的“另存为”,而是坐标系、站心、属性和元数据的再组织过程。只有先明确目标格式的能力边界,再规范写入 CRS 和关键属性,最后通过元数据检查确认完整性,才能保证点云在后续质量控制和成果验收中不因格式问题产生歧义。