From bf8689e518ac1230946afd75c16b21c46ee1025e Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Mon, 29 Jan 2018 11:56:11 +0000 Subject: [PATCH] EFAS: Added efasDomain, type=go and climatology date --- definitions/grib2/local.98.41.def | 20 ++++++++++++++++++- .../grib2/tables/local/ecmf/efas_domain.table | 4 ++++ definitions/mars/grib.efas.an.def | 1 + definitions/mars/grib.efas.cf.def | 1 + definitions/mars/grib.efas.fc.def | 1 + definitions/mars/grib.efas.fu.def | 1 + definitions/mars/grib.efas.go.def | 14 +++++++++++++ definitions/mars/grib.efas.pf.def | 1 + 8 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 definitions/grib2/tables/local/ecmf/efas_domain.table create mode 100644 definitions/mars/grib.efas.go.def diff --git a/definitions/grib2/local.98.41.def b/definitions/grib2/local.98.41.def index 10a3f0d0c..633f0cc2e 100644 --- a/definitions/grib2/local.98.41.def +++ b/definitions/grib2/local.98.41.def @@ -14,7 +14,7 @@ unsigned[1] isFillup = missing() : dump, can_be_missing; alias local.isFillup = isFillup; -# Forecase Reference Date and Time +# Forecast Reference Date and Time unsigned[2] yearOfForecast = year : dump; unsigned[1] monthOfForecast = month : dump; unsigned[1] dayOfForecast = day : dump; @@ -54,6 +54,24 @@ 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; +#unsigned[1] efas_domain = missing() : can_be_missing, dump; +#concept efasDomain(unknown) { +# "local" = { efas_domain = 0; } +# "global" = { efas_domain = 1; } +#} : hidden; + +# Climatology Date and Time +unsigned[2] yearOfClimatology = year : dump; +unsigned[1] monthOfClimatology = month : dump; +unsigned[1] dayOfClimatology = day : dump; +unsigned[1] hourOfClimatology = hour : dump; +unsigned[1] minuteOfClimatology = minute : dump; +constant secondsOfClimatology = 0; +meta dateOfClimatology g2date(yearOfClimatology,monthOfClimatology, dayOfClimatology) : dump; +meta timeOfClimatology time (hourOfClimatology,minuteOfClimatology,secondsOfClimatology) : dump; + # Note: the key inputOriginatingCentre is in the PDTNs 70, 71, 72 and 73 #concept efas_forecast { # "griddedobs" = { inputOriginatingCentre=98; marsType = "an"; } diff --git a/definitions/grib2/tables/local/ecmf/efas_domain.table b/definitions/grib2/tables/local/ecmf/efas_domain.table new file mode 100644 index 000000000..2681d9697 --- /dev/null +++ b/definitions/grib2/tables/local/ecmf/efas_domain.table @@ -0,0 +1,4 @@ +# EFAS Domain table. See local definition 41 +0 global Global +1 local Local +255 missing Missing diff --git a/definitions/mars/grib.efas.an.def b/definitions/mars/grib.efas.an.def index 6144dd5d3..b5590cc87 100644 --- a/definitions/mars/grib.efas.an.def +++ b/definitions/mars/grib.efas.an.def @@ -10,5 +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; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.cf.def b/definitions/mars/grib.efas.cf.def index b709f7886..33f89316f 100644 --- a/definitions/mars/grib.efas.cf.def +++ b/definitions/mars/grib.efas.cf.def @@ -3,5 +3,6 @@ alias mars.step = startStep; #meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy; alias mars.origin = inputOriginatingCentre; +# We need this because 'efas_post_proc' is defined later meta efas_model sprintf("%s", efas_post_proc) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.fc.def b/definitions/mars/grib.efas.fc.def index b709f7886..33f89316f 100644 --- a/definitions/mars/grib.efas.fc.def +++ b/definitions/mars/grib.efas.fc.def @@ -3,5 +3,6 @@ alias mars.step = startStep; #meta efas_suite_name sprintf("%s_%s_%s", inputOriginatingCentre, efas_forecast, efas_post_proc) : no_copy; alias mars.origin = inputOriginatingCentre; +# We need this because 'efas_post_proc' is defined later meta efas_model sprintf("%s", efas_post_proc) : no_copy; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.fu.def b/definitions/mars/grib.efas.fu.def index 7da02b511..5fc276407 100644 --- a/definitions/mars/grib.efas.fu.def +++ b/definitions/mars/grib.efas.fu.def @@ -10,5 +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; alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.go.def b/definitions/mars/grib.efas.go.def new file mode 100644 index 000000000..8b72bdbcc --- /dev/null +++ b/definitions/mars/grib.efas.go.def @@ -0,0 +1,14 @@ +alias mars.step = startStep; + +alias mars.date = dateOfForecast; +alias mars.time = timeOfForecast; + +# Gridded observations + +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; +alias mars.model = efas_model; diff --git a/definitions/mars/grib.efas.pf.def b/definitions/mars/grib.efas.pf.def index 9b90e6ea2..4a9a7f2d5 100644 --- a/definitions/mars/grib.efas.pf.def +++ b/definitions/mars/grib.efas.pf.def @@ -5,5 +5,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; alias mars.model = efas_model;