Giter Site home page Giter Site logo

trellixvulnteam / py4dgeo_htth Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 3dgeo-heidelberg/py4dgeo

0.0 0.0 0.0 2.13 MB

py4dgeo - A Python library for change detection in 4D point cloud data

License: MIT License

C++ 36.98% Python 45.56% CMake 1.74% Jupyter Notebook 15.41% Dockerfile 0.31%

py4dgeo_htth's Introduction

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:

  • Python >= 3.8

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.

py4dgeo_htth's People

Contributors

dependabot[bot] avatar dokempf avatar kathapand avatar lkeegan avatar pre-commit-ci[bot] avatar trellixvulnteam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.