tataratat / napf

nanoflann wrapper for python and maybe fortran
https://tataratat.github.io/napf/
MIT License
5 stars 2 forks source link
fortran k-d-tree kdtree nanoflann python

napf - nanoflann wrappers for python and maybe fortran

main PyPI version

python

As nanoflann offers template classes, separate classes are implemented in napf for each {datatype, distance metric}. All the search functions are equipped with multi-thread execution. Uses numpy.ndarray for data input and output. Currently, the combinations of following options are supported:

quick start

install with pip:

pip install --upgrade pip
pip install napf

Note: in case your system requires a dynamic build, you need a c++11 compatible c++ compiler. To make sure a correct compiler is chosen, set export CC=<your-c-compiler> CXX=<your-c++-compiler>

import napf
import numpy as np

data = <data in 2D array>
queries = <query points in 2D array>

kdt = napf.KDT(tree_data=data, metric=1)

distances, indices = kdt.knn_search(
    queries=queries,
    kneighbors=3,
    nthread=4,
)
...

fortran

If you need fortran bindings, please let us know by creating an issue.

Documentation

This package uses a sphinx based documentation. An online version of the documentation can be found at napf - documentation.

If you want to build the documentation yourself use the following commands in the package root directory.

pip install -r ./docs/requirements.txt
sphinx-build -W -b html docs/source docs/build

You will find the documentation in the docs/build folder.