python中利用netCDF4库输出多维变量的基本步骤,大概分四步(以两个3维变量输出为例):
1. 创建一个待写入的nc文件:
import netCDF4 as nc
out_name = "CERES_AOD_201901-201912.nc"
f_out = nc.Dataset(out_name, 'w', format="NETCDF4_CLASSIC")
2. 对上述文件对象,创建数据维度信息(名称、大小):
lat_dim = f_out.createDimension('lat',len(lat_ERA5))
lon_dim = f_out.createDimension('lon',len(lon_ERA5))
time_dim = f_out.createDimension('time',12)
3. 对上述文件对象,创建要输出的变量(名称、数据类型、维度),并给出单位属性:
(这里需注意:经度、纬度、时间等坐标信息分别都需要一个变量存放,不要与上面的dimension混淆)
lat_var =f_out.createVariable('lat',np.float32, ('lat',))
lat_var.units = 'degrees_north'
lon_var =f_out.createVariable('lon',np.float32, ('lon',))
lon_var.units = 'degrees_east'
time_var =f_out.createVariable('time',np.int32, ('time',))
time_var.units = 'days since 2000-03-01 00:00:00'
aod55_var =f_out.createVariable('aod_55',np.float64, ('time','lat','lon',))
aod55_var.units = ''
aod84_var =f_out.createVariable('aod_84',np.float64, ('time','lat','lon',))
aod84_var.units = ''
4. 对上述变量赋值(此处赋值即代表写入文件):
lat_var[:] = lat_ERA5[:]
lon_var[:] = lon_ERA5[:]
time_var[:] = time_CERES[226:238]
aod55_var[:,:,:] = AOD_550_new[:,:,:]
aod84_var[:,:,:] = AOD_840_new[:,:,:]