https://github.com/jakarto3d/jakteristics
Compute point cloud geometric features from python
https://github.com/jakarto3d/jakteristics
3d feature geometric lidar lidar-point-cloud normals pointcloud processing python
Last synced: about 1 year ago
JSON representation
Compute point cloud geometric features from python
- Host: GitHub
- URL: https://github.com/jakarto3d/jakteristics
- Owner: jakarto3d
- Created: 2020-04-14T17:01:01.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-22T15:15:50.000Z (almost 2 years ago)
- Last Synced: 2025-03-27T15:32:18.229Z (about 1 year ago)
- Topics: 3d, feature, geometric, lidar, lidar-point-cloud, normals, pointcloud, processing, python
- Language: C++
- Size: 172 KB
- Stars: 94
- Watchers: 11
- Forks: 15
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.rst
Awesome Lists containing this project
README
Jakteristics
~~~~~~~~~~~~
* **Documentation**: https://jakteristics.readthedocs.io
* **Github**: https://github.com/jakarto3d/jakteristics
Jakteristics is a python package to compute point cloud geometric features.
A **geometric feature** is a description of the geometric shape around a point based on its
neighborhood. For example, a point located on a wall will have a high *planarity*.
The features used in this package are described in the paper
`Contour detection in unstructured 3D point clouds`_.
They are computed based on the eigenvalues and eigenvectors:
* Eigenvalue sum
* Omnivariance
* Eigenentropy
* Anisotropy
* Planarity
* Linearity
* PCA1
* PCA2
* Surface Variation
* Sphericity
* Verticality
* Nx, Ny, Nz (The normal vector)
It's inspired from a similar tool in `CloudCompare `_.
It's implemented in cython using the BLAS and LAPACK scipy wrappers. It can use multiple cpus,
and the performance is quite good (at least twice as fast as CloudCompare).
.. _`Contour detection in unstructured 3D point clouds`: https://ethz.ch/content/dam/ethz/special-interest/baug/igp/photogrammetry-remote-sensing-dam/documents/pdf/timo-jan-cvpr2016.pdf
Installation
============
.. code:: bash
python -m pip install jakteristics
Usage
=====
Refer to the `documentation `_ for more details.
From python
-----------
.. code:: python
from jakteristics import compute_features
features = compute_features(xyz, search_radius=0.15, feature_names=['planarity', 'linearity'])
CLI
---
Once the package is installed, you can use the `jakteristics` command:
.. code:: bash
jakteristics input/las/file.las output/file.las --search-radius 0.15 --num-threads 4
Run tests
=========
.. code:: bash
python -m pip install -r requirements-dev.txt
python setup.py pytest