Mayavi: 修改管道时的 VTK 警告

创建于 2011-04-17  ·  13评论  ·  资料来源: enthought/mayavi

迈克贝克曼报道:

这段代码

从 enthought.mayavi 导入 mlab

 pts = mlab.points3d([0,1], [0,1], [0,1])
 pts.mlab_source.set(x=[0,2])

工作,但给

错误:在 /build/src/VTK/Filtering/vtkExecutive.cxx,第 756 行
 vtkStreamingDemandDrivenPipeline (0x59b4900):算法
 vtkAssignAttribute(0x59bd8a0) 返回请求失败:
 vtk 信息 (0x5ad6c60)
 调试:关闭
 修改时间:818743
 引用计数:1
 注册事件:(无)
 请求:REQUEST_DATA_OBJECT
 ALGORITHM_AFTER_FORWARD:

这是 vtkExecutive.cxx 中的发射代码
vtkExecutive::CallAlgorithm(...)

 ...
 // 如果算法失败,现在报告它。
 如果(!结果)
 {
 vtkErrorMacro("算法" << this->Algorithm->GetClassName()
 << "(" << this->算法
 << ") 返回请求失败:"
 << *请求);
 }
 ...

虽然它被 vtk 报告为错误,但它似乎没有破坏任何东西。

最有用的评论

我尝试了一些事情并找到了另一种解决方法。

这将打印错误消息:
plt = mlab.points3d(x, y, z)

但是如果你设置第四个参数(“标量”),错误信息就会消失。
这对我来说很好用:
plt = mlab.points3d(x, y, z, np.ones_like(x))

可以使用关键字“scale_mode”和“scale_factor”来调整字形的大小。

所有13条评论

我很想为此提供修复或解决方法。 我在即将推出的演示中使用 mayavi,错误消息是演示的美感的一大破坏因素。

我也在为此寻找解决方案或解决方法。

完全相同的问题,有人找到了解决方法吗?

完全相同的问题,有人找到了解决方法吗?

Mayavi 中的管道代码需要重写才能使用新的 VTK
管道设计。 我怀疑有几天的工作,也许一周。
鉴于 Prabhu 和我的工作量,很难找到那个时间。
这就是为什么什么都没有发生的原因。

+1 以解决此问题。

临时解决方法,将错误消息重定向到日志文件:

import vtk
output=vtk.vtkFileOutputWindow()
output.SetFileName("log.txt")
vtk.vtkOutputWindow().SetInstance(output)

与当前的 Mayavi 确认。

@GaelVaroquaux@prabhuramachandran :你们中的任何一个都可以简要解释一下根本原因吗? 我有点迷失在 VTK 细节中。

+1 修复

+1 修复

+1 修复

还在。

还在。 +1 修复。

我尝试了一些事情并找到了另一种解决方法。

这将打印错误消息:
plt = mlab.points3d(x, y, z)

但是如果你设置第四个参数(“标量”),错误信息就会消失。
这对我来说很好用:
plt = mlab.points3d(x, y, z, np.ones_like(x))

可以使用关键字“scale_mode”和“scale_factor”来调整字形的大小。

我同意 Solarjoe 的解决方案。 自动标量可能有问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

relyativist picture relyativist  ·  16评论

igamenovoer picture igamenovoer  ·  7评论

Mallcock1 picture Mallcock1  ·  10评论

indranilsinharoy picture indranilsinharoy  ·  9评论

rambalachandran picture rambalachandran  ·  9评论