Skip to content

Commit

Permalink
ECC-1829: Added efi, es and em types to oper stream plus added to test
Browse files Browse the repository at this point in the history
Remaining to decide is behaviour between using endStep vs. using stepRange consistently and consequences.
  • Loading branch information
mjg41 committed May 16, 2024
1 parent a857806 commit 69424e8
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 6 deletions.
1 change: 1 addition & 0 deletions definitions/mars/grib.oper.efi.def
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
alias mars.step = stepRange;
1 change: 1 addition & 0 deletions definitions/mars/grib.oper.em.def
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
alias mars.step = stepRange;
1 change: 1 addition & 0 deletions definitions/mars/grib.oper.es.def
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
alias mars.step = stepRange;
24 changes: 18 additions & 6 deletions tests/grib_ecc-1829.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,32 @@ temp_grib=temp.$label.grib
mars_sample=temp.$label.mars.grib
sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl

# Setup ensemble GRIB2 message with MARS keys
# Setup GRIB2 message with MARS keys
${tools_dir}/grib_set -s setLocalDefinition=1,grib2LocalSectionNumber=1 $sample_grib2 $mars_sample

# Set ensemble related keys and check number key is present
${tools_dir}/grib_set -s productDefinitionTemplateNumber=1,stream=oper,type=pf $mars_sample $temp_grib
# Now set ensemble related keys and check number key is present
${tools_dir}/grib_set -s stream=oper,type=pf,productDefinitionTemplateNumber=1 $mars_sample $temp_grib
grib_check_key_exists $temp_grib mars.number

# Now check stepRange is used for mars.step for o2d and o3d fields, and that number is still present
${tools_dir}/grib_set -s productDefinitionTemplateNumber=11,stream=oper,type=pf,param=263101,typeOfLevel=oceanSurface,startStep=0,endStep=6 $mars_sample $temp_grib
# Now set keys and check stepRange is used for mars.step for o2d and o3d fields, and that number is still present
${tools_dir}/grib_set -s stream=oper,type=pf,productDefinitionTemplateNumber=11,param=263101,typeOfLevel=oceanSurface,startStep=0,endStep=6 $mars_sample $temp_grib
grib_check_key_exists $temp_grib mars.number
grib_check_key_equals $temp_grib "step" "0-6"
${tools_dir}/grib_set -s productDefinitionTemplateNumber=11,stream=oper,type=pf,param=263501,typeOfLevel=oceanModel,level=1,startStep=0,endStep=6 $mars_sample $temp_grib
${tools_dir}/grib_set -s stream=oper,type=pf,productDefinitionTemplateNumber=11,param=263501,typeOfLevel=oceanModel,level=1,startStep=0,endStep=6 $mars_sample $temp_grib
grib_check_key_exists $temp_grib mars.number
grib_check_key_equals $temp_grib "step" "0-6"

# Now set keys and check stepRange is used for type efi data (just need any template with stat proc keys)
${tools_dir}/grib_set -s stream=oper,type=efi,productDefinitionTemplateNumber=12,startStep=0,endStep=6 $mars_sample $temp_grib
grib_check_key_equals $temp_grib "step" "0-6"

# Now set keys and check stepRange is used for type em data
${tools_dir}/grib_set -s stream=oper,type=em,productDefinitionTemplateNumber=12,startStep=0,endStep=6 $mars_sample $temp_grib
grib_check_key_equals $temp_grib "step" "0-6"

# Now set keys and check stepRange is used for type es data
${tools_dir}/grib_set -s stream=oper,type=es,productDefinitionTemplateNumber=12,startStep=0,endStep=6 $mars_sample $temp_grib
grib_check_key_equals $temp_grib "step" "0-6"

# Clean up
rm -f $temp_grib $mars_sample

0 comments on commit 69424e8

Please sign in to comment.