From ccd3bca790d92ba75224e4f7e3ddbe13f29e4b4b Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Tue, 12 Oct 2021 12:18:37 +0100 Subject: [PATCH] ECC-1134: BUFR indexing (still experimental) --- src/grib_index.c | 3 ++- tests/CMakeLists.txt | 1 + tests/bufr_indexing.sh | 47 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100755 tests/bufr_indexing.sh diff --git a/src/grib_index.c b/src/grib_index.c index 8255baf31..8fd4ac51f 100644 --- a/src/grib_index.c +++ b/src/grib_index.c @@ -1793,7 +1793,8 @@ int grib_index_dump_file(FILE* fout, const char* filename) f = file; while (f) { grib_file* prev = f; - fprintf(fout, "GRIB File: %s\n", f->name); + fprintf(fout, "%s File: %s\n", + index->product_kind == PRODUCT_GRIB ? "GRIB" : "BUFR", f->name); grib_context_free(c, f->name); f = f->next; grib_context_free(c, prev); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 8116b4dc8..c0528e29a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -134,6 +134,7 @@ if( HAVE_BUILD_TOOLS ) bufr_filter_extract_datetime bufr_filter_extract_area bufr_filter_unpack_pack + bufr_indexing bufr_json_data bufr_ls bufr_ls_json diff --git a/tests/bufr_indexing.sh b/tests/bufr_indexing.sh new file mode 100755 index 000000000..05fa82cbb --- /dev/null +++ b/tests/bufr_indexing.sh @@ -0,0 +1,47 @@ +#!/bin/sh +# (C) Copyright 2005- 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="bufr_indexing" +tempIndex=temp.$label.$$.idx +tempOut=temp.$label.$$.out +tempRef=temp.$label.$$.ref + +# ------------------ +# Data Section key +# ------------------ +infile=${data_dir}/bufr/tropical_cyclone.bufr +${tools_dir}/bufr_index_build -N -o $tempIndex -k stormIdentifier ${infile} + +# Must remove first line (filename specifics) +${tools_dir}/bufr_dump ${tempIndex} | sed '1d' > $tempOut + +cat > $tempRef <