../_images/logo_liblas.png

libLAS Quickstart

LIBLAS是一个C/C++库,用于阅读和编写非常常见的LAS激光雷达格式。ASPRS LAS格式是一种顺序二进制格式,用于存储来自激光雷达传感器的数据,并由激光雷达处理软件进行数据交换和存档。

激光雷达(Light Detection and Ranging)是一种高精度的距离探测技术,很像一种利用激光作为电磁辐射的雷达系统。LiDAR系统的产品之一是“点云”数据产品,它可以被概念化为一系列点测量,代表从传感器到返回发射的距离。这些点云数据的常用存储格式是ASPRS-LAS格式。

处理

liblas的“命令行实用程序”为liblas提供了大量面向用户的操作软件,尽管底层liblas库是它们的动力。下面列出了您可能希望对LAS数据执行的常见操作,以及完成这些任务所需的实用程序和方法。演示数据可在 /home/user/data/las/srs.las

重新投影LAS文件

所有LAS数据都在某种坐标系中,即使在LAS文件中没有描述该坐标系。对于地面LAS数据,这些坐标系描述通常映射到 EPSG 数据库。关于坐标系的另一个信息来源https://spacealreference.org。

lasinfo --no-check srs.las

注解

--no check选项告诉lasinfo只打印文件的头信息,而不扫描所有点。对于一个10点的文件,这当然不是什么大问题,但是对于一个5000万或5亿点的文件,如果您只需要头信息,就不需要等待数据的完整扫描。

我们的“lasinfo”调用告诉我们 srs.las 文件位于UTM北区17坐标系中:

PROJCS["WGS 84 / UTM zone 17N",
    GEOGCS["WGS 84",
        DATUM["WGS_1984",
            SPHEROID["WGS 84",6378137,298.257223563,
                AUTHORITY["EPSG","7030"]],
            AUTHORITY["EPSG","6326"]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433],
        AUTHORITY["EPSG","4326"]],
    PROJECTION["Transverse_Mercator"],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",-81],
    PARAMETER["scale_factor",0.9996],
    PARAMETER["false_easting",500000],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]],
    AUTHORITY["EPSG","32617"]]

既然我们知道了输入坐标系,就可以决定将数据重新投影到什么位置。在我们的第一个例子中,我们将使用古老的板carr_e非坐标系, EPSG:4326 .

las2las srs.las --t_srs EPSG:4326

我们的过程成功了,但在快速检查数据之后, lasinfo output.las 我们看到一个问题:

...
Scale Factor X Y Z:          0.01 0.01 0.01
Offset X Y Z:                -0.00 -0.00 -0.00
...
Min X, Y, Z:                -83.43, 39.01, 170.58,
Max X, Y, Z:                -83.43, 39.01, 170.76,

这个 srs.las 文件的x、y和z坐标的精度为0.01,即小数点后两位。对于UTM数据,这是可以的,因为它意味着1 cm的隐式精度。对于未投影板carr_e坐标系的小数点数据,会使我们失去一堆精度。我们需要将比例值设置为在我们的情况下能够保持更高精度的值:

las2las --t_srs EPSG:4326 srs.las --scale 0.000001 0.000001 0.01

“lasinfo”的另一个快速检查给了我们一些我们更满意的东西:

...
Scale Factor X Y Z:          0.000001 0.000001 0.01
Offset X Y Z:                -0.000000 -0.000000 -0.00
...
Min X, Y, Z:                -83.427598, 39.012599, 170.58
Max X, Y, Z:                -83.427548, 39.012618, 170.76

将LAS文件输出到文本

las2txt input.las --parse xyzti