爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2183|回复: 6

S2S模式的grib数据转nc的问题

[复制链接]

新浪微博达人勋

发表于 2022-12-3 19:37:15 | 显示全部楼层 |阅读模式
100金钱
最近在处理S2S模式的数据,因为不懂ncl,于是就先用wgrib2将grib文件转成nc文件再用python处理。

以cma的低温为例。
50m的grib文件我用wgrib2转成的nc文件为27m,同事用ncl转成的nc文件却有100m
[size=14.6667px]
分别读取了2个nc文件后,发现确实我转出来的只有1个成员,而同事转出来的有4个成员。

网上搜索了之后发现,可以用python的xarray库处理,但是直接读取的话,会有报错。[size=14.6667px]
import xarray as xr

filein = 's2s_babj_2015_20150131_mn2t6.grib'
data = xr.open_dataset(filein, engine='cfgrib')  
print(data)
报错:
cfgrib.dataset.DatasetBuildError: multiple values for unique key, try re-open the file with one of:
    filter_by_keys={'dataType': 'cf'}
    filter_by_keys={'dataType': 'pf'}



增加了datatype的限定,
发现‘cf’输出的还是一个成员。

import xarray as xr

filein = 's2s_babj_2015_20150131_mn2t6.grib'
data = xr.open_dataset(filein, engine='cfgrib',backend_kwargs={'filter_by_keys':{'dataType': 'cf'}})
print(data)

结果:
<xarray.Dataset>
Dimensions:            (step: 240, latitude: 121, longitude: 240)
Coordinates:
    number             int32 ...
    time               datetime64[ns] ...
  * step               (step) timedelta64[ns] 0 days 06:00:00 ... 60 days 00:...



但是‘pf’输出的则是3个成员。
import xarray as xr

filein = 's2s_babj_2015_20150131_mn2t6.grib'
data = xr.open_dataset(filein, engine='cfgrib',backend_kwargs={'filter_by_keys':{'dataType': 'pf'}})
print(data)

结果:
<xarray.Dataset>
Dimensions:            (number: 3, step: 240, latitude: 121, longitude: 240)
Coordinates:
  * number             (number) int32 1 2 3
    time               datetime64[ns] ...
  * step               (step) timedelta64[ns] 0 days 06:00:00 ... 60 days 00:...



于是就有了两个问题:
1.这‘cf’和‘pf’分别是什么意思,为什么它们的成员数不同?
2.python如何像ncl那样将grib文件转成nc文件,即包括了所有成员?

求各位大佬解惑




密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2022-12-3 19:41:20 | 显示全部楼层
截图发一直失败,于是贴了文字,怎么感觉排版乱了
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-12-4 09:28:33 | 显示全部楼层
cf 是Control forecast (控制实验当然只有一组)
pf是Perturbed forecast。
方便起见,你可以把他们认为是不同的四组members,问题也不大。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-12-5 09:10:56 | 显示全部楼层
474620961 发表于 2022-12-4 09:28
cf 是Control forecast (控制实验当然只有一组)
pf是Perturbed forecast。
方便起见,你可以把他们认为是 ...

感谢说明。
那请问有办法用非ncl的方式直接转出4个成员吗?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-12-5 09:46:27 | 显示全部楼层
signor9 发表于 2022-12-5 09:10
感谢说明。
那请问有办法用非ncl的方式直接转出4个成员吗?

cdo -f nc copy XXX.grib XXX.nc
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-12-5 17:09:07 | 显示全部楼层
474620961 发表于 2022-12-5 09:46
cdo -f nc copy XXX.grib XXX.nc

感谢感谢。
cdo我还是第一次知道,摆渡了一下感觉很厉害,我这就去试试
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2022-12-15 21:08:39 | 显示全部楼层
看不懂哈哈哈哈
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表