我想向现有的netcdf文件中添加一个新变量,该变量会随文件中的时间变量线性增加,也就是说,在第一个时间片上,变量处处都有数字1,在第二个时间片上是设置为2,等等。
我知道如何在python或fortran中打开文件并定义和添加变量并写出修改后的文件,但是我希望可以通过命令行使用 nco 。我还想知道是否可以通过使用 ncdump 将文件转储为CDL格式,对其进行黑客处理并通过 ncgen 将其转回到netcdf来做到这一点,但这似乎更加漫长而又麻烦比起python方法。
答案 0 :(得分:1)
对于一维阵列,请使用此
ncap2 -s 'var=array(1,1,$time)' in.nc out.nc
对于多维数组,只需将其添加到零数组
ncap2 -s 'var=array(0,0,/$time,$lat,$lon/)+array(1,1,$time)' in.nc out.nc
数组的数字类型由数组函数的第一个参数的类型确定。有关详细信息,请参见array()
上的manual。