mirror of https://github.com/ecmwf/eccodes.git
ECC-1134: BUFR indexing (still experimental)
This commit is contained in:
parent
9c729e39e6
commit
ccd3bca790
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <<EOF
|
||||
Index keys:
|
||||
key name = stormIdentifier
|
||||
values = 27W, 70E, 71W
|
||||
Index count = 3
|
||||
|
||||
]}
|
||||
EOF
|
||||
|
||||
diff $tempRef $tempOut
|
||||
|
||||
# ------------------
|
||||
# Header MARS key
|
||||
# ------------------
|
||||
infile=${data_dir}/bufr/syno_multi.bufr
|
||||
${tools_dir}/bufr_index_build -k mars.ident -o $tempIndex $infile |\
|
||||
grep -q "mars.ident = { 01001, 01003, 01007 }"
|
||||
|
||||
|
||||
# Clean up
|
||||
rm -f $tempIndex $tempOut $tempRef
|
Loading…
Reference in New Issue