【问题标题】:How to concatenate using ncrcat or cdo merge with packed netcdf files如何使用 ncrcat 或 cdo 与打包的 netcdf 文件合并
【发布时间】:2020-07-29 21:19:21
【问题描述】:

我有 ERA5 文件,我正在尝试将它们连接成月度文件。似乎文件已被打包以减小大小,从而使文件中的数据类型变短。当我尝试 ncrcat 时,它会警告遇到包装属性 "add_offset",然后将所有文件连接在一起。但是,数据的值变得混乱。我尝试使用 ncpdq -U 解压缩文件,然后 ncrcat 连接哪个有效。但是生成的文件太大而无法使用,当我尝试 ncpdq 重新打包生成的文件时,我收到 ma​​lloc() failure 这似乎与内存/RAM 问题有关.

我也尝试过 cdo merge,奇怪的是它对大多数连接都非常有效,但是一些文件失败并输出此错误 "Error (cdf_put_vara_double): NetCDF: Numeric转换无法表示”

那么有没有办法在这些文件仍然打包的时候连接它们,或者至少有一种方法可以在连接大文件后重新打包它们

【问题讨论】:

  • 您能否添加指向失败文件的链接?
  • 但同时我建议将 -f 32 添加到您的 cdo 命令中
  • 当然@Robert,我在这里上传了几个文件。当我对这两个文件执行ncrcat时,切换到下一年时生成的文件会有不同的值drive.google.com/drive/folders/…
  • 我很快就尝试cdo mergetime 可以处理这两个文件
  • 是的,但是我发现了两个 cdo mergetime 不起作用的文件。我在这里上传了它们。 drive.google.com/drive/folders/…

标签: nco cdo-climate


【解决方案1】:

您可以尝试 netCDF4 压缩,而不是在连接后重新打包大文件,例如,

ncpdq -U -7 -L 1 inN.nc in_upk_cmpN.nc # Loop over N
ncrcat in_upk_cmp*.nc out.nc

祝你好运!

【讨论】:

    【解决方案2】:

    数据打包时,CDO经常会因为精度损失太大而抛出错误,

    cdo -b32 mergetime in*.nc out.nc 
    

    应该做到这一点并避免错误。如果你想压缩文件,你可以试试这个:

    cdo -z zip_9 copy out.nc out_compressed.nc 
    

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 2019-11-01
      • 2013-06-28
      • 2021-05-07
      • 1970-01-01
      • 2021-12-23
      相关资源
      最近更新 更多