【问题标题】:Convert NetCDF depth from Float to Double将 NetCDF 深度从 Float 转换为 Double
【发布时间】:2020-04-10 07:41:03
【问题描述】:

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

convert all the variables and dimensions from int/float to double in netcdf file

但是在尝试运行时:

ncap2 -s 'depth=double(depth)' C:\Users\***\input.nc C:\Users\***\output.nc 

创建了一个临时文件,其中包含 netcdf 的标头信息但从未完成处理,并且还指示深度字段仍然是浮点数。此外,这并不涉及处理多个文件。

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

【问题讨论】:

  • 您的原始帖子中的“DCO”是否是“CDO”或“NCO”的拼写错误?
  • 好的,谢谢。我会修复
  • 已经完成了,只是想确保我没有误引你 :-) 不要忘记你可以通过使用绿色勾号来接受“最有用”的答案,我认为是查理的,因为它使您能够将选择的单个变量转换为双精度。

标签: python netcdf nco cdo-climate


【解决方案1】:

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

cdo -b 64 copy input.nc output.nc

如果你想指定浮点类型,那么它是

cdo -b f64 copy input.nc output.nc

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

【讨论】:

    【解决方案2】:

    您尝试的命令在所有最新版本的 NCO 上都适用于我,尽管我无法访问 Windows 机器。如果您有访问权限,请在 Linux 或 MacOS 上尝试,或提交错误报告。对于多个文件,将命令放在文件上的循环中,如许多示例中所示,例如this one。具有讽刺意味的是,我去年向ncpdq 添加了一个 double->float 转换例程,因为大多数人想要节省空间,而不是消耗它。我将在 TODO 列表中的ncpdq 中添加一个 float->double。

    【讨论】:

    • NCO 的当前快照包含一个新功能,可以轻松完成此操作。 ncpdq 接受一个新映射 flt_dbl,它将所有浮点数(非整数)提升为双精度数。 NCO 4.9.1 版将包含此功能。如果您精通从源代码构建,您现在可以使用它。如果你这样做,请提供反馈。
    • NCO 的当前快照包含一个新功能,可以轻松完成此操作。 ncpdq 接受一个新映射 flt_dbl,它将所有浮点数(非整数)提升为双精度数。 NCO 4.9.1 版将包含此功能。如果您精通从源代码构建,您现在可以使用它。如果你这样做,请提供反馈。
    • 双精度的双注释? ;-)
    猜你喜欢
    • 2016-08-13
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多