Table of Contents

Class: AdaptiveTree CGLutil/AdaptiveTree.py

Define an adaptive k-d tree as per "The Design and Analysis of Spatial Data Structures" pp. 70-71. Basically, given a set of k-dimensional points (each dimension referred to as an "attribute") with associated data, they are partitioned into leaf nodes. Each leaf nodes hold lists of associated data whose corresponding attributes vary by less than an initially- supplied threshold (sepVal). Also, each leaf node holds a bounding box of the leaf data.

The interior nodes of the tree contain details of the partitioning. In particular, what attribute this node partitions along (axis), and what value (median) partitions left child node from right child node. Whether a node is interior or leaf is stored in type.

Methods   
__init__
bboxSearchTree
searchTree
  __init__ 
__init__ (
        self,
        attributeData,
        leafData,
        sepVal,
        )

attributeData is a sequence of sequences. Each individual sequence is attribute data. For example, in a 3D space partitioning, the attribute data is x, y, and z values.

leafData ia a sequence of the same length as attributeData. Each item is what is to put into leaf nodes after tree partitioning.

sepVal is the value at which a tree will no longer be decomposed, i.e. if the maximum variance of each attribute is less than sepVal, then a leaf node is created.

  bboxSearchTree 
bboxSearchTree ( self,  bbox )

Search tree for all leaves within a bounding box.

Mostly similar to searchTree. bbox is a sequence of lower-bound / upper-bound pairs defining the bounds on each axis.

  searchTree 
searchTree (
        self,
        target,
        window,
        zero=0.0,
        )

Search tree for all leaves within window of target.

The cumulative difference of all attributes from target must be less than window.

Note that this search only identifies leaf nodes that could satisfy the window criteria and returns all leaf data in those nodes. Each individual leaf data may not satisfy the window criteria.

For attributes that aren't floats or ints but that otherwise obey numeric operations and comparisons, the zero parameter may be specified so that the searches know how to initialize their difference totals.


Table of Contents

This document was automatically generated on Tue Nov 5 16:56:12 2002 by HappyDoc version 2.0.1