1# 2# Copyright 2005-2018 ECMWF. 3# 4# This software is licensed under the terms of the Apache Licence Version 2.0 5# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0. 6# 7# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by 8# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. 9# 10 11import traceback 12import sys 13 14from gribapi import * 15 16INPUT = '../../data/gts.bufr' 17VERBOSE = 1 # verbose error reporting 18 19 20def example(): 21 f = open(INPUT) 22 23 while 1: 24 bid = gts_new_from_file(f) 25 if bid is None: 26 break 27 28 iterid = grib_keys_iterator_new(bid) 29 30 # Different types of keys can be skipped 31 # grib_skip_computed(iterid) 32 # grib_skip_coded(iterid) 33 # grib_skip_read_only(iterid) 34 35 while grib_keys_iterator_next(iterid): 36 keyname = grib_keys_iterator_get_name(iterid) 37 keyval = grib_get_string(iterid, keyname) 38 print "%s = %s" % (keyname, keyval) 39 40 grib_keys_iterator_delete(iterid) 41 grib_release(bid) 42 43 f.close() 44 45 46def main(): 47 try: 48 example() 49 except GribInternalError, err: 50 if VERBOSE: 51 traceback.print_exc(file=sys.stderr) 52 else: 53 print >> sys.stderr, err.msg 54 55 return 1 56 57if __name__ == "__main__": 58 sys.exit(main()) 59