Skip to main content

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:

  • numpy
  • scipy
  • numba

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 with numba, 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


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

treeidw-1.0.1.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

treeidw-1.0.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

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

Hashes for treeidw-1.0.1.tar.gz
Algorithm Hash digest
SHA256 da237f60df5cc1bd80ec55b3594d781225b87ee5a1a4be0d396b4b099343200c
MD5 b7c63f142ab541000627872c55f59532
BLAKE2b-256 5388041ee1de6535bd2a0ea64aaf0ea05b57a63c2ae5671c735b2d734c49733f

See more details on using hashes here.

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

Hashes for treeidw-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56ee89be5529776e4d932b4448e58f3db79d9963b67e7704077a64aa0982d85e
MD5 16f5d8c11de57afe4efc04fb8cb650d3
BLAKE2b-256 ff7e768cd6f30ace324a2bd11a2265e16ea3678d76754caeb11d5f917ab0b7b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page