我有一个2d的坐标数组,在每个坐标上我都有压力值。我想以我以后可以在techplot或paraview中打开它们的方式导出我的数据和坐标集。
我已经在vtk上阅读了很多,但找不到我的问题的解决方案。我知道它应该很容易,但我在这里和开始时都是新手。
谢谢
答案 0 :(得分:1)
一个简单的解决方案是将您的数据写入CSV文件。
CSV文件包含点的坐标和这些点的变量值。例如,这是我的文件的开头:
"X" , "Y" , "Z" , "R"
-5.00e+00 , -2.00e+00 , 0.00e+00 , 5.39e+00
-3.89e+00 , -2.00e+00 , 0.00e+00 , 4.37e+00
-2.78e+00 , -2.00e+00 , 0.00e+00 , 3.42e+00
-1.67e+00 , -2.00e+00 , 0.00e+00 , 2.60e+00
在ParaView中可视化您的数据:
在ParaView中打开文件。
导入选项将显示在"属性" pannel(见下文)。检查字段分隔符是否正确,然后按"应用"。
使用表格分数过滤器
在管道浏览器中选择CSV阅读器(与文件同名的元素)。转到过滤器菜单,在主菜单中,转到"按字母顺序排列",然后查找"表到点"。
此过滤器的属性面板显示如下。在此面板中,您必须指明哪个列定义点的X,Y和Z坐标。由于您拥有2D数据,因此您可以检查" 2D点"忽略Z列的选项。然后检查"应用"。
如果视图窗口中没有任何内容,请单击管道浏览器中TableToPoints元素旁边的眼睛符号。
创建多边形数据集
通过这些操作,您可以将数据可视化为按数量着色的点。例如:
为了更好的可视化,我建议使用Delaunay 2D过滤器创建一个poloygonal数据集。在管道浏览器中选择TableToPoints元素,然后转到Filters菜单并查找" Delaunay 2D"在过滤器列表中。使用此滤镜,您将获得平滑的插值可视化。以下是我的示例文件的结果:
答案 1 :(得分:0)
请参阅VTK文件格式指南:http://www.vtk.org/wp-content/uploads/2015/04/file-formats.pdf
您需要将文件另存为结构化点,其中n_x和n_y大小(VTK用语中的维度)大于1且n_z维度为1。
您的数据文件应该是
# vtk DataFile Version 2.0
This is a sample data set describing a 2D array of floats with dimensions 128 x 256.
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 128 256 1
ORIGIN 0.0 0.0 0.0
SPACING 1.0 1.0 1.0
SCALARS pressure float 1
LOOKUP_TABLE default
1.0
1.0
...
<128*256 total entries>
名称保存扩展名为.vtk
的文件,您可以在ParaView中加载它。
答案 2 :(得分:0)
我想补充一下Cory Quammen的回答。 尝试应用他的方法时,导入.vtk文件或Paraview(版本5.8.1)时出现以下错误:
vtkstructuredpointsreader (0x5513c30): unrecognized keyword: scalars
我不确定是什么原因造成的,但是我通过显式定义CELL_DATA
和POINT_DATA
来解决。就我而言,生成的.vtk如下所示:
# vtk DataFile Version 3.0
Vtk output for binned flow configurations (metric in Ångström)
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 65 1 30
ORIGIN 870.6375 0.0 0.0
SPACING 1.996875 25.0 1.9977631578947368
CELL_DATA 1856
POINT_DATA 1950
SCALARS density float 1
LOOKUP_TABLE default
25.206808815618885
36.654412373503654
36.242826782279884
36.50975262319155
35.96262518604988
34.16361654279422
31.625047088384182
30.86263741338999
30.848340565843436
...
我希望这可以帮助遇到同样问题的人们。