繁体   English   中英

查看 NetCDF 元数据而不会因大文件大小/格式而绊倒

[英]View NetCDF metadata without tripping on large file size / format

概括

我需要帮助让 NCO 工具发挥作用。 我遇到了错误

“一个或多个变量大小违反格式限制”

...当试图只查看文件中的变量列表时:

ncdump -h isrm_v1.2.1.ncf

当我不要求读取任何大变量时,在这个问题上绊倒似乎很奇怪……只是元数据。 是否有任何我应该或可以传递的标志以避免此错误?

代表

isrm_v1.2.1.ncf (165 GB) 在Zenodo上可用。

细节

我刚刚在运行 OS X 11.6.5 的 Mac(我知道,我知道)上通过brew --install nco --build-from-source安装了 NCO 套件。 ncks --version说 5.0.6。

提示表示赞赏。 我一直在浏览ncks文档几个小时,但没有太多见识。 一个朋友能够在运行实际 Linux 的不同系统上分割文件,所以我很确定我的 NCO 安装是罪魁祸首。

我怎样才能深入挖掘以找到根本原因? NCO 工具看起来不是很冗长。 我知道 NetCDF 有不同的子格式(3、4、...),但我什至不确定如何验证我尝试访问的 .nc 文件的版本/格式。

我更大的目标是能够对其进行切片,例如ncks -v pNH4 -d layer,0 isrm_v1.2.1.ncf pNH4L0.nc ,但如果我什至无法查看元数据,我想我需要先解决这个问题.

作为记录,错误消息的更详细版本是:

提示:尝试将输入文件一起复制或聚合到超过 output 文件格式的每个文件容量的 output 文件时,以及尝试复制、聚合或定义超出每个变量约束的单个变量时,会发生 NC_EVARSIZE 错误output 文件格式。 all.netCDF 格式的每个文件限制在现代计算机上不少于 8 EiB,因此任何 NC_EVARSIZE 错误几乎可以肯定是由于违反了每个变量限制。 相关限制:.netCDF3.NETCDF_CLASSIC 格式将固定变量的大小限制为小于 2^31 B = 2 GiB ~ 2.1 GB,并将每条记录的变量记录到该大小。 当且仅当它是最后定义的变量时,单个变量才可能超过此限制。.netCDF3.NETCDF_64BIT_OFFSET 格式将固定变量的大小限制为小于 2^32 B = 4 GiB ~ 4.2 GB,并将每个记录的变量记录为该大小。 任何数量的变量都可以达到(但不超过)固定变量的这个大小,或者记录变量的每个记录的这个大小。 .netCDF3.NETCDF_64BIT_DATA 和.netCDF4.NETCDF4 格式没有实际导入的可变大小限制。 如果数据集中的任何变量超过这些限制,请将 output 文件更改为足够大的格式,从具有 64 位偏移量(-6 或 --64)的 .netCDF3 classic 到具有 64 位数据的 .netCDF/CDF5(使用 -5) 或 to.netCDF4(使用 -4 或 -7)。 详情请见http://nco.sf.net/nco.html#fl_fmt

提示赞赏!

ncdump不是 NCO 程序,所以我无法帮助您,只是说在这种情况下打印元数据不应导致错误,因此请尝试ncks -m in.nc而不是ncdump -h in.nc

然而,您遇到的 hyperslab 问题很可能是由于试图将太多数据推入无法容纳的 .netCDF 格式。 通用的解决方案是将数据写入容量更大的 .netCDF 格式:

尝试以下任一命令:

ncks -5 -v pNH4 -d layer,0 isrm_v1.2.1.ncf pNH4L0.nc
ncks -7 -v pNH4 -d layer,0 isrm_v1.2.1.ncf pNH4L0.nc

格式记录在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM