问题描述
我在 Python 中有一些列表,我正尝试将这些列表写入 NetCDF 文件,但我不确定如何使其工作。
列表结构的一个例子是:
每个列表由多个列表本身组成,比如 17 个,每个列表有 3 个元素。第一个元素是一年,所以只是一个整数或一个字符串,第二个元素由 36 个数组组成,第三个元素由 5 个数组组成。
根据其他指南,我尝试以这种方式编写代码:
fn = 'mean_yearly_list.nc'
ds = nc.Dataset(fn,'w',format='NETCDF4')
year = ds.createDimension('date',None)
lat = ds.createDimension('lat',36)
clim = ds.createDimension('clim',5)
years = ds.createVariable('date','f4',('year',))
lats = ds.createVariable('lat',('lat',))
clims = ds.createVariable('clim',('clim',))
value1 = ds.createVariable('value_lat',('years','lat',))
value2 = ds.createVariable('value_clim','clim',))
但现在我不确定如何将我的列表/数组准确地写入 NetCDF 文件中的这些变量。有谁知道这是最简单的方法吗?感谢您的帮助!
解决方法
让我们假设您有变量/列表,其值为 yeardata、latdata、climdata、value1data、value2data。那么你所要做的就是:
years[:] = yeardata;
lats[:] = latdata;
clims[:] = climdata;
value1[:] = value1data;
value2[:] = value2data;
ds.close()
正如您已经假设的那样,数据的维度必须与 netCDF 文件中的维度匹配。