合并非结构化 vtk 文件未在 paraview 中显示任何内容

Merging unstructured vtk file is not showing any display in paraview

我有两个模拟后获得的vtk文件需要合并以进行可视化。最初,我用 vtkPolyData 编写了代码,但由于它是非结构化的,所以我将其更改为 vtkAppendFiler。在这两种情况下,尽管文件包含输出内容,但我无法看到任何可视化效果。

代码结构如下:

from vtk import vtkAppendFilter, vtkUnstructuredGridWriter, vtkPolyData, vtkUnstructuredGridReader

reader = vtkUnstructuredGridReader()
append = vtkAppendFilter()

filenames = ['file1.vtk', 'file2.vtk']
for file in filenames:
    reader.SetFileName(file)
    reader.Update()
    polydata = vtkPolyData()
    polydata.ShallowCopy(reader.GetOutput())
    append.AddInputData(polydata)

append.Update()    

writer = vtkUnstructuredGridWriter()
#writer = vtkPolyDataWriter()
writer.SetFileName('output.vtk')
writer.SetInputData(append.GetOutput())
writer.Write()

reader 的输出类型是 vtkUnstructuredGrid。当您将其放入 vtkpolydata 时,您尝试附加空数据集。

编辑

一个vtk文件只包含一个数据集。它的类型在文件顶部定义,不依赖于 reader。如果你知道在你的情况下它总是一个非结构化网格,你可以使用 vtkUnstructuredGridReader。并且输出将始终是 vtkUnstructuredGrid.

您可以更改脚本:

- polydata = vtkPolyData()
- polydata.ShallowCopy(reader.GetOutput())
+ unstructured = vtkUnstructuredGrid()
+ unstructured.ShallowCopy(reader.GetOutput())