Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.index.tree.spatial
Class BulkSplit<N extends SpatialObject>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.index.tree.spatial.BulkSplit<N>
Type Parameters:
N - object type

public class BulkSplit<N extends SpatialObject>
extends Object

Encapsulates the required parameters for a bulk split of a spatial index.

Author:
Elke Achtert

Nested Class Summary
static class BulkSplit.Strategy
          Available strategies for bulk loading.
 
Field Summary
private static Logging logger
           
 
Constructor Summary
BulkSplit()
          Constructor
 
Method Summary
private  int chooseBulkSplitPoint(int numEntries, int minEntries, int maxEntries)
          Computes and returns the best split point.
private  int chooseMaximalExtendedSplitAxis(List<N> objects)
          Computes and returns the best split axis.
private  List<List<N>> maximalExtensionPartition(List<N> spatialObjects, int minEntries, int maxEntries)
          Partitions the specified feature vectors where the split axes are the dimensions with maximum extension
 List<List<N>> partition(List<N> spatialObjects, int minEntries, int maxEntries, BulkSplit.Strategy strategy)
          Partitions the specified feature vectors according to the chosen strategy.
private  List<List<N>> zValuePartition(List<N> spatialObjects, int minEntries, int maxEntries)
          Partitions the spatial objects according to their z-values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private static Logging logger
Constructor Detail

BulkSplit

public BulkSplit()
Constructor

Method Detail

partition

public List<List<N>> partition(List<N> spatialObjects,
                               int minEntries,
                               int maxEntries,
                               BulkSplit.Strategy strategy)
Partitions the specified feature vectors according to the chosen strategy.

Parameters:
spatialObjects - the spatial objects to be partitioned
minEntries - the minimum number of entries in a partition
maxEntries - the maximum number of entries in a partition
strategy - the bulk load strategy
Returns:
the partition of the specified spatial objects according to the chosen strategy

maximalExtensionPartition

private List<List<N>> maximalExtensionPartition(List<N> spatialObjects,
                                                int minEntries,
                                                int maxEntries)
Partitions the specified feature vectors where the split axes are the dimensions with maximum extension

Parameters:
spatialObjects - the spatial objects to be partitioned
minEntries - the minimum number of entries in a partition
maxEntries - the maximum number of entries in a partition
Returns:
the partition of the specified spatial objects

zValuePartition

private List<List<N>> zValuePartition(List<N> spatialObjects,
                                      int minEntries,
                                      int maxEntries)
Partitions the spatial objects according to their z-values.

Parameters:
spatialObjects - the spatial objects to be partitioned
minEntries - the minimum number of entries in a partition
maxEntries - the maximum number of entries in a partition
Returns:
A partition of the spatial objects according to their z-values

chooseMaximalExtendedSplitAxis

private int chooseMaximalExtendedSplitAxis(List<N> objects)
Computes and returns the best split axis. The best split axis is the split axes with the maximal extension.

Parameters:
objects - the spatial objects to be split
Returns:
the best split axis

chooseBulkSplitPoint

private int chooseBulkSplitPoint(int numEntries,
                                 int minEntries,
                                 int maxEntries)
Computes and returns the best split point.

Parameters:
numEntries - the number of entries to be split
minEntries - the number of minimum entries in the node to be split
maxEntries - number of maximum entries in the node to be split
Returns:
the best split point

Release 0.3 (2010-03-31_1612)