Не удалось прочитать атрибут файла netcdf, так как имя атрибута содержит скобки
Я использую python-2.7 и модуль NetCDF4 для чтения файла netcdf. Мне нужно прочитать глобальный атрибут (Lat(Degrees.Cents_of_degrees)
) из файла netcdf, который содержит скобки в его имени, но я не могу прочитать его. Что я делаю:
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
Я пробовал использовать обратную косую черту перед скобками, но это не работает. здесь - файл netcdf.
2 ответа:
Я думаю, ты хочешь ...
getncattr
[ docs] . Вероятно, лучше не зависеть от частного метода, предложенного @M. T.lat = nc.getncattr('Lat(Degrees.Cents_of_degrees)')
Это хак, который должен работать в вашем случае, но который я не рекомендую обобщать. Когда вы обращаетесь к атрибуту файла netCDF с помощью
nc.myattribute
, под капотом вы вызываетеnc.__getattribute__('myattribute')
(см. документацию ). Как вы можете видеть, входной атрибут здесь является строкой, и поэтому он более разрешителен, когда речь заходит о допустимых значениях. Нерасчлененные значения в имени метода указывают на то, что авторы этой библиотеки не хотели раскрывать эту функциональность.Таким образом, что вы мог бы сделать это:
lat = nc.__getattribute__('Lat(Degrees.Cents_of_degrees)')
, который назначит
44.120147251339418
lat
.