2

我有兴趣使用该pynco包在 python 中压缩 NetCDF 文件。在 NCO 中,我会使用:

nccopy -d 3 input_file.nc output_file.nc

在python中,我尝试了以下方法:

from nco import Nco
Nco.nccopy(input='input_file.nc', output='output_file.nc', options=['-d 1'])

这会产生属性错误'Nco' has no attribute 'nccopy'nccopy内支持吗pynco

4

2 回答 2

4

nccopy是 netCDF 命令,而不是 NCO 命令。但是,ncks几乎可以做所有事情nccopy,还有很多其他事情。要按照您的示例进行压缩,请尝试

Nco.ncks(input='input_file.nc', output='output_file.nc', options=['-7 -L 1'])
于 2021-04-25T22:23:50.847 回答
2

只是列出一个替代方案pynco,您也可以在 python 中使用cdo包执行此操作:

from cdo import *
cdo = Cdo()
cdo.copy(input='input.nc',output='output.nc',options='-f nc4 -z zip_7')

您可以选择从轻 ( zip_1) 一直到最压缩 ( zip_9) 的压缩级别,我通常发现超过级别 4 或 5 并没有太大的增益(即额外的大小节省非常小)很多痛苦(命令需要更长的时间!)。我认为-f nc4如果输入是 netCDF4 标准,则可能不需要确保 netCDF4 输出,但无论如何放置它并没有什么坏处。

您可以使用安装 cdo

pip3 install cdo
于 2021-04-27T06:58:31.963 回答