缩放保留元数据的 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,因为情况令人困惑:)
我想按常量缩放 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,因为情况令人困惑:)