使用 Climate Data Operator (CDO) 插值 ECMWF ERA5 NetCDF 数据

ECMWF 下载的 ERA5 的气象数据,数据格式是 NetCDF,分辨率是 0.1° x 0.1° 的,这个分辨率实在太低了,使用前需要先插值下。网上搜下了,可以使用 Climate Data Operator (CDO) 进行插值操作,本文记录下使用方法。

 Climate Data Operator (CDO)

一、CDO 安装教程

老王在 Linux(Ubuntu)上跑的,直接通过 apt-get 安装即可:

apt-get install cdo

更多安装介绍可以去 Climate Data Operator (CDO) 官网查看:https://code.mpimet.mpg.de/projects/cdo/

二、CDO 插值教程

CDO 插值非常简单,这里直接分享别人的整理了:

target_grid(目标大小)可以是:

  1. a nc file to use the grid from
  2. a regular grid specifier e.g. r360x180
  3. a txt file with a grid descriptor (see below)

CDO 集成了多种插值方法,对应的命令如下:

  • remapbic : bicubic interpolation
  • remapbil : bilinear interpolation
  • remapnn : nearest neighbour interpolation
  • remapcon : first order conservative remapping
  • remapcon2 : 2nd order conservative remapping

You can use a grid descriptor file to define the area you need to interpolate to…

我这里是以经纬度的方式,按照指定的分辨率(0.00898315284119523)插值,descriptor file 如下:

gridtype=lonlat
xfirst=115
xinc=0.00898315284119523
xsize=334
yfirst=39
yinc=0.00898315284119523
ysize=334

其中 xfirst 就是最小的经度,可以用 cdo sinfon filename 查看。

之后用下面的命令插值:

cdo remapbic,CDO_proj all_2112.nc all_2112_1.nc

其中,CDO_proj 是上面的 descriptor file,all_2112.nc 是源文件,all_2112_1 是插值后的文件。

三、Python 使用 CDO 教程

CDO 可以直接通过 pip 安装,然后用下面的命令调用:

from cdo import Cdo
cdo=Cdo()
cdo.remapbil("target_grid",input="in.nc",output="out.nc")

但是老王在 Windows 上用时,遇到了多线程报错的问题,所以直接连上 Linux 服务器使用了。

赞(1)
关注我们
未经允许不得转载:老王博客 » 使用 Climate Data Operator (CDO) 插值 ECMWF ERA5 NetCDF 数据

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址