Python 使用scikit fmm或gdist的三维三角网格测地距离

Python 使用scikit fmm或gdist的三维三角网格测地距离,python,scikit-learn,distance,mesh,Python,Scikit Learn,Distance,Mesh,我正在尝试评估TOSCA数据集上的测地距离矩阵。 e、 g.以下三维网格- 我尝试过使用两种python实现 第一个是,它似乎根本不适用于3d结构(对吗?),因此不适合该任务 另一个是软件包,不幸的是,它适用于他们提供的玩具示例,但不适用于我的网格,它只有10000个面和5000个顶点。 使用gdist库时,我出现以下错误: Process finished with exit code 139 (interrupted by signal 11: SIGSEGV) --------CODE

我正在尝试评估TOSCA数据集上的测地距离矩阵。 e、 g.以下三维网格-

我尝试过使用两种python实现

  • 第一个是,它似乎根本不适用于3d结构(对吗?),因此不适合该任务
  • 另一个是软件包,不幸的是,它适用于他们提供的玩具示例,但不适用于我的网格,它只有10000个面和5000个顶点。
    使用gdist库时,我出现以下错误:

    Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
    --------CODE SNIPPET----------
    c = sio.loadmat('raw_data/TOSCA/cat0.mat')
    c = c['surface'][0][0]
    X = c[0]
    Y = c[1]
    Z = c[2]
    TRIV = c[3].astype(np.int32)
    vertices = np.array(zip(X, Y, Z)).astype(np.float64)
    vertices = np.reshape(vertices, (vertices.shape[0], 3))
    src = np.array([1], dtype=np.int32)
    trg = np.array([2], dtype=np.int32)
    
    np.random.shuffle(TRIV)
    
    a = gdist.compute_gdist(vertices,TRIV[:5000], source_indices = src, target_indices = trg)
    
  • 还有别的解决办法吗?我是否以错误的方式使用gdist或scikit fmm?

    根据我的经验,我只在尝试使用过多RAM时遇到过SIGSEGV。你能把任务分开吗?不幸的是,不能,因为“隐藏”更多的面会使答案变得无关紧要,而且因为5000个面的网格被认为很小,我知道这些计算可能要大得多。