使用ecCodes读取BUFR格式。
pdbufr的Python项目详细描述
使用eccode的BUFR格式的Pandas阅读器。在
具有开发状态的功能Alpha:
- 从BUFR文件中提取观察结果作为Pandas数据帧
- 读取包含未压缩和压缩子集的BUFR 3和4文件
- 支持所有现代版本的python3.9、3.8、3.7、3.6和PyPy3
- 在Linux、MacOS和Windows上运行时,ecCodes C库是唯一的二进制依赖项。在
限制:
- 没有对nodata值进行特殊处理(还没有)
- 没有康达锻造包(还没有)
- 过滤器只匹配精确的值。在
安装
安装pdbufr依赖项的最简单方法是通过Conda:
$ conda install -c conda-forge python-eccodes pandas
以及pdbufr本身作为PyPI的Python包,其中:
^{pr2}$系统依赖性
Python模块依赖于ECMWFecCodes库 必须安装在系统上并作为共享库访问。 一些Linux发行版提供了一个二进制版本,可以与标准包管理器一起安装。 在Ubuntu 18.04上,使用命令:
$ sudo apt-get install libeccodes0
在带有自制程序的MacOS上使用:
$ brew install eccodes
作为一种选择,您可以安装官方的源代码发行版 按照 https://software.ecmwf.int/wiki/display/ECC/ecCodes+installation
您可以运行一个简单的selfcheck命令来确保您的系统设置正确:
$ python -m pdbufr selfcheck Found: ecCodes v2.19.0. Your system is ready.
使用
首先,您需要一个格式良好的BUFR文件,如果您手头没有,可以下载 sample file:
$ wget http://download.ecmwf.int/test-data/metview/gallery/temp.bufr
您可以使用ecCodes命令行工具bufr_ls和bufr_dump到 了解结构和键/值,可用于选择您的观测值 对…感兴趣。在
pdbufr.read_bufr函数返回一个带有请求列的pandas.DataDrame。 它接受BUFR消息头上的查询过滤器 这是非常快的和查询过滤器上的观察键。 筛选器与精确值匹配或与列表中的某个值匹配,并且所有筛选器都必须匹配:
>>>importpdbufr>>>df_all=pdbufr.read_bufr('temp.bufr',columns=('stationNumber','latitude','longitude'))>>>df_all.head()stationNumberlatitudelongitude090758.47-78.08182353.75-73.6729-90.000.00348618.43-69.88416521.98-159.33>>>df_one=pdbufr.read_bufr(...'temp.bufr',...columns=('stationNumber','latitude','longitude'),...filters={'stationNumber':907},...)>>>df_one.head()stationNumberlatitudelongitude090758.47-78.08>>>df_two=pdbufr.read_bufr(...'temp.bufr',...columns=('stationNumber','data_datetime','pressure','airTemperature'),...filters={'stationNumber':[823,9]},...)>>>df_two.head()stationNumberpressureairTemperaturedata_datetime0823100000.0NaN2008-12-0812:00:00182397400.0256.72008-12-0812:00:00282393700.0255.12008-12-0812:00:00382392500.0255.32008-12-0812:00:00482390600.0256.72008-12-0812:00:00>>>df_two.tail()stationNumberpressureairTemperaturedata_datetime19092990.0NaN2008-12-0812:00:0019192790.0206.32008-12-0812:00:0019292170.0NaN2008-12-0812:00:0019392000.0203.12008-12-0812:00:0019491390.0197.92008-12-0812:00:00
贡献
主存储库托管在GitHub上, 测试、错误报告和贡献受到高度欢迎和赞赏:
https://github.com/ecmwf/pdbufr
请看贡献.rst提供帮助的最佳方式。在
主要开发人员:
主要贡献者:
{a8参与该项目的人员名单。在
许可证
2019年欧洲中期天气预报中心(ECMWF)版权所有。在
根据Apache许可证2.0版(“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在:http://www.apache.org/licenses/LICENSE-2.0获取许可证副本。 除非适用法律要求或书面同意 根据许可证分发的是“按原样”分发的, 没有任何明示或暗示的保证或条件。 有关管理权限和的特定语言,请参阅许可证 根据许可证的限制。在
- 项目
标签: