据我所知,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文件,或
它需要某种安装标志和重新安装
答案 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")