diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bb5fc094e..748c39aae 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -87,6 +87,8 @@ list( APPEND tests_data_reqd optimize_scaling_sh grib1to2 grib2to1 + grib1to3 + grib2to3 badgrib grib_ls grib_filter diff --git a/tests/Makefile.am b/tests/Makefile.am index ef70afcb4..4f28f030b 100755 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -19,8 +19,10 @@ TESTS = definitions.sh \ metar_dump.sh \ ieee.sh \ grib1to2.sh \ + grib1to3.sh \ unit_tests.sh \ grib2to1.sh \ + grib2to3.sh \ badgrib.sh \ grib_ls.sh \ grib_filter.sh \ diff --git a/tests/grib1to3.sh b/tests/grib1to3.sh new file mode 100755 index 000000000..ae0aacf33 --- /dev/null +++ b/tests/grib1to3.sh @@ -0,0 +1,66 @@ +#!/bin/sh +# Copyright 2005-2017 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 + +REDIRECT=/dev/null + +temp=temp.grib2to3.grib3 +sample_g2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +${tools_dir}/grib_set -s editionNumber=3 $sample_g2 $temp +${tools_dir}/grib_dump -O -M $temp +rm -f $temp + +# A set of GRIB1 files +files="constant_field\ + reduced_gaussian_pressure_level_constant \ + reduced_latlon_surface_constant \ + regular_gaussian_pressure_level_constant \ + regular_latlon_surface_constant \ + reduced_latlon_surface \ + reduced_gaussian_pressure_level \ + reduced_gaussian_sub_area \ + regular_gaussian_pressure_level \ + regular_latlon_surface \ + reduced_gaussian_model_level \ + regular_gaussian_model_level \ + reduced_gaussian_surface \ + regular_gaussian_surface \ + spherical_pressure_level \ + spherical_model_level " + +for f in $files +do + file=${data_dir}/$f + output=${file}.grib3_ + rm -f ${output} + ${tools_dir}/grib_set -s editionNumber=3 ${file}.grib1 ${output} + + #grib1Statistics=`${tools_dir}/grib_get -fp numberOfValues,numberOfPoints,max,min,average,numberOfMissing ${file}.grib1` + #grib2Statistics=`${tools_dir}/grib_get -M -fp numberOfValues,numberOfPoints,max,min,average,numberOfMissing ${output}` + + #if [ "$grib1Statistics" != "$grib2Statistics" ]; then + # exit 1 + #fi + + #${tools_dir}/grib_compare -A1.0e-8 -c values ${file}.grib1 ${output} 2> /dev/null > /dev/null + ${tools_dir}/grib_compare -P -c values ${file}.grib1 ${output} 2> $REDIRECT > $REDIRECT + + rm -f ${output} + +done + +# ECC-457 ECMWF total precipitation +#input=${data_dir}/tp_ecmwf.grib +#output=temp.grib1to2.grib +#${tools_dir}/grib_set -s edition=2 $input $output +#res=`${tools_dir}/grib_get -w count=1 -p edition,paramId,units $output` +#[ "$res" = "2 228228 kg m**-2" ] +#rm -f $output diff --git a/tests/grib2to3.sh b/tests/grib2to3.sh new file mode 100755 index 000000000..9a5c8565c --- /dev/null +++ b/tests/grib2to3.sh @@ -0,0 +1,54 @@ +#!/bin/sh +# Copyright 2005-2017 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 + +REDIRECT=/dev/null + +temp=temp.grib1to3.grib3 +sample_g1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl +${tools_dir}/grib_set -s editionNumber=3 $sample_g1 $temp +${tools_dir}/grib_dump -O -M $temp +rm -f $temp + +# A set of GRIB2 files +files="constant_field\ + reduced_gaussian_pressure_level_constant \ + reduced_latlon_surface_constant \ + regular_gaussian_pressure_level_constant \ + regular_latlon_surface_constant \ + reduced_latlon_surface \ + reduced_gaussian_pressure_level \ + reduced_gaussian_sub_area \ + regular_gaussian_pressure_level \ + regular_latlon_surface \ + reduced_gaussian_model_level \ + regular_gaussian_model_level \ + reduced_gaussian_surface \ + regular_gaussian_surface \ + spherical_pressure_level \ + spherical_model_level " + +for f in $files +do + file=${data_dir}/$f + output=${file}.grib3_ + rm -f ${output} + ${tools_dir}/grib_set -s editionNumber=3 ${file}.grib2 ${output} + + #grib1Statistics=`${tools_dir}/grib_get -fp numberOfValues,numberOfPoints,max,min,average,numberOfMissing ${output}` + #grib2Statistics=`${tools_dir}/grib_get -fp numberOfValues,numberOfPoints,max,min,average,numberOfMissing ${file}.grib2` + + #if [ "$grib1Statistics" != "$grib2Statistics" ]; then + # exit 1 + #fi + + #${tools_dir}/grib_compare -A1.0e-8 -c values ${output} ${file}.grib2 2> /dev/null > /dev/null + rm -f ${output} +done