Skip to content

Commit

Permalink
ECC-2010: Merge changes from branch feature/ECC-2010-grib2-activate-t…
Browse files Browse the repository at this point in the history
  • Loading branch information
shahramn committed Jan 23, 2025
1 parent e0d5e98 commit 4317c60
Show file tree
Hide file tree
Showing 16 changed files with 101 additions and 19 deletions.
17 changes: 10 additions & 7 deletions definitions/grib2/local/ecmf/section4_extras.def
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# (C) Copyright 2005- ECMWF.

# See ECC-1846
if (centre is "ecmf" or datasetForLocal is "era6") {
concept modelName(unknown, "modelNameConcept.def", conceptsMasterDir, conceptsLocalDirAll): no_copy, dump, read_only;
# This is only read when centre=ecmf, so can remove if statement that was here
# This is ecmf local so we shouldnt use MasterDir. Instead we look for pseudocentre (conceptsDir2) then centre (conceptsLocalDirAll)

if (modelName isnot "unknown") {
concept modelVersion(unknown, "modelVersionConcept_[modelName].def", conceptsMasterDir, conceptsLocalDirAll): no_copy, dump, read_only;
# alias ls.model = modelName;
# alias mars.model = modelName;
}
concept modelName(unknown, "modelNameConcept.def", conceptsDir2, conceptsLocalDirAll): no_copy, dump, read_only;

if (modelName isnot "unknown") {
concept modelVersion(unknown, "modelVersionConcept.[modelName].def", conceptsDir2, conceptsLocalDirAll): no_copy, dump, read_only;
if ( defined(marsClass) && (marsClass is "ai" || marsClass is "ml") ) {
alias ls.model = modelName;
alias mars.model = modelName;
}
}
18 changes: 18 additions & 0 deletions definitions/grib2/localConcepts/destine/modelNameConcept.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'IFS' = {
backgroundProcess = 255;
}
'AIFS' = {
backgroundProcess = 1;
}
'ICON' = {
backgroundProcess = 2;
}
'ALARO' = {
backgroundProcess = 3;
}
'AROME' = {
backgroundProcess = 4;
}
'HARMONIE-AROME' = {
backgroundProcess = 5;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
'cy49t2' = { generatingProcessIdentifier = 3; }
'cy48t3' = { generatingProcessIdentifier = 2; }
'cy46h1' = { generatingProcessIdentifier = 1; }
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
'cy49t2' = { generatingProcessIdentifier = 3; }
'cy48t3' = { generatingProcessIdentifier = 2; }
'cy46h1' = { generatingProcessIdentifier = 1; }
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
'cy49t2' = { generatingProcessIdentifier = 3; }
'cy48t3' = { generatingProcessIdentifier = 2; }
'cy46h1' = { generatingProcessIdentifier = 1; }
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'cy50r3' = { generatingProcessIdentifier = 163; }
'cy50r2' = { generatingProcessIdentifier = 162; }
'cy50r1' = { generatingProcessIdentifier = 161; }
'cy49r3' = { generatingProcessIdentifier = 160; }
'cy49r2' = { generatingProcessIdentifier = 159; }
'cy49r1' = { generatingProcessIdentifier = 158; }
'cy48r3' = { generatingProcessIdentifier = 157; }
'climatedt' = { generatingProcessIdentifier = 156; }
'cy48r2' = { generatingProcessIdentifier = 155; }
'cy48r1' = { generatingProcessIdentifier = 154; }
'cy47r3' = { generatingProcessIdentifier = 153; }
'cy47r2' = { generatingProcessIdentifier = 152; }
'cy47r1' = { generatingProcessIdentifier = 151; }
'cy46r1' = { generatingProcessIdentifier = 150; }
'cy45r1' = { generatingProcessIdentifier = 149; }
'cy43r3' = { generatingProcessIdentifier = 148; }
'cy43r1' = { generatingProcessIdentifier = 147; }
'cy41r2' = { generatingProcessIdentifier = 146; }
8 changes: 7 additions & 1 deletion definitions/grib2/localConcepts/ecmf/modelNameConcept.def
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
'IFS' = {
backgroundProcess = 255;
}
'AIFS' = {
'aifs-single-mse' = {
backgroundProcess = 1;
}
'aifs-ens-crps' = {
backgroundProcess = 2;
}
'aifs-ens-diff' = {
backgroundProcess = 3;
}
18 changes: 18 additions & 0 deletions definitions/grib2/localConcepts/ecmf/modelVersionConcept.IFS.def
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
'cy50r3' = { generatingProcessIdentifier = 163; }
'cy50r2' = { generatingProcessIdentifier = 162; }
'cy50r1' = { generatingProcessIdentifier = 161; }
'cy49r3' = { generatingProcessIdentifier = 160; }
'cy49r2' = { generatingProcessIdentifier = 159; }
'cy49r1' = { generatingProcessIdentifier = 158; }
'cy48r3' = { generatingProcessIdentifier = 157; }
'climatedt' = { generatingProcessIdentifier = 156; }
'cy48r2' = { generatingProcessIdentifier = 155; }
'cy48r1' = { generatingProcessIdentifier = 154; }
'cy47r3' = { generatingProcessIdentifier = 153; }
'cy47r2' = { generatingProcessIdentifier = 152; }
'cy47r1' = { generatingProcessIdentifier = 151; }
'cy46r1' = { generatingProcessIdentifier = 150; }
'cy45r1' = { generatingProcessIdentifier = 149; }
'cy43r3' = { generatingProcessIdentifier = 148; }
'cy43r1' = { generatingProcessIdentifier = 147; }
'cy41r2' = { generatingProcessIdentifier = 146; }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
'v1' = { generatingProcessIdentifier = 1; }
'v2' = { generatingProcessIdentifier = 2; }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
'v1' = { generatingProcessIdentifier = 1; }
'v2' = { generatingProcessIdentifier = 2; }
10 changes: 0 additions & 10 deletions definitions/grib2/localConcepts/ecmf/modelVersionConcept_IFS.def

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
'v1' = { generatingProcessIdentifier = 1; }
'v2' = { generatingProcessIdentifier = 2; }
16 changes: 15 additions & 1 deletion tests/grib_modelName.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

label="grib_modelName_test"
tempGrib=temp.$label.grib
temp2Grib=temp2.$label.grib
tempFilt=temp.$label.filt
tempLog=temp.$label.log
tempOut=temp.$label.txt
Expand All @@ -22,14 +23,26 @@ tempRef=temp.$label.ref
sample=$ECCODES_SAMPLES_PATH/GRIB2.tmpl

${tools_dir}/grib_set -s generatingProcessIdentifier=1,backgroundProcess=1 $sample $tempGrib
grib_check_key_equals $tempGrib modelName,modelVersion "AIFS v1"
grib_check_key_equals $tempGrib modelName,modelVersion "aifs-single-mse v1"

${tools_dir}/grib_set -s generatingProcessIdentifier=154 $sample $tempGrib
grib_check_key_equals $tempGrib modelName,modelVersion "IFS cy48r1"

${tools_dir}/grib_set -s generatingProcessIdentifier=100 $sample $tempGrib
grib_check_key_equals $tempGrib modelName,modelVersion "IFS unknown"

# Check that this only works for centre ecmf
${tools_dir}/grib_set -s generatingProcessIdentifier=1,backgroundProcess=1,centre=84 $sample $tempGrib
[ $( ${tools_dir}/grib_get -f -p modelName $tempGrib ) = "not_found" ]
[ $( ${tools_dir}/grib_get -f -p modelVersion $tempGrib ) = "not_found" ]

# Check that it works for pseudocentres (e.g. DestinE)
${tools_dir}/grib_set -s generatingProcessIdentifier=1,backgroundProcess=3,productionStatusOfProcessedData=13 $sample $tempGrib
grib_check_key_equals $tempGrib modelName,modelVersion "ALARO cy46h1"
${tools_dir}/grib_set -s productionStatusOfProcessedData=0 $tempGrib $temp2Grib
[ $( ${tools_dir}/grib_get -f -p modelName $temp2Grib ) = "aifs-ens-diff" ]
[ $( ${tools_dir}/grib_get -f -p modelVersion $temp2Grib ) = "v1" ]

# Keys are read-only (may change this later)
set +e
${tools_dir}/grib_set -s modelName=AIFS $sample $tempGrib 2>$tempLog
Expand All @@ -48,3 +61,4 @@ grep -q "Value is read only" $tempLog

# Clean up
rm -f $tempGrib $tempFilt $tempLog $tempOut $tempRef
rm -f $temp2Grib

0 comments on commit 4317c60

Please sign in to comment.