Skip to main content

Optimized C++ algorithms for dendromatics

Project description

Dendroptimized

Optimized C++ algorithms for dendromatics.

Implementation and dependencies:

It relies on the Eigen library for matrix and vector operations, Taskflow for parallel processing primitives, nanoflann for nearest neighbor searches, and Wenzel Jakob’s DisjointSet for computing connected components. These libraries are vendored as submodules into the third_party directory. Binding are implemented via nanobind.

Available algorithms:

  • Parallel drop in replacement for dendromatics voxelization
  • ad hoc parallel "reduced" DBSCAN (should only work in some dendromatics specific contexts)

To be added in a near future

  • C++ ad hoc approximate dist axes computation

Installing / Building

dendroptimized is available on PyPI. pip install dendroptimized should be enough but it is meant to be used/called by the dendromatics package

dendroptimized use scikit-build-core as its build system. It is PEP 517 compatible and thus build should be as easy as:

git clone https://github.com/3DFin/dendroptimized
cd dendroptimized
python -m build 

Testing

Some basic tests and benchmarks are provided in the tests directory. Tests can be run in a clean and reproducible environments via tox (tox run and tox run -e bench).

Acknowledgement

dendroptimized has been developed at the Centre of Wildfire Research of Swansea University (UK) in collaboration with the Research Institute of Biodiversity (CSIC, Spain) and the Department of Mining Exploitation of the University of Oviedo (Spain).

Funding provided by the UK NERC project (NE/T001194/1):

'Advancing 3D Fuel Mapping for Wildfire Behaviour and Risk Mitigation Modelling'

and by the Spanish Knowledge Generation project (PID2021-126790NB-I00):

‘Advancing carbon emission estimations from wildfires applying artificial intelligence to 3D terrestrial point clouds’.

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

dendroptimized-0.1.0.tar.gz (4.8 MB view hashes)

Uploaded Source

Built Distributions

dendroptimized-0.1.0-cp312-cp312-win_amd64.whl (163.3 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

dendroptimized-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl (653.8 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

dendroptimized-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.3 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

dendroptimized-0.1.0-cp312-cp312-macosx_11_0_x86_64.whl (155.7 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ x86-64

dendroptimized-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (140.1 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

dendroptimized-0.1.0-cp311-cp311-win_amd64.whl (163.3 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

dendroptimized-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl (654.2 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

dendroptimized-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

dendroptimized-0.1.0-cp311-cp311-macosx_11_0_x86_64.whl (155.6 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ x86-64

dendroptimized-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (140.3 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

dendroptimized-0.1.0-cp310-cp310-win_amd64.whl (163.5 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

dendroptimized-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl (654.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

dendroptimized-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.8 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

dendroptimized-0.1.0-cp310-cp310-macosx_11_0_x86_64.whl (155.8 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ x86-64

dendroptimized-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (140.4 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

dendroptimized-0.1.0-cp39-cp39-win_amd64.whl (164.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

dendroptimized-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl (654.3 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

dendroptimized-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (205.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

dendroptimized-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl (155.9 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ x86-64

dendroptimized-0.1.0-cp39-cp39-macosx_11_0_arm64.whl (140.4 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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