将 hdf5 转换为 netcdf 并重命名尺寸
Convert hdf5 to netcdf and rename dimensions
我有一组具有以下内容的 HDF5 文件 header:
netcdf control-A-2017-05-12-090000-g1 {
dimensions:
phony_dim_0 = 16 ;
phony_dim_1 = 16 ;
phony_dim_2 = 200 ;
phony_dim_3 = 2 ;
phony_dim_4 = 1 ;
phony_dim_5 = 4 ;
variables:
...
由于是 HDF5,维度创建为 phony_dim_x
。在这种情况下,phony_dim_0
和 phony_dim_1
分别是 y
和 x
坐标。我想适当地重命名尺寸。由于无法在 HDF5 中重命名维度(因为它们在技术上不存在),我需要先转换为 netcdf。为此,我使用 ncks in.h5 out.nc
.
然而,转换文件的header信息是:
netcdf control-A-2017-05-12-090500-g1 {
dimensions:
phony_dim_0 = 16 ;
phony_dim_1 = 200 ;
phony_dim_2 = 2 ;
phony_dim_3 = 1 ;
phony_dim_4 = 4 ;
variables:
...
这是重要的部分:两个 phony_dim_[0,1]
维度已合并为一个维度 phony_dim_0
。我认为这是因为它们具有相同的值,因此 netcdf 转换假定它们相同。
在 hdf5 文件中列为的变量
ACCPA(phony_dim_0, phony_dim_1) ;
现在是 ACCPA(phony_dim_0, phony_dim_0) ;
,有两个相同的维度。
因此,我无法单独重命名维度。如果我这样做 ncrename -d phony_dim_0,y out.nc
,我会得到 ACCPA(y, y) ;
任何人都可以指出正确的方向来解决这个问题吗?
问题最终出现在 ncks
。使用 ncks
转换文件会导致重复尺寸(例如 ACCPA(phony_dim_0, phony_dim_0) ;
)
改用nccopy
,转换后的 netCDF 文件没有产生重复的维度(ACCPA(phony_dim_0, phony_dim_1) ;
)
我有一组具有以下内容的 HDF5 文件 header:
netcdf control-A-2017-05-12-090000-g1 {
dimensions:
phony_dim_0 = 16 ;
phony_dim_1 = 16 ;
phony_dim_2 = 200 ;
phony_dim_3 = 2 ;
phony_dim_4 = 1 ;
phony_dim_5 = 4 ;
variables:
...
由于是 HDF5,维度创建为 phony_dim_x
。在这种情况下,phony_dim_0
和 phony_dim_1
分别是 y
和 x
坐标。我想适当地重命名尺寸。由于无法在 HDF5 中重命名维度(因为它们在技术上不存在),我需要先转换为 netcdf。为此,我使用 ncks in.h5 out.nc
.
然而,转换文件的header信息是:
netcdf control-A-2017-05-12-090500-g1 {
dimensions:
phony_dim_0 = 16 ;
phony_dim_1 = 200 ;
phony_dim_2 = 2 ;
phony_dim_3 = 1 ;
phony_dim_4 = 4 ;
variables:
...
这是重要的部分:两个 phony_dim_[0,1]
维度已合并为一个维度 phony_dim_0
。我认为这是因为它们具有相同的值,因此 netcdf 转换假定它们相同。
在 hdf5 文件中列为的变量
ACCPA(phony_dim_0, phony_dim_1) ;
现在是 ACCPA(phony_dim_0, phony_dim_0) ;
,有两个相同的维度。
因此,我无法单独重命名维度。如果我这样做 ncrename -d phony_dim_0,y out.nc
,我会得到 ACCPA(y, y) ;
任何人都可以指出正确的方向来解决这个问题吗?
问题最终出现在 ncks
。使用 ncks
转换文件会导致重复尺寸(例如 ACCPA(phony_dim_0, phony_dim_0) ;
)
改用nccopy
,转换后的 netCDF 文件没有产生重复的维度(ACCPA(phony_dim_0, phony_dim_1) ;
)