#point-cloud #geospatial #lidar #data-points #read-write #scanner #laserscanning

e57

一个用于读取和写入带点云和相关图像数据的 E57 文件的纯 Rust 库

25 个版本

新增 0.11.4 2024 年 8 月 17 日
0.11.2 2024 年 6 月 2 日
0.10.5 2024 年 3 月 18 日
0.10.3 2023 年 12 月 6 日
0.4.0 2023 年 3 月 26 日

#268 in 地理空间

Download history 128/week @ 2024-04-27 66/week @ 2024-05-04 130/week @ 2024-05-11 148/week @ 2024-05-18 192/week @ 2024-05-25 362/week @ 2024-06-01 134/week @ 2024-06-08 113/week @ 2024-06-15 108/week @ 2024-06-22 82/week @ 2024-06-29 85/week @ 2024-07-06 89/week @ 2024-07-13 37/week @ 2024-07-20 127/week @ 2024-07-27 118/week @ 2024-08-03 107/week @ 2024-08-10

每月 412 次下载
用于 e57-to-las

MIT 许可证

235KB
5K SLoC

E57 Rust 库

Build Status Crates.io Documentation No Unsafe License: MIT Dependencies

一个用于读取和写入 E57 文件的纯 Rust 库。无不安全代码,无冗余依赖。

查看 工具文件夹,其中包含一些代码示例,展示了如何使用此库。

E57 文件格式

E57 文件格式用于存储点云和相关图像数据。它是一个中立的文件格式,不受任何特定供应商或设备类型的限制,因此通常用作不同应用程序和组织之间的交换格式。通常用于由地面和手持式激光扫描仪生成的数据。它还可以处理由机载激光扫描仪生成的数据,但对于这种情况,LAS/LAZ 文件格式更常用。

变更日志

阅读 CHANGELOG.md 文件,以获取所有已发布版本及其对应更改的列表。

已知限制

  • 不支持点分组
  • 忽略索引数据包
  • 不支持字符串类型的点属性

请报告不兼容的文件!

如果您发现一个 E57 文件可以用其他软件读取,但在此软件包中产生错误,请通知我并在 Github 上创建一个 issue。同样适用于由此库创建且无法由此库或任何其他软件正确读取的 E57 文件。我希望此库能与尽可能多的文件和应用一起工作!

理想情况下,您可以提供文件本身的链接。如果不可能,请包括完整的错误信息和生成文件的软件名称。如果可能,请还包括文件的XML部分。

动机

E57文件格式已被广泛应用于交换地面激光扫描仪产生的数据。然而,能够读写此文件格式的实现并不多。大多数应用程序使用原始的C++参考实现(见http://www.libe57.org/)或由Andy Maloney维护的分支(见https://github.com/asmaloney/libE57Format)。

我认为有一个没有不安全代码的纯Rust解决方案会很好。在我看来,Rust是解析不受信任数据的绝佳选择,尤其是如果您计划在云后端等地方使用代码。

如果您想在Rust项目中处理E57文件,这个crate也将避免所有与集成C++代码相关的问题。

代码覆盖率

此存储库中包含的Visual Studio Code任务包含一些代码覆盖率测量的任务。要运行它们,您需要使用以下命令安装grcov和LLVM工具:cargo install grcov以及rustup component add llvm-tools

依赖关系

~175KB