File: print_data.py

package info (click to toggle)
grib-api 1.28.0-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 219,936 kB
  • sloc: ansic: 111,654; sh: 14,820; makefile: 5,585; f90: 3,583; perl: 3,160; python: 2,830; yacc: 712; fortran: 468; lex: 330; cpp: 305; awk: 66
file content (51 lines) | stat: -rw-r--r-- 1,249 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#
# Copyright 2005-2018 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#

from __future__ import print_function
from past.builtins import xrange
import traceback
import sys

from gribapi import *

INPUT = '../../data/regular_latlon_surface.grib1'
VERBOSE = 1  # verbose error reporting


def example():
    f = open(INPUT)
    gid = grib_new_from_file(f)

    values = grib_get_values(gid)
    for i in xrange(len(values)):
        print ("%d %.10e" % (i + 1, values[i]))

    print ('%d values found in %s' % (len(values), INPUT))

    for key in ('max', 'min', 'average'):
        print ('%s=%.10e' % (key, grib_get(gid, key)))

    grib_release(gid)
    f.close()


def main():
    try:
        example()
    except GribInternalError as err:
        if VERBOSE:
            traceback.print_exc(file=sys.stderr)
        else:
            print (err.msg, file=sys.stderr)

        return 1

if __name__ == "__main__":
    sys.exit(main())