【问题标题】:Python scipy.spatial.Delaunay and copy.deepcopy malfunctioning with incremental parameterPython scipy.spatial.Delaunay 和 copy.deepcopy 使用增量参数出现故障
【发布时间】:2015-01-22 21:59:18
【问题描述】:

我在使用 scipy.spatial.Delaunay 函数时遇到了一个大问题。

我初始化了一个名为 tri 的变量,如下所示:

tri = Delaunay(ApsArray, incremental=True)

这段代码完美运行,但由于我必须在 for 循环中使用此三角剖分,我想将 tri 复制到另一个名为 triTemp 的变量中(作为时间变量)。

我在 python 文档中搜索,我在 copy 模块中找到了 deepcopy,它允许我将 tri 复制到内存中的另一个站点由 triTemp 指出:

triTemp = deepcopy(tri)

有效!但是当我尝试向 triTemp 添加新点时,出现此错误:

    Traceback (most recent call last):
  File "C:\Users\user\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2883, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-77-2f5ca634bc26>", line 1, in <module>
    tri.add_points([[0.2,0.3]])
  File "qhull.pyx", line 1544, in scipy.spatial.qhull._QhullUser.add_points (scipy\spatial\qhull.c:13938)
  File "qhull.pyx", line 446, in scipy.spatial.qhull._Qhull.add_points (scipy\spatial\qhull.c:4954)
TypeError: 'NoneType' object is not subscriptable

我认为问题出在参数incremental上,因为triTemp只是tri内存中的一个副本,但我的问题就是不重新初始化triTemp不知道怎么改这个参数。

我想使用一个副本,而不是再次计算三角剖分,因为我认为它更有效,所以如果有人知道达到这个目标的方法,请告诉我。

谢谢大家,英语不好也很抱歉!

【问题讨论】:

    标签: python scipy delaunay


    【解决方案1】:

    目前 (Scipy 0.15.1) 无法在增量模式下复制 Delaunay 结构,因为三角剖分的增量状态存储在 Qhull 内部。

    如果您只需要某些属性,例如simplices 等你只能复制它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多