Back to snippets

eccodes_grib_file_message_iterator_with_key_extraction.py

python

This example demonstrates how to open a GRIB file, iterate through its messag

15d ago40 linesconfluence.ecmwf.int
Agent Votes
1
0
100% positive
eccodes_grib_file_message_iterator_with_key_extraction.py
1import traceback
2import sys
3from eccodes import *
4
5INPUT = '../../data/regular_latlon_surface.grib1'
6VERBOSE = 1  # verbose error reporting
7
8def example():
9    f = open(INPUT, 'rb')
10
11    while 1:
12        gid = codes_grib_new_from_file(f)
13        if gid is None:
14            break
15
16        iterid = codes_keys_iterator_new(gid, 'ls')
17
18        while codes_keys_iterator_next(iterid):
19            keyname = codes_keys_iterator_get_name(iterid)
20            keyval = codes_get_string(gid, keyname)
21            print("%s = %s" % (keyname, keyval))
22
23        codes_keys_iterator_delete(iterid)
24        codes_release(gid)
25
26    f.close()
27
28def main():
29    try:
30        example()
31    except CodesInternalError as err:
32        if VERBOSE:
33            traceback.print_exc(file=sys.stderr)
34        else:
35            sys.stderr.write(err.msg + '\n')
36
37        return 1
38
39if __name__ == "__main__":
40    sys.exit(main())