Back to Aurora Vision Library website

You are here: Start » Function Reference » Data Classification » Clustering » ClusterPoints2D_SingleLink

ClusterPoints2D_SingleLink


Header: AVL.h
Namespace: avl
Module: FoundationPro

Clusters data using hierarchical single-link algorithm.

Syntax

C++
C#
 
void avl::ClusterPoints2D_SingleLink
(
	const atl::Array<avl::Point2D>& inPoints,
	const atl::Optional<int> inClusters,
	const atl::Optional<float> inMaxDistance,
	atl::Array<atl::Array<avl::Point2D>>& outClusters
)

Parameters

Name Type Range Default Description
Input value inPoints const Array<Point2D>& Array of points to cluster
Input value inClusters const Optional<int> 2 - + NIL Number of clusters to extract
Input value inMaxDistance const Optional<float> 0.0 - NIL Maximum distance between two closest points in a cluster
Output value outClusters Array<Array<Point2D>>& Resulting Point2D clusters

Remarks

If input parameter inClusters is not set, number of clusters is determined in the following way:
  • if inMaxDistance is set then every two points of mutual distance smaller or equal to inMaxDistance belong to one cluster;
  • if inMaxDistance is not set then an array of sorted edges' lengths of minimum spanning tree of inPoints is determined and a pair of two subsequent elements which makes a maximum difference is found. Maximum distance is defined as the smaller element of such a pair.
    In other words number of clusters is the number of vertical lines in the dendrogram cut by a horizontal line that can transverse the maximum distance vertically without intersecting a cluster.

Errors

List of possible exceptions:

Error type Description
DomainError Desired number of clusters is greater than inPoints size in ClusterPoints2D_SingleLink.
DomainError Filter input inPoints is empty in ClusterPoints2D_SingleLink.
DomainError Too big inPoints array in ClusterPoints2D_SingleLink.

See Also