python程序出错,可能与vtk有关。请帮忙?

2024-06-16 13:16:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生,我正在运行这个程序,它给出了以下错误:

ERROR: In /builddir/build/BUILD/VTK6.0.0/Common/ExecutionModel/vtkDemandDrivenPipeline.cxx, line 715
vtkCompositeDataPipeline (0x2987f40): Input port 0 of algorithm vtkXMLStructuredGridWriter(0x2985d30) has 0 connections but is not optional.

这是完整的回溯

^{pr2}$

有人能帮我理解为什么会这样吗?在

这是节目单。提前感谢:)

import vtk
import math

nx = 4
ny = 4
nz = 40

def ijk_to_xyz(i,j,k):
  z = 2*3.14159*k/(nz - 1.0)
  x = math.sin(z) + (-1.0 + 2.0*i/(nx - 1.0))
  y = -1.0 + 2.0*j/(ny - 1.0)
  return (x,y,z)

def ijk_to_index(i,j,k):
  return i*(ny*nz) + j*nz + k

grid = vtk.vtkStructuredGrid()
grid.SetDimensions(40,4,4)

pts = vtk.vtkPoints()
pts.SetNumberOfPoints(nx*ny*nz)

p = 0
for i in range(nx):
  for j in range(ny):
     for k in range(nz):
    x,y,z = ijk_to_xyz(i,j,k)
    pts.InsertPoint(p, x, y, z)
        p = p + 1

grid.SetPoints(pts)

cdata = vtk.vtkFloatArray()
cdata.SetNumberOfComponents(1)
cdata.SetNumberOfTuples((nx-1)*(ny-1)*(nz-1))
cdata.SetName('cellData')

p = 0
for i in range(nx-1):
  for j in range(ny-1):
    for k in range(nz-1):
      cdata.InsertValue(p, i+j+k)
      p = p + 1

grid.GetCellData().SetScalars(cdata)

pdata = vtk.vtkFloatArray()
pdata.SetNumberOfComponents(1)
pdata.SetNumberOfTuples(nx*ny*nz)
pdata.SetName('pointData')

p = 0
for i in range(nx):
  for j in range(ny):
    for k in range(nz):
      pdata.InsertValue(p, i+j+k)
      p = p + 1

grid.GetPointData().SetScalars(pdata)

writer = vtk.vtkXMLStructuredGridWriter()
writer.SetFileName('grid.vts')
writer.SetInput(grid)
writer.Update()

Tags: toinforrangeptsgridwriternx