diff --git a/examples/C/get_product_kind.c b/examples/C/get_product_kind.c index c79a4885a..916b36758 100644 --- a/examples/C/get_product_kind.c +++ b/examples/C/get_product_kind.c @@ -11,8 +11,8 @@ /* * C Implementation: get_product_kind * - * Description: how to query a mix of messages to see - * the kind of product (e.g. GRIB, BUFR etc) + * Description: how to process a file containing a mix of messages + * and print the kind of product (e.g. GRIB, BUFR etc) */ #include "eccodes.h" void usage(const char *app) diff --git a/examples/python/get_product_kind.py b/examples/python/get_product_kind.py new file mode 100644 index 000000000..5dcfe457c --- /dev/null +++ b/examples/python/get_product_kind.py @@ -0,0 +1,51 @@ +# +# Copyright 2005-2015 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. +# + +# Python implementation: get_product_kind +# +# Description: how to process a file containing a mix of messages +# and print the kind of product (e.g. GRIB, BUFR etc) + + +import traceback +import sys +from eccodes import * + +VERBOSE=1 # verbose error reporting + +def example(): + if len(sys.argv) < 2: + print >>sys.stderr, 'Usage: ',sys.argv[0],' file' + sys.exit(1) + + f = open(sys.argv[1]) + while 1: + id = codes_new_from_file(f, CODES_PRODUCT_ANY) + if id is None: break + + print 'product: ', codes_get(id, 'kindOfProduct', str) + + codes_release(id) + + f.close() + +def main(): + try: + example() + except CodesInternalError,err: + if VERBOSE: + traceback.print_exc(file=sys.stderr) + else: + print >>sys.stderr,err.msg + + return 1 + +if __name__ == "__main__": + sys.exit(main()) diff --git a/examples/python/get_product_kind.sh b/examples/python/get_product_kind.sh new file mode 100755 index 000000000..804e2093f --- /dev/null +++ b/examples/python/get_product_kind.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Copyright 2005-2015 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. +# + +. ./include.sh + +label="get_product_kind_p" +fTmp=${label}.tmp + +# Create a file containing both GRIB and BUFR messages +cat ${data_dir}/sample.grib2 ${data_dir}/bufr/syno_multi.bufr >$fTmp + +$PYTHON get_product_kind.py $fTmp >/dev/null 2>&1 + +rm -f ${fTmp}