如何使用CDO的delete运算符删除NetCDF的变量及全局属性
问题原因
你用错了运算符:CDO的delete运算符是用于删除变量、坐标维度的,删除NetCDF属性需要使用专门的delattribute(可简写为delatt)运算符。你之前给delete,param传的属性参数会被CDO识别为要删除的变量名,自然会报找不到参数的警告。
正确使用方法
delatt运算符的参数规则:
- 删单个变量的专属属性:格式为
变量名@属性名 - 删全局属性:需要加
global@前缀,格式为global@属性名 - 多个属性用英文逗号分隔即可
针对你的需求,要删除pr变量的missing_value属性、全局Title属性,正确命令如下:
cdo delatt,pr@missing_value,global@Title ifile.nc ofile.nc
补充常用用法
- 批量删除单个变量的所有属性:写为
变量名@*,例如删pr的所有属性:cdo delatt,pr@* ifile.nc ofile.nc - 批量删除所有全局属性:写为
global@*,例如:cdo delatt,global@* ifile.nc ofile.nc - 批量删除所有变量的同名称属性:用
*@属性名,例如删所有变量的missing_value属性:cdo delatt,*@missing_value ifile.nc ofile.nc
注:以上用法完全兼容你使用的1.9.9版本CDO,属性名大小写敏感,需要和实际文件中的属性拼写完全一致。
内容的提问来源于stack exchange,提问作者Campa
相关产品推荐
相关产品推荐

