Paraview可以读取我的NetCDF4(HDF5)文件

时间:2014-07-30 12:52:19

标签: vtk netcdf paraview

据我所知,paraview可以通过其VTK后端读取经典的netcdf文件。但经过多次尝试后,我无法读取使用增强型数据模型的netcdf 4文件。我想使用新的文件格式,因为它允许与MPI并行输出。

我从http://www.unidata.ucar.edu/software/netcdf/examples/programs/编译了一个示例C程序,将创建标志更改为NC_NETCDF4,并尝试在paraview(v4.0.1)中打开生成的文件,我通过ubuntu软件包管理器安装。它总是告诉我“找不到一个读者(...)。请选择一个:( ...)” 但是,没有一个读者可以选择实际读取文件。

有人可以告诉我是否

  • paraview根本无法打开netcdf 4文件,或

  • 它需要某种安装标志和重新安装

  • 在paraview中有一些我还没有找到的奇迹选择吗?

3 个答案:

答案 0 :(得分:1)

解决方案是从kitware下载站点下载当前版本,而不是ubuntu软件包管理器中的版本。显然,在ubuntu的paraview包中有一些安装标志设置错误。

答案 1 :(得分:1)

xmdf个文件帮助我阅读了 paracd 旧版本的 netcdf 文件。

我用它们来处理另一个问题我不确定它对你是否重要 netcdf 文件是根据数组索引保存的。如果您希望使用正确的物理坐标在 paraview 上显示它们,我认为唯一的方法是创建一个xmdf文件。 不确定这是否是唯一的方法,请在有其他方式时发表评论,另外请查看我的question

示例xmdf文件如下所示:

<?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="064 0129 0513">
        </Topology>
<!-- Read Coordinates -->
        <Geometry GeometryType="X_Y_Z">
           <DataItem Name="X" Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                       grid.nc:/gridx
           </DataItem>
           <DataItem Name="Y" Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                       grid.nc:/gridy
           </DataItem>
           <DataItem Name="Z" Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                       grid.nc:/gridz
           </DataItem>
        </Geometry>
<!-- Read Scalar -->
        <Attribute Name="ux1" AttributeType="Scalar" Center="node">
           <DataItem Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                fields021.nc:/ux1
           </DataItem>
        </Attribute>
        <Attribute Name="uy1" AttributeType="Scalar" Center="node">
           <DataItem Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                fields021.nc/uy1
           </DataItem>
        </Attribute>
        <Attribute Name="uz1" AttributeType="Scalar" Center="node">
           <DataItem Format="HDF" NumberType="Float" Precision="8" Dimensions="0064 0129 0513">
                fields021.nc:/uz1
           </DataItem>
        </Attribute>
     </Grid>
   </Domain>
</Xdmf>

答案 2 :(得分:0)

我在OS X上的Paraview 5.5.0-RC3遇到了同样的问题。通过将'classic mode'中的NetCDF文件保存起来解决了这个问题,如下所示:

from netCDF4 import Dataset
foo_dataset = Dataset("foo.nc", "w", format="NETCDF4_CLASSIC")