首页 > 解决方案 > 如何使用 python netcdf4 将 OrderedDict 写入 netcdf?

问题描述

我重新采样了 NetCDF 数据并组织在 OrderedDict 中(这是原始数据的原始组织)。但是当我使用以下脚本将其写入新的 netcdf 文件时:

ncout.createDimension('lat', len(y))
ncout.createDimension('lon', len(x))


# create latitude axis
lat = ncout.createVariable('lat', np.dtype('float64').char, ('lat'))
lat.standard_name = 'latitude'
lat.long_name = 'latitude'
lat.units = 'degrees_north'
lat.axis = 'Y'

# create longitude axis
lon = ncout.createVariable('lon', np.dtype('float64').char, ('lon'))
lon.standard_name = 'longitude'
lon.long_name = 'longitude'
lon.units = 'degrees_east'
lon.axis = 'X'

# create variable array
for key, value in variables.items():
    var = ncout.createVariable(key+'re', np.dtype('float32').char, ('lon', 'lat'))
    var.long_name =key
    var=value


# copy axis from the original dataset
#time= nc_file.time_coverage_end
lon = lons
lat= lats

新文件中的输出值变为相同的值:'9969209968386869046778552952102584320.000' 我找不到问题出在哪里以及如何解决。我已经确保 resample 的输出是正确的。你能给我一些建议吗?

标签: dictionaryordereddictionarynetcdf4

解决方案


你需要写:

var[:]=value

代替

var=value

在第一种情况下,您将现有 NetCDF 变量的值设置为value; 在第二种情况下,您只是创建一个新变量var(与 NetCDF 文件无关)。


推荐阅读