eccodes/tests/grib_change_packing.sh

98 lines
2.2 KiB
Bash
Raw Normal View History

2013-03-25 12:04:10 +00:00
#!/bin/sh
# --- check nothing bombs when changing packing
# --- for now limited to just a few packing schemes
. ./include.sh
#set -x
grib1=${data_dir}/reduced_latlon_surface_constant.grib1
grib2=${data_dir}/reduced_latlon_surface_constant.grib2
packing1="
grid_ieee
grid_simple
grid_simple_matrix"
2013-03-25 12:04:10 +00:00
packing2="
grid_ieee
grid_simple
2020-02-20 13:05:36 +00:00
grid_simple_matrix
grid_simple_log_preprocessing"
2013-03-25 12:04:10 +00:00
2018-11-27 17:39:55 +00:00
if [ $HAVE_JPEG -eq 1 ]; then
packing2="grid_jpeg "$packing2
fi
temp=temp.change_packing.grib
2017-11-30 17:49:46 +00:00
rm -f $temp
2013-03-25 12:04:10 +00:00
# --- test changing the packing
# arg 1 : input grib file
# arg 2-n : packing types to test
test_packing() {
grib=$1
2013-03-25 12:04:10 +00:00
if [ ! -f $grib ]; then
echo "Input data missing"
exit 1
fi
2013-03-25 12:04:10 +00:00
shift
while [ $# -gt 0 ]; do
packing=$1
2013-03-25 12:04:10 +00:00
${tools_dir}/grib_set -r -s packingType=$packing $grib $temp
result=`${tools_dir}/grib_get -p packingType $temp`
if [ "$result" != "$packing" ]; then
echo "Setting packing did not go right"
exit 1
fi
2013-03-25 12:04:10 +00:00
shift
done
2013-03-25 12:04:10 +00:00
rm -f $temp
2013-03-25 12:04:10 +00:00
}
# ECC-774
# ------------
input=${data_dir}/spherical_model_level.grib2
output=`${tools_dir}/grib_set -r -s packingType=spectral_simple $input $temp 2>&1`
grib_check_key_equals $temp packingType 'spectral_simple'
# Check no error was posted i.e. output string is empty
[ -z "$output" ]
res1=`${tools_dir}/grib_get '-F%.1f' -p avg,enorm $input`
res2=`${tools_dir}/grib_get '-F%.1f' -p avg,enorm $temp`
[ "$res1" = "$res2" ]
rm -f $temp
2019-11-27 13:37:40 +00:00
# IEEE to Simple Packing
# -----------------------
input=${data_dir}/grid_ieee.grib
${tools_dir}/grib_set -r -s packingType=grid_simple $input $temp
grib_check_key_equals $temp packingType 'grid_simple'
stats1=`${tools_dir}/grib_get -F%.2f -p skew,kurt $input`
stats2=`${tools_dir}/grib_get -F%.2f -p skew,kurt $temp`
[ "$stats1" = "$stats2" ]
# Change grib packing test
# -------------------------
2013-03-25 12:04:10 +00:00
test_packing $grib1 $packing1
test_packing $grib2 $packing2
# spectral_simple for GRIB1
# -------------------------
input=${data_dir}/spherical_model_level.grib1
${tools_dir}/grib_set -r -s packingType=spectral_simple $input $temp
grib_check_key_equals $temp packingType 'spectral_simple'
${tools_dir}/grib_ls -p numberOfCodedValues $temp
rm -f $temp