e.g.:
cdo -f nc import_binary in_grads.ctl out_ncdf.nc
您可以在CDO论坛的一些主题中找到更多相关内容:
https://code.zmaw.de/boards/1/topics/1031
https://code.zmaw.de/boards/1/topics/213
提示:CDO 在链接多个 CDO 操作符时,请使用 -L 选项以避免段错误,并考虑使用虚拟 RAM 空间(在大多数 Linux 发行版上为 /dev/shm)作为临时文件,以避免磁盘写入。
cdo -f nc import_binary in.ctl out.nc
COTC.18L.2012102512.000.ctl
COTC.18L.2012102512.000.dat
COTC.18L.2012102512.001.ctl
COTC.18L.2012102512.001.dat
COTC.18L.2012102512.002.ctl
COTC.18L.2012102512.002.dat
...
因此我写了一个小的bash脚本:
#!/bin/bash
for file in *.ctl
do
fname=${file%.ctl}
cdo -f nc import_binary ${fname}.ctl ${fname}.nc
echo ${fname}.nc
done
将它们全部转换为netcdf格式。
Note #1: CDO的构建可能会有些棘手,但如果你使用的是Linux或Mac操作系统,可以通过Conda进行安装。
如果你还没有Conda,请安装Miniconda (免费)。以下是安装步骤:
第一步。确保你有一个~.condarc
文件,并且它如下所示:
$ more ~/.condarc
channels:
- conda-forge
- defaults
步骤2:创建一个自定义的CDO环境来运行CDO:
$ conda create --yes -n CDO python=3.6 cdo
$ source activate CDO
第三步。运行您的nco
命令!
注意事项#2:我还创建了一个NcML
文件,在我的thredds数据服务器上虚拟聚合这些数据。该文件看起来像这样:
<netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2">
<aggregation dimName="time" type="joinExisting">
<scan location="." regExp=".*COTC\.18L\.[0-9]{10}\.[0-9]{3}\.nc$"/>
</aggregation>
</netcdf>