Python 3.x 在python中使用模块netcdf4写入NetCDF3文件

Python 3.x 在python中使用模块netcdf4写入NetCDF3文件,python-3.x,netcdf4,Python 3.x,Netcdf4,我在使用netcdf4函数写入netcdf3文件时遇到问题。我尝试使用create variable函数,但它给出了以下错误:NetCDF:正在尝试对NetCDF-3文件执行NetCDF-4操作 nc = Dataset(root.fileName,'a',format="NETCDF4") Hycom_U = nc.createVariable('/variables/Hycom_U','float',('time','lat','lon',)) Hycom_V = nc.createVa

我在使用netcdf4函数写入netcdf3文件时遇到问题。我尝试使用create variable函数,但它给出了以下错误:NetCDF:正在尝试对NetCDF-3文件执行NetCDF-4操作

nc = Dataset(root.fileName,'a',format="NETCDF4")

Hycom_U = nc.createVariable('/variables/Hycom_U','float',('time','lat','lon',))

Hycom_V = nc.createVariable('/variables/Hycom_V','f4',('time','lat','lon',))
数控=

根组(NETCDF3\u经典数据模型,文件格式NETCDF3):
netcdf_库版本:4.1.3
格式_版本:HFRNet_1.0.0
产品版本:HFRNet_1.1.05
公约:CF-1.0
标题:夏威夷,近实时海面海洋速度,
2公里分辨率
机构:斯克里普斯海洋学研究所
资料来源:表层海洋高频雷达
历史记录:2017年2月22日00:55:46:NetCDF文件已创建
2017年2月22日00:55:46:GDOP过滤的U和V<1.25;
FMRC最佳数据集
参考文献:Terrill,E.等人,2006年。数据管理与实时
分布在高频雷达全国网络中。诉讼
在马萨诸塞州波士顿举行的MTS/IEEE海洋2006年会议上,
2006年9月。
创作者姓名:马克·奥特罗
creator_电子邮件:motero@ucsd.edu
创建者地址:http://cordc.ucsd.edu/projects/mapping/
摘要:高频雷达估计的海面海速为
代表上0.3-2.5米的
海洋。近实时的主要目标
加工就是从中生产出最好的产品
处理时的可用数据。径向的
速度测量是从单个
通过美国高频雷达网的雷达站点。
每小时的径向数据由未加权的
夏威夷2km分辨率网格上的最小二乘法
生成近实时的表面电流图。
地理空间纬度:20.487279892
地理空间纬度最大值:21.572086122
地理空间最小值:-158.903594971
地理空间最大值:-157.490005493
网格分辨率:2km
网格投影:等距圆柱
地区描述:美国、夏威夷群岛
cdm_数据_类型:网格
特征类型:栅格
地点:原fmrc:高频雷达,夏威夷,2公里分辨率,每小时RTV
历史记录:由Netcdf Java CDM(NetcdfCFWriter)翻译成CF-1.0约定
原始数据集=fmrc:高频雷达,夏威夷,2公里分辨率,每小时RTV;翻译日期=2017年2月23日星期四13:35:32 GMT
尺寸:时间(25)、纬度(61)、经度(77)
变量(维度):浮点32 u(时间,纬度,经度),浮点64时间运行(时间),浮点64时间(时间),浮点32纬度(纬度),浮点32经度(经度),浮点32 v(时间,纬度,经度)
组:

我可以使用哪些netcdf 3操作将数据添加到文件中?我发现我可以手动添加数据,只需这样做
nc.variables[“Hycom_”]=U2
,它直接添加数据,而无需其他操作。有更好的方法吗?

我认为问题在于您声称该文件为netCDF4格式:

nc = Dataset(root.fileName,'a',format="NETCDF4")`
但您确实希望表明它是netCDF3:

nc = Dataset(root.fileName,'a',format="NETCDF3_CLASSIC")

可以找到其他文档。

我找到了!我无法将路径用作变量名

Hycom_=nc.createVariable('Hycom_','float',('time','lat','lon',))


它为我正确地创建了一个变量。

不幸的是,它没有解决这个问题。我尝试了不同的格式,但它们都给出了相同的错误:(
nc = Dataset(root.fileName,'a',format="NETCDF3_CLASSIC")