NC文件提取前-了解NC文件基本属性信息
NetCDF是一组软件库和独立于机器的数据格式,支持创建、访问和共享面向阵列的科学数据。
在NC文件提取前,我们需要了解NC文件的基本信息:比如属性、维度、变量以及每个变量的基本情况。了解这些信息方便我们更好的获取NC文件数据。
# 获取nc基本属性信息
import netCDF4 as nc
# 获得netcdf4 的版本信息
print(nc.getlibversion(), nc.__version__)
print('-' * 50)
# 读取nc文件(nc文件路径),输出数据模型(属性、维度、变量)、文件格式、磁盘格式,表示已经打开了nc文件
filename = r'data\tas_daily_1995-1995.nc'
ncfileobj = nc.Dataset(filename=filename, mode='r')
print('filename =', filename)
print('data_model =', ncfileobj.data_model)
print('file_format =', ncfileobj.file_format)
print('disk_format =', ncfileobj.disk_format)
print('-' * 50)# 看文件有没有分组
print(f'groups {len(ncfileobj.groups)}')
print('-' * 50)# 获取属性数量
attrcount = len(ncfileobj.ncattrs())
print(f'globle attribures {str(attrcount)}')
print('-' * 50)
# 遍历属性信息
for item in ncfileobj.ncattrs():print(item, '=', ncfileobj.getncattr(item))
print('-' * 50)# 获取维度数量
dimcount = len(ncfileobj.dimensions)
print('dimensions ' + str(dimcount))
print('-' * 50)
# 遍历维度信息
for item in ncfileobj.dimensions.keys():ncdim = ncfileobj.dimensions[item]print(f'name ={item},size={ncdim.size}, isunlimited={ncdim.isunlimited()}')
print('-' * 50)# 获取变量数
varcount = len(ncfileobj.variables)
# print('variables ' + str(varcount))
print(f'variables {varcount}')
print('-' * 50)
content = None
# 遍历变量信息
for item in ncfileobj.variables.keys():ncvar = ncfileobj.variables[item]# print(item, ncvar.ndim, ncvar.shape, type(ncvar))print(ncvar)print('+' * 50)# 获取属性信息
lat = ncfileobj.dimensions['lat'].size
print(lat)
print('-' * 50)
lon = ncfileobj.dimensions['lon'].size
print(lon)
print('-' * 50)
time = ncfileobj.dimensions['time'].size
print(time)
print('-' * 50)
tas = ncfileobj.dimensions['tas'].size
print(tas)
print('-' * 50)