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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

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

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

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

Uploaded CPython 3.12 macOS 11.0+ x86-64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

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

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

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

Uploaded CPython 3.11 macOS 11.0+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

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

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

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

Uploaded CPython 3.10 macOS 11.0+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 Windows x86-64

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

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

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

Uploaded CPython 3.9 macOS 11.0+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

File details

Details for the file dendroptimized-0.1.0.tar.gz.

File metadata

  • Download URL: dendroptimized-0.1.0.tar.gz
  • Upload date:
  • Size: 4.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for dendroptimized-0.1.0.tar.gz
Algorithm Hash digest
SHA256 308281a7c1c62a57a79b27c05fe68a9e4d9039c3043b3d273e2bb64e15bbb38c
MD5 f2e056340240dc7b0e99a626fda16038
BLAKE2b-256 d28f4342fdd989fd5177993120c7c7f6fd46a727e4abcd2c1cf00504dc269472

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 941648030869f0ef47a9a2e70ebe521f074a491ac723a776a878efe040d2ff59
MD5 752fce9f93bb95b5cee2f180316c5917
BLAKE2b-256 b988ab1a0978224ccd548d0955e9a6f3ceb0c4c6663e24ef624dd8d21130f0cf

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f7db2d57a73a448660fd5692c692902d174ef7838436c53f4798c44d776304f3
MD5 75d4f7a6a7087ed7dcdbb80a65df686a
BLAKE2b-256 66ad14729149010056520f9a7766d5990847e386984f4fb45f730e8b408c132a

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a6aab756471756baf1ac3e2365f7b4cde68da2300be4433a12cae77e0ff02f9
MD5 88c8da8dff171b31058f9abec34e6f09
BLAKE2b-256 c94306c983887cc77a15dae539b2ce43040ae094ec60ff9643fda8cdc05945a1

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 1f53e31850bb1dab047d88ba8d5389d754794318088836ca5732c024dba6c98a
MD5 54dd5040901f2aae1d0f9f9e5f1d0eb8
BLAKE2b-256 140daae3e69cba08a1ce126452544ffbafae9e3d5fa761393ffa2b5382c0511c

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 63300d7131132b291cf851b2e4862175daaaaa1536da1a7ecd4c5968b7153559
MD5 7d9af0f86c7839651a76e9fb04c0fa64
BLAKE2b-256 f291d507068ebdd53a888d35b6dcd849d5d5973c78834c09de4f52bb065fa1a5

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c1f53cc780b1bf3192368d033a19b332917009d97a07207500522d14216961f
MD5 092f394a661e609e87bfb3eb437336d7
BLAKE2b-256 73ccf69a59e858ca9145b634573af9becc530ca88bf3f6e0674c6adc7afab236

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 541ba023d623b27cf3bbd9ad1ac0257ce5e358b00a68e13b7f1388da0a8a4dcd
MD5 211aaab985e29751c649d9569465fed7
BLAKE2b-256 78fe8392e47ff66d9adcf7f09c72f625875be8e26a6909f19ef353504ef7703b

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee9460482eeba030c707927ed5163f4e75af4549f3c3335033e7ead9ca2ecaf4
MD5 3debf5207e1eebb4e9b085867d0e6215
BLAKE2b-256 e350a30d123afd6d10e74018f8491182298677a0b9a1d64f77d68d71c07ab390

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 19c726235229288cdf7527cdb67e29d6b31004bd167fc540d31c26c954fa6be4
MD5 07c6106e1170ecf0fb4f48ad1e746b10
BLAKE2b-256 df8bb5e64e514b15a0b3dbe50758665251125982abbcfb1a3c56cdcc2cb2182a

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 918665b64b02ede6e3a1a039812b0930ecb8048812a7a31cb66c2e178b6ed28d
MD5 e311e3ae55a6637e22a3e14071eb4c7c
BLAKE2b-256 976b3648f67dec36c0a2bc9059d5b9b690130056823420975e8a16a04386cf9e

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4055a84ba86ab38bcc30b2ab777f06f8252908a5d238991a249083e1dac47647
MD5 b291ffb00e2dac7885b56a645b434d82
BLAKE2b-256 23c9479b5cdea567e7bb600aa9aef384809c1a802b1005529dc85088a37a9835

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 deca322c367aa2642554bceda2e2ed259500c073245790989120b6d819a94847
MD5 3a2ca4add977822dcb5c937846514443
BLAKE2b-256 0518c491e7fcbd9c2918aa5a401b4a95f7461e234cfbd19bd76e2fa0043e07a3

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e66b744ead2235814caf12e295e17cf8a6641ce2d243b9088282ef081b7aebf9
MD5 95a9bffe058b6962a5f099fb6b02c179
BLAKE2b-256 0b6f4577f04ae17f4327150e9a757ee3cd3ca1108bee8f8d0f16a10bb4936b5f

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 47b03110f718958143b8e8983744105046550caf22b6355bf78fc98b3360ba91
MD5 1cb70190e0f137eae858e498640cff2c
BLAKE2b-256 1103b34c8dca51ab7ef9c1dd3a3ec8c7523bae09d81129c8253631e1eaf93cd1

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a82630af16845a2855d9351bf23a59c24b56177003e789d4b2f6f5c2d6cceb01
MD5 8bbfef6e7865f8b9971dbd03676101b3
BLAKE2b-256 bfdb68a20f7625ead5ff1f3a8ad72b08c7d7c272981f3932a795d9d4df75bf4c

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cee50a148673f4a7852b08e8b637365035a889d8d7a96f651d35ba996d44eaf5
MD5 f785c00c625aaf96cb64b4be038cd78a
BLAKE2b-256 9d0c33cd969eba96d10f090ca1de9c1b31a87747f318ffe7baa05295c3da5390

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4f81f7b43b66ed7ffb8fedc101a74aa898ef91a344d2698a06a0e0178c3476ba
MD5 8c80f8470a6248307028b1cf2ace8687
BLAKE2b-256 4b9be5cd1f064d21ea64c9f3f49118e2a891f4345b5a2e78a687d9e8329872cf

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19688e14a143e655cb5ac4f794583e8cef0f45433a7205239989e2e68ef6164b
MD5 de34cd18a1915e048957e5ccd3980a94
BLAKE2b-256 540bddd723f5c36f270c15ea109f7855b7c0bd8f3412cb1a84bf176a49b496bc

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d5e25d73299761b8b6eb8a7350494f57e5fba8fd0eeef6c11c30bca6af4a36b2
MD5 364f9d79d184685cf6b70dd3f0cd63a1
BLAKE2b-256 ad7b682cff831219da3163e961a08ee798df079457e688bcc510614b2d171a45

See more details on using hashes here.

File details

Details for the file dendroptimized-0.1.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for dendroptimized-0.1.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bea2767e275a34324e4f04088ece02087f0fc4fb28456ac18f8768aebe1e5327
MD5 cfef3f583fcece5519fcbf2483af9ff8
BLAKE2b-256 8e2d57002e062ce0ad2e2bbfaf077b88ca1e76b9d85beb43b4dec29cd71e7e77

See more details on using hashes here.

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