Python 将NetCDF深度从浮点转换为双精度

Python 将NetCDF深度从浮点转换为双精度,python,netcdf,nco,cdo-climate,Python,Netcdf,Nco,Cdo Climate,我有几百个NetCDF文件,我想通过地理空间分析工具处理这些文件,但是该工具要求深度变量为双精度,并且当前为浮点。我找到了下面的文章 但在尝试跑步时: ncap2 -s 'depth=double(depth)' C:\Users\***\input.nc C:\Users\***\output.nc 将创建一个临时文件,其中包含netcdf的头信息,但从未完成处理,并且还指示深度字段仍然是浮点。此外,这并不解决处理多个文件的问题 我在CDO方面没有经验,并且发现nco sourgefor

我有几百个NetCDF文件,我想通过地理空间分析工具处理这些文件,但是该工具要求深度变量为双精度,并且当前为浮点。我找到了下面的文章

但在尝试跑步时:

ncap2 -s 'depth=double(depth)' C:\Users\***\input.nc C:\Users\***\output.nc 
将创建一个临时文件,其中包含netcdf的头信息,但从未完成处理,并且还指示深度字段仍然是浮点。此外,这并不解决处理多个文件的问题


我在CDO方面没有经验,并且发现nco sourgeforce信息不明显,我唯一的其他编码经验是使用Python。

您尝试的命令在所有最新版本的nco上对我都很有效,尽管我没有访问Windows计算机的权限。如果您有访问权限,请在Linux或MacOS上尝试,或制作错误报告。对于多文件,将命令放在文件上的循环中,如许多示例所示,例如。具有讽刺意味的是,去年我在ncpdq中添加了一个双->浮点转换例程,因为大多数人希望节省空间,而不是消耗空间。我将在TODO列表中添加一个float->double in
ncpdq

您也可以使用cdo将所有变量转换为双精度:

cdo -b 64 copy input.nc output.nc
如果要指定浮点类型,则为

cdo -b f64 copy input.nc output.nc

注意:这会将所有变量从浮点转换为双精度,我不确定使用CDO时是否只能像nco那样更改一个特定字段。

您的原始帖子中的“DCO”是“CDO”还是“nco”的拼写错误?是的,谢谢。我已经做了,只是想确保我没有错误地引用你:-)别忘了,你可以通过使用绿色勾号接受“最有用”的答案,我认为这是Charlie的,因为它可以让你将一个选择的变量转换为两倍。NCO的当前快照包含一个新功能,可以简单地实现这一点。ncpdq接受一个新映射flt_dbl,它将所有浮点(无整数)提升为双倍。NCO版本4.9.1将包含此功能。如果你精通从源头构建,你现在就可以使用它。如果你这样做了,请给出反馈。NCO的当前快照包含一个新功能,可以简单地实现这一点。ncpdq接受一个新映射flt_dbl,它将所有浮点(无整数)提升为双倍。NCO版本4.9.1将包含此功能。如果你精通从源头构建,你现在就可以使用它。如果有,请给出反馈。双精度双注释?;-)