矢栅处理(4):Python读取netCDF文件
NC文件由于便捷存储多维数据(如大范围长时间序列),因而广泛用于气候,气象数据存储及交换。python文档netCDF4
安装:conda install -c conda-forge netcdf4
1 | import numpy as np |
NetCDF
NetCDF (Network Common Data Form),网络通用数据格式
NC文件包括以下几个属性
- 简单来说,netcdf是一个包含多自变量及其函数的文件。用公式来说就是f(x,y,z,…)=value,同时存储了xyz
- 函数的自变量x,y,z等在netcdf中叫做维(dimension) 或坐标轴(axix),
ds.dimensions
可以看到维度的信息 - 函数值与自变量均存储在(Variables),
ds.variables
属性则存储了数据的详细信息及数组文件。
具体案例见下方示例:
Python读nc文件
netCDF文件有五种(NETCDF3_CLASSIC, NETCDF3_64BIT_OFFSET, NETCDF3_64BIT_DATA, NETCDF4_CLASSIC和NETCDF4)读取之后ds.data_model
输出可以看到其实际存储格式。
1 | ncfile = 'E:\\Datasets\\temp\\China_1km_maxtmp_2017.nc' |
常见属性举例:时间这里是从1800年开始按天算的,实际中都要自行判断并转换,这里的温度的单位是K
1 | ds.dimensions |
数据矩阵访问,通常是掩码数组,这里是False,相当于无掩码,普通数组
1 | 'lon'][:] dt_dict[ |
其他类似,后面的操作都是numy多维数组的操作了
访问某天的全区域的数据
[1,:,:]
,也可以输入特定经纬度索引范围访问某点的时间序列数据
[:,index_lon,index_lat]
1 | 'maxtmp'][1,:,:] dt_maxtmp = dt_dict[ |