Skip to main content

Point cloud geometric properties from python.

Project description

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

Installation

python -m pip install jakteristics

Usage

Refer to the documentation for more details.

From 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:

jakteristics input/las/file.las output/file.las --search-radius 0.15 --num-threads 4

Run tests

python -m pip install -r requirements-dev.txt
python setup.py pytest

History

Unreleased

0.6.0 (2023-04-20)

  • add: number_of_neighbors feature

  • add: eigenvalues and eigenvectors features

0.5.1 (2023-04-11)

  • fix: computing features when kdtree is not built from the same points for which we want to compute the features

  • drop python 3.6, add wheels for python 3.7-3.11 on linux and windows

0.5.0 (2022-01-26)

  • fix: compatibility with latest laspy version (>= 2.1.1, (2.1.0 has a bug))

0.4.3 (2020-09-24)

  • the default value when features can’t be computed should be NaN

0.4.2 (2020-04-20)

  • fix extension import statement

0.4.1 (2020-04-17)

  • fix: create parent directories for output file

  • fix: rename –num_threads to –num-threads

  • fix: require laspy 1.7 for upper case names in extra dimensions

0.4.0 (2020-04-16)

  • first pypi release

  • add github actions

0.3.0 (2020-04-14)

  • add feature-names parameter to compute specific features

0.2.0 (2020-04-10)

  • fix windows compilation with openmp

  • add example cloudcompare script

  • add num_threads cli parameter and help documentation

  • write extra dimensions in the correct order

0.1.2 (2020-04-10)

  • Fix tests

0.1.1 (2020-04-10)

  • Fix bug where single precision was used for intermediate variables

0.1.0 (2020-04-10)

  • First release

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

jakteristics-0.6.0.tar.gz (488.5 kB view hashes)

Uploaded Source

Built Distributions

jakteristics-0.6.0-cp311-cp311-win_amd64.whl (589.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

jakteristics-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

jakteristics-0.6.0-cp310-cp310-win_amd64.whl (592.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

jakteristics-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

jakteristics-0.6.0-cp39-cp39-win_amd64.whl (597.9 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

jakteristics-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

jakteristics-0.6.0-cp38-cp38-win_amd64.whl (597.4 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

jakteristics-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

jakteristics-0.6.0-cp37-cp37m-win_amd64.whl (591.8 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

jakteristics-0.6.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

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