跳转到主要内容

4D点云数据变化检测库

项目描述

欢迎使用py4dgeo

logo

License: MIT GitHub Workflow Status PyPI Release Documentation Status codecov

py4dgeo是一个用于多时相和4D点云变化分析的C++库,具有Python绑定。

地形3D/4D点云在地球科学、环境、生态和考古科学、机器人学以及许多其他领域和应用中无处不在。使用激光扫描和摄影测量技术捕获此类数据的技术已发展成为标准工具。密集的时间序列地形点云越来越可用,需要自动分析的工具。此外,正在研究和开发考虑完整4D(3D空间+时间)数据的方法,需要以灵活的方式使这些方法可用于现有工作流程。

py4dgeo的主要目标是汇集并提供一个专门的、全面的Python库中的不同3D/4D变化分析方法。py4dgeo被设计为国际开源项目,可以集成到几乎任何支持Python的地理数据领域的3D和GIS软件中,例如作为插件。

py4dgeo正处于积极开发中。以下列出了提供的方法

🔨 py4dgeo提供的方法

  • M3C2算法 (Lague等,2013年) 用于双时态点云距离计算。概念和算法在James Dietrich的这篇教程中进行了解释,包括在图形软件CloudCompare中的应用。[教程链接]

  • M3C2-EP (M3C2-EP;Winiwarter等,2021年) 用于通过误差传播进行变化分析中的统计信号-噪声分离。相关论文中对概念和方法进行了详细的解释。

  • 4D对象-变化 (4D-OBC;Anders等,2021年) 用于基于时间序列提取表面活动 [正在积极开发]。该概念和方法在本科学讲座中进行了解释:

  • 基于对应平面的M3C2 (Zahs等,2022年) 用于降低三维地形变化量化中的不确定性。该概念和方法在本科学讲座中进行了解释:

  • 点云注册:Py4dgeo支持使用标准ICP实现计算和应用点云的仿射变换。目前正在实现更多ICP方法 - 请保持关注!

🎮 示例

使用py4dgeo提供的方法的演示笔记本

Example 1 Example 2
Example 3 Example 4
Example 5 Example 6
Example 7

💻 安装

先决条件

使用py4dgeo需要安装以下软件

  • 64位Python >= 3.8(32位安装可能在使用依赖项安装时出现麻烦)

为了从源代码构建软件包,还需要以下工具。

  • C++17兼容的编译器
  • CMake >= 3.9
  • Doxygen(可选,如果缺少将跳过文档构建)

安装py4dgeo

安装py4dgeo的首选方式是使用pip

使用pip安装发布版本

py4dgeo可以使用pip安装以获取当前发布版

python -m pip install py4dgeo

使用pip从源代码构建

以下命令序列用于从源代码构建py4dgeo

git clone --recursive https://github.com/3dgeo-heidelberg/py4dgeo.git
cd py4dgeo
python -m pip install -v --editable .

使用--editable标志允许您更改py4dgeo的Python源代码而无需重新安装软件包。使用-v标志可以启用详细输出,这会为您提供有关编译过程的详细信息,您应将其包含在潜在的错误报告中。要重新编译C++源代码,请再次运行pip install。为了在源代码构建上启用多线程,您的编译器工具链需要支持OpenMP

如果您想为库的开发做出贡献,还应安装其额外的Python依赖项以进行测试和文档构建

python -m pip install -r requirements-dev.txt

使用Docker设置py4dgeo

此外,py4dgeo提供了一个允许使用JupyterLab探索库的Docker镜像。可以使用以下命令本地构建和运行该镜像

docker build -t py4dgeo:latest .
docker run -t -p 8888:8888 py4dgeo:latest

🐍 软件使用文档

作为一个起点,请查看存储库中可用的Jupyter Notebooks,并在readthedocs上找到py4dgeo的文档。

🌐 发布的测试数据

如果您正在寻找测试不同方法的测试数据,请考虑以下开放数据发布

沙滩的每小时TLS点云


Vos等。(2022年):https://doi.org/10.1038/s41597-022-01291-9

阿尔卑斯山岩冰川的每周TLS点云


Zahs等。(2022年):https://doi.org/10.11588/data/TGSVUI

📑 引用

请在您的研究中引用py4dgeo,并参考适当的版本。

article{py4dgeo,
author = {py4dgeo Development Core Team}
title = {py4dgeo: library for change analysis in 4D point clouds},
journal = {},
year = {2022},
number = {},
volume = {},
doi = {},
url = {https://github.com/3dgeo-heidelberg/py4dgeo},
}

💟 资金 / 致谢

该软件的初始开发得到了2021年开放征集活动中的科学软件中心(SSC)的支持。科学软件项目还得到了研究项目CharAct4DAImon5.0的支持。

🔔 联系 / 错误 / 功能请求

您认为发现了错误或有特定的功能请求?请在Github的在线代码仓库中新建一个issue。对于一般性问题,也请使用issue系统。

科学请求可致信海德堡3DGeo研究小组及其成员。

📜 许可证

LICENSE.md

📚 文献

  • Anders, K., Winiwarter, L., Mara, H., Lindenbergh, R., Vos, S.E. & Höfle, B. (2021): Fully automatic spatiotemporal segmentation of 3D LiDAR time series for the extraction of natural surface changes. ISPRS Journal of Photogrammetry and Remote Sensing, 173, pp. 297-308. DOI: 10.1016/j.isprsjprs.2021.01.015.
  • Lague, D., Brodu, N., & Leroux, J. (2013). Accurate 3D comparison of complex topography with terrestrial laser scanner: Application to the Rangitikei canyon (N-Z). ISPRS Journal of Photogrammetry and Remote Sensing, 82, pp. 10-26. DOI: 10.1016/j.isprsjprs.2013.04.009.
  • Winiwarter, L., Anders, K., Höfle, B. (2021): M3C2-EP: Pushing the limits of 3D topographic point cloud change detection by error propagation. ISPRS Journal of Photogrammetry and Remote Sensing, 178, pp. 240–258. DOI: 10.1016/j.isprsjprs.2021.06.011.
  • Zahs, V., Winiwarter, L., Anders, K., Williams, J.G., Rutzinger, M. & Höfle, B. (2022): Correspondence-driven plane-based M3C2 for lower uncertainty in 3D topographic change quantification. ISPRS Journal of Photogrammetry and Remote Sensing, 183, pp. 541-559. DOI: 10.1016/j.isprsjprs.2021.11.018.

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解安装包的更多信息。

源代码分发

py4dgeo-0.6.0.tar.gz (19.9 MB 查看哈希值)

上传时间 源代码

构建分发

py4dgeo-0.6.0-cp312-cp312-win_amd64.whl (271.1 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

py4dgeo-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381.0 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64

py4dgeo-0.6.0-cp312-cp312-macosx_10_9_x86_64.whl (564.8 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

py4dgeo-0.6.0-cp311-cp311-win_amd64.whl (270.1 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

py4dgeo-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381.5 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

py4dgeo-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl (559.8 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

py4dgeo-0.6.0-cp310-cp310-win_amd64.whl (270.1 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

py4dgeo-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381.5 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

py4dgeo-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl (559.8 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

py4dgeo-0.6.0-cp39-cp39-win_amd64.whl (265.9 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

py4dgeo-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381.6 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

py4dgeo-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl (559.9 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

py4dgeo-0.6.0-cp38-cp38-win_amd64.whl (270.5 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

py4dgeo-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (381.3 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

py4dgeo-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl (559.7 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

支持