A package for KD-tree optimized inverse distance weighting interpolation.
Project description
treeIDW
treeIDW is a Python library for performing Inverse Distance Weighting (IDW) interpolation using an efficient KD-tree-based selection strategy.
It is designed to be easy to use for newcomers while offering fine-grained control and performance-oriented options for advanced users in numerical methods and spatial data analysis.
Key Features
- Efficient IDW interpolation using KD-tree nearest-neighbor selection
- Automatic exclusion of boundary nodes with negligible contribution
- Optimized numerical kernels powered by
numba - Scalable to large datasets (millions of interpolation points)
- Simple API with expert-level tunable parameters
Installation
treeIDW is available on PyPI.
pip install treeIDW
Development installation (from source)
git clone https://github.com/Dorian210/treeIDW
cd treeIDW
pip install -e .
Dependencies
The core dependencies are:
numpyscipynumba
These are automatically installed when using pip.
Package Structure
-
treeIDW.treeIDW
Core IDW interpolation engine.
Uses a KD-tree to select only boundary nodes with significant influence, improving both accuracy and performance. -
treeIDW.helper_functions
Low-level, performance-critical routines for IDW weight computation.
Implemented withnumba, including vectorized and parallelized variants. -
treeIDW.weight_function
Definition of the IDW weight function.
The default implementation uses inverse squared distance, but custom weight laws can be implemented if needed.
Examples
Example scripts are provided in the examples/ directory:
-
Graphical demonstration
Interpolation of a rotating vector field inside a square domain. -
Large-scale computation
Propagation of a scalar field from 1,000 boundary nodes to 1,000,000 internal points, highlighting scalability. -
Logo generation
The generation process of the treeIDW logo itself, where the letters “IDW” are encoded as a vector field and interpolated on a 2D grid.
Documentation
- Online documentation: https://dorian210.github.io/treeIDW/
- API reference is also available in the
docs/directory of the repository.
Contributions
This project is currently not open to active development contributions.
However, bug reports and suggestions are welcome via the issue tracker.
License
This project is distributed under the CeCILL License.
See LICENSE.txt for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file treeidw-1.0.1.tar.gz.
File metadata
- Download URL: treeidw-1.0.1.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da237f60df5cc1bd80ec55b3594d781225b87ee5a1a4be0d396b4b099343200c
|
|
| MD5 |
b7c63f142ab541000627872c55f59532
|
|
| BLAKE2b-256 |
5388041ee1de6535bd2a0ea64aaf0ea05b57a63c2ae5671c735b2d734c49733f
|
File details
Details for the file treeidw-1.0.1-py3-none-any.whl.
File metadata
- Download URL: treeidw-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.23
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56ee89be5529776e4d932b4448e58f3db79d9963b67e7704077a64aa0982d85e
|
|
| MD5 |
16f5d8c11de57afe4efc04fb8cb650d3
|
|
| BLAKE2b-256 |
ff7e768cd6f30ace324a2bd11a2265e16ea3678d76754caeb11d5f917ab0b7b6
|