从VTK文件中读取nodes/cells/points的位置坐标
Reading the position coordinates of nodes/cells/points from VTK files
我想从 VTK 文件(非结构化网格 - XML 格式)中读取点的空间坐标。
我正在使用 python (V 2.7),这是我正在使用的代码的一个小版本。
import vtk
import numpy
from vtk.util.numpy_support import vtk_to_numpy
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName( "MyFile.vtu" )
reader.Update()
field_array = reader.GetOutput().GetPointData().GetArray( "MyField" )
# this part will give the values of the "Field" in all points as an array
Point_cordinates = reader.GetOutput().GetPoints.GetData()
# this is not working
我想要的是将所有点的X、Y、Z坐标列为一个数组。
我查看了文档,找不到这个。
所以我找到了这个名为 meshio
的第三方工具,它可以用于此目的
你可以通过
安装这个
pip install meshio --user
我们可以这样使用它
import meshio
point_cordinates = meshio.read("YourFileName").points
# this will return a Nx3 array of xyz cordinates
ps:我仍在寻找使用默认 vVTK 库执行此操作的方法。
两点:
- 最后一行缺少括号。应该是
Point_cordinates = reader.GetOutput().GetPoints().GetData()
- 那么你应该使用 vtk_to_numpy :
numpy_coordinates = numpy_support.vtk_to_numpy(Point_cordinates)
在此处查看代码:https://gitlab.kitware.com/vtk/vtk/blob/master/Wrapping/Python/vtkmodules/util/numpy_support.py
和 VTK 论坛上的类似 post:https://discourse.vtk.org/t/how-to-print-a-list-of-vertices-location-and-ids-using-python/965
我想从 VTK 文件(非结构化网格 - XML 格式)中读取点的空间坐标。 我正在使用 python (V 2.7),这是我正在使用的代码的一个小版本。
import vtk
import numpy
from vtk.util.numpy_support import vtk_to_numpy
reader = vtk.vtkXMLUnstructuredGridReader()
reader.SetFileName( "MyFile.vtu" )
reader.Update()
field_array = reader.GetOutput().GetPointData().GetArray( "MyField" )
# this part will give the values of the "Field" in all points as an array
Point_cordinates = reader.GetOutput().GetPoints.GetData()
# this is not working
我想要的是将所有点的X、Y、Z坐标列为一个数组。 我查看了文档,找不到这个。
所以我找到了这个名为 meshio
的第三方工具,它可以用于此目的
你可以通过
安装这个pip install meshio --user
我们可以这样使用它
import meshio
point_cordinates = meshio.read("YourFileName").points
# this will return a Nx3 array of xyz cordinates
ps:我仍在寻找使用默认 vVTK 库执行此操作的方法。
两点:
- 最后一行缺少括号。应该是
Point_cordinates = reader.GetOutput().GetPoints().GetData()
- 那么你应该使用 vtk_to_numpy :
numpy_coordinates = numpy_support.vtk_to_numpy(Point_cordinates)
在此处查看代码:https://gitlab.kitware.com/vtk/vtk/blob/master/Wrapping/Python/vtkmodules/util/numpy_support.py
和 VTK 论坛上的类似 post:https://discourse.vtk.org/t/how-to-print-a-list-of-vertices-location-and-ids-using-python/965