eccodes/tests/grib_indexing.sh

114 lines
2.9 KiB
Bash
Raw Normal View History

2013-03-25 12:04:10 +00:00
#!/bin/sh
2020-01-28 14:32:34 +00:00
# (C) Copyright 2005- ECMWF.
2013-03-25 12:04:10 +00:00
#
# 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.
2013-03-25 14:23:07 +00:00
#
2013-03-25 12:04:10 +00:00
# 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.ctest.sh
2013-03-25 12:04:10 +00:00
2022-07-22 16:57:02 +00:00
label="grib_indexing_test"
2020-03-30 15:37:17 +00:00
temp=temp.$label.index.out
infile=${data_dir}/index.grib
2013-03-25 12:04:10 +00:00
2020-03-30 15:37:17 +00:00
# Writes to "out.gribidx"
$EXEC ${test_dir}/grib_indexing ${infile} > $temp
diff ${data_dir}/index.ok $temp
2013-03-25 12:04:10 +00:00
2020-03-30 15:37:17 +00:00
# reads from "out.gribidx"
$EXEC ${test_dir}/grib_read_index ${infile} > $temp
diff ${data_dir}/index.ok $temp
2013-03-25 12:04:10 +00:00
2020-03-30 15:37:17 +00:00
rm -f out.gribidx $temp
2014-10-15 18:02:50 +00:00
2015-11-27 18:00:29 +00:00
#-------------------------------
# Test grib_index_build
#-------------------------------
2020-03-30 15:37:17 +00:00
tempIndex=temp.$label.$$.idx
tempOut=temp.$label.$$.out
tempRef=temp.$label.$$.ref
2020-04-10 16:10:13 +00:00
${tools_dir}/grib_index_build -N -o $tempIndex ${infile} >/dev/null
2018-11-27 21:11:24 +00:00
# Must remove first two lines (filename specifics)
${tools_dir}/grib_dump ${tempIndex} | sed '1,2d' > $tempOut
#cat $tempOut
2018-11-27 21:11:24 +00:00
cat > $tempRef <<EOF
Index keys:
2020-04-10 16:10:13 +00:00
key name = mars.date
values = 20090129
key name = mars.time
values = 0
key name = mars.expver
values = 0001
key name = mars.stream
values = enfo
key name = mars.class
values = od
key name = mars.type
values = pf
2018-11-27 21:11:24 +00:00
key name = mars.step
values = 12, 24, 48, 60
key name = mars.param
values = 130.128, 129.128
2020-04-10 16:10:13 +00:00
key name = mars.levtype
values = pl
2018-11-27 21:11:24 +00:00
key name = mars.levelist
values = 10, 50, 100, 200, 250, 300, 400, 500, 700, 850, 925, 1000
key name = mars.number
values = 1, 2, 3, 4
2020-04-10 16:10:13 +00:00
key name = mars.iteration
values = undef
key name = mars.domain
values = g
key name = mars.fcmonth
values = undef
key name = mars.fcperiod
values = undef
key name = mars.hdate
values = undef
key name = mars.method
values = undef
key name = mars.model
values = undef
key name = mars.origin
values = undef
key name = mars.quantile
values = undef
key name = mars.range
values = undef
key name = mars.refdate
values = undef
key name = mars.direction
values = undef
key name = mars.frequency
values = undef
2018-11-27 21:11:24 +00:00
Index count = 384
EOF
diff $tempRef $tempOut
2020-04-10 16:10:13 +00:00
${tools_dir}/grib_index_build -N -k mars.levtype -o $tempIndex ${data_dir}/tigge_cf_ecmwf.grib2 |\
2015-11-27 18:00:29 +00:00
grep -q "mars.levtype = { sfc, pl, pv, pt }"
echo "grib_compare with index files..."
# ------------------------------------
2020-03-30 15:37:17 +00:00
tempIndex1=temp.$label.$$.1.idx
tempIndex2=temp.$label.$$.2.idx
tempGribFile1=temp.$label.$$.file1.grib
tempGribFile2=temp.$label.$$.file2.grib
cat ${data_dir}/high_level_api.grib2 ${data_dir}/sample.grib2 > $tempGribFile1
cat ${data_dir}/sample.grib2 ${data_dir}/high_level_api.grib2 > $tempGribFile2
2020-04-10 16:10:13 +00:00
${tools_dir}/grib_index_build -N -o $tempIndex1 $tempGribFile1
${tools_dir}/grib_index_build -N -o $tempIndex2 $tempGribFile2
${tools_dir}/grib_compare $tempIndex1 $tempIndex2
rm -f $tempIndex1 $tempIndex2 $tempGribFile1 $tempGribFile2
# Clean up
2018-11-27 21:11:24 +00:00
rm -f $tempIndex $tempOut $tempRef