Back to snippets
eccodes_grib_file_message_iterator_with_key_extraction.py
pythonThis example demonstrates how to open a GRIB file, iterate through its messag
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())