CDO处理nc文件的命令

批量求日平均:

当文件夹下面有多个nc文件,每个nc文件都包含着对应的月数据,时间分辨率是小时。现在想要将小时数据合并为日平均数据,并且按月进行输出:

for file in v.1980*.nc; do cdo daymean "$file" "daily_$file"; done

上述代码是一个示例:比如我的文件夹下面有v.198001.nc、v.198002.nc、v.198003.nc、v.198004.nc、v.198005.nc、v.198006.nc、v.198007.nc等文件,前面的v.1980是每个文件名称相同的部分,*是不同的部分,.nc是文件后缀。经过上述操作,输出的文件为daily_v.198001.nc、daily_v.198002.nc、daily_v.198003.nc、daily_v.198004.nc、daily_v.198005.nc、daily_v.198006.nc、daily_v.198007.nc。每个文件就是包含当月的日平均数据。

多个文件合并成一个文件

当文件夹下面有多个nc文件,每个文件的空间分辨率和空间范围都是一样的,那么就可以将多个文件按照时间维度进行合并:

cdo -mergetime daily_*.nc 0.25_daily_v_merge.nc

上述代码是一个示例:合并出来的文件只有一个,即:0.25_daily_sq_merge.nc,包含所有daily_的时间。

当合并的时候,也许会出现错误:

这种错误是由于数据精度不正确,导致命令错误,只需要在cdo后面添加一个 -b F32 / -b F64就可以解决。如下:

cdo -b F32 -mergetime daily_*.nc 0.25_daily_v_merge.nc

cdo -b F64 -mergetime daily_*.nc 0.25_daily_v_merge.nc

F32和F64可能就是float32和float64精度,所以生成的0.25_daily_v_merge.nc文件大小也不一样。

批量截取空间范围

for file in v.1980*.nc; do cdo sellonlatbox,115,121,23,29 "$file" "FJ_$file"; done

截取范围是115-121°E,23-29°E,生成的文件前缀带“FJ_”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值