缩放保留元数据的 netcdf 文件中的特定字段

Scale a specific field in a netcdf file keeping metadata

我想按常量缩放 netcdf 文件中的特定字段。

使用 CDO 我知道如何按常量 $c:

缩放 所有 字段
cdo mulc,$c in.nc out.nc

但是要将其应用于特定字段,我必须删除变量,应用缩放比例,然后从原始文件中删除条目并合并文件,这是一种麻烦、缓慢且不是很好的解决方案优雅:

cdo merge -mulc,$c -selvar,$var in.nc -delvar,$var in.nc out.nc

我试过在 nco

ncap -s  "ACSWTTEN=10*ACSWTTEN" in.nc out.nc

这有效,但它从字段中删除了所有元数据,因为 nco 似乎以这种方式创建了一个新变量。同样,我可以手动重新定义所有元数据,但这似乎不是一种优雅的方法。

那么,有没有一种方法可以在不破坏元数据的情况下缩放包含许多字段的 netcdf 文件中的单个特定字段?

是的,事实上你上面的 NCO 命令是完全正确的,除了你需要使用 ncap2 而不是 ncap,它的前身:

ncap2 -s  "ACSWTTEN=10*ACSWTTEN" in.nc out.nc

我们很快就会弃用 ncap,因为情况令人困惑:)