Try this notebook in Binder.

[1]:
!test -f ens_multi_subset_uncompressed.bufr || wget https://get.ecmwf.int/repository/test-data/pdbufr/test-data/ens_multi_subset_uncompressed.bufr

Generic: ENS point foreacast

[2]:
import pdbufr

The input BUFR data contains ensemble forecast data for a given location. There is only one message in the file having 51 uncompressed subsets (one subset per ensemble member).

In this notebook we read this data with the generic reader, which is the default reader.

Example 1

Extracting forecast data for the control forecast member:

[3]:
df = pdbufr.read_bufr("ens_multi_subset_uncompressed.bufr",
    columns=("ensembleMemberNumber", "latitude", "longitude", "timePeriod",
             "airTemperatureAt2M"),
    filters={"ensembleMemberNumber": 0})
df
[3]:
ensembleMemberNumber latitude longitude timePeriod airTemperatureAt2M
0 0 51.52 0.97 0 292.7
1 0 51.52 0.97 6 291.6
2 0 51.52 0.97 12 291.0
3 0 51.52 0.97 18 290.0
4 0 51.52 0.97 24 291.2
... ... ... ... ... ...
56 0 51.52 0.97 336 292.0
57 0 51.52 0.97 342 292.2
58 0 51.52 0.97 348 291.4
59 0 51.52 0.97 354 290.1
60 0 51.52 0.97 360 292.4

61 rows × 5 columns