From 53d48ba0e549fe01086cc2e6e143ac94efde96f8 Mon Sep 17 00:00:00 2001 From: Sebastien Villaume Date: Mon, 21 Feb 2022 13:40:43 +0000 Subject: [PATCH] refactoring section 4 postprocessing templates and concepts --- definitions/grib2/local.98.41.def | 27 --------------------- definitions/grib2/postProcessingConcept.def | 18 ++++++++++++++ definitions/grib2/template.4.postproc.def | 2 ++ definitions/mars/grib.efas.cf.def | 4 +-- definitions/mars/grib.efas.fc.def | 4 +-- definitions/mars/grib.efas.fu.def | 4 +-- definitions/mars/grib.efas.go.def | 4 +-- definitions/mars/grib.efas.pf.def | 4 +-- definitions/mars/grib.efas.sfo.def | 4 +-- definitions/mars/grib.efcl.cf.def | 4 +-- definitions/mars/grib.efcl.fc.def | 4 +-- definitions/mars/grib.efcl.go.def | 4 +-- definitions/mars/grib.efcl.pf.def | 4 +-- definitions/mars/grib.efcl.sfo.def | 4 +-- definitions/mars/grib.efrf.cf.def | 4 +-- definitions/mars/grib.efrf.pf.def | 4 +-- definitions/mars/grib.efse.fc.def | 4 +-- definitions/mars/grib.efsr.fc.def | 4 +-- definitions/mars/grib.wfas.cf.def | 4 +-- definitions/mars/grib.wfas.fc.def | 4 +-- definitions/mars/grib.wfas.fu.def | 4 +-- definitions/mars/grib.wfas.pf.def | 4 +-- definitions/mars/grib.wfas.sfo.def | 4 +-- definitions/mars/grib.wfcl.cf.def | 4 +-- definitions/mars/grib.wfcl.fc.def | 4 +-- definitions/mars/grib.wfcl.pf.def | 4 +-- definitions/mars/grib.wfcl.sfo.def | 4 +-- definitions/mars/grib.wfrf.cf.def | 4 +-- definitions/mars/grib.wfrf.pf.def | 4 +-- definitions/mars/grib.wfse.fc.def | 4 +-- definitions/mars/grib.wfsr.fc.def | 4 +-- 31 files changed, 76 insertions(+), 83 deletions(-) create mode 100644 definitions/grib2/postProcessingConcept.def diff --git a/definitions/grib2/local.98.41.def b/definitions/grib2/local.98.41.def index f068d42a2..983a2600b 100644 --- a/definitions/grib2/local.98.41.def +++ b/definitions/grib2/local.98.41.def @@ -62,14 +62,6 @@ concept efas_post_proc { "unknown" = { dummy = 1; } } : hidden; -#Domain. Missing, local or global -#codetable[1] efasDomain "grib2/tables/local/ecmf/efas_domain.table" = 255 : dump, string_type; -#unsigned[1] efas_domain = missing() : can_be_missing, dump; -#concept efasDomain(unknown) { -# "local" = { efas_domain = 0; } -# "global" = { efas_domain = 1; } -#} : hidden; - # Model Cycle Date/Time # This is the date of the new official implementation of the EFAS cycle. unsigned[2] yearOfModelVersion = 0 : dump; @@ -80,22 +72,3 @@ unsigned[1] minuteOfModelVersion = 0 : dump; constant secondOfModelVersion = 0; meta dateOfModelVersion g2date(yearOfModelVersion, monthOfModelVersion, dayOfModelVersion) : dump; meta timeOfModelVersion time (hourOfModelVersion, minuteOfModelVersion, secondOfModelVersion) : dump; - -# Note: the key inputOriginatingCentre is in the PDTNs 70, 71, 72 and 73 -#concept efas_forecast { -# "griddedobs" = { inputOriginatingCentre=98; marsType = "an"; } -# # "reanalysis" = { inputOriginatingCentre=98; marsType = "an"; } -# -# "hres" = { inputOriginatingCentre=98; marsType = "fc"; } # deterministic -# "ens" = { inputOriginatingCentre=98; marsType = "pf"; } # ensemble -# "ens" = { inputOriginatingCentre=98; marsType = "cf"; } # ensemble -# -# DWD rules -# "global" = { inputOriginatingCentre=78; inputProcessIdentifier = 1; } -# "lam" = { inputOriginatingCentre=78; inputProcessIdentifier = 2; } -# -# TODO: For now anything coming from cnmc (COSMO) is local area -# "lam" = { inputOriginatingCentre=80; } -# -# "unknown" = { dummy = 1; } -#} : hidden; diff --git a/definitions/grib2/postProcessingConcept.def b/definitions/grib2/postProcessingConcept.def new file mode 100644 index 000000000..03be5fa93 --- /dev/null +++ b/definitions/grib2/postProcessingConcept.def @@ -0,0 +1,18 @@ +"unknown" = { typeOfPostProcessing = 0; } +"lisflood" = { typeOfPostProcessing = 1; } +"lisflood_eric" = { typeOfPostProcessing = 2; } +"lisflood_season" = { typeOfPostProcessing = 3; } +"lisflood_merged" = { typeOfPostProcessing = 4; } +"lisflood_global" = { typeOfPostProcessing = 5; } +"geff" = { typeOfPostProcessing = 10; } +"ericha" = { typeOfPostProcessing = 51; } +"htessel_lisflood" = { typeOfPostProcessing = 101; } +"htessel_eric" = { typeOfPostProcessing = 102; } +"htessel_camaflood" = { typeOfPostProcessing = 103; } +"epic" = { typeOfPostProcessing = 152; } +"jules_mrm" = { typeOfPostProcessing = 201; } +"htessel_mrm" = { typeOfPostProcessing = 202; } +"mhm_mrm" = { typeOfPostProcessing = 203; } +"pcrg_mrm" = { typeOfPostProcessing = 204; } +"meteogrid" = { typeOfPostProcessing = 205; } + diff --git a/definitions/grib2/template.4.postproc.def b/definitions/grib2/template.4.postproc.def index 63e5d89ae..ce748a26b 100644 --- a/definitions/grib2/template.4.postproc.def +++ b/definitions/grib2/template.4.postproc.def @@ -10,3 +10,5 @@ codetable[2] inputOriginatingCentre 'common/c-11.table' : dump,edition_specific, # This identifies which post-processing technique was used. This is defined by the originating centre unsigned[1] typeOfPostProcessing : dump,edition_specific; + +concept postProcessing (unknown,"postProcessingConcept.def",conceptsDir2,conceptsDir1):no_copy; diff --git a/definitions/mars/grib.efas.cf.def b/definitions/mars/grib.efas.cf.def index db3221606..2db3defa4 100644 --- a/definitions/mars/grib.efas.cf.def +++ b/definitions/mars/grib.efas.cf.def @@ -1,6 +1,6 @@ # EFAS control forecast alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.fc.def b/definitions/mars/grib.efas.fc.def index 0054926e9..d7a667727 100644 --- a/definitions/mars/grib.efas.fc.def +++ b/definitions/mars/grib.efas.fc.def @@ -1,6 +1,6 @@ # EFAS forecast alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.fu.def b/definitions/mars/grib.efas.fu.def index b628019ae..f29fdfff5 100644 --- a/definitions/mars/grib.efas.fu.def +++ b/definitions/mars/grib.efas.fu.def @@ -10,6 +10,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.anoffset=anoffset; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.go.def b/definitions/mars/grib.efas.go.def index 1bbc15194..eb09fe436 100644 --- a/definitions/mars/grib.efas.go.def +++ b/definitions/mars/grib.efas.go.def @@ -14,6 +14,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.anoffset=anoffset; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.pf.def b/definitions/mars/grib.efas.pf.def index 735a2ad6f..53be7b880 100644 --- a/definitions/mars/grib.efas.pf.def +++ b/definitions/mars/grib.efas.pf.def @@ -3,6 +3,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.sfo.def b/definitions/mars/grib.efas.sfo.def index e3b3fc786..8660063d7 100644 --- a/definitions/mars/grib.efas.sfo.def +++ b/definitions/mars/grib.efas.sfo.def @@ -11,6 +11,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.anoffset=anoffset; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efcl.cf.def b/definitions/mars/grib.efcl.cf.def index c5af23aa4..ee35f9a2b 100644 --- a/definitions/mars/grib.efcl.cf.def +++ b/definitions/mars/grib.efcl.cf.def @@ -1,8 +1,8 @@ # EFAS climatology control forecast alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.efcl.fc.def b/definitions/mars/grib.efcl.fc.def index 89e83bbc1..f64d9bb84 100644 --- a/definitions/mars/grib.efcl.fc.def +++ b/definitions/mars/grib.efcl.fc.def @@ -1,8 +1,8 @@ # EFAS climatology forecast alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.efcl.go.def b/definitions/mars/grib.efcl.go.def index 1257f0372..a0c9e2ed9 100644 --- a/definitions/mars/grib.efcl.go.def +++ b/definitions/mars/grib.efcl.go.def @@ -9,6 +9,6 @@ alias mars.hdate = dataDate; alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efcl.pf.def b/definitions/mars/grib.efcl.pf.def index 1f0eaa605..b6115e9e6 100644 --- a/definitions/mars/grib.efcl.pf.def +++ b/definitions/mars/grib.efcl.pf.def @@ -4,8 +4,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.efcl.sfo.def b/definitions/mars/grib.efcl.sfo.def index 50981b85d..868be2fc6 100644 --- a/definitions/mars/grib.efcl.sfo.def +++ b/definitions/mars/grib.efcl.sfo.def @@ -10,6 +10,6 @@ alias mars.hdate = dataDate; alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efrf.cf.def b/definitions/mars/grib.efrf.cf.def index cb0eb5df3..8d585cd76 100644 --- a/definitions/mars/grib.efrf.cf.def +++ b/definitions/mars/grib.efrf.cf.def @@ -1,8 +1,8 @@ # EFAS reforecast control alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.efrf.pf.def b/definitions/mars/grib.efrf.pf.def index 149994def..c7f6c89f9 100644 --- a/definitions/mars/grib.efrf.pf.def +++ b/definitions/mars/grib.efrf.pf.def @@ -3,8 +3,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.efse.fc.def b/definitions/mars/grib.efse.fc.def index b9f3f82ba..4a5491da9 100644 --- a/definitions/mars/grib.efse.fc.def +++ b/definitions/mars/grib.efse.fc.def @@ -3,6 +3,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efsr.fc.def b/definitions/mars/grib.efsr.fc.def index c21efb907..abeca52aa 100644 --- a/definitions/mars/grib.efsr.fc.def +++ b/definitions/mars/grib.efsr.fc.def @@ -3,8 +3,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfas.cf.def b/definitions/mars/grib.wfas.cf.def index 95c6f47af..1d1f90b27 100644 --- a/definitions/mars/grib.wfas.cf.def +++ b/definitions/mars/grib.wfas.cf.def @@ -2,6 +2,6 @@ alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfas.fc.def b/definitions/mars/grib.wfas.fc.def index 95c6f47af..1d1f90b27 100644 --- a/definitions/mars/grib.wfas.fc.def +++ b/definitions/mars/grib.wfas.fc.def @@ -2,6 +2,6 @@ alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfas.fu.def b/definitions/mars/grib.wfas.fu.def index 6ebed133f..5ae79ae67 100644 --- a/definitions/mars/grib.wfas.fu.def +++ b/definitions/mars/grib.wfas.fu.def @@ -10,6 +10,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.anoffset=anoffset; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfas.pf.def b/definitions/mars/grib.wfas.pf.def index 9a8ede38f..5c4ad998f 100644 --- a/definitions/mars/grib.wfas.pf.def +++ b/definitions/mars/grib.wfas.pf.def @@ -3,6 +3,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfas.sfo.def b/definitions/mars/grib.wfas.sfo.def index 6ebed133f..5ae79ae67 100644 --- a/definitions/mars/grib.wfas.sfo.def +++ b/definitions/mars/grib.wfas.sfo.def @@ -10,6 +10,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.anoffset=anoffset; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfcl.cf.def b/definitions/mars/grib.wfcl.cf.def index 9693247bb..daf81386d 100644 --- a/definitions/mars/grib.wfcl.cf.def +++ b/definitions/mars/grib.wfcl.cf.def @@ -1,8 +1,8 @@ # GLOFAS climatology alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfcl.fc.def b/definitions/mars/grib.wfcl.fc.def index 9693247bb..daf81386d 100644 --- a/definitions/mars/grib.wfcl.fc.def +++ b/definitions/mars/grib.wfcl.fc.def @@ -1,8 +1,8 @@ # GLOFAS climatology alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfcl.pf.def b/definitions/mars/grib.wfcl.pf.def index 3fe7a09a4..5a8dd632d 100644 --- a/definitions/mars/grib.wfcl.pf.def +++ b/definitions/mars/grib.wfcl.pf.def @@ -4,8 +4,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfcl.sfo.def b/definitions/mars/grib.wfcl.sfo.def index 97b2019ee..2cefb4d71 100644 --- a/definitions/mars/grib.wfcl.sfo.def +++ b/definitions/mars/grib.wfcl.sfo.def @@ -9,6 +9,6 @@ alias mars.hdate = dataDate; alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfrf.cf.def b/definitions/mars/grib.wfrf.cf.def index 3cb5077a8..5d66fad65 100644 --- a/definitions/mars/grib.wfrf.cf.def +++ b/definitions/mars/grib.wfrf.cf.def @@ -2,8 +2,8 @@ alias mars.origin = inputOriginatingCentre; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfrf.pf.def b/definitions/mars/grib.wfrf.pf.def index 387ec413a..e9cf76577 100644 --- a/definitions/mars/grib.wfrf.pf.def +++ b/definitions/mars/grib.wfrf.pf.def @@ -4,8 +4,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion; diff --git a/definitions/mars/grib.wfse.fc.def b/definitions/mars/grib.wfse.fc.def index 4ec67d909..84167bd80 100644 --- a/definitions/mars/grib.wfse.fc.def +++ b/definitions/mars/grib.wfse.fc.def @@ -3,6 +3,6 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.wfsr.fc.def b/definitions/mars/grib.wfsr.fc.def index 291aeaab3..2e67b3ea8 100644 --- a/definitions/mars/grib.wfsr.fc.def +++ b/definitions/mars/grib.wfsr.fc.def @@ -4,8 +4,8 @@ alias mars.origin = inputOriginatingCentre; alias mars.number = perturbationNumber; -# We need this because 'efas_post_proc' is defined later -meta efas_model sprintf("%s", efas_post_proc) : no_copy; +# We need this because 'postProcessing' is defined later +meta efas_model sprintf("%s", postProcessing) : no_copy; alias mars.model = efas_model; alias mars.date = dateOfModelVersion;