Point cloud geometric properties from python.
Project description
Documentation: https://jakteristics.readthedocs.io
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.2 (2024-07-22)
0.6.1 (2024-06-04)
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
Built Distributions
Hashes for jakteristics-0.6.2-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 866d0fd573787cca66917634c4a25d3a9fef391b7a20351a7b36e76123c05534 |
|
MD5 | f9f2be58d5027ba5e010ea7209d6d602 |
|
BLAKE2b-256 | 5c7228f653ed7a611da5dd43349cb839172e9a6a43cc7d52e0c3eb974d6f7992 |
Hashes for jakteristics-0.6.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b44d2b95b4201fc052909c1de458d231d13a8e4ce9221f7ba337c60da01c4744 |
|
MD5 | 974366d3bfb0e65f6cfc0e573b28152f |
|
BLAKE2b-256 | a8c6dfc56800176b4e4eb33c7360ad84de83ef3f7ead1d2f6155c9f81d8f04e0 |
Hashes for jakteristics-0.6.2-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 60435ee74ccb9bf52baa1a23be041f93c7343bd1f5c0cae8c741c963159c6c98 |
|
MD5 | d79e08e9e4a3e9893793217f30b73dc1 |
|
BLAKE2b-256 | c60e667fa6e5532772dc3b351f96842d3558a1a41b380ddabe9bf11ae0165f32 |
Hashes for jakteristics-0.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff8cc6645f35557876c593c6c58942deb0d28412e2ac31b637611da0a23dad89 |
|
MD5 | 57489e186057934fbd985f574d6347cb |
|
BLAKE2b-256 | 051c31005d60cf2aaeb5a8ab0f65be2040c99ef36a1c49dad8c92beb8ad5ada8 |
Hashes for jakteristics-0.6.2-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e884c2b9863ef12922b455c8da22cc07a22cd99e88cf1d5729d8e2bbf02c05d6 |
|
MD5 | 347b6db0eb0fac70a6be7ce06a3ea3a4 |
|
BLAKE2b-256 | a052c11b628d853db7bb6fa05fb7662db2dae719dedbcf485943f2568e8d36de |
Hashes for jakteristics-0.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc0dba7299a4cdbc8762c8c8feeee3b8aa48d4020cf5fd41018f6c44fd5c1ac6 |
|
MD5 | aa722694764dc9950ef058284b0d8f0b |
|
BLAKE2b-256 | a18fba2103ab4fc6b05ad176abe83fb3fa9a573325231161f53448ef809b54fb |
Hashes for jakteristics-0.6.2-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad4672eab79fc47c5fd73b97100b45cdf8fbf51b10d61f20586794d6d097e8fd |
|
MD5 | 31f3d0a8d56cb00aae685d70b60bf260 |
|
BLAKE2b-256 | 90b053538d4ceedf7e7c6ffae05a5e211a712205cf8e065398232c24b274dfd8 |
Hashes for jakteristics-0.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3d91ac868b1f128c6623d202e3b0f2e25e51c5a74666fb49a89354fc7e5de5c |
|
MD5 | 60535139a1f4d499905360ca2ca2e45a |
|
BLAKE2b-256 | 2fe43539da9202c9f095dfac68472cbdc670cc7ad1581aacab3ff7d10f09041a |
Hashes for jakteristics-0.6.2-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a931f5d5ca9435746d0069e8fe500df4ef7ca3ba2e8701bfce2a487c2b2107e1 |
|
MD5 | 1841e3a265623cf2aa9dd3bdac5720f1 |
|
BLAKE2b-256 | afb064b0372337441a4da7d78f0b9311ab5454ff3817f4aba667e6d0ae4601ae |
Hashes for jakteristics-0.6.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1abf4122c78c48d0f6369e2c2ba803205b9750e442c08ec739cce0bf9d43a7b |
|
MD5 | 475b9e24e49ef7b9ab74e03c9c528a89 |
|
BLAKE2b-256 | 5eca6c8f3998fa538faed9391b39a18fe9ce6481ff46916634ea03024829b2b8 |