From 726aa8a07ce87f512940468d5139983ef8ab1a7c Mon Sep 17 00:00:00 2001 From: Shahram Najm Date: Mon, 29 Jul 2013 14:58:41 +0100 Subject: [PATCH] GRIB-279: Updated definitions for SMHI (from Seb. Villaume) --- definitions/Makefile.am | 29 ++++- definitions/boot.def | 3 + definitions/grib1/0.eswi.table | 10 +- definitions/grib1/3.82.table | 12 ++- definitions/grib1/3.98.table | 53 ++++++++++ definitions/grib1/local.82.0.def | 10 +- definitions/grib1/local.82.82.def | 5 +- definitions/grib1/local.82.83.def | 32 +++--- definitions/grib1/local.82.def | 2 +- .../grib1/localConcepts/ecmf/typeOfLevel.def | 37 +++++++ .../localConcepts/eswi/aerosolConcept.def | 20 ++++ .../localConcepts/eswi/aerosolbinnumber.table | 24 +++++ .../localConcepts/eswi/landTypeConcept.def | 39 +++++++ .../grib1/localConcepts/eswi/landtype.table | 43 ++++++++ .../grib1/localConcepts/eswi/sort.table | 100 ++++++++++++++++++ .../grib1/localConcepts/eswi/sortConcept.def | 96 +++++++++++++++++ .../localConcepts/eswi/timeRepresConcept.def | 48 +++++++++ .../grib1/localConcepts/eswi/timerepres.table | 52 +++++++++ .../grib1/localConcepts/eswi/typeOfLevel.def | 1 + .../grib1/localDefinitionNumber.82.table | 9 +- definitions/grib1/mars_labeling.82.def | 79 +++++--------- definitions/grib1/typeOfLevel.def | 41 +++++++ .../mars/eswi/aerosolPackingConcept.def | 8 ++ definitions/mars/eswi/aerosolbinnumber.table | 17 --- definitions/mars/eswi/class.table | 7 ++ definitions/mars/eswi/grib1.mdfa.fc.def | 3 + definitions/mars/eswi/grib1.mnth.an.def | 2 + definitions/mars/eswi/grib1.mnth.fc.def | 8 ++ definitions/mars/eswi/grib1.moda.an.def | 9 ++ definitions/mars/eswi/grib1.moda.fc.def | 12 +++ definitions/mars/eswi/grib1.oper.3v.def | 2 + definitions/mars/eswi/grib1.oper.4v.def | 2 + definitions/mars/eswi/grib1.oper.an.def | 2 + definitions/mars/eswi/grib1.oper.fc.def | 1 + definitions/mars/eswi/grib1.oper.si.def | 2 + definitions/mars/eswi/landtype.table | 35 ------ definitions/mars/eswi/model.table | 7 ++ definitions/mars/eswi/sort.table | 92 ---------------- definitions/mars/eswi/stream.table | 6 ++ definitions/mars/eswi/timerepres.table | 44 -------- definitions/mars/eswi/type.table | 6 ++ definitions/mars/eswi/wave_domain.def | 68 ++++++++++++ 42 files changed, 809 insertions(+), 269 deletions(-) create mode 100644 definitions/grib1/3.98.table create mode 100755 definitions/grib1/localConcepts/ecmf/typeOfLevel.def create mode 100644 definitions/grib1/localConcepts/eswi/aerosolConcept.def create mode 100644 definitions/grib1/localConcepts/eswi/aerosolbinnumber.table create mode 100644 definitions/grib1/localConcepts/eswi/landTypeConcept.def create mode 100644 definitions/grib1/localConcepts/eswi/landtype.table create mode 100644 definitions/grib1/localConcepts/eswi/sort.table create mode 100644 definitions/grib1/localConcepts/eswi/sortConcept.def create mode 100644 definitions/grib1/localConcepts/eswi/timeRepresConcept.def create mode 100644 definitions/grib1/localConcepts/eswi/timerepres.table create mode 100644 definitions/grib1/typeOfLevel.def create mode 100644 definitions/mars/eswi/aerosolPackingConcept.def delete mode 100644 definitions/mars/eswi/aerosolbinnumber.table create mode 100755 definitions/mars/eswi/grib1.mdfa.fc.def create mode 100755 definitions/mars/eswi/grib1.mnth.an.def create mode 100755 definitions/mars/eswi/grib1.mnth.fc.def create mode 100755 definitions/mars/eswi/grib1.moda.an.def create mode 100755 definitions/mars/eswi/grib1.moda.fc.def create mode 100755 definitions/mars/eswi/grib1.oper.3v.def create mode 100755 definitions/mars/eswi/grib1.oper.4v.def create mode 100755 definitions/mars/eswi/grib1.oper.an.def create mode 100755 definitions/mars/eswi/grib1.oper.fc.def create mode 100755 definitions/mars/eswi/grib1.oper.si.def delete mode 100644 definitions/mars/eswi/landtype.table delete mode 100644 definitions/mars/eswi/sort.table delete mode 100644 definitions/mars/eswi/timerepres.table create mode 100644 definitions/mars/eswi/wave_domain.def diff --git a/definitions/Makefile.am b/definitions/Makefile.am index 625d27376..321e2893f 100644 --- a/definitions/Makefile.am +++ b/definitions/Makefile.am @@ -81,6 +81,7 @@ dist_definitionsgrib1_DATA = \ grib1/2.98.230.table\ grib1/2.table\ grib1/3.82.table\ + grib1/3.98.table\ grib1/3.table\ grib1/4.table\ grib1/5.table\ @@ -240,6 +241,7 @@ dist_definitionsgrib1_DATA = \ grib1/sensitive_area_domain.def\ grib1/shortName.def\ grib1/tube_domain.def\ + grib1/typeOfLevel.def\ grib1/units.def definitionsgrib1_localConcepts_ammcdir = @GRIB_DEFINITION_PATH@/grib1/localConcepts/ammc @@ -263,6 +265,7 @@ dist_definitionsgrib1_localConcepts_ecmf_DATA = \ grib1/localConcepts/ecmf/name.def\ grib1/localConcepts/ecmf/paramId.def\ grib1/localConcepts/ecmf/shortName.def\ + grib1/localConcepts/ecmf/typeOfLevel.def\ grib1/localConcepts/ecmf/units.def definitionsgrib1_localConcepts_edzwdir = @GRIB_DEFINITION_PATH@/grib1/localConcepts/edzw @@ -288,10 +291,18 @@ dist_definitionsgrib1_localConcepts_enmi_DATA = \ definitionsgrib1_localConcepts_eswidir = @GRIB_DEFINITION_PATH@/grib1/localConcepts/eswi dist_definitionsgrib1_localConcepts_eswi_DATA = \ + grib1/localConcepts/eswi/aerosolConcept.def\ + grib1/localConcepts/eswi/aerosolbinnumber.table\ grib1/localConcepts/eswi/cfName.def\ + grib1/localConcepts/eswi/landTypeConcept.def\ + grib1/localConcepts/eswi/landtype.table\ grib1/localConcepts/eswi/name.def\ grib1/localConcepts/eswi/paramId.def\ grib1/localConcepts/eswi/shortName.def\ + grib1/localConcepts/eswi/sort.table\ + grib1/localConcepts/eswi/sortConcept.def\ + grib1/localConcepts/eswi/timeRepresConcept.def\ + grib1/localConcepts/eswi/timerepres.table\ grib1/localConcepts/eswi/typeOfLevel.def\ grib1/localConcepts/eswi/units.def @@ -2308,14 +2319,22 @@ dist_definitionsmars_DATA = \ definitionsmars_eswidir = @GRIB_DEFINITION_PATH@/mars/eswi dist_definitionsmars_eswi_DATA = \ - mars/eswi/aerosolbinnumber.table\ + mars/eswi/aerosolPackingConcept.def\ mars/eswi/class.table\ - mars/eswi/landtype.table\ + mars/eswi/grib1.mdfa.fc.def\ + mars/eswi/grib1.mnth.an.def\ + mars/eswi/grib1.mnth.fc.def\ + mars/eswi/grib1.moda.an.def\ + mars/eswi/grib1.moda.fc.def\ + mars/eswi/grib1.oper.3v.def\ + mars/eswi/grib1.oper.4v.def\ + mars/eswi/grib1.oper.an.def\ + mars/eswi/grib1.oper.fc.def\ + mars/eswi/grib1.oper.si.def\ mars/eswi/model.table\ - mars/eswi/sort.table\ mars/eswi/stream.table\ - mars/eswi/timerepres.table\ - mars/eswi/type.table + mars/eswi/type.table\ + mars/eswi/wave_domain.def definitionstidedir = @GRIB_DEFINITION_PATH@/tide dist_definitionstide_DATA = \ diff --git a/definitions/boot.def b/definitions/boot.def index 9f1e168c6..1449fa08e 100644 --- a/definitions/boot.def +++ b/definitions/boot.def @@ -10,6 +10,9 @@ include "parameters_version.def"; constant definitionFilesVersion="2.0.0.0" : hidden; constant internalVersion=22 : hidden; +constant UseEcmfConventions = 1: hidden; +constant defaultTypeOfLevel="unknown" : hidden; + constant zero=0 : hidden; constant one=1 : hidden; constant two=1 : hidden; diff --git a/definitions/grib1/0.eswi.table b/definitions/grib1/0.eswi.table index c898efdd2..e0177d63f 100644 --- a/definitions/grib1/0.eswi.table +++ b/definitions/grib1/0.eswi.table @@ -1,4 +1,10 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## # identification of subcenters for eswi centre (SMHI) 0 none not set -96 96 HIRLAM dat -98 98 previously used to tag SMHI data that is ECMWF complaint (not used anymore) +96 96 HIRLAM data (non-standard, deprecated) +98 98 previously used to tag SMHI data that is ECMWF compliant (deprecated) diff --git a/definitions/grib1/3.82.table b/definitions/grib1/3.82.table index 5e3a6f876..aa3482c54 100644 --- a/definitions/grib1/3.82.table +++ b/definitions/grib1/3.82.table @@ -1,3 +1,9 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## # CODE TABLE 3 Fixed levels or layers for wich the data are included 0 0 Reserved 1 surf Surface (of the Earth, which includes sea surface) @@ -34,11 +40,11 @@ 160 dp Depth below sea level meters (2 octets) 191 nd Northern Direction (SMHI Extension) 192 ned Northern-Eastern Direction (SMHI Extension) -193 ed Eastern Direction (SMHI Extension) +193 ed Eastern Direction (SMHI Extension) 194 sed Southern-Eastern Direction (SMHI Extension) -195 sd Southern Direction (SMHI Extension) +195 sd Southern Direction (SMHI Extension) 196 swd Southern-Western Direction (SMHI Extension) -197 wd Western Direction (SMHI Extension) +197 wd Western Direction (SMHI Extension) 198 nwd Northern-Western Direction (SMHI Extension) 200 atm Entire atmosphere considered as a single layer 0 (2 octets) 201 201 Entire ocean considered as a single layer 0 (2 octets) diff --git a/definitions/grib1/3.98.table b/definitions/grib1/3.98.table new file mode 100644 index 000000000..cc2ed0a24 --- /dev/null +++ b/definitions/grib1/3.98.table @@ -0,0 +1,53 @@ +# CODE TABLE 3 Fixed levels or layers for which the data are included +0 0 Reserved +1 sfc Surface (of the Earth, which includes sea surface) +2 sfc Cloud base level +3 sfc Cloud top level +4 sfc 0 deg (C) isotherm level +5 5 Adiabatic condensation level (parcel lifted from surface) +6 6 Maximum wind speed level +7 7 Tropopause level +8 sfc Nominal top of atmosphere +9 9 Sea bottom +# 10-19 Reserved +20 20 Isothermal level Temperature in 1/100 K +# 21-99 Reserved +100 pl Isobaric level pressure in hectoPascals (hPa) (2 octets) +101 101 Layer between two isobaric levels pressure of top (kPa) pressure of bottom (kPa) +102 sfc Mean sea level 0 0 +103 103 Fixed height level height above mean sea level (MSL) in meters +104 104 Layer between two height levels above msl height of top (hm) above mean sea level height of bottom (hm) above mean sea level +105 sfc Fixed height above ground height in meters (2 octets) +106 106 Layer between two height levels above ground height of top (hm) above ground height of bottom (hm) above ground +107 107 Sigma level sigma value in 1/10000 (2 octets) +108 108 Layer between two sigma levels sigma value at top in 1/100 sigma value at bottom in 1/100 +109 ml Hybrid level level number (2 octets) +110 ml Layer between two hybrid levels level number of top level number of bottom +111 sfc Depth below land surface centimeters (2 octets) +112 sfc Layer between two depths below land surface depth of upper surface (cm) depth of lower surface (cm) +113 pt Isentropic (theta) level Potential Temp. degrees K (2 octets) +114 114 Layer between two isentropic levels 475K minus theta of top in Deg. K 475K minus theta of bottom in Deg. K +115 115 Level at specified pressure difference from ground to level hPa (2 octets) +116 116 Layer between two levels at specified pressure differences from ground to levels pressure difference from ground to top level hPa pressure difference from ground to bottom level hPa +117 pv Potential vorticity surface 10-9 K m2 kg-1 s-1 +# 118 Reserved +119 119 ETA level: ETA value in 1/10000 (2 octets) +120 120 Layer between two ETA levels: ETA value at top of layer in 1/100, ETA value at bottom of layer in 1/100 +121 121 Layer between two isobaric surfaces (high precision) 1100 hPa minus pressure of top, in hPa 1100 hPa minus pressure of bottom, in hPa +# 122-124 Reserved +125 125 Height level above ground (high precision) centimeters (2 octets) +# 126-127 Reserved +128 128 Layer between two sigma levels (high precision) 1.1 minus sigma of top, in 1/1000 of sigma 1.1 minus sigma of bottom, in 1/1000 of sigma +# 129-140 Reserved +141 141 Layer between two isobaric surfaces (mixed precision) pressure of top, in kPa 1100hPa minus pressure of bottom, in hPa +# 142-159 Reserved +160 dp Depth below sea level meters (2 octets) +# 161-199Reserved +200 sfc Entire atmosphere considered as a single layer 0 (2 octets) +201 201 Entire ocean considered as a single layer 0 (2 octets) +# 202-209 Reserved +210 pl Isobaric surface (Pa) (ECMWF extension) +# 211-254 Reserved for local use +211 wv Ocean wave level (ECMWF extension) +212 oml Ocean mixed layer (ECMWF extension) +255 255 Indicates a missing value diff --git a/definitions/grib1/local.82.0.def b/definitions/grib1/local.82.0.def index 9bbc9d9bf..9689472be 100644 --- a/definitions/grib1/local.82.0.def +++ b/definitions/grib1/local.82.0.def @@ -14,7 +14,7 @@ # # author: Sebastien Villaume # created: 6 Oct 2011 -# modified: - +# modified: 13 May 2013 # ################################# ### LOCAL SECTION DESCRIPTION ### @@ -27,10 +27,10 @@ codetable[1] marsClass "mars/eswi/class.table" : dump,lowercase; codetable[1] marsType "mars/eswi/type.table" : dump,lowercase,string_type; -codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type; -ksec1expver[4] experimentVersionNumber = "0000" : dump; -unsigned[1] perturbationNumber : dump; -unsigned[1] numberOfForecastsInEnsemble : dump; +codetable[2] marsStream "mars/eswi/stream.table" : dump,lowercase,string_type; +ksec1expver[4] experimentVersionNumber = "0000" : dump; +unsigned[1] perturbationNumber : dump; +unsigned[1] numberOfForecastsInEnsemble : dump; codetable[1] marsModel "mars/eswi/model.table" : dump,lowercase,string_type; diff --git a/definitions/grib1/local.82.82.def b/definitions/grib1/local.82.82.def index b7edebd13..1c0c4e076 100644 --- a/definitions/grib1/local.82.82.def +++ b/definitions/grib1/local.82.82.def @@ -9,7 +9,7 @@ # # author: Sebastien Villaume # created: 6 Oct 2011 -# modified: - +# modified: 13 May 2013 # ################################# ### LOCAL SECTION DESCRIPTION ### @@ -17,7 +17,10 @@ constant GRIBEXSection1Problem = 53 - section1Length; +# base local definition include "local.82.0.def"; + +# nothing else, local definition 82 is the base definition pad padding_local1_1(1); ##################### diff --git a/definitions/grib1/local.82.83.def b/definitions/grib1/local.82.83.def index fa6b38727..99ce47b61 100644 --- a/definitions/grib1/local.82.83.def +++ b/definitions/grib1/local.82.83.def @@ -25,7 +25,7 @@ # # author: Sebastien Villaume # created: 6 Oct 2011 -# modified: - +# modified: 13 May 2013 # ################################# ### LOCAL SECTION DESCRIPTION ### @@ -33,12 +33,14 @@ constant GRIBEXSection1Problem = 80 - section1Length; +# base file: contains keywords always present include "local.82.0.def"; -codetable[1] sort "mars/eswi/sort.table" : dump,lowercase,string_type; -codetable[1] timeRepres "mars/eswi/timerepres.table" : dump,lowercase,string_type; -codetable[1] landType "mars/eswi/landtype.table" : dump,lowercase,string_type; -codetable[2] aerosolBinNumber "mars/eswi/aerosolbinnumber.table" : dump,lowercase,string_type; +# extra keywords specific to local definition 83 (MATCH) +codetable[1] matchSort "grib1/localConcepts/eswi/sort.table" : dump,long_type; +codetable[1] matchTimeRepres "grib1/localConcepts/eswi/timerepres.table" : dump,long_type; +codetable[1] matchLandType "grib1/localConcepts/eswi/landtype.table" : dump,long_type; +codetable[2] matchAerosolBinNumber "grib1/localConcepts/eswi/aerosolbinnumber.table" : dump,long_type; unsigned[2] molarMass : dump; unsigned[1] logTransform : dump; signed[2] threshold : dump; @@ -57,17 +59,21 @@ pad padding_local1_1(7); template mars_labeling "grib1/mars_labeling.82.def"; -alias mars.sort = sort; -alias mars.timerepres = timeRepres; -alias mars.landtype = landType; -alias mars.aerosolbinnumber = aerosolBinNumber; +concept_nofail matchAerosolPacking (unknown,"aerosolPackingConcept.def",conceptsLocalMarsDirAll,conceptsMasterMarsDir); + +alias mars.sort = matchSort; +alias mars.timerepres = matchTimeRepres; +alias mars.landtype = matchLandType; +alias mars.aerosolbinnumber = matchAerosolBinNumber; + +alias mars.aerosolpacking = matchAerosolPacking; ################### ### LS LABELING ### ################### -alias ls.landtype = landType; -alias ls.timerepres = timeRepres; -alias ls.sort = sort; -alias ls.aerosolbinnumber = aerosolBinNumber; +concept_nofail ls.timerepres (unknown,"timeRepresConcept.def",conceptsLocalDirAll,conceptsMasterDir); +concept_nofail ls.sort (unknown,"sortConcept.def",conceptsLocalDirAll,conceptsMasterDir); +concept_nofail ls.landtype (unknown,"landTypeConcept.def",conceptsLocalDirAll,conceptsMasterDir); +concept_nofail ls.aerosolbinnumber (unknown,"aerosolConcept.def",conceptsLocalDirAll,conceptsMasterDir); diff --git a/definitions/grib1/local.82.def b/definitions/grib1/local.82.def index 2159d9503..f1a30d61e 100644 --- a/definitions/grib1/local.82.def +++ b/definitions/grib1/local.82.def @@ -5,6 +5,6 @@ # -codetable[1] localDefinitionNumber 'grib1/localDefinitionNumber.82.table' = 1 : dump; +codetable[1] localDefinitionNumber 'grib1/localDefinitionNumber.82.table' = 82 : dump; template localDefinition "grib1/local.82.[localDefinitionNumber:l].def"; template_nofail marsKeywords "mars/eswi/grib1.[stream:s].[type:s].def"; diff --git a/definitions/grib1/localConcepts/ecmf/typeOfLevel.def b/definitions/grib1/localConcepts/ecmf/typeOfLevel.def new file mode 100755 index 000000000..8757dd86c --- /dev/null +++ b/definitions/grib1/localConcepts/ecmf/typeOfLevel.def @@ -0,0 +1,37 @@ +'surface' = {indicatorOfTypeOfLevel=1;} +'cloudBase' = {indicatorOfTypeOfLevel=2;} +'cloudTop' = {indicatorOfTypeOfLevel=3;} +'isothermZero' = {indicatorOfTypeOfLevel=4;} +'adiabaticCondensation' = {indicatorOfTypeOfLevel=5;} +'maxWind' = {indicatorOfTypeOfLevel=6;} +'tropopause' = {indicatorOfTypeOfLevel=7;} +'nominalTop' = {indicatorOfTypeOfLevel=8;} +'seaBottom' = {indicatorOfTypeOfLevel=9;} +'isobaricInhPa' = {indicatorOfTypeOfLevel=100;} +'isobaricInPa' = {indicatorOfTypeOfLevel=210;} +'isobaricLayer' = {indicatorOfTypeOfLevel=101;} +'meanSea' = {indicatorOfTypeOfLevel=102;} +'isobaricLayerHighPrecision' = {indicatorOfTypeOfLevel=121;} +'isobaricLayerMixedPrecision' = {indicatorOfTypeOfLevel=141;} +'heightAboveSea' = {indicatorOfTypeOfLevel=103;} +'heightAboveSeaLayer' = {indicatorOfTypeOfLevel=104;} +'heightAboveGroundHighPrecision' = {indicatorOfTypeOfLevel=125;} +'heightAboveGround' = {indicatorOfTypeOfLevel=105;} +'heightAboveGroundLayer' = {indicatorOfTypeOfLevel=106;} +'sigma' = {indicatorOfTypeOfLevel=107;} +'sigmaLayer' = {indicatorOfTypeOfLevel=108;} +'sigmaLayerHighPrecision' = {indicatorOfTypeOfLevel=128;} +'hybrid' = {indicatorOfTypeOfLevel=109;} +'hybridLayer' = {indicatorOfTypeOfLevel=110;} +'depthBelowLand' = {indicatorOfTypeOfLevel=111;} +'depthBelowLandLayer' = {indicatorOfTypeOfLevel=112;} +'theta' = {indicatorOfTypeOfLevel=113;} +'thetaLayer' = {indicatorOfTypeOfLevel=114;} +'pressureFromGround' = {indicatorOfTypeOfLevel=115;} +'pressureFromGroundLayer' = {indicatorOfTypeOfLevel=116;} +'potentialVorticity' = {indicatorOfTypeOfLevel=117;} +'depthBelowSea' = {indicatorOfTypeOfLevel=160;} +'entireAtmosphere' = {indicatorOfTypeOfLevel=200;level=0;} +'entireOcean' = {indicatorOfTypeOfLevel=201;level=0;} +'oceanWave' = {indicatorOfTypeOfLevel=211;} +'oceanMixedLayer' = {indicatorOfTypeOfLevel=212;} diff --git a/definitions/grib1/localConcepts/eswi/aerosolConcept.def b/definitions/grib1/localConcepts/eswi/aerosolConcept.def new file mode 100644 index 000000000..2cf2abdd0 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/aerosolConcept.def @@ -0,0 +1,20 @@ +######################### +# +# author: Sebastien Villaume +# created: 13 May 2013 +# modified: +# +######################### +"none"={matchAerosolBinNumber=0;} +"bin1"={matchAerosolBinNumber=1;} +"bin2"={matchAerosolBinNumber=2;} +"bin3"={matchAerosolBinNumber=3;} +"bin4"={matchAerosolBinNumber=4;} +"bin5"={matchAerosolBinNumber=5;} +"bin6"={matchAerosolBinNumber=6;} +"bin7"={matchAerosolBinNumber=7;} +"bin8"={matchAerosolBinNumber=8;} +"bin9"={matchAerosolBinNumber=9;} +"bin10"={matchAerosolBinNumber=10;} +"all"={matchAerosolBinNumber=100;} +"missing"={matchAerosolBinNumber=255;} diff --git a/definitions/grib1/localConcepts/eswi/aerosolbinnumber.table b/definitions/grib1/localConcepts/eswi/aerosolbinnumber.table new file mode 100644 index 000000000..c39cb6555 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/aerosolbinnumber.table @@ -0,0 +1,24 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## +# +# Model 50 (MATCH) SMHI local definitions aerosol bin number +# +# Aerosol bin number parameter in local extension +# +0 0 none +1 1 Aerosol Binary number 1 +2 2 Aerosol Binary number 2 +3 3 Aerosol Binary number 3 +4 4 Aerosol Binary number 4 +5 5 Aerosol Binary number 5 +6 6 Aerosol Binary number 6 +7 7 Aerosol Binary number 7 +8 8 Aerosol Binary number 8 +9 9 Aerosol Binary number 9 +10 10 Aerosol Binary number 10 +100 100 All binary number +255 255 missing value diff --git a/definitions/grib1/localConcepts/eswi/landTypeConcept.def b/definitions/grib1/localConcepts/eswi/landTypeConcept.def new file mode 100644 index 000000000..e94897830 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/landTypeConcept.def @@ -0,0 +1,39 @@ +######################### +# +# author: Sebastien Villaume +# created: 13 May 2013 +# modified: +# +######################### +"all"={matchLandType=0;} +"water"={matchLandType=1;} +"rural"={matchLandType=2;} +"urban"={matchLandType=3;} +"lowveg"={matchLandType=4;} +"forest"={matchLandType=5;} +"noveg"={matchLandType=6;} +"pasture"={matchLandType=21;} +"arable"={matchLandType=22;} +"beechoak"={matchLandType=23;} +"deciduous"={matchLandType=24;} +"spruce"={matchLandType=25;} +"pine"={matchLandType=26;} +"wetland"={matchLandType=27;} +"mountain"={matchLandType=28;} +"birch"={matchLandType=29;} +"ice"={matchLandType=51;} +"snow"={matchLandType=52;} +"hslowv"={matchLandType=71;} +"hsfor"={matchLandType=72;} +"politi"={matchLandType=73;} +"mask"={matchLandType=74;} +"regional"={matchLandType=81;} +"long-range"={matchLandType=82;} +"local"={matchLandType=83;} +"zone"={matchLandType=90;} +"top"={matchLandType=100;} +"effdose"={matchLandType=150;} +"skin"={matchLandType=151;} +"thyroid"={matchLandType=152;} +"lung"={matchLandType=153;} +"missing"={matchLandType=255;} diff --git a/definitions/grib1/localConcepts/eswi/landtype.table b/definitions/grib1/localConcepts/eswi/landtype.table new file mode 100644 index 000000000..8181b8354 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/landtype.table @@ -0,0 +1,43 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## +# +# Model 50 (MATCH) SMHI local definitions landtype +# +# landtype parameter in local extension +# +0 0 All surfaces +1 1 Water or Sea Water (fraction) +2 2 Rural (fraction) +3 3 Urban (fraction) +4 4 Lowveg (fraction) +5 5 Forest (fraction) +6 6 Noveg (fraction) +21 21 Pasture (fraction) +22 22 Arable (fraction) +23 23 Beech_oak (fraction) +24 24 Deciduous (fraction) +25 25 Spruce (fraction) +26 26 Pine (fraction) +27 27 Wetland (fraction) +28 28 Mountain (fraction) +29 29 Birch (fraction) +51 51 Ice (fraction) +52 52 Snow (fraction) +71 71 Hendersen-Sellers classification +72 72 Hendersen-Sellers classification +73 73 Politi +74 74 Mask +81 81 Regional contribution +82 82 Long-range contribution +83 83 Local (urban) contribution +90 90 Zone index +100 100 Top layer +150 150 Effective dose [Sv] +151 151 Skin dose [Sv] +152 152 Thyroid dose [Sv] +153 153 Lung dose [Sv] +255 255 missing value diff --git a/definitions/grib1/localConcepts/eswi/sort.table b/definitions/grib1/localConcepts/eswi/sort.table new file mode 100644 index 000000000..a4da16131 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/sort.table @@ -0,0 +1,100 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## +# +# Model 50 SMHI local definitions sort +# +# Sort parameter in local extension +# +0 0 none +1 1 Atm. conc. [g/kg] +2 2 Log Atm. conc. [g/kg] +3 3 Atm. conc. [g/m3] +3 3 Atm. conc. [g/m3] +4 4 Log Atm. conc. [g/m3] +7 7 Atm. conc. [number/m3] +9 9 Atm. conc. [Bq/m3] +10 10 Log Atm. conc. [Bq/m3] +11 11 Atm. conc. at reference height [g/kg] +12 12 Atm. conc. at reference height [g/m3] +13 13 Log Atm. conc. at reference height [g/m3] +14 14 Total column [g/m2] +14 14 Column up to 6000m [g/m2] +14 14 Column up above 6000m [g/m2] +14 14 Max in column up to 6000m [g/m3] +14 14 Max in column above 6000m [g/m3] +15 15 Level at max in column up to 6000m [m] +15 15 Level at max in column above 6000m [m] +21 21 Integrated atm. conc. s [g/kg] +22 22 Log Integrated atm. conc. s [g/kg] +23 23 Integrated atm. conc. s [g/m3] +24 24 Logarith of Integrated atm. conc. s [g/m3] +27 27 Integrated atm. conc. s [number/m3] +29 29 Integrated atm. conc. s [Bq/m3] +30 30 Log Integrated atm. conc. s [Bq/m3] +51 51 Conc. in liquid water [g/m3] +53 53 Conc. in liquid water Equivalents/m3 +54 54 Conc. in liquid water [number/m3] +55 55 Conc. in liquid water [Bq/m3] +61 61 Conc. in ice water [g/m3] +63 63 Conc. in ice water Equivalents/m3 +64 64 Conc. in ice water [number/m3] +65 65 Conc. in ice water [Bq/m3] +71 71 Conc. in precipitation [g/m3] (mg/l) +73 73 Conc. in precipitation Equivalents/m3 +74 74 Conc. in precipitation [number/m3] +75 75 Conc. in precipitation [Bq/m3] +81 81 Dry deposition [g/m2] +82 82 Log Dry deposition [g/m2] +84 84 Dry deposition [number/m2] +85 85 Dry deposition [Bq/m2] +91 91 Wet deposition [g/m2] +92 92 Log Wet deposition [g/m2] +94 94 Wet deposition [number/m2] +95 95 Wet deposition [Bq/m2] +101 101 Total deposition [g/m2] +102 102 Log Total deposition [g/m2] +104 104 Total deposition [number/m2] +105 105 Total deposition [Bq/m2] +110 110 Emissions [ton] +111 111 Emissions [kg] +112 112 Emissions [g] +114 114 Emissions [number] +115 115 Emissions [Bq] +121 121 Emissions [kg/s] +122 122 Emissions [g/s] +124 124 Emissions [number/s] +125 125 Emissions [Bq/s] +131 131 Emissions [kg/(m2 s)] +132 132 Emissions [g/(m2 s)] +134 134 Emissions [number/(m2 s)] +135 135 Emissions [Bq/(m2 s)] +136 136 Surface emissions [kg/(m2 s)] +137 137 Surface emissions [g/(m2 s)] +138 138 Surface emissions [number/(m2 s)] +139 139 Surface emissions [Bq/(m2 s)] +150 150 Inhalation dose [nSv] +151 151 Ground dose [nSv] +152 152 Infinite cloud dose [nSv] +153 153 Sum of cloud and ground dose [nSv] +201 201 Dry deposition velocity [m/s] +202 202 Settling velocity [m/s] +203 203 Scavenging coefficient [1/s] +205 205 Degree hours or days for last day [K] +206 206 Current degree days [K] +207 207 Critical degree days [K] +208 208 Accum pollen emission [grains/m2] +209 209 Correction factor [fraction] +210 210 Aerosol optical depth [] +240 240 Deposition arrival since 1 Jan 1971 [days] +241 241 Latest deposition since 1 Jan 1971 [days] +242 242 Time of max activity since 1 Jan 1971 [days] +243 243 Max radioactive activity [Bq/m2] +244 244 Log Max radioactive activity +250 250 Relative occurrence [] +251 251 statistics [kg] +252 252 statistics [mol] +255 255 missing value diff --git a/definitions/grib1/localConcepts/eswi/sortConcept.def b/definitions/grib1/localConcepts/eswi/sortConcept.def new file mode 100644 index 000000000..be7abb057 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/sortConcept.def @@ -0,0 +1,96 @@ +######################### +# +# author: Sebastien Villaume +# created: 13 May 2013 +# modified: +# +######################### +"none"={matchSort=0;} +"cm"={matchSort=1;} +"lncm"={matchSort=2;} +"c"={matchSort=3;} +"cc"={matchSort=3;} +"lnc"={matchSort=4;} +"nr"={matchSort=7;} +"cbq"={matchSort=9;} +"lncbq"={matchSort=10;} +"cmrefh"={matchSort=11;} +"crefh"={matchSort=12;} +"lncrefh"={matchSort=13;} +"totcolumn"={matchSort=14;} +"loncolumn"={matchSort=14;} +"highcolumn"={matchSort=14;} +"lowmax"={matchSort=14;} +"highmax"={matchSort=14;} +"lowmaxz"={matchSort=15;} +"highmaxz"={matchSort=15;} +"icm"={matchSort=21;} +"lnicm"={matchSort=22;} +"ic"={matchSort=23;} +"lnic"={matchSort=24;} +"inr"={matchSort=27;} +"icbq"={matchSort=29;} +"lnicbq"={matchSort=30;} +"clw"={matchSort=51;} +"ceqlw"={matchSort=53;} +"cnrlw"={matchSort=54;} +"cbqlwc"={matchSort=55;} +"ciw"={matchSort=61;} +"ceqiw"={matchSort=63;} +"cnriw"={matchSort=64;} +"cbqiw"={matchSort=65;} +"cprec"={matchSort=71;} +"ceqprec"={matchSort=73;} +"cnprec"={matchSort=74;} +"cbqprec"={matchSort=75;} +"drydep"={matchSort=81;} +"lndrydep"={matchSort=82;} +"drydepnr"={matchSort=84;} +"drydepbq"={matchSort=85;} +"wetdep"={matchSort=91;} +"lnwetdep"={matchSort=92;} +"wetdepnr"={matchSort=94;} +"wetdepbq"={matchSort=95;} +"totdep"={matchSort=101;} +"lntotdep"={matchSort=102;} +"totdepnr"={matchSort=104;} +"totdepbq"={matchSort=105;} +"qton"={matchSort=110;} +"qkg"={matchSort=111;} +"qg"={matchSort=112;} +"qnr"={matchSort=114;} +"qbq"={matchSort=115;} +"qkgs"={matchSort=121;} +"qgs"={matchSort=122;} +"qns"={matchSort=124;} +"qbqs"={matchSort=125;} +"aqkgs"={matchSort=131;} +"aqgs"={matchSort=132;} +"aqnrs"={matchSort=134;} +"aqbqs"={matchSort=135;} +"aq0kgs"={matchSort=136;} +"aq0gs"={matchSort=137;} +"aq0nrs"={matchSort=138;} +"aq0bqs"={matchSort=139;} +"inhdose"={matchSort=150;} +"grddose"={matchSort=151;} +"clddose"={matchSort=152;} +"sumdose"={matchSort=153;} +"vd"={matchSort=201;} +"vs"={matchSort=202;} +"lamda"={matchSort=203;} +"tsum"={matchSort=205;} +"hsum"={matchSort=206;} +"hcrit"={matchSort=207;} +"raccum"={matchSort=208;} +"corr"={matchSort=209;} +"aod"={matchSort=210;} +"timearr"={matchSort=240;} +"timelat"={matchSort=241;} +"timemax"={matchSort=242;} +"maxactiv"={matchSort=243;} +"lnmaxactiv"={matchSort=244;} +"freq"={matchSort=250;} +"flux"={matchSort=251;} +"fluxmol"={matchSort=252;} +"missing"={matchSort=255;} diff --git a/definitions/grib1/localConcepts/eswi/timeRepresConcept.def b/definitions/grib1/localConcepts/eswi/timeRepresConcept.def new file mode 100644 index 000000000..5fe275cf1 --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/timeRepresConcept.def @@ -0,0 +1,48 @@ +######################### +# +# author: Sebastien Villaume +# created: 13 May 2013 +# modified: +# +######################### +"none"={matchTimeRepres=0;} +"3hMean"={matchTimeRepres=1;} +"diurnalMean"={matchTimeRepres=2;} +"1hMean"={matchTimeRepres=3;} +"monthlyMean"={matchTimeRepres=5;} +"mean"={matchTimeRepres=6;} +"yearMean"={matchTimeRepres=7;} +"max"={matchTimeRepres=10;} +"min"={matchTimeRepres=11;} +"dailyMax"={matchTimeRepres=12;} +"monthlyMax"={matchTimeRepres=14;} +"yearMax"={matchTimeRepres=16;} +"mMeanDayMax"={matchTimeRepres=17;} +"yMeanDayMax"={matchTimeRepres=18;} +"meanDayMax"={matchTimeRepres=19;} +"accum"={matchTimeRepres=20;} +"dayAccum"={matchTimeRepres=21;} +"monthAccum"={matchTimeRepres=22;} +"3hAccum"={matchTimeRepres=23;} +"3monthAccum"={matchTimeRepres=24;} +"6monthAccum"={matchTimeRepres=25;} +"yearAccum"={matchTimeRepres=26;} +"8hMean"={matchTimeRepres=30;} +"max8hMean"={matchTimeRepres=31;} +"meanMax8h"={matchTimeRepres=32;} +"maxMax8h"={matchTimeRepres=33;} +"perc98h1"={matchTimeRepres=40;} +"perc98d1"={matchTimeRepres=41;} +"perc90d1"={matchTimeRepres=42;} +"median"={matchTimeRepres=43;} +"likelyhood"={matchTimeRepres=44;} +"jointProb"={matchTimeRepres=45;} +"perc"={matchTimeRepres=46;} +"boundary"={matchTimeRepres=50;} +"firatGuess"={matchTimeRepres=51;} +"stdDev"={matchTimeRepres=52;} +"anaIncr"={matchTimeRepres=60;} +"anaErr"={matchTimeRepres=61;} +"bgErr"={matchTimeRepres=62;} +"quality"={matchTimeRepres=70;} +"missing"={matchTimeRepres=255;} diff --git a/definitions/grib1/localConcepts/eswi/timerepres.table b/definitions/grib1/localConcepts/eswi/timerepres.table new file mode 100644 index 000000000..f98e3b3fc --- /dev/null +++ b/definitions/grib1/localConcepts/eswi/timerepres.table @@ -0,0 +1,52 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## +# +# Model 50 (MATCH) SMHI local definitions timerep +# +# Time representation parameter in local extension +# +0 0 No representation specified +1 1 3 Hour mean value (hours) +2 2 Diurnal or Daily mean (hours) +3 3 1 Hour mean value (hours) +5 5 Monthly mean (month) +6 6 Mean from start (hours) +7 7 Annual mean (year) +10 10 Max value +11 11 Min value +12 12 Diurnal max +14 14 Monthly max +16 16 Annual max +17 17 Mean of daily-max +18 18 Mean of daily-max +19 19 Mean of daily-max +20 20 Acc. since start (hours) +21 21 Acc. over one day (hours) +22 22 Acc. over one month (months) +23 23 Acc. over one day (hours) +24 24 Acc. over three months (months) +25 25 Acc. over six months (months) +26 26 Acc. over one year (year) +30 30 Running 8-hour mean (hours) +31 31 Daily maximum of 8-hour mean +32 32 Mean of daily maximum of 8-hour mean +33 33 Max of daily maximum of 8-hour mean +40 40 98 percentil (hours) +41 41 98 percentil (day) +42 42 90 percentil (day) +43 43 Median +44 44 Likelihood +45 45 Joint probability +46 46 Percentile +50 50 Boundary value +51 51 First guess +52 52 Standard deviation +60 ANAINCR Analysis increment +61 ANAERR Analysis error +62 BGERR Background error +70 QUALITY Quality flag +255 255 missing value diff --git a/definitions/grib1/localConcepts/eswi/typeOfLevel.def b/definitions/grib1/localConcepts/eswi/typeOfLevel.def index f8d1dd443..f619a305b 100644 --- a/definitions/grib1/localConcepts/eswi/typeOfLevel.def +++ b/definitions/grib1/localConcepts/eswi/typeOfLevel.def @@ -1,3 +1,4 @@ +#### From Sebastien Villaume of SMHI 'surface' = {indicatorOfTypeOfLevel=1;} 'cloudBase' = {indicatorOfTypeOfLevel=2;} 'cloudTop' = {indicatorOfTypeOfLevel=3;} diff --git a/definitions/grib1/localDefinitionNumber.82.table b/definitions/grib1/localDefinitionNumber.82.table index 2d33b9e8c..9da33bf9b 100644 --- a/definitions/grib1/localDefinitionNumber.82.table +++ b/definitions/grib1/localDefinitionNumber.82.table @@ -1,3 +1,10 @@ -0 0 not set +######################### +# +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# +######################### 82 82 standard SMHI 83 83 MATCH data (standard SMHI + extra MATCH keywords) +255 255 MISSING diff --git a/definitions/grib1/mars_labeling.82.def b/definitions/grib1/mars_labeling.82.def index ade22f237..01936a7d9 100644 --- a/definitions/grib1/mars_labeling.82.def +++ b/definitions/grib1/mars_labeling.82.def @@ -1,56 +1,16 @@ -# Copyright 2005-2007 ECMWF +######################### # -# Licensed under the GNU Lesser General Public License which -# incorporates the terms and conditions of version 3 of the GNU -# General Public License. -# See LICENSE and gpl-3.0.txt for details. +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# +######################### -concept_nofail pseudoLevType (unknown) { - #set uses the last one - #get returns the first match - 'sfc' = {indicatorOfTypeOfLevel=1;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=2;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=3;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=4;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=8;marsClass=80;} - 'pl' = {indicatorOfTypeOfLevel=100;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=102;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=103;marsClass=80;} - 'hl' = {indicatorOfTypeOfLevel=105;marsClass=80;} - 'ml' = {indicatorOfTypeOfLevel=109;marsClass=80;} - 'dp' = {indicatorOfTypeOfLevel=160;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=191;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=192;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=193;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=194;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=195;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=196;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=197;marsClass=80;} - 'tile' = {indicatorOfTypeOfLevel=198;marsClass=80;} - 'sfc' = {indicatorOfTypeOfLevel=200;marsClass=80;} - 'surf' = {indicatorOfTypeOfLevel=1;marsClass=81;} - 'bcld' = {indicatorOfTypeOfLevel=2;marsClass=81;} - 'tcld' = {indicatorOfTypeOfLevel=3;marsClass=81;} - 'isot' = {indicatorOfTypeOfLevel=4;marsClass=81;} - 'tatm' = {indicatorOfTypeOfLevel=8;marsClass=81;} - 'pl' = {indicatorOfTypeOfLevel=100;marsClass=81;} - 'msl' = {indicatorOfTypeOfLevel=102;marsClass=81;} - 'hmsl' = {indicatorOfTypeOfLevel=103;marsClass=81;} - 'hl' = {indicatorOfTypeOfLevel=105;marsClass=81;} - 'ml' = {indicatorOfTypeOfLevel=109;marsClass=81;} - 'dp' = {indicatorOfTypeOfLevel=160;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=191;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=192;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=193;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=194;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=195;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=196;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=197;marsClass=81;} - 'tile' = {indicatorOfTypeOfLevel=198;marsClass=81;} - 'atm' = {indicatorOfTypeOfLevel=200;marsClass=81;} +#constant conceptsMasterMarsDir="mars" : hidden; +#constant conceptsLocalMarsDirAll="mars/[centre:s]" : hidden; -} +#concept levTypePacking (unknown,"levTypePackingConcept.def",conceptsLocalMarsDirAll,conceptsMasterMarsDir); if( indicatorOfTypeOfLevel == 191 || indicatorOfTypeOfLevel == 192 || @@ -67,12 +27,31 @@ if( indicatorOfTypeOfLevel == 191 || alias mars.class = marsClass; alias mars.type = marsType; -alias mars.pseudolevtype = pseudoLevType; alias mars.stream = marsStream; alias mars.expver = experimentVersionNumber; alias mars.model = marsModel; alias mars.domain = globalDomain; +#if ( ( class == 80 && ( indicatorOfTypeOfLevel == 1 || +# indicatorOfTypeOfLevel == 2 || +# indicatorOfTypeOfLevel == 3 || +# indicatorOfTypeOfLevel == 4 || +# indicatorOfTypeOfLevel == 8 || +# indicatorOfTypeOfLevel == 102 || +# indicatorOfTypeOfLevel == 103 || +# indicatorOfTypeOfLevel == 200)) || +# indicatorOfTypeOfLevel == 191 || +# indicatorOfTypeOfLevel == 192 || +# indicatorOfTypeOfLevel == 193 || +# indicatorOfTypeOfLevel == 194 || +# indicatorOfTypeOfLevel == 195 || +# indicatorOfTypeOfLevel == 196 || +# indicatorOfTypeOfLevel == 197 || +# indicatorOfTypeOfLevel == 198 ) { +# concept trueLevType (unknown,"trueLevType.def",conceptsLocalMarsDirAll,conceptsMasterMarsDir); +# alias mars.truelevtype = trueLevType; +#} + alias ls.dataType = marsType; diff --git a/definitions/grib1/typeOfLevel.def b/definitions/grib1/typeOfLevel.def new file mode 100644 index 000000000..03efbd9c0 --- /dev/null +++ b/definitions/grib1/typeOfLevel.def @@ -0,0 +1,41 @@ +######################### +# +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# +######################### +'surface' = {indicatorOfTypeOfLevel=1;} +'cloudBase' = {indicatorOfTypeOfLevel=2;} +'cloudTop' = {indicatorOfTypeOfLevel=3;} +'isothermZero' = {indicatorOfTypeOfLevel=4;} +'adiabaticCondensation' = {indicatorOfTypeOfLevel=5;} +'maxWind' = {indicatorOfTypeOfLevel=6;} +'tropopause' = {indicatorOfTypeOfLevel=7;} +'nominalTop' = {indicatorOfTypeOfLevel=8;} +'seaBottom' = {indicatorOfTypeOfLevel=9;} +'isobaricInhPa' = {indicatorOfTypeOfLevel=100;} +'isobaricLayer' = {indicatorOfTypeOfLevel=101;} +'meanSea' = {indicatorOfTypeOfLevel=102;} +'isobaricLayerHighPrecision' = {indicatorOfTypeOfLevel=121;} +'isobaricLayerMixedPrecision' = {indicatorOfTypeOfLevel=141;} +'heightAboveSea' = {indicatorOfTypeOfLevel=103;} +'heightAboveSeaLayer' = {indicatorOfTypeOfLevel=104;} +'heightAboveGroundHighPrecision' = {indicatorOfTypeOfLevel=125;} +'heightAboveGround' = {indicatorOfTypeOfLevel=105;} +'heightAboveGroundLayer' = {indicatorOfTypeOfLevel=106;} +'sigma' = {indicatorOfTypeOfLevel=107;} +'sigmaLayer' = {indicatorOfTypeOfLevel=108;} +'sigmaLayerHighPrecision' = {indicatorOfTypeOfLevel=128;} +'hybrid' = {indicatorOfTypeOfLevel=109;} +'hybridLayer' = {indicatorOfTypeOfLevel=110;} +'depthBelowLand' = {indicatorOfTypeOfLevel=111;} +'depthBelowLandLayer' = {indicatorOfTypeOfLevel=112;} +'theta' = {indicatorOfTypeOfLevel=113;} +'thetaLayer' = {indicatorOfTypeOfLevel=114;} +'pressureFromGround' = {indicatorOfTypeOfLevel=115;} +'pressureFromGroundLayer' = {indicatorOfTypeOfLevel=116;} +'potentialVorticity' = {indicatorOfTypeOfLevel=117;} +'depthBelowSea' = {indicatorOfTypeOfLevel=160;} +'entireAtmosphere' = {indicatorOfTypeOfLevel=200;} +'entireOcean' = {indicatorOfTypeOfLevel=201;} diff --git a/definitions/mars/eswi/aerosolPackingConcept.def b/definitions/mars/eswi/aerosolPackingConcept.def new file mode 100644 index 000000000..f4d6006c9 --- /dev/null +++ b/definitions/mars/eswi/aerosolPackingConcept.def @@ -0,0 +1,8 @@ +#se" usest the last one +#get returns the first match +"0"={matchAerosolBinNumber=0;} +"1-5"={matchAerosolBinNumber=1;} +"1-5"={matchAerosolBinNumber=2;} +"1-5"={matchAerosolBinNumber=3;} +"1-5"={matchAerosolBinNumber=4;} +"1-5"={matchAerosolBinNumber=5;} diff --git a/definitions/mars/eswi/aerosolbinnumber.table b/definitions/mars/eswi/aerosolbinnumber.table deleted file mode 100644 index 845083798..000000000 --- a/definitions/mars/eswi/aerosolbinnumber.table +++ /dev/null @@ -1,17 +0,0 @@ -# Model 50 (MATCH) SMHI local definitions aerosol bin number -# -# Aerosol bin number parameter in local extension -# -0 NOBIN none -1 BIN1 Aerosol Binary number 1 -2 BIN2 Aerosol Binary number 2 -3 BIN3 Aerosol Binary number 3 -4 BIN4 Aerosol Binary number 4 -5 BIN5 Aerosol Binary number 5 -6 BIN6 Aerosol Binary number 6 -7 BIN7 Aerosol Binary number 7 -8 BIN8 Aerosol Binary number 8 -9 BIN9 Aerosol Binary number 9 -10 BIN10 Aerosol Binary number 10 -100 ALLBIN All binary number - diff --git a/definitions/mars/eswi/class.table b/definitions/mars/eswi/class.table index 5b2d33e92..d42c8eb80 100644 --- a/definitions/mars/eswi/class.table +++ b/definitions/mars/eswi/class.table @@ -1,3 +1,10 @@ +######################### +# +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# +######################### 0 none not set, default 1 od ECMWF Operational data 2 rd ECMWF Research data diff --git a/definitions/mars/eswi/grib1.mdfa.fc.def b/definitions/mars/eswi/grib1.mdfa.fc.def new file mode 100755 index 000000000..63d270822 --- /dev/null +++ b/definitions/mars/eswi/grib1.mdfa.fc.def @@ -0,0 +1,3 @@ +# assert(localDefinitionNumber == 1); +alias mars.step = stepRange; +unalias mars.time; diff --git a/definitions/mars/eswi/grib1.mnth.an.def b/definitions/mars/eswi/grib1.mnth.an.def new file mode 100755 index 000000000..e06aac5ae --- /dev/null +++ b/definitions/mars/eswi/grib1.mnth.an.def @@ -0,0 +1,2 @@ +# class e4 +alias mars.step = startStep; diff --git a/definitions/mars/eswi/grib1.mnth.fc.def b/definitions/mars/eswi/grib1.mnth.fc.def new file mode 100755 index 000000000..86d97ba0c --- /dev/null +++ b/definitions/mars/eswi/grib1.mnth.fc.def @@ -0,0 +1,8 @@ +# assert(local=1) +meta verificationDate g1verificationdate(dataDate, dataTime, endStep) : read_only; +meta monthlyVerificationDate g1monthlydate(verificationDate) : dump,no_copy; +alias mars.date = monthlyVerificationDate; + +# class e4 +# constant six = 6; +alias mars.step = startStep; diff --git a/definitions/mars/eswi/grib1.moda.an.def b/definitions/mars/eswi/grib1.moda.an.def new file mode 100755 index 000000000..2adc555c2 --- /dev/null +++ b/definitions/mars/eswi/grib1.moda.an.def @@ -0,0 +1,9 @@ +# NOTE: step is startStep + +alias mars.step = startStep; + +# Only ERA15 has time and step +if(class != 3) { + unalias mars.time; + unalias mars.step; +} diff --git a/definitions/mars/eswi/grib1.moda.fc.def b/definitions/mars/eswi/grib1.moda.fc.def new file mode 100755 index 000000000..cdd96c567 --- /dev/null +++ b/definitions/mars/eswi/grib1.moda.fc.def @@ -0,0 +1,12 @@ +# assert(local=1) +# NOTE: verificationDate based on startStep + +meta verificationDate g1verificationdate(dataDate, dataTime, startStep) : read_only; +alias mars.date = verificationDate; +alias mars.step = startStep; + +# Only ERA15 has time and step +if(class != 3) { + unalias mars.time; + unalias mars.step; +} diff --git a/definitions/mars/eswi/grib1.oper.3v.def b/definitions/mars/eswi/grib1.oper.3v.def new file mode 100755 index 000000000..cc16a58ce --- /dev/null +++ b/definitions/mars/eswi/grib1.oper.3v.def @@ -0,0 +1,2 @@ +label "x"; + diff --git a/definitions/mars/eswi/grib1.oper.4v.def b/definitions/mars/eswi/grib1.oper.4v.def new file mode 100755 index 000000000..cc16a58ce --- /dev/null +++ b/definitions/mars/eswi/grib1.oper.4v.def @@ -0,0 +1,2 @@ +label "x"; + diff --git a/definitions/mars/eswi/grib1.oper.an.def b/definitions/mars/eswi/grib1.oper.an.def new file mode 100755 index 000000000..cc16a58ce --- /dev/null +++ b/definitions/mars/eswi/grib1.oper.an.def @@ -0,0 +1,2 @@ +label "x"; + diff --git a/definitions/mars/eswi/grib1.oper.fc.def b/definitions/mars/eswi/grib1.oper.fc.def new file mode 100755 index 000000000..a7a404bc3 --- /dev/null +++ b/definitions/mars/eswi/grib1.oper.fc.def @@ -0,0 +1 @@ +alias mars.step = endStep; diff --git a/definitions/mars/eswi/grib1.oper.si.def b/definitions/mars/eswi/grib1.oper.si.def new file mode 100755 index 000000000..cc16a58ce --- /dev/null +++ b/definitions/mars/eswi/grib1.oper.si.def @@ -0,0 +1,2 @@ +label "x"; + diff --git a/definitions/mars/eswi/landtype.table b/definitions/mars/eswi/landtype.table deleted file mode 100644 index 7cf731e9c..000000000 --- a/definitions/mars/eswi/landtype.table +++ /dev/null @@ -1,35 +0,0 @@ -# Model 50 (MATCH) SMHI local definitions landtype -# -# landtype parameter in local extension -# -000 ALL All surfaces -001 WATER Water or Sea Water (fraction) -002 RURAL Rural (fraction) -003 URBAN Urban (fraction) -004 LOWVEG Lowveg (fraction) -005 FOREST Forest (fraction) -006 NOVEG Noveg (fraction) -021 PASTURE Pasture (fraction) -022 ARABLE Arable (fraction) -023 BEECHOAK Beech_oak (fraction) -024 DECIDUOUS Deciduous (fraction) -025 SPRUCE Spruce (fraction) -026 PINE Pine (fraction) -027 WETLAND Wetland (fraction) -028 MOUNTAIN Mountain (fraction) -029 BIRCH Birch (fraction) -051 ICE Ice (fraction) -052 SNOW Snow (fraction) -071 HSLOWV Hendersen-Sellers classification -072 HSFOR Hendersen-Sellers classification -073 POLITI Politi -074 MASK Mask -081 REGIONAL Regional contribution -082 LONGRANGE Long-range contribution -083 LOCAL Local (urban) contribution -090 ZONE Zone index -100 TOP Top layer -150 EFFDOSE Effective dose [Sv] -151 SKIN Skin dose [Sv] -152 THYROID Thyroid dose [Sv] -153 LUNG Lung dose [Sv] diff --git a/definitions/mars/eswi/model.table b/definitions/mars/eswi/model.table index dc541cc2a..432ad3fa9 100644 --- a/definitions/mars/eswi/model.table +++ b/definitions/mars/eswi/model.table @@ -1,3 +1,10 @@ +######################### +## +## author: Sebastien Villaume +## created: 6 Oct 2011 +## modified: 13 May 2013 +## +# # Model ##### SMHI local definitions ##### 0 none not set, default 10 ifs IFS diff --git a/definitions/mars/eswi/sort.table b/definitions/mars/eswi/sort.table deleted file mode 100644 index 727ca02eb..000000000 --- a/definitions/mars/eswi/sort.table +++ /dev/null @@ -1,92 +0,0 @@ -# Model 50 SMHI local definitions sort -# -# Sort parameter in local extension -# -000 NONE No sort specified -001 CM Atm. conc. [g/kg] -002 LNCM Log Atm. conc. [g/kg] -003 C Atm. conc. [g/m3] -003 CC Atm. conc. [g/m3] -004 LNC Log Atm. conc. [g/m3] -007 NR Atm. conc. [number/m3] -009 CBQ Atm. conc. [Bq/m3] -010 LNCBQ Log Atm. conc. [Bq/m3] -011 CMREFH Atm. conc. at reference height [g/kg] -012 CREFH Atm. conc. at reference height [g/m3] -013 LNCREFH Log Atm. conc. at reference height [g/m3] -014 TOTCOLUMN Total column [g/m2] -014 LOWCOLUMN Column up to 6000m [g/m2] -014 HIGHCOLUMN Column up above 6000m [g/m2] -014 LOWMAX Max in column up to 6000m [g/m3] -014 HIGHMAX Max in column above 6000m [g/m3] -015 LOWMAXZ Level at max in column up to 6000m [m] -015 HIGHMAXZ Level at max in column above 6000m [m] -021 ICM Integrated atm. conc. s [g/kg] -022 LNICM Log Integrated atm. conc. s [g/kg] -023 IC Integrated atm. conc. s [g/m3] -024 LNIC Logarith of Integrated atm. conc. s [g/m3] -027 INR Integrated atm. conc. s [number/m3] -029 ICBQ Integrated atm. conc. s [Bq/m3] -030 LNICBQ Log Integrated atm. conc. s [Bq/m3] -051 CLW Conc. in liquid water [g/m3] -053 CEQLW Conc. in liquid water Equivalents/m3 -054 CNRLW Conc. in liquid water [number/m3] -055 CBQLWC Conc. in liquid water [Bq/m3] -061 CIW Conc. in ice water [g/m3] -063 CEQIW Conc. in ice water Equivalents/m3 -064 CNRIW Conc. in ice water [number/m3] -065 CBQIW Conc. in ice water [Bq/m3] -071 CPREC Conc. in precipitation [g/m3] (mg/l) -073 CEQPREC Conc. in precipitation Equivalents/m3 -074 CNPREC Conc. in precipitation [number/m3] -075 CBQPREC Conc. in precipitation [Bq/m3] -081 DRYDEP Dry deposition [g/m2] -082 LNDRYDEP Log Dry deposition [g/m2] -084 DRYDEPNR Dry deposition [number/m2] -085 DRYDEPBQ Dry deposition [Bq/m2] -091 WETDEP Wet deposition [g/m2] -092 LNWETDEP Log Wet deposition [g/m2] -094 WETDEPNR Wet deposition [number/m2] -095 WETDEPBQ Wet deposition [Bq/m2] -101 TOTDEP Total deposition [g/m2] -102 LNTOTDEP Log Total deposition [g/m2] -104 TOTDEPNR Total deposition [number/m2] -105 TOTDEPBQ Total deposition [Bq/m2] -110 QTON Emissions [ton] -111 QKG Emissions [kg] -112 QG Emissions [g] -114 QNR Emissions [number] -115 QBQ Emissions [Bq] -121 QKGS Emissions [kg/s] -122 QGS Emissions [g/s] -124 QNS Emissions [number/s] -125 QBQS Emissions [Bq/s] -131 AQKGS Emissions [kg/(m2 s)] -132 AQGS Emissions [g/(m2 s)] -134 AQNRS Emissions [number/(m2 s)] -135 AQBQS Emissions [Bq/(m2 s)] -136 AQ0KGS Surface emissions [kg/(m2 s)] -137 AQ0GS Surface emissions [g/(m2 s)] -138 AQ0NRS Surface emissions [number/(m2 s)] -139 AQ0BQS Surface emissions [Bq/(m2 s)] -150 INHALDOSE Inhalation dose [nSv] -151 GROUNDDOSE Ground dose [nSv] -152 CLOUDDOSE Infinite cloud dose [nSv] -153 SUMDOSE Sum of cloud and ground dose [nSv] -201 VD Dry deposition velocity [m/s] -202 VS Settling velocity [m/s] -203 LAMDA Scavenging coefficient [1/s] -205 TSUM Degree hours or days for last day [K] -206 HSUM Current degree days [K] -207 HCRIT Critical degree days [K] -208 RACCUM Accum pollen emission [grains/m2] -209 CORR Correction factor [fraction] -210 AOD Aerosol optical depth [] -240 TIMEARRIVAL Deposition arrival since 1 Jan 1971 [days] -241 TIMELATEST Latest deposition since 1 Jan 1971 [days] -242 TIMEMAX Time of max activity since 1 Jan 1971 [days] -243 MAXACTIVITY Max radioactive activity [Bq/m2] -244 LNMAXACTIVITY Log Max radioactive activity -250 FREQUENCY Relative occurrence [] -251 FLUX statistics [kg] -252 FLUXMOL statistics [mol] diff --git a/definitions/mars/eswi/stream.table b/definitions/mars/eswi/stream.table index 08b791045..f9bc36f4e 100644 --- a/definitions/mars/eswi/stream.table +++ b/definitions/mars/eswi/stream.table @@ -1,3 +1,9 @@ +######################### +# +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# 0 none not set, default 1025 oper Operational deterministic model daily archive 1043 mnth Monthly means diff --git a/definitions/mars/eswi/timerepres.table b/definitions/mars/eswi/timerepres.table deleted file mode 100644 index de6bb81ec..000000000 --- a/definitions/mars/eswi/timerepres.table +++ /dev/null @@ -1,44 +0,0 @@ -# Model 50 (MATCH) SMHI local definitions timerep -# -# Time representation parameter in local extension -# -000 NONE No representation specified -001 3HMEAN 3 Hour mean value (hours) -002 DIURNALMEAN Diurnal or Daily mean (hours) -003 1HMEAN 1 Hour mean value (hours) -005 MONTHLYMEAN Monthly mean (month) -006 MEAN Mean from start (hours) -007 ANNUALMEAN Annual mean (year) -010 MAX Max value -011 MIN Min value -012 DAILYMAX Diurnal max -014 MONTHLYMAX Monthly max -016 ANNUALMAX Annual max -017 MONMEANDAYMAX Mean of daily-max -018 ANNMEANDAYMAX Mean of daily-max -019 MEANDAYMAX Mean of daily-max -020 ACCUMULATED Acc. since start (hours) -021 DAYACCUM Acc. over one day (hours) -022 MONTHACCUM Acc. over one month (months) -023 3HACCUM Acc. over one day (hours) -024 3MONTHACCUM Acc. over three months (months) -025 6MONTHACCUM Acc. over six months (months) -026 YEARACCUM Acc. over one year (year) -030 8HMEAN Running 8-hour mean (hours) -031 MAX8HMEAN Daily maximum of 8-hour mean -032 MEANMAX8H Mean of daily maximum of 8-hour mean -033 MAXMAX8H Max of daily maximum of 8-hour mean -040 PERC98H1 98 percentil (hours) -041 PERC98D1 98 percentil (day) -042 PERC90D1 90 percentil (day) -043 MEDIAN Median -044 LIKELIHOOD Likelihood -045 JOINTPROBABILITY Joint probability -046 PERCENTILE Percentile -050 BOUNDARY Boundary value -051 FIRSTGUESS First guess -052 STDDEV Standard deviation -060 ANAINCR Analysis increment -061 ANAERR Analysis error -062 BGERR Background error -070 QUALITY Quality flag diff --git a/definitions/mars/eswi/type.table b/definitions/mars/eswi/type.table index f62bed3b7..50b9d633d 100644 --- a/definitions/mars/eswi/type.table +++ b/definitions/mars/eswi/type.table @@ -1,3 +1,9 @@ +######################### +# +# author: Sebastien Villaume +# created: 6 Oct 2011 +# modified: 13 May 2013 +# 0 none not set, default 2 an Analysis 5 3v 3DVAR analysis diff --git a/definitions/mars/eswi/wave_domain.def b/definitions/mars/eswi/wave_domain.def new file mode 100644 index 000000000..7ec0774d5 --- /dev/null +++ b/definitions/mars/eswi/wave_domain.def @@ -0,0 +1,68 @@ +'g'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-81000;longitudeOfLastGridPoint=358500;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-81000;longitudeOfLastGridPoint=358500;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=358500;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=359000;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=359500;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=359640;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=357000;} +'g'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78000;longitudeOfLastGridPoint=357000;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78000;longitudeOfLastGridPoint=359750;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78120;longitudeOfLastGridPoint=359640;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78000;longitudeOfLastGridPoint=359500;} +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78000;longitudeOfLastGridPoint=359000;} +'g'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-78000;longitudeOfLastGridPoint=357000;} +'g'={latitudeOfFirstGridPoint=89731;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-89731;longitudeOfLastGridPoint=359648;} + +### ADDED SMHI +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=359750;} + +'m'={latitudeOfFirstGridPoint=66000;longitudeOfFirstGridPoint=-6000;latitudeOfLastGridPoint=30000;longitudeOfLastGridPoint=42000;} +'m'={latitudeOfFirstGridPoint=66000;longitudeOfFirstGridPoint=354000;latitudeOfLastGridPoint=30000;longitudeOfLastGridPoint=42000;} +'m'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=-98000;latitudeOfLastGridPoint=5000;longitudeOfLastGridPoint=54000;} +'m'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=-98000;latitudeOfLastGridPoint=9000;longitudeOfLastGridPoint=42000;} +'m'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=262000;latitudeOfLastGridPoint=9000;longitudeOfLastGridPoint=42000;} + +### ADDED SMHI +'m'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=-98000;latitudeOfLastGridPoint=5100;longitudeOfLastGridPoint=53950;} + + +'n'={latitudeOfFirstGridPoint=81000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=0;longitudeOfLastGridPoint=359500;} +'s'={latitudeOfFirstGridPoint=-500;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-81000;longitudeOfLastGridPoint=359500;} + +'g'={latitudeOfFirstGridPoint=90000;longitudeOfFirstGridPoint=0;latitudeOfLastGridPoint=-90000;longitudeOfLastGridPoint=359750;} +'g' = { generatingProcessIdentifier=104 ;} +'g' = { generatingProcessIdentifier=105 ;} +'g' = { generatingProcessIdentifier=106 ;} +'g' = { generatingProcessIdentifier=107 ;} +'g' = { generatingProcessIdentifier=108 ;} +'g' = { generatingProcessIdentifier=109 ;} +'g' = { generatingProcessIdentifier=110 ;} +'g' = { generatingProcessIdentifier=111 ;} +'g' = { generatingProcessIdentifier=112 ;} +'g' = { generatingProcessIdentifier=113 ;} +'g' = { generatingProcessIdentifier=114 ;} +'g' = { generatingProcessIdentifier=115 ;} +'g' = { generatingProcessIdentifier=116 ;} +'g' = { generatingProcessIdentifier=117 ;} +'g' = { generatingProcessIdentifier=118 ;} +'g' = { generatingProcessIdentifier=119 ;} +'g' = { generatingProcessIdentifier=120 ;} +'m' = { generatingProcessIdentifier=204 ;} +'m' = { generatingProcessIdentifier=205 ;} +'m' = { generatingProcessIdentifier=206 ;} +'m' = { generatingProcessIdentifier=207 ;} +'m' = { generatingProcessIdentifier=208 ;} +'m' = { generatingProcessIdentifier=209 ;} +'m' = { generatingProcessIdentifier=210 ;} +'m' = { generatingProcessIdentifier=211 ;} +'m' = { generatingProcessIdentifier=212 ;} +'m' = { generatingProcessIdentifier=213 ;} +'m' = { generatingProcessIdentifier=214 ;} +'m' = { generatingProcessIdentifier=215 ;} +'m' = { generatingProcessIdentifier=216 ;} +'m' = { generatingProcessIdentifier=217 ;} +'m' = { generatingProcessIdentifier=218 ;} +'m' = { generatingProcessIdentifier=219 ;} +'m' = { generatingProcessIdentifier=220 ;} + +