ECC-1766: Addition of test along with a few small tweaks.

This commit is contained in:
Matthew Griffith 2024-03-11 15:29:48 +00:00
parent eff55b72bc
commit 8f366f2d76
4 changed files with 58 additions and 1 deletions

View File

@ -21,6 +21,7 @@
39 39 4DVar model errors for long window 4Dvar system
41 41 The Flood Awareness System
42 42 Lead Centre for Wave Forecast Verification
43 43 EERIE project MARS labelling
60 60 Ocean data analysis date and analysis time
192 192 Multiple ECMWF local definitions
300 300 Multi-dimensional parameters (deprecated)

View File

@ -1,10 +1,20 @@
# Class ed EERIE project climate keywords
# CMIP related activity keyword
codetable[2] activity "grib2/destine_activity.table" ;
alias mars.activity = activity;
# CMIP related experiment keyword
codetable[2] experiment "grib2/destine_experiment.table" ;
alias mars.experiment = experiment;
# Climate run realization keyword, which relates to an initial condition perturbation
unsigned[1] realization = 255 ;
alias mars.realization = realization;
alias mars.realization = realization;
# Remove mars domain from this data
unalias mars.domain;
# Add some padding just in case we want more keys in the future
pad padding_loc43(30);

View File

@ -144,6 +144,7 @@ if( HAVE_BUILD_TOOLS )
grib_ecc-1671
grib_ecc-1708
grib_ecc-1691
grib_ecc-1766
bufr_ecc-1028
bufr_ecc-1195
bufr_ecc-1259

45
tests/grib_ecc-1766.sh Executable file
View File

@ -0,0 +1,45 @@
#!/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.ctest.sh
REDIRECT=/dev/null
# ECC-1766: EERIE project metadata support
label="grib_ecc-1766_test"
temp_grib=temp.$label.grib
eerie_sample=temp.$label.eerie.grib
sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl
tablesVersionLatest=$( ${tools_dir}/grib_get -p tablesVersionLatest $sample_grib2 )
# Setup GRIB message with MARS keys
# Set latest tables version and add local section with MARS labeling
${tools_dir}/grib_set -s tablesVersion=$tablesVersionLatest,setLocalDefinition=1 $sample_grib2 $temp_grib
# Then change to EERIE project GRIB message --> grib2LocalSectionNumber=43
${tools_dir}/grib_set -s grib2LocalSectionNumber=43,class=ed $temp_grib $eerie_sample
# Check EERIE related keys are present and correct
grib_check_key_exists $eerie_sample activity,experiment,realization
grib_check_key_equals $eerie_sample "activity,experiment,realization" "0 0 255"
# Check domain key is unaliased
[ $( ${tools_dir}/grib_get -f -p mars.domain $eerie_sample ) = "not_found" ]
# Check an example where a few additional things are set
${tools_dir}/grib_set -s activity=1,experiment=1,realization=1 $eerie_sample $temp_grib
grib_check_key_equals $temp_grib "activity,experiment,realization" "1 1 1"
grib_check_key_equals $temp_grib "activity:s,experiment:s" "CMIP6 hist"
# Clean up
rm -f $temp_grib $eerie_sample