Merge branch 'develop' into convertion-inherit

This commit is contained in:
Shahram Najm 2024-01-20 13:18:56 +00:00
commit 67be77071b
249 changed files with 6313 additions and 1943 deletions

View File

@ -1,5 +1,6 @@
Enrico Fucile Enrico Fucile
Shahram Najm Shahram Najm
Eugen Betke
Sandor Kertesz Sandor Kertesz
Sebastien Villaume Sebastien Villaume
Florian Rathgeber Florian Rathgeber

View File

@ -90,3 +90,5 @@ gfs.complex.mvmu.grib2
mercator.grib2 mercator.grib2
run_length_packing.grib2 run_length_packing.grib2
boustrophedonic.grib1 boustrophedonic.grib1
reduced_gaussian_sub_area.legacy.grib1

View File

@ -1,5 +1,4 @@
constant ECMWF = 98 : hidden; constant ECMWF = 98 : hidden;
constant ECMWF_s = "ecmf" : hidden;
constant WMO = 0; constant WMO = 0;
constant conceptsMasterDir="grib1" : hidden; constant conceptsMasterDir="grib1" : hidden;
constant conceptsLocalDirECMF="grib1/localConcepts/ecmf" : hidden; constant conceptsLocalDirECMF="grib1/localConcepts/ecmf" : hidden;
@ -181,6 +180,8 @@ meta dataTime time(hour,minute,second) : dump;
meta julianDay julian_day(dataDate,hour,minute,second) : edition_specific; meta julianDay julian_day(dataDate,hour,minute,second) : edition_specific;
codetable[1] stepUnits 'stepUnits.table' = 1 : transient,dump,no_copy; codetable[1] stepUnits 'stepUnits.table' = 1 : transient,dump,no_copy;
# The lowercase version is to unify it with the helper key in the MARS language
alias stepunits = stepUnits;
concept_nofail stepType (timeRangeIndicator, "stepType.def", conceptsDir2, conceptsDir1); concept_nofail stepType (timeRangeIndicator, "stepType.def", conceptsDir2, conceptsDir1);
@ -267,7 +268,6 @@ if(((section1Length > 40) or new() or setLocalDefinition> 0) and deleteLocalDefi
} }
template_nofail marsKeywords "mars/grib.[stream:s].[type:s].def"; template_nofail marsKeywords "mars/grib.[stream:s].[type:s].def";
} }
else else
{ {

View File

@ -19,6 +19,7 @@ constant million = 1000000 : hidden;
constant grib2divider = 1000000; constant grib2divider = 1000000;
alias extraDimensionPresent=zero; alias extraDimensionPresent=zero;
transient angleSubdivisions=grib2divider; # micro degrees transient angleSubdivisions=grib2divider; # micro degrees
transient forceStepUnits = 255 : hidden;
meta gts_header gts_header() : no_copy,hidden,read_only; meta gts_header gts_header() : no_copy,hidden,read_only;
meta gts_TTAAii gts_header(20,6) : no_copy,hidden,read_only; meta gts_TTAAii gts_header(20,6) : no_copy,hidden,read_only;
@ -29,7 +30,7 @@ transient missingValue = 9999;
constant ieeeFloats = 1 : edition_specific; constant ieeeFloats = 1 : edition_specific;
constant isHindcast = 0; constant isHindcast = 0;
include "grib2/section.0.def"; include "grib2/section.0.def"
template core "grib2/sections.def"; template core "grib2/sections.def";

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 52 ; parameterNumber = 52 ;
} }
#Envelope-maximum individual wave height
'envhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'tdcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'tdhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'stcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'sthmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness #Wave Spectral Skewness
'wss' = { 'wss' = {
discipline = 10 ; discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 9 ; parameterNumber = 9 ;
} }
#Lake depth
'lakdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'rivdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'rivout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'fldout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'pthflw' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude #Latitude
'lat' = { 'lat' = {
discipline = 0 ; discipline = 0 ;

View File

@ -1,5 +1,6 @@
# Concept combinationOfAttributesOfTile # Concept combinationOfAttributesOfTile
'UNDEF' = {attributeOfTile = [0];}
'UNMOD' = {attributeOfTile = [1];} 'UNMOD' = {attributeOfTile = [1];}
'SNOW' = {attributeOfTile = [2];} 'SNOW' = {attributeOfTile = [2];}
'FLOOD' = {attributeOfTile = [3];} 'FLOOD' = {attributeOfTile = [3];}

View File

@ -1,3 +1 @@
label "_local 98.1"; label "_x";

View File

@ -1,7 +1,7 @@
# DestinE MARS layout # DestinE MARS layout
# Base keywords for all datasets # Base keywords for all datasets
include "grib2/local.destine.base.def"; include "grib2/local.destine.base.def"
# Keywords based on dataset # Keywords based on dataset
template_nofail datasetTemplate "grib2/local.destine.[dataset:s].def"; template_nofail datasetTemplate "grib2/local.destine.[dataset:s].def";

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ; typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Covariance between 2-metre temperature and volumetric soil water layer 1
'covar_t2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'covar_rh2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'covar_ssm_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'covar_t2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'covar_rh2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'covar_ssm_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'covar_t2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'covar_rh2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'covar_ssm_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'covar_t2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'covar_rh2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'covar_t2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'covar_rh2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'covar_t2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'covar_rh2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'covar_t2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'covar_rh2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'covar_t2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'covar_rh2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'covar_t2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'covar_rh2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat #Surface roughness length for heat
'srlh' = { 'srlh' = {
localTablesVersion = 1 ; localTablesVersion = 1 ;

View File

@ -6,3 +6,4 @@
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=5;} 'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=5;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=6;} 'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=6;}
'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=7;} 'o2d' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;gridDefinitionTemplateNumber=101;numberOfGridUsed=7;}
'sfc' = {typeOfFirstFixedSurface=254;}

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ; typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Covariance between 2-metre temperature and volumetric soil water layer 1
'Covariance between 2-metre temperature and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'Covariance between 2-metre relative humidity and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'Covariance between surface soil moisture and volumetric soil water layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'Covariance between 2-metre temperature and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'Covariance between 2-metre relative humidity and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'Covariance between surface soil moisture and volumetric soil water layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'Covariance between 2-metre temperature and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'Covariance between 2-metre relative humidity and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'Covariance between surface soil moisture and volumetric soil water layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'Covariance between 2-metre temperature and soil temperature layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'Covariance between 2-metre relative humidity and soil temperature layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'Covariance between 2-metre temperature and soil temperature layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'Covariance between 2-metre relative humidity and soil temperature layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'Covariance between 2-metre temperature and soil temperature layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'Covariance between 2-metre relative humidity and soil temperature layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'Covariance between 2-metre temperature and temperature of snow layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'Covariance between 2-metre relative humidity and temperature of snow layer 1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'Covariance between 2-metre temperature and temperature of snow layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'Covariance between 2-metre relative humidity and temperature of snow layer 2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'Covariance between 2-metre temperature and temperature of snow layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'Covariance between 2-metre relative humidity and temperature of snow layer 3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat #Surface roughness length for heat
'Surface roughness length for heat' = { 'Surface roughness length for heat' = {
localTablesVersion = 1 ; localTablesVersion = 1 ;

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ; typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Covariance between 2-metre temperature and volumetric soil water layer 1
'254001' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'254002' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'254003' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'254004' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'254005' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'254006' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'254007' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'254008' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'254009' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'254010' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'254011' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'254012' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'254013' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'254014' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'254015' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'254016' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'254017' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'254018' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'254019' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'254020' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'254021' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat #Surface roughness length for heat
'260651' = { '260651' = {
localTablesVersion = 1 ; localTablesVersion = 1 ;

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ; typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Covariance between 2-metre temperature and volumetric soil water layer 1
'covar_t2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'covar_rh2m_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'covar_ssm_swvl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'covar_t2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'covar_rh2m_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'covar_ssm_swvl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'covar_t2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'covar_rh2m_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'covar_ssm_swvl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'covar_t2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'covar_rh2m_stl1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'covar_t2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'covar_rh2m_stl2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'covar_t2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'covar_rh2m_stl3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'covar_t2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'covar_rh2m_tsn1' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'covar_t2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'covar_rh2m_tsn2' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'covar_t2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'covar_rh2m_tsn3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat #Surface roughness length for heat
'srlh' = { 'srlh' = {
localTablesVersion = 1 ; localTablesVersion = 1 ;

View File

@ -0,0 +1,2 @@
# Concept typeOfLevel
'abstractLevel' = {typeOfFirstFixedSurface=254;}

View File

@ -13825,6 +13825,174 @@
typeOfSecondFixedSurface = 255 ; typeOfSecondFixedSurface = 255 ;
typeOfStatisticalProcessing = 1 ; typeOfStatisticalProcessing = 1 ;
} }
#Covariance between 2-metre temperature and volumetric soil water layer 1
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 192 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 1
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 193 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 1
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 194 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 2
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 195 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 2
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 196 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 2
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 197 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and volumetric soil water layer 3
'K m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 198 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and volumetric soil water layer 3
'% m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 199 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between surface soil moisture and volumetric soil water layer 3
'm**3 m**-3 m**3 m**-3' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 200 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 1
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 201 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 1
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 202 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 2
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 203 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 2
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 204 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and soil temperature layer 3
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 205 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and soil temperature layer 3
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 206 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 1
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 207 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 1
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 208 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 2
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 209 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 2
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 210 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre temperature and temperature of snow layer 3
'K K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 211 ;
typeOfFirstFixedSurface = 254 ;
}
#Covariance between 2-metre relative humidity and temperature of snow layer 3
'% K' = {
localTablesVersion = 1 ;
discipline = 254 ;
parameterCategory = 254 ;
parameterNumber = 212 ;
typeOfFirstFixedSurface = 254 ;
}
#Surface roughness length for heat #Surface roughness length for heat
'm' = { 'm' = {
localTablesVersion = 1 ; localTablesVersion = 1 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 52 ; parameterNumber = 52 ;
} }
#Envelope-maximum individual wave height
'Envelope-maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'Time domain maximum individual crest height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'Time domain maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'Space time maximum individual crest height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'Space time maximum individual wave height' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness #Wave Spectral Skewness
'Wave Spectral Skewness' = { 'Wave Spectral Skewness' = {
discipline = 10 ; discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 9 ; parameterNumber = 9 ;
} }
#Lake depth
'Lake depth' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'River depth' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'River outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'Floodplain outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'Floodpath outflow of water' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude #Latitude
'Latitude' = { 'Latitude' = {
discipline = 0 ; discipline = 0 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 52 ; parameterNumber = 52 ;
} }
#Envelope-maximum individual wave height
'140130' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'140131' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'140132' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'140133' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'140134' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness #Wave Spectral Skewness
'140207' = { '140207' = {
discipline = 10 ; discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 9 ; parameterNumber = 9 ;
} }
#Lake depth
'240030' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'240031' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'240032' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'240033' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'240034' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude #Latitude
'250001' = { '250001' = {
discipline = 0 ; discipline = 0 ;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 52 ; parameterNumber = 52 ;
} }
#Envelope-maximum individual wave height
'envhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'tdcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'tdhmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'stcmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'sthmax' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness #Wave Spectral Skewness
'wss' = { 'wss' = {
discipline = 10 ; discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 9 ; parameterNumber = 9 ;
} }
#Lake depth
'lakdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'rivdph' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'rivout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'fldout' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'pthflw' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude #Latitude
'lat' = { 'lat' = {
discipline = 0 ; discipline = 0 ;

View File

@ -0,0 +1,11 @@
# (C) Copyright 2005- ECMWF.
# alias defaultStepUnits = one; # 1 means Hour. See code table 4.4
# template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
# codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
meta stepUnits optimal_step_units(forecastTime,indicatorOfUnitOfTimeRange,lengthOfTimeRange,indicatorOfUnitForTimeRange) : transient,dump;
transient startStepUnit = 255 : hidden; # 255 means MISSING. See code table 4.4
transient endStepUnit = 255 : hidden;
# The lowercase version is to unify it with the helper key in the MARS language
alias stepunits = stepUnits;

View File

@ -0,0 +1,2 @@
# Code table 0.0 for ECMWF - Discipline of processed data in the GRIB message, number of GRIB Master table
254 254 Model internal fields

View File

@ -0,0 +1,2 @@
# Product discipline 254 for ECMWF - Model internal fields
254 254 Covariances

View File

@ -0,0 +1,22 @@
# Code table 4.2 - discipline=254 category=254 for ECMWF
192 192 Covariance between 2-metre temperature and volumetric soil water layer 1 [K m**3 m**-3]
193 193 Covariance between 2-metre relative humidity and volumetric soil water layer 1 [% m**3 m**-3]
194 194 Covariance between surface soil moisture and volumetric soil water layer 1 [m**3 m**-3 m**3 m**-3]
195 195 Covariance between 2-metre temperature and volumetric soil water layer 2 [K m**3 m**-3]
196 196 Covariance between 2-metre relative humidity and volumetric soil water layer 2 [% m**3 m**-3]
197 197 Covariance between surface soil moisture and volumetric soil water layer 2 [m**3 m**-3 m**3 m**-3]
198 198 Covariance between 2-metre temperature and volumetric soil water layer 3 [K m**3 m**-3]
199 199 Covariance between 2-metre relative humidity and volumetric soil water layer 3 [% m**3 m**-3]
200 200 Covariance between surface soil moisture and volumetric soil water layer 3 [m**3 m**-3 m**3 m**-3]
201 201 Covariance between 2-metre temperature and soil temperature layer 1 [K K]
202 202 Covariance between 2-metre relative humidity and soil temperature layer 1 [% K]
203 203 Covariance between 2-metre temperature and soil temperature layer 2 [K K]
204 204 Covariance between 2-metre relative humidity and soil temperature layer 2 [% K]
205 205 Covariance between 2-metre temperature and soil temperature layer 3 [K K]
206 206 Covariance between 2-metre relative humidity and soil temperature layer 3 [% K]
207 207 Covariance between 2-metre temperature and temperature of snow layer 1 [K K]
208 208 Covariance between 2-metre relative humidity and temperature of snow layer 1 [% K]
209 209 Covariance between 2-metre temperature and temperature of snow layer 2 [K K]
210 210 Covariance between 2-metre relative humidity and temperature of snow layer 2 [% K]
211 211 Covariance between 2-metre temperature and temperature of snow layer 3 [K K]
212 212 Covariance between 2-metre relative humidity and temperature of snow layer 3 [% K]

View File

@ -1 +1,2 @@
173 173 Top surface of snow, over ice, on sea, lake or river 173 173 Top surface of snow, over ice, on sea, lake or river
254 254 Abstract level with no vertical localization or meaning

View File

@ -2,4 +2,4 @@
# TEMPLATE 1.0, Calendar Definition # TEMPLATE 1.0, Calendar Definition
include "grib2/template.1.calendar.def"; include "grib2/template.1.calendar.def"

View File

@ -2,4 +2,4 @@
# TEMPLATE 1.1, Paleontological Offset # TEMPLATE 1.1, Paleontological Offset
include "grib2/template.1.offset.def"; include "grib2/template.1.offset.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 1.2, Calendar Definition and Paleontological Offset # TEMPLATE 1.2, Calendar Definition and Paleontological Offset
include "grib2/template.1.calendar.def"; include "grib2/template.1.calendar.def"
include "grib2/template.1.offset.def"; include "grib2/template.1.offset.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.0, Latitude/longitude (or equidistant cylindrical, or Plate Carree) # TEMPLATE 3.0, Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"; include "grib2/template.3.latlon.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.1, Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree) # TEMPLATE 3.1, Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"; include "grib2/template.3.latlon.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.10, Mercator # TEMPLATE 3.10, Mercator
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -27,7 +27,7 @@ signed[4] longitudeOfFirstGridPoint : edition_specific,no_copy;
alias Lo1 = longitudeOfFirstGridPoint; alias Lo1 = longitudeOfFirstGridPoint;
meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump; meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
# LaD - Latitude(s) at which the Mercator projection intersects the Earth # LaD - Latitude(s) at which the Mercator projection intersects the Earth
# (Latitude(s) where Di and Dj are specified) # (Latitude(s) where Di and Dj are specified)
@ -44,7 +44,7 @@ signed[4] longitudeOfLastGridPoint: edition_specific,no_copy ;
alias Lo2 = longitudeOfLastGridPoint; alias Lo2 = longitudeOfLastGridPoint;
meta geography.longitudeOfLastGridPointInDegrees scale(longitudeOfLastGridPoint,oneConstant,grib2divider,truncateDegrees) : dump; meta geography.longitudeOfLastGridPointInDegrees scale(longitudeOfLastGridPoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Orientation of the grid, angle between i direction on the map and the equator # Orientation of the grid, angle between i direction on the map and the equator
# NOTE 1: Limited to the range of 0 to 90 degrees; if the angle of orientation of the grid is neither 0 nor 90 degrees, # NOTE 1: Limited to the range of 0 to 90 degrees; if the angle of orientation of the grid is neither 0 nor 90 degrees,

View File

@ -3,16 +3,16 @@
# TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.) # TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.)
constant isGridded = true; constant isGridded = true;
# n2 - exponent of 2 for the number of intervals on main triangle sides # Exponent of 2 for the number of intervals on main triangle sides
unsigned[1] n2 : dump ; unsigned[1] n2 : dump ;
# n3 - exponent of 3 for the number of intervals on main triangle sides # Exponent of 3 for the number of intervals on main triangle sides
unsigned[1] n3 : dump ; unsigned[1] n3 : dump ;
# Ni - number of intervals on main triangle sides of the icosahedron # Number of intervals on main triangle sides of the icosahedron
unsigned[2] Ni : dump ; unsigned[2] Ni : dump ;
# nd - Number of diamonds # Number of diamonds
unsigned[1] nd : dump ; unsigned[1] nd : dump ;
alias numberOfDiamonds=nd; alias numberOfDiamonds=nd;
@ -28,17 +28,12 @@ meta geography.longitudeOfThePolePointInDegrees g2lon(longitudeOfThePolePoint);
unsigned[4] longitudeOfFirstDiamondCentreLine : dump ; unsigned[4] longitudeOfFirstDiamondCentreLine : dump ;
meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine); meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine);
# Grid point position
codetable[1] gridPointPosition ('3.8.table',masterDir,localDir); codetable[1] gridPointPosition ('3.8.table',masterDir,localDir);
# Numbering order of diamonds
flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table'; flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table';
# Scanning mode for one diamond
flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table'; flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table';
# nt - total number of grid points
unsigned[4] totalNumberOfGridPoints : dump ; unsigned[4] totalNumberOfGridPoints : dump ;
alias nt = totalNumberOfGridPoints; alias nt = totalNumberOfGridPoints;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal # TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -12,27 +12,26 @@ unsigned[4] numberOfHorizontalPoints : dump ;
unsigned[4] basicAngleOfTheInitialProductionDomain = 0; unsigned[4] basicAngleOfTheInitialProductionDomain = 0;
# Subdivisions of basic angle used to define extreme longitudes and latitudes # Subdivisions of basic angle used to define extreme longitudes and latitudes
unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;; unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing;
# La1 - latitude of first grid point # Latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ; signed[4] latitudeOfFirstGridPoint : edition_specific ;
alias La1 = latitudeOfFirstGridPoint; alias La1 = latitudeOfFirstGridPoint;
# Lo1 - longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
# Longitude of first grid point
unsigned[4] longitudeOfFirstGridPoint : edition_specific;
alias Lo1 = longitudeOfFirstGridPoint; alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# La2 - latitude of last grid point # Latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific; signed[4] latitudeOfLastGridPoint : edition_specific;
alias La2 = latitudeOfLastGridPoint; alias La2 = latitudeOfLastGridPoint;
# Lo2 - longitude of last grid point
unsigned[4] longitudeOfLastGridPoint: edition_specific ;
# Longitude of last grid point
unsigned[4] longitudeOfLastGridPoint: edition_specific ;
alias Lo2 = longitudeOfLastGridPoint; alias Lo2 = longitudeOfLastGridPoint;
# Type of horizontal line # Type of horizontal line
codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ; codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ;
@ -45,10 +44,8 @@ codetable[1] meaningOfVerticalCoordinate ('3.15.table',masterDir,localDir) : dum
# Vertical dimension coordinate values definition # Vertical dimension coordinate values definition
codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ; codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ;
# NC - Number of coefficients or values used to specify vertical coordinates # Number of coefficients or values used to specify vertical coordinates
unsigned[2] NC : dump ; unsigned[2] NC : dump ;
# Octets 67-(66+NC*4): Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values # Octets 67-(66+NC*4): Coefficients to define vertical dimension coordinate values in functional form, or the explicit coordinate values
# (IEEE 32-bit floating-point values) # (IEEE 32-bit floating-point values)
# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values

View File

@ -1,41 +1,40 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.110, Equatorial azimuthal equidistant projection # TEMPLATE 3.110, Equatorial azimuthal equidistant projection
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
# Nx - number of points along X-axis # Number of points along X-axis
unsigned[4] numberOfPointsAlongXAxis : dump; unsigned[4] numberOfPointsAlongXAxis : dump;
alias Nx = numberOfPointsAlongXAxis; alias Nx = numberOfPointsAlongXAxis;
alias numberOfPointsAlongAParallel = Nx; alias numberOfPointsAlongAParallel = Nx;
alias Ni = Nx; alias Ni = Nx;
# Ny - number of points along Y-axis # Number of points along Y-axis
unsigned[4] numberOfPointsAlongYAxis : dump; unsigned[4] numberOfPointsAlongYAxis : dump;
alias Ny = numberOfPointsAlongYAxis; alias Ny = numberOfPointsAlongYAxis;
alias numberOfPointsAlongAMeridian = Ny; alias numberOfPointsAlongAMeridian = Ny;
alias Nj = Ny; alias Nj = Ny;
# La1 - latitude of tangency point (centre of grid) # Latitude of tangency point (centre of grid)
signed[4] latitudeOfTangencyPoint : dump; signed[4] latitudeOfTangencyPoint : dump;
alias La1 = latitudeOfTangencyPoint; alias La1 = latitudeOfTangencyPoint;
# Lo1 - longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump;
# Longitude of tangency point
unsigned[4] longitudeOfTangencyPoint : dump;
alias Lo1 = longitudeOfTangencyPoint; alias Lo1 = longitudeOfTangencyPoint;
# Resolution and component flag # Resolution and component flag
flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump; flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump;
# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis # X-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dx : dump; unsigned[4] Dx : dump;
# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis # Y-direction grid length in units of 10 -3 m as measured at the point of the axis
unsigned[4] Dy : dump; unsigned[4] Dy : dump;
# Projection centre flag # Projection centre flag
unsigned[1] projectionCentreFlag : dump; unsigned[1] projectionCentreFlag : dump;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal # TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -23,7 +23,7 @@ unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 =longitudeOfFirstGridPoint; alias Lo1 =longitudeOfFirstGridPoint;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# La2 - latitude of last grid point # La2 - latitude of last grid point
signed[4] latitudeOfLastGridPoint : edition_specific,dump; signed[4] latitudeOfLastGridPoint : edition_specific,dump;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.12, Transverse Mercator # TEMPLATE 3.12, Transverse Mercator
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -27,7 +27,7 @@ signed[4] longitudeOfReferencePoint : edition_specific,no_copy;
alias LoR = longitudeOfReferencePoint; alias LoR = longitudeOfReferencePoint;
meta geography.longitudeOfReferencePointInDegrees scale(longitudeOfReferencePoint,oneConstant,grib2divider,truncateDegrees) : dump; meta geography.longitudeOfReferencePointInDegrees scale(longitudeOfReferencePoint,oneConstant,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
# m - scale factor at reference point ratio of distance on map to distance on spheroid # m - scale factor at reference point ratio of distance on map to distance on spheroid
# (IEEE 32-bit floating-point values) # (IEEE 32-bit floating-point values)
@ -45,7 +45,7 @@ signed[4] YR : edition_specific,no_copy ;
alias falseNorthing = YR; alias falseNorthing = YR;
meta geography.YRInMetres scale(YR,one,hundred) : dump; meta geography.YRInMetres scale(YR,one,hundred) : dump;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Di - i-direction increment length in units of 10-2 m # Di - i-direction increment length in units of 10-2 m
unsigned[4] Di : edition_specific,no_copy; unsigned[4] Di : edition_specific,no_copy;

View File

@ -34,7 +34,7 @@ alias Dx = spacingOfBinsAlongRadials;
unsigned[4] offsetFromOriginToInnerBound; unsigned[4] offsetFromOriginToInnerBound;
alias Dstart = offsetFromOriginToInnerBound; alias Dstart = offsetFromOriginToInnerBound;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Octets 40-(39+4Nr) : For each of Nr radials: # Octets 40-(39+4Nr) : For each of Nr radials:
radials list(numberOfRadials){ radials list(numberOfRadials){

View File

@ -6,7 +6,7 @@ constant isGridded = true;
# Note: This template is deprecated. # Note: This template is deprecated.
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
points list(numberOfDataPoints) { points list(numberOfDataPoints) {
signed[4] latitude; signed[4] latitude;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.140, Lambert azimuthal equal area projection # TEMPLATE 3.140, Lambert azimuthal equal area projection
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -52,7 +52,7 @@ alias Dy = yDirectionGridLengthInMillimetres ;
meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump; meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump;
alias DyInMetres = yDirectionGridLengthInMetres; alias DyInMetres = yDirectionGridLengthInMetres;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
iterator lambert_azimuthal_equal_area( iterator lambert_azimuthal_equal_area(
numberOfPoints,missingValue,values, numberOfPoints,missingValue,values,

View File

@ -1,7 +1,7 @@
# TEMPLATE 3.150 - The HEALPix grid # TEMPLATE 3.150 - The HEALPix grid
# See https://healpix.jpl.nasa.gov/pdf/intro.pdf # See https://healpix.jpl.nasa.gov/pdf/intro.pdf
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
include "grib2/template.3.healpix.def"; include "grib2/template.3.healpix.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.2, Stretched Latitude/longitude (or equidistant cylindrical, or Plate Carree) # TEMPLATE 3.2, Stretched Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"; include "grib2/template.3.latlon.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.20, Polar stereographic projection # TEMPLATE 3.20, Polar stereographic projection
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -63,7 +63,7 @@ flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
# If bit 1 is 1, then the South Pole is on the projection plane # If bit 1 is 1, then the South Pole is on the projection plane
flagbit southPoleOnProjectionPlane(projectionCentreFlag,7) : dump; # WMO bit 1 flagbit southPoleOnProjectionPlane(projectionCentreFlag,7) : dump; # WMO bit 1
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
iterator polar_stereographic(numberOfPoints,missingValue,values, iterator polar_stereographic(numberOfPoints,missingValue,values,
radius,Nx,Ny, radius,Nx,Ny,

View File

@ -2,8 +2,8 @@
# TEMPLATE 3.3, Stretched and Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree) # TEMPLATE 3.3, Stretched and Rotated Latitude/longitude (or equidistant cylindrical, or Plate Carree)
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon.def"; include "grib2/template.3.latlon.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.30, Lambert conformal # TEMPLATE 3.30, Lambert conformal
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -32,7 +32,7 @@ meta geography.longitudeOfFirstGridPointInDegrees
alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees; alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees;
#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,oneConstant) : no_copy; #meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,oneConstant) : no_copy;
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified # LaD - Latitude where Dx and Dy are specified
signed[4] LaD : edition_specific; signed[4] LaD : edition_specific;
@ -58,7 +58,7 @@ meta geography.DyInMetres scale(Dy,one,thousand) : dump;
# Projection centre flag # Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump; flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere # Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 : edition_specific; signed[4] Latin1 : edition_specific;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.31, Albers equal area # TEMPLATE 3.31, Albers equal area
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -23,7 +23,7 @@ alias La1 = latitudeOfFirstGridPoint;
unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump; unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump;
alias Lo1 = longitudeOfFirstGridPoint; alias Lo1 = longitudeOfFirstGridPoint;
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
# LaD - Latitude where Dx and Dy are specified # LaD - Latitude where Dx and Dy are specified
signed[4] LaD : dump; signed[4] LaD : dump;
@ -42,7 +42,7 @@ alias Dy = yDirectionGridLength;
# Projection centre flag # Projection centre flag
flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump; flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Latin 1 - first latitude from the pole at which the secant cone cuts the sphere # Latin 1 - first latitude from the pole at which the secant cone cuts the sphere
signed[4] Latin1 :edition_specific; signed[4] Latin1 :edition_specific;

View File

@ -1,5 +1,5 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.4, Variable resolution latitude/longitude # TEMPLATE 3.4, Variable resolution latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon_vares.def"; include "grib2/template.3.latlon_vares.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.40, Gaussian latitude/longitude # TEMPLATE 3.40, Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"; include "grib2/template.3.gaussian.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.41, Rotated Gaussian latitude/longitude # TEMPLATE 3.41, Rotated Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"; include "grib2/template.3.gaussian.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.42, Stretched Gaussian latitude/longitude # TEMPLATE 3.42, Stretched Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"; include "grib2/template.3.gaussian.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -2,7 +2,7 @@
# TEMPLATE 3.43, Stretched and rotated Gaussian latitude/longitude # TEMPLATE 3.43, Stretched and rotated Gaussian latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.gaussian.def"; include "grib2/template.3.gaussian.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.5, Variable resolution rotated latitude/longitude # TEMPLATE 3.5, Variable resolution rotated latitude/longitude
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
include "grib2/template.3.latlon_vares.def"; include "grib2/template.3.latlon_vares.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"

View File

@ -2,4 +2,4 @@
# TEMPLATE 3.50, Spherical harmonic coefficients # TEMPLATE 3.50, Spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def"; include "grib2/template.3.spherical_harmonics.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.51, Rotated spherical harmonic coefficients # TEMPLATE 3.51, Rotated spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def"; include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"

View File

@ -2,5 +2,5 @@
# TEMPLATE 3.52, Stretched spherical harmonic coefficients # TEMPLATE 3.52, Stretched spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def"; include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -2,6 +2,6 @@
# TEMPLATE 3.53, Stretched and rotated spherical harmonic coefficients # TEMPLATE 3.53, Stretched and rotated spherical harmonic coefficients
include "grib2/template.3.spherical_harmonics.def"; include "grib2/template.3.spherical_harmonics.def"
include "grib2/template.3.rotation.def"; include "grib2/template.3.rotation.def"
include "grib2/template.3.stretching.def"; include "grib2/template.3.stretching.def"

View File

@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def" include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point # La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint: edition_specific,no_copy ; signed[4] latitudeOfFirstGridPoint: edition_specific,no_copy ;

View File

@ -7,7 +7,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def" include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point # La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific ; signed[4] latitudeOfFirstGridPoint : edition_specific ;

View File

@ -6,7 +6,7 @@ transient biFourierMakeTemplate = 0;
include "grib2/template.3.bf.def" include "grib2/template.3.bf.def"
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
# La1 - latitude of first grid point # La1 - latitude of first grid point
signed[4] latitudeOfFirstGridPoint : edition_specific; signed[4] latitudeOfFirstGridPoint : edition_specific;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 3.90, Space view perspective or orthographic # TEMPLATE 3.90, Space view perspective or orthographic
include "grib2/template.3.shape_of_the_earth.def"; include "grib2/template.3.shape_of_the_earth.def"
constant isGridded = true; constant isGridded = true;
@ -25,7 +25,7 @@ signed[4] longitudeOfSubSatellitePoint;
meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump; meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump; meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump;
include "grib2/template.3.resolution_flags.def"; include "grib2/template.3.resolution_flags.def"
# dx - apparent diameter of Earth in grid lengths, in X-direction # dx - apparent diameter of Earth in grid lengths, in X-direction
unsigned[4] dx : dump; unsigned[4] dx : dump;
@ -47,7 +47,7 @@ unsigned[4] Yp : no_copy;
meta geography.YpInGridLengths scale(Yp,one,thousand) : dump; meta geography.YpInGridLengths scale(Yp,one,thousand) : dump;
alias yCoordinateOfSubSatellitePoint=YpInGridLengths; alias yCoordinateOfSubSatellitePoint=YpInGridLengths;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
# Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian # Orientation of the grid; i.e. the angle between the increasing Y-axis and the meridian
# of the sub-satellite point in the direction of increasing latitude # of the sub-satellite point in the direction of increasing latitude

View File

@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
include "grib2/template.3.grid.def"; include "grib2/template.3.grid.def"
# Di - i direction increment # Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing; unsigned[4] iDirectionIncrement : can_be_missing;
@ -11,7 +11,7 @@ unsigned[4] N : dump;
alias numberOfParallelsBetweenAPoleAndTheEquator=N ; alias numberOfParallelsBetweenAPoleAndTheEquator=N ;
alias geography.N=N; alias geography.N=N;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
modify Ni : can_be_missing,dump; modify Ni : can_be_missing,dump;

View File

@ -1,6 +1,6 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
include "grib2/template.3.grid.def"; include "grib2/template.3.grid.def"
# Di - i direction increment # Di - i direction increment
unsigned[4] iDirectionIncrement : can_be_missing,edition_specific; unsigned[4] iDirectionIncrement : can_be_missing,edition_specific;
@ -12,7 +12,7 @@ unsigned[4] jDirectionIncrement : can_be_missing,edition_specific;
alias Dj = jDirectionIncrement; alias Dj = jDirectionIncrement;
alias Dy = jDirectionIncrement; alias Dy = jDirectionIncrement;
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
meta g2grid g2grid( meta g2grid g2grid(
latitudeOfFirstGridPoint, latitudeOfFirstGridPoint,

View File

@ -1,4 +1,5 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# Variable resolution latitude/longitude # Variable resolution latitude/longitude
unsigned[4] Ni : dump; unsigned[4] Ni : dump;
alias numberOfPointsAlongAParallel=Ni; alias numberOfPointsAlongAParallel=Ni;
@ -7,7 +8,6 @@ alias Nx = Ni;
unsigned[4] Nj : dump; unsigned[4] Nj : dump;
alias numberOfPointsAlongAMeridian=Nj; alias numberOfPointsAlongAMeridian=Nj;
alias Ny = Nj; alias Ny = Nj;
alias geography.Ni=Ni; alias geography.Ni=Ni;
alias geography.Nj=Nj; alias geography.Nj=Nj;
@ -36,7 +36,7 @@ when (missing(subdivisionsOfBasicAngle) || subdivisionsOfBasicAngle == 0) {
include "grib2/template.3.resolution_flags.def" include "grib2/template.3.resolution_flags.def"
include "grib2/template.3.scanning_mode.def"; include "grib2/template.3.scanning_mode.def"
longitudesList list(Ni) { longitudesList list(Ni) {
unsigned[4] longitude; unsigned[4] longitude;

View File

@ -3,17 +3,17 @@
constant sphericalHarmonics=1; constant sphericalHarmonics=1;
# constant dataRepresentationType = 50; # constant dataRepresentationType = 50;
# J - pentagonal resolution parameter # Pentagonal resolution parameter
unsigned[4] J : dump; unsigned[4] J : dump;
alias pentagonalResolutionParameterJ=J; alias pentagonalResolutionParameterJ=J;
alias geography.J=J; alias geography.J=J;
# K - pentagonal resolution parameter # Pentagonal resolution parameter
unsigned[4] K : dump; unsigned[4] K : dump;
alias pentagonalResolutionParameterK=K; alias pentagonalResolutionParameterK=K;
alias geography.K=K; alias geography.K=K;
# M - pentagonal resolution parameter # Pentagonal resolution parameter
unsigned[4] M : dump; unsigned[4] M : dump;
alias pentagonalResolutionParameterM = M; alias pentagonalResolutionParameterM = M;
alias geography.M=M; alias geography.M=M;

View File

@ -15,9 +15,7 @@ unsigned[1] numberOfRadarSitesUsed : dump;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump; codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange; alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4 include "grib2/stepUnits.def"
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
# Site latitude (in microdegrees) # Site latitude (in microdegrees)
unsigned[4] siteLatitude : dump; unsigned[4] siteLatitude : dump;

View File

@ -5,7 +5,6 @@
include "grib2/template.4.parameter.def" include "grib2/template.4.parameter.def"
include "grib2/template.4.generating_process.def" include "grib2/template.4.generating_process.def"
include "grib2/template.4.forecast_time.def" include "grib2/template.4.forecast_time.def"
include "grib2/template.4.point_in_time.def"
include "grib2/template.4.satellite.def" include "grib2/template.4.satellite.def"
include "grib2/template.4.eps.def" include "grib2/template.4.eps.def"
include "grib2/template.4.statistical.def" include "grib2/template.4.statistical.def"

View File

@ -12,9 +12,7 @@ alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump; codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange; alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4 include "grib2/stepUnits.def"
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
# Forecast time in units defined by previous octet (GRIB-29: supports negative forecast time) # Forecast time in units defined by previous octet (GRIB-29: supports negative forecast time)
signed[4] forecastTime : dump; signed[4] forecastTime : dump;

View File

@ -14,9 +14,7 @@ alias minutesAfterReferenceTimeOfDataCutoff=minutesAfterDataCutoff;
codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump; codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump;
alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange; alias indicatorOfUnitForForecastTime = indicatorOfUnitOfTimeRange;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4 include "grib2/stepUnits.def"
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
# Forecast time in units defined by previous octet # Forecast time in units defined by previous octet
# See GRIB-530: We have to make a special case for the error in WMO spec # See GRIB-530: We have to make a special case for the error in WMO spec

View File

@ -3,9 +3,8 @@
remove is_localtime; remove is_localtime;
transient is_localtime=1; transient is_localtime=1;
alias defaultStepUnits = one; # 1 means Hour. See code table 4.4 include "grib2/stepUnits.def"
template_nofail default_step_units "grib2/localConcepts/[centre:s]/default_step_units.def";
codetable[1] stepUnits 'stepUnits.table' = defaultStepUnits : transient,dump,no_copy;
alias time.stepUnits = stepUnits; alias time.stepUnits = stepUnits;
# Method used to calculate the field value at the local time specified in section 1 # Method used to calculate the field value at the local time specified in section 1
@ -82,7 +81,6 @@ if (numberOfForecastsUsedInLocalTime == 1) {
alias mars.date = dateOfForecastUsedInLocalTime : dump; alias mars.date = dateOfForecastUsedInLocalTime : dump;
alias mars.time = timeOfForecastUsedInLocalTime : dump; alias mars.time = timeOfForecastUsedInLocalTime : dump;
alias mars.step = endStep; alias mars.step = endStep;
alias time.dataDate = dateOfForecastUsedInLocalTime; alias time.dataDate = dateOfForecastUsedInLocalTime;
alias time.dataTime = timeOfForecastUsedInLocalTime; alias time.dataTime = timeOfForecastUsedInLocalTime;
alias time.endStep = endStep; alias time.endStep = endStep;

View File

@ -2,6 +2,6 @@
# TEMPLATE 5.0, Grid point data - simple packing # TEMPLATE 5.0, Grid point data - simple packing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"

View File

@ -4,7 +4,7 @@
# Preliminary note: # Preliminary note:
# This template was not validated at the time of publication and should be used with caution # This template was not validated at the time of publication and should be used with caution
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
unsigned[1] matrixBitmapsPresent; unsigned[1] matrixBitmapsPresent;
# same as in edition 1 # same as in edition 1

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.2, Grid point data - complex packing # TEMPLATE 5.2, Grid point data - complex packing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"
# Group splitting method used # Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir); codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.3, Grid point data - complex packing and spatial differencing # TEMPLATE 5.3, Grid point data - complex packing and spatial differencing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"
# Group splitting method used # Group splitting method used
codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir); codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir);

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.40, Grid point data - JPEG 2000 Code Stream Format # TEMPLATE 5.40, Grid point data - JPEG 2000 Code Stream Format
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"
codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ; codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ;

View File

@ -2,5 +2,5 @@
# TEMPLATE 5.41, Grid point data - PNG Code Stream Format # TEMPLATE 5.41, Grid point data - PNG Code Stream Format
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"

View File

@ -2,8 +2,8 @@
# TEMPLATE 5.42, Grid point data - CCSDS recommended lossless compression # TEMPLATE 5.42, Grid point data - CCSDS recommended lossless compression
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
include "grib2/template.5.original_values.def"; include "grib2/template.5.original_values.def"
unsigned[1] ccsdsFlags : dump; unsigned[1] ccsdsFlags : dump;
alias ccsdsCompressionOptionsMask=ccsdsFlags; alias ccsdsCompressionOptionsMask=ccsdsFlags;

View File

@ -1,7 +1,7 @@
# (C) Copyright 2005- ECMWF. # (C) Copyright 2005- ECMWF.
# TEMPLATE 5.50, Spectral data - simple packing # TEMPLATE 5.50, Spectral data - simple packing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
# Real part of (0,0) # Real part of (0,0)
ieeefloat realPartOf00; ieeefloat realPartOf00;

View File

@ -2,7 +2,7 @@
# TEMPLATE 5.50000, Spherical harmonics data - complex packing (IEEE) # TEMPLATE 5.50000, Spherical harmonics data - complex packing (IEEE)
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
if (gribex_mode_on()) { if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden; transient computeLaplacianOperator=0 : hidden;

View File

@ -2,7 +2,7 @@
# TEMPLATE 5.51, Spherical harmonics data - complex packing # TEMPLATE 5.51, Spherical harmonics data - complex packing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
if (gribex_mode_on()) { if (gribex_mode_on()) {
transient computeLaplacianOperator=0 : hidden; transient computeLaplacianOperator=0 : hidden;

View File

@ -3,7 +3,7 @@
# TEMPLATE 5.53, BiFourier coefficients data - complex packing # TEMPLATE 5.53, BiFourier coefficients data - complex packing
# Spectral data for limited area models - complex packing # Spectral data for limited area models - complex packing
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
transient computeLaplacianOperator=1 : hidden; transient computeLaplacianOperator=1 : hidden;

View File

@ -6,6 +6,6 @@
# This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests # This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests
constant typeOfPreProcessing = 1; constant typeOfPreProcessing = 1;
include "grib2/template.5.packing.def"; include "grib2/template.5.packing.def"
ieeefloat preProcessingParameter : read_only; ieeefloat preProcessingParameter : read_only;

View File

@ -958,6 +958,36 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 52 ; parameterNumber = 52 ;
} }
#Envelope-maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 93 ;
}
#Time domain maximum individual crest height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 94 ;
}
#Time domain maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 95 ;
}
#Space time maximum individual crest height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 96 ;
}
#Space time maximum individual wave height
'm' = {
discipline = 10 ;
parameterCategory = 0 ;
parameterNumber = 97 ;
}
#Wave Spectral Skewness #Wave Spectral Skewness
'Numeric' = { 'Numeric' = {
discipline = 10 ; discipline = 10 ;
@ -4454,6 +4484,40 @@
parameterCategory = 0 ; parameterCategory = 0 ;
parameterNumber = 9 ; parameterNumber = 9 ;
} }
#Lake depth
'm' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 15 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River depth
'm' = {
discipline = 1 ;
parameterCategory = 2 ;
parameterNumber = 16 ;
typeOfFirstFixedSurface = 1 ;
typeOfSecondFixedSurface = 162 ;
}
#River outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 17 ;
}
#Floodplain outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 18 ;
}
#Floodpath outflow of water
'm**3 s**-1' = {
discipline = 1 ;
parameterCategory = 0 ;
parameterNumber = 19 ;
}
#Latitude #Latitude
'Degree N' = { 'Degree N' = {
discipline = 0 ; discipline = 0 ;

View File

@ -49,4 +49,3 @@ meta md5Headers md5(startOfHeaders,lengthOfHeaders);
ascii[4] endMark; ascii[4] endMark;
position totalLength; position totalLength;
alias ls.totalLength=totalLength; alias ls.totalLength=totalLength;

View File

@ -73,3 +73,4 @@
92 pfc Point values 92 pfc Point values
93 ppm Point value metrics 93 ppm Point value metrics
94 gwt Weather types 94 gwt Weather types
95 est Ensemble statistics

View File

@ -77,10 +77,12 @@ if( HAVE_BUILD_TOOLS )
grib_clone grib_clone
grib_copy_message grib_copy_message
grib_ensemble_index grib_ensemble_index
grib_index
grib_set_pv grib_set_pv
grib_set_bitmap grib_set_bitmap
grib_list grib_list
grib_get_data grib_get_data
grib_mars_param
grib_nearest grib_nearest
grib_nearest_multiple grib_nearest_multiple
grib_multi grib_multi

View File

@ -32,7 +32,7 @@ int main(int argc, char* argv[])
size_t stringLen; size_t stringLen;
char stringVal[100] = {0,}; char stringVal[100] = {0,};
int i, err = 0; int i, err = 0;
int cnt = 0; int cnt = 0, ktype = 0;
const char* infile = "../../data/bufr/synop_multi_subset.bufr"; const char* infile = "../../data/bufr/synop_multi_subset.bufr";
in = fopen(infile, "rb"); in = fopen(infile, "rb");
@ -62,6 +62,9 @@ int main(int argc, char* argv[])
for (i = 1; i <= numberOfSubsets; i++) { for (i = 1; i <= numberOfSubsets; i++) {
snprintf(key, sizeof(key), "/subsetNumber=%d/blockNumber", i); snprintf(key, sizeof(key), "/subsetNumber=%d/blockNumber", i);
CODES_CHECK(codes_get_native_type(h, key, &ktype), 0);
//printf("Type = %d\n", ktype);
printf(" subsetNumber=%d", i); printf(" subsetNumber=%d", i);
/* read and print some data values */ /* read and print some data values */
CODES_CHECK(codes_get_long(h, key, &longVal), 0); CODES_CHECK(codes_get_long(h, key, &longVal), 0);

View File

@ -19,7 +19,7 @@
static void usage(const char* prog) static void usage(const char* prog)
{ {
printf("usage: %s infile\n", prog); printf("usage: %s gribfile indexfile\n", prog);
exit(1); exit(1);
} }
@ -27,7 +27,8 @@ int main(int argc, char* argv[])
{ {
codes_index* index = NULL; codes_index* index = NULL;
codes_handle* h = NULL; codes_handle* h = NULL;
char* infile = NULL; char* inputfile = NULL;
char* indexfile = NULL;
long *steps, *levels, *numbers; /* arrays */ long *steps, *levels, *numbers; /* arrays */
char** shortName = NULL; char** shortName = NULL;
int i, j, k, l; int i, j, k, l;
@ -37,8 +38,9 @@ int main(int argc, char* argv[])
size_t lenshortName = sizeof(oshortName); size_t lenshortName = sizeof(oshortName);
int ret = 0, count = 0; int ret = 0, count = 0;
if (argc != 2) usage(argv[0]); if (argc != 3) usage(argv[0]);
infile = argv[1]; inputfile = argv[1];
indexfile = argv[2];
printf("indexing...\n"); printf("indexing...\n");
@ -50,7 +52,7 @@ int main(int argc, char* argv[])
} }
/* indexes a file */ /* indexes a file */
ret = codes_index_add_file(index, infile); ret = codes_index_add_file(index, inputfile);
if (ret) { if (ret) {
fprintf(stderr, "Error: %s\n", codes_get_error_message(ret)); fprintf(stderr, "Error: %s\n", codes_get_error_message(ret));
exit(ret); exit(ret);
@ -152,7 +154,7 @@ int main(int argc, char* argv[])
} }
printf(" %d messages selected\n", count); printf(" %d messages selected\n", count);
codes_index_write(index, "out.gribidx"); codes_index_write(index, indexfile);
codes_index_delete(index); codes_index_delete(index);
return 0; return 0;

23
examples/C/grib_index.sh Executable file
View File

@ -0,0 +1,23 @@
#!/bin/sh
# (C) Copyright 2005- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
. ./include.ctest.sh
label="grib_index_c"
tempIndex=temp.$label.idx
tempText=temp.$label.txt
input=$data_dir/tigge_cf_ecmwf.grib2
${examples_dir}/c_grib_index $input $tempIndex > $tempText
grep -q "43 messages selected" $tempText
${tools_dir}/grib_dump $tempIndex
rm -f $tempIndex $tempText

20
examples/C/grib_mars_param.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
# (C) Copyright 2005- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
. ./include.ctest.sh
label="grib_mars_param_c"
fTmp=${label}.tmp
fOut=${label}.tmp.out
fRef=${label}.tmp.ref
${examples_dir}/c_mars_param
rm -f ${fTmp} ${fRef} ${fOut}

View File

@ -10,7 +10,7 @@
. ./include.ctest.sh . ./include.ctest.sh
label="grib_nearest_multiple" label="grib_nearest_multiple_c"
temp1=$label.temp1.$$ temp1=$label.temp1.$$
temp2=$label.temp2.$$ temp2=$label.temp2.$$
tempRef=$label.ref.$$ tempRef=$label.ref.$$

View File

@ -22,6 +22,8 @@ if( HAVE_BUILD_TOOLS )
list( APPEND tests_extra list( APPEND tests_extra
grib_index grib_index
codes_dump codes_dump
codes_scan_file
codes_load_file
grib_copy_message grib_copy_message
bufr_copy_message bufr_copy_message
grib_get_keys grib_get_keys
@ -36,6 +38,7 @@ if( HAVE_BUILD_TOOLS )
grib_elements grib_elements
grib_nearest grib_nearest
grib_nearest_single grib_nearest_single
grib_nearest_four_single
grib_precision grib_precision
grib_print_data grib_print_data
grib_set_keys grib_set_keys
@ -47,6 +50,7 @@ if( HAVE_BUILD_TOOLS )
grib_copy_namespace grib_copy_namespace
grib_read_message grib_read_message
grib_read_from_file grib_read_from_file
grib_read_bytes
grib_get_set_uuid grib_get_set_uuid
grib_clone grib_clone
grib_ecc-1316 grib_ecc-1316
@ -89,6 +93,7 @@ else()
grib_nearest grib_nearest
grib_elements grib_elements
grib_nearest_single grib_nearest_single
grib_nearest_four_single
grib_precision grib_precision
grib_print_data grib_print_data
grib_set_missing grib_set_missing

View File

@ -10,7 +10,7 @@
! Description: How to copy a BUFR message in memory ! Description: How to copy a BUFR message in memory
! !
! !
program copy program bufr_copy_message
use eccodes use eccodes
implicit none implicit none
integer :: err, sub_centre integer :: err, sub_centre
@ -50,4 +50,4 @@ program copy
call codes_close_file(outfile) call codes_close_file(outfile)
deallocate (message) deallocate (message)
end program copy end program

View File

@ -11,6 +11,7 @@ program operator_3_test
implicit none implicit none
integer :: iret, outfile, ibufr integer :: iret, outfile, ibufr
integer(kind=4), dimension(:), allocatable :: ivalues integer(kind=4), dimension(:), allocatable :: ivalues
integer(kind=8), dimension(:), allocatable :: lvalues
character(len=100) :: outfile_name character(len=100) :: outfile_name
call getarg(1, outfile_name) call getarg(1, outfile_name)
@ -21,10 +22,10 @@ program operator_3_test
stop 1 stop 1
endif endif
allocate(ivalues(1)) allocate(lvalues(1))
ivalues=(/ -16383 /) lvalues=(/ -16383 /)
call codes_set(ibufr,'inputOverriddenReferenceValues',ivalues) call codes_set(ibufr,'inputOverriddenReferenceValues',lvalues)
deallocate(ivalues) deallocate(lvalues)
allocate(ivalues(3)) allocate(ivalues(3))
ivalues=(/ 2,2,2 /) ivalues=(/ 2,2,2 /)

View File

@ -0,0 +1,43 @@
! (C) Copyright 2005- ECMWF.
!
! This software is licensed under the terms of the Apache Licence Version 2.0
! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
!
! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
!
!
program codes_load_file
use eccodes
implicit none
integer :: ifile, cnt, level, step
integer :: i, igrib, iret
character(len=32) :: infile_name = '../../data/index.grib'
call codes_open_file(ifile, infile_name, 'r')
call codes_any_load_all_from_file(ifile, cnt)
i = 45
call codes_any_new_from_loaded(i, igrib)
call codes_get(igrib, 'level', level)
call codes_get(igrib, 'stepRange', step)
print *, 'Num messages=', cnt
print *, 'Msg ',i,' level=',level, ' step=', step
call codes_release(igrib)
! Invalid msg number
i = 450
call codes_any_new_from_loaded(i, igrib, iret)
if (iret /= GRIB_INVALID_ARGUMENT) then
call codes_check(iret, 'Error', 'codes_any_new_from_loaded should have failed')
else
print *,'Invalid message index returned error (as expected)'
end if
call codes_close_file(ifile)
end program

21
examples/F90/codes_load_file.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# (C) Copyright 2005- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
. ./include.ctest.sh
label='eccodes_f_codes_load_file'
temp=temp.$label.txt
# The input file is hard coded => data/index.grib
${examples_dir}/eccodes_f_codes_load_file > $temp
grep -q "Num messages= *384" $temp
grep -q "level= *700 step= *60" $temp
rm -f $temp

View File

@ -0,0 +1,43 @@
! (C) Copyright 2005- ECMWF.
!
! This software is licensed under the terms of the Apache Licence Version 2.0
! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
!
! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
!
!
program codes_scan_file
use eccodes
implicit none
integer :: ifile, cnt, level, step
integer :: i, igrib, iret
character(len=32) :: infile_name = '../../data/index.grib'
call codes_open_file(ifile, infile_name, 'r')
call codes_any_scan_file(ifile,cnt)
i = 45
call codes_any_new_from_scanned_file(ifile, i, igrib)
call codes_get(igrib, 'level', level)
call codes_get(igrib, 'stepRange', step)
print *, 'Num messages=', cnt
print *, 'Msg ',i,' level=',level, ' step=', step
call codes_release(igrib)
! Invalid msg number
i = 450
call codes_any_new_from_scanned_file(ifile, i, igrib, iret)
if (iret /= GRIB_INVALID_ARGUMENT) then
call codes_check(iret, 'Error', 'codes_any_new_from_scanned_file should have failed')
else
print *,'Invalid message index returned error (as expected)'
end if
call codes_close_file(ifile)
end program

21
examples/F90/codes_scan_file.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# (C) Copyright 2005- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
. ./include.ctest.sh
label='eccodes_f_codes_scan_file'
temp=temp.$label.txt
# The input file is hard coded => data/index.grib
${examples_dir}/eccodes_f_codes_scan_file > $temp
grep -q "Num messages= *384" $temp
grep -q "level= *700 step= *60" $temp
rm -f $temp

View File

@ -9,7 +9,7 @@
! Description: Count messages before processing ! Description: Count messages before processing
! !
! !
program get program grib_count_messages
use eccodes use eccodes
implicit none implicit none
@ -25,11 +25,10 @@ program get
integer :: numberOfPointsAlongAParallel integer :: numberOfPointsAlongAParallel
integer :: numberOfPointsAlongAMeridian integer :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values real, dimension(:), allocatable :: values
integer :: numberOfValues integer(8) :: numberOfValues
real :: average, min_val, max_val real :: average, min_val, max_val
call codes_open_file(ifile, & call codes_open_file(ifile, '../../data/tigge_pf_ecmwf.grib2', 'r')
'../../data/tigge_pf_ecmwf.grib2', 'r')
! count the messages in the file ! count the messages in the file
call codes_count_in_file(ifile, n) call codes_count_in_file(ifile, n)
@ -106,4 +105,4 @@ program get
deallocate (igrib) deallocate (igrib)
end program get end program

View File

@ -12,6 +12,9 @@ program grib_ecc_1316
implicit none implicit none
integer :: iret, ostep, olevel, onumber integer :: iret, ostep, olevel, onumber
! Test both interfaces: 4 byte and 8 byte integers
integer(4) :: step_int = 96, level_int = 0, number_int = 0
integer(8) :: step_long = 96, level_long = 0, number_long = 0
character(len=80) :: parameterName character(len=80) :: parameterName
integer :: idx, igrib, count1 = 0 integer :: idx, igrib, count1 = 0
@ -19,9 +22,12 @@ program grib_ecc_1316
call codes_index_create(idx, '../../data/tigge_cf_ecmwf.grib2', & call codes_index_create(idx, '../../data/tigge_cf_ecmwf.grib2', &
'parameterName,number,level,step') 'parameterName,number,level,step')
call codes_index_select(idx, 'step', 96) call codes_index_select(idx, 'step', step_int)
call codes_index_select(idx, 'level', 0) call codes_index_select(idx, 'level', level_int)
call codes_index_select(idx, 'number', 0) call codes_index_select(idx, 'number', number_int)
call codes_index_select(idx, 'step', step_long)
call codes_index_select(idx, 'level', level_long)
call codes_index_select(idx, 'number', number_long)
call codes_index_select(idx, 'parameterName', 'Soil moisture') call codes_index_select(idx, 'parameterName', 'Soil moisture')
do while (.true.) do while (.true.)

View File

@ -21,8 +21,8 @@ program grib_get_keys
real :: longitudeOfFirstPointInDegrees real :: longitudeOfFirstPointInDegrees
real :: latitudeOfLastPointInDegrees real :: latitudeOfLastPointInDegrees
real :: longitudeOfLastPointInDegrees real :: longitudeOfLastPointInDegrees
integer :: numberOfPointsAlongAParallel integer(4) :: numberOfPointsAlongAParallel
integer :: numberOfPointsAlongAMeridian integer(8) :: numberOfPointsAlongAMeridian
real, dimension(:), allocatable :: values real, dimension(:), allocatable :: values
integer :: numberOfValues integer :: numberOfValues
real :: average, min_val, max_val real :: average, min_val, max_val

View File

@ -23,7 +23,7 @@ program index
character(len=20) :: oshortName character(len=20) :: oshortName
integer :: shortNameSize, numberSize, levelSize, stepSize integer :: shortNameSize, numberSize, levelSize, stepSize
integer :: i, j, k, l integer :: i, j, k, l
integer :: idx, igrib, count1 integer :: idx, idx1, igrib, count1
character(len=10) :: index_file = 'index.idx' character(len=10) :: index_file = 'index.idx'
! uncomment following line to load index from file ! uncomment following line to load index from file
@ -107,7 +107,10 @@ program index
! save the index to a file for later reuse ! save the index to a file for later reuse
call codes_index_write(idx, index_file) call codes_index_write(idx, index_file)
call codes_index_read(idx1, index_file)
call codes_index_release(idx) call codes_index_release(idx)
call codes_index_release(idx1)
deallocate (level) deallocate (level)
deallocate (shortName) deallocate (shortName)

View File

@ -0,0 +1,31 @@
! (C) Copyright 2005- ECMWF.
!
! This software is licensed under the terms of the Apache Licence Version 2.0
! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
!
! In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
! virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
!
program find_nearest_4single
use eccodes
implicit none
integer :: infile, i
integer :: igrib
real(8) :: inlat = 5, inlon = 10
real(8) :: outlats(4), outlons(4)
real(8) :: values(4), distances(4)
integer(kind=kindOfInt) :: indexes(4)
call codes_open_file(infile, '../../data/reduced_gaussian_lsm.grib1', 'r')
call codes_grib_new_from_file(infile, igrib)
call codes_grib_find_nearest_four_single(igrib, .true., inlat, inlon, outlats, outlons, values, distances, indexes)
call codes_release(igrib)
call codes_close_file(infile)
print *, ' outlats outlons values distances indexes'
do i = 1, 4
write (*, '(F10.3, F10.3, F10.5, F10.3, I8)') outlats(i), outlons(i), values(i), distances(i), indexes(i)
end do
end program

View File

@ -0,0 +1,12 @@
#!/bin/sh
# (C) Copyright 2005- ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
. ./include.ctest.sh
${examples_dir}/eccodes_f_grib_nearest_four_single

Some files were not shown because too many files have changed in this diff Show More