使用 pynco 包压缩 netCDF 文件
Compressing a netCDF file with the pynco package
我有兴趣使用 pynco
包在 python 中压缩 NetCDF 文件。在命令行中,我通常会使用:
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'
。 pynco
是否支持 nccopy
?
nccopy
是 netCDF 命令,不是 NCO 命令。然而,ncks
几乎可以做 nccopy
能做的所有事情,还有很多其他的事情。要按照您的示例进行压缩,请尝试
Nco.ncks(input='input_file.nc', output='output_file.nc', options=['-7 -L 1'])
只是为了列出 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 并没有太多增益(即额外的尺寸节省非常小)带来很多痛苦(命令需要更长的时间!)。我认为如果输入是 netCDF4 标准,可能不需要 -f nc4
来确保 netCDF4 输出,但无论如何放它也无妨。
你可以用
安装cdo
pip3 install cdo
我有兴趣使用 pynco
包在 python 中压缩 NetCDF 文件。在命令行中,我通常会使用:
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'
。 pynco
是否支持 nccopy
?
nccopy
是 netCDF 命令,不是 NCO 命令。然而,ncks
几乎可以做 nccopy
能做的所有事情,还有很多其他的事情。要按照您的示例进行压缩,请尝试
Nco.ncks(input='input_file.nc', output='output_file.nc', options=['-7 -L 1'])
只是为了列出 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 并没有太多增益(即额外的尺寸节省非常小)带来很多痛苦(命令需要更长的时间!)。我认为如果输入是 netCDF4 标准,可能不需要 -f nc4
来确保 netCDF4 输出,但无论如何放它也无妨。
你可以用
安装cdopip3 install cdo