【问题标题】:How can I write my lists in Python to a NetCDF file?如何将 Python 中的列表写入 NetCDF 文件?
【发布时间】:2021-06-21 14:31:57
【问题描述】:

我尝试将一些 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', 'f4', ('lat',))
clims = ds.createVariable('clim', 'f4', ('clim',))
value1 = ds.createVariable('value_lat', 'f4', ('years', 'lat',))
value2 = ds.createVariable('value_clim', 'f4', ('years', 'clim',))

但现在我不确定如何将我的列表/数组准确写入 NetCDF 文件中的这些变量。有谁知道这是最容易做到的吗?感谢您的帮助!

【问题讨论】:

    标签: python list file netcdf


    【解决方案1】:

    假设您有变量/列表,其值为 yeardata、latdata、climdata、value1data、value2data。那么你所要做的就是:

    years[:] = yeardata;
    lats[:] = latdata;
    clims[:] = climdata;
    value1[:] = value1data;
    value2[:] = value2data;
    
    ds.close()
    

    正如您已经假设的那样,数据的维度必须与 netCDF 文件中的维度相匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-21
      • 2020-04-20
      • 1970-01-01
      • 2014-06-27
      • 2015-05-29
      • 1970-01-01
      • 2017-10-21
      • 2020-06-12
      相关资源
      最近更新 更多