{"id":24220,"library":"pdbufr","title":"pdbufr","description":"pdbufr is a Python library for reading BUFR (Binary Universal Form for the Representation of meteorological data) files into pandas DataFrames. Built on ecCodes, it simplifies decoding of complex BUFR messages. Current version: 0.14.2, with monthly/quarterly releases.","status":"active","version":"0.14.2","language":"python","source_language":"en","source_url":"https://github.com/ecmwf/pdbufr","tags":["BUFR","meteorology","ecCodes","pandas","data","weather"],"install":[{"cmd":"pip install pdbufr","lang":"bash","label":"PyPI"}],"dependencies":[{"reason":"Required runtime dependency for BUFR encoding/decoding.","package":"eccodes","optional":false},{"reason":"Required for array operations.","package":"numpy","optional":false},{"reason":"Output data structures are pandas DataFrames.","package":"pandas","optional":false},{"reason":"Installs extra dependencies for full functionality (e.g., cfgrib).","package":"pdbufr[full]","optional":true}],"imports":[{"note":"Correct import for reading BUFR files.","symbol":"read_bufr","correct":"from pdbufr import read_bufr"}],"quickstart":{"code":"from pdbufr import read_bufr\n\ndf = read_bufr('path/to/file.bufr', columns=['latitude', 'longitude', 'airTemperature'])\nprint(df.head())","lang":"python","description":"Reads selected columns from a BUFR file into a pandas DataFrame."},"warnings":[{"fix":"Replace pdbufr.from_source(...) with pdbufr.read_bufr(...).","message":"The pdbufr.from_source function is deprecated since v0.14.0; use read_bufr directly.","severity":"deprecated","affected_versions":">=0.14.0"},{"fix":"Install eccodes via system package manager or conda, or set LD_LIBRARY_PATH.","message":"ECCODES_PATH environment variable is no longer supported. ecCodes must be in PATH or standard install location.","severity":"breaking","affected_versions":">=0.13.0"},{"fix":"Check BUFR parameter names via `read_bufr(file, flatten=False).columns`.","message":"Column names must match BUFR parameter names exactly; case-sensitive. Use `columns` parameter to avoid reading all columns.","severity":"gotcha","affected_versions":"all"},{"fix":"Specify flatten=False explicitly if you need nested structure.","message":"The `flatten` parameter default changed to True in v0.13.0; setting to False returns nested dicts.","severity":"deprecated","affected_versions":">=0.13.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install eccodes via conda ('conda install -c conda-forge eccodes') or system package manager (apt-get install libeccodes-dev).","cause":"ecCodes C library not installed or not found.","error":"ModuleNotFoundError: No module named 'eccodes'"},{"fix":"Use `read_bufr(file, flatten=False)` to see all available parameter names.","cause":"BUFR file does not contain the requested column name.","error":"KeyError: 'latitude'"},{"fix":"Verify file integrity and ensure it is a BUFR file (not GRIB or other).","cause":"File is corrupt or not a valid BUFR format.","error":"pdbufr.errors.EcCodesError: Error while loading BUFR file"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}