Python 3 interface to decode and encode GRIB and BUFR files via the ECMWF ecCodes library.
Features:
- reads and writes GRIB 1 and 2 files,
- reads and writes BUFR 3 and 4 files,
- supports all modern versions of Python 3.9, 3.8, 3.7 and PyPy3,
- works on most Linux distributions and MacOS, the ecCodes C-library is the only system dependency,
- PyPI package can be installed without compiling, at the cost of being twice as slow as the original ecCodes module,
- an optional compile step makes the code as fast as the original module but it needs the recommended (the most up-to-date) version of ecCodes.
Limitations:
- Microsoft Windows support is untested.
The package is installed from PyPI with:
$ pip install eccodes
The Python module depends on the ECMWF ecCodes library that must be installed on the system and accessible as a shared library.
On a MacOS with HomeBrew use:
$ brew install eccodes
Or if you manage binary packages with Conda use:
$ conda install -c conda-forge eccodes
As an alternative you may install the official source distribution by following the instructions at https://confluence.ecmwf.int/display/ECC/ecCodes+installation
You may run a simple selfcheck command to ensure that your system is set up correctly:
$ python -m eccodes selfcheck Found: ecCodes v2.21.0. Your system is ready.
Refer to the ecCodes documentation pages for usage.
To test the much faster CFFI API level, out-of-line mode you need the
ecCodes header files.
Then you need to clone the repo in the same folder as your ecCodes
source tree, make a pip
development install and custom compile
the binary bindings:
$ git clone https://github.com/ecmwf/eccodes-python $ cd eccodes-python $ pip install -e . $ python builder.py
To revert back to ABI level, in-line more just remove the compiled bindings:
$ rm gribapi/_bindings.*
Development | https://github.com/ecmwf/eccodes-python |
Download | https://pypi.org/project/eccodes |
The main repository is hosted on GitHub, testing, bug reports and contributions are highly welcomed and appreciated:
https://github.com/ecmwf/eccodes-python
Please see the CONTRIBUTING.rst document for the best way to help.
Maintainer:
Contributors:
See also the list of contributors who participated in this project.
© Copyright 2017- ECMWF.
This software is licensed under the terms of the Apache Licence Version 2.0 which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
In applying this licence, ECMWF does not waive the privileges and immunities granted to it by virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.