从 Python 中的 NetCDF MFDataset 获取变量属性
Getting variable attributes from NetCDF MFDataset in Python
我正在使用 MFDataset
在 python 3(在 Windows 上)加载多个 NetCDF 文件,我想遍历变量并查看属性。我能够很好地加载和读取数据,但是我想访问与变量关联的属性。
import netCDF4
file = r"C:\netcdf_files\data*.nc" #wildcarded NetCDF files
with netCDF4.MFDataset(file) as src:
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, variable.getncattr(attrname)))
当上面的代码片段运行时,出现以下异常:
Traceback (most recent call last):
File "netCDF4\_netCDF4.pyx", line 5026, in netCDF4._netCDF4._Variable.__getattr__ (netCDF4\_netCDF4.c:57060)
KeyError: 'getncattr'
对于单个文件 NetCDF 文件,加载了数据集:
import netCDF4
file = r"C:\netcdf_files\data1.nc" #single, explicit file
with netCDF4.Dataset(file) as src:
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, variable.getncattr(attrname)))
上面运行得很好,根据需要打印出变量属性。
我对使用 NetCDF 文件还是很陌生 - 有没有办法在使用 MFDataset 加载数据时访问变量属性?
谢谢!
看来getncattr
功能在使用MFDataset
时确实是不可用的。此解决方案似乎适用于 Dataset
和 MFDataset
:
import netCDF4
src = netCDF4.Dataset("drycblles.1.nc")
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, getattr(variable, attrname)))
# or :
#print("{} -- {}".format(attrname, variable.getncattr(attrname)))
src = netCDF4.MFDataset("drycblles.*.nc")
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, getattr(variable, attrname)))
在这两种情况下,我得到相同的输出。
我正在使用 MFDataset
在 python 3(在 Windows 上)加载多个 NetCDF 文件,我想遍历变量并查看属性。我能够很好地加载和读取数据,但是我想访问与变量关联的属性。
import netCDF4
file = r"C:\netcdf_files\data*.nc" #wildcarded NetCDF files
with netCDF4.MFDataset(file) as src:
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, variable.getncattr(attrname)))
当上面的代码片段运行时,出现以下异常:
Traceback (most recent call last):
File "netCDF4\_netCDF4.pyx", line 5026, in netCDF4._netCDF4._Variable.__getattr__ (netCDF4\_netCDF4.c:57060)
KeyError: 'getncattr'
对于单个文件 NetCDF 文件,加载了数据集:
import netCDF4
file = r"C:\netcdf_files\data1.nc" #single, explicit file
with netCDF4.Dataset(file) as src:
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, variable.getncattr(attrname)))
上面运行得很好,根据需要打印出变量属性。
我对使用 NetCDF 文件还是很陌生 - 有没有办法在使用 MFDataset 加载数据时访问变量属性? 谢谢!
看来getncattr
功能在使用MFDataset
时确实是不可用的。此解决方案似乎适用于 Dataset
和 MFDataset
:
import netCDF4
src = netCDF4.Dataset("drycblles.1.nc")
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, getattr(variable, attrname)))
# or :
#print("{} -- {}".format(attrname, variable.getncattr(attrname)))
src = netCDF4.MFDataset("drycblles.*.nc")
for name, variable in src.variables.items():
for attrname in variable.ncattrs():
print("{} -- {}".format(attrname, getattr(variable, attrname)))
在这两种情况下,我得到相同的输出。