gpt4 book ai didi

python - 如何编写 ProgrammableSource 过滤器以在 ParaView 中将 numpy 数组显示为 vtkImageData?

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:26 24 4
gpt4 key购买 nike

因此,我想使用 ParaView 提供的 python 接口(interface)直接从我们当前的文件格式加载数据并显示它,而不是以另一种格式存储我们拥有的所有数据以使其可被 ParaView 显示。

为了测试这一点,我想创建一个简单的 ProgrammableSource 过滤器,它输出一个 vtkImageData 并用一些数据填充它。

我遇到了三个问题:

  • 首先,数据不显示(甚至不作为轮廓表示)
  • 我找不到不循环设置值的方法
  • 我没有找到可以帮助我的好的在线资源

这是我目前所拥有的。 ParaView 没有投诉,但也没有渲染任何内容。

import numpy as np
import vtk
import vtk.util.numpy_support as ns

img = self.GetImageDataOutput()
img.SetDimensions(3,4,5)
img.AllocateScalars(vtk.VTK_DOUBLE, 1)


dims = img.GetDimensions()
img.SetOrigin(0,0,0)
img.SetSpacing(0.55, 0.55, 0.55)

for z in range(dims[2]):
for y in range(dims[1]):
for x in range(dims[0]):
img.SetScalarComponentFromDouble(x,y,z,0, 1.0*x*y*z)

注意:如果直接使用 ParaView 的 python shell 而不是 ProgrammableSource 更容易,这也可以。

最佳答案

为了使用可编程源定义 vtkImageData 输出,还必须注意在管道执行的 RequestInformation 阶段设置一些信息。将以下内容插入 Script (RequestInformation) 属性:

from paraview import util

op = self.GetOutput()
util.SetOutputWholeExtent(self, [0, 2, 0, 3, 0, 4])

此信息改编自 http://www.paraview.org/Wiki/Python_Programmable_Filter 上提供的信息.

关于python - 如何编写 ProgrammableSource 过滤器以在 ParaView 中将 numpy 数组显示为 vtkImageData?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42858026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com