zj-Cloudia / StructurePlaneCluster

algorithm about clustering structure plane

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

主要内容

包括一些结构面聚类算法的简单实现,目前实现的有:

  • k-Means
  • DBSCAN
  • Affinity Propagation
  • Gaussion Mixture
  • AGNES

代码只实现了算法,未做任何优化,数据量大时某些算法会非常慢

使用方法

直接将所有python文件下载运行即可(需要numpy和matplotlib),其中test开头的python文件为简单的测试运行文件,文件中需手动修改算法参数。  

算法支持的数据文件格式见两个txt文件,它们也可作为测试用例

产状的空间表示方法

将结构面产状(倾向,倾角)转换为单位超球体上的空间向量(x,y,z),即结构面的单位法向量

距离度量

以夹角衡量两结构面法向量之间的距离,具体采用两向量间锐角夹角的平方正弦值

产状均值计算方法

将产状向量集的均值问题转换为求解受约束条件下的函数极值问题:

  • 约束条件:单位超球体,即结构面单位法向量空间
  • 欲求解的函数:各向量与欲求解的均值向量的距离的和

即均值向量的定义为:与各向量的距离和最小的向量,即函数的最小值。运用拉格朗日乘子法,即可将该问题转换为简单的求解特定矩阵的特征向量。

具体的数学推导可见论文:fuzzy cluster algorithm for the automatic identification of joint sets (HAMMAH R, CURRAN J H)

About

algorithm about clustering structure plane


Languages

Language:Python 100.0%