如何写一个ProgrammableSource滤波器来显示numpy的阵列中的Paraview一个vtkImageData?

问题描述 投票:1回答:1

因此,而不是存储我们在另一个格式,使其显示由paraview包的每一个数据,我想用Python接口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包,而不是直接的ProgrammableSource的蟒蛇外壳,这也将是确定。

python paraview
1个回答
4
投票

为了定义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信息。

© www.soinside.com 2019 - 2024. All rights reserved.