我使用python-2.7和NetCDF4模块来读取netcdf文件。我需要从netcdf文件中读取一个全局属性(Lat(Degrees.Cents_of_degrees)
),该文件的名称中包含括号,但我无法读取它。我做了什么:
from netCDF4 import Dataset as NetCDFFile
filename = 'DDE30.2002.RG300004.nc'
nc = NetCDFFile(filename)
lat = nc.Lat(Degrees.Cents_of_degrees)
但我明白了:
AttributeError: NetCDF: Attribute not found
我尝试在括号前使用反斜杠但不起作用。 Here是netcdf文件。
答案 0 :(得分:2)
我想你想要getncattr
[docs]。可能最好不要依赖@ M.T.
lat = nc.getncattr('Lat(Degrees.Cents_of_degrees)')
答案 1 :(得分:0)
这是一个应该适用于您的案例的黑客,但我不建议进行概括。当您使用nc.myattribute
访问netCDF文件的属性时,您正在调用nc.__getattribute__('myattribute')
(请参阅documentation)。正如您所看到的,input属性在这里是一个字符串,因此它在允许值方面更加宽松。方法名称中的不需要的内容表示此库的作者不希望公开此功能。
因此,你能做的是:
lat = nc.__getattribute__('Lat(Degrees.Cents_of_degrees)')
将44.120147251339418
分配给lat
。