CDO的使用笔记

本文参照CDO的PDF教程。

基本语法说明:

具体的应用场景

插值

插值之前需要了解grid信息,看PDF教程的Introduction-Horizontal grids-Grid description部分。

生成grid的描述文件,可以使用运算符griddes

插值可用的命令看PDF教程的Reference manual-Interpolation部分。

如果想要比较两个nc文件,那么我们可以通过将一个文件remap使得两个文件能够比较,可以使用如下的语法(通常是将分辨率降低)

常见的插值方法有:

这个Youtube视频对各种插值方法讲得非常详细。值得一看。最后还讲了用cdo插值的简单用法。regridding and interpolation - an essential life skill ! - YouTube

在选择插值方法的时候,判断标准是:

  1. 如果是降低分辨率: 用remapcon方法,可以将更多的点考虑在内,避免损失信息,尤其是碳通量,需要在空间上保持总量的一致 (一阶守恒),就可以用remapcon方法。
  2. 如果是提高分辨率: 忘记了,好尴尬

设置缺失值

有些nc文件可能没有正确设置缺失值。matlab和cdo将_FillValue视为缺失值,而nc文件可能没有设置这个属性,而是设置了missing_value。这个时候我们需要重新设置缺失值。

有些时候,我们需要修改缺失值,从C1变成C2

该命令使得nc文件中的C1值变成C2值。valid data不会受到影响。

裁剪研究区域

cdo进行空间范围选取的时候,边界的经纬度是像元边界的经纬度,而不是边缘栅格的中心坐标经纬度

 

计算栅格的面积

可以计算nc文件中的栅格的面积大小。

使用setgridarea可以设定cell_area属性。

缺点是,计算应该是按照球体计算的,没有考虑地球实际是一个椭球体。

参考:CDO手册,202页。

可能碰到的问题

内存分配出错

解决方法就是,将多个运算符分开来写。