对点集进行密度聚类,返回每个点所属的聚类类别。

命名空间:  SuperMap.Data
程序集:  SuperMap.Data (in SuperMap.Data)
版本: dll

语法

C#
public static int[] AggregatePoints(
	Point2Ds points,
	PrjCoordSys prjCoordSys,
	double distance,
	Unit unit,
	int minPilePointCount
)

参数

points
Type: SuperMap.Data..::.Point2Ds
输入的点集合。
prjCoordSys
Type: SuperMap.Data..::.PrjCoordSys
点集合的空间参考坐标系,如果为null,则默认为平面坐标系。
distance
Type: System..::.Double
密度聚类半径。
unit
Type: SuperMap.Data..::.Unit
密度聚类半径的单位。如果空间参考坐标系prjCoordSys无效,此参数也无效。
minPilePointCount
Type: System..::.Int32
密度聚类点数目阈值,必须大于等于2。阈值越大表示能聚类为一簇的条件越苛刻。推荐值为4。

返回值

聚类成功返回每个点所属的聚类类别,从1开始,0为无效类别。

备注

对点集合进行空间位置的聚类,使用密度聚类方法 DBSCAN,它能将具有足够高密度的区域划分为簇,并可以在带有噪声的空间数据中发现任意形状的聚类。它定义簇为密度相连的点的最大集合。DBSCAN 使用阈值 e 和 MinPts 来控制簇的生成。其中,给定对象半径 e 内的区域称为该对象的 e一邻域。如果一个对象的 e一邻域至少包含最小数目 MinPtS 个对象,则称该对象为核心对象。给定一个对象集合 D,如果 P 是在 Q 的 e一邻域内,而 Q 是一个核心对象,我们说对象 P 从对象 Q 出发是直接密度可达的。DBSCAN 通过检查数据中每个点的 e-领域来寻找聚类,如果一个点 P 的 e-领域包含多于 MinPts 个点,则创建一个以 P 作为核心对象的新簇,然后,DBSCAN反复地寻找从这些核心对象直接密度可达的对象并加入该簇,直到没有新的点可以被添加。

版本信息

SuperMap iObjects .NET


请参见