In [1]:
import kdtree

In [2]:
emptyTree = kdtree.create(dimensions=500)

In [3]:
point1 = (2, 3, 4)
point2 = [4, 5, 6]

In [4]:
import collections

In [5]:
Point = collections.namedtuple('Point', 'x y z')
point3 = Point(5, 3, 2)

In [6]:
tree = kdtree.create([point1, point2, point3])

In [7]:
tree


Out[7]:
<KDNode - [4, 5, 6]>

In [8]:
tree.add( (5, 4, 3) )


Out[8]:
<KDNode - (5, 4, 3)>

In [9]:
list(tree.inorder())


Out[9]:
[<KDNode - (2, 3, 4)>,
 <KDNode - [4, 5, 6]>,
 <KDNode - Point(x=5, y=3, z=2)>,
 <KDNode - (5, 4, 3)>]

In [10]:
tree.search_nn( (1, 2, 3) )


Out[10]:
(<KDNode - (2, 3, 4)>, 3.0)

In [11]:
kdtree.visualize(tree)



                     [4, 5, 6]                 

           (2, 3, 4)       Point(x=5, y=3, z=2) 

                                       (5, 4, 3)  


In [12]:
tree.is_balanced


Out[12]:
True

In [18]:
tree.dist(point1)


Out[18]:
12.0

In [22]:
tree.search_knn(point1, point2)


Out[22]:
[(<KDNode - (2, 3, 4)>, 0.0),
 (<KDNode - (5, 4, 3)>, 11.0),
 (<KDNode - [4, 5, 6]>, 12.0),
 (<KDNode - Point(x=5, y=3, z=2)>, 13.0)]

In [27]:
tree.search_nn_dist(point1, 12.)


Out[27]:
[<KDNode - (2, 3, 4)>, <KDNode - (5, 4, 3)>]

In [29]:
tree.


Out[29]:
[4, 5, 6]

In [ ]: