This commit is contained in:
Shahram Najm 2015-03-12 17:38:43 +00:00
parent b3f8f4e573
commit cb77f3eabc
3 changed files with 74 additions and 2 deletions

View File

@ -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)

View File

@ -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())

View File

@ -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}