【发布时间】:2017-10-29 20:57:44
【问题描述】:
我正在尝试使用 pygrib 读取 GRIB2 文件。我设法打开文件并毫无问题地读取数据,但我需要自动化该过程,不幸的是每个文件都包含多个非常相似的字段:
1:Total Cloud Cover:% (avg):regular_ll:unknown:level 0 214:fcst time 0-1 hrs (avg):from 201705200000
2:Total Cloud Cover:% (avg):regular_ll:unknown:level 0 224:fcst time 0-1 hrs (avg):from 201705200000
3:Total Cloud Cover:% (avg):regular_ll:unknown:level 0 234:fcst time 0-1 hrs (avg):from 201705200000
4:Total Cloud Cover:% (avg):regular_ll:unknown:level 0 10:fcst time 0-1 hrs (avg):from 201705200000
5:Total Cloud Cover:% (instant):regular_ll:unknown:level 0 244:fcst time 1 hrs:from 201705200000
6:Total Cloud Cover:% (avg):regular_ll:unknown:level 0 211:fcst time 0-1 hrs (avg):from 201705200000
这些文件的唯一区别(如 pygrib 所见)是字段 typeOfFirstFixedSurface,但我不知道该字段是什么(并且在我获得 grib2 文件的网站上找不到相关信息)。我查看了每条消息的所有键/值参数,但没有找到任何其他有用的信息可以用来区分字段....
但是,当使用Panoply 时,我会看到更多参数,例如:
float Total_cloud_cover_convective_cloud(time=1, lat=721, lon=1440);
:long_name = "Total cloud cover @ Convective cloud layer";
:units = "%";
:abbreviation = "TCDC";
:missing_value = NaNf; // float
:grid_mapping = "LatLon_Projection";
:coordinates = "reftime time lat lon ";
:Grib_Variable_Id = "VAR_0-6-1_L244";
:Grib2_Parameter = 0, 6, 1; // int
:Grib2_Parameter_Discipline = "Meteorological products";
:Grib2_Parameter_Category = "Cloud";
:Grib2_Parameter_Name = "Total cloud cover";
:Grib2_Level_Type = "Convective cloud layer";
:Grib2_Generating_Process_Type = "Forecast";
我可以明确地使用 long_name 或 Grib_Variable_Id 字段来区分消息,但我无法使用 pygrib 访问这些“参数”。
有没有办法使用 pygrib 访问这些参数?
【问题讨论】:
-
查看my answer to my own question 关于 GRIB 数据,这可能会有所帮助...我几乎所有的头发都想弄清楚 GRIB 数据,因为文档简直太糟糕了:/
-
@errata 感谢您的替代方案,不幸的是,我尝试安装
iris_grib并没有成功,因为我没有设法安装gribapipython 模块......令人惊讶的是人们投入了多少努力创建新格式,而没有人能够使用它们,因为提议的 API 使用或安装都是一团糟...... -
如果你愿意,我可以与你分享我安装
iris所必须执行的步骤...完全一团糟,就像与 GRIB 相关的所有内容一样:/ -
@errata 我确实设法安装了
iris,问题是我不知道如何为python3 安装gribapi(以便能够使用iris_grib)-安装自源是一团糟,debian 的可用包需要 python3.5 和一些我无法访问的版本的 python 模块。我找到了一种方法来处理我想要使用的文件的问题(我可以将typeOfFirstFixedSurface的值链接到相应的long_name),但也许逐步添加是个好主意一步一步回答你的问题,我可以将此标记为重复。 -
我会给你写一个答案,希望对你或其他对此感到困扰的人有所帮助......