合并非结构化 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())
我有两个模拟后获得的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())