You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

You have a URL which contains a GRIB/BUFR message and you want to read it directly from the web

Step-by-step guide

Let's say you have a stream of in-memory bytes rather than a file which contains one or more GRIB or BUFR messages. The following python script shows you how you can decode those messages:

import requests
from eccodes import codes_new_from_message, codes_get, codes_release

url='https://some.gov/pub/data/temperature.grib2'
print('Started downloading...')
r = requests.get(url)
data = r.content # raw bytes

# Convert each field to a handle in turn
offset = 0
while offset < len(data):
    h = codes_new_from_message(data[offset:])
    print(offset, codes_get(h, 'step'), codes_get(h, 'shortName'))
    # Advance through the bytes by the length of the message
    offset += codes_get(h, 'totalLength')
    codes_release(h)




  • No labels