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) |