【发布时间】:2015-08-17 11:09:47
【问题描述】:
使用 xdmf 使用 Paraview 读取 netcdf 文件
我曾经使用xdmf 脚本解析netcdf 文件,以便在paraview 上创建3DSMesh。最重要的是,我添加了标量或向量场。 (所以 3DSMesh 提供了物理坐标)。
我从来没有想过实际上是否是最好的方法。它有效,所以我很好。 如果有更方便的方法请告诉我。
我可以使用以下脚本创建一个 3 维网格。
<?xml version="1.0" ?>
<!DOCTYPE Xdmf SYSTEM "Xdmf.dtd" []>
<Xdmf xmlns:xi="http://www.w3.org/2001/XInclude" Version="2.0">
<Domain>
<Grid Name="gridxyz">
<Topology TopologyType="3DSMesh" NumberOfElements="0032 0032 0063">
</Topology>
<!-- Read Coordinates -->
<Geometry GeometryType="X_Y_Z">
<DataItem Name="X" Format="HDF" NumberType="Float" Precision="8" Dimensions="0032 0032 0063">
grid_x.nc:/gridx
</DataItem>
<DataItem Name="Y" Format="HDF" NumberType="Float" Precision="8" Dimensions="0032 0032 0063">
grid_y.nc:/gridy
</DataItem>
<DataItem Name="Z" Format="HDF" NumberType="Float" Precision="8" Dimensions="0032 0032 0063">
grid_z.nc:/gridz
</DataItem>
</Geometry>
<!-- Read Scalar -->
<!-- Here I have bunch of scalars stored in different netcdf files -->
</Grid>
</Domain>
</Xdmf>
优点
- xdmf 脚本非常适合需要重复性任务。
缺点
-
此脚本需要以某种方式生成,或手动输入。并且需要更新,当尺寸或变量名称发生变化时
-
如果我想读取另一个标量,我需要添加一行
-
网格可以在两个方向上统一,第三个方向不统一,无需创建 3D 网格文件,但几何类型
dx_dy_dz不足以实现。
我在寻找什么
最近我意识到,只需单击打开(Paraview4.3),我就可以使用 paraview 打开 netcdf 文件。所以,我不再需要这些 xdmf 脚本了(几年前我无法在 Paraview 上打开 netcdf 文件)。
如何通过 Paraview GUI 创建
3DSMesh。那可能吗?还是有任何其他简单/更快的方法(而不是编写 python 脚本)? 有什么方法可以读取 1D 坐标并使用它们创建 3D 几何?
【问题讨论】: