1

我正在开发一个基于激光雷达数据从头开始编写 LAS 文件的应用程序。以前,该应用程序是使用 LibLAS 构建的,并且运行良好。但是,LibLAS 已停产,他们建议将其替换为 PDAL,后者是用于处理点云数据的更通用的库。

到目前为止,除了 LAS 标头之外,几乎所有内容都可以轻松地从 LibLAS 转换为 PDAL。以前,在 LibLAS 中,我们将定义一个 liblas::header,我们将在其中添加诸如 LAS 版本等数据。然后我们将在写入文件时使用该标头,它将部分定义文件的写入方式。像这样:

liblas::Header header;
header.SetVersionMajor(1);
header.SetVersionMinor(2);
// ... Add more header data, add some points to the las file, etc.
liblas::Writer writer;
writer.SetHeader(header);
writer.WriteHeader();
// Write the rest of the file

现在,使用 PDAL,我似乎找不到任何东西可以将标题添加到我正在编写的文件中。经过无数次谷歌搜索后,我似乎找不到任何可以帮助我解决这个问题的东西。

我找到了这个教程,但它没有提到标题:https ://pdal.io/development/writing.html

我找到了本教程,但它使用了正在读取的文件的标题,这不是我想要的:https ://pdal.io/api/transition/index.html

4

1 回答 1

0

我是一个完全的初学者,但这是我学到的:

我认为“选项”是关键。看看你提到的教程,它有选项,但它所做的一切都是设置文件名:

Options options;
options.add("filename", "myfile.las");
writer->setOptions(options);

您可以使用这些选项做更多事情。例如,在我创建的一些代码中:

options.add("scale_x",0.001);
options.add("scale_y",0.001);
options.add("scale_z",0.001);
options.add("offset_x","auto");
options.add("offset_y","auto");
options.add("offset_z","auto");
options.add("a_srs","EPSG:32611");

因此,我认为如果您进一步研究,您也许可以设置您希望的所有标头参数。

于 2021-11-28T05:33:40.903 回答