Skip to content

使用CDO工具处理天机NetCDF4数据文件

CDO (Climate Data Operators) 是一个高效处理 NetCDF、GRIB 等气象数据文件的命令行工具,常用于查看、转换、插值和统计计算。本文介绍在 Linux 与 Windows 下安装 CDO 的方法,并总结几个常用操作示例,适用于天机 NetCDF4 数据文件的处理。更多请查看官方文档:https://code.mpimet.mpg.de/projects/cdo/wiki/Cdo#Documentation

1. Linux 下 CDO 安装(conda 方法)

在 Linux 系统中,可以通过 Conda 快速安装:

bash
#建议创建独立环境
conda create -n cdo_env -c conda-forge cdo netcdf4 -y
conda activate cdo_env

#验证安装是否成功:
cdo -V
#若输出版本信息,即表示安装成功。

2. Windows 下 CDO 安装与调用

CDO 官方没有直接提供 Windows 原生版本,但可通过以下方式使用:

2.1 Conda 安装(推荐)

bash
#建议创建独立环境
conda create -n cdo_env -c conda-forge cdo netcdf4 -y
conda activate cdo_env
#然后在 Windows 的 Anaconda Prompt 或 PowerShell 中直接调用:
cdo -V

2.2 WSL(Windows Subsystem for Linux)

如果数据处理量较大,建议安装 WSL2(Linux 子系统),然后在其中按照 Linux 方法安装 CDO,性能更佳。

3. 常见 CDO 命令示例

3.1 查看文件信息

bash
cdo -sinfo input.nc
cdo -info input.nc

• -sinfo:文件维度、变量、时间信息(简洁版)

• -info:显示更详细的统计信息,例如数据最大最小和平均值。

3.2 文件比较

bash
cdo -diff file1.nc file2.nc

输出两个文件的差异。

3.3 合并多个文件(时间维度)

bash
cdo mergetime file1.nc file2.nc file3.nc output.nc
#或者
cdo mergetime file*.nc output.nc

将多个文件根据文件中的时间序列进行合并。

3.4 选取经纬度范围

bash
cdo sellonlatbox,lon1,lon2,lat1,lat2 input.nc output.nc
#示例:选取 100°E120°E,20°N40°N 范围:
cdo sellonlatbox,100,120,20,40 input.nc output.nc

• -lon1:经度起始,数据类型为浮点数

• -lon2:经度结束,数据类型为浮点数

• -lat1:纬度起始,数据类型为浮点数

• -lat2:纬度结束,数据类型为浮点数

3.5 选取指定时间步

bash
cdo seltimestep,stp1/stp2 input.nc output.nc
#例如,选取第 1 到 10 个时间步。
cdo seltimestep,1/10 input.nc output.nc

| :- | • -stp1:时间步长起始,数据类型为整数

• -stp2:时间步长结束,数据类型为整数

3.6 选取指定变量

bash
cdo -selname,varname input.nc output.nc
#例如,选取天机数据中的2米气温数据
cdo selname,t2mz input.nc output.nc

• -varname:选取变量的变量名