dictionary - 如何使用 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 的输出是正确的。你能给我一些建议吗?
解决方案
你需要写:
var[:]=value
代替
var=value
在第一种情况下,您将现有 NetCDF 变量的值设置为value
; 在第二种情况下,您只是创建一个新变量var
(与 NetCDF 文件无关)。
推荐阅读
- django - 在现有表上添加外键关系
- javascript - 从 HTML 文件输入中读取 JSON
- python - 网页抓取优衣库
- kubernetes - 通过 Istio VirtualService/Gateway 服务的应用程序的 Letsencrypt/Cert Manager 工作流程
- python - 如何根据超链接编辑烧瓶表中的条目
- python - 使用正则表达式拆分为列
- mysql - 从另一个表的 SELECT 更新列
- javascript - 如何使用 AJAX 使变量与函数的结果相等
- python - 我的 if/else 表达式不起作用我不知道为什么?
- statistics - 样本的预期均值/方差等于总体均值/方差