到eccodes grib和bufr解码器/编码器的python接口

eccodes-python的Python项目详细描述


Python3接口,通过 ECMWF ecCodes library

功能:

  • 读取和写入GRIB 1和2文件,
  • 读取和写入bufr 3和4文件,
  • 支持所有现代版本的Python3.7、3.6、3.5和PyPy3,
  • 在大多数linux发行版和macos上工作,eccodec-library是唯一的系统依赖,
  • 不需要编译就可以安装pypi包, 代价是比原来的eccodes模块慢一倍,
  • 可选的编译步骤使代码与原始模块一样快 但它需要eccodes>;=2.13.0的最新版本。

限制:

  • Microsoft Windows支持未经测试。

安装

从pypi安装软件包时使用:

$ pip install eccodes-python

系统依赖性

python模块依赖于ecmwfeccodes库 必须安装在系统上并作为共享库访问。

在带有自制程序的MacOS上使用:

$ brew install eccodes

或者如果使用conda管理二进制包,请使用:

$ conda install -c conda-forge eccodes

作为替代方案,您可以安装正式的源发行版 按照以下说明 https://software.ecmwf.int/wiki/display/ECC/ecCodes+installation

您可以运行一个简单的selfcheck命令来确保您的系统设置正确:

$ python -m eccodes selfcheck
Found: ecCodes v2.13.0.
Your system is ready.

使用量

请参阅eccodedocumentation pages 供使用。

实验功能

快速绑定

为了测试更快的cffiapi级别,离线模式需要eccode 头文件。 然后,您需要将repo克隆到与源树eccodes相同的文件夹中, 进行pipdevelopment安装并自定义编译二进制绑定:

$ git clone https://github.com/ecmwf/eccodes-python
$ cd eccodes-python
$ pip install -e .
$ python builder.py

要恢复到ABI级别,请删除编译的绑定:

$ rm gribapi/_bindings.*

贡献

主存储库托管在github上, 我们非常欢迎并感谢您的测试、错误报告和贡献:

https://github.com/ecmwf/eccodes-python

请参阅contribution.rst文档以获得最佳帮助。

主要开发人员:

另请参见contributors列表 他参加了这个项目。

许可证

版权所有2017-2019欧洲中期天气预报中心(ECMWF)。

根据apache许可证2.0版(以下简称“许可证”)授权; 除非符合许可证,否则您不能使用此文件。 您可以在http://www.apache.org/licenses/LICENSE-2.0获得许可证副本。 除非适用法律要求或书面同意,否则软件 根据许可证分发是按“原样”分发的, 无任何明示或默示的保证或条件。 有关管理权限的特定语言和 许可下的限制。

eccodes python的变更日志

0.9.2(2019-07-09)

  • 所有eccode测试现在都通过了
  • 简化xx-new-from-u文件调用
  • grib_set_string_数组的修复方法
  • 使用eccodes_dir定位库
  • 删除新样式的高级接口。它仍在 cfgrib

0.9.1(2019-06-06)

  • codes_get_long_arraycodes_get_double_array现在返回一个np.ndarray。 见:#3

0.9.0(2019-05-07)

  • 将项目声明为beta

0.8.0(2019-04-08)

  • 首次公开发行。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Gomoku javafx游戏中启用回合转换   java Akka ask onComplete呼叫两次   类实现可序列化时的java NotSerializableException   java在不同情况下使用不同的Hibernate用户类型   使用Jena库从Java中的RDF网页提取URI的xml解析   即使在将github证书添加到%java_HOME%之后,java SSLHandshakeException仍然存在异常   Android Studio Java TelephonyManager错误:非静态方法   java树的23个节点浪费了什么信息?   java如何使用JAXB读取XML文件?   java Jdbc列索引超出范围   java如何在Spring忽略基本包的情况下扫描整个类路径中的组件?   用于动态创建Swing组件的java侦听器   Java方法在嵌套类中不起作用   java在JSF中使用POST而不是GET重定向异地页面   文本向txt文件添加单词列表   java如何将复选框信息从视图发送到Thymeleaf中的控制器?   用于用户提示的java字符串输入   性能java编译器能否优化循环以尽早返回?   java为什么位集不可编辑?