首页 > 解决方案 > 导入 nco 包:TypeError:“NoneType”类型的对象没有 len()

问题描述

我正在尝试使用 nco 包使用 ncrcat 合并多个 netcdf 文件。这本身很容易做到,但我无法超越第二行:

from nco import Nco
nco=Nco()

mrms1= nc.Dataset("/Users/arian/project/data/mrms_20190501/20190501_190000.nc")
mrms2= nc.Dataset("/Users/arian/project/data/mrms_20190501/20190501_190500.nc")

nco.ncrcat(input=[mrms1, mrms2], output='testnet.nc')

nco=Nco() 给出错误的地方:

TypeError: object of type 'NoneType' has no len()

通常,我知道当您尝试从无到有获取长度时会出现此错误,但据我所知,必须创建此实例才能在脚本中使用 ncrcat。

我确保 anaconda 上有 nco 和 pynco 的更新版本。我也尝试使用 cdo 包来合并文件,但我得到了同样的错误。我还在终端中使用 ncrcat 作为命令行,但我得到一个“术语不被识别为 cmdlet、函数、脚本文件或可运行程序”,所以这是一个单独的蠕虫罐。此外,netCDF4.MFDataset 不起作用,因为数据没有时间维度来聚合,xarray 也没有,这会给出 TypeError: coercing to Unicode: need string or buffer, Dataset found。

根据数小时的研究,我觉得 nco len() Typerror 是最容易修复的,但欢迎我提到的任何帮助。提前致谢。

标签: pythonpackagenetcdfncocdo-climate

解决方案


两点

1) 输入必须是文件名字符串或文件名字符串列表,
例如 input =["20190501_190000.nc", "20190501_190500.nc"]

2) 我不是 conda 方面的专家,但要运行 pynco,nco 命令必须在您的 PATH 环境变量中


推荐阅读