Skip to main content

Library for change detection in 4D point cloud data

Project description

Welcome to py4dgeo

logo

License: MIT GitHub Workflow Status PyPI Release Documentation Status codecov

py4dgeo is a C++ library with Python bindings for change analysis in multitemporal and 4D point clouds.

Topographic 3D/4D point clouds are omnipresent in geosciences, environmental, ecological and archaeological sciences, robotics, and many more fields and applications. Technology to capture such data using laser scanning and photogrammetric techniques have evolved into standard tools. Dense time series of topographic point clouds are becoming increasing available and require tools for automatic analysis. Moreover, methods considering the full 4D (3D space + time) data are being developed in research and need to be made available in an accessible way with flexible integration into existent workflows.

The main objective of py4dgeo is to bundle and provide different methods of 3D/4D change analysis in a dedicated, comprehensive Python library. py4dgeo is designed as an international open source project that can be integrated into almost any 3D and GIS software in the geodata domain supporting Python, e.g. as plugins.

py4dgeo is under ongoing active development. Below, you find a list of provided methods.

🔨 Methods provided by py4dgeo

Coming next:

  • Correspondence-driven plane-based M3C2 (Zahs et al., 2022) for lower uncertainty in 3D topographic change quantification. The concept and method are explained in this scientific talk:

💻 Installation

Prerequisites

Using py4dgeo requires the following software installed:

  • 64-bit Python >= 3.8 (32-bit installations might cause trouble during installation of dependencies)

In order to build the package from source, the following tools are also needed.

  • A C++17-compliant compiler
  • CMake >= 3.9
  • Doxygen (optional, documentation building is skipped if missing)

Installing py4dgeo

The preferred way of installing py4dgeo is using pip.

Installing the release version using pip

py4dgeo can be installed using pip to obtain the current release:

python -m pip install py4dgeo

Building from source using pip

The following sequence of commands is used to build py4dgeo from source:

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

The --editable flag allows you to change the Python sources of py4dgeo without reinstalling the package. The -v flag enables verbose output which gives you detailed information about the compilation process that you should include into potential bug reports. To recompile the C++ source, please run pip install again. In order to enable multi-threading on builds from source, your compiler toolchain needs to support OpenMP.

If you want to contribute to the library's development you should also install its additional Python dependencies for testing and documentation building:

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

Setting up py4dgeo using Docker

Additionally, py4dgeo provides a Docker image that allows to explore the library using JupyterLab. The image can be locally built and run with the following commands:

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

🐍 Documentation of software usage

As a starting point, please have a look to the Jupyter Notebooks available in the repository and find the py4dgeo documentation on readthedocs.

🌐 Published test data

If you are looking for data to test different methods, consider the following open data publications:

Hourly TLS point clouds of a sandy beach

Vos et al. (2022): https://doi.org/10.1038/s41597-022-01291-9.

By-weekly TLS point clouds of an Alpine rock glacier

Zahs et al. (2022): https://doi.org/10.11588/data/TGSVUI.

📑 Citation

Please cite py4dgeo when using it in your research and reference the appropriate release version.

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},
}

💟 Funding / Acknowledgements

The initial software development was supported by the Scientific Software Center (SSC) in the Open Call 2021.

🔔 Contact / Bugs / Feature Requests

You think you have found a bug or have specific request for a new feature? Please open a new issue in the online code repository on Github. Also for general questions please use the issue system.

Scientific requests can be directed to the 3DGeo Research Group Heidelberg and its respective members.

📜 License

See LICENSE.md.

📚 Literature

  • 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.
  • 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py4dgeo-0.5.0.tar.gz (5.0 MB view details)

Uploaded Source

Built Distributions

py4dgeo-0.5.0-cp311-cp311-win_amd64.whl (220.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

py4dgeo-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (335.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

py4dgeo-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl (506.5 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

py4dgeo-0.5.0-cp310-cp310-win_amd64.whl (220.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

py4dgeo-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (335.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

py4dgeo-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl (506.5 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

py4dgeo-0.5.0-cp39-cp39-win_amd64.whl (220.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

py4dgeo-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (335.4 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

py4dgeo-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl (506.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

py4dgeo-0.5.0-cp38-cp38-win_amd64.whl (221.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

py4dgeo-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (335.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

py4dgeo-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl (506.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file py4dgeo-0.5.0.tar.gz.

File metadata

  • Download URL: py4dgeo-0.5.0.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for py4dgeo-0.5.0.tar.gz
Algorithm Hash digest
SHA256 23b3af9277b16a629537aedde4689146fcde5642e020c7c2685fb6d1e84ffe7d
MD5 6c7ef57b1a0c872e8e4d6bd317ea9958
BLAKE2b-256 3066a4b7e04ff0e5f91a815a4e568053d1919097bf61bd76fac445995e898501

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: py4dgeo-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 220.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for py4dgeo-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6e8854f26f1ac8106143f444dd79e22d1c2637e3699d4a886879b2e203ab1e05
MD5 a121901cffc384b6e1aef240f7859405
BLAKE2b-256 87e1ccdfa6e82b871b190317fd90f5ce7ac959d744db1897d8f391477856dc3c

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e04854b718017337aec015723a9707d7b6a1a1c5c506861c2fa95b62f32d1cfe
MD5 540a3a8b1239c8fabaa79ed946c9621a
BLAKE2b-256 bbe23287bdf097923382a9856c4cfbda3020b3569a448bc483134fcf39f57516

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 95c2cd8c0146e771c41e9e80ee1f7e75a993e5035a2fb902cff51fec5d2905b1
MD5 3432d239b2683ca4d248a6e98ed28ea3
BLAKE2b-256 a3d1cd5a681143fb122a3080cfe69451f7e32f309fcf736e05fab4f5ec0dfaeb

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: py4dgeo-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 220.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for py4dgeo-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6baa01a49b7764ad41d38938c59ce29ec82ca510c578c432a0d8a63dae9c7e85
MD5 a48c38315b65fa0b23fb1bbd7250a90f
BLAKE2b-256 379e0de8034b9ff57c90df6195edd1628ee7251c87b7324a220840f3bf4abb1e

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2baced2077cf2c35072145b7b7ee5952412001de932cd20a30bb86fac1a5f9e
MD5 a1c83b4d9787c6b5de0d65d50829884b
BLAKE2b-256 eba6f9ecc79830fb445b277a999f533d691a902fa9a1ac795344a8b2dc564180

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ec7b2dad44d6072e9d641afca2a2c59a3f48f92288d444013478355a457bfbce
MD5 35a595d32b8e56079d840878e1ceb4fb
BLAKE2b-256 aaa204384eb5546085deeb0f41252cc5190d060895064648a402fc721f272fc8

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: py4dgeo-0.5.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 220.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for py4dgeo-0.5.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 edf98927b254f2ec535a3e08c4edb4b94bb2ffacf1ff66730d10f5dbde1a22f3
MD5 81f6f03f1dfec55ed8910cb2f62e3c9e
BLAKE2b-256 00a10cf421008e0e3951f944f0782cfa84c89593c4acf2fd024c854bbe3d83e1

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d80d6050b0d3a3df52c5c25693dc56ca1390d7e2ed0d0f027c7ffc14fb6d445d
MD5 ae436949ed1f679a6df2a6cadd510003
BLAKE2b-256 7a0fc24d73be606fad25c21d4d73225304cc549005aa2938916a50617b49143d

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f959c8d460afb2779acdc654f3289fa32f7f574289a6c285fc2dd76fac197b3f
MD5 dd220a9527cf2120877dbd2e19cf40f8
BLAKE2b-256 71369501d392ddf458119ac3374fb6fb6ad919e0d8f7d1610d18a25772e9e67a

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: py4dgeo-0.5.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 221.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for py4dgeo-0.5.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4dae6fc2a20c23689cd2000b313161731bc98a24f403e6c1aa5a28f9e5f24360
MD5 698c73d30162e6920c3e9ad5494befcc
BLAKE2b-256 6523c4b3452862cb80df5027a5cf16db6597fb322887662f9d7ec61898aeb20b

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f33599bdf929ad9a079db2d0cb820f40c246ca5dc3397714698ebf292772eed
MD5 05666d2b8d7cffdcb803fb07ec2b3fb1
BLAKE2b-256 cce944658eb28a8905045a2800dde6acc4be0a09db94ac812cbc976c5ae7b6b8

See more details on using hashes here.

Provenance

File details

Details for the file py4dgeo-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for py4dgeo-0.5.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 49e394bffad5779e8e73f3a968dc5eb9b39fe26c7daf2ab6294d9351cf26ef05
MD5 a14ee4e86928e12db9fb42a5696f3304
BLAKE2b-256 1aeda512186f108b9c2cfd6eefb4617d3d3a73557f1e0775124c23e38bec8652

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page