如何存储适合paraview的结构化方格数据?
How to store structured square grid data suitable for paraview?
我有这样的数据
i j Rho ux vy
1 1 1.0 0 1.5
2 1 1.0 0.1 1
...
这些数字是单元格中心坐标(i 和 j)和该单元格的其他 属性 值。
所有单元格的大小都相同并且是正方形的。
我怎样才能保存我的数据以便 Paraview 可以读取它?
感谢您的关注。
我认为您可以开发一个 ParaView 编写器,将您的数据转换为 VTK 兼容格式。关于您拥有的单元格类型,我建议使用专门用于 vtkImageData
的 .vti
格式。
第一步是将单元格中心坐标转换为点坐标。假设 s
是单元格的大小,(i,j)
是其中心的坐标:
// using d for visiblity
d = s/2
// the embedding is in the plane, the value of z is arbitrary
z = 0
// list of points for one cell
p0 = (i-d, j-d, z)
p1 = (i-d, j+d, z)
p2 = (i+d, j-d, z)
p3 = (i+d, j+d, z)
我使用了伪代码,因为您没有特别指定语言。通过这种转换,请记住您应该避免重复点,因为连接的单元格共享公共点。
然后第二步是添加 属性 值作为标量或矢量场(参见 vtkDataArray) associated on the cells (see vtkCellData)。
解决方案如下
- 将您的数据集读取为 table 假设它是一个 csv 文件。
- 添加 TableToPoints 过滤器并正确设置 I 和 J。
- 添加 ResampleWithImageData 过滤器以生成点周围的单元格。
我有这样的数据
i j Rho ux vy
1 1 1.0 0 1.5
2 1 1.0 0.1 1
...
这些数字是单元格中心坐标(i 和 j)和该单元格的其他 属性 值。 所有单元格的大小都相同并且是正方形的。 我怎样才能保存我的数据以便 Paraview 可以读取它? 感谢您的关注。
我认为您可以开发一个 ParaView 编写器,将您的数据转换为 VTK 兼容格式。关于您拥有的单元格类型,我建议使用专门用于 vtkImageData
的 .vti
格式。
第一步是将单元格中心坐标转换为点坐标。假设 s
是单元格的大小,(i,j)
是其中心的坐标:
// using d for visiblity
d = s/2
// the embedding is in the plane, the value of z is arbitrary
z = 0
// list of points for one cell
p0 = (i-d, j-d, z)
p1 = (i-d, j+d, z)
p2 = (i+d, j-d, z)
p3 = (i+d, j+d, z)
我使用了伪代码,因为您没有特别指定语言。通过这种转换,请记住您应该避免重复点,因为连接的单元格共享公共点。
然后第二步是添加 属性 值作为标量或矢量场(参见 vtkDataArray) associated on the cells (see vtkCellData)。
解决方案如下
- 将您的数据集读取为 table 假设它是一个 csv 文件。
- 添加 TableToPoints 过滤器并正确设置 I 和 J。
- 添加 ResampleWithImageData 过滤器以生成点周围的单元格。