- 积分
- 20
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2022-4-29
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
楼主最近有用到JRA55的再分析数据,因为是第一次处理GRIB格式数据,所以发个贴记录下。
1.1 在JRA55的官网上列出了几个合作机构的网址,都可以下载JRA55数据,但NCAR的网站注册下载比其他网站方便,所以我们选择对应的NCAR网站(按照自己需要的精度)。同时下载数据手册。
1.2.我们用在用户手册里找到自己需要的变量的所在的产品里(即:UNION OF AVAILABLE PRODUCTS)。例如我需要6h1.25°的海平面气压,就可以在手册里Table4.7找到,从而得知在JRA-55 6-Hourly 1.25 Degree Surface Analysis Fields中可以找到该变量。具体的流程是:DATA ACCESS - 对应产品的Web file listing- faceted browse - Pressure reduced to MSL !直接用wegt等方式下载数据链接。
2. 1 下载后的数据一般不带grib后缀,我们在手动添加.grib后缀后可以用Panoply等方式简单的查看该文件(非必需)。python的xarray兼容grib和nc,但是我们为了方便,可以将grib文件转换为nc,顺便在转换为nc的过程中删去一些不必要的气压层。
xarray不能直接读取grib,需要依赖cfgrib和eccodes包,这二个包的下载可以参考:ecCodes简介和安装 - 猫哥的大气科学学习园地 (500hpa.cn).另外楼主建议新建一个python环境来专门处理grib,不然cfgrib和eccodes二个包容易出现版本冲突而报错。
2.2
数据处理:我们可以在grib.sel时选定(isobaricInhPa=[850,500])等气压层来简化我们需要的数据:
import eccodes,cfgrib
import xarray as xr
from glob import glob
import os
basepath=r'F:/input data/JRA-55/' #grub数据所在文件夹outpath=r'F:/input data/ncdata/' #nc文件保存文件夹
path=basepath+'[size=13.0667px]anl_p125.034_vgrd.*' #选定所有时刻的等压面v风数据
lpath = [file for file in glob(path) if not( file.endswith('.idx') or file.endswith('.nc'))]for spath in lpath:
grib=xr.open_dataset(spath,engine='cfgrib')
#grib1=grib.isel(step=1)
dirname1=os.path.basename(spath).split("GRIB")[0]
dirname=outpath+dirname1+'.nc'
dirname2=dirname1+'.nc'
print(dirname2)
grib.to_netcdf(dirname)
grib.close()
|
|