diff --git a/CMakeLists.txt b/CMakeLists.txt index 050e8ff70..0cf89afc7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,9 +102,9 @@ ecbuild_add_option( FEATURE BUILD_TOOLS ecbuild_add_option( FEATURE JPG DESCRIPTION "Support for JPG decoding/encoding" DEFAULT ON ) -# Options related to JPG. The Jasper and OpenJPEG libraries +# Options related to JPG. The JasPer and OpenJPEG libraries ecbuild_add_option( FEATURE JPG_LIBJASPER - DESCRIPTION "Support for JPG decoding/encoding with the Jasper library" + DESCRIPTION "Support for JPG decoding/encoding with the JasPer library" CONDITION ENABLE_JPG DEFAULT ON ) ecbuild_add_option( FEATURE JPG_LIBOPENJPEG @@ -217,7 +217,7 @@ set( HAVE_LIBJASPER 0 ) set( HAVE_LIBOPENJPEG 0 ) if( ENABLE_JPG ) - # Note: The function ecbuild_add_extra_search_paths is deprecated but we need it to find Jasper at ECMWF. + # Note: The function ecbuild_add_extra_search_paths is deprecated but we need it to find JasPer at ECMWF. # It modifies CMAKE_PREFIX_PATH # which can affect future package discovery if not undone by the caller. # The current CMAKE_PREFIX_PATH is backed up as _CMAKE_PREFIX_PATH @@ -234,7 +234,7 @@ if( ENABLE_JPG ) list( APPEND ECCODES_TPLS Jasper ) set( HAVE_JPEG 1 ) set( HAVE_LIBJASPER 1 ) - # Extract Jasper's major version number to enable conditional code. See ECC-396 + # Extract JasPer's major version number to enable conditional code. See ECC-396 string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" JASPER_VERSION_MAJOR "${JASPER_VERSION_STRING}") endif() @@ -419,7 +419,6 @@ add_subdirectory( memfs ) add_subdirectory( src ) if( HAVE_BUILD_TOOLS ) add_subdirectory( tools ) - add_subdirectory( tigge ) endif() add_subdirectory( fortran ) @@ -435,7 +434,7 @@ ecbuild_dont_pack( DIRS experimental deprecated doxygen confluence tests/deprecated tests/tests.ecmwf src/deprecated tools/deprecated ifs_samples/grib1_mlgrib2_ieee32 examples/examples.dev examples/extra examples/deprecated bamboo - fortran/fortranCtypes tigge/tools share/eccodes .settings ) + fortran/fortranCtypes share/eccodes .settings ) #ecbuild_dont_pack( DIRS data/bufr DONT_PACK_REGEX "*.bufr" ) #ecbuild_dont_pack( DIRS data/tigge DONT_PACK_REGEX "*.grib" ) diff --git a/README.md b/README.md index 024dc5c33..f63d65384 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ ecCodes [![Windows: master](https://img.shields.io/appveyor/ci/ecmwf/eccodes/master.svg?label=Windows%3A%20master)](https://ci.appveyor.com/project/ecmwf/eccodes/branch/master) [![Windows: develop](https://img.shields.io/appveyor/ci/ecmwf/eccodes/develop.svg?label=Windows%3A%20develop)](https://ci.appveyor.com/project/ecmwf/eccodes/branch/develop) +[![codecov](https://codecov.io/gh/ecmwf/eccodes/branch/develop/graph/badge.svg)](https://codecov.io/gh/ecmwf/eccodes) + ecCodes is a package developed by ECMWF which provides an application programming interface and a set of tools for decoding and encoding messages in the following formats: diff --git a/VERSION b/VERSION index 93b1bf9b8..7cca401c7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.31.2 +2.32.0 diff --git a/cmake/FindAEC.cmake b/cmake/FindAEC.cmake index bfbe813e3..7eb5b3339 100644 --- a/cmake/FindAEC.cmake +++ b/cmake/FindAEC.cmake @@ -22,14 +22,15 @@ # libaec_DIR # LIBAEC_PATH # libaec_PATH +# libaec_ROOT find_path( AEC_INCLUDE_DIR libaec.h - PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH + PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ${libaec_ROOT} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH ENV libaec_ROOT PATH_SUFFIXES include include/aec NO_DEFAULT_PATH ) find_path( AEC_INCLUDE_DIR libaec.h PATH_SUFFIXES include include/aec ) find_library( AEC_LIBRARY NAMES aec - PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH + PATHS ${AEC_DIR} ${AEC_PATH} ${LIBAEC_DIR} ${libaec_DIR} ${LIBAEC_PATH} ${libaec_PATH} ${libaec_ROOT} ENV AEC_DIR ENV AEC_PATH ENV LIBAEC_DIR ENV libaec_DIR ENV LIBAEC_PATH ENV libaec_PATH ENV libaec_ROOT PATH_SUFFIXES lib lib64 lib/aec lib64/aec NO_DEFAULT_PATH ) find_library( AEC_LIBRARY NAMES aec PATH_SUFFIXES lib lib64 lib/aec lib64/aec ) diff --git a/data/grib_data_files.txt b/data/grib_data_files.txt index 2774f12c7..0647dc142 100644 --- a/data/grib_data_files.txt +++ b/data/grib_data_files.txt @@ -88,3 +88,5 @@ msl.octa.glob.grib1 test_file.grib2 gfs.complex.mvmu.grib2 mercator.grib2 +run_length_packing.grib2 +boustrophedonic.grib1 diff --git a/definitions/bufr/boot_edition_1.def b/definitions/bufr/boot_edition_1.def index bbf700062..1949309bd 100644 --- a/definitions/bufr/boot_edition_1.def +++ b/definitions/bufr/boot_edition_1.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. -ascii[4] identifier = "BUFR" : read_only,hidden; +ascii[4] identifier = "BUFR" : read_only,hidden; alias identifier=identifier; unsigned[3] section1Length; @@ -8,7 +8,7 @@ unsigned[3] section1Length; unsigned[1] edition = 1 : dump; alias editionNumber=edition; -template section_1 "bufr/section.1.1.def"; +template section_1 "bufr/section.1.1.def"; flagbit localSectionPresent(section1Flags,7) = 1; alias section2Present=localSectionPresent; @@ -18,7 +18,7 @@ if(localSectionPresent){ template section_2 "bufr/section.2.def"; } else { - transient section2Length = 0; + transient section2Length = 0; } template section_3 "bufr/section.3.def"; diff --git a/definitions/bufr/boot_edition_2.def b/definitions/bufr/boot_edition_2.def index 88ccefaf1..bfa052117 100644 --- a/definitions/bufr/boot_edition_2.def +++ b/definitions/bufr/boot_edition_2.def @@ -1,24 +1,24 @@ # (C) Copyright 2005- ECMWF. -ascii[4] identifier = "BUFR" : read_only,hidden; +ascii[4] identifier = "BUFR" : read_only,hidden; alias identifier=identifier; -unsigned[3] totalLength; +unsigned[3] totalLength; unsigned[1] edition = 2 : dump; alias editionNumber=edition; -template section_1 "bufr/section.1.2.def"; +template section_1 "bufr/section.1.2.def"; flagbit localSectionPresent(section1Flags,7) = 1; alias section2Present=localSectionPresent; alias localUsePresent=localSectionPresent; if(localSectionPresent){ - template section_2 "bufr/section.2.def"; + template section_2 "bufr/section.2.def"; } else { - transient section2Length = 0; + transient section2Length = 0; } template section_3 "bufr/section.3.def"; diff --git a/definitions/bufr/boot_edition_3.def b/definitions/bufr/boot_edition_3.def index a05dd8ea9..a34ab4b7f 100644 --- a/definitions/bufr/boot_edition_3.def +++ b/definitions/bufr/boot_edition_3.def @@ -1,9 +1,9 @@ # (C) Copyright 2005- ECMWF. -ascii[4] identifier = "BUFR" : read_only,hidden; +ascii[4] identifier = "BUFR" : read_only,hidden; alias identifier=identifier; -section_length[3] totalLength ; +section_length[3] totalLength ; unsigned[1] edition = 3 : dump; alias editionNumber=edition; @@ -15,10 +15,10 @@ alias section2Present=localSectionPresent; alias localUsePresent=localSectionPresent; if(localSectionPresent){ - template section_2 "bufr/section.2.def"; + template section_2 "bufr/section.2.def"; } else { - transient section2Length = 0; + transient section2Length = 0; } template section_3 "bufr/section.3.def"; diff --git a/definitions/bufr/boot_edition_4.def b/definitions/bufr/boot_edition_4.def index 0f8fa73ac..63d6f6430 100644 --- a/definitions/bufr/boot_edition_4.def +++ b/definitions/bufr/boot_edition_4.def @@ -1,23 +1,23 @@ # (C) Copyright 2005- ECMWF. -ascii[4] identifier = "BUFR" : read_only,hidden; +ascii[4] identifier = "BUFR" : read_only,hidden; alias identifier=identifier; -section_length[3] totalLength ; +section_length[3] totalLength ; unsigned[1] edition = 4 : dump; alias editionNumber=edition; -template section_1 "bufr/section.1.4.def"; +template section_1 "bufr/section.1.4.def"; flagbit localSectionPresent(section1Flags,7) = 1; alias section2Present=localSectionPresent; alias localUsePresent=localSectionPresent; if(localSectionPresent){ - template section_2 "bufr/section.2.def"; + template section_2 "bufr/section.2.def"; } else { - transient section2Length = 0; + transient section2Length = 0; } template section_3 "bufr/section.3.def"; diff --git a/definitions/grib1/3.82.table b/definitions/grib1/3.82.table index b50e3bfef..29e0e2320 100644 --- a/definitions/grib1/3.82.table +++ b/definitions/grib1/3.82.table @@ -4,7 +4,7 @@ ## created: 6 Oct 2011 ## modified: 13 May 2013 ## -# CODE TABLE 3 Fixed levels or layers for wich the data are included +# CODE TABLE 3 Fixed levels or layers for which the data are included 0 0 Reserved 1 surf Surface (of the Earth, which includes sea surface) 2 bcld Cloud base level diff --git a/definitions/grib1/data.grid_second_order.def b/definitions/grib1/data.grid_second_order.def index a62dc7dba..012fd9d3b 100644 --- a/definitions/grib1/data.grid_second_order.def +++ b/definitions/grib1/data.grid_second_order.def @@ -16,8 +16,7 @@ unsigned [2] NL : dump; if (orderOfSPD) { unsigned[1] widthOfSPD ; meta SPD spd(widthOfSPD,orderOfSPD) : read_only; -} - +} meta groupWidths unsigned_bits(widthOfWidths,numberOfGroups) : read_only; meta groupLengths unsigned_bits(widthOfLengths,numberOfGroups) : read_only; @@ -41,7 +40,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, @@ -70,7 +69,7 @@ if(bitmapPresent) { numberOfPoints ): read_only; - alias data.packedValues = codedValues; + alias data.packedValues = codedValues; if (boustrophedonicOrdering) { @@ -100,7 +99,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, @@ -139,7 +138,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, diff --git a/definitions/grib1/data.spectral_ieee.def b/definitions/grib1/data.spectral_ieee.def index bae584c06..4ac0f9787 100644 --- a/definitions/grib1/data.spectral_ieee.def +++ b/definitions/grib1/data.spectral_ieee.def @@ -13,7 +13,7 @@ constant PUnset = -32767; # N is a pointer to the start of the packed data (i.e. gives octet number) unsigned[2] N : read_only,dump; signed[2] P = PUnset; - + unsigned[1] JS=0 : dump; unsigned[1] KS=0 : dump; unsigned[1] MS=0 : dump; @@ -24,7 +24,7 @@ alias subSetM=MS; constant GRIBEXShBugPresent = 1; transient computeLaplacianOperator=0; - + meta data.laplacianOperator scale(P,oneConstant,grib1divider,truncateLaplacian) : dump; meta laplacianOperatorIsSet evaluate(P != PUnset && !computeLaplacianOperator ); diff --git a/definitions/grib1/data.spectral_simple.def b/definitions/grib1/data.spectral_simple.def index a9b6d7e94..5bc8f1e72 100644 --- a/definitions/grib1/data.spectral_simple.def +++ b/definitions/grib1/data.spectral_simple.def @@ -35,7 +35,7 @@ meta codedValues data_g1simple_packing( ): read_only; meta values data_g1shsimple_packing(codedValues,realPart) : dump; -alias data.packedValues = values; +alias data.packedValues = values; meta numberOfCodedValues g1number_of_coded_values_sh_simple(bitsPerValue,offsetBeforeData,offsetAfterData,halfByte,numberOfValues) : dump; template statistics "common/statistics_spectral.def"; diff --git a/definitions/grib1/gds_not_present_bitmap.def b/definitions/grib1/gds_not_present_bitmap.def index 735087dc8..c654b3cbc 100644 --- a/definitions/grib1/gds_not_present_bitmap.def +++ b/definitions/grib1/gds_not_present_bitmap.def @@ -5,10 +5,8 @@ position offsetSection3; transient section3Length=1; meta section3Pointer section_pointer(offsetSection3,section3Length,3); -# Number of unused bits at end of Section 3 transient numberOfUnusedBitsAtEndOfSection3 = 0 : read_only; -# Table reference: transient tableReference = 0; #position offsetBeforeBitmap; @@ -18,6 +16,5 @@ meta bitmap gds_not_present_bitmap( missingValue,numberOfValues, Ni,numberOfUnusedBitsAtEndOfSection3) : read_only; #position offsetAfterBitmap; - #padtoeven padding_sec3_1(offsetSection3,section3Length); #section_padding section3Padding; diff --git a/definitions/grib1/grid_255.def b/definitions/grib1/grid_255.def new file mode 100644 index 000000000..c0f6d1337 --- /dev/null +++ b/definitions/grib1/grid_255.def @@ -0,0 +1 @@ +label "_empty"; diff --git a/definitions/grib1/grid_definition_1.def b/definitions/grib1/grid_definition_1.def index 14caa71a8..949da5f59 100644 --- a/definitions/grib1/grid_definition_1.def +++ b/definitions/grib1/grid_definition_1.def @@ -12,7 +12,7 @@ alias numberOfPointsAlongXAxis=Ni; signed[2] Nj : dump; alias numberOfPointsAlongAMeridian=Nj; -alias Nx=Nj; +alias Ny=Nj; alias geography.Nj=Nj; alias numberOfPointsAlongYAxis=Nj; diff --git a/definitions/grib1/grid_definition_5.def b/definitions/grib1/grid_definition_5.def index 43781136e..cca099bf8 100644 --- a/definitions/grib1/grid_definition_5.def +++ b/definitions/grib1/grid_definition_5.def @@ -1,15 +1,15 @@ # GRID DEFINITION Polar stereographic # grib 1 -> 2 -constant gridDefinitionTemplateNumber = 20; +constant gridDefinitionTemplateNumber = 20; unsigned[2] Nx : dump; alias Ni = Nx; -alias numberOfPointsAlongXAxis = Nx; +alias numberOfPointsAlongXAxis = Nx; alias geography.Nx=Nx; unsigned[2] Ny : dump; alias Nj = Ny; -alias numberOfPointsAlongYAxis = Ny; +alias numberOfPointsAlongYAxis = Ny; alias geography.Ny=Ny; signed[3] latitudeOfFirstGridPoint : edition_specific ; @@ -22,19 +22,19 @@ alias Lo1 = longitudeOfFirstGridPoint; include "grib1/resolution_flags.def"; -# LoV - orientation of the grid; i.e. the longitude value of the meridian which is parallel to the Y-axis +# LoV - orientation of the grid; i.e. the longitude value of the meridian which is parallel to the Y-axis signed[3] orientationOfTheGrid : edition_specific, no_copy ; meta geography.orientationOfTheGridInDegrees scale(orientationOfTheGrid,oneConstant,grib1divider,truncateDegrees) : dump; alias LoV = orientationOfTheGrid ; -# Dx - X-direction grid length +# Dx - X-direction grid length unsigned[3] DxInMetres : dump; alias xDirectionGridLengthInMetres=DxInMetres; alias Dx=DxInMetres; alias geography.DxInMetres=DxInMetres; alias Di = DxInMetres; -# Dy - Y-direction grid length +# Dy - Y-direction grid length unsigned[3] DyInMetres : dump; alias yDirectionGridLengthInMetres=DyInMetres; alias Dy = DyInMetres; @@ -45,7 +45,7 @@ constant latitudeWhereDxAndDyAreSpecifiedInDegrees=60; constant LaDInDegrees=60; alias geography.LaDInDegrees=LaDInDegrees; -# Projection centre flag +# Projection centre flag unsigned[1] projectionCentreFlag : dump ; alias projectionCenterFlag=projectionCentreFlag; # Note our flagbit numbers go from 7 to 0, while WMO convention is from 1 to 8 @@ -53,7 +53,6 @@ alias projectionCenterFlag=projectionCentreFlag; # If bit 1 is 1, then the South Pole is on the projection plane flagbit southPoleOnProjectionPlane(projectionCentreFlag,7) : dump; # WMO bit 1 - # for change_scanning_direction alias yFirst=latitudeOfFirstGridPointInDegrees; alias xFirst=longitudeOfFirstGridPointInDegrees; diff --git a/definitions/grib1/grid_definition_gaussian.def b/definitions/grib1/grid_definition_gaussian.def index 377a0822f..26c855900 100644 --- a/definitions/grib1/grid_definition_gaussian.def +++ b/definitions/grib1/grid_definition_gaussian.def @@ -10,12 +10,12 @@ alias Ny=Nj; # Resolution and component flags include "grib1/grid_first_last_resandcomp.def"; -# Di - i direction increment +# Di - i direction increment unsigned[2] iDirectionIncrement : can_be_missing,dump,edition_specific; meta geography.iDirectionIncrementInDegrees scale(iDirectionIncrement,oneConstant,grib1divider,truncateDegrees) : can_be_missing,dump; alias Di = iDirectionIncrement; -# N - number of parallels between a pole and the equator +# N - number of parallels between a pole and the equator unsigned[2] N : dump ; alias numberOfParallelsBetweenAPoleAndTheEquator=N; alias geography.N=N; diff --git a/definitions/grib1/grid_definition_lambert.def b/definitions/grib1/grid_definition_lambert.def index 5556c16ac..45404d420 100644 --- a/definitions/grib1/grid_definition_lambert.def +++ b/definitions/grib1/grid_definition_lambert.def @@ -8,7 +8,7 @@ alias Nj = Ny; alias numberOfPointsAlongYAxis = Ny; alias geography.Ny=Ny; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[3] latitudeOfFirstGridPoint : edition_specific; meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,oneConstant,grib1divider,truncateDegrees) : dump; @@ -17,7 +17,7 @@ alias La1InDegrees=latitudeOfFirstGridPointInDegrees; #meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPoint,thousand); -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point signed[3] longitudeOfFirstGridPoint : edition_specific; meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib1divider,truncateDegrees) : dump; @@ -25,24 +25,24 @@ alias Lo1 = longitudeOfFirstGridPoint; alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees; #meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,thousand); -# Resolution and component flags +# Resolution and component flags include "grib1/resolution_flags.def"; -# LoV - orientation of the grid; i.e. the east longitude value of the meridian which is parallel to the Y-axis +# LoV - orientation of the grid; i.e. the east longitude value of the meridian which is parallel to the Y-axis signed[3] LoV : edition_specific ; meta geography.LoVInDegrees scale(LoV,oneConstant,grib1divider,truncateDegrees) : dump; alias orientationOfTheGrid = LoV; alias orientationOfTheGridInDegrees = LoVInDegrees; -# Dx - X-direction grid length (in units of metres) +# Dx - X-direction grid length (in units of metres) unsigned[3] DxInMetres : dump; alias xDirectionGridLength=DxInMetres; alias geography.DxInMetres=DxInMetres ; alias Dx = DxInMetres; alias Di = DxInMetres; -# Dy - Y-direction grid length (in units of metres) +# Dy - Y-direction grid length (in units of metres) unsigned[3] DyInMetres : dump; alias yDirectionGridLength=DyInMetres; alias geography.DyInMetres=DyInMetres; @@ -59,7 +59,7 @@ alias xFirst=longitudeOfFirstGridPointInDegrees; include "grib1/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[3] Latin1 : edition_specific, no_copy; meta geography.Latin1InDegrees scale(Latin1,oneConstant,grib1divider,truncateDegrees) : dump; alias firstLatitude=Latin1; @@ -69,7 +69,7 @@ alias firstLatitudeInDegrees=Latin1InDegrees; constant LaDInDegrees = Latin1InDegrees : dump; alias geography.LaDInDegrees=LaDInDegrees; -# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere +# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere signed[3] Latin2 :edition_specific,no_copy; alias secondLatitude=Latin2; meta geography.Latin2InDegrees scale(Latin2,oneConstant,grib1divider,truncateDegrees) : dump; diff --git a/definitions/grib1/grid_definition_latlon.def b/definitions/grib1/grid_definition_latlon.def index 552836fcf..c96c93506 100644 --- a/definitions/grib1/grid_definition_latlon.def +++ b/definitions/grib1/grid_definition_latlon.def @@ -1,9 +1,11 @@ -unsigned[2] Ni : can_be_missing,dump; +unsigned[2] Ni : can_be_missing,dump; alias numberOfPointsAlongAParallel=Ni; +alias numberOfPointsAlongXAxis=Ni; alias Nx = Ni; unsigned[2] Nj : can_be_missing,dump; alias numberOfPointsAlongAMeridian=Nj; +alias numberOfPointsAlongYAxis= Nj; alias Ny = Nj; # Latitudes and Longitudes of the first and the last points diff --git a/definitions/grib1/grid_definition_spherical_harmonics.def b/definitions/grib1/grid_definition_spherical_harmonics.def index 5041d374d..f82b5c7f3 100644 --- a/definitions/grib1/grid_definition_spherical_harmonics.def +++ b/definitions/grib1/grid_definition_spherical_harmonics.def @@ -1,16 +1,17 @@ # GRID DEFINITION spherical harmonic coefficients (including rotated, stretched, or stretched and rotated) +constant isGridded = zero; -# J - pentagonal resolution parameter +# J - pentagonal resolution parameter unsigned[2] J : dump ; alias pentagonalResolutionParameterJ= J; alias geography.J=J; -# K - pentagonal resolution parameter +# K - pentagonal resolution parameter unsigned[2] K : dump; alias pentagonalResolutionParameterK=K; alias geography.K=K; -# M - pentagonal resolution parameter +# M - pentagonal resolution parameter unsigned[2] M : dump ; alias pentagonalResolutionParameterM=M; alias geography.M=M; @@ -21,14 +22,13 @@ alias numberOfPoints=numberOfValues; alias numberOfDataPoints=numberOfValues; #alias ls.valuesCount=numberOfValues; -# Representation type +# Representation type codetable[1] representationType 'grib1/9.table' = 1 : no_copy; -# Representation mode +# Representation mode codetable[1] representationMode 'grib1/10.table' = 2 : no_copy; -# Set to zero -# (reserved) +# Set to zero (reserved) pad padding_grid50_1(18); # For now, to make section2 happy diff --git a/definitions/grib1/local.82.82.def b/definitions/grib1/local.82.82.def index f1ab62d82..0ecc03562 100644 --- a/definitions/grib1/local.82.82.def +++ b/definitions/grib1/local.82.82.def @@ -2,7 +2,7 @@ # # author: Sebastien Villaume # created: 6 Oct 2011 -# modified: 20 Feb 2014 +# modified: 20 Feb 2014 # ######################## ### LOCAL SECTION 82 ### diff --git a/definitions/grib1/localConcepts/ecmf/cfVarName.def b/definitions/grib1/localConcepts/ecmf/cfVarName.def index 5dc3435b1..36530b6f3 100644 --- a/definitions/grib1/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib1/localConcepts/ecmf/cfVarName.def @@ -294,7 +294,7 @@ table2Version = 128 ; indicatorOfParameter = 48 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'fg10' = { table2Version = 128 ; indicatorOfParameter = 49 ; @@ -659,7 +659,7 @@ table2Version = 128 ; indicatorOfParameter = 122 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours 'p10fg6' = { table2Version = 128 ; indicatorOfParameter = 123 ; @@ -1169,7 +1169,7 @@ table2Version = 128 ; indicatorOfParameter = 159 ; } -#Standard deviation of orography +#Standard deviation of sub-gridscale orography 'sdor' = { table2Version = 128 ; indicatorOfParameter = 160 ; @@ -4054,32 +4054,32 @@ table2Version = 210 ; indicatorOfParameter = 191 ; } -#UV visible albedo for diffuse radiation, isotropic component +#UV visible albedo for diffuse radiation, isotropic component (climatological) 'aluvdi' = { table2Version = 210 ; indicatorOfParameter = 192 ; } -#UV visible albedo for diffuse radiation, volumetric component +#UV visible albedo for diffuse radiation, volumetric component (climatological) 'aluvdv' = { table2Version = 210 ; indicatorOfParameter = 193 ; } -#UV visible albedo for diffuse radiation, geometric component +#UV visible albedo for diffuse radiation, geometric component (climatological) 'aluvdg' = { table2Version = 210 ; indicatorOfParameter = 194 ; } -#Near IR albedo for diffuse radiation, isotropic component +#Near IR albedo for diffuse radiation, isotropic component (climatological) 'alnidi' = { table2Version = 210 ; indicatorOfParameter = 195 ; } -#Near IR albedo for diffuse radiation, volumetric component +#Near IR albedo for diffuse radiation, volumetric component (climatological) 'alnidv' = { table2Version = 210 ; indicatorOfParameter = 196 ; } -#Near IR albedo for diffuse radiation, geometric component +#Near IR albedo for diffuse radiation, geometric component (climatological) 'alnidg' = { table2Version = 210 ; indicatorOfParameter = 197 ; @@ -9879,7 +9879,7 @@ table2Version = 228 ; indicatorOfParameter = 20 ; } -#Total sky direct solar radiation at surface +#Total sky direct short-wave (solar) radiation at surface 'fdir' = { table2Version = 228 ; indicatorOfParameter = 21 ; @@ -9914,7 +9914,7 @@ table2Version = 228 ; indicatorOfParameter = 27 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours 'fg310' = { table2Version = 228 ; indicatorOfParameter = 28 ; @@ -10089,12 +10089,12 @@ table2Version = 228 ; indicatorOfParameter = 94 ; } -#Surface solar radiation downward clear-sky +#Surface short-wave (solar) radiation downward clear-sky 'ssrdc' = { table2Version = 228 ; indicatorOfParameter = 129 ; } -#Surface thermal radiation downward clear-sky +#Surface long-wave (thermal) radiation downward clear-sky 'strdc' = { table2Version = 228 ; indicatorOfParameter = 130 ; @@ -10160,12 +10160,12 @@ indicatorOfParameter = 227 ; } #SMOS first Brightness Temperature Bias Correction parameter -'p228229' = { +'smos_tb_cdfa' = { table2Version = 228 ; indicatorOfParameter = 229 ; } #SMOS second Brightness Temperature Bias Correction parameter -'p228230' = { +'smos_tb_cdfb' = { table2Version = 228 ; indicatorOfParameter = 230 ; } @@ -13834,73 +13834,73 @@ table2Version = 162 ; indicatorOfParameter = 87 ; } -#Tendency of short wave radiation -'p100.162' = { +#Time-integrated temperature tendency due to short-wave radiation +'srta' = { table2Version = 162 ; indicatorOfParameter = 100 ; } -#Tendency of long wave radiation -'p101.162' = { +#Time-integrated temperature tendency due to long-wave radiation +'trta' = { table2Version = 162 ; indicatorOfParameter = 101 ; } -#Tendency of clear sky short wave radiation -'p102.162' = { +#Time-integrated temperature tendency due to short wave radiation, clear sky +'srtca' = { table2Version = 162 ; indicatorOfParameter = 102 ; } -#Tendency of clear sky long wave radiation -'p103.162' = { +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'trtca' = { table2Version = 162 ; indicatorOfParameter = 103 ; } -#Updraught mass flux -'p104.162' = { +#Time-integrated updraught mass flux +'umfa' = { table2Version = 162 ; indicatorOfParameter = 104 ; } -#Downdraught mass flux -'p105.162' = { +#Time-integrated downdraught mass flux +'dmfa' = { table2Version = 162 ; indicatorOfParameter = 105 ; } -#Updraught detrainment rate -'p106.162' = { +#Time-integrated updraught detrainment rate +'udra' = { table2Version = 162 ; indicatorOfParameter = 106 ; } -#Downdraught detrainment rate -'p107.162' = { +#Time-integrated downdraught detrainment rate +'ddra' = { table2Version = 162 ; indicatorOfParameter = 107 ; } -#Total precipitation flux -'p108.162' = { +#Time-integrated total precipitation flux +'tpfa' = { table2Version = 162 ; indicatorOfParameter = 108 ; } -#Turbulent diffusion coefficient for heat -'p109.162' = { +#Time-integrated turbulent diffusion coefficient for heat +'tdcha' = { table2Version = 162 ; indicatorOfParameter = 109 ; } -#Tendency of temperature due to physics -'p110.162' = { +#Time-integrated temperature tendency due to parametrisations +'ttpha' = { table2Version = 162 ; indicatorOfParameter = 110 ; } -#Tendency of specific humidity due to physics -'p111.162' = { +#Time-integrated specific humidity tendency due to parametrisations +'qtpha' = { table2Version = 162 ; indicatorOfParameter = 111 ; } -#Tendency of u component due to physics -'p112.162' = { +#Time-integrated eastward wind tendency due to parametrisations +'utpha' = { table2Version = 162 ; indicatorOfParameter = 112 ; } -#Tendency of v component due to physics -'p113.162' = { +#Time-integrated northward wind tendency due to parametrisations +'vtpha' = { table2Version = 162 ; indicatorOfParameter = 113 ; } @@ -16314,7 +16314,7 @@ table2Version = 210 ; indicatorOfParameter = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'co2' = { table2Version = 210 ; indicatorOfParameter = 61 ; @@ -17814,12 +17814,12 @@ table2Version = 234 ; indicatorOfParameter = 228 ; } -#U-component stokes drift +#U-component surface stokes drift 'ust' = { table2Version = 140 ; indicatorOfParameter = 215 ; } -#V-component stokes drift +#V-component surface stokes drift 'vst' = { table2Version = 140 ; indicatorOfParameter = 216 ; diff --git a/definitions/grib1/localConcepts/ecmf/name.def b/definitions/grib1/localConcepts/ecmf/name.def index 6e7677835..78ecaecad 100644 --- a/definitions/grib1/localConcepts/ecmf/name.def +++ b/definitions/grib1/localConcepts/ecmf/name.def @@ -294,8 +294,8 @@ table2Version = 128 ; indicatorOfParameter = 48 ; } -#10 metre wind gust since previous post-processing -'10 metre wind gust since previous post-processing' = { +#Maximum 10 metre wind gust since previous post-processing +'Maximum 10 metre wind gust since previous post-processing' = { table2Version = 128 ; indicatorOfParameter = 49 ; } @@ -659,8 +659,8 @@ table2Version = 128 ; indicatorOfParameter = 122 ; } -#10 metre wind gust in the last 6 hours -'10 metre wind gust in the last 6 hours' = { +#Maximum 10 metre wind gust in the last 6 hours +'Maximum 10 metre wind gust in the last 6 hours' = { table2Version = 128 ; indicatorOfParameter = 123 ; } @@ -1169,8 +1169,8 @@ table2Version = 128 ; indicatorOfParameter = 159 ; } -#Standard deviation of orography -'Standard deviation of orography' = { +#Standard deviation of sub-gridscale orography +'Standard deviation of sub-gridscale orography' = { table2Version = 128 ; indicatorOfParameter = 160 ; } @@ -4054,33 +4054,33 @@ table2Version = 210 ; indicatorOfParameter = 191 ; } -#UV visible albedo for diffuse radiation, isotropic component -'UV visible albedo for diffuse radiation, isotropic component' = { +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'UV visible albedo for diffuse radiation, isotropic component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 192 ; } -#UV visible albedo for diffuse radiation, volumetric component -'UV visible albedo for diffuse radiation, volumetric component' = { +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'UV visible albedo for diffuse radiation, volumetric component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 193 ; } -#UV visible albedo for diffuse radiation, geometric component -'UV visible albedo for diffuse radiation, geometric component' = { +#UV visible albedo for diffuse radiation, geometric component (climatological) +'UV visible albedo for diffuse radiation, geometric component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 194 ; } -#Near IR albedo for diffuse radiation, isotropic component -'Near IR albedo for diffuse radiation, isotropic component' = { +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'Near IR albedo for diffuse radiation, isotropic component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 195 ; } -#Near IR albedo for diffuse radiation, volumetric component -'Near IR albedo for diffuse radiation, volumetric component' = { +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'Near IR albedo for diffuse radiation, volumetric component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 196 ; } -#Near IR albedo for diffuse radiation, geometric component -'Near IR albedo for diffuse radiation, geometric component' = { +#Near IR albedo for diffuse radiation, geometric component (climatological) +'Near IR albedo for diffuse radiation, geometric component (climatological)' = { table2Version = 210 ; indicatorOfParameter = 197 ; } @@ -9879,8 +9879,8 @@ table2Version = 228 ; indicatorOfParameter = 20 ; } -#Total sky direct solar radiation at surface -'Total sky direct solar radiation at surface' = { +#Total sky direct short-wave (solar) radiation at surface +'Total sky direct short-wave (solar) radiation at surface' = { table2Version = 228 ; indicatorOfParameter = 21 ; } @@ -9914,8 +9914,8 @@ table2Version = 228 ; indicatorOfParameter = 27 ; } -#10 metre wind gust in the last 3 hours -'10 metre wind gust in the last 3 hours' = { +#Maximum 10 metre wind gust in the last 3 hours +'Maximum 10 metre wind gust in the last 3 hours' = { table2Version = 228 ; indicatorOfParameter = 28 ; } @@ -10089,13 +10089,13 @@ table2Version = 228 ; indicatorOfParameter = 94 ; } -#Surface solar radiation downward clear-sky -'Surface solar radiation downward clear-sky' = { +#Surface short-wave (solar) radiation downward clear-sky +'Surface short-wave (solar) radiation downward clear-sky' = { table2Version = 228 ; indicatorOfParameter = 129 ; } -#Surface thermal radiation downward clear-sky -'Surface thermal radiation downward clear-sky' = { +#Surface long-wave (thermal) radiation downward clear-sky +'Surface long-wave (thermal) radiation downward clear-sky' = { table2Version = 228 ; indicatorOfParameter = 130 ; } @@ -13834,73 +13834,73 @@ table2Version = 162 ; indicatorOfParameter = 87 ; } -#Tendency of short wave radiation -'Tendency of short wave radiation' = { +#Time-integrated temperature tendency due to short-wave radiation +'Time-integrated temperature tendency due to short-wave radiation' = { table2Version = 162 ; indicatorOfParameter = 100 ; } -#Tendency of long wave radiation -'Tendency of long wave radiation' = { +#Time-integrated temperature tendency due to long-wave radiation +'Time-integrated temperature tendency due to long-wave radiation' = { table2Version = 162 ; indicatorOfParameter = 101 ; } -#Tendency of clear sky short wave radiation -'Tendency of clear sky short wave radiation' = { +#Time-integrated temperature tendency due to short wave radiation, clear sky +'Time-integrated temperature tendency due to short wave radiation, clear sky' = { table2Version = 162 ; indicatorOfParameter = 102 ; } -#Tendency of clear sky long wave radiation -'Tendency of clear sky long wave radiation' = { +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'Time-integrated temperature tendency due to long-wave radiation, clear sky' = { table2Version = 162 ; indicatorOfParameter = 103 ; } -#Updraught mass flux -'Updraught mass flux' = { +#Time-integrated updraught mass flux +'Time-integrated updraught mass flux' = { table2Version = 162 ; indicatorOfParameter = 104 ; } -#Downdraught mass flux -'Downdraught mass flux' = { +#Time-integrated downdraught mass flux +'Time-integrated downdraught mass flux' = { table2Version = 162 ; indicatorOfParameter = 105 ; } -#Updraught detrainment rate -'Updraught detrainment rate' = { +#Time-integrated updraught detrainment rate +'Time-integrated updraught detrainment rate' = { table2Version = 162 ; indicatorOfParameter = 106 ; } -#Downdraught detrainment rate -'Downdraught detrainment rate' = { +#Time-integrated downdraught detrainment rate +'Time-integrated downdraught detrainment rate' = { table2Version = 162 ; indicatorOfParameter = 107 ; } -#Total precipitation flux -'Total precipitation flux' = { +#Time-integrated total precipitation flux +'Time-integrated total precipitation flux' = { table2Version = 162 ; indicatorOfParameter = 108 ; } -#Turbulent diffusion coefficient for heat -'Turbulent diffusion coefficient for heat' = { +#Time-integrated turbulent diffusion coefficient for heat +'Time-integrated turbulent diffusion coefficient for heat' = { table2Version = 162 ; indicatorOfParameter = 109 ; } -#Tendency of temperature due to physics -'Tendency of temperature due to physics' = { +#Time-integrated temperature tendency due to parametrisations +'Time-integrated temperature tendency due to parametrisations' = { table2Version = 162 ; indicatorOfParameter = 110 ; } -#Tendency of specific humidity due to physics -'Tendency of specific humidity due to physics' = { +#Time-integrated specific humidity tendency due to parametrisations +'Time-integrated specific humidity tendency due to parametrisations' = { table2Version = 162 ; indicatorOfParameter = 111 ; } -#Tendency of u component due to physics -'Tendency of u component due to physics' = { +#Time-integrated eastward wind tendency due to parametrisations +'Time-integrated eastward wind tendency due to parametrisations' = { table2Version = 162 ; indicatorOfParameter = 112 ; } -#Tendency of v component due to physics -'Tendency of v component due to physics' = { +#Time-integrated northward wind tendency due to parametrisations +'Time-integrated northward wind tendency due to parametrisations' = { table2Version = 162 ; indicatorOfParameter = 113 ; } @@ -16314,8 +16314,8 @@ table2Version = 210 ; indicatorOfParameter = 54 ; } -#Carbon Dioxide -'Carbon Dioxide' = { +#Carbon dioxide mass mixing ratio +'Carbon dioxide mass mixing ratio' = { table2Version = 210 ; indicatorOfParameter = 61 ; } @@ -17814,13 +17814,13 @@ table2Version = 234 ; indicatorOfParameter = 228 ; } -#U-component stokes drift -'U-component stokes drift' = { +#U-component surface stokes drift +'U-component surface stokes drift' = { table2Version = 140 ; indicatorOfParameter = 215 ; } -#V-component stokes drift -'V-component stokes drift' = { +#V-component surface stokes drift +'V-component surface stokes drift' = { table2Version = 140 ; indicatorOfParameter = 216 ; } diff --git a/definitions/grib1/localConcepts/ecmf/paramId.def b/definitions/grib1/localConcepts/ecmf/paramId.def index f7db4d9f3..572393e2e 100644 --- a/definitions/grib1/localConcepts/ecmf/paramId.def +++ b/definitions/grib1/localConcepts/ecmf/paramId.def @@ -294,7 +294,7 @@ table2Version = 128 ; indicatorOfParameter = 48 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '49' = { table2Version = 128 ; indicatorOfParameter = 49 ; @@ -659,7 +659,7 @@ table2Version = 128 ; indicatorOfParameter = 122 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours '123' = { table2Version = 128 ; indicatorOfParameter = 123 ; @@ -1169,7 +1169,7 @@ table2Version = 128 ; indicatorOfParameter = 159 ; } -#Standard deviation of orography +#Standard deviation of sub-gridscale orography '160' = { table2Version = 128 ; indicatorOfParameter = 160 ; @@ -4054,32 +4054,32 @@ table2Version = 210 ; indicatorOfParameter = 191 ; } -#UV visible albedo for diffuse radiation, isotropic component +#UV visible albedo for diffuse radiation, isotropic component (climatological) '210192' = { table2Version = 210 ; indicatorOfParameter = 192 ; } -#UV visible albedo for diffuse radiation, volumetric component +#UV visible albedo for diffuse radiation, volumetric component (climatological) '210193' = { table2Version = 210 ; indicatorOfParameter = 193 ; } -#UV visible albedo for diffuse radiation, geometric component +#UV visible albedo for diffuse radiation, geometric component (climatological) '210194' = { table2Version = 210 ; indicatorOfParameter = 194 ; } -#Near IR albedo for diffuse radiation, isotropic component +#Near IR albedo for diffuse radiation, isotropic component (climatological) '210195' = { table2Version = 210 ; indicatorOfParameter = 195 ; } -#Near IR albedo for diffuse radiation, volumetric component +#Near IR albedo for diffuse radiation, volumetric component (climatological) '210196' = { table2Version = 210 ; indicatorOfParameter = 196 ; } -#Near IR albedo for diffuse radiation, geometric component +#Near IR albedo for diffuse radiation, geometric component (climatological) '210197' = { table2Version = 210 ; indicatorOfParameter = 197 ; @@ -9879,7 +9879,7 @@ table2Version = 228 ; indicatorOfParameter = 20 ; } -#Total sky direct solar radiation at surface +#Total sky direct short-wave (solar) radiation at surface '228021' = { table2Version = 228 ; indicatorOfParameter = 21 ; @@ -9914,7 +9914,7 @@ table2Version = 228 ; indicatorOfParameter = 27 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours '228028' = { table2Version = 228 ; indicatorOfParameter = 28 ; @@ -10089,12 +10089,12 @@ table2Version = 228 ; indicatorOfParameter = 94 ; } -#Surface solar radiation downward clear-sky +#Surface short-wave (solar) radiation downward clear-sky '228129' = { table2Version = 228 ; indicatorOfParameter = 129 ; } -#Surface thermal radiation downward clear-sky +#Surface long-wave (thermal) radiation downward clear-sky '228130' = { table2Version = 228 ; indicatorOfParameter = 130 ; @@ -13834,72 +13834,72 @@ table2Version = 162 ; indicatorOfParameter = 87 ; } -#Tendency of short wave radiation +#Time-integrated temperature tendency due to short-wave radiation '162100' = { table2Version = 162 ; indicatorOfParameter = 100 ; } -#Tendency of long wave radiation +#Time-integrated temperature tendency due to long-wave radiation '162101' = { table2Version = 162 ; indicatorOfParameter = 101 ; } -#Tendency of clear sky short wave radiation +#Time-integrated temperature tendency due to short wave radiation, clear sky '162102' = { table2Version = 162 ; indicatorOfParameter = 102 ; } -#Tendency of clear sky long wave radiation +#Time-integrated temperature tendency due to long-wave radiation, clear sky '162103' = { table2Version = 162 ; indicatorOfParameter = 103 ; } -#Updraught mass flux +#Time-integrated updraught mass flux '162104' = { table2Version = 162 ; indicatorOfParameter = 104 ; } -#Downdraught mass flux +#Time-integrated downdraught mass flux '162105' = { table2Version = 162 ; indicatorOfParameter = 105 ; } -#Updraught detrainment rate +#Time-integrated updraught detrainment rate '162106' = { table2Version = 162 ; indicatorOfParameter = 106 ; } -#Downdraught detrainment rate +#Time-integrated downdraught detrainment rate '162107' = { table2Version = 162 ; indicatorOfParameter = 107 ; } -#Total precipitation flux +#Time-integrated total precipitation flux '162108' = { table2Version = 162 ; indicatorOfParameter = 108 ; } -#Turbulent diffusion coefficient for heat +#Time-integrated turbulent diffusion coefficient for heat '162109' = { table2Version = 162 ; indicatorOfParameter = 109 ; } -#Tendency of temperature due to physics +#Time-integrated temperature tendency due to parametrisations '162110' = { table2Version = 162 ; indicatorOfParameter = 110 ; } -#Tendency of specific humidity due to physics +#Time-integrated specific humidity tendency due to parametrisations '162111' = { table2Version = 162 ; indicatorOfParameter = 111 ; } -#Tendency of u component due to physics +#Time-integrated eastward wind tendency due to parametrisations '162112' = { table2Version = 162 ; indicatorOfParameter = 112 ; } -#Tendency of v component due to physics +#Time-integrated northward wind tendency due to parametrisations '162113' = { table2Version = 162 ; indicatorOfParameter = 113 ; @@ -16314,7 +16314,7 @@ table2Version = 210 ; indicatorOfParameter = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio '210061' = { table2Version = 210 ; indicatorOfParameter = 61 ; @@ -17814,12 +17814,12 @@ table2Version = 234 ; indicatorOfParameter = 228 ; } -#U-component stokes drift +#U-component surface stokes drift '140215' = { table2Version = 140 ; indicatorOfParameter = 215 ; } -#V-component stokes drift +#V-component surface stokes drift '140216' = { table2Version = 140 ; indicatorOfParameter = 216 ; diff --git a/definitions/grib1/localConcepts/ecmf/shortName.def b/definitions/grib1/localConcepts/ecmf/shortName.def index 02132b9e2..6fd82758e 100644 --- a/definitions/grib1/localConcepts/ecmf/shortName.def +++ b/definitions/grib1/localConcepts/ecmf/shortName.def @@ -294,7 +294,7 @@ table2Version = 128 ; indicatorOfParameter = 48 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '10fg' = { table2Version = 128 ; indicatorOfParameter = 49 ; @@ -659,7 +659,7 @@ table2Version = 128 ; indicatorOfParameter = 122 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours '10fg6' = { table2Version = 128 ; indicatorOfParameter = 123 ; @@ -1169,7 +1169,7 @@ table2Version = 128 ; indicatorOfParameter = 159 ; } -#Standard deviation of orography +#Standard deviation of sub-gridscale orography 'sdor' = { table2Version = 128 ; indicatorOfParameter = 160 ; @@ -4054,32 +4054,32 @@ table2Version = 210 ; indicatorOfParameter = 191 ; } -#UV visible albedo for diffuse radiation, isotropic component +#UV visible albedo for diffuse radiation, isotropic component (climatological) 'aluvdi' = { table2Version = 210 ; indicatorOfParameter = 192 ; } -#UV visible albedo for diffuse radiation, volumetric component +#UV visible albedo for diffuse radiation, volumetric component (climatological) 'aluvdv' = { table2Version = 210 ; indicatorOfParameter = 193 ; } -#UV visible albedo for diffuse radiation, geometric component +#UV visible albedo for diffuse radiation, geometric component (climatological) 'aluvdg' = { table2Version = 210 ; indicatorOfParameter = 194 ; } -#Near IR albedo for diffuse radiation, isotropic component +#Near IR albedo for diffuse radiation, isotropic component (climatological) 'alnidi' = { table2Version = 210 ; indicatorOfParameter = 195 ; } -#Near IR albedo for diffuse radiation, volumetric component +#Near IR albedo for diffuse radiation, volumetric component (climatological) 'alnidv' = { table2Version = 210 ; indicatorOfParameter = 196 ; } -#Near IR albedo for diffuse radiation, geometric component +#Near IR albedo for diffuse radiation, geometric component (climatological) 'alnidg' = { table2Version = 210 ; indicatorOfParameter = 197 ; @@ -9879,7 +9879,7 @@ table2Version = 228 ; indicatorOfParameter = 20 ; } -#Total sky direct solar radiation at surface +#Total sky direct short-wave (solar) radiation at surface 'fdir' = { table2Version = 228 ; indicatorOfParameter = 21 ; @@ -9914,7 +9914,7 @@ table2Version = 228 ; indicatorOfParameter = 27 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours '10fg3' = { table2Version = 228 ; indicatorOfParameter = 28 ; @@ -10089,12 +10089,12 @@ table2Version = 228 ; indicatorOfParameter = 94 ; } -#Surface solar radiation downward clear-sky +#Surface short-wave (solar) radiation downward clear-sky 'ssrdc' = { table2Version = 228 ; indicatorOfParameter = 129 ; } -#Surface thermal radiation downward clear-sky +#Surface long-wave (thermal) radiation downward clear-sky 'strdc' = { table2Version = 228 ; indicatorOfParameter = 130 ; @@ -13834,72 +13834,72 @@ table2Version = 162 ; indicatorOfParameter = 87 ; } -#Tendency of short wave radiation +#Time-integrated temperature tendency due to short-wave radiation 'srta' = { table2Version = 162 ; indicatorOfParameter = 100 ; } -#Tendency of long wave radiation +#Time-integrated temperature tendency due to long-wave radiation 'trta' = { table2Version = 162 ; indicatorOfParameter = 101 ; } -#Tendency of clear sky short wave radiation +#Time-integrated temperature tendency due to short wave radiation, clear sky 'srtca' = { table2Version = 162 ; indicatorOfParameter = 102 ; } -#Tendency of clear sky long wave radiation +#Time-integrated temperature tendency due to long-wave radiation, clear sky 'trtca' = { table2Version = 162 ; indicatorOfParameter = 103 ; } -#Updraught mass flux +#Time-integrated updraught mass flux 'umfa' = { table2Version = 162 ; indicatorOfParameter = 104 ; } -#Downdraught mass flux +#Time-integrated downdraught mass flux 'dmfa' = { table2Version = 162 ; indicatorOfParameter = 105 ; } -#Updraught detrainment rate +#Time-integrated updraught detrainment rate 'udra' = { table2Version = 162 ; indicatorOfParameter = 106 ; } -#Downdraught detrainment rate +#Time-integrated downdraught detrainment rate 'ddra' = { table2Version = 162 ; indicatorOfParameter = 107 ; } -#Total precipitation flux +#Time-integrated total precipitation flux 'tpfa' = { table2Version = 162 ; indicatorOfParameter = 108 ; } -#Turbulent diffusion coefficient for heat +#Time-integrated turbulent diffusion coefficient for heat 'tdcha' = { table2Version = 162 ; indicatorOfParameter = 109 ; } -#Tendency of temperature due to physics +#Time-integrated temperature tendency due to parametrisations 'ttpha' = { table2Version = 162 ; indicatorOfParameter = 110 ; } -#Tendency of specific humidity due to physics +#Time-integrated specific humidity tendency due to parametrisations 'qtpha' = { table2Version = 162 ; indicatorOfParameter = 111 ; } -#Tendency of u component due to physics +#Time-integrated eastward wind tendency due to parametrisations 'utpha' = { table2Version = 162 ; indicatorOfParameter = 112 ; } -#Tendency of v component due to physics +#Time-integrated northward wind tendency due to parametrisations 'vtpha' = { table2Version = 162 ; indicatorOfParameter = 113 ; @@ -16314,7 +16314,7 @@ table2Version = 210 ; indicatorOfParameter = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'co2' = { table2Version = 210 ; indicatorOfParameter = 61 ; @@ -17814,12 +17814,12 @@ table2Version = 234 ; indicatorOfParameter = 228 ; } -#U-component stokes drift +#U-component surface stokes drift 'ust' = { table2Version = 140 ; indicatorOfParameter = 215 ; } -#V-component stokes drift +#V-component surface stokes drift 'vst' = { table2Version = 140 ; indicatorOfParameter = 216 ; diff --git a/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def b/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def index 4ddc95f31..c649d29a6 100644 --- a/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def +++ b/definitions/grib1/localConcepts/ecmf/stepTypeForConversion.def @@ -11,10 +11,8 @@ "accum" = {indicatorOfParameter=146;gribTablesVersionNo=128;centre=98;} # slhf "accum" = {indicatorOfParameter=147;gribTablesVersionNo=128;centre=98;} - # ssrd "accum" = {indicatorOfParameter=169;gribTablesVersionNo=128;centre=98;} - # strd "accum" = {indicatorOfParameter=175;gribTablesVersionNo=128;centre=98;} # ssr @@ -23,9 +21,17 @@ "accum" = {indicatorOfParameter=177;gribTablesVersionNo=128;centre=98;} # ttr "accum" = {indicatorOfParameter=179;gribTablesVersionNo=128;centre=98;} - # sund "accum" = {indicatorOfParameter=189;gribTablesVersionNo=128;centre=98;} - # runoff "accum" = {indicatorOfParameter=205;gribTablesVersionNo=128;centre=98;} +# sro +"accum" = {indicatorOfParameter=8;gribTablesVersionNo=128;centre=98;} +# e +"accum" = {indicatorOfParameter=182;gribTablesVersionNo=128;centre=98;} +# lsp +"accum" = {indicatorOfParameter=142;gribTablesVersionNo=128;centre=98;} +# pev +"accum" = {indicatorOfParameter=251;gribTablesVersionNo=228;centre=98;} +# uvb +"accum" = {indicatorOfParameter=57;gribTablesVersionNo=128;centre=98;} diff --git a/definitions/grib1/localConcepts/ecmf/units.def b/definitions/grib1/localConcepts/ecmf/units.def index a0a826edc..027242702 100644 --- a/definitions/grib1/localConcepts/ecmf/units.def +++ b/definitions/grib1/localConcepts/ecmf/units.def @@ -294,7 +294,7 @@ table2Version = 128 ; indicatorOfParameter = 48 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'm s**-1' = { table2Version = 128 ; indicatorOfParameter = 49 ; @@ -659,7 +659,7 @@ table2Version = 128 ; indicatorOfParameter = 122 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours 'm s**-1' = { table2Version = 128 ; indicatorOfParameter = 123 ; @@ -1169,13 +1169,13 @@ table2Version = 128 ; indicatorOfParameter = 159 ; } -#Standard deviation of orography +#Standard deviation of sub-gridscale orography 'm' = { table2Version = 128 ; indicatorOfParameter = 160 ; } #Anisotropy of sub-gridscale orography -'~' = { +'Numeric' = { table2Version = 128 ; indicatorOfParameter = 161 ; } @@ -1185,7 +1185,7 @@ indicatorOfParameter = 162 ; } #Slope of sub-gridscale orography -'~' = { +'Numeric' = { table2Version = 128 ; indicatorOfParameter = 163 ; } @@ -4054,32 +4054,32 @@ table2Version = 210 ; indicatorOfParameter = 191 ; } -#UV visible albedo for diffuse radiation, isotropic component +#UV visible albedo for diffuse radiation, isotropic component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 192 ; } -#UV visible albedo for diffuse radiation, volumetric component +#UV visible albedo for diffuse radiation, volumetric component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 193 ; } -#UV visible albedo for diffuse radiation, geometric component +#UV visible albedo for diffuse radiation, geometric component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 194 ; } -#Near IR albedo for diffuse radiation, isotropic component +#Near IR albedo for diffuse radiation, isotropic component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 195 ; } -#Near IR albedo for diffuse radiation, volumetric component +#Near IR albedo for diffuse radiation, volumetric component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 196 ; } -#Near IR albedo for diffuse radiation, geometric component +#Near IR albedo for diffuse radiation, geometric component (climatological) '(0 - 1)' = { table2Version = 210 ; indicatorOfParameter = 197 ; @@ -9879,7 +9879,7 @@ table2Version = 228 ; indicatorOfParameter = 20 ; } -#Total sky direct solar radiation at surface +#Total sky direct short-wave (solar) radiation at surface 'J m**-2' = { table2Version = 228 ; indicatorOfParameter = 21 ; @@ -9914,7 +9914,7 @@ table2Version = 228 ; indicatorOfParameter = 27 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours 'm s**-1' = { table2Version = 228 ; indicatorOfParameter = 28 ; @@ -10089,12 +10089,12 @@ table2Version = 228 ; indicatorOfParameter = 94 ; } -#Surface solar radiation downward clear-sky +#Surface short-wave (solar) radiation downward clear-sky 'J m**-2' = { table2Version = 228 ; indicatorOfParameter = 129 ; } -#Surface thermal radiation downward clear-sky +#Surface long-wave (thermal) radiation downward clear-sky 'J m**-2' = { table2Version = 228 ; indicatorOfParameter = 130 ; @@ -13834,72 +13834,72 @@ table2Version = 162 ; indicatorOfParameter = 87 ; } -#Tendency of short wave radiation +#Time-integrated temperature tendency due to short-wave radiation 'K' = { table2Version = 162 ; indicatorOfParameter = 100 ; } -#Tendency of long wave radiation +#Time-integrated temperature tendency due to long-wave radiation 'K' = { table2Version = 162 ; indicatorOfParameter = 101 ; } -#Tendency of clear sky short wave radiation +#Time-integrated temperature tendency due to short wave radiation, clear sky 'K' = { table2Version = 162 ; indicatorOfParameter = 102 ; } -#Tendency of clear sky long wave radiation +#Time-integrated temperature tendency due to long-wave radiation, clear sky 'K' = { table2Version = 162 ; indicatorOfParameter = 103 ; } -#Updraught mass flux +#Time-integrated updraught mass flux 'kg m**-2' = { table2Version = 162 ; indicatorOfParameter = 104 ; } -#Downdraught mass flux +#Time-integrated downdraught mass flux 'kg m**-2' = { table2Version = 162 ; indicatorOfParameter = 105 ; } -#Updraught detrainment rate +#Time-integrated updraught detrainment rate 'kg m**-3' = { table2Version = 162 ; indicatorOfParameter = 106 ; } -#Downdraught detrainment rate +#Time-integrated downdraught detrainment rate 'kg m**-3' = { table2Version = 162 ; indicatorOfParameter = 107 ; } -#Total precipitation flux +#Time-integrated total precipitation flux 'kg m**-2' = { table2Version = 162 ; indicatorOfParameter = 108 ; } -#Turbulent diffusion coefficient for heat +#Time-integrated turbulent diffusion coefficient for heat 'm**2' = { table2Version = 162 ; indicatorOfParameter = 109 ; } -#Tendency of temperature due to physics +#Time-integrated temperature tendency due to parametrisations 'K' = { table2Version = 162 ; indicatorOfParameter = 110 ; } -#Tendency of specific humidity due to physics +#Time-integrated specific humidity tendency due to parametrisations 'kg kg**-1' = { table2Version = 162 ; indicatorOfParameter = 111 ; } -#Tendency of u component due to physics +#Time-integrated eastward wind tendency due to parametrisations 'm s**-1' = { table2Version = 162 ; indicatorOfParameter = 112 ; } -#Tendency of v component due to physics +#Time-integrated northward wind tendency due to parametrisations 'm s**-1' = { table2Version = 162 ; indicatorOfParameter = 113 ; @@ -16314,7 +16314,7 @@ table2Version = 210 ; indicatorOfParameter = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'kg kg**-1' = { table2Version = 210 ; indicatorOfParameter = 61 ; @@ -17814,12 +17814,12 @@ table2Version = 234 ; indicatorOfParameter = 228 ; } -#U-component stokes drift +#U-component surface stokes drift 'm s**-1' = { table2Version = 140 ; indicatorOfParameter = 215 ; } -#V-component stokes drift +#V-component surface stokes drift 'm s**-1' = { table2Version = 140 ; indicatorOfParameter = 216 ; diff --git a/definitions/grib1/mars_labeling.82.def b/definitions/grib1/mars_labeling.82.def index 576d26f72..ef95ce754 100644 --- a/definitions/grib1/mars_labeling.82.def +++ b/definitions/grib1/mars_labeling.82.def @@ -29,5 +29,5 @@ if ( localDefinitionNumber == 83 ) { alias mars.aerosolbinnumber = matchAerosolBinNumber; concept_nofail matchAerosolPacking (unknown,"aerosolPackingConcept.def",conceptsLocalMarsDirAll,conceptsMasterMarsDir); - alias mars.aerosolpacking = matchAerosolPacking; + alias mars.aerosolpacking = matchAerosolPacking; } diff --git a/definitions/grib1/resolution_flags.def b/definitions/grib1/resolution_flags.def index 6c56f24b9..eb096e61e 100644 --- a/definitions/grib1/resolution_flags.def +++ b/definitions/grib1/resolution_flags.def @@ -1,4 +1,4 @@ -# Resolution and component flags +# Resolution and component flags flags[1] resolutionAndComponentFlags 'grib1/7.table' : edition_specific,no_copy ; # Note our flagbit numbers run from 7 to 0, while WMO convention uses 1 to 8 @@ -21,7 +21,6 @@ if (earthIsOblate) { alias earthMinorAxisInMetres=earthMinorAxis; } - flagbit resolutionAndComponentFlags3(resolutionAndComponentFlags,5) = 0: read_only; flagbit resolutionAndComponentFlags4(resolutionAndComponentFlags,4) = 0: read_only; diff --git a/definitions/grib1/scanning_mode.def b/definitions/grib1/scanning_mode.def index ca2c5c60f..477e63562 100644 --- a/definitions/grib1/scanning_mode.def +++ b/definitions/grib1/scanning_mode.def @@ -1,4 +1,6 @@ -# Scanning mode +constant isGridded = one; + +# Scanning mode flags[1] scanningMode 'grib1/8.table' : edition_specific,no_copy; # Not flagbit numbers 7 to 0, while wmo is 1 to 8 diff --git a/definitions/grib1/section.1.def b/definitions/grib1/section.1.def index 0a1985904..3d89bd277 100644 --- a/definitions/grib1/section.1.def +++ b/definitions/grib1/section.1.def @@ -23,15 +23,14 @@ section_length[3] section1Length; meta section1Pointer section_pointer(offsetSection1,section1Length,1); constant wrongPadding=0; -# GRIB tables Version No. +# GRIB tables Version No. # (currently 3 for international exchange) -unsigned[1] table2Version : edition_specific,dump; +unsigned[1] table2Version : edition_specific,dump; alias gribTablesVersionNo=table2Version; - #assert(section1Length > 5); -# Identification of originating/generating centre +# Identification of originating/generating centre codetable[1] centre 'common/c-1.table' : dump,string_type; alias identificationOfOriginatingGeneratingCentre=centre; meta centreDescription codetable_title(centre); @@ -40,8 +39,7 @@ alias parameter.centre=centre; alias originatingCentre=centre; alias ls.centre = centre; -# Generating process identification number -# (allocated by originating centre) +# Generating process identification number unsigned[1] generatingProcessIdentifier : dump; alias generatingProcessIdentificationNumber=generatingProcessIdentifier; alias process=generatingProcessIdentifier; @@ -246,6 +244,7 @@ if (centre == 34 && subCentre == 241) meta time.validityDate validity_date(dataDate,dataTime,step,stepUnits); meta time.validityTime validity_time(dataDate,dataTime,step,stepUnits); +meta validityDateTime julian_date(validityDate, validityTime) : no_copy; transient deleteLocalDefinition=0; @@ -268,7 +267,6 @@ if(((section1Length > 40) or new() or setLocalDefinition> 0) and deleteLocalDefi } template_nofail marsKeywords "mars/grib.[stream:s].[type:s].def"; - #template marsKeywords "mars/grib.[stream:s].[type:s].def"; } else @@ -285,13 +283,12 @@ if(((section1Length > 40) or new() or setLocalDefinition> 0) and deleteLocalDefi else { constant localUsePresent = 0 : edition_specific; - # template defaultMarsLabeling "mars/default_labeling.def"; } section_padding section1Padding : read_only; #if (!wrongPadding) { -# padtoeven evenpadding_sec1(offsetSection1,section1Length); +# padtoeven evenpadding_sec1(offsetSection1,section1Length); #} concept shortNameECMF (defaultShortName,"shortName.def",conceptsMasterDir,conceptsLocalDirECMF) : no_copy; diff --git a/definitions/grib1/section.2.def b/definitions/grib1/section.2.def index 4bf1d5966..0bef0e818 100644 --- a/definitions/grib1/section.2.def +++ b/definitions/grib1/section.2.def @@ -85,3 +85,5 @@ padtoeven padding_sec2_3(offsetSection2,section2Length); meta md5Section2 md5(offsetSection2,section2Length); alias md5GridSection = md5Section2; + +constant isSpectral = !isGridded : constraint; diff --git a/definitions/grib1/section.4.def b/definitions/grib1/section.4.def index 126391ed9..80f602a7e 100644 --- a/definitions/grib1/section.4.def +++ b/definitions/grib1/section.4.def @@ -179,6 +179,7 @@ alias setDecimalPrecision=changeDecimalPrecision; meta bitsPerValueAndRepack bits_per_value(values,bitsPerValue) : edition_specific; alias setBitsPerValue=bitsPerValueAndRepack; +meta setPackingType packing_type(values,packingType) : edition_specific; meta scaleValuesBy scale_values(values,missingValue) : edition_specific; meta offsetValuesBy offset_values(values,missingValue) : edition_specific; @@ -194,7 +195,7 @@ concept gridType { "UTM" = {dataRepresentationType = 6; sphericalHarmonics = 0; PLPresent=0; } "simple_polyconic" = {dataRepresentationType = 7; sphericalHarmonics = 0; PLPresent=0; } "albers" = {dataRepresentationType = 8; sphericalHarmonics = 0; PLPresent=0; } - "miller" = {dataRepresentationType = 8; sphericalHarmonics = 0; PLPresent=0; } + "miller" = {dataRepresentationType = 9; sphericalHarmonics = 0; PLPresent=0; } "rotated_ll" = {dataRepresentationType = 10; sphericalHarmonics = 0; PLPresent=0; } "stretched_ll" = {dataRepresentationType = 20; sphericalHarmonics = 0; PLPresent=0; } "stretched_rotated_ll" = {dataRepresentationType = 30; sphericalHarmonics = 0; PLPresent=0; } diff --git a/definitions/grib2/boot.def b/definitions/grib2/boot.def index 32f262bef..296dba179 100644 --- a/definitions/grib2/boot.def +++ b/definitions/grib2/boot.def @@ -2,7 +2,7 @@ # # 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. # diff --git a/definitions/grib2/cfVarName.def b/definitions/grib2/cfVarName.def index a7914ddd4..77cf6e0f5 100644 --- a/definitions/grib2/cfVarName.def +++ b/definitions/grib2/cfVarName.def @@ -206,6 +206,16 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Maximum 10 metre wind gust since previous post-processing +'fg10' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 22 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } #Large-scale precipitation fraction 'lspf' = { discipline = 0 ; @@ -214,6 +224,12 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Montgomery potential +'mont' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 6 ; + } #Downward UV radiation at the surface 'uvb' = { discipline = 0 ; @@ -310,6 +326,30 @@ parameterCategory = 3 ; parameterNumber = 18 ; } +#Standard deviation of sub-gridscale orography +'sdor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Anisotropy of sub-gridscale orography +'isor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 24 ; + } +#Angle of sub-gridscale orography +'anor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 21 ; + } +#Slope of sub-gridscale orography +'slor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 22 ; + } #Surface short-wave (solar) radiation downwards 'ssrd' = { discipline = 0 ; @@ -381,6 +421,26 @@ parameterNumber = 23 ; typeOfStatisticalProcessing = 1 ; } +#Maximum temperature at 2 metres since previous post-processing +'mx2t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum temperature at 2 metres since previous post-processing +'mn2t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 3 ; + } #Ozone mass mixing ratio 'o3' = { discipline = 0 ; @@ -432,6 +492,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 1 ; } #Instantaneous eastward turbulent surface stress @@ -682,6 +744,42 @@ parameterCategory = 0 ; parameterNumber = 92 ; } +#Wave directional width of first swell partition +'wdw1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 56 ; + } +#Wave frequency width of first swell partition +'wfw1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 59 ; + } +#Wave directional width of second swell partition +'wdw2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 57 ; + } +#Wave frequency width of second swell partition +'wfw2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 60 ; + } +#Wave directional width of third swell partition +'wdw3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 58 ; + } +#Wave frequency width of third swell partition +'wfw3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 61 ; + } #Wave energy flux magnitude 'wefxm' = { discipline = 10 ; @@ -694,6 +792,126 @@ parameterCategory = 0 ; parameterNumber = 79 ; } +#Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds +'h1012' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 10 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 12 ; + } +#Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds +'h1214' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 12 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 14 ; + } +#Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds +'h1417' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 14 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 17 ; + } +#Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds +'h1721' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 17 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 21 ; + } +#Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds +'h2125' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 21 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 25 ; + } +#Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds +'h2530' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 25 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 30 ; + } +#Significant wave height of first swell partition +'swh1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 47 ; + } +#Mean wave direction of first swell partition +'mwd1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 53 ; + } +#Mean wave period of first swell partition +'mwp1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 50 ; + } +#Significant wave height of second swell partition +'swh2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 48 ; + } +#Mean wave direction of second swell partition +'mwd2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 54 ; + } +#Mean wave period of second swell partition +'mwp2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + } +#Significant wave height of third swell partition +'swh3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 49 ; + } +#Mean wave direction of third swell partition +'mwd3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 55 ; + } +#Mean wave period of third swell partition +'mwp3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + } #Wave Spectral Skewness 'wss' = { discipline = 10 ; @@ -2212,6 +2430,14 @@ scaledValueOfFirstFixedSurface = 26315 ; scaleFactorOfFirstFixedSurface = 2 ; } +#Total sky direct short-wave (solar) radiation at surface +'fdir' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Surface direct short-wave radiation, clear sky 'cdir' = { discipline = 0 ; @@ -2220,6 +2446,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Cloud base height +'cbh' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 2 ; + } #0 degrees C isothermal level (atm) 'deg0l' = { discipline = 0 ; @@ -2229,7 +2462,7 @@ scaledValueOfFirstFixedSurface = 27315 ; scaleFactorOfFirstFixedSurface = 2 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours 'fg310' = { discipline = 0 ; parameterCategory = 2 ; @@ -2311,6 +2544,14 @@ parameterCategory = 3 ; parameterNumber = 23 ; } +#Convective available potential energy shear +'capes' = { + discipline = 0 ; + parameterCategory = 7 ; + parameterNumber = 19 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #Tropopause pressure 'trpp' = { discipline = 0 ; @@ -2534,6 +2775,22 @@ is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } +#Surface short-wave (solar) radiation downward clear-sky +'ssrdc' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Surface long-wave (thermal) radiation downward clear-sky +'strdc' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Convective precipitation 'cp' = { discipline = 0 ; @@ -2583,6 +2840,22 @@ parameterNumber = 56 ; typeOfFirstFixedSurface = 1 ; } +#Maximum total precipitation rate since previous post-processing +'mxtpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum total precipitation rate since previous post-processing +'mntpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 3 ; + } #Mixed-layer CAPE in the lowest 50 hPa 'mlcape50' = { discipline = 0 ; @@ -3305,6 +3578,22 @@ typeOfSecondFixedSurface = 255 ; typeOfStatisticalProcessing = 1 ; } +#Mean surface runoff rate +'msror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean sub-surface runoff rate +'mssror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface photosynthetically active radiation flux, clear sky 'msparfcs' = { discipline = 0 ; @@ -3313,6 +3602,157 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean snow evaporation rate +'mser' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 148 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowmelt rate +'msmr' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean magnitude of turbulent surface stress +'mmtss' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 58 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation fraction +'mlspf' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 36 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward UV radiation flux +'msdwuvrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 12 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface photosynthetically active radiation flux +'msparf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation rate +'mlspr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 54 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective precipitation rate +'mcpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 37 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowfall rate +'msr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 53 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean boundary layer dissipation +'mbld' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface sensible heat flux +'msshf' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface latent heat flux +'mslhf' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux +'msdwswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux +'msdwlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux +'msnswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux +'msnlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux +'mtnswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux +'mtnlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean evaporation rate +'mer' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 79 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Sunshine duration fraction 'sdf' = { discipline = 0 ; @@ -3320,18 +3760,144 @@ parameterNumber = 51 ; typeOfFirstFixedSurface = 1 ; } -#Mean vertically integrated moisture divergence -'mvimd' = { +#Mean eastward gravity wave surface stress +'megwss' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 16 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean northward gravity wave surface stress +'mngwss' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 17 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean gravity wave dissipation +'mgwd' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean runoff rate +'mror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux, clear sky +'mtnswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux, clear sky +'mtnlwrfcs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux, clear sky +'msnswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux, clear sky +'msnlwrfcs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top downward short-wave radiation flux +'mtdwswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean vertically integrated moisture divergence +'mvimd' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 165 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean total precipitation rate +'mtpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective snowfall rate +'mcsr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 55 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale snowfall rate +'mlssr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 56 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux +'msdrswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux, clear sky +'msdrswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 61 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux, clear sky +'msdwswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux, clear sky +'msdwlwrfcs' = { discipline = 0 ; - parameterCategory = 1 ; - parameterNumber = 165 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } -#Mean surface direct short-wave radiation flux, clear sky -'msdrswrfcs' = { +#Mean potential evaporation rate +'mper' = { discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 61 ; + parameterCategory = 1 ; + parameterNumber = 143 ; typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } @@ -3565,6 +4131,14 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Total column integrated ozone +'tcioz' = { + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #2 metre relative humidity 'r2' = { discipline = 0 ; @@ -3621,14 +4195,6 @@ parameterCategory = 4 ; parameterNumber = 14 ; } -#Time-integrated surface direct short wave radiation flux -'tidirswrf' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 13 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Evaporation in the last 6 hours 'eva06' = { discipline = 0 ; @@ -3787,14 +4353,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Accumulated surface downward short-wave radiation flux, clear sky -'adswrf_cs' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 52 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Accumulated surface upward short-wave radiation flux, clear sky 'auswrf_cs' = { discipline = 0 ; @@ -3803,14 +4361,6 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } -#Accumulated surface downward long-wave radiation flux, clear sky -'adlwrf_cs' = { - discipline = 0 ; - parameterCategory = 5 ; - parameterNumber = 8 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Percolation 'perc' = { discipline = 1 ; @@ -4425,8 +4975,8 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } -#Sea ice temperature -'sitemp' = { +#Vertically averaged sea ice temperature +'vasit' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -4581,6 +5131,12 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } +#Sea ice temperature +'sit' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + } #Sea surface practical salinity 'sos' = { discipline = 10 ; @@ -5488,8 +6044,8 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } -#Time-mean sea ice temperature -'avg_sitemp' = { +#Time-mean vertically averaged sea ice temperature +'avg_vasit' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -5657,6 +6213,13 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } +#Time-mean sea ice temperature +'avg_sit' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean sea surface practical salinity 'avg_sos' = { discipline = 10 ; @@ -6914,12 +7477,78 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Period corresponding to maximum individual wave height +'tmax' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + } +#Maximum individual wave height +'hmax' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + } +#Model bathymetry +'wmb' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + } +#Mean wave period based on first moment +'mp1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + } #Mean zero-crossing wave period 'mp2' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 28 ; } +#Wave spectral directional width +'wdw' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 31 ; + } +#Mean wave period based on first moment for wind waves +'p1ww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + } +#Mean wave period based on second moment for wind waves +'p2ww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 29 ; + } +#Wave spectral directional width for wind waves +'dwww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 32 ; + } +#Mean wave period based on first moment for swell +'p1ps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 27 ; + } +#Mean wave period based on second moment for swell +'p2ps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 30 ; + } +#Wave spectral directional width for swell +'dwps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 33 ; + } #Significant height of combined wind waves and swell 'swh' = { discipline = 10 ; @@ -6944,6 +7573,12 @@ parameterCategory = 0 ; parameterNumber = 15 ; } +#Coefficient of drag with waves +'cdww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 16 ; + } #Significant height of wind waves 'shww' = { discipline = 10 ; @@ -6962,18 +7597,84 @@ parameterCategory = 0 ; parameterNumber = 6 ; } +#Significant height of total swell +'shts' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 8 ; + } #Mean direction of total swell 'mdts' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 74 ; } +#Mean period of total swell +'mpts' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 9 ; + } +#Mean square slope of waves +'msqs' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + } +#10 metre wind speed +'wind' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 40 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#Altimeter wave height +'awh' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 37 ; + } +#Altimeter corrected wave height +'acwh' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 38 ; + } +#Altimeter range relative correction +'arrc' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 39 ; + } +#10 metre wind direction +'dwi' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #2D wave spectra (single) 'd2fd' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 86 ; } +#Wave spectral kurtosis +'wsk' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 43 ; + } +#Benjamin-Feir index +'bfi' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 44 ; + } #Eastward sea water velocity 'uoe' = { discipline = 10 ; @@ -7079,6 +7780,106 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Time-integrated temperature tendency due to short-wave radiation +'srta' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation +'trta' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to short wave radiation, clear sky +'srtca' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'trtca' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught mass flux +'umfa' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 27 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught mass flux +'dmfa' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 28 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught detrainment rate +'udra' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 29 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught detrainment rate +'ddra' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 30 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated total precipitation flux +'tpfa' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated turbulent diffusion coefficient for heat +'tdcha' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to parametrisations +'ttpha' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated specific humidity tendency due to parametrisations +'qtpha' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 108 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated eastward wind tendency due to parametrisations +'utpha' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 39 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated northward wind tendency due to parametrisations +'vtpha' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 40 ; + typeOfStatisticalProcessing = 1 ; } #Surface runoff 'sro' = { @@ -7278,6 +8079,18 @@ scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; } +#U-component surface stokes drift +'ust' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 21 ; + } +#V-component surface stokes drift +'vst' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + } #100 metre U wind component 'u100' = { discipline = 0 ; @@ -8028,12 +8841,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Standard deviation of sub-grid scale orography -'sdsgso' = { - discipline = 0 ; - parameterCategory = 3 ; - parameterNumber = 20 ; - } #Net short-wave radiation flux (top of atmosphere) 'nswrt' = { discipline = 0 ; @@ -8160,12 +8967,6 @@ parameterCategory = 6 ; parameterNumber = 10 ; } -#Cloud base -'cdcb' = { - discipline = 0 ; - parameterCategory = 6 ; - parameterNumber = 11 ; - } #Cloud top 'cdct' = { discipline = 0 ; @@ -8304,12 +9105,6 @@ parameterCategory = 14 ; parameterNumber = 0 ; } -#Total column integrated ozone -'tcioz' = { - discipline = 0 ; - parameterCategory = 14 ; - parameterNumber = 2 ; - } #Base spectrum width 'bswid' = { discipline = 0 ; @@ -9012,12 +9807,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Montgomery stream Function -'mntsf' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 6 ; - } #Sigma coordinate vertical velocity 'sgcvv' = { discipline = 0 ; @@ -9156,18 +9945,6 @@ parameterCategory = 0 ; parameterNumber = 7 ; } -#Significant height of swell waves -'swell' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 8 ; - } -#Mean period of swell waves -'swper' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 9 ; - } #Secondary wave direction 'dirsw' = { discipline = 10 ; diff --git a/definitions/grib2/local.85.1.def b/definitions/grib2/local.85.1.def index c85e4d3c9..39e7c6132 100644 --- a/definitions/grib2/local.85.1.def +++ b/definitions/grib2/local.85.1.def @@ -7,7 +7,7 @@ concept faLevelName (defaultFaLevelName,"faLevelName.def",conceptsMasterDir,conc concept faModelName (defaultFaModelName,"faModelName.def",conceptsMasterDir,conceptsLocalDirAll) : no_copy; # 0 = Accumulation or time range from last event -# 1 = Accumulation or time range from the start +# 1 = Accumulation or time range from the start transient LSTCUM = 0; # Scaling factor for levels diff --git a/definitions/grib2/localConcepts/destine/cfName.def b/definitions/grib2/localConcepts/destine/cfName.def new file mode 100644 index 000000000..acde985fd --- /dev/null +++ b/definitions/grib2/localConcepts/destine/cfName.def @@ -0,0 +1,9 @@ +# Automatically generated by ./create_def.pl, do not edit +#Carbon dioxide mass mixing ratio +'mass_fraction_of_carbon_dioxide_in_air' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + constituentType = 3 ; + is_chemical = 1 ; +} diff --git a/definitions/grib2/localConcepts/destine/name.def b/definitions/grib2/localConcepts/destine/name.def new file mode 100644 index 000000000..a00484536 --- /dev/null +++ b/definitions/grib2/localConcepts/destine/name.def @@ -0,0 +1,9 @@ +# Automatically generated by ./create_def.pl, do not edit +#Carbon dioxide mass mixing ratio +'Carbon dioxide mass mixing ratio' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + constituentType = 3 ; + is_chemical = 1 ; +} diff --git a/definitions/grib2/localConcepts/destine/paramId.def b/definitions/grib2/localConcepts/destine/paramId.def new file mode 100644 index 000000000..e9080e6d4 --- /dev/null +++ b/definitions/grib2/localConcepts/destine/paramId.def @@ -0,0 +1,9 @@ +# Automatically generated by ./create_def.pl, do not edit +#Carbon dioxide mass mixing ratio +'210061' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + constituentType = 3 ; + is_chemical = 1 ; +} diff --git a/definitions/grib2/localConcepts/destine/shortName.def b/definitions/grib2/localConcepts/destine/shortName.def new file mode 100644 index 000000000..8c26930a3 --- /dev/null +++ b/definitions/grib2/localConcepts/destine/shortName.def @@ -0,0 +1,9 @@ +# Automatically generated by ./create_def.pl, do not edit +#Carbon dioxide mass mixing ratio +'co2' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + constituentType = 3 ; + is_chemical = 1 ; +} diff --git a/definitions/grib2/localConcepts/destine/units.def b/definitions/grib2/localConcepts/destine/units.def new file mode 100644 index 000000000..b7edf253c --- /dev/null +++ b/definitions/grib2/localConcepts/destine/units.def @@ -0,0 +1,9 @@ +# Automatically generated by ./create_def.pl, do not edit +#Carbon dioxide mass mixing ratio +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 20 ; + parameterNumber = 2 ; + constituentType = 3 ; + is_chemical = 1 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/cfName.def b/definitions/grib2/localConcepts/ecmf/cfName.def index f60b522c8..f32ddc9a7 100644 --- a/definitions/grib2/localConcepts/ecmf/cfName.def +++ b/definitions/grib2/localConcepts/ecmf/cfName.def @@ -85,9 +85,12 @@ } #Total column ozone 'atmosphere_mass_content_of_ozone' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Hydrogen peroxide 'mass_fraction_of_hydrogen_peroxide_in_air' = { @@ -515,7 +518,7 @@ parameterCategory = 151 ; parameterNumber = 154 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'mass_fraction_of_carbon_dioxide_in_air' = { discipline = 192 ; parameterCategory = 210 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def index 102bbbc17..e3b2b9750 100644 --- a/definitions/grib2/localConcepts/ecmf/cfName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/cfName.legacy.def @@ -142,3 +142,9 @@ parameterCategory = 128 ; parameterNumber = 174 ; } +#Total column ozone +'atmosphere_mass_content_of_ozone' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.def b/definitions/grib2/localConcepts/ecmf/cfVarName.def index 83e730c70..4f85bb57e 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.def @@ -224,12 +224,6 @@ typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 24 ; } -#Montgomery potential -'mont' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 53 ; - } #Mean temperature at 2 metres in the last 24 hours 'mean2t24' = { discipline = 192 ; @@ -548,7 +542,7 @@ parameterCategory = 128 ; parameterNumber = 120 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours 'p10fg6' = { discipline = 192 ; parameterCategory = 128 ; @@ -667,30 +661,6 @@ parameterCategory = 128 ; parameterNumber = 158 ; } -#Standard deviation of orography -'sdor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 160 ; - } -#Anisotropy of sub-gridscale orography -'isor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 161 ; - } -#Angle of sub-gridscale orography -'anor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 162 ; - } -#Slope of sub-gridscale orography -'slor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 163 ; - } #Total cloud cover 'tcc' = { localTablesVersion = 1 ; @@ -827,9 +797,12 @@ } #Total column ozone 'tco3' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Diabatic heating by radiation 'dhr' = { @@ -945,15 +918,21 @@ } #Convective snowfall 'csf' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 239 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 201 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Large-scale snowfall 'lsf' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 240 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 202 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Accumulated cloud fraction tendency 'acf' = { @@ -2804,42 +2783,6 @@ parameterNumber = 194 ; typeOfGeneratingProcess = 9 ; } -#UV visible albedo for diffuse radiation, isotropic component -'aluvdi' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 192 ; - } -#UV visible albedo for diffuse radiation, volumetric component -'aluvdv' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 193 ; - } -#UV visible albedo for diffuse radiation, geometric component -'aluvdg' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 194 ; - } -#Near IR albedo for diffuse radiation, isotropic component -'alnidi' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 195 ; - } -#Near IR albedo for diffuse radiation, volumetric component -'alnidv' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 196 ; - } -#Near IR albedo for diffuse radiation, geometric component -'alnidg' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 197 ; - } #Total aerosol optical depth at 340 nm 'aod340' = { discipline = 192 ; @@ -10996,7 +10939,7 @@ parameterCategory = 218 ; parameterNumber = 206 ; } -#Column integrated mass density of Anthropogenic volatile organic compounds +#Column integrated mass density of Anthropogenic volatile organic compounds 'tc_VOCA' = { localTablesVersion = 1 ; discipline = 0 ; @@ -11005,7 +10948,7 @@ constituentType = 65532 ; is_chemical = 1 ; } -#Column integrated mass density of Biomass burning volatile organic compounds +#Column integrated mass density of Biomass burning volatile organic compounds 'tc_VOCBB' = { localTablesVersion = 1 ; discipline = 0 ; @@ -12334,7 +12277,7 @@ parameterCategory = 219 ; parameterNumber = 220 ; } -#Atmosphere emission mass flux of Anthropogenic volatile organic compounds +#Atmosphere emission mass flux of Anthropogenic volatile organic compounds 'e_VOCA' = { localTablesVersion = 1 ; discipline = 0 ; @@ -12343,7 +12286,7 @@ constituentType = 65532 ; is_chemical = 1 ; } -#Atmosphere emission mass flux of Biomass burning volatile organic compounds +#Atmosphere emission mass flux of Biomass burning volatile organic compounds 'e_VOCBB' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13588,7 +13531,7 @@ parameterCategory = 221 ; parameterNumber = 206 ; } -#Dry deposition velocity of Anthropogenic volatile organic compounds +#Dry deposition velocity of Anthropogenic volatile organic compounds 'dv_VOCA' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13597,7 +13540,7 @@ constituentType = 65532 ; is_chemical = 1 ; } -#Dry deposition velocity of Biomass burning volatile organic compounds +#Dry deposition velocity of Biomass burning volatile organic compounds 'dv_VOCBB' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13656,7 +13599,7 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Time-integrated wet deposition mass flux of Condensable gas type 1 +#Time-integrated wet deposition mass flux of Condensable gas type 1 'acc_wet_depm_SOG1' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13666,7 +13609,7 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Time-integrated wet deposition mass flux of Condensable gas type 2a +#Time-integrated wet deposition mass flux of Condensable gas type 2a 'acc_wet_depm_SOG2A' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13676,7 +13619,7 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Time-integrated wet deposition mass flux of Condensable gas type 2b +#Time-integrated wet deposition mass flux of Condensable gas type 2b 'acc_wet_depm_SOG2B' = { localTablesVersion = 1 ; discipline = 0 ; @@ -13686,18 +13629,6 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Total sky direct solar radiation at surface -'fdir' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 21 ; - } -#Cloud base height -'cbh' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 23 ; - } #Horizontal visibility 'hvis' = { discipline = 192 ; @@ -13860,18 +13791,6 @@ scaleFactorOfSecondWavelength = missing() ; is_aerosol_optical = 1 ; } -#Surface solar radiation downward clear-sky -'ssrdc' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 129 ; - } -#Surface thermal radiation downward clear-sky -'strdc' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 130 ; - } #Accumulated freezing rain 'fzra' = { localTablesVersion = 1 ; @@ -16504,90 +16423,6 @@ parameterCategory = 140 ; parameterNumber = 200 ; } -#Period corresponding to maximum individual wave height -'tmax' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 217 ; - } -#Maximum individual wave height -'hmax' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 218 ; - } -#Model bathymetry -'wmb' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 219 ; - } -#Mean wave period based on first moment -'mp1' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 220 ; - } -#Wave spectral directional width -'wdw' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 222 ; - } -#Mean wave period based on first moment for wind waves -'p1ww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 223 ; - } -#Mean wave period based on second moment for wind waves -'p2ww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 224 ; - } -#Wave spectral directional width for wind waves -'dwww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 225 ; - } -#Mean wave period based on first moment for swell -'p1ps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 226 ; - } -#Mean wave period based on second moment for swell -'p2ps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 227 ; - } -#Wave spectral directional width for swell -'dwps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 228 ; - } -#Coefficient of drag with waves -'cdww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 233 ; - } -#Significant height of total swell -'shts' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 237 ; - } -#Mean period of total swell -'mpts' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 239 ; - } #Standard deviation wave height 'sdhs' = { discipline = 192 ; @@ -16612,60 +16447,12 @@ parameterCategory = 140 ; parameterNumber = 243 ; } -#Mean square slope of waves -'msqs' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 244 ; - } -#10 metre wind speed -'wind' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 245 ; - } -#Altimeter wave height -'awh' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 246 ; - } -#Altimeter corrected wave height -'acwh' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 247 ; - } -#Altimeter range relative correction -'arrc' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 248 ; - } -#10 metre wind direction -'dwi' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 249 ; - } #2D wave spectra (multiple) 'd2sp' = { discipline = 192 ; parameterCategory = 140 ; parameterNumber = 250 ; } -#Wave spectral kurtosis -'wsk' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 252 ; - } -#Benjamin-Feir index -'bfi' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 253 ; - } #Wave spectral peakedness 'wsp' = { discipline = 192 ; @@ -17740,90 +17527,6 @@ parameterCategory = 162 ; parameterNumber = 87 ; } -#Tendency of short wave radiation -'srta' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 100 ; - } -#Tendency of long wave radiation -'trta' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 101 ; - } -#Tendency of clear sky short wave radiation -'srtca' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 102 ; - } -#Tendency of clear sky long wave radiation -'trtca' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 103 ; - } -#Updraught mass flux -'umfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 104 ; - } -#Downdraught mass flux -'dmfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 105 ; - } -#Updraught detrainment rate -'udra' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 106 ; - } -#Downdraught detrainment rate -'ddra' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 107 ; - } -#Total precipitation flux -'tpfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 108 ; - } -#Turbulent diffusion coefficient for heat -'tdcha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 109 ; - } -#Tendency of temperature due to physics -'ttpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 110 ; - } -#Tendency of specific humidity due to physics -'qtpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 111 ; - } -#Tendency of u component due to physics -'utpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 112 ; - } -#Tendency of v component due to physics -'vtpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 113 ; - } #Variance of geopotential 'p206.162' = { discipline = 192 ; @@ -20698,7 +20401,7 @@ parameterCategory = 210 ; parameterNumber = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'co2' = { discipline = 192 ; parameterCategory = 210 ; @@ -22036,18 +21739,6 @@ parameterCategory = 234 ; parameterNumber = 228 ; } -#U-component stokes drift -'ust' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 215 ; - } -#V-component stokes drift -'vst' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 216 ; - } #Wildfire radiative power maximum 'maxfrpfire' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def index f0ef927d5..d7faa1e1d 100644 --- a/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/cfVarName.legacy.def @@ -967,3 +967,345 @@ parameterCategory = 162 ; parameterNumber = 63 ; } +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'aluvdi' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 192 ; +} +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'aluvdv' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 193 ; +} +#UV visible albedo for diffuse radiation, geometric component (climatological) +'aluvdg' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 194 ; +} +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'alnidi' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 195 ; +} +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'alnidv' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 196 ; +} +#Near IR albedo for diffuse radiation, geometric component (climatological) +'alnidg' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 197 ; +} +#Time-integrated temperature tendency due to short-wave radiation +'srta' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 100 ; +} +#Time-integrated temperature tendency due to long-wave radiation +'trta' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 101 ; +} +#Time-integrated temperature tendency due to short wave radiation, clear sky +'srtca' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 102 ; +} +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'trtca' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 103 ; +} +#Time-integrated updraught mass flux +'umfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 104 ; +} +#Time-integrated downdraught mass flux +'dmfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 105 ; +} +#Time-integrated updraught detrainment rate +'udra' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 106 ; +} +#Time-integrated downdraught detrainment rate +'ddra' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 107 ; +} +#Time-integrated total precipitation flux +'tpfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 108 ; +} +#Time-integrated turbulent diffusion coefficient for heat +'tdcha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 109 ; +} +#Time-integrated temperature tendency due to parametrisations +'ttpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 110 ; +} +#Time-integrated specific humidity tendency due to parametrisations +'qtpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 111 ; +} +#Time-integrated eastward wind tendency due to parametrisations +'utpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 112 ; +} +#Time-integrated northward wind tendency due to parametrisations +'vtpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 113 ; +} +#Period corresponding to maximum individual wave height +'tmax' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 217 ; +} +#Maximum individual wave height +'hmax' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 218 ; +} +#Model bathymetry +'wmb' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 219 ; +} +#Mean wave period based on first moment +'mp1' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 220 ; +} +#Wave spectral directional width +'wdw' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 222 ; +} +#Mean wave period based on first moment for wind waves +'p1ww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 223 ; +} +#Mean wave period based on second moment for wind waves +'p2ww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 224 ; +} +#Wave spectral directional width for wind waves +'dwww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 225 ; +} +#Mean wave period based on first moment for swell +'p1ps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 226 ; +} +#Mean wave period based on second moment for swell +'p2ps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 227 ; +} +#Wave spectral directional width for swell +'dwps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 228 ; +} +#Coefficient of drag with waves +'cdww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 233 ; +} +#Significant height of total swell +'shts' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 237 ; +} +#Mean period of total swell +'mpts' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 239 ; +} +#Mean square slope of waves +'msqs' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 244 ; +} +#Benjamin-Feir index +'bfi' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 253 ; +} +#Montgomery stream Function +'mntsf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 53 ; +} +#Water fraction +'fldfrc' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 26 ; +} +#Anisotropy of sub-gridscale orography +'isor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 161 ; +} +#Angle of sub-gridscale orography +'anor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 162 ; +} +#Slope of sub-gridscale orography +'slor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 163 ; +} +#U-component surface stokes drift +'ust' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 215 ; +} +#V-component surface stokes drift +'vst' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 216 ; +} +#Total column ozone +'tco3' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} +#Convective snowfall +'csf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 239 ; +} +#Large-scale snowfall +'lsf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 240 ; +} +#Altimeter wave height +'awh' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 246 ; +} +#Altimeter corrected wave height +'acwh' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 247 ; +} +#Altimeter range relative correction +'arrc' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 248 ; +} +#Total sky direct solar radiation at surface +'fdir' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 21 ; +} +#Surface solar radiation downward clear-sky +'ssrdc' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 129 ; +} +#Surface thermal radiation downward clear-sky +'strdc' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 130 ; +} +#Standard deviation of orography +'sdor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 160 ; +} +#Cloud base height +'cbh' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 23 ; +} +#Wave spectral kurtosis +'wsk' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 252 ; +} +#10 metre wind speed +'wind' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 245 ; +} +#10 metre wind direction +'dwi' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 249 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/name.def b/definitions/grib2/localConcepts/ecmf/name.def index 754c1ba02..1d626bf3d 100644 --- a/definitions/grib2/localConcepts/ecmf/name.def +++ b/definitions/grib2/localConcepts/ecmf/name.def @@ -224,12 +224,6 @@ typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 24 ; } -#Montgomery potential -'Montgomery potential' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 53 ; - } #Mean temperature at 2 metres in the last 24 hours 'Mean temperature at 2 metres in the last 24 hours' = { discipline = 192 ; @@ -548,8 +542,8 @@ parameterCategory = 128 ; parameterNumber = 120 ; } -#10 metre wind gust in the last 6 hours -'10 metre wind gust in the last 6 hours' = { +#Maximum 10 metre wind gust in the last 6 hours +'Maximum 10 metre wind gust in the last 6 hours' = { discipline = 192 ; parameterCategory = 128 ; parameterNumber = 123 ; @@ -667,30 +661,6 @@ parameterCategory = 128 ; parameterNumber = 158 ; } -#Standard deviation of orography -'Standard deviation of orography' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 160 ; - } -#Anisotropy of sub-gridscale orography -'Anisotropy of sub-gridscale orography' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 161 ; - } -#Angle of sub-gridscale orography -'Angle of sub-gridscale orography' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 162 ; - } -#Slope of sub-gridscale orography -'Slope of sub-gridscale orography' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 163 ; - } #Total cloud cover 'Total cloud cover' = { localTablesVersion = 1 ; @@ -827,9 +797,12 @@ } #Total column ozone 'Total column ozone' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Diabatic heating by radiation 'Diabatic heating by radiation' = { @@ -945,15 +918,21 @@ } #Convective snowfall 'Convective snowfall' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 239 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 201 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Large-scale snowfall 'Large-scale snowfall' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 240 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 202 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Accumulated cloud fraction tendency 'Accumulated cloud fraction tendency' = { @@ -2804,42 +2783,6 @@ parameterNumber = 194 ; typeOfGeneratingProcess = 9 ; } -#UV visible albedo for diffuse radiation, isotropic component -'UV visible albedo for diffuse radiation, isotropic component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 192 ; - } -#UV visible albedo for diffuse radiation, volumetric component -'UV visible albedo for diffuse radiation, volumetric component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 193 ; - } -#UV visible albedo for diffuse radiation, geometric component -'UV visible albedo for diffuse radiation, geometric component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 194 ; - } -#Near IR albedo for diffuse radiation, isotropic component -'Near IR albedo for diffuse radiation, isotropic component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 195 ; - } -#Near IR albedo for diffuse radiation, volumetric component -'Near IR albedo for diffuse radiation, volumetric component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 196 ; - } -#Near IR albedo for diffuse radiation, geometric component -'Near IR albedo for diffuse radiation, geometric component' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 197 ; - } #Total aerosol optical depth at 340 nm 'Total aerosol optical depth at 340 nm' = { discipline = 192 ; @@ -13686,18 +13629,6 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Total sky direct solar radiation at surface -'Total sky direct solar radiation at surface' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 21 ; - } -#Cloud base height -'Cloud base height' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 23 ; - } #Horizontal visibility 'Horizontal visibility' = { discipline = 192 ; @@ -13860,18 +13791,6 @@ scaleFactorOfSecondWavelength = missing() ; is_aerosol_optical = 1 ; } -#Surface solar radiation downward clear-sky -'Surface solar radiation downward clear-sky' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 129 ; - } -#Surface thermal radiation downward clear-sky -'Surface thermal radiation downward clear-sky' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 130 ; - } #Accumulated freezing rain 'Accumulated freezing rain' = { localTablesVersion = 1 ; @@ -16504,90 +16423,6 @@ parameterCategory = 140 ; parameterNumber = 200 ; } -#Period corresponding to maximum individual wave height -'Period corresponding to maximum individual wave height' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 217 ; - } -#Maximum individual wave height -'Maximum individual wave height' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 218 ; - } -#Model bathymetry -'Model bathymetry' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 219 ; - } -#Mean wave period based on first moment -'Mean wave period based on first moment' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 220 ; - } -#Wave spectral directional width -'Wave spectral directional width' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 222 ; - } -#Mean wave period based on first moment for wind waves -'Mean wave period based on first moment for wind waves' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 223 ; - } -#Mean wave period based on second moment for wind waves -'Mean wave period based on second moment for wind waves' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 224 ; - } -#Wave spectral directional width for wind waves -'Wave spectral directional width for wind waves' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 225 ; - } -#Mean wave period based on first moment for swell -'Mean wave period based on first moment for swell' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 226 ; - } -#Mean wave period based on second moment for swell -'Mean wave period based on second moment for swell' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 227 ; - } -#Wave spectral directional width for swell -'Wave spectral directional width for swell' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 228 ; - } -#Coefficient of drag with waves -'Coefficient of drag with waves' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 233 ; - } -#Significant height of total swell -'Significant height of total swell' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 237 ; - } -#Mean period of total swell -'Mean period of total swell' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 239 ; - } #Standard deviation wave height 'Standard deviation wave height' = { discipline = 192 ; @@ -16612,60 +16447,12 @@ parameterCategory = 140 ; parameterNumber = 243 ; } -#Mean square slope of waves -'Mean square slope of waves' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 244 ; - } -#10 metre wind speed -'10 metre wind speed' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 245 ; - } -#Altimeter wave height -'Altimeter wave height' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 246 ; - } -#Altimeter corrected wave height -'Altimeter corrected wave height' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 247 ; - } -#Altimeter range relative correction -'Altimeter range relative correction' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 248 ; - } -#10 metre wind direction -'10 metre wind direction' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 249 ; - } #2D wave spectra (multiple) '2D wave spectra (multiple)' = { discipline = 192 ; parameterCategory = 140 ; parameterNumber = 250 ; } -#Wave spectral kurtosis -'Wave spectral kurtosis' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 252 ; - } -#Benjamin-Feir index -'Benjamin-Feir index' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 253 ; - } #Wave spectral peakedness 'Wave spectral peakedness' = { discipline = 192 ; @@ -17740,90 +17527,6 @@ parameterCategory = 162 ; parameterNumber = 87 ; } -#Tendency of short wave radiation -'Tendency of short wave radiation' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 100 ; - } -#Tendency of long wave radiation -'Tendency of long wave radiation' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 101 ; - } -#Tendency of clear sky short wave radiation -'Tendency of clear sky short wave radiation' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 102 ; - } -#Tendency of clear sky long wave radiation -'Tendency of clear sky long wave radiation' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 103 ; - } -#Updraught mass flux -'Updraught mass flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 104 ; - } -#Downdraught mass flux -'Downdraught mass flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 105 ; - } -#Updraught detrainment rate -'Updraught detrainment rate' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 106 ; - } -#Downdraught detrainment rate -'Downdraught detrainment rate' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 107 ; - } -#Total precipitation flux -'Total precipitation flux' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 108 ; - } -#Turbulent diffusion coefficient for heat -'Turbulent diffusion coefficient for heat' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 109 ; - } -#Tendency of temperature due to physics -'Tendency of temperature due to physics' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 110 ; - } -#Tendency of specific humidity due to physics -'Tendency of specific humidity due to physics' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 111 ; - } -#Tendency of u component due to physics -'Tendency of u component due to physics' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 112 ; - } -#Tendency of v component due to physics -'Tendency of v component due to physics' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 113 ; - } #Variance of geopotential 'Variance of geopotential' = { discipline = 192 ; @@ -20698,8 +20401,8 @@ parameterCategory = 210 ; parameterNumber = 54 ; } -#Carbon Dioxide -'Carbon Dioxide' = { +#Carbon dioxide mass mixing ratio +'Carbon dioxide mass mixing ratio' = { discipline = 192 ; parameterCategory = 210 ; parameterNumber = 61 ; @@ -22036,18 +21739,6 @@ parameterCategory = 234 ; parameterNumber = 228 ; } -#U-component stokes drift -'U-component stokes drift' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 215 ; - } -#V-component stokes drift -'V-component stokes drift' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 216 ; - } #Wildfire radiative power maximum 'Wildfire radiative power maximum' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/name.legacy.def b/definitions/grib2/localConcepts/ecmf/name.legacy.def index 50a64458f..c7a877462 100644 --- a/definitions/grib2/localConcepts/ecmf/name.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/name.legacy.def @@ -967,3 +967,345 @@ parameterCategory = 162 ; parameterNumber = 63 ; } +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'UV visible albedo for diffuse radiation, isotropic component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 192 ; +} +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'UV visible albedo for diffuse radiation, volumetric component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 193 ; +} +#UV visible albedo for diffuse radiation, geometric component (climatological) +'UV visible albedo for diffuse radiation, geometric component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 194 ; +} +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'Near IR albedo for diffuse radiation, isotropic component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 195 ; +} +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'Near IR albedo for diffuse radiation, volumetric component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 196 ; +} +#Near IR albedo for diffuse radiation, geometric component (climatological) +'Near IR albedo for diffuse radiation, geometric component (climatological)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 197 ; +} +#Time-integrated temperature tendency due to short-wave radiation +'Time-integrated temperature tendency due to short-wave radiation' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 100 ; +} +#Time-integrated temperature tendency due to long-wave radiation +'Time-integrated temperature tendency due to long-wave radiation' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 101 ; +} +#Time-integrated temperature tendency due to short wave radiation, clear sky +'Time-integrated temperature tendency due to short wave radiation, clear sky' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 102 ; +} +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'Time-integrated temperature tendency due to long-wave radiation, clear sky' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 103 ; +} +#Time-integrated updraught mass flux +'Time-integrated updraught mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 104 ; +} +#Time-integrated downdraught mass flux +'Time-integrated downdraught mass flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 105 ; +} +#Time-integrated updraught detrainment rate +'Time-integrated updraught detrainment rate' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 106 ; +} +#Time-integrated downdraught detrainment rate +'Time-integrated downdraught detrainment rate' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 107 ; +} +#Time-integrated total precipitation flux +'Time-integrated total precipitation flux' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 108 ; +} +#Time-integrated turbulent diffusion coefficient for heat +'Time-integrated turbulent diffusion coefficient for heat' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 109 ; +} +#Time-integrated temperature tendency due to parametrisations +'Time-integrated temperature tendency due to parametrisations' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 110 ; +} +#Time-integrated specific humidity tendency due to parametrisations +'Time-integrated specific humidity tendency due to parametrisations' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 111 ; +} +#Time-integrated eastward wind tendency due to parametrisations +'Time-integrated eastward wind tendency due to parametrisations' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 112 ; +} +#Time-integrated northward wind tendency due to parametrisations +'Time-integrated northward wind tendency due to parametrisations' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 113 ; +} +#Period corresponding to maximum individual wave height +'Period corresponding to maximum individual wave height' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 217 ; +} +#Maximum individual wave height +'Maximum individual wave height' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 218 ; +} +#Model bathymetry +'Model bathymetry' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 219 ; +} +#Mean wave period based on first moment +'Mean wave period based on first moment' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 220 ; +} +#Wave spectral directional width +'Wave spectral directional width' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 222 ; +} +#Mean wave period based on first moment for wind waves +'Mean wave period based on first moment for wind waves' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 223 ; +} +#Mean wave period based on second moment for wind waves +'Mean wave period based on second moment for wind waves' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 224 ; +} +#Wave spectral directional width for wind waves +'Wave spectral directional width for wind waves' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 225 ; +} +#Mean wave period based on first moment for swell +'Mean wave period based on first moment for swell' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 226 ; +} +#Mean wave period based on second moment for swell +'Mean wave period based on second moment for swell' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 227 ; +} +#Wave spectral directional width for swell +'Wave spectral directional width for swell' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 228 ; +} +#Coefficient of drag with waves +'Coefficient of drag with waves' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 233 ; +} +#Significant height of total swell +'Significant height of total swell' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 237 ; +} +#Mean period of total swell +'Mean period of total swell' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 239 ; +} +#Mean square slope of waves +'Mean square slope of waves' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 244 ; +} +#Benjamin-Feir index +'Benjamin-Feir index' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 253 ; +} +#Montgomery stream Function +'Montgomery stream Function' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 53 ; +} +#Water fraction +'Water fraction' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 26 ; +} +#Anisotropy of sub-gridscale orography +'Anisotropy of sub-gridscale orography' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 161 ; +} +#Angle of sub-gridscale orography +'Angle of sub-gridscale orography' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 162 ; +} +#Slope of sub-gridscale orography +'Slope of sub-gridscale orography' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 163 ; +} +#U-component surface stokes drift +'U-component surface stokes drift' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 215 ; +} +#V-component surface stokes drift +'V-component surface stokes drift' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 216 ; +} +#Total column ozone +'Total column ozone' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} +#Convective snowfall +'Convective snowfall' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 239 ; +} +#Large-scale snowfall +'Large-scale snowfall' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 240 ; +} +#Altimeter wave height +'Altimeter wave height' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 246 ; +} +#Altimeter corrected wave height +'Altimeter corrected wave height' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 247 ; +} +#Altimeter range relative correction +'Altimeter range relative correction' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 248 ; +} +#Total sky direct solar radiation at surface +'Total sky direct solar radiation at surface' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 21 ; +} +#Surface solar radiation downward clear-sky +'Surface solar radiation downward clear-sky' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 129 ; +} +#Surface thermal radiation downward clear-sky +'Surface thermal radiation downward clear-sky' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 130 ; +} +#Standard deviation of orography +'Standard deviation of orography' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 160 ; +} +#Cloud base height +'Cloud base height' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 23 ; +} +#Wave spectral kurtosis +'Wave spectral kurtosis' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 252 ; +} +#10 metre wind speed +'10 metre wind speed' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 245 ; +} +#10 metre wind direction +'10 metre wind direction' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 249 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/paramId.def b/definitions/grib2/localConcepts/ecmf/paramId.def index 90a208397..9886c1f16 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.def @@ -224,12 +224,6 @@ typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 24 ; } -#Montgomery potential -'53' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 53 ; - } #Mean temperature at 2 metres in the last 24 hours '55' = { discipline = 192 ; @@ -548,7 +542,7 @@ parameterCategory = 128 ; parameterNumber = 120 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours '123' = { discipline = 192 ; parameterCategory = 128 ; @@ -667,30 +661,6 @@ parameterCategory = 128 ; parameterNumber = 158 ; } -#Standard deviation of orography -'160' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 160 ; - } -#Anisotropy of sub-gridscale orography -'161' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 161 ; - } -#Angle of sub-gridscale orography -'162' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 162 ; - } -#Slope of sub-gridscale orography -'163' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 163 ; - } #Total cloud cover '164' = { localTablesVersion = 1 ; @@ -827,9 +797,12 @@ } #Total column ozone '206' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Diabatic heating by radiation '214' = { @@ -945,15 +918,21 @@ } #Convective snowfall '239' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 239 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 201 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Large-scale snowfall '240' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 240 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 202 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Accumulated cloud fraction tendency '241' = { @@ -2804,42 +2783,6 @@ parameterNumber = 194 ; typeOfGeneratingProcess = 9 ; } -#UV visible albedo for diffuse radiation, isotropic component -'210192' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 192 ; - } -#UV visible albedo for diffuse radiation, volumetric component -'210193' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 193 ; - } -#UV visible albedo for diffuse radiation, geometric component -'210194' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 194 ; - } -#Near IR albedo for diffuse radiation, isotropic component -'210195' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 195 ; - } -#Near IR albedo for diffuse radiation, volumetric component -'210196' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 196 ; - } -#Near IR albedo for diffuse radiation, geometric component -'210197' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 197 ; - } #Total aerosol optical depth at 340 nm '210217' = { discipline = 192 ; @@ -13686,18 +13629,6 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Total sky direct solar radiation at surface -'228021' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 21 ; - } -#Cloud base height -'228023' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 23 ; - } #Horizontal visibility '228025' = { discipline = 192 ; @@ -13860,18 +13791,6 @@ scaleFactorOfSecondWavelength = missing() ; is_aerosol_optical = 1 ; } -#Surface solar radiation downward clear-sky -'228129' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 129 ; - } -#Surface thermal radiation downward clear-sky -'228130' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 130 ; - } #Accumulated freezing rain '228216' = { localTablesVersion = 1 ; @@ -16504,90 +16423,6 @@ parameterCategory = 140 ; parameterNumber = 200 ; } -#Period corresponding to maximum individual wave height -'140217' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 217 ; - } -#Maximum individual wave height -'140218' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 218 ; - } -#Model bathymetry -'140219' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 219 ; - } -#Mean wave period based on first moment -'140220' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 220 ; - } -#Wave spectral directional width -'140222' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 222 ; - } -#Mean wave period based on first moment for wind waves -'140223' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 223 ; - } -#Mean wave period based on second moment for wind waves -'140224' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 224 ; - } -#Wave spectral directional width for wind waves -'140225' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 225 ; - } -#Mean wave period based on first moment for swell -'140226' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 226 ; - } -#Mean wave period based on second moment for swell -'140227' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 227 ; - } -#Wave spectral directional width for swell -'140228' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 228 ; - } -#Coefficient of drag with waves -'140233' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 233 ; - } -#Significant height of total swell -'140237' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 237 ; - } -#Mean period of total swell -'140239' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 239 ; - } #Standard deviation wave height '140240' = { discipline = 192 ; @@ -16612,60 +16447,12 @@ parameterCategory = 140 ; parameterNumber = 243 ; } -#Mean square slope of waves -'140244' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 244 ; - } -#10 metre wind speed -'140245' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 245 ; - } -#Altimeter wave height -'140246' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 246 ; - } -#Altimeter corrected wave height -'140247' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 247 ; - } -#Altimeter range relative correction -'140248' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 248 ; - } -#10 metre wind direction -'140249' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 249 ; - } #2D wave spectra (multiple) '140250' = { discipline = 192 ; parameterCategory = 140 ; parameterNumber = 250 ; } -#Wave spectral kurtosis -'140252' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 252 ; - } -#Benjamin-Feir index -'140253' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 253 ; - } #Wave spectral peakedness '140254' = { discipline = 192 ; @@ -17740,90 +17527,6 @@ parameterCategory = 162 ; parameterNumber = 87 ; } -#Tendency of short wave radiation -'162100' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 100 ; - } -#Tendency of long wave radiation -'162101' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 101 ; - } -#Tendency of clear sky short wave radiation -'162102' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 102 ; - } -#Tendency of clear sky long wave radiation -'162103' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 103 ; - } -#Updraught mass flux -'162104' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 104 ; - } -#Downdraught mass flux -'162105' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 105 ; - } -#Updraught detrainment rate -'162106' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 106 ; - } -#Downdraught detrainment rate -'162107' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 107 ; - } -#Total precipitation flux -'162108' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 108 ; - } -#Turbulent diffusion coefficient for heat -'162109' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 109 ; - } -#Tendency of temperature due to physics -'162110' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 110 ; - } -#Tendency of specific humidity due to physics -'162111' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 111 ; - } -#Tendency of u component due to physics -'162112' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 112 ; - } -#Tendency of v component due to physics -'162113' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 113 ; - } #Variance of geopotential '162206' = { discipline = 192 ; @@ -20698,7 +20401,7 @@ parameterCategory = 210 ; parameterNumber = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio '210061' = { discipline = 192 ; parameterCategory = 210 ; @@ -22036,18 +21739,6 @@ parameterCategory = 234 ; parameterNumber = 228 ; } -#U-component stokes drift -'140215' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 215 ; - } -#V-component stokes drift -'140216' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 216 ; - } #Wildfire radiative power maximum '210101' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def index 8ac6e9834..cb5186931 100644 --- a/definitions/grib2/localConcepts/ecmf/paramId.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/paramId.legacy.def @@ -967,3 +967,345 @@ parameterCategory = 162 ; parameterNumber = 63 ; } +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'210192' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 192 ; +} +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'210193' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 193 ; +} +#UV visible albedo for diffuse radiation, geometric component (climatological) +'210194' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 194 ; +} +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'210195' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 195 ; +} +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'210196' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 196 ; +} +#Near IR albedo for diffuse radiation, geometric component (climatological) +'210197' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 197 ; +} +#Time-integrated temperature tendency due to short-wave radiation +'162100' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 100 ; +} +#Time-integrated temperature tendency due to long-wave radiation +'162101' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 101 ; +} +#Time-integrated temperature tendency due to short wave radiation, clear sky +'162102' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 102 ; +} +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'162103' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 103 ; +} +#Time-integrated updraught mass flux +'162104' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 104 ; +} +#Time-integrated downdraught mass flux +'162105' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 105 ; +} +#Time-integrated updraught detrainment rate +'162106' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 106 ; +} +#Time-integrated downdraught detrainment rate +'162107' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 107 ; +} +#Time-integrated total precipitation flux +'162108' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 108 ; +} +#Time-integrated turbulent diffusion coefficient for heat +'162109' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 109 ; +} +#Time-integrated temperature tendency due to parametrisations +'162110' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 110 ; +} +#Time-integrated specific humidity tendency due to parametrisations +'162111' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 111 ; +} +#Time-integrated eastward wind tendency due to parametrisations +'162112' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 112 ; +} +#Time-integrated northward wind tendency due to parametrisations +'162113' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 113 ; +} +#Period corresponding to maximum individual wave height +'140217' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 217 ; +} +#Maximum individual wave height +'140218' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 218 ; +} +#Model bathymetry +'140219' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 219 ; +} +#Mean wave period based on first moment +'140220' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 220 ; +} +#Wave spectral directional width +'140222' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 222 ; +} +#Mean wave period based on first moment for wind waves +'140223' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 223 ; +} +#Mean wave period based on second moment for wind waves +'140224' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 224 ; +} +#Wave spectral directional width for wind waves +'140225' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 225 ; +} +#Mean wave period based on first moment for swell +'140226' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 226 ; +} +#Mean wave period based on second moment for swell +'140227' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 227 ; +} +#Wave spectral directional width for swell +'140228' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 228 ; +} +#Coefficient of drag with waves +'140233' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 233 ; +} +#Significant height of total swell +'140237' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 237 ; +} +#Mean period of total swell +'140239' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 239 ; +} +#Mean square slope of waves +'140244' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 244 ; +} +#Benjamin-Feir index +'140253' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 253 ; +} +#Montgomery stream Function +'53' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 53 ; +} +#Water fraction +'26' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 26 ; +} +#Anisotropy of sub-gridscale orography +'161' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 161 ; +} +#Angle of sub-gridscale orography +'162' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 162 ; +} +#Slope of sub-gridscale orography +'163' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 163 ; +} +#U-component surface stokes drift +'140215' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 215 ; +} +#V-component surface stokes drift +'140216' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 216 ; +} +#Total column ozone +'206' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} +#Convective snowfall +'239' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 239 ; +} +#Large-scale snowfall +'240' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 240 ; +} +#Altimeter wave height +'140246' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 246 ; +} +#Altimeter corrected wave height +'140247' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 247 ; +} +#Altimeter range relative correction +'140248' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 248 ; +} +#Total sky direct solar radiation at surface +'228021' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 21 ; +} +#Surface solar radiation downward clear-sky +'228129' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 129 ; +} +#Surface thermal radiation downward clear-sky +'228130' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 130 ; +} +#Standard deviation of orography +'160' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 160 ; +} +#Cloud base height +'228023' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 23 ; +} +#Wave spectral kurtosis +'140252' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 252 ; +} +#10 metre wind speed +'140245' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 245 ; +} +#10 metre wind direction +'140249' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 249 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/shortName.def b/definitions/grib2/localConcepts/ecmf/shortName.def index 86dfa8eca..3d30e0aec 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.def @@ -224,12 +224,6 @@ typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 24 ; } -#Montgomery potential -'mont' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 53 ; - } #Mean temperature at 2 metres in the last 24 hours 'mean2t24' = { discipline = 192 ; @@ -548,7 +542,7 @@ parameterCategory = 128 ; parameterNumber = 120 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours '10fg6' = { discipline = 192 ; parameterCategory = 128 ; @@ -667,30 +661,6 @@ parameterCategory = 128 ; parameterNumber = 158 ; } -#Standard deviation of orography -'sdor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 160 ; - } -#Anisotropy of sub-gridscale orography -'isor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 161 ; - } -#Angle of sub-gridscale orography -'anor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 162 ; - } -#Slope of sub-gridscale orography -'slor' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 163 ; - } #Total cloud cover 'tcc' = { localTablesVersion = 1 ; @@ -827,9 +797,12 @@ } #Total column ozone 'tco3' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Diabatic heating by radiation 'dhr' = { @@ -945,15 +918,21 @@ } #Convective snowfall 'csf' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 239 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 201 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Large-scale snowfall 'lsf' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 240 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 202 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Accumulated cloud fraction tendency 'acf' = { @@ -2804,42 +2783,6 @@ parameterNumber = 194 ; typeOfGeneratingProcess = 9 ; } -#UV visible albedo for diffuse radiation, isotropic component -'aluvdi' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 192 ; - } -#UV visible albedo for diffuse radiation, volumetric component -'aluvdv' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 193 ; - } -#UV visible albedo for diffuse radiation, geometric component -'aluvdg' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 194 ; - } -#Near IR albedo for diffuse radiation, isotropic component -'alnidi' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 195 ; - } -#Near IR albedo for diffuse radiation, volumetric component -'alnidv' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 196 ; - } -#Near IR albedo for diffuse radiation, geometric component -'alnidg' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 197 ; - } #Total aerosol optical depth at 340 nm 'aod340' = { discipline = 192 ; @@ -13686,18 +13629,6 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Total sky direct solar radiation at surface -'fdir' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 21 ; - } -#Cloud base height -'cbh' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 23 ; - } #Horizontal visibility 'hvis' = { discipline = 192 ; @@ -13860,18 +13791,6 @@ scaleFactorOfSecondWavelength = missing() ; is_aerosol_optical = 1 ; } -#Surface solar radiation downward clear-sky -'ssrdc' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 129 ; - } -#Surface thermal radiation downward clear-sky -'strdc' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 130 ; - } #Accumulated freezing rain 'fzra' = { localTablesVersion = 1 ; @@ -16504,90 +16423,6 @@ parameterCategory = 140 ; parameterNumber = 200 ; } -#Period corresponding to maximum individual wave height -'tmax' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 217 ; - } -#Maximum individual wave height -'hmax' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 218 ; - } -#Model bathymetry -'wmb' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 219 ; - } -#Mean wave period based on first moment -'mp1' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 220 ; - } -#Wave spectral directional width -'wdw' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 222 ; - } -#Mean wave period based on first moment for wind waves -'p1ww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 223 ; - } -#Mean wave period based on second moment for wind waves -'p2ww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 224 ; - } -#Wave spectral directional width for wind waves -'dwww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 225 ; - } -#Mean wave period based on first moment for swell -'p1ps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 226 ; - } -#Mean wave period based on second moment for swell -'p2ps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 227 ; - } -#Wave spectral directional width for swell -'dwps' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 228 ; - } -#Coefficient of drag with waves -'cdww' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 233 ; - } -#Significant height of total swell -'shts' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 237 ; - } -#Mean period of total swell -'mpts' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 239 ; - } #Standard deviation wave height 'sdhs' = { discipline = 192 ; @@ -16612,60 +16447,12 @@ parameterCategory = 140 ; parameterNumber = 243 ; } -#Mean square slope of waves -'msqs' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 244 ; - } -#10 metre wind speed -'wind' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 245 ; - } -#Altimeter wave height -'awh' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 246 ; - } -#Altimeter corrected wave height -'acwh' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 247 ; - } -#Altimeter range relative correction -'arrc' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 248 ; - } -#10 metre wind direction -'dwi' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 249 ; - } #2D wave spectra (multiple) '2dsp' = { discipline = 192 ; parameterCategory = 140 ; parameterNumber = 250 ; } -#Wave spectral kurtosis -'wsk' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 252 ; - } -#Benjamin-Feir index -'bfi' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 253 ; - } #Wave spectral peakedness 'wsp' = { discipline = 192 ; @@ -17740,90 +17527,6 @@ parameterCategory = 162 ; parameterNumber = 87 ; } -#Tendency of short wave radiation -'srta' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 100 ; - } -#Tendency of long wave radiation -'trta' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 101 ; - } -#Tendency of clear sky short wave radiation -'srtca' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 102 ; - } -#Tendency of clear sky long wave radiation -'trtca' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 103 ; - } -#Updraught mass flux -'umfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 104 ; - } -#Downdraught mass flux -'dmfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 105 ; - } -#Updraught detrainment rate -'udra' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 106 ; - } -#Downdraught detrainment rate -'ddra' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 107 ; - } -#Total precipitation flux -'tpfa' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 108 ; - } -#Turbulent diffusion coefficient for heat -'tdcha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 109 ; - } -#Tendency of temperature due to physics -'ttpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 110 ; - } -#Tendency of specific humidity due to physics -'qtpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 111 ; - } -#Tendency of u component due to physics -'utpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 112 ; - } -#Tendency of v component due to physics -'vtpha' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 113 ; - } #Variance of geopotential '~' = { discipline = 192 ; @@ -20698,7 +20401,7 @@ parameterCategory = 210 ; parameterNumber = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'co2' = { discipline = 192 ; parameterCategory = 210 ; @@ -22036,18 +21739,6 @@ parameterCategory = 234 ; parameterNumber = 228 ; } -#U-component stokes drift -'ust' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 215 ; - } -#V-component stokes drift -'vst' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 216 ; - } #Wildfire radiative power maximum 'maxfrpfire' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def index 0c2c2cfcb..7e0d60eed 100644 --- a/definitions/grib2/localConcepts/ecmf/shortName.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/shortName.legacy.def @@ -967,3 +967,345 @@ parameterCategory = 162 ; parameterNumber = 63 ; } +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'aluvdi' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 192 ; +} +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'aluvdv' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 193 ; +} +#UV visible albedo for diffuse radiation, geometric component (climatological) +'aluvdg' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 194 ; +} +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'alnidi' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 195 ; +} +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'alnidv' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 196 ; +} +#Near IR albedo for diffuse radiation, geometric component (climatological) +'alnidg' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 197 ; +} +#Time-integrated temperature tendency due to short-wave radiation +'srta' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 100 ; +} +#Time-integrated temperature tendency due to long-wave radiation +'trta' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 101 ; +} +#Time-integrated temperature tendency due to short wave radiation, clear sky +'srtca' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 102 ; +} +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'trtca' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 103 ; +} +#Time-integrated updraught mass flux +'umfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 104 ; +} +#Time-integrated downdraught mass flux +'dmfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 105 ; +} +#Time-integrated updraught detrainment rate +'udra' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 106 ; +} +#Time-integrated downdraught detrainment rate +'ddra' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 107 ; +} +#Time-integrated total precipitation flux +'tpfa' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 108 ; +} +#Time-integrated turbulent diffusion coefficient for heat +'tdcha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 109 ; +} +#Time-integrated temperature tendency due to parametrisations +'ttpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 110 ; +} +#Time-integrated specific humidity tendency due to parametrisations +'qtpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 111 ; +} +#Time-integrated eastward wind tendency due to parametrisations +'utpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 112 ; +} +#Time-integrated northward wind tendency due to parametrisations +'vtpha' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 113 ; +} +#Period corresponding to maximum individual wave height +'tmax' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 217 ; +} +#Maximum individual wave height +'hmax' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 218 ; +} +#Model bathymetry +'wmb' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 219 ; +} +#Mean wave period based on first moment +'mp1' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 220 ; +} +#Wave spectral directional width +'wdw' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 222 ; +} +#Mean wave period based on first moment for wind waves +'p1ww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 223 ; +} +#Mean wave period based on second moment for wind waves +'p2ww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 224 ; +} +#Wave spectral directional width for wind waves +'dwww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 225 ; +} +#Mean wave period based on first moment for swell +'p1ps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 226 ; +} +#Mean wave period based on second moment for swell +'p2ps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 227 ; +} +#Wave spectral directional width for swell +'dwps' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 228 ; +} +#Coefficient of drag with waves +'cdww' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 233 ; +} +#Significant height of total swell +'shts' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 237 ; +} +#Mean period of total swell +'mpts' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 239 ; +} +#Mean square slope of waves +'msqs' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 244 ; +} +#Benjamin-Feir index +'bfi' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 253 ; +} +#Montgomery stream Function +'mntsf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 53 ; +} +#Water fraction +'fldfrc' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 26 ; +} +#Anisotropy of sub-gridscale orography +'isor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 161 ; +} +#Angle of sub-gridscale orography +'anor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 162 ; +} +#Slope of sub-gridscale orography +'slor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 163 ; +} +#U-component surface stokes drift +'ust' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 215 ; +} +#V-component surface stokes drift +'vst' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 216 ; +} +#Total column ozone +'tco3' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} +#Convective snowfall +'csf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 239 ; +} +#Large-scale snowfall +'lsf' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 240 ; +} +#Altimeter wave height +'awh' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 246 ; +} +#Altimeter corrected wave height +'acwh' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 247 ; +} +#Altimeter range relative correction +'arrc' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 248 ; +} +#Total sky direct solar radiation at surface +'fdir' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 21 ; +} +#Surface solar radiation downward clear-sky +'ssrdc' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 129 ; +} +#Surface thermal radiation downward clear-sky +'strdc' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 130 ; +} +#Standard deviation of orography +'sdor' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 160 ; +} +#Cloud base height +'cbh' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 23 ; +} +#Wave spectral kurtosis +'wsk' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 252 ; +} +#10 metre wind speed +'wind' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 245 ; +} +#10 metre wind direction +'dwi' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 249 ; +} diff --git a/definitions/grib2/localConcepts/ecmf/units.def b/definitions/grib2/localConcepts/ecmf/units.def index 83b44930c..26a9c0a22 100644 --- a/definitions/grib2/localConcepts/ecmf/units.def +++ b/definitions/grib2/localConcepts/ecmf/units.def @@ -224,12 +224,6 @@ typeOfStatisticalProcessing = 3 ; lengthOfTimeRange = 24 ; } -#Montgomery potential -'m**2 s**-2' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 53 ; - } #Mean temperature at 2 metres in the last 24 hours 'K' = { discipline = 192 ; @@ -548,7 +542,7 @@ parameterCategory = 128 ; parameterNumber = 120 ; } -#10 metre wind gust in the last 6 hours +#Maximum 10 metre wind gust in the last 6 hours 'm s**-1' = { discipline = 192 ; parameterCategory = 128 ; @@ -667,30 +661,6 @@ parameterCategory = 128 ; parameterNumber = 158 ; } -#Standard deviation of orography -'m' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 160 ; - } -#Anisotropy of sub-gridscale orography -'~' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 161 ; - } -#Angle of sub-gridscale orography -'radians' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 162 ; - } -#Slope of sub-gridscale orography -'~' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 163 ; - } #Total cloud cover '(0 - 1)' = { localTablesVersion = 1 ; @@ -827,9 +797,12 @@ } #Total column ozone 'kg m**-2' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 206 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 192 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; } #Diabatic heating by radiation 'K' = { @@ -945,15 +918,21 @@ } #Convective snowfall 'm of water equivalent' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 239 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 201 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Large-scale snowfall 'm of water equivalent' = { - discipline = 192 ; - parameterCategory = 128 ; - parameterNumber = 240 ; + localTablesVersion = 1 ; + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 202 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; } #Accumulated cloud fraction tendency '(-1 to 1)' = { @@ -2804,42 +2783,6 @@ parameterNumber = 194 ; typeOfGeneratingProcess = 9 ; } -#UV visible albedo for diffuse radiation, isotropic component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 192 ; - } -#UV visible albedo for diffuse radiation, volumetric component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 193 ; - } -#UV visible albedo for diffuse radiation, geometric component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 194 ; - } -#Near IR albedo for diffuse radiation, isotropic component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 195 ; - } -#Near IR albedo for diffuse radiation, volumetric component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 196 ; - } -#Near IR albedo for diffuse radiation, geometric component -'(0 - 1)' = { - discipline = 192 ; - parameterCategory = 210 ; - parameterNumber = 197 ; - } #Total aerosol optical depth at 340 nm '~' = { discipline = 192 ; @@ -13686,18 +13629,6 @@ typeOfStatisticalProcessing = 1 ; is_chemical = 1 ; } -#Total sky direct solar radiation at surface -'J m**-2' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 21 ; - } -#Cloud base height -'m' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 23 ; - } #Horizontal visibility 'm' = { discipline = 192 ; @@ -13860,18 +13791,6 @@ scaleFactorOfSecondWavelength = missing() ; is_aerosol_optical = 1 ; } -#Surface solar radiation downward clear-sky -'J m**-2' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 129 ; - } -#Surface thermal radiation downward clear-sky -'J m**-2' = { - discipline = 192 ; - parameterCategory = 228 ; - parameterNumber = 130 ; - } #Accumulated freezing rain 'm' = { localTablesVersion = 1 ; @@ -16504,90 +16423,6 @@ parameterCategory = 140 ; parameterNumber = 200 ; } -#Period corresponding to maximum individual wave height -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 217 ; - } -#Maximum individual wave height -'m' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 218 ; - } -#Model bathymetry -'m' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 219 ; - } -#Mean wave period based on first moment -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 220 ; - } -#Wave spectral directional width -'radians' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 222 ; - } -#Mean wave period based on first moment for wind waves -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 223 ; - } -#Mean wave period based on second moment for wind waves -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 224 ; - } -#Wave spectral directional width for wind waves -'radians' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 225 ; - } -#Mean wave period based on first moment for swell -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 226 ; - } -#Mean wave period based on second moment for swell -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 227 ; - } -#Wave spectral directional width for swell -'radians' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 228 ; - } -#Coefficient of drag with waves -'dimensionless' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 233 ; - } -#Significant height of total swell -'m' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 237 ; - } -#Mean period of total swell -'s' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 239 ; - } #Standard deviation wave height 'm' = { discipline = 192 ; @@ -16612,60 +16447,12 @@ parameterCategory = 140 ; parameterNumber = 243 ; } -#Mean square slope of waves -'dimensionless' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 244 ; - } -#10 metre wind speed -'m s**-1' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 245 ; - } -#Altimeter wave height -'m' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 246 ; - } -#Altimeter corrected wave height -'m' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 247 ; - } -#Altimeter range relative correction -'~' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 248 ; - } -#10 metre wind direction -'degrees' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 249 ; - } #2D wave spectra (multiple) 'm**2 s radian**-1' = { discipline = 192 ; parameterCategory = 140 ; parameterNumber = 250 ; } -#Wave spectral kurtosis -'dimensionless' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 252 ; - } -#Benjamin-Feir index -'dimensionless' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 253 ; - } #Wave spectral peakedness 'dimensionless' = { discipline = 192 ; @@ -17740,90 +17527,6 @@ parameterCategory = 162 ; parameterNumber = 87 ; } -#Tendency of short wave radiation -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 100 ; - } -#Tendency of long wave radiation -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 101 ; - } -#Tendency of clear sky short wave radiation -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 102 ; - } -#Tendency of clear sky long wave radiation -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 103 ; - } -#Updraught mass flux -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 104 ; - } -#Downdraught mass flux -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 105 ; - } -#Updraught detrainment rate -'kg m**-3' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 106 ; - } -#Downdraught detrainment rate -'kg m**-3' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 107 ; - } -#Total precipitation flux -'kg m**-2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 108 ; - } -#Turbulent diffusion coefficient for heat -'m**2' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 109 ; - } -#Tendency of temperature due to physics -'K' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 110 ; - } -#Tendency of specific humidity due to physics -'kg kg**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 111 ; - } -#Tendency of u component due to physics -'m s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 112 ; - } -#Tendency of v component due to physics -'m s**-1' = { - discipline = 192 ; - parameterCategory = 162 ; - parameterNumber = 113 ; - } #Variance of geopotential 'm**4 s**-4' = { discipline = 192 ; @@ -20698,7 +20401,7 @@ parameterCategory = 210 ; parameterNumber = 54 ; } -#Carbon Dioxide +#Carbon dioxide mass mixing ratio 'kg kg**-1' = { discipline = 192 ; parameterCategory = 210 ; @@ -22036,18 +21739,6 @@ parameterCategory = 234 ; parameterNumber = 228 ; } -#U-component stokes drift -'m s**-1' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 215 ; - } -#V-component stokes drift -'m s**-1' = { - discipline = 192 ; - parameterCategory = 140 ; - parameterNumber = 216 ; - } #Wildfire radiative power maximum 'W' = { discipline = 192 ; diff --git a/definitions/grib2/localConcepts/ecmf/units.legacy.def b/definitions/grib2/localConcepts/ecmf/units.legacy.def index e2ad66fde..4b5d36486 100644 --- a/definitions/grib2/localConcepts/ecmf/units.legacy.def +++ b/definitions/grib2/localConcepts/ecmf/units.legacy.def @@ -967,3 +967,345 @@ parameterCategory = 162 ; parameterNumber = 63 ; } +#UV visible albedo for diffuse radiation, isotropic component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 192 ; +} +#UV visible albedo for diffuse radiation, volumetric component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 193 ; +} +#UV visible albedo for diffuse radiation, geometric component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 194 ; +} +#Near IR albedo for diffuse radiation, isotropic component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 195 ; +} +#Near IR albedo for diffuse radiation, volumetric component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 196 ; +} +#Near IR albedo for diffuse radiation, geometric component (climatological) +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 210 ; + parameterNumber = 197 ; +} +#Time-integrated temperature tendency due to short-wave radiation +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 100 ; +} +#Time-integrated temperature tendency due to long-wave radiation +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 101 ; +} +#Time-integrated temperature tendency due to short wave radiation, clear sky +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 102 ; +} +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 103 ; +} +#Time-integrated updraught mass flux +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 104 ; +} +#Time-integrated downdraught mass flux +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 105 ; +} +#Time-integrated updraught detrainment rate +'kg m**-3' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 106 ; +} +#Time-integrated downdraught detrainment rate +'kg m**-3' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 107 ; +} +#Time-integrated total precipitation flux +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 108 ; +} +#Time-integrated turbulent diffusion coefficient for heat +'m**2' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 109 ; +} +#Time-integrated temperature tendency due to parametrisations +'K' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 110 ; +} +#Time-integrated specific humidity tendency due to parametrisations +'kg kg**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 111 ; +} +#Time-integrated eastward wind tendency due to parametrisations +'m s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 112 ; +} +#Time-integrated northward wind tendency due to parametrisations +'m s**-1' = { + discipline = 192 ; + parameterCategory = 162 ; + parameterNumber = 113 ; +} +#Period corresponding to maximum individual wave height +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 217 ; +} +#Maximum individual wave height +'m' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 218 ; +} +#Model bathymetry +'m' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 219 ; +} +#Mean wave period based on first moment +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 220 ; +} +#Wave spectral directional width +'radians' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 222 ; +} +#Mean wave period based on first moment for wind waves +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 223 ; +} +#Mean wave period based on second moment for wind waves +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 224 ; +} +#Wave spectral directional width for wind waves +'radians' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 225 ; +} +#Mean wave period based on first moment for swell +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 226 ; +} +#Mean wave period based on second moment for swell +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 227 ; +} +#Wave spectral directional width for swell +'radians' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 228 ; +} +#Coefficient of drag with waves +'dimensionless' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 233 ; +} +#Significant height of total swell +'m' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 237 ; +} +#Mean period of total swell +'s' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 239 ; +} +#Mean square slope of waves +'dimensionless' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 244 ; +} +#Benjamin-Feir index +'dimensionless' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 253 ; +} +#Montgomery stream Function +'m**2 s**-2' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 53 ; +} +#Water fraction +'(0 - 1)' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 26 ; +} +#Anisotropy of sub-gridscale orography +'~' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 161 ; +} +#Angle of sub-gridscale orography +'radians' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 162 ; +} +#Slope of sub-gridscale orography +'Numeric' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 163 ; +} +#U-component surface stokes drift +'m s**-1' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 215 ; +} +#V-component surface stokes drift +'m s**-1' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 216 ; +} +#Total column ozone +'kg m**-2' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 206 ; +} +#Convective snowfall +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 239 ; +} +#Large-scale snowfall +'m of water equivalent' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 240 ; +} +#Altimeter wave height +'m' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 246 ; +} +#Altimeter corrected wave height +'m' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 247 ; +} +#Altimeter range relative correction +'~' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 248 ; +} +#Total sky direct solar radiation at surface +'J m**-2' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 21 ; +} +#Surface solar radiation downward clear-sky +'J m**-2' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 129 ; +} +#Surface thermal radiation downward clear-sky +'J m**-2' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 130 ; +} +#Standard deviation of orography +'m' = { + discipline = 192 ; + parameterCategory = 128 ; + parameterNumber = 160 ; +} +#Cloud base height +'m' = { + discipline = 192 ; + parameterCategory = 228 ; + parameterNumber = 23 ; +} +#Wave spectral kurtosis +'dimensionless' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 252 ; +} +#10 metre wind speed +'m s**-1' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 245 ; +} +#10 metre wind direction +'degrees' = { + discipline = 192 ; + parameterCategory = 140 ; + parameterNumber = 249 ; +} diff --git a/definitions/grib2/localConcepts/era6/marsLevtypeConcept.def b/definitions/grib2/localConcepts/era6/marsLevtypeConcept.def new file mode 100644 index 000000000..cedc39b0d --- /dev/null +++ b/definitions/grib2/localConcepts/era6/marsLevtypeConcept.def @@ -0,0 +1,69 @@ +# Concept marsLevtype +'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=8;} +'o2d' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=9;} +'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=162;} +'sfc' = {typeOfFirstFixedSurface=7; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=8; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=17; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=18; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=20; scaleFactorOfFirstFixedSurface=-2; + scaledValueOfFirstFixedSurface=29315; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=20; typeOfSecondFixedSurface=255;} +'pl' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=255;} +'pl' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=100;} +'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=100; + scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=80000;} +'sfc' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=80000; + typeOfSecondFixedSurface=100; scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=45000;} +'sfc' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; + scaledValueOfFirstFixedSurface=45000; typeOfSecondFixedSurface=8;} +'sfc' = {typeOfFirstFixedSurface=101; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;} +'hl' = {typeOfFirstFixedSurface=103; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=103; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=0; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=103; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=2; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=103; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=10; typeOfSecondFixedSurface=255;} +'ml' = {typeOfFirstFixedSurface=105; typeOfSecondFixedSurface=255;} +'ml' = {typeOfFirstFixedSurface=105; typeOfSecondFixedSurface=105;} +'sfc' = {typeOfFirstFixedSurface=106; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=106;typeOfSecondFixedSurface=106;} +'pt' = {typeOfFirstFixedSurface=107; typeOfSecondFixedSurface=255;} +'pt' = {typeOfFirstFixedSurface=107; typeOfSecondFixedSurface=107;} +'pv' = {typeOfFirstFixedSurface=109; typeOfSecondFixedSurface=255;} +'sol' = {typeOfFirstFixedSurface=114; typeOfSecondFixedSurface=255;} +'sol' = {typeOfFirstFixedSurface=114; typeOfSecondFixedSurface=114;} +'hhl' = {typeOfFirstFixedSurface=118; typeOfSecondFixedSurface=255;} +'hpl' = {typeOfFirstFixedSurface=119; typeOfSecondFixedSurface=255;} +'sol' = {typeOfFirstFixedSurface=151; typeOfSecondFixedSurface=255;} +'sol' = {typeOfFirstFixedSurface=151; typeOfSecondFixedSurface=151;} +'sol' = {typeOfFirstFixedSurface=152; typeOfSecondFixedSurface=255;} +'sol' = {typeOfFirstFixedSurface=152; typeOfSecondFixedSurface=152;} +'o2d' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=160; scaleFactorOfFirstFixedSurface=0; + scaledValueOfFirstFixedSurface=0; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=160;} +'o2d' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=9;} +'o2d' = {typeOfFirstFixedSurface=160; typeOfSecondFixedSurface=20; + scaledValueOfFirstFixedSurface=0; scaleFactorOfFirstFixedSurface=0;} +'sfc' = {typeOfFirstFixedSurface=162; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=166; typeOfSecondFixedSurface=255;} +'o3d' = {typeOfFirstFixedSurface=168; typeOfSecondFixedSurface=255;} +'o3d' = {typeOfFirstFixedSurface=168; typeOfSecondFixedSurface=168;} +'o2d' = {typeOfFirstFixedSurface=169; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=170; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=171; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=173; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=173; typeOfSecondFixedSurface=175;} +'o2d' = {typeOfFirstFixedSurface=174; typeOfSecondFixedSurface=255;} +'sfc' = {typeOfFirstFixedSurface=174; typeOfSecondFixedSurface=255; discipline=1;} +'o2d' = {typeOfFirstFixedSurface=175; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=176; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=174; typeOfSecondFixedSurface=160; + scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=0;} +'o2d' = {typeOfFirstFixedSurface=174; typeOfSecondFixedSurface=176;} +'sfc' = {typeOfFirstFixedSurface=174; typeOfSecondFixedSurface=176; discipline=1;} +'o2d' = {typeOfFirstFixedSurface=175; typeOfSecondFixedSurface=176;} +'sfc' = {typeOfFirstFixedSurface=177; typeOfSecondFixedSurface=255;} +'o2d' = {typeOfFirstFixedSurface=188; typeOfSecondFixedSurface=189;} + diff --git a/definitions/grib2/localConcepts/uerra/cfVarName.def b/definitions/grib2/localConcepts/uerra/cfVarName.def index d18461817..a77e854d9 100644 --- a/definitions/grib2/localConcepts/uerra/cfVarName.def +++ b/definitions/grib2/localConcepts/uerra/cfVarName.def @@ -17,7 +17,7 @@ scaledValueOfFirstFixedSurface = 200 ; scaleFactorOfFirstFixedSurface = 0 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'fg10' = { discipline = 0 ; parameterCategory = 2 ; @@ -29,7 +29,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'fg10' = { discipline = 0 ; parameterCategory = 2 ; @@ -41,7 +41,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 1 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'fg10' = { discipline = 0 ; parameterCategory = 2 ; @@ -148,6 +148,18 @@ typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; } +#Standard deviation of sub-grid scale orography +'sdsgso' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Cloud base +'cdcb' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + } #2 metre relative humidity 'r2' = { discipline = 0 ; @@ -177,6 +189,30 @@ typeOfStatisticalProcessing = 1 ; lengthOfTimeRange = 24 ; } +#Time-integrated surface direct short wave radiation flux +'tidirswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward short-wave radiation flux, clear sky +'adswrf_cs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward long-wave radiation flux, clear sky +'adlwrf_cs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Sea ice surface temperature 'sist' = { discipline = 10 ; diff --git a/definitions/grib2/localConcepts/uerra/name.def b/definitions/grib2/localConcepts/uerra/name.def index 330d3e841..938e1072a 100644 --- a/definitions/grib2/localConcepts/uerra/name.def +++ b/definitions/grib2/localConcepts/uerra/name.def @@ -17,8 +17,8 @@ scaledValueOfFirstFixedSurface = 200 ; scaleFactorOfFirstFixedSurface = 0 ; } -#10 metre wind gust since previous post-processing -'10 metre wind gust since previous post-processing' = { +#Maximum 10 metre wind gust since previous post-processing +'Maximum 10 metre wind gust since previous post-processing' = { discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; @@ -29,8 +29,8 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; } -#10 metre wind gust since previous post-processing -'10 metre wind gust since previous post-processing' = { +#Maximum 10 metre wind gust since previous post-processing +'Maximum 10 metre wind gust since previous post-processing' = { discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; @@ -41,8 +41,8 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 1 ; } -#10 metre wind gust since previous post-processing -'10 metre wind gust since previous post-processing' = { +#Maximum 10 metre wind gust since previous post-processing +'Maximum 10 metre wind gust since previous post-processing' = { discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; @@ -148,6 +148,18 @@ typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; } +#Standard deviation of sub-grid scale orography +'Standard deviation of sub-grid scale orography' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Cloud base +'Cloud base' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + } #2 metre relative humidity '2 metre relative humidity' = { discipline = 0 ; @@ -177,6 +189,30 @@ typeOfStatisticalProcessing = 1 ; lengthOfTimeRange = 24 ; } +#Time-integrated surface direct short wave radiation flux +'Time-integrated surface direct short wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward short-wave radiation flux, clear sky +'Accumulated surface downward short-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward long-wave radiation flux, clear sky +'Accumulated surface downward long-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Sea ice surface temperature 'Sea ice surface temperature' = { discipline = 10 ; diff --git a/definitions/grib2/localConcepts/uerra/paramId.def b/definitions/grib2/localConcepts/uerra/paramId.def index 7e4f5941e..3db8ad4fa 100644 --- a/definitions/grib2/localConcepts/uerra/paramId.def +++ b/definitions/grib2/localConcepts/uerra/paramId.def @@ -17,7 +17,7 @@ scaledValueOfFirstFixedSurface = 200 ; scaleFactorOfFirstFixedSurface = 0 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '49' = { discipline = 0 ; parameterCategory = 2 ; @@ -29,7 +29,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '49' = { discipline = 0 ; parameterCategory = 2 ; @@ -41,7 +41,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 1 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '49' = { discipline = 0 ; parameterCategory = 2 ; @@ -148,6 +148,18 @@ typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; } +#Standard deviation of sub-grid scale orography +'260085' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Cloud base +'260107' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + } #2 metre relative humidity '260242' = { discipline = 0 ; @@ -177,6 +189,30 @@ typeOfStatisticalProcessing = 1 ; lengthOfTimeRange = 24 ; } +#Time-integrated surface direct short wave radiation flux +'260264' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward short-wave radiation flux, clear sky +'260423' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward long-wave radiation flux, clear sky +'260428' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Sea ice surface temperature '260649' = { discipline = 10 ; diff --git a/definitions/grib2/localConcepts/uerra/shortName.def b/definitions/grib2/localConcepts/uerra/shortName.def index 95eed7a09..9cbb74cd7 100644 --- a/definitions/grib2/localConcepts/uerra/shortName.def +++ b/definitions/grib2/localConcepts/uerra/shortName.def @@ -17,7 +17,7 @@ scaledValueOfFirstFixedSurface = 200 ; scaleFactorOfFirstFixedSurface = 0 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '10fg' = { discipline = 0 ; parameterCategory = 2 ; @@ -29,7 +29,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '10fg' = { discipline = 0 ; parameterCategory = 2 ; @@ -41,7 +41,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 1 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing '10fg' = { discipline = 0 ; parameterCategory = 2 ; @@ -148,6 +148,18 @@ typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; } +#Standard deviation of sub-grid scale orography +'sdsgso' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Cloud base +'cdcb' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + } #2 metre relative humidity '2r' = { discipline = 0 ; @@ -177,6 +189,30 @@ typeOfStatisticalProcessing = 1 ; lengthOfTimeRange = 24 ; } +#Time-integrated surface direct short wave radiation flux +'tidirswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward short-wave radiation flux, clear sky +'adswrf_cs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward long-wave radiation flux, clear sky +'adlwrf_cs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Sea ice surface temperature 'sist' = { discipline = 10 ; diff --git a/definitions/grib2/localConcepts/uerra/units.def b/definitions/grib2/localConcepts/uerra/units.def index 2766aadab..aa1f30814 100644 --- a/definitions/grib2/localConcepts/uerra/units.def +++ b/definitions/grib2/localConcepts/uerra/units.def @@ -17,7 +17,7 @@ scaledValueOfFirstFixedSurface = 200 ; scaleFactorOfFirstFixedSurface = 0 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'm s**-1' = { discipline = 0 ; parameterCategory = 2 ; @@ -29,7 +29,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 3 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'm s**-1' = { discipline = 0 ; parameterCategory = 2 ; @@ -41,7 +41,7 @@ typeOfStatisticalProcessing = 2 ; lengthOfTimeRange = 1 ; } -#10 metre wind gust since previous post-processing +#Maximum 10 metre wind gust since previous post-processing 'm s**-1' = { discipline = 0 ; parameterCategory = 2 ; @@ -148,6 +148,18 @@ typeOfFirstFixedSurface = 1 ; typeOfSecondFixedSurface = 8 ; } +#Standard deviation of sub-grid scale orography +'m' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Cloud base +'m' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + } #2 metre relative humidity '%' = { discipline = 0 ; @@ -177,6 +189,30 @@ typeOfStatisticalProcessing = 1 ; lengthOfTimeRange = 24 ; } +#Time-integrated surface direct short wave radiation flux +'J m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward short-wave radiation flux, clear sky +'J m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Accumulated surface downward long-wave radiation flux, clear sky +'J m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Sea ice surface temperature 'K' = { discipline = 10 ; diff --git a/definitions/grib2/marsLevtypeConcept.def b/definitions/grib2/marsLevtypeConcept.def index e72a2d701..109473e86 100644 --- a/definitions/grib2/marsLevtypeConcept.def +++ b/definitions/grib2/marsLevtypeConcept.def @@ -3,6 +3,7 @@ 'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=8;} 'o2d' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=9;} 'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=162;} +'sfc' = {typeOfFirstFixedSurface=2; typeOfSecondFixedSurface=255;} 'sfc' = {typeOfFirstFixedSurface=7; typeOfSecondFixedSurface=255;} 'sfc' = {typeOfFirstFixedSurface=8; typeOfSecondFixedSurface=255;} 'sfc' = {typeOfFirstFixedSurface=17; typeOfSecondFixedSurface=255;} @@ -12,6 +13,12 @@ 'o2d' = {typeOfFirstFixedSurface=20; typeOfSecondFixedSurface=255;} 'pl' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=255;} 'pl' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=100;} +'sfc' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=100; + scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=80000;} +'sfc' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=80000; + typeOfSecondFixedSurface=100; scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=45000;} +'sfc' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; + scaledValueOfFirstFixedSurface=45000; typeOfSecondFixedSurface=8;} 'sfc' = {typeOfFirstFixedSurface=101; typeOfSecondFixedSurface=255;} 'sfc' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;} 'sfc' = {typeOfFirstFixedSurface=103; typeOfSecondFixedSurface=255;} diff --git a/definitions/grib2/mars_labeling.82.def b/definitions/grib2/mars_labeling.82.def index 88328c1a2..7d881ced7 100644 --- a/definitions/grib2/mars_labeling.82.def +++ b/definitions/grib2/mars_labeling.82.def @@ -1,15 +1,11 @@ # author: Sebastien Villaume # created: 14 Feb 2014 -# ######################### - constant conceptsMasterMarsDir="mars" : hidden; constant conceptsLocalMarsDirAll="mars/[centre:s]" : hidden; ########################## -# # # Base MARS keywors # -# # ########################## alias mars.class = marsClass; @@ -20,28 +16,21 @@ alias mars.expver = experimentVersionNumber; alias mars.domain = globalDomain; ######################### -# # # local section 82 # -# # ######################### ### nothing needed here... ######################### -# # # local section 83 # -# # ######################### - if ( localDefinitionNumber == 83 ) { - - alias mars.sort = matchSort; - alias mars.timerepres = matchTimeRepres; - alias mars.landtype = matchLandType; - alias mars.aerosolbinnumber = matchAerosolBinNumber; + alias mars.sort = matchSort; + alias mars.timerepres = matchTimeRepres; + alias mars.landtype = matchLandType; + alias mars.aerosolbinnumber = matchAerosolBinNumber; concept_nofail matchAerosolPacking (unknown,"aerosolPackingConcept.def",conceptsLocalMarsDirAll,conceptsMasterMarsDir); - alias mars.aerosolpacking = matchAerosolPacking; - + alias mars.aerosolpacking = matchAerosolPacking; } diff --git a/definitions/grib2/name.def b/definitions/grib2/name.def index 62ea357c8..eb5f83d62 100644 --- a/definitions/grib2/name.def +++ b/definitions/grib2/name.def @@ -206,6 +206,16 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Maximum 10 metre wind gust since previous post-processing +'Maximum 10 metre wind gust since previous post-processing' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 22 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } #Large-scale precipitation fraction 'Large-scale precipitation fraction' = { discipline = 0 ; @@ -214,6 +224,12 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Montgomery potential +'Montgomery potential' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 6 ; + } #Downward UV radiation at the surface 'Downward UV radiation at the surface' = { discipline = 0 ; @@ -310,6 +326,30 @@ parameterCategory = 3 ; parameterNumber = 18 ; } +#Standard deviation of sub-gridscale orography +'Standard deviation of sub-gridscale orography' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Anisotropy of sub-gridscale orography +'Anisotropy of sub-gridscale orography' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 24 ; + } +#Angle of sub-gridscale orography +'Angle of sub-gridscale orography' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 21 ; + } +#Slope of sub-gridscale orography +'Slope of sub-gridscale orography' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 22 ; + } #Surface short-wave (solar) radiation downwards 'Surface short-wave (solar) radiation downwards' = { discipline = 0 ; @@ -381,6 +421,26 @@ parameterNumber = 23 ; typeOfStatisticalProcessing = 1 ; } +#Maximum temperature at 2 metres since previous post-processing +'Maximum temperature at 2 metres since previous post-processing' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum temperature at 2 metres since previous post-processing +'Minimum temperature at 2 metres since previous post-processing' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 3 ; + } #Ozone mass mixing ratio 'Ozone mass mixing ratio' = { discipline = 0 ; @@ -432,6 +492,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 1 ; } #Instantaneous eastward turbulent surface stress @@ -682,6 +744,42 @@ parameterCategory = 0 ; parameterNumber = 92 ; } +#Wave directional width of first swell partition +'Wave directional width of first swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 56 ; + } +#Wave frequency width of first swell partition +'Wave frequency width of first swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 59 ; + } +#Wave directional width of second swell partition +'Wave directional width of second swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 57 ; + } +#Wave frequency width of second swell partition +'Wave frequency width of second swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 60 ; + } +#Wave directional width of third swell partition +'Wave directional width of third swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 58 ; + } +#Wave frequency width of third swell partition +'Wave frequency width of third swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 61 ; + } #Wave energy flux magnitude 'Wave energy flux magnitude' = { discipline = 10 ; @@ -694,6 +792,126 @@ parameterCategory = 0 ; parameterNumber = 79 ; } +#Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds +'Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 10 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 12 ; + } +#Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds +'Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 12 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 14 ; + } +#Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds +'Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 14 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 17 ; + } +#Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds +'Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 17 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 21 ; + } +#Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds +'Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 21 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 25 ; + } +#Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds +'Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 25 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 30 ; + } +#Significant wave height of first swell partition +'Significant wave height of first swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 47 ; + } +#Mean wave direction of first swell partition +'Mean wave direction of first swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 53 ; + } +#Mean wave period of first swell partition +'Mean wave period of first swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 50 ; + } +#Significant wave height of second swell partition +'Significant wave height of second swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 48 ; + } +#Mean wave direction of second swell partition +'Mean wave direction of second swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 54 ; + } +#Mean wave period of second swell partition +'Mean wave period of second swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + } +#Significant wave height of third swell partition +'Significant wave height of third swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 49 ; + } +#Mean wave direction of third swell partition +'Mean wave direction of third swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 55 ; + } +#Mean wave period of third swell partition +'Mean wave period of third swell partition' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + } #Wave Spectral Skewness 'Wave Spectral Skewness' = { discipline = 10 ; @@ -2212,6 +2430,14 @@ scaledValueOfFirstFixedSurface = 26315 ; scaleFactorOfFirstFixedSurface = 2 ; } +#Total sky direct short-wave (solar) radiation at surface +'Total sky direct short-wave (solar) radiation at surface' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Surface direct short-wave radiation, clear sky 'Surface direct short-wave radiation, clear sky' = { discipline = 0 ; @@ -2220,6 +2446,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Cloud base height +'Cloud base height' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 2 ; + } #0 degrees C isothermal level (atm) '0 degrees C isothermal level (atm)' = { discipline = 0 ; @@ -2229,8 +2462,8 @@ scaledValueOfFirstFixedSurface = 27315 ; scaleFactorOfFirstFixedSurface = 2 ; } -#10 metre wind gust in the last 3 hours -'10 metre wind gust in the last 3 hours' = { +#Maximum 10 metre wind gust in the last 3 hours +'Maximum 10 metre wind gust in the last 3 hours' = { discipline = 0 ; parameterCategory = 2 ; parameterNumber = 22 ; @@ -2311,6 +2544,14 @@ parameterCategory = 3 ; parameterNumber = 23 ; } +#Convective available potential energy shear +'Convective available potential energy shear' = { + discipline = 0 ; + parameterCategory = 7 ; + parameterNumber = 19 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #Tropopause pressure 'Tropopause pressure' = { discipline = 0 ; @@ -2534,6 +2775,22 @@ is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } +#Surface short-wave (solar) radiation downward clear-sky +'Surface short-wave (solar) radiation downward clear-sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Surface long-wave (thermal) radiation downward clear-sky +'Surface long-wave (thermal) radiation downward clear-sky' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Convective precipitation 'Convective precipitation' = { discipline = 0 ; @@ -2583,6 +2840,22 @@ parameterNumber = 56 ; typeOfFirstFixedSurface = 1 ; } +#Maximum total precipitation rate since previous post-processing +'Maximum total precipitation rate since previous post-processing' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum total precipitation rate since previous post-processing +'Minimum total precipitation rate since previous post-processing' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 3 ; + } #Mixed-layer CAPE in the lowest 50 hPa 'Mixed-layer CAPE in the lowest 50 hPa' = { discipline = 0 ; @@ -3305,6 +3578,22 @@ typeOfSecondFixedSurface = 255 ; typeOfStatisticalProcessing = 1 ; } +#Mean surface runoff rate +'Mean surface runoff rate' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean sub-surface runoff rate +'Mean sub-surface runoff rate' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface photosynthetically active radiation flux, clear sky 'Mean surface photosynthetically active radiation flux, clear sky' = { discipline = 0 ; @@ -3313,6 +3602,157 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean snow evaporation rate +'Mean snow evaporation rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 148 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowmelt rate +'Mean snowmelt rate' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean magnitude of turbulent surface stress +'Mean magnitude of turbulent surface stress' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 58 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation fraction +'Mean large-scale precipitation fraction' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 36 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward UV radiation flux +'Mean surface downward UV radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 12 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface photosynthetically active radiation flux +'Mean surface photosynthetically active radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation rate +'Mean large-scale precipitation rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 54 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective precipitation rate +'Mean convective precipitation rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 37 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowfall rate +'Mean snowfall rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 53 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean boundary layer dissipation +'Mean boundary layer dissipation' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface sensible heat flux +'Mean surface sensible heat flux' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface latent heat flux +'Mean surface latent heat flux' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux +'Mean surface downward short-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux +'Mean surface downward long-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux +'Mean surface net short-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux +'Mean surface net long-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux +'Mean top net short-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux +'Mean top net long-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean evaporation rate +'Mean evaporation rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 79 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Sunshine duration fraction 'Sunshine duration fraction' = { discipline = 0 ; @@ -3320,6 +3760,76 @@ parameterNumber = 51 ; typeOfFirstFixedSurface = 1 ; } +#Mean eastward gravity wave surface stress +'Mean eastward gravity wave surface stress' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 16 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean northward gravity wave surface stress +'Mean northward gravity wave surface stress' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 17 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean gravity wave dissipation +'Mean gravity wave dissipation' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean runoff rate +'Mean runoff rate' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux, clear sky +'Mean top net short-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux, clear sky +'Mean top net long-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux, clear sky +'Mean surface net short-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux, clear sky +'Mean surface net long-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top downward short-wave radiation flux +'Mean top downward short-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Mean vertically integrated moisture divergence 'Mean vertically integrated moisture divergence' = { discipline = 0 ; @@ -3327,11 +3837,67 @@ parameterNumber = 165 ; typeOfStatisticalProcessing = 0 ; } -#Mean surface direct short-wave radiation flux, clear sky -'Mean surface direct short-wave radiation flux, clear sky' = { +#Mean total precipitation rate +'Mean total precipitation rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective snowfall rate +'Mean convective snowfall rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 55 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale snowfall rate +'Mean large-scale snowfall rate' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 56 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux +'Mean surface direct short-wave radiation flux' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux, clear sky +'Mean surface direct short-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 61 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux, clear sky +'Mean surface downward short-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux, clear sky +'Mean surface downward long-wave radiation flux, clear sky' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean potential evaporation rate +'Mean potential evaporation rate' = { discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 61 ; + parameterCategory = 1 ; + parameterNumber = 143 ; typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } @@ -3565,6 +4131,14 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Total column integrated ozone +'Total column integrated ozone' = { + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #2 metre relative humidity '2 metre relative humidity' = { discipline = 0 ; @@ -3621,14 +4195,6 @@ parameterCategory = 4 ; parameterNumber = 14 ; } -#Time-integrated surface direct short wave radiation flux -'Time-integrated surface direct short wave radiation flux' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 13 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Evaporation in the last 6 hours 'Evaporation in the last 6 hours' = { discipline = 0 ; @@ -3787,14 +4353,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Accumulated surface downward short-wave radiation flux, clear sky -'Accumulated surface downward short-wave radiation flux, clear sky' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 52 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Accumulated surface upward short-wave radiation flux, clear sky 'Accumulated surface upward short-wave radiation flux, clear sky' = { discipline = 0 ; @@ -3803,14 +4361,6 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } -#Accumulated surface downward long-wave radiation flux, clear sky -'Accumulated surface downward long-wave radiation flux, clear sky' = { - discipline = 0 ; - parameterCategory = 5 ; - parameterNumber = 8 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Percolation 'Percolation' = { discipline = 1 ; @@ -4425,8 +4975,8 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } -#Sea ice temperature -'Sea ice temperature' = { +#Vertically averaged sea ice temperature +'Vertically averaged sea ice temperature' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -4581,6 +5131,12 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } +#Sea ice temperature +'Sea ice temperature' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + } #Sea surface practical salinity 'Sea surface practical salinity' = { discipline = 10 ; @@ -5488,8 +6044,8 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } -#Time-mean sea ice temperature -'Time-mean sea ice temperature' = { +#Time-mean vertically averaged sea ice temperature +'Time-mean vertically averaged sea ice temperature' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -5657,6 +6213,13 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } +#Time-mean sea ice temperature +'Time-mean sea ice temperature' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean sea surface practical salinity 'Time-mean sea surface practical salinity' = { discipline = 10 ; @@ -6914,12 +7477,78 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Period corresponding to maximum individual wave height +'Period corresponding to maximum individual wave height' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + } +#Maximum individual wave height +'Maximum individual wave height' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + } +#Model bathymetry +'Model bathymetry' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + } +#Mean wave period based on first moment +'Mean wave period based on first moment' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + } #Mean zero-crossing wave period 'Mean zero-crossing wave period' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 28 ; } +#Wave spectral directional width +'Wave spectral directional width' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 31 ; + } +#Mean wave period based on first moment for wind waves +'Mean wave period based on first moment for wind waves' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + } +#Mean wave period based on second moment for wind waves +'Mean wave period based on second moment for wind waves' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 29 ; + } +#Wave spectral directional width for wind waves +'Wave spectral directional width for wind waves' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 32 ; + } +#Mean wave period based on first moment for swell +'Mean wave period based on first moment for swell' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 27 ; + } +#Mean wave period based on second moment for swell +'Mean wave period based on second moment for swell' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 30 ; + } +#Wave spectral directional width for swell +'Wave spectral directional width for swell' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 33 ; + } #Significant height of combined wind waves and swell 'Significant height of combined wind waves and swell' = { discipline = 10 ; @@ -6944,6 +7573,12 @@ parameterCategory = 0 ; parameterNumber = 15 ; } +#Coefficient of drag with waves +'Coefficient of drag with waves' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 16 ; + } #Significant height of wind waves 'Significant height of wind waves' = { discipline = 10 ; @@ -6962,18 +7597,84 @@ parameterCategory = 0 ; parameterNumber = 6 ; } +#Significant height of total swell +'Significant height of total swell' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 8 ; + } #Mean direction of total swell 'Mean direction of total swell' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 74 ; } +#Mean period of total swell +'Mean period of total swell' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 9 ; + } +#Mean square slope of waves +'Mean square slope of waves' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + } +#10 metre wind speed +'10 metre wind speed' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 40 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#Altimeter wave height +'Altimeter wave height' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 37 ; + } +#Altimeter corrected wave height +'Altimeter corrected wave height' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 38 ; + } +#Altimeter range relative correction +'Altimeter range relative correction' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 39 ; + } +#10 metre wind direction +'10 metre wind direction' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #2D wave spectra (single) '2D wave spectra (single)' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 86 ; } +#Wave spectral kurtosis +'Wave spectral kurtosis' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 43 ; + } +#Benjamin-Feir index +'Benjamin-Feir index' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 44 ; + } #Eastward sea water velocity 'Eastward sea water velocity' = { discipline = 10 ; @@ -7079,6 +7780,106 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Time-integrated temperature tendency due to short-wave radiation +'Time-integrated temperature tendency due to short-wave radiation' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation +'Time-integrated temperature tendency due to long-wave radiation' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to short wave radiation, clear sky +'Time-integrated temperature tendency due to short wave radiation, clear sky' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'Time-integrated temperature tendency due to long-wave radiation, clear sky' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught mass flux +'Time-integrated updraught mass flux' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 27 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught mass flux +'Time-integrated downdraught mass flux' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 28 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught detrainment rate +'Time-integrated updraught detrainment rate' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 29 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught detrainment rate +'Time-integrated downdraught detrainment rate' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 30 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated total precipitation flux +'Time-integrated total precipitation flux' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated turbulent diffusion coefficient for heat +'Time-integrated turbulent diffusion coefficient for heat' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to parametrisations +'Time-integrated temperature tendency due to parametrisations' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated specific humidity tendency due to parametrisations +'Time-integrated specific humidity tendency due to parametrisations' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 108 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated eastward wind tendency due to parametrisations +'Time-integrated eastward wind tendency due to parametrisations' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 39 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated northward wind tendency due to parametrisations +'Time-integrated northward wind tendency due to parametrisations' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 40 ; + typeOfStatisticalProcessing = 1 ; } #Surface runoff 'Surface runoff' = { @@ -7278,6 +8079,18 @@ scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; } +#U-component surface stokes drift +'U-component surface stokes drift' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 21 ; + } +#V-component surface stokes drift +'V-component surface stokes drift' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + } #100 metre U wind component '100 metre U wind component' = { discipline = 0 ; @@ -8028,12 +8841,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Standard deviation of sub-grid scale orography -'Standard deviation of sub-grid scale orography' = { - discipline = 0 ; - parameterCategory = 3 ; - parameterNumber = 20 ; - } #Net short-wave radiation flux (top of atmosphere) 'Net short-wave radiation flux (top of atmosphere)' = { discipline = 0 ; @@ -8160,12 +8967,6 @@ parameterCategory = 6 ; parameterNumber = 10 ; } -#Cloud base -'Cloud base' = { - discipline = 0 ; - parameterCategory = 6 ; - parameterNumber = 11 ; - } #Cloud top 'Cloud top' = { discipline = 0 ; @@ -8304,12 +9105,6 @@ parameterCategory = 14 ; parameterNumber = 0 ; } -#Total column integrated ozone -'Total column integrated ozone' = { - discipline = 0 ; - parameterCategory = 14 ; - parameterNumber = 2 ; - } #Base spectrum width 'Base spectrum width' = { discipline = 0 ; @@ -9012,12 +9807,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Montgomery stream Function -'Montgomery stream Function' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 6 ; - } #Sigma coordinate vertical velocity 'Sigma coordinate vertical velocity' = { discipline = 0 ; @@ -9156,18 +9945,6 @@ parameterCategory = 0 ; parameterNumber = 7 ; } -#Significant height of swell waves -'Significant height of swell waves' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 8 ; - } -#Mean period of swell waves -'Mean period of swell waves' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 9 ; - } #Secondary wave direction 'Secondary wave direction' = { discipline = 10 ; diff --git a/definitions/grib2/paramId.def b/definitions/grib2/paramId.def index ba92eb6db..ea9121ca9 100644 --- a/definitions/grib2/paramId.def +++ b/definitions/grib2/paramId.def @@ -206,6 +206,16 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Maximum 10 metre wind gust since previous post-processing +'49' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 22 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } #Large-scale precipitation fraction '50' = { discipline = 0 ; @@ -214,6 +224,12 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Montgomery potential +'53' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 6 ; + } #Downward UV radiation at the surface '57' = { discipline = 0 ; @@ -310,6 +326,30 @@ parameterCategory = 3 ; parameterNumber = 18 ; } +#Standard deviation of sub-gridscale orography +'160' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Anisotropy of sub-gridscale orography +'161' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 24 ; + } +#Angle of sub-gridscale orography +'162' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 21 ; + } +#Slope of sub-gridscale orography +'163' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 22 ; + } #Surface short-wave (solar) radiation downwards '169' = { discipline = 0 ; @@ -381,6 +421,26 @@ parameterNumber = 23 ; typeOfStatisticalProcessing = 1 ; } +#Maximum temperature at 2 metres since previous post-processing +'201' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum temperature at 2 metres since previous post-processing +'202' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 3 ; + } #Ozone mass mixing ratio '203' = { discipline = 0 ; @@ -432,6 +492,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 1 ; } #Instantaneous eastward turbulent surface stress @@ -682,6 +744,42 @@ parameterCategory = 0 ; parameterNumber = 92 ; } +#Wave directional width of first swell partition +'140106' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 56 ; + } +#Wave frequency width of first swell partition +'140107' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 59 ; + } +#Wave directional width of second swell partition +'140108' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 57 ; + } +#Wave frequency width of second swell partition +'140109' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 60 ; + } +#Wave directional width of third swell partition +'140110' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 58 ; + } +#Wave frequency width of third swell partition +'140111' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 61 ; + } #Wave energy flux magnitude '140112' = { discipline = 10 ; @@ -694,6 +792,126 @@ parameterCategory = 0 ; parameterNumber = 79 ; } +#Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds +'140114' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 10 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 12 ; + } +#Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds +'140115' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 12 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 14 ; + } +#Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds +'140116' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 14 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 17 ; + } +#Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds +'140117' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 17 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 21 ; + } +#Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds +'140118' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 21 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 25 ; + } +#Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds +'140119' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 25 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 30 ; + } +#Significant wave height of first swell partition +'140121' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 47 ; + } +#Mean wave direction of first swell partition +'140122' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 53 ; + } +#Mean wave period of first swell partition +'140123' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 50 ; + } +#Significant wave height of second swell partition +'140124' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 48 ; + } +#Mean wave direction of second swell partition +'140125' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 54 ; + } +#Mean wave period of second swell partition +'140126' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + } +#Significant wave height of third swell partition +'140127' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 49 ; + } +#Mean wave direction of third swell partition +'140128' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 55 ; + } +#Mean wave period of third swell partition +'140129' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + } #Wave Spectral Skewness '140207' = { discipline = 10 ; @@ -2212,6 +2430,14 @@ scaledValueOfFirstFixedSurface = 26315 ; scaleFactorOfFirstFixedSurface = 2 ; } +#Total sky direct short-wave (solar) radiation at surface +'228021' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Surface direct short-wave radiation, clear sky '228022' = { discipline = 0 ; @@ -2220,6 +2446,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Cloud base height +'228023' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 2 ; + } #0 degrees C isothermal level (atm) '228024' = { discipline = 0 ; @@ -2229,7 +2462,7 @@ scaledValueOfFirstFixedSurface = 27315 ; scaleFactorOfFirstFixedSurface = 2 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours '228028' = { discipline = 0 ; parameterCategory = 2 ; @@ -2311,6 +2544,14 @@ parameterCategory = 3 ; parameterNumber = 23 ; } +#Convective available potential energy shear +'228044' = { + discipline = 0 ; + parameterCategory = 7 ; + parameterNumber = 19 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #Tropopause pressure '228045' = { discipline = 0 ; @@ -2534,6 +2775,22 @@ is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } +#Surface short-wave (solar) radiation downward clear-sky +'228129' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Surface long-wave (thermal) radiation downward clear-sky +'228130' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Convective precipitation '228143' = { discipline = 0 ; @@ -2583,6 +2840,22 @@ parameterNumber = 56 ; typeOfFirstFixedSurface = 1 ; } +#Maximum total precipitation rate since previous post-processing +'228226' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum total precipitation rate since previous post-processing +'228227' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 3 ; + } #Mixed-layer CAPE in the lowest 50 hPa '228231' = { discipline = 0 ; @@ -3305,6 +3578,22 @@ typeOfSecondFixedSurface = 255 ; typeOfStatisticalProcessing = 1 ; } +#Mean surface runoff rate +'235020' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean sub-surface runoff rate +'235021' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface photosynthetically active radiation flux, clear sky '235022' = { discipline = 0 ; @@ -3313,6 +3602,157 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean snow evaporation rate +'235023' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 148 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowmelt rate +'235024' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean magnitude of turbulent surface stress +'235025' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 58 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation fraction +'235026' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 36 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward UV radiation flux +'235027' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 12 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface photosynthetically active radiation flux +'235028' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation rate +'235029' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 54 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective precipitation rate +'235030' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 37 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowfall rate +'235031' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 53 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean boundary layer dissipation +'235032' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface sensible heat flux +'235033' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface latent heat flux +'235034' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux +'235035' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux +'235036' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux +'235037' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux +'235038' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux +'235039' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux +'235040' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean evaporation rate +'235043' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 79 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Sunshine duration fraction '235044' = { discipline = 0 ; @@ -3320,18 +3760,144 @@ parameterNumber = 51 ; typeOfFirstFixedSurface = 1 ; } -#Mean vertically integrated moisture divergence -'235054' = { +#Mean eastward gravity wave surface stress +'235045' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 16 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean northward gravity wave surface stress +'235046' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 17 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean gravity wave dissipation +'235047' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean runoff rate +'235048' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux, clear sky +'235049' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux, clear sky +'235050' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux, clear sky +'235051' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux, clear sky +'235052' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top downward short-wave radiation flux +'235053' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean vertically integrated moisture divergence +'235054' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 165 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean total precipitation rate +'235055' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective snowfall rate +'235056' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 55 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale snowfall rate +'235057' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 56 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux +'235058' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux, clear sky +'235059' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 61 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux, clear sky +'235068' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux, clear sky +'235069' = { discipline = 0 ; - parameterCategory = 1 ; - parameterNumber = 165 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } -#Mean surface direct short-wave radiation flux, clear sky -'235059' = { +#Mean potential evaporation rate +'235070' = { discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 61 ; + parameterCategory = 1 ; + parameterNumber = 143 ; typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } @@ -3565,6 +4131,14 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Total column integrated ozone +'260132' = { + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #2 metre relative humidity '260242' = { discipline = 0 ; @@ -3621,14 +4195,6 @@ parameterCategory = 4 ; parameterNumber = 14 ; } -#Time-integrated surface direct short wave radiation flux -'260264' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 13 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Evaporation in the last 6 hours '260265' = { discipline = 0 ; @@ -3787,14 +4353,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Accumulated surface downward short-wave radiation flux, clear sky -'260423' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 52 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Accumulated surface upward short-wave radiation flux, clear sky '260427' = { discipline = 0 ; @@ -3803,14 +4361,6 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } -#Accumulated surface downward long-wave radiation flux, clear sky -'260428' = { - discipline = 0 ; - parameterCategory = 5 ; - parameterNumber = 8 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Percolation '260430' = { discipline = 1 ; @@ -4425,7 +4975,7 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } -#Sea ice temperature +#Vertically averaged sea ice temperature '262010' = { discipline = 10 ; parameterCategory = 2 ; @@ -4581,6 +5131,12 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } +#Sea ice temperature +'262024' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + } #Sea surface practical salinity '262100' = { discipline = 10 ; @@ -5488,7 +6044,7 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } -#Time-mean sea ice temperature +#Time-mean vertically averaged sea ice temperature '263010' = { discipline = 10 ; parameterCategory = 2 ; @@ -5657,6 +6213,13 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } +#Time-mean sea ice temperature +'263024' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean sea surface practical salinity '263100' = { discipline = 10 ; @@ -6914,12 +7477,78 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Period corresponding to maximum individual wave height +'140217' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + } +#Maximum individual wave height +'140218' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + } +#Model bathymetry +'140219' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + } +#Mean wave period based on first moment +'140220' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + } #Mean zero-crossing wave period '140221' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 28 ; } +#Wave spectral directional width +'140222' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 31 ; + } +#Mean wave period based on first moment for wind waves +'140223' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + } +#Mean wave period based on second moment for wind waves +'140224' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 29 ; + } +#Wave spectral directional width for wind waves +'140225' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 32 ; + } +#Mean wave period based on first moment for swell +'140226' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 27 ; + } +#Mean wave period based on second moment for swell +'140227' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 30 ; + } +#Wave spectral directional width for swell +'140228' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 33 ; + } #Significant height of combined wind waves and swell '140229' = { discipline = 10 ; @@ -6944,6 +7573,12 @@ parameterCategory = 0 ; parameterNumber = 15 ; } +#Coefficient of drag with waves +'140233' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 16 ; + } #Significant height of wind waves '140234' = { discipline = 10 ; @@ -6962,18 +7597,84 @@ parameterCategory = 0 ; parameterNumber = 6 ; } +#Significant height of total swell +'140237' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 8 ; + } #Mean direction of total swell '140238' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 74 ; } +#Mean period of total swell +'140239' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 9 ; + } +#Mean square slope of waves +'140244' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + } +#10 metre wind speed +'140245' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 40 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#Altimeter wave height +'140246' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 37 ; + } +#Altimeter corrected wave height +'140247' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 38 ; + } +#Altimeter range relative correction +'140248' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 39 ; + } +#10 metre wind direction +'140249' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #2D wave spectra (single) '140251' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 86 ; } +#Wave spectral kurtosis +'140252' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 43 ; + } +#Benjamin-Feir index +'140253' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 44 ; + } #Eastward sea water velocity '151131' = { discipline = 10 ; @@ -7079,6 +7780,106 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Time-integrated temperature tendency due to short-wave radiation +'162100' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation +'162101' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to short wave radiation, clear sky +'162102' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'162103' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught mass flux +'162104' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 27 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught mass flux +'162105' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 28 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught detrainment rate +'162106' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 29 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught detrainment rate +'162107' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 30 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated total precipitation flux +'162108' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated turbulent diffusion coefficient for heat +'162109' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to parametrisations +'162110' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated specific humidity tendency due to parametrisations +'162111' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 108 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated eastward wind tendency due to parametrisations +'162112' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 39 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated northward wind tendency due to parametrisations +'162113' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 40 ; + typeOfStatisticalProcessing = 1 ; } #Surface runoff '174008' = { @@ -7278,6 +8079,18 @@ scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; } +#U-component surface stokes drift +'140215' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 21 ; + } +#V-component surface stokes drift +'140216' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + } #100 metre U wind component '228246' = { discipline = 0 ; @@ -8028,12 +8841,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Standard deviation of sub-grid scale orography -'260085' = { - discipline = 0 ; - parameterCategory = 3 ; - parameterNumber = 20 ; - } #Net short-wave radiation flux (top of atmosphere) '260086' = { discipline = 0 ; @@ -8160,12 +8967,6 @@ parameterCategory = 6 ; parameterNumber = 10 ; } -#Cloud base -'260107' = { - discipline = 0 ; - parameterCategory = 6 ; - parameterNumber = 11 ; - } #Cloud top '260108' = { discipline = 0 ; @@ -8304,12 +9105,6 @@ parameterCategory = 14 ; parameterNumber = 0 ; } -#Total column integrated ozone -'260132' = { - discipline = 0 ; - parameterCategory = 14 ; - parameterNumber = 2 ; - } #Base spectrum width '260133' = { discipline = 0 ; @@ -9012,12 +9807,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Montgomery stream Function -'3037' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 6 ; - } #Sigma coordinate vertical velocity '3038' = { discipline = 0 ; @@ -9156,18 +9945,6 @@ parameterCategory = 0 ; parameterNumber = 7 ; } -#Significant height of swell waves -'3105' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 8 ; - } -#Mean period of swell waves -'3106' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 9 ; - } #Secondary wave direction '3109' = { discipline = 10 ; diff --git a/definitions/grib2/section.3.def b/definitions/grib2/section.3.def index b97ad2a50..d8ce26e6f 100644 --- a/definitions/grib2/section.3.def +++ b/definitions/grib2/section.3.def @@ -110,6 +110,7 @@ concept gridType { "lambert_bf" = { gridDefinitionTemplateNumber=63; PLPresent=0; } "mercator_bf" = { gridDefinitionTemplateNumber=61; PLPresent=0; } "polar_stereographic_bf" = { gridDefinitionTemplateNumber=62; PLPresent=0; } + "healpix" = { gridDefinitionTemplateNumber=150; PLPresent=0; } "ncep_32769" = { centre=7; gridDefinitionTemplateNumber=32769; PLPresent=0; } @@ -127,3 +128,5 @@ alias md5GridSection = md5Section3; meta projSourceString proj_string(gridType, 0): hidden; meta projTargetString proj_string(gridType, 1): hidden; alias projString = projTargetString : hidden; + +constant isSpectral = !isGridded : constraint; diff --git a/definitions/grib2/section.4.def b/definitions/grib2/section.4.def index b62a15329..1f646f221 100644 --- a/definitions/grib2/section.4.def +++ b/definitions/grib2/section.4.def @@ -33,9 +33,11 @@ concept datasetForLocal(unknown) { "hydro" = {marsClass="ul";} # ULYSSES "fire" = {marsClass="gw";} # Global Wildfire awareness system "uerra" = {productionStatusOfProcessedData=8;} # UERRA - "uerra" = {productionStatusOfProcessedData=9;} # UERRA + "uerra" = {productionStatusOfProcessedData=9;} "uerra" = {productionStatusOfProcessedData=10;} # CARRA/CERRA - "uerra" = {productionStatusOfProcessedData=11;} # CARRA/CERRA + "uerra" = {productionStatusOfProcessedData=11;} + "destine" = {productionStatusOfProcessedData=12;} # Destination Earth + "destine" = {productionStatusOfProcessedData=13;} "unknown" = { dummy=1; } } diff --git a/definitions/grib2/section.7.def b/definitions/grib2/section.7.def index 5e4280475..f6d947674 100644 --- a/definitions/grib2/section.7.def +++ b/definitions/grib2/section.7.def @@ -21,6 +21,7 @@ meta decimalPrecision decimal_precision(bitsPerValue,decimalScaleFactor,changing alias setDecimalPrecision=changeDecimalPrecision; meta setBitsPerValue bits_per_value(values,bitsPerValue) : edition_specific; +meta setPackingType packing_type(values, packingType) : edition_specific; meta getNumberOfValues size(values) : edition_specific,dump ; diff --git a/definitions/grib2/sections.def b/definitions/grib2/sections.def index 0da884a39..ed998ca61 100644 --- a/definitions/grib2/sections.def +++ b/definitions/grib2/sections.def @@ -1,5 +1,7 @@ # (C) Copyright 2005- ECMWF. +meta headersOnly headers_only(); + lookup[1] sectionNumber(4) ; if(sectionNumber == 1 or new() ){ @@ -42,23 +44,25 @@ meta md5Headers md5(startOfHeaders,lengthOfHeaders); lookup[1] sectionNumber(4) ; -if (sectionNumber == 5 or new() ) { - position sectionPosition; - template section_5 "grib2/section.5.def"; -} +if (!headersOnly) { + if (sectionNumber == 5 or new() ) { + position sectionPosition; + template section_5 "grib2/section.5.def"; + } -lookup[1] sectionNumber(4) ; + lookup[1] sectionNumber(4) ; -if (sectionNumber == 6 or new() ) { - position sectionPosition; - template section_6 "grib2/section.6.def"; -} + if (sectionNumber == 6 or new() ) { + position sectionPosition; + template section_6 "grib2/section.6.def"; + } -lookup[1] sectionNumber(4) ; + lookup[1] sectionNumber(4) ; -if (sectionNumber == 7 or new() ) { - position sectionPosition; - template section_7 "grib2/section.7.def"; -} + if (sectionNumber == 7 or new() ) { + position sectionPosition; + template section_7 "grib2/section.7.def"; + } -#template metas "grib2/meta.def"; + #template metas "grib2/meta.def"; +} diff --git a/definitions/grib2/shortName.def b/definitions/grib2/shortName.def index a6cf5c0b3..1390fb70e 100644 --- a/definitions/grib2/shortName.def +++ b/definitions/grib2/shortName.def @@ -206,6 +206,16 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Maximum 10 metre wind gust since previous post-processing +'10fg' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 22 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } #Large-scale precipitation fraction 'lspf' = { discipline = 0 ; @@ -214,6 +224,12 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Montgomery potential +'mont' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 6 ; + } #Downward UV radiation at the surface 'uvb' = { discipline = 0 ; @@ -310,6 +326,30 @@ parameterCategory = 3 ; parameterNumber = 18 ; } +#Standard deviation of sub-gridscale orography +'sdor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Anisotropy of sub-gridscale orography +'isor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 24 ; + } +#Angle of sub-gridscale orography +'anor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 21 ; + } +#Slope of sub-gridscale orography +'slor' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 22 ; + } #Surface short-wave (solar) radiation downwards 'ssrd' = { discipline = 0 ; @@ -381,6 +421,26 @@ parameterNumber = 23 ; typeOfStatisticalProcessing = 1 ; } +#Maximum temperature at 2 metres since previous post-processing +'mx2t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum temperature at 2 metres since previous post-processing +'mn2t' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 3 ; + } #Ozone mass mixing ratio 'o3' = { discipline = 0 ; @@ -432,6 +492,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 1 ; } #Instantaneous eastward turbulent surface stress @@ -682,6 +744,42 @@ parameterCategory = 0 ; parameterNumber = 92 ; } +#Wave directional width of first swell partition +'wdw1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 56 ; + } +#Wave frequency width of first swell partition +'wfw1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 59 ; + } +#Wave directional width of second swell partition +'wdw2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 57 ; + } +#Wave frequency width of second swell partition +'wfw2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 60 ; + } +#Wave directional width of third swell partition +'wdw3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 58 ; + } +#Wave frequency width of third swell partition +'wfw3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 61 ; + } #Wave energy flux magnitude 'wefxm' = { discipline = 10 ; @@ -694,6 +792,126 @@ parameterCategory = 0 ; parameterNumber = 79 ; } +#Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds +'h1012' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 10 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 12 ; + } +#Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds +'h1214' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 12 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 14 ; + } +#Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds +'h1417' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 14 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 17 ; + } +#Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds +'h1721' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 17 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 21 ; + } +#Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds +'h2125' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 21 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 25 ; + } +#Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds +'h2530' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 25 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 30 ; + } +#Significant wave height of first swell partition +'swh1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 47 ; + } +#Mean wave direction of first swell partition +'mwd1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 53 ; + } +#Mean wave period of first swell partition +'mwp1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 50 ; + } +#Significant wave height of second swell partition +'swh2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 48 ; + } +#Mean wave direction of second swell partition +'mwd2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 54 ; + } +#Mean wave period of second swell partition +'mwp2' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + } +#Significant wave height of third swell partition +'swh3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 49 ; + } +#Mean wave direction of third swell partition +'mwd3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 55 ; + } +#Mean wave period of third swell partition +'mwp3' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + } #Wave Spectral Skewness 'wss' = { discipline = 10 ; @@ -2212,6 +2430,14 @@ scaledValueOfFirstFixedSurface = 26315 ; scaleFactorOfFirstFixedSurface = 2 ; } +#Total sky direct short-wave (solar) radiation at surface +'fdir' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Surface direct short-wave radiation, clear sky 'cdir' = { discipline = 0 ; @@ -2220,6 +2446,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Cloud base height +'cbh' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 2 ; + } #0 degrees C isothermal level (atm) 'deg0l' = { discipline = 0 ; @@ -2229,7 +2462,7 @@ scaledValueOfFirstFixedSurface = 27315 ; scaleFactorOfFirstFixedSurface = 2 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours '10fg3' = { discipline = 0 ; parameterCategory = 2 ; @@ -2311,6 +2544,14 @@ parameterCategory = 3 ; parameterNumber = 23 ; } +#Convective available potential energy shear +'capes' = { + discipline = 0 ; + parameterCategory = 7 ; + parameterNumber = 19 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #Tropopause pressure 'trpp' = { discipline = 0 ; @@ -2534,6 +2775,22 @@ is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } +#Surface short-wave (solar) radiation downward clear-sky +'ssrdc' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Surface long-wave (thermal) radiation downward clear-sky +'strdc' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Convective precipitation 'cp' = { discipline = 0 ; @@ -2583,6 +2840,22 @@ parameterNumber = 56 ; typeOfFirstFixedSurface = 1 ; } +#Maximum total precipitation rate since previous post-processing +'mxtpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum total precipitation rate since previous post-processing +'mntpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 3 ; + } #Mixed-layer CAPE in the lowest 50 hPa 'mlcape50' = { discipline = 0 ; @@ -3305,6 +3578,22 @@ typeOfSecondFixedSurface = 255 ; typeOfStatisticalProcessing = 1 ; } +#Mean surface runoff rate +'msror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean sub-surface runoff rate +'mssror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface photosynthetically active radiation flux, clear sky 'msparfcs' = { discipline = 0 ; @@ -3313,6 +3602,157 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean snow evaporation rate +'mser' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 148 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowmelt rate +'msmr' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean magnitude of turbulent surface stress +'mmtss' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 58 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation fraction +'mlspf' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 36 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward UV radiation flux +'msdwuvrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 12 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface photosynthetically active radiation flux +'msparf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation rate +'mlspr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 54 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective precipitation rate +'mcpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 37 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowfall rate +'msr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 53 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean boundary layer dissipation +'mbld' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface sensible heat flux +'msshf' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface latent heat flux +'mslhf' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux +'msdwswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux +'msdwlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux +'msnswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux +'msnlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux +'mtnswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux +'mtnlwrf' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean evaporation rate +'mer' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 79 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Sunshine duration fraction 'sdf' = { discipline = 0 ; @@ -3320,18 +3760,144 @@ parameterNumber = 51 ; typeOfFirstFixedSurface = 1 ; } -#Mean vertically integrated moisture divergence -'mvimd' = { +#Mean eastward gravity wave surface stress +'megwss' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 16 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean northward gravity wave surface stress +'mngwss' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 17 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean gravity wave dissipation +'mgwd' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean runoff rate +'mror' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux, clear sky +'mtnswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux, clear sky +'mtnlwrfcs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux, clear sky +'msnswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux, clear sky +'msnlwrfcs' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top downward short-wave radiation flux +'mtdwswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean vertically integrated moisture divergence +'mvimd' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 165 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean total precipitation rate +'mtpr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective snowfall rate +'mcsr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 55 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale snowfall rate +'mlssr' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 56 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux +'msdrswrf' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux, clear sky +'msdrswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 61 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux, clear sky +'msdwswrfcs' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux, clear sky +'msdwlwrfcs' = { discipline = 0 ; - parameterCategory = 1 ; - parameterNumber = 165 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } -#Mean surface direct short-wave radiation flux, clear sky -'msdrswrfcs' = { +#Mean potential evaporation rate +'mper' = { discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 61 ; + parameterCategory = 1 ; + parameterNumber = 143 ; typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } @@ -3565,6 +4131,14 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Total column integrated ozone +'tcioz' = { + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #2 metre relative humidity '2r' = { discipline = 0 ; @@ -3621,14 +4195,6 @@ parameterCategory = 4 ; parameterNumber = 14 ; } -#Time-integrated surface direct short wave radiation flux -'tidirswrf' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 13 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Evaporation in the last 6 hours 'eva06' = { discipline = 0 ; @@ -3787,14 +4353,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Accumulated surface downward short-wave radiation flux, clear sky -'adswrf_cs' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 52 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Accumulated surface upward short-wave radiation flux, clear sky 'auswrf_cs' = { discipline = 0 ; @@ -3803,14 +4361,6 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } -#Accumulated surface downward long-wave radiation flux, clear sky -'adlwrf_cs' = { - discipline = 0 ; - parameterCategory = 5 ; - parameterNumber = 8 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Percolation 'perc' = { discipline = 1 ; @@ -4425,8 +4975,8 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } -#Sea ice temperature -'sitemp' = { +#Vertically averaged sea ice temperature +'vasit' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -4581,6 +5131,12 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } +#Sea ice temperature +'sit' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + } #Sea surface practical salinity 'sos' = { discipline = 10 ; @@ -5488,8 +6044,8 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } -#Time-mean sea ice temperature -'avg_sitemp' = { +#Time-mean vertically averaged sea ice temperature +'avg_vasit' = { discipline = 10 ; parameterCategory = 2 ; parameterNumber = 8 ; @@ -5657,6 +6213,13 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } +#Time-mean sea ice temperature +'avg_sit' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean sea surface practical salinity 'avg_sos' = { discipline = 10 ; @@ -6914,12 +7477,78 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Period corresponding to maximum individual wave height +'tmax' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + } +#Maximum individual wave height +'hmax' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + } +#Model bathymetry +'wmb' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + } +#Mean wave period based on first moment +'mp1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + } #Mean zero-crossing wave period 'mp2' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 28 ; } +#Wave spectral directional width +'wdw' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 31 ; + } +#Mean wave period based on first moment for wind waves +'p1ww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + } +#Mean wave period based on second moment for wind waves +'p2ww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 29 ; + } +#Wave spectral directional width for wind waves +'dwww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 32 ; + } +#Mean wave period based on first moment for swell +'p1ps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 27 ; + } +#Mean wave period based on second moment for swell +'p2ps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 30 ; + } +#Wave spectral directional width for swell +'dwps' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 33 ; + } #Significant height of combined wind waves and swell 'swh' = { discipline = 10 ; @@ -6944,6 +7573,12 @@ parameterCategory = 0 ; parameterNumber = 15 ; } +#Coefficient of drag with waves +'cdww' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 16 ; + } #Significant height of wind waves 'shww' = { discipline = 10 ; @@ -6962,18 +7597,84 @@ parameterCategory = 0 ; parameterNumber = 6 ; } +#Significant height of total swell +'shts' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 8 ; + } #Mean direction of total swell 'mdts' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 74 ; } +#Mean period of total swell +'mpts' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 9 ; + } +#Mean square slope of waves +'msqs' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + } +#10 metre wind speed +'wind' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 40 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#Altimeter wave height +'awh' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 37 ; + } +#Altimeter corrected wave height +'acwh' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 38 ; + } +#Altimeter range relative correction +'arrc' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 39 ; + } +#10 metre wind direction +'dwi' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #2D wave spectra (single) '2dfd' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 86 ; } +#Wave spectral kurtosis +'wsk' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 43 ; + } +#Benjamin-Feir index +'bfi' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 44 ; + } #Eastward sea water velocity 'ocu' = { discipline = 10 ; @@ -7079,6 +7780,106 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Time-integrated temperature tendency due to short-wave radiation +'srta' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation +'trta' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to short wave radiation, clear sky +'srtca' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'trtca' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught mass flux +'umfa' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 27 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught mass flux +'dmfa' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 28 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught detrainment rate +'udra' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 29 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught detrainment rate +'ddra' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 30 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated total precipitation flux +'tpfa' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated turbulent diffusion coefficient for heat +'tdcha' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to parametrisations +'ttpha' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated specific humidity tendency due to parametrisations +'qtpha' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 108 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated eastward wind tendency due to parametrisations +'utpha' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 39 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated northward wind tendency due to parametrisations +'vtpha' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 40 ; + typeOfStatisticalProcessing = 1 ; } #Surface runoff 'sro' = { @@ -7278,6 +8079,18 @@ scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; } +#U-component surface stokes drift +'ust' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 21 ; + } +#V-component surface stokes drift +'vst' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + } #100 metre U wind component '100u' = { discipline = 0 ; @@ -8028,12 +8841,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Standard deviation of sub-grid scale orography -'sdsgso' = { - discipline = 0 ; - parameterCategory = 3 ; - parameterNumber = 20 ; - } #Net short-wave radiation flux (top of atmosphere) 'nswrt' = { discipline = 0 ; @@ -8160,12 +8967,6 @@ parameterCategory = 6 ; parameterNumber = 10 ; } -#Cloud base -'cdcb' = { - discipline = 0 ; - parameterCategory = 6 ; - parameterNumber = 11 ; - } #Cloud top 'cdct' = { discipline = 0 ; @@ -8304,12 +9105,6 @@ parameterCategory = 14 ; parameterNumber = 0 ; } -#Total column integrated ozone -'tcioz' = { - discipline = 0 ; - parameterCategory = 14 ; - parameterNumber = 2 ; - } #Base spectrum width 'bswid' = { discipline = 0 ; @@ -9012,12 +9807,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Montgomery stream Function -'mntsf' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 6 ; - } #Sigma coordinate vertical velocity 'sgcvv' = { discipline = 0 ; @@ -9156,18 +9945,6 @@ parameterCategory = 0 ; parameterNumber = 7 ; } -#Significant height of swell waves -'swell' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 8 ; - } -#Mean period of swell waves -'swper' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 9 ; - } #Secondary wave direction 'dirsw' = { discipline = 10 ; diff --git a/definitions/grib2/tables/0/5.0.table b/definitions/grib2/tables/0/5.0.table index cb7fd1642..ecfd2bf47 100644 --- a/definitions/grib2/tables/0/5.0.table +++ b/definitions/grib2/tables/0/5.0.table @@ -3,7 +3,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/0/5.40000.table b/definitions/grib2/tables/0/5.40000.table deleted file mode 100644 index 1a43b2d6c..000000000 --- a/definitions/grib2/tables/0/5.40000.table +++ /dev/null @@ -1,3 +0,0 @@ -0 0 Lossless -1 1 Lossy -255 255 Missing diff --git a/definitions/grib2/tables/1/5.0.table b/definitions/grib2/tables/1/5.0.table index cb7fd1642..ecfd2bf47 100644 --- a/definitions/grib2/tables/1/5.0.table +++ b/definitions/grib2/tables/1/5.0.table @@ -3,7 +3,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/1/5.40000.table b/definitions/grib2/tables/1/5.40000.table deleted file mode 100644 index 1a43b2d6c..000000000 --- a/definitions/grib2/tables/1/5.40000.table +++ /dev/null @@ -1,3 +0,0 @@ -0 0 Lossless -1 1 Lossy -255 255 Missing diff --git a/definitions/grib2/tables/10/3.1.table b/definitions/grib2/tables/10/3.1.table index a246b9790..dd85c0041 100644 --- a/definitions/grib2/tables/10/3.1.table +++ b/definitions/grib2/tables/10/3.1.table @@ -3,8 +3,8 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator @@ -32,9 +32,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/10/5.0.table b/definitions/grib2/tables/10/5.0.table index 44482726c..f27acb859 100644 --- a/definitions/grib2/tables/10/5.0.table +++ b/definitions/grib2/tables/10/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) #42-49 Reserved diff --git a/definitions/grib2/tables/10/5.40000.table b/definitions/grib2/tables/10/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/10/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/11/3.1.table b/definitions/grib2/tables/11/3.1.table index a246b9790..dd85c0041 100644 --- a/definitions/grib2/tables/11/3.1.table +++ b/definitions/grib2/tables/11/3.1.table @@ -3,8 +3,8 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator @@ -32,9 +32,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/11/5.0.table b/definitions/grib2/tables/11/5.0.table index 44482726c..f27acb859 100644 --- a/definitions/grib2/tables/11/5.0.table +++ b/definitions/grib2/tables/11/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) #42-49 Reserved diff --git a/definitions/grib2/tables/11/5.40000.table b/definitions/grib2/tables/11/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/11/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/12/3.1.table b/definitions/grib2/tables/12/3.1.table index a246b9790..dd85c0041 100644 --- a/definitions/grib2/tables/12/3.1.table +++ b/definitions/grib2/tables/12/3.1.table @@ -3,8 +3,8 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator @@ -32,9 +32,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/12/5.0.table b/definitions/grib2/tables/12/5.0.table index 8ce7bb24f..2795336df 100644 --- a/definitions/grib2/tables/12/5.0.table +++ b/definitions/grib2/tables/12/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/12/5.40000.table b/definitions/grib2/tables/12/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/12/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/13/3.1.table b/definitions/grib2/tables/13/3.1.table index a246b9790..dd85c0041 100644 --- a/definitions/grib2/tables/13/3.1.table +++ b/definitions/grib2/tables/13/3.1.table @@ -3,8 +3,8 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator @@ -32,9 +32,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/13/5.0.table b/definitions/grib2/tables/13/5.0.table index 8ce7bb24f..2795336df 100644 --- a/definitions/grib2/tables/13/5.0.table +++ b/definitions/grib2/tables/13/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/13/5.40000.table b/definitions/grib2/tables/13/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/13/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/14/3.1.table b/definitions/grib2/tables/14/3.1.table index a246b9790..dd85c0041 100644 --- a/definitions/grib2/tables/14/3.1.table +++ b/definitions/grib2/tables/14/3.1.table @@ -3,8 +3,8 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator @@ -32,9 +32,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/14/5.0.table b/definitions/grib2/tables/14/5.0.table index cd61837a5..5ec77ed0f 100644 --- a/definitions/grib2/tables/14/5.0.table +++ b/definitions/grib2/tables/14/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/14/5.40000.table b/definitions/grib2/tables/14/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/14/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/15/3.1.table b/definitions/grib2/tables/15/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/15/3.1.table +++ b/definitions/grib2/tables/15/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/15/5.0.table b/definitions/grib2/tables/15/5.0.table index cd61837a5..5ec77ed0f 100644 --- a/definitions/grib2/tables/15/5.0.table +++ b/definitions/grib2/tables/15/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/15/5.40000.table b/definitions/grib2/tables/15/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/15/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/16/3.1.table b/definitions/grib2/tables/16/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/16/3.1.table +++ b/definitions/grib2/tables/16/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/16/5.0.table b/definitions/grib2/tables/16/5.0.table index cd61837a5..5ec77ed0f 100644 --- a/definitions/grib2/tables/16/5.0.table +++ b/definitions/grib2/tables/16/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/16/5.40000.table b/definitions/grib2/tables/16/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/16/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/17/3.1.table b/definitions/grib2/tables/17/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/17/3.1.table +++ b/definitions/grib2/tables/17/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/17/5.0.table b/definitions/grib2/tables/17/5.0.table index cd61837a5..5ec77ed0f 100644 --- a/definitions/grib2/tables/17/5.0.table +++ b/definitions/grib2/tables/17/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) # 42-49 Reserved diff --git a/definitions/grib2/tables/17/5.40000.table b/definitions/grib2/tables/17/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/17/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/18/3.1.table b/definitions/grib2/tables/18/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/18/3.1.table +++ b/definitions/grib2/tables/18/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/18/5.0.table b/definitions/grib2/tables/18/5.0.table index ad46a5377..33597681b 100644 --- a/definitions/grib2/tables/18/5.0.table +++ b/definitions/grib2/tables/18/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) 42 42 Grid point data - CCSDS recommended lossless compression diff --git a/definitions/grib2/tables/18/5.40000.table b/definitions/grib2/tables/18/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/18/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/19/3.1.table b/definitions/grib2/tables/19/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/19/3.1.table +++ b/definitions/grib2/tables/19/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/19/5.0.table b/definitions/grib2/tables/19/5.0.table index ad46a5377..33597681b 100644 --- a/definitions/grib2/tables/19/5.0.table +++ b/definitions/grib2/tables/19/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) 42 42 Grid point data - CCSDS recommended lossless compression diff --git a/definitions/grib2/tables/19/5.40000.table b/definitions/grib2/tables/19/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/19/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/2/1.1.table b/definitions/grib2/tables/2/1.1.table index 6c5a60361..6ccac21de 100644 --- a/definitions/grib2/tables/2/1.1.table +++ b/definitions/grib2/tables/2/1.1.table @@ -1,5 +1,5 @@ # Code Table 1.1 GRIB Local Tables Version Number -0 0 Local tables not used +0 0 Local tables not used # . Only table entries and templates from the current Master table are valid. # 1-254 Number of local tables version used 255 255 Missing diff --git a/definitions/grib2/tables/2/4.2.1.1.table b/definitions/grib2/tables/2/4.2.1.1.table index b7342ef2f..2d3ecabf6 100644 --- a/definitions/grib2/tables/2/4.2.1.1.table +++ b/definitions/grib2/tables/2/4.2.1.1.table @@ -1,4 +1,4 @@ -# Product Discipline 1: Hydrologic products, Parameter Category 1: Hydrology probabilities +# Product Discipline 1: Hydrologic products, Parameter Category 1: Hydrology probabilities 0 0 Conditional percent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Percent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) diff --git a/definitions/grib2/tables/2/4.5.table b/definitions/grib2/tables/2/4.5.table index d2a6d7876..43d838be5 100644 --- a/definitions/grib2/tables/2/4.5.table +++ b/definitions/grib2/tables/2/4.5.table @@ -1,14 +1,14 @@ #Code table 4.5: Fixed surface types and units 0 0 Reserved -1 sfc Ground or water surface -2 2 Cloud base level -3 3 Level of cloud tops -4 4 Level of 0o C isotherm +1 sfc Ground or water surface +2 2 Cloud base level +3 3 Level of cloud tops +4 4 Level of 0o C isotherm 5 5 Level of adiabatic condensation lifted from the surface -6 6 Maximum wind level -7 sfc Tropopause -8 sfc Nominal top of the atmosphere -9 9 Sea bottom +6 6 Maximum wind level +7 sfc Tropopause +8 sfc Nominal top of the atmosphere +9 9 Sea bottom # 10-19 Reserved 20 20 Isothermal level (K) #21-99 Reserved diff --git a/definitions/grib2/tables/2/5.0.table b/definitions/grib2/tables/2/5.0.table index 0cf3752cb..b9b301151 100644 --- a/definitions/grib2/tables/2/5.0.table +++ b/definitions/grib2/tables/2/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/2/5.40000.table b/definitions/grib2/tables/2/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/2/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/20/0.0.table b/definitions/grib2/tables/20/0.0.table index b24c50564..2c5afceb4 100644 --- a/definitions/grib2/tables/20/0.0.table +++ b/definitions/grib2/tables/20/0.0.table @@ -1,10 +1,10 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Space products -# 4-9 Reserved -10 10 Oceanographic products -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Space products +# 4-9 Reserved +10 10 Oceanographic products +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/1.0.table b/definitions/grib2/tables/20/1.0.table index 9d3669bd8..60530c280 100644 --- a/definitions/grib2/tables/20/1.0.table +++ b/definitions/grib2/tables/20/1.0.table @@ -1,25 +1,25 @@ # Code table 1.0 - GRIB master tables version number -0 0 Experimental -1 1 Version implemented on 7 November 2001 -2 2 Version implemented on 4 November 2003 -3 3 Version implemented on 2 November 2005 -4 4 Version implemented on 7 November 2007 -5 5 Version implemented on 4 November 2009 -6 6 Version implemented on 15 September 2010 -7 7 Version implemented on 4 May 2011 -8 8 Version implemented on 2 November 2011 -9 9 Version implemented on 2 May 2012 -10 10 Version implemented on 7 November 2012 -11 11 Version implemented on 8 May 2013 -12 12 Version implemented on 14 November 2013 -13 13 Version implemented on 7 May 2014 -14 14 Version implemented on 5 November 2014 -15 15 Version implemented on 6 May 2015 -16 16 Version implemented on 11 November 2015 -17 17 Version implemented on 4 May 2016 -18 18 Version implemented on 2 November 2016 +0 0 Experimental +1 1 Version implemented on 7 November 2001 +2 2 Version implemented on 4 November 2003 +3 3 Version implemented on 2 November 2005 +4 4 Version implemented on 7 November 2007 +5 5 Version implemented on 4 November 2009 +6 6 Version implemented on 15 September 2010 +7 7 Version implemented on 4 May 2011 +8 8 Version implemented on 2 November 2011 +9 9 Version implemented on 2 May 2012 +10 10 Version implemented on 7 November 2012 +11 11 Version implemented on 8 May 2013 +12 12 Version implemented on 14 November 2013 +13 13 Version implemented on 7 May 2014 +14 14 Version implemented on 5 November 2014 +15 15 Version implemented on 6 May 2015 +16 16 Version implemented on 11 November 2015 +17 17 Version implemented on 4 May 2016 +18 18 Version implemented on 2 November 2016 19 19 Version implemented on 3 May 2017 20 20 Version implemented on 8 November 2017 -21 21 Pre-operational to be implemented by next amendment -# 22-254 Future versions +21 21 Pre-operational to be implemented by next amendment +# 22-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/20/1.1.table b/definitions/grib2/tables/20/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/20/1.1.table +++ b/definitions/grib2/tables/20/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/20/1.2.table b/definitions/grib2/tables/20/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/20/1.2.table +++ b/definitions/grib2/tables/20/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/1.3.table b/definitions/grib2/tables/20/1.3.table index 0c95269d5..c1a9a7b9d 100644 --- a/definitions/grib2/tables/20/1.3.table +++ b/definitions/grib2/tables/20/1.3.table @@ -1,14 +1,14 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products +6 6 S2S operational products +7 7 S2S test products 8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/1.4.table b/definitions/grib2/tables/20/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/20/1.4.table +++ b/definitions/grib2/tables/20/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/20/1.5.table b/definitions/grib2/tables/20/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/20/1.5.table +++ b/definitions/grib2/tables/20/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/20/1.6.table b/definitions/grib2/tables/20/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/20/1.6.table +++ b/definitions/grib2/tables/20/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.0.table b/definitions/grib2/tables/20/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/20/3.0.table +++ b/definitions/grib2/tables/20/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/20/3.1.table b/definitions/grib2/tables/20/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/20/3.1.table +++ b/definitions/grib2/tables/20/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/20/3.10.table b/definitions/grib2/tables/20/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/20/3.10.table +++ b/definitions/grib2/tables/20/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/20/3.11.table b/definitions/grib2/tables/20/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/20/3.11.table +++ b/definitions/grib2/tables/20/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/20/3.15.table b/definitions/grib2/tables/20/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/20/3.15.table +++ b/definitions/grib2/tables/20/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.2.table b/definitions/grib2/tables/20/3.2.table index 1b5c8241d..56ffdc08e 100644 --- a/definitions/grib2/tables/20/3.2.table +++ b/definitions/grib2/tables/20/3.2.table @@ -1,14 +1,14 @@ # Code table 3.2 - Shape of the Earth -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.20.table b/definitions/grib2/tables/20/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/20/3.20.table +++ b/definitions/grib2/tables/20/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.21.table b/definitions/grib2/tables/20/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/20/3.21.table +++ b/definitions/grib2/tables/20/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.3.table b/definitions/grib2/tables/20/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/20/3.3.table +++ b/definitions/grib2/tables/20/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/20/3.4.table b/definitions/grib2/tables/20/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/20/3.4.table +++ b/definitions/grib2/tables/20/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/20/3.5.table b/definitions/grib2/tables/20/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/20/3.5.table +++ b/definitions/grib2/tables/20/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/20/3.7.table b/definitions/grib2/tables/20/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/20/3.7.table +++ b/definitions/grib2/tables/20/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/20/3.8.table b/definitions/grib2/tables/20/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/20/3.8.table +++ b/definitions/grib2/tables/20/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/3.9.table b/definitions/grib2/tables/20/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/20/3.9.table +++ b/definitions/grib2/tables/20/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/20/4.0.table b/definitions/grib2/tables/20/4.0.table index b45e73380..a37b59d09 100644 --- a/definitions/grib2/tables/20/4.0.table +++ b/definitions/grib2/tables/20/4.0.table @@ -1,75 +1,75 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -# 35-39 Reserved +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +# 35-39 Reserved 311 311 Satellite product auxiliary information -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 62-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 62-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved 70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 92-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 92-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing 50001 50001 Forecasting Systems with Variable Resolution in a point in time 50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval -# 1102-32767 Reserved -# 32768-65534 Reserved for local use +# 1102-32767 Reserved +# 32768-65534 Reserved for local use 40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data 40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/20/4.1.0.table b/definitions/grib2/tables/20/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/20/4.1.0.table +++ b/definitions/grib2/tables/20/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.1.1.table b/definitions/grib2/tables/20/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/20/4.1.1.table +++ b/definitions/grib2/tables/20/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.1.10.table b/definitions/grib2/tables/20/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/20/4.1.10.table +++ b/definitions/grib2/tables/20/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.1.2.table b/definitions/grib2/tables/20/4.1.2.table index 5b488fe9e..e74126645 100644 --- a/definitions/grib2/tables/20/4.1.2.table +++ b/definitions/grib2/tables/20/4.1.2.table @@ -1,9 +1,9 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.1.3.table b/definitions/grib2/tables/20/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/20/4.1.3.table +++ b/definitions/grib2/tables/20/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.10.table b/definitions/grib2/tables/20/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/20/4.10.table +++ b/definitions/grib2/tables/20/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/20/4.11.table b/definitions/grib2/tables/20/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/20/4.11.table +++ b/definitions/grib2/tables/20/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.12.table b/definitions/grib2/tables/20/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/20/4.12.table +++ b/definitions/grib2/tables/20/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.13.table b/definitions/grib2/tables/20/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/20/4.13.table +++ b/definitions/grib2/tables/20/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.14.table b/definitions/grib2/tables/20/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/20/4.14.table +++ b/definitions/grib2/tables/20/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.15.table b/definitions/grib2/tables/20/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/20/4.15.table +++ b/definitions/grib2/tables/20/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.0.table b/definitions/grib2/tables/20/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/20/4.2.0.0.table +++ b/definitions/grib2/tables/20/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.1.table b/definitions/grib2/tables/20/4.2.0.1.table index 541deaca9..b4c1e8ba3 100644 --- a/definitions/grib2/tables/20/4.2.0.1.table +++ b/definitions/grib2/tables/20/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -122,5 +122,5 @@ 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) # 122-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.13.table b/definitions/grib2/tables/20/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/20/4.2.0.13.table +++ b/definitions/grib2/tables/20/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.14.table b/definitions/grib2/tables/20/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/20/4.2.0.14.table +++ b/definitions/grib2/tables/20/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.15.table b/definitions/grib2/tables/20/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/20/4.2.0.15.table +++ b/definitions/grib2/tables/20/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.16.table b/definitions/grib2/tables/20/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/20/4.2.0.16.table +++ b/definitions/grib2/tables/20/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.18.table b/definitions/grib2/tables/20/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/20/4.2.0.18.table +++ b/definitions/grib2/tables/20/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.19.table b/definitions/grib2/tables/20/4.2.0.19.table index d28010f2f..af9648d43 100644 --- a/definitions/grib2/tables/20/4.2.0.19.table +++ b/definitions/grib2/tables/20/4.2.0.19.table @@ -35,6 +35,6 @@ 33 33 Visibility through liquid fog (m) 34 34 Visibility through ice fog (m) 35 35 Visibility through blowing snow (m) -# 36-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 36-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.190.table b/definitions/grib2/tables/20/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/20/4.2.0.190.table +++ b/definitions/grib2/tables/20/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.191.table b/definitions/grib2/tables/20/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/20/4.2.0.191.table +++ b/definitions/grib2/tables/20/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.2.table b/definitions/grib2/tables/20/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/20/4.2.0.2.table +++ b/definitions/grib2/tables/20/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.20.table b/definitions/grib2/tables/20/4.2.0.20.table index efc427a19..bbdeef5b1 100644 --- a/definitions/grib2/tables/20/4.2.0.20.table +++ b/definitions/grib2/tables/20/4.2.0.20.table @@ -14,7 +14,7 @@ 12 12 Dry deposition mass flux (kg m-2 s-1) 13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1) 14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1) -# 15-49 Reserved +# 15-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -29,7 +29,7 @@ 61 61 Maximum of mass density in layer (kg m-3) 62 62 Height of maximum mass density (m) 63 63 Column-averaged mass density in layer (kg m-3) -# 64-99 Reserved +# 64-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -42,6 +42,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.3.table b/definitions/grib2/tables/20/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/20/4.2.0.3.table +++ b/definitions/grib2/tables/20/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.4.table b/definitions/grib2/tables/20/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/20/4.2.0.4.table +++ b/definitions/grib2/tables/20/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.5.table b/definitions/grib2/tables/20/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/20/4.2.0.5.table +++ b/definitions/grib2/tables/20/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.6.table b/definitions/grib2/tables/20/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/20/4.2.0.6.table +++ b/definitions/grib2/tables/20/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.0.7.table b/definitions/grib2/tables/20/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/20/4.2.0.7.table +++ b/definitions/grib2/tables/20/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.1.0.table b/definitions/grib2/tables/20/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/20/4.2.1.0.table +++ b/definitions/grib2/tables/20/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.1.1.table b/definitions/grib2/tables/20/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/20/4.2.1.1.table +++ b/definitions/grib2/tables/20/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.0.table b/definitions/grib2/tables/20/4.2.10.0.table index 095f51bdf..3611abd9a 100644 --- a/definitions/grib2/tables/20/4.2.10.0.table +++ b/definitions/grib2/tables/20/4.2.10.0.table @@ -45,6 +45,6 @@ 43 43 Kurtosis of the sea-surface elevation due to waves (-) 44 44 Benjamin-Feir index (-) 45 45 Spectral peakedness factor (/s) -# 46-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 46-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.1.table b/definitions/grib2/tables/20/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/20/4.2.10.1.table +++ b/definitions/grib2/tables/20/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.191.table b/definitions/grib2/tables/20/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/20/4.2.10.191.table +++ b/definitions/grib2/tables/20/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.2.table b/definitions/grib2/tables/20/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/20/4.2.10.2.table +++ b/definitions/grib2/tables/20/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.3.table b/definitions/grib2/tables/20/4.2.10.3.table index de7afd61c..b01d7ae46 100644 --- a/definitions/grib2/tables/20/4.2.10.3.table +++ b/definitions/grib2/tables/20/4.2.10.3.table @@ -2,6 +2,6 @@ 0 0 Water temperature (K) 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.10.4.table b/definitions/grib2/tables/20/4.2.10.4.table index 54774f1b7..d5615ae26 100644 --- a/definitions/grib2/tables/20/4.2.10.4.table +++ b/definitions/grib2/tables/20/4.2.10.4.table @@ -7,12 +7,12 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) 14 14 Water depth (m) 15 15 Water temperature (K) -# 16-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 16-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.2.0.table b/definitions/grib2/tables/20/4.2.2.0.table index 81548840c..b253cac22 100644 --- a/definitions/grib2/tables/20/4.2.2.0.table +++ b/definitions/grib2/tables/20/4.2.2.0.table @@ -38,6 +38,6 @@ 36 36 Tile fraction (Proportion) 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) -# 39-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 39-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.2.3.table b/definitions/grib2/tables/20/4.2.2.3.table index 690fab42b..2674e9f42 100644 --- a/definitions/grib2/tables/20/4.2.2.3.table +++ b/definitions/grib2/tables/20/4.2.2.3.table @@ -27,6 +27,6 @@ 25 25 Snow depth at elevation bands (kg m-2) 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.2.4.table b/definitions/grib2/tables/20/4.2.2.4.table index bb54fac22..ceb761557 100644 --- a/definitions/grib2/tables/20/4.2.2.4.table +++ b/definitions/grib2/tables/20/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.3.0.table b/definitions/grib2/tables/20/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/20/4.2.3.0.table +++ b/definitions/grib2/tables/20/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.2.3.1.table b/definitions/grib2/tables/20/4.2.3.1.table index 8e0793fe0..04cdde1f1 100644 --- a/definitions/grib2/tables/20/4.2.3.1.table +++ b/definitions/grib2/tables/20/4.2.3.1.table @@ -17,16 +17,16 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (Numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (Numeric) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.201.table b/definitions/grib2/tables/20/4.201.table index 47f1b486f..fa173c4e0 100644 --- a/definitions/grib2/tables/20/4.201.table +++ b/definitions/grib2/tables/20/4.201.table @@ -1,15 +1,15 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.202.table b/definitions/grib2/tables/20/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/20/4.202.table +++ b/definitions/grib2/tables/20/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.203.table b/definitions/grib2/tables/20/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/20/4.203.table +++ b/definitions/grib2/tables/20/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.204.table b/definitions/grib2/tables/20/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/20/4.204.table +++ b/definitions/grib2/tables/20/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.205.table b/definitions/grib2/tables/20/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/20/4.205.table +++ b/definitions/grib2/tables/20/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.206.table b/definitions/grib2/tables/20/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/20/4.206.table +++ b/definitions/grib2/tables/20/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.207.table b/definitions/grib2/tables/20/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/20/4.207.table +++ b/definitions/grib2/tables/20/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.208.table b/definitions/grib2/tables/20/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/20/4.208.table +++ b/definitions/grib2/tables/20/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.209.table b/definitions/grib2/tables/20/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/20/4.209.table +++ b/definitions/grib2/tables/20/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.210.table b/definitions/grib2/tables/20/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/20/4.210.table +++ b/definitions/grib2/tables/20/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.211.table b/definitions/grib2/tables/20/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/20/4.211.table +++ b/definitions/grib2/tables/20/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.212.table b/definitions/grib2/tables/20/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/20/4.212.table +++ b/definitions/grib2/tables/20/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.213.table b/definitions/grib2/tables/20/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/20/4.213.table +++ b/definitions/grib2/tables/20/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.215.table b/definitions/grib2/tables/20/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/20/4.215.table +++ b/definitions/grib2/tables/20/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.216.table b/definitions/grib2/tables/20/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/20/4.216.table +++ b/definitions/grib2/tables/20/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/20/4.217.table b/definitions/grib2/tables/20/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/20/4.217.table +++ b/definitions/grib2/tables/20/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.218.table b/definitions/grib2/tables/20/4.218.table index 7e3a69578..b5b15150b 100644 --- a/definitions/grib2/tables/20/4.218.table +++ b/definitions/grib2/tables/20/4.218.table @@ -1,44 +1,44 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/Stratus -102 102 Low cloud/Stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/Nimbostratus -105 105 Medium cloud/Altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/Cumulus -108 108 High cloud/Cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -# 111-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/Stratus +102 102 Low cloud/Stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/Nimbostratus +105 105 Medium cloud/Altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/Cumulus +108 108 High cloud/Cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +# 111-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.219.table b/definitions/grib2/tables/20/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/20/4.219.table +++ b/definitions/grib2/tables/20/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.220.table b/definitions/grib2/tables/20/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/20/4.220.table +++ b/definitions/grib2/tables/20/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.221.table b/definitions/grib2/tables/20/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/20/4.221.table +++ b/definitions/grib2/tables/20/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.222.table b/definitions/grib2/tables/20/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/20/4.222.table +++ b/definitions/grib2/tables/20/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.223.table b/definitions/grib2/tables/20/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/20/4.223.table +++ b/definitions/grib2/tables/20/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/20/4.224.table b/definitions/grib2/tables/20/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/20/4.224.table +++ b/definitions/grib2/tables/20/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/20/4.227.table b/definitions/grib2/tables/20/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/20/4.227.table +++ b/definitions/grib2/tables/20/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/20/4.230.table b/definitions/grib2/tables/20/4.230.table index 272731d76..304955feb 100644 --- a/definitions/grib2/tables/20/4.230.table +++ b/definitions/grib2/tables/20/4.230.table @@ -443,7 +443,7 @@ 62203 62203 Plantago (Plantain) pollen 62204 62204 Rumex (Dock, Sorrel) pollen 62205 62205 Urtica (Nettle) pollen -# 62206-62299 Reserved +# 62206-62299 Reserved 62300 62300 Poaceae (Grass family) pollen # 62301-65534 Reserved 65535 65535 Missing diff --git a/definitions/grib2/tables/20/4.234.table b/definitions/grib2/tables/20/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/20/4.234.table +++ b/definitions/grib2/tables/20/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/20/4.236.table b/definitions/grib2/tables/20/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/20/4.236.table +++ b/definitions/grib2/tables/20/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/20/4.240.table b/definitions/grib2/tables/20/4.240.table index 35e363211..400a13e26 100644 --- a/definitions/grib2/tables/20/4.240.table +++ b/definitions/grib2/tables/20/4.240.table @@ -1,13 +1,13 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given -1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre -2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg -3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) -4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance -5 5 Log-normal distribution with spatially variable number density, mean diameter and variance -6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) +0 0 No specific distribution function given +1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre +2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg +3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) +4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance +5 5 Log-normal distribution with spatially variable number density, mean diameter and variance +6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type no. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/20/4.241.table b/definitions/grib2/tables/20/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/20/4.241.table +++ b/definitions/grib2/tables/20/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/20/4.242.table b/definitions/grib2/tables/20/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/20/4.242.table +++ b/definitions/grib2/tables/20/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/20/4.243.table b/definitions/grib2/tables/20/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/20/4.243.table +++ b/definitions/grib2/tables/20/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/20/4.3.table b/definitions/grib2/tables/20/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/20/4.3.table +++ b/definitions/grib2/tables/20/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.4.table b/definitions/grib2/tables/20/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/20/4.4.table +++ b/definitions/grib2/tables/20/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.5.table b/definitions/grib2/tables/20/4.5.table index 2f1a8a8b7..33abd6293 100644 --- a/definitions/grib2/tables/20/4.5.table +++ b/definitions/grib2/tables/20/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,15 +16,15 @@ 14 14 Level of free convection (LFC) 15 15 Convective condensation level (CCL) 16 16 Level of neutral buoyancy or equilibrium level (LNB) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) -# 25-99 Reserved +# 25-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -33,20 +33,20 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 114 Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) -# 152-159 Reserved +# 152-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -55,7 +55,7 @@ 165 165 Bottom of sediment layer penetrated by thermal wave (-) 166 sfc Mixing layer (-) 167 167 Bottom of root zone (-) -# 168-173 Reserved +# 168-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -67,6 +67,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.6.table b/definitions/grib2/tables/20/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/20/4.6.table +++ b/definitions/grib2/tables/20/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.7.table b/definitions/grib2/tables/20/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/20/4.7.table +++ b/definitions/grib2/tables/20/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.8.table b/definitions/grib2/tables/20/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/20/4.8.table +++ b/definitions/grib2/tables/20/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.9.table b/definitions/grib2/tables/20/4.9.table index 5878b5ad3..0ce312dd1 100644 --- a/definitions/grib2/tables/20/4.9.table +++ b/definitions/grib2/tables/20/4.9.table @@ -1,9 +1,9 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/4.91.table b/definitions/grib2/tables/20/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/20/4.91.table +++ b/definitions/grib2/tables/20/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/20/5.0.table b/definitions/grib2/tables/20/5.0.table index ad46a5377..4d6cc68c8 100644 --- a/definitions/grib2/tables/20/5.0.table +++ b/definitions/grib2/tables/20/5.0.table @@ -1,25 +1,24 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) 42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing -# 52-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing +# 52-60 Reserved +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG pacling 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/20/5.1.table b/definitions/grib2/tables/20/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/20/5.1.table +++ b/definitions/grib2/tables/20/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.2.table b/definitions/grib2/tables/20/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/20/5.2.table +++ b/definitions/grib2/tables/20/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.3.table b/definitions/grib2/tables/20/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/20/5.3.table +++ b/definitions/grib2/tables/20/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.4.table b/definitions/grib2/tables/20/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/20/5.4.table +++ b/definitions/grib2/tables/20/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.40.table b/definitions/grib2/tables/20/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/20/5.40.table +++ b/definitions/grib2/tables/20/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/20/5.40000.table b/definitions/grib2/tables/20/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/20/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/20/5.5.table b/definitions/grib2/tables/20/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/20/5.5.table +++ b/definitions/grib2/tables/20/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.6.table b/definitions/grib2/tables/20/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/20/5.6.table +++ b/definitions/grib2/tables/20/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/20/5.7.table b/definitions/grib2/tables/20/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/20/5.7.table +++ b/definitions/grib2/tables/20/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/20/6.0.table b/definitions/grib2/tables/20/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/20/6.0.table +++ b/definitions/grib2/tables/20/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/21/0.0.table b/definitions/grib2/tables/21/0.0.table index b24c50564..2c5afceb4 100644 --- a/definitions/grib2/tables/21/0.0.table +++ b/definitions/grib2/tables/21/0.0.table @@ -1,10 +1,10 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Space products -# 4-9 Reserved -10 10 Oceanographic products -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Space products +# 4-9 Reserved +10 10 Oceanographic products +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/1.0.table b/definitions/grib2/tables/21/1.0.table index 7c1ff3aa3..1a7c7870f 100644 --- a/definitions/grib2/tables/21/1.0.table +++ b/definitions/grib2/tables/21/1.0.table @@ -20,7 +20,7 @@ 18 18 Version implemented on 2 November 2016 19 19 Version implemented on 3 May 2017 20 20 Version implemented on 8 November 2017 -21 21 Version implemented on 2 May 2018 -22 22 Pre-operational to be implemented by next amendment -# 23-254 Future versions +21 21 Version implemented on 2 May 2018 +22 22 Pre-operational to be implemented by next amendment +# 23-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/21/1.1.table b/definitions/grib2/tables/21/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/21/1.1.table +++ b/definitions/grib2/tables/21/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/21/1.2.table b/definitions/grib2/tables/21/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/21/1.2.table +++ b/definitions/grib2/tables/21/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/1.3.table b/definitions/grib2/tables/21/1.3.table index 0c95269d5..c1a9a7b9d 100644 --- a/definitions/grib2/tables/21/1.3.table +++ b/definitions/grib2/tables/21/1.3.table @@ -1,14 +1,14 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products +6 6 S2S operational products +7 7 S2S test products 8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/1.4.table b/definitions/grib2/tables/21/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/21/1.4.table +++ b/definitions/grib2/tables/21/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/21/1.5.table b/definitions/grib2/tables/21/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/21/1.5.table +++ b/definitions/grib2/tables/21/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/21/1.6.table b/definitions/grib2/tables/21/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/21/1.6.table +++ b/definitions/grib2/tables/21/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.0.table b/definitions/grib2/tables/21/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/21/3.0.table +++ b/definitions/grib2/tables/21/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/21/3.1.table b/definitions/grib2/tables/21/3.1.table index aa8d98770..dd85c0041 100644 --- a/definitions/grib2/tables/21/3.1.table +++ b/definitions/grib2/tables/21/3.1.table @@ -3,45 +3,43 @@ 1 1 Rotated latitude/longitude 2 2 Stretched latitude/longitude 3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude # 6-9 Reserved 10 10 Mercator 12 12 Transverse Mercator # 13-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-29 Reserved +# 21-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -# 32-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/21/3.10.table b/definitions/grib2/tables/21/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/21/3.10.table +++ b/definitions/grib2/tables/21/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/21/3.11.table b/definitions/grib2/tables/21/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/21/3.11.table +++ b/definitions/grib2/tables/21/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/21/3.15.table b/definitions/grib2/tables/21/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/21/3.15.table +++ b/definitions/grib2/tables/21/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.2.table b/definitions/grib2/tables/21/3.2.table index 1b5c8241d..56ffdc08e 100644 --- a/definitions/grib2/tables/21/3.2.table +++ b/definitions/grib2/tables/21/3.2.table @@ -1,14 +1,14 @@ # Code table 3.2 - Shape of the Earth -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.20.table b/definitions/grib2/tables/21/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/21/3.20.table +++ b/definitions/grib2/tables/21/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.21.table b/definitions/grib2/tables/21/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/21/3.21.table +++ b/definitions/grib2/tables/21/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.3.table b/definitions/grib2/tables/21/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/21/3.3.table +++ b/definitions/grib2/tables/21/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/21/3.4.table b/definitions/grib2/tables/21/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/21/3.4.table +++ b/definitions/grib2/tables/21/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/21/3.5.table b/definitions/grib2/tables/21/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/21/3.5.table +++ b/definitions/grib2/tables/21/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/21/3.7.table b/definitions/grib2/tables/21/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/21/3.7.table +++ b/definitions/grib2/tables/21/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/21/3.8.table b/definitions/grib2/tables/21/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/21/3.8.table +++ b/definitions/grib2/tables/21/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/3.9.table b/definitions/grib2/tables/21/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/21/3.9.table +++ b/definitions/grib2/tables/21/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/21/4.0.table b/definitions/grib2/tables/21/4.0.table index 4f2886917..4a10fe7a0 100644 --- a/definitions/grib2/tables/21/4.0.table +++ b/definitions/grib2/tables/21/4.0.table @@ -1,61 +1,61 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data 35 35 Satellite product with or without associated quality values -# 36-39 Reserved +# 36-39 Reserved 311 311 Satellite product auxiliary information -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 62-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 62-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved 70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval 76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source/sink 77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with a source/sink @@ -69,20 +69,20 @@ # 74-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 92-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 92-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing 50001 50001 Forecasting Systems with Variable Resolution in a point in time 50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval -# 1102-32767 Reserved -# 32768-65534 Reserved for local use +# 1102-32767 Reserved +# 32768-65534 Reserved for local use 40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data 40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/21/4.1.0.table b/definitions/grib2/tables/21/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/21/4.1.0.table +++ b/definitions/grib2/tables/21/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.1.1.table b/definitions/grib2/tables/21/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/21/4.1.1.table +++ b/definitions/grib2/tables/21/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.1.10.table b/definitions/grib2/tables/21/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/21/4.1.10.table +++ b/definitions/grib2/tables/21/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.1.2.table b/definitions/grib2/tables/21/4.1.2.table index 5b488fe9e..e74126645 100644 --- a/definitions/grib2/tables/21/4.1.2.table +++ b/definitions/grib2/tables/21/4.1.2.table @@ -1,9 +1,9 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.1.3.table b/definitions/grib2/tables/21/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/21/4.1.3.table +++ b/definitions/grib2/tables/21/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.10.table b/definitions/grib2/tables/21/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/21/4.10.table +++ b/definitions/grib2/tables/21/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/21/4.11.table b/definitions/grib2/tables/21/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/21/4.11.table +++ b/definitions/grib2/tables/21/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.12.table b/definitions/grib2/tables/21/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/21/4.12.table +++ b/definitions/grib2/tables/21/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.13.table b/definitions/grib2/tables/21/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/21/4.13.table +++ b/definitions/grib2/tables/21/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.14.table b/definitions/grib2/tables/21/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/21/4.14.table +++ b/definitions/grib2/tables/21/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.15.table b/definitions/grib2/tables/21/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/21/4.15.table +++ b/definitions/grib2/tables/21/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.16.table b/definitions/grib2/tables/21/4.16.table index de025080a..de3feccaf 100644 --- a/definitions/grib2/tables/21/4.16.table +++ b/definitions/grib2/tables/21/4.16.table @@ -1,9 +1,9 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.0.table b/definitions/grib2/tables/21/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/21/4.2.0.0.table +++ b/definitions/grib2/tables/21/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.1.table b/definitions/grib2/tables/21/4.2.0.1.table index 541deaca9..b4c1e8ba3 100644 --- a/definitions/grib2/tables/21/4.2.0.1.table +++ b/definitions/grib2/tables/21/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -122,5 +122,5 @@ 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) # 122-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.13.table b/definitions/grib2/tables/21/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/21/4.2.0.13.table +++ b/definitions/grib2/tables/21/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.14.table b/definitions/grib2/tables/21/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/21/4.2.0.14.table +++ b/definitions/grib2/tables/21/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.15.table b/definitions/grib2/tables/21/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/21/4.2.0.15.table +++ b/definitions/grib2/tables/21/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.16.table b/definitions/grib2/tables/21/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/21/4.2.0.16.table +++ b/definitions/grib2/tables/21/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.18.table b/definitions/grib2/tables/21/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/21/4.2.0.18.table +++ b/definitions/grib2/tables/21/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.19.table b/definitions/grib2/tables/21/4.2.0.19.table index d28010f2f..af9648d43 100644 --- a/definitions/grib2/tables/21/4.2.0.19.table +++ b/definitions/grib2/tables/21/4.2.0.19.table @@ -35,6 +35,6 @@ 33 33 Visibility through liquid fog (m) 34 34 Visibility through ice fog (m) 35 35 Visibility through blowing snow (m) -# 36-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 36-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.190.table b/definitions/grib2/tables/21/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/21/4.2.0.190.table +++ b/definitions/grib2/tables/21/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.191.table b/definitions/grib2/tables/21/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/21/4.2.0.191.table +++ b/definitions/grib2/tables/21/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.2.table b/definitions/grib2/tables/21/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/21/4.2.0.2.table +++ b/definitions/grib2/tables/21/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.20.table b/definitions/grib2/tables/21/4.2.0.20.table index efc427a19..bbdeef5b1 100644 --- a/definitions/grib2/tables/21/4.2.0.20.table +++ b/definitions/grib2/tables/21/4.2.0.20.table @@ -14,7 +14,7 @@ 12 12 Dry deposition mass flux (kg m-2 s-1) 13 13 Transfer from hydrophobic to hydrophilic (kg kg-1 s-1) 14 14 Transfer from SO2 (sulphur dioxide) to SO4 (sulphate) (kg kg-1 s-1) -# 15-49 Reserved +# 15-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -29,7 +29,7 @@ 61 61 Maximum of mass density in layer (kg m-3) 62 62 Height of maximum mass density (m) 63 63 Column-averaged mass density in layer (kg m-3) -# 64-99 Reserved +# 64-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -42,6 +42,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.3.table b/definitions/grib2/tables/21/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/21/4.2.0.3.table +++ b/definitions/grib2/tables/21/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.4.table b/definitions/grib2/tables/21/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/21/4.2.0.4.table +++ b/definitions/grib2/tables/21/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.5.table b/definitions/grib2/tables/21/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/21/4.2.0.5.table +++ b/definitions/grib2/tables/21/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.6.table b/definitions/grib2/tables/21/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/21/4.2.0.6.table +++ b/definitions/grib2/tables/21/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.0.7.table b/definitions/grib2/tables/21/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/21/4.2.0.7.table +++ b/definitions/grib2/tables/21/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.1.0.table b/definitions/grib2/tables/21/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/21/4.2.1.0.table +++ b/definitions/grib2/tables/21/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.1.1.table b/definitions/grib2/tables/21/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/21/4.2.1.1.table +++ b/definitions/grib2/tables/21/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.0.table b/definitions/grib2/tables/21/4.2.10.0.table index 095f51bdf..3611abd9a 100644 --- a/definitions/grib2/tables/21/4.2.10.0.table +++ b/definitions/grib2/tables/21/4.2.10.0.table @@ -45,6 +45,6 @@ 43 43 Kurtosis of the sea-surface elevation due to waves (-) 44 44 Benjamin-Feir index (-) 45 45 Spectral peakedness factor (/s) -# 46-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 46-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.1.table b/definitions/grib2/tables/21/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/21/4.2.10.1.table +++ b/definitions/grib2/tables/21/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.191.table b/definitions/grib2/tables/21/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/21/4.2.10.191.table +++ b/definitions/grib2/tables/21/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.2.table b/definitions/grib2/tables/21/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/21/4.2.10.2.table +++ b/definitions/grib2/tables/21/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.3.table b/definitions/grib2/tables/21/4.2.10.3.table index de7afd61c..b01d7ae46 100644 --- a/definitions/grib2/tables/21/4.2.10.3.table +++ b/definitions/grib2/tables/21/4.2.10.3.table @@ -2,6 +2,6 @@ 0 0 Water temperature (K) 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.10.4.table b/definitions/grib2/tables/21/4.2.10.4.table index 54774f1b7..d5615ae26 100644 --- a/definitions/grib2/tables/21/4.2.10.4.table +++ b/definitions/grib2/tables/21/4.2.10.4.table @@ -7,12 +7,12 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) 14 14 Water depth (m) 15 15 Water temperature (K) -# 16-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 16-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.2.0.table b/definitions/grib2/tables/21/4.2.2.0.table index 81548840c..b253cac22 100644 --- a/definitions/grib2/tables/21/4.2.2.0.table +++ b/definitions/grib2/tables/21/4.2.2.0.table @@ -38,6 +38,6 @@ 36 36 Tile fraction (Proportion) 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) -# 39-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 39-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.2.3.table b/definitions/grib2/tables/21/4.2.2.3.table index 690fab42b..2674e9f42 100644 --- a/definitions/grib2/tables/21/4.2.2.3.table +++ b/definitions/grib2/tables/21/4.2.2.3.table @@ -27,6 +27,6 @@ 25 25 Snow depth at elevation bands (kg m-2) 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.2.4.table b/definitions/grib2/tables/21/4.2.2.4.table index bb54fac22..ceb761557 100644 --- a/definitions/grib2/tables/21/4.2.2.4.table +++ b/definitions/grib2/tables/21/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.3.0.table b/definitions/grib2/tables/21/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/21/4.2.3.0.table +++ b/definitions/grib2/tables/21/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.2.3.1.table b/definitions/grib2/tables/21/4.2.3.1.table index 9fdeb0385..6f24b86ff 100644 --- a/definitions/grib2/tables/21/4.2.3.1.table +++ b/definitions/grib2/tables/21/4.2.3.1.table @@ -17,16 +17,16 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.201.table b/definitions/grib2/tables/21/4.201.table index 47f1b486f..fa173c4e0 100644 --- a/definitions/grib2/tables/21/4.201.table +++ b/definitions/grib2/tables/21/4.201.table @@ -1,15 +1,15 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.202.table b/definitions/grib2/tables/21/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/21/4.202.table +++ b/definitions/grib2/tables/21/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.203.table b/definitions/grib2/tables/21/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/21/4.203.table +++ b/definitions/grib2/tables/21/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.204.table b/definitions/grib2/tables/21/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/21/4.204.table +++ b/definitions/grib2/tables/21/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.205.table b/definitions/grib2/tables/21/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/21/4.205.table +++ b/definitions/grib2/tables/21/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.206.table b/definitions/grib2/tables/21/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/21/4.206.table +++ b/definitions/grib2/tables/21/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.207.table b/definitions/grib2/tables/21/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/21/4.207.table +++ b/definitions/grib2/tables/21/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.208.table b/definitions/grib2/tables/21/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/21/4.208.table +++ b/definitions/grib2/tables/21/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.209.table b/definitions/grib2/tables/21/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/21/4.209.table +++ b/definitions/grib2/tables/21/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.210.table b/definitions/grib2/tables/21/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/21/4.210.table +++ b/definitions/grib2/tables/21/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.211.table b/definitions/grib2/tables/21/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/21/4.211.table +++ b/definitions/grib2/tables/21/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.212.table b/definitions/grib2/tables/21/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/21/4.212.table +++ b/definitions/grib2/tables/21/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.213.table b/definitions/grib2/tables/21/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/21/4.213.table +++ b/definitions/grib2/tables/21/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.215.table b/definitions/grib2/tables/21/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/21/4.215.table +++ b/definitions/grib2/tables/21/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.216.table b/definitions/grib2/tables/21/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/21/4.216.table +++ b/definitions/grib2/tables/21/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/21/4.217.table b/definitions/grib2/tables/21/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/21/4.217.table +++ b/definitions/grib2/tables/21/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.218.table b/definitions/grib2/tables/21/4.218.table index 7e3a69578..b5b15150b 100644 --- a/definitions/grib2/tables/21/4.218.table +++ b/definitions/grib2/tables/21/4.218.table @@ -1,44 +1,44 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/Stratus -102 102 Low cloud/Stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/Nimbostratus -105 105 Medium cloud/Altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/Cumulus -108 108 High cloud/Cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -# 111-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/Stratus +102 102 Low cloud/Stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/Nimbostratus +105 105 Medium cloud/Altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/Cumulus +108 108 High cloud/Cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +# 111-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.219.table b/definitions/grib2/tables/21/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/21/4.219.table +++ b/definitions/grib2/tables/21/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.220.table b/definitions/grib2/tables/21/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/21/4.220.table +++ b/definitions/grib2/tables/21/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.221.table b/definitions/grib2/tables/21/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/21/4.221.table +++ b/definitions/grib2/tables/21/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.222.table b/definitions/grib2/tables/21/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/21/4.222.table +++ b/definitions/grib2/tables/21/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.223.table b/definitions/grib2/tables/21/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/21/4.223.table +++ b/definitions/grib2/tables/21/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/21/4.224.table b/definitions/grib2/tables/21/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/21/4.224.table +++ b/definitions/grib2/tables/21/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/21/4.227.table b/definitions/grib2/tables/21/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/21/4.227.table +++ b/definitions/grib2/tables/21/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/21/4.230.table b/definitions/grib2/tables/21/4.230.table index dfc1ffc31..1602eab73 100644 --- a/definitions/grib2/tables/21/4.230.table +++ b/definitions/grib2/tables/21/4.230.table @@ -443,7 +443,7 @@ 62203 62203 Plantago (Plantain) pollen 62204 62204 Rumex (Dock, Sorrel) pollen 62205 62205 Urtica (Nettle) pollen -# 62206-62299 Reserved +# 62206-62299 Reserved 62300 62300 Poaceae (Grass family) pollen # 62301-65534 Reserved 65535 65535 Missing diff --git a/definitions/grib2/tables/21/4.233.table b/definitions/grib2/tables/21/4.233.table index 1d3021ef7..eb45c2280 100644 --- a/definitions/grib2/tables/21/4.233.table +++ b/definitions/grib2/tables/21/4.233.table @@ -443,7 +443,7 @@ 62203 62203 Plantago (Plantain) pollen 62204 62204 Rumex (Dock, Sorrel) pollen 62205 62205 Urtica (Nettle) pollen -# 62206-62299 Reserved +# 62206-62299 Reserved 62300 62300 Poaceae (Grass family) pollen # 62301-65534 Reserved 65535 65535 Missing diff --git a/definitions/grib2/tables/21/4.234.table b/definitions/grib2/tables/21/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/21/4.234.table +++ b/definitions/grib2/tables/21/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/21/4.236.table b/definitions/grib2/tables/21/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/21/4.236.table +++ b/definitions/grib2/tables/21/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/21/4.238.table b/definitions/grib2/tables/21/4.238.table index 367d68662..6fbe5a08c 100644 --- a/definitions/grib2/tables/21/4.238.table +++ b/definitions/grib2/tables/21/4.238.table @@ -1,5 +1,5 @@ # Code table 4.238 - source, sink or chemical/physical process -0 0 Reserved +0 0 Reserved 1 1 Aviation 2 2 Lightning 3 3 Biogenic sources diff --git a/definitions/grib2/tables/21/4.240.table b/definitions/grib2/tables/21/4.240.table index bf12cbf5b..2a31fb2ab 100644 --- a/definitions/grib2/tables/21/4.240.table +++ b/definitions/grib2/tables/21/4.240.table @@ -1,13 +1,13 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given -1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre -2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg +0 0 No specific distribution function given +1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre +2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) -4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance -5 5 Log-normal distribution with spatially variable number density, mean diameter and variance +4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance +5 5 Log-normal distribution with spatially variable number density, mean diameter and variance 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/21/4.241.table b/definitions/grib2/tables/21/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/21/4.241.table +++ b/definitions/grib2/tables/21/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/21/4.242.table b/definitions/grib2/tables/21/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/21/4.242.table +++ b/definitions/grib2/tables/21/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/21/4.243.table b/definitions/grib2/tables/21/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/21/4.243.table +++ b/definitions/grib2/tables/21/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/21/4.244.table b/definitions/grib2/tables/21/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/21/4.244.table +++ b/definitions/grib2/tables/21/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.3.table b/definitions/grib2/tables/21/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/21/4.3.table +++ b/definitions/grib2/tables/21/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.4.table b/definitions/grib2/tables/21/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/21/4.4.table +++ b/definitions/grib2/tables/21/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.5.table b/definitions/grib2/tables/21/4.5.table index 2f1a8a8b7..33abd6293 100644 --- a/definitions/grib2/tables/21/4.5.table +++ b/definitions/grib2/tables/21/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,15 +16,15 @@ 14 14 Level of free convection (LFC) 15 15 Convective condensation level (CCL) 16 16 Level of neutral buoyancy or equilibrium level (LNB) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) -# 25-99 Reserved +# 25-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -33,20 +33,20 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 114 Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) -# 152-159 Reserved +# 152-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -55,7 +55,7 @@ 165 165 Bottom of sediment layer penetrated by thermal wave (-) 166 sfc Mixing layer (-) 167 167 Bottom of root zone (-) -# 168-173 Reserved +# 168-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -67,6 +67,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.6.table b/definitions/grib2/tables/21/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/21/4.6.table +++ b/definitions/grib2/tables/21/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.7.table b/definitions/grib2/tables/21/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/21/4.7.table +++ b/definitions/grib2/tables/21/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.8.table b/definitions/grib2/tables/21/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/21/4.8.table +++ b/definitions/grib2/tables/21/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.9.table b/definitions/grib2/tables/21/4.9.table index 5878b5ad3..0ce312dd1 100644 --- a/definitions/grib2/tables/21/4.9.table +++ b/definitions/grib2/tables/21/4.9.table @@ -1,9 +1,9 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/4.91.table b/definitions/grib2/tables/21/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/21/4.91.table +++ b/definitions/grib2/tables/21/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/21/5.0.table b/definitions/grib2/tables/21/5.0.table index ad46a5377..4d6cc68c8 100644 --- a/definitions/grib2/tables/21/5.0.table +++ b/definitions/grib2/tables/21/5.0.table @@ -1,25 +1,24 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) 42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing -# 52-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing +# 52-60 Reserved +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG pacling 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/21/5.1.table b/definitions/grib2/tables/21/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/21/5.1.table +++ b/definitions/grib2/tables/21/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.2.table b/definitions/grib2/tables/21/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/21/5.2.table +++ b/definitions/grib2/tables/21/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.3.table b/definitions/grib2/tables/21/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/21/5.3.table +++ b/definitions/grib2/tables/21/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.4.table b/definitions/grib2/tables/21/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/21/5.4.table +++ b/definitions/grib2/tables/21/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.40.table b/definitions/grib2/tables/21/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/21/5.40.table +++ b/definitions/grib2/tables/21/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/21/5.40000.table b/definitions/grib2/tables/21/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/21/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/21/5.5.table b/definitions/grib2/tables/21/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/21/5.5.table +++ b/definitions/grib2/tables/21/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.6.table b/definitions/grib2/tables/21/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/21/5.6.table +++ b/definitions/grib2/tables/21/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/21/5.7.table b/definitions/grib2/tables/21/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/21/5.7.table +++ b/definitions/grib2/tables/21/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/21/6.0.table b/definitions/grib2/tables/21/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/21/6.0.table +++ b/definitions/grib2/tables/21/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/22/0.0.table b/definitions/grib2/tables/22/0.0.table index b24c50564..2c5afceb4 100644 --- a/definitions/grib2/tables/22/0.0.table +++ b/definitions/grib2/tables/22/0.0.table @@ -1,10 +1,10 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Space products -# 4-9 Reserved -10 10 Oceanographic products -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Space products +# 4-9 Reserved +10 10 Oceanographic products +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/1.0.table b/definitions/grib2/tables/22/1.0.table index c871ea8fe..d65b24f9e 100644 --- a/definitions/grib2/tables/22/1.0.table +++ b/definitions/grib2/tables/22/1.0.table @@ -20,8 +20,8 @@ 18 18 Version implemented on 2 November 2016 19 19 Version implemented on 3 May 2017 20 20 Version implemented on 8 November 2017 -21 21 Version implemented on 2 May 2018 -22 22 Version implemented on 7 November 2018 +21 21 Version implemented on 2 May 2018 +22 22 Version implemented on 7 November 2018 23 23 Version implemented on 15 May 2019 -# 24-254 Future versions +# 24-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/22/1.1.table b/definitions/grib2/tables/22/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/22/1.1.table +++ b/definitions/grib2/tables/22/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/22/1.2.table b/definitions/grib2/tables/22/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/22/1.2.table +++ b/definitions/grib2/tables/22/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/1.3.table b/definitions/grib2/tables/22/1.3.table index dd7e68132..5e2e59087 100644 --- a/definitions/grib2/tables/22/1.3.table +++ b/definitions/grib2/tables/22/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products +6 6 S2S operational products +7 7 S2S test products 8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/1.4.table b/definitions/grib2/tables/22/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/22/1.4.table +++ b/definitions/grib2/tables/22/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/22/1.5.table b/definitions/grib2/tables/22/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/22/1.5.table +++ b/definitions/grib2/tables/22/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/22/1.6.table b/definitions/grib2/tables/22/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/22/1.6.table +++ b/definitions/grib2/tables/22/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.0.table b/definitions/grib2/tables/22/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/22/3.0.table +++ b/definitions/grib2/tables/22/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/22/3.1.table b/definitions/grib2/tables/22/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/22/3.1.table +++ b/definitions/grib2/tables/22/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/22/3.10.table b/definitions/grib2/tables/22/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/22/3.10.table +++ b/definitions/grib2/tables/22/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/22/3.11.table b/definitions/grib2/tables/22/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/22/3.11.table +++ b/definitions/grib2/tables/22/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/3.15.table b/definitions/grib2/tables/22/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/22/3.15.table +++ b/definitions/grib2/tables/22/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.2.table b/definitions/grib2/tables/22/3.2.table index 1b5c8241d..56ffdc08e 100644 --- a/definitions/grib2/tables/22/3.2.table +++ b/definitions/grib2/tables/22/3.2.table @@ -1,14 +1,14 @@ # Code table 3.2 - Shape of the Earth -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.20.table b/definitions/grib2/tables/22/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/22/3.20.table +++ b/definitions/grib2/tables/22/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.21.table b/definitions/grib2/tables/22/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/22/3.21.table +++ b/definitions/grib2/tables/22/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.25.table b/definitions/grib2/tables/22/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/22/3.25.table +++ b/definitions/grib2/tables/22/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.3.table b/definitions/grib2/tables/22/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/22/3.3.table +++ b/definitions/grib2/tables/22/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/22/3.4.table b/definitions/grib2/tables/22/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/22/3.4.table +++ b/definitions/grib2/tables/22/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/22/3.5.table b/definitions/grib2/tables/22/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/22/3.5.table +++ b/definitions/grib2/tables/22/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/22/3.6.table b/definitions/grib2/tables/22/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/22/3.6.table +++ b/definitions/grib2/tables/22/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/22/3.7.table b/definitions/grib2/tables/22/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/22/3.7.table +++ b/definitions/grib2/tables/22/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/3.8.table b/definitions/grib2/tables/22/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/22/3.8.table +++ b/definitions/grib2/tables/22/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/3.9.table b/definitions/grib2/tables/22/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/22/3.9.table +++ b/definitions/grib2/tables/22/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/22/4.0.table b/definitions/grib2/tables/22/4.0.table index 72f395b58..fb919290d 100644 --- a/definitions/grib2/tables/22/4.0.table +++ b/definitions/grib2/tables/22/4.0.table @@ -1,62 +1,62 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 62-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 62-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval # 92-253 Reserved 254 254 CCITT IA5 character string # 255-999 Reserved @@ -68,8 +68,8 @@ 1101 1101 Hovmoller-type grid with averaging or other statistical processing 50001 50001 Forecasting Systems with Variable Resolution in a point in time 50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval -# 1102-32767 Reserved -# 32768-65534 Reserved for local use +# 1102-32767 Reserved +# 32768-65534 Reserved for local use 40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data 40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/22/4.1.0.table b/definitions/grib2/tables/22/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/22/4.1.0.table +++ b/definitions/grib2/tables/22/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.1.1.table b/definitions/grib2/tables/22/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/22/4.1.1.table +++ b/definitions/grib2/tables/22/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.1.10.table b/definitions/grib2/tables/22/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/22/4.1.10.table +++ b/definitions/grib2/tables/22/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.1.2.table b/definitions/grib2/tables/22/4.1.2.table index 5b488fe9e..e74126645 100644 --- a/definitions/grib2/tables/22/4.1.2.table +++ b/definitions/grib2/tables/22/4.1.2.table @@ -1,9 +1,9 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.1.3.table b/definitions/grib2/tables/22/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/22/4.1.3.table +++ b/definitions/grib2/tables/22/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.10.table b/definitions/grib2/tables/22/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/22/4.10.table +++ b/definitions/grib2/tables/22/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/22/4.11.table b/definitions/grib2/tables/22/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/22/4.11.table +++ b/definitions/grib2/tables/22/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.12.table b/definitions/grib2/tables/22/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/22/4.12.table +++ b/definitions/grib2/tables/22/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.13.table b/definitions/grib2/tables/22/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/22/4.13.table +++ b/definitions/grib2/tables/22/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.14.table b/definitions/grib2/tables/22/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/22/4.14.table +++ b/definitions/grib2/tables/22/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.15.table b/definitions/grib2/tables/22/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/22/4.15.table +++ b/definitions/grib2/tables/22/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.16.table b/definitions/grib2/tables/22/4.16.table index de025080a..de3feccaf 100644 --- a/definitions/grib2/tables/22/4.16.table +++ b/definitions/grib2/tables/22/4.16.table @@ -1,9 +1,9 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.0.table b/definitions/grib2/tables/22/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/22/4.2.0.0.table +++ b/definitions/grib2/tables/22/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.1.table b/definitions/grib2/tables/22/4.2.0.1.table index 0c01ce89b..b4c1e8ba3 100644 --- a/definitions/grib2/tables/22/4.2.0.1.table +++ b/definitions/grib2/tables/22/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -121,6 +121,6 @@ 119 119 Unbalanced component of specific cloud liquid water content (kg kg-1) 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) -# 122-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 122-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.13.table b/definitions/grib2/tables/22/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/22/4.2.0.13.table +++ b/definitions/grib2/tables/22/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.14.table b/definitions/grib2/tables/22/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/22/4.2.0.14.table +++ b/definitions/grib2/tables/22/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.15.table b/definitions/grib2/tables/22/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/22/4.2.0.15.table +++ b/definitions/grib2/tables/22/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.16.table b/definitions/grib2/tables/22/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/22/4.2.0.16.table +++ b/definitions/grib2/tables/22/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.18.table b/definitions/grib2/tables/22/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/22/4.2.0.18.table +++ b/definitions/grib2/tables/22/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.19.table b/definitions/grib2/tables/22/4.2.0.19.table index d28010f2f..af9648d43 100644 --- a/definitions/grib2/tables/22/4.2.0.19.table +++ b/definitions/grib2/tables/22/4.2.0.19.table @@ -35,6 +35,6 @@ 33 33 Visibility through liquid fog (m) 34 34 Visibility through ice fog (m) 35 35 Visibility through blowing snow (m) -# 36-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 36-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.190.table b/definitions/grib2/tables/22/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/22/4.2.0.190.table +++ b/definitions/grib2/tables/22/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.191.table b/definitions/grib2/tables/22/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/22/4.2.0.191.table +++ b/definitions/grib2/tables/22/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.2.table b/definitions/grib2/tables/22/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/22/4.2.0.2.table +++ b/definitions/grib2/tables/22/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.20.table b/definitions/grib2/tables/22/4.2.0.20.table index 9e6ac3c05..214498114 100644 --- a/definitions/grib2/tables/22/4.2.0.20.table +++ b/definitions/grib2/tables/22/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -44,7 +44,7 @@ 73 73 Column-integrated below-cloud scavenging rate by convective precipitation (kg m-2 s-1) 74 74 Column-integrated release rate from evaporating convective precipitation (kg m-2 s-1) 75 75 Wildfire flux (kg m-2 s-1) -# 76-99 Reserved +# 76-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -57,6 +57,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.3.table b/definitions/grib2/tables/22/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/22/4.2.0.3.table +++ b/definitions/grib2/tables/22/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.4.table b/definitions/grib2/tables/22/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/22/4.2.0.4.table +++ b/definitions/grib2/tables/22/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.5.table b/definitions/grib2/tables/22/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/22/4.2.0.5.table +++ b/definitions/grib2/tables/22/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.6.table b/definitions/grib2/tables/22/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/22/4.2.0.6.table +++ b/definitions/grib2/tables/22/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.0.7.table b/definitions/grib2/tables/22/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/22/4.2.0.7.table +++ b/definitions/grib2/tables/22/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.1.0.table b/definitions/grib2/tables/22/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/22/4.2.1.0.table +++ b/definitions/grib2/tables/22/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.1.1.table b/definitions/grib2/tables/22/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/22/4.2.1.1.table +++ b/definitions/grib2/tables/22/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.0.table b/definitions/grib2/tables/22/4.2.10.0.table index 6a60ba8aa..41a8c1f41 100644 --- a/definitions/grib2/tables/22/4.2.10.0.table +++ b/definitions/grib2/tables/22/4.2.10.0.table @@ -55,7 +55,7 @@ 53 53 Mean wave direction of first swell partition (deg) 54 54 Mean wave direction of second swell partition (deg) 55 55 Mean wave direction of third swell partition (deg) -# 56-191 Reserved +# 56-191 Reserved 56 56 Wave directional width of first swell partition (-) 57 57 Wave directional width of second swell partition (-) 58 58 Wave directional width of third swell partition (-) @@ -65,6 +65,6 @@ 62 62 Wave frequency width (-) 63 63 Frequency width of wind waves (-) 64 64 Frequency width of total swell (-) -# 65-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 65-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.1.table b/definitions/grib2/tables/22/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/22/4.2.10.1.table +++ b/definitions/grib2/tables/22/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.191.table b/definitions/grib2/tables/22/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/22/4.2.10.191.table +++ b/definitions/grib2/tables/22/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.2.table b/definitions/grib2/tables/22/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/22/4.2.10.2.table +++ b/definitions/grib2/tables/22/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.3.table b/definitions/grib2/tables/22/4.2.10.3.table index de7afd61c..b01d7ae46 100644 --- a/definitions/grib2/tables/22/4.2.10.3.table +++ b/definitions/grib2/tables/22/4.2.10.3.table @@ -2,6 +2,6 @@ 0 0 Water temperature (K) 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.10.4.table b/definitions/grib2/tables/22/4.2.10.4.table index 69ba0cc66..66e9a323c 100644 --- a/definitions/grib2/tables/22/4.2.10.4.table +++ b/definitions/grib2/tables/22/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -19,6 +19,6 @@ 19 19 Water potential density (rho theta) (kg m-3) 20 20 Water potential density anomaly (sigma theta) (kg m-3) 21 21 Practical salinity (Numeric) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.2.0.table b/definitions/grib2/tables/22/4.2.2.0.table index 81548840c..b253cac22 100644 --- a/definitions/grib2/tables/22/4.2.2.0.table +++ b/definitions/grib2/tables/22/4.2.2.0.table @@ -38,6 +38,6 @@ 36 36 Tile fraction (Proportion) 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) -# 39-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 39-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.2.3.table b/definitions/grib2/tables/22/4.2.2.3.table index 690fab42b..2674e9f42 100644 --- a/definitions/grib2/tables/22/4.2.2.3.table +++ b/definitions/grib2/tables/22/4.2.2.3.table @@ -27,6 +27,6 @@ 25 25 Snow depth at elevation bands (kg m-2) 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.2.4.table b/definitions/grib2/tables/22/4.2.2.4.table index bb54fac22..ceb761557 100644 --- a/definitions/grib2/tables/22/4.2.2.4.table +++ b/definitions/grib2/tables/22/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.3.0.table b/definitions/grib2/tables/22/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/22/4.2.3.0.table +++ b/definitions/grib2/tables/22/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.2.3.1.table b/definitions/grib2/tables/22/4.2.3.1.table index 7d4364f4d..365e59a22 100644 --- a/definitions/grib2/tables/22/4.2.3.1.table +++ b/definitions/grib2/tables/22/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.201.table b/definitions/grib2/tables/22/4.201.table index 44943d5e0..0dca20884 100644 --- a/definitions/grib2/tables/22/4.201.table +++ b/definitions/grib2/tables/22/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.202.table b/definitions/grib2/tables/22/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/22/4.202.table +++ b/definitions/grib2/tables/22/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.203.table b/definitions/grib2/tables/22/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/22/4.203.table +++ b/definitions/grib2/tables/22/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.204.table b/definitions/grib2/tables/22/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/22/4.204.table +++ b/definitions/grib2/tables/22/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.205.table b/definitions/grib2/tables/22/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/22/4.205.table +++ b/definitions/grib2/tables/22/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.206.table b/definitions/grib2/tables/22/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/22/4.206.table +++ b/definitions/grib2/tables/22/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.207.table b/definitions/grib2/tables/22/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/22/4.207.table +++ b/definitions/grib2/tables/22/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.208.table b/definitions/grib2/tables/22/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/22/4.208.table +++ b/definitions/grib2/tables/22/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.209.table b/definitions/grib2/tables/22/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/22/4.209.table +++ b/definitions/grib2/tables/22/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.210.table b/definitions/grib2/tables/22/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/22/4.210.table +++ b/definitions/grib2/tables/22/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.211.table b/definitions/grib2/tables/22/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/22/4.211.table +++ b/definitions/grib2/tables/22/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.212.table b/definitions/grib2/tables/22/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/22/4.212.table +++ b/definitions/grib2/tables/22/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.213.table b/definitions/grib2/tables/22/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/22/4.213.table +++ b/definitions/grib2/tables/22/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.215.table b/definitions/grib2/tables/22/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/22/4.215.table +++ b/definitions/grib2/tables/22/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.216.table b/definitions/grib2/tables/22/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/22/4.216.table +++ b/definitions/grib2/tables/22/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/22/4.217.table b/definitions/grib2/tables/22/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/22/4.217.table +++ b/definitions/grib2/tables/22/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.218.table b/definitions/grib2/tables/22/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/22/4.218.table +++ b/definitions/grib2/tables/22/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.219.table b/definitions/grib2/tables/22/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/22/4.219.table +++ b/definitions/grib2/tables/22/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.220.table b/definitions/grib2/tables/22/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/22/4.220.table +++ b/definitions/grib2/tables/22/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.221.table b/definitions/grib2/tables/22/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/22/4.221.table +++ b/definitions/grib2/tables/22/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.222.table b/definitions/grib2/tables/22/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/22/4.222.table +++ b/definitions/grib2/tables/22/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.223.table b/definitions/grib2/tables/22/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/22/4.223.table +++ b/definitions/grib2/tables/22/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/22/4.224.table b/definitions/grib2/tables/22/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/22/4.224.table +++ b/definitions/grib2/tables/22/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/4.227.table b/definitions/grib2/tables/22/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/22/4.227.table +++ b/definitions/grib2/tables/22/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/22/4.230.table b/definitions/grib2/tables/22/4.230.table index 32a863fcb..183dff8cb 100644 --- a/definitions/grib2/tables/22/4.230.table +++ b/definitions/grib2/tables/22/4.230.table @@ -505,7 +505,7 @@ 62203 62203 Plantago (plantain) pollen 62204 62204 Rumex (dock, sorrel) pollen 62205 62205 Urtica (nettle) pollen -# 62206-62299 Reserved +# 62206-62299 Reserved 62300 62300 Poaceae (grass family) pollen #6230-65534 Reserved 65535 65535 Missing diff --git a/definitions/grib2/tables/22/4.234.table b/definitions/grib2/tables/22/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/22/4.234.table +++ b/definitions/grib2/tables/22/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/22/4.236.table b/definitions/grib2/tables/22/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/22/4.236.table +++ b/definitions/grib2/tables/22/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/22/4.240.table b/definitions/grib2/tables/22/4.240.table index f48c086e4..2a31fb2ab 100644 --- a/definitions/grib2/tables/22/4.240.table +++ b/definitions/grib2/tables/22/4.240.table @@ -1,13 +1,13 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given -1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre -2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg +0 0 No specific distribution function given +1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre +2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) -4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance +4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance 5 5 Log-normal distribution with spatially variable number density, mean diameter and variance 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/22/4.241.table b/definitions/grib2/tables/22/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/22/4.241.table +++ b/definitions/grib2/tables/22/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/22/4.242.table b/definitions/grib2/tables/22/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/22/4.242.table +++ b/definitions/grib2/tables/22/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/22/4.243.table b/definitions/grib2/tables/22/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/22/4.243.table +++ b/definitions/grib2/tables/22/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/22/4.244.table b/definitions/grib2/tables/22/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/22/4.244.table +++ b/definitions/grib2/tables/22/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.3.table b/definitions/grib2/tables/22/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/22/4.3.table +++ b/definitions/grib2/tables/22/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.4.table b/definitions/grib2/tables/22/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/22/4.4.table +++ b/definitions/grib2/tables/22/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.5.table b/definitions/grib2/tables/22/4.5.table index 2f1a8a8b7..33abd6293 100644 --- a/definitions/grib2/tables/22/4.5.table +++ b/definitions/grib2/tables/22/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,15 +16,15 @@ 14 14 Level of free convection (LFC) 15 15 Convective condensation level (CCL) 16 16 Level of neutral buoyancy or equilibrium level (LNB) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) -# 25-99 Reserved +# 25-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -33,20 +33,20 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 114 Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) -# 152-159 Reserved +# 152-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -55,7 +55,7 @@ 165 165 Bottom of sediment layer penetrated by thermal wave (-) 166 sfc Mixing layer (-) 167 167 Bottom of root zone (-) -# 168-173 Reserved +# 168-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -67,6 +67,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.6.table b/definitions/grib2/tables/22/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/22/4.6.table +++ b/definitions/grib2/tables/22/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.7.table b/definitions/grib2/tables/22/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/22/4.7.table +++ b/definitions/grib2/tables/22/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.8.table b/definitions/grib2/tables/22/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/22/4.8.table +++ b/definitions/grib2/tables/22/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.9.table b/definitions/grib2/tables/22/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/22/4.9.table +++ b/definitions/grib2/tables/22/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/4.91.table b/definitions/grib2/tables/22/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/22/4.91.table +++ b/definitions/grib2/tables/22/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/22/5.0.table b/definitions/grib2/tables/22/5.0.table index 20ed3d129..7fa534a0f 100644 --- a/definitions/grib2/tables/22/5.0.table +++ b/definitions/grib2/tables/22/5.0.table @@ -1,27 +1,27 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data # 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved 53 53 Spectral data for limited area models - complex packing # 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG pacling 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/22/5.1.table b/definitions/grib2/tables/22/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/22/5.1.table +++ b/definitions/grib2/tables/22/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.2.table b/definitions/grib2/tables/22/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/22/5.2.table +++ b/definitions/grib2/tables/22/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.25.table b/definitions/grib2/tables/22/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/22/5.25.table +++ b/definitions/grib2/tables/22/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/5.26.table b/definitions/grib2/tables/22/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/22/5.26.table +++ b/definitions/grib2/tables/22/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/5.3.table b/definitions/grib2/tables/22/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/22/5.3.table +++ b/definitions/grib2/tables/22/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.4.table b/definitions/grib2/tables/22/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/22/5.4.table +++ b/definitions/grib2/tables/22/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.40.table b/definitions/grib2/tables/22/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/22/5.40.table +++ b/definitions/grib2/tables/22/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/5.40000.table b/definitions/grib2/tables/22/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/22/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/22/5.5.table b/definitions/grib2/tables/22/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/22/5.5.table +++ b/definitions/grib2/tables/22/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.6.table b/definitions/grib2/tables/22/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/22/5.6.table +++ b/definitions/grib2/tables/22/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/22/5.7.table b/definitions/grib2/tables/22/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/22/5.7.table +++ b/definitions/grib2/tables/22/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/22/6.0.table b/definitions/grib2/tables/22/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/22/6.0.table +++ b/definitions/grib2/tables/22/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/23/0.0.table b/definitions/grib2/tables/23/0.0.table index b24c50564..2c5afceb4 100644 --- a/definitions/grib2/tables/23/0.0.table +++ b/definitions/grib2/tables/23/0.0.table @@ -1,10 +1,10 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Space products -# 4-9 Reserved -10 10 Oceanographic products -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Space products +# 4-9 Reserved +10 10 Oceanographic products +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/1.0.table b/definitions/grib2/tables/23/1.0.table index c871ea8fe..d65b24f9e 100644 --- a/definitions/grib2/tables/23/1.0.table +++ b/definitions/grib2/tables/23/1.0.table @@ -20,8 +20,8 @@ 18 18 Version implemented on 2 November 2016 19 19 Version implemented on 3 May 2017 20 20 Version implemented on 8 November 2017 -21 21 Version implemented on 2 May 2018 -22 22 Version implemented on 7 November 2018 +21 21 Version implemented on 2 May 2018 +22 22 Version implemented on 7 November 2018 23 23 Version implemented on 15 May 2019 -# 24-254 Future versions +# 24-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/23/1.1.table b/definitions/grib2/tables/23/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/23/1.1.table +++ b/definitions/grib2/tables/23/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/23/1.2.table b/definitions/grib2/tables/23/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/23/1.2.table +++ b/definitions/grib2/tables/23/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/1.3.table b/definitions/grib2/tables/23/1.3.table index dd7e68132..5e2e59087 100644 --- a/definitions/grib2/tables/23/1.3.table +++ b/definitions/grib2/tables/23/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products +6 6 S2S operational products +7 7 S2S test products 8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/1.4.table b/definitions/grib2/tables/23/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/23/1.4.table +++ b/definitions/grib2/tables/23/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/23/1.5.table b/definitions/grib2/tables/23/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/23/1.5.table +++ b/definitions/grib2/tables/23/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/23/1.6.table b/definitions/grib2/tables/23/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/23/1.6.table +++ b/definitions/grib2/tables/23/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.0.table b/definitions/grib2/tables/23/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/23/3.0.table +++ b/definitions/grib2/tables/23/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/23/3.1.table b/definitions/grib2/tables/23/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/23/3.1.table +++ b/definitions/grib2/tables/23/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/23/3.10.table b/definitions/grib2/tables/23/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/23/3.10.table +++ b/definitions/grib2/tables/23/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/23/3.11.table b/definitions/grib2/tables/23/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/23/3.11.table +++ b/definitions/grib2/tables/23/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/3.15.table b/definitions/grib2/tables/23/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/23/3.15.table +++ b/definitions/grib2/tables/23/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.2.table b/definitions/grib2/tables/23/3.2.table index 1b5c8241d..56ffdc08e 100644 --- a/definitions/grib2/tables/23/3.2.table +++ b/definitions/grib2/tables/23/3.2.table @@ -1,14 +1,14 @@ # Code table 3.2 - Shape of the Earth -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.20.table b/definitions/grib2/tables/23/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/23/3.20.table +++ b/definitions/grib2/tables/23/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.21.table b/definitions/grib2/tables/23/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/23/3.21.table +++ b/definitions/grib2/tables/23/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.25.table b/definitions/grib2/tables/23/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/23/3.25.table +++ b/definitions/grib2/tables/23/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.3.table b/definitions/grib2/tables/23/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/23/3.3.table +++ b/definitions/grib2/tables/23/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/23/3.4.table b/definitions/grib2/tables/23/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/23/3.4.table +++ b/definitions/grib2/tables/23/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/23/3.5.table b/definitions/grib2/tables/23/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/23/3.5.table +++ b/definitions/grib2/tables/23/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/23/3.6.table b/definitions/grib2/tables/23/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/23/3.6.table +++ b/definitions/grib2/tables/23/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/23/3.7.table b/definitions/grib2/tables/23/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/23/3.7.table +++ b/definitions/grib2/tables/23/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/3.8.table b/definitions/grib2/tables/23/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/23/3.8.table +++ b/definitions/grib2/tables/23/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/3.9.table b/definitions/grib2/tables/23/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/23/3.9.table +++ b/definitions/grib2/tables/23/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/23/4.0.table b/definitions/grib2/tables/23/4.0.table index 72f395b58..fb919290d 100644 --- a/definitions/grib2/tables/23/4.0.table +++ b/definitions/grib2/tables/23/4.0.table @@ -1,62 +1,62 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 62-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 62-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval # 92-253 Reserved 254 254 CCITT IA5 character string # 255-999 Reserved @@ -68,8 +68,8 @@ 1101 1101 Hovmoller-type grid with averaging or other statistical processing 50001 50001 Forecasting Systems with Variable Resolution in a point in time 50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval -# 1102-32767 Reserved -# 32768-65534 Reserved for local use +# 1102-32767 Reserved +# 32768-65534 Reserved for local use 40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data 40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/23/4.1.0.table b/definitions/grib2/tables/23/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/23/4.1.0.table +++ b/definitions/grib2/tables/23/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.1.1.table b/definitions/grib2/tables/23/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/23/4.1.1.table +++ b/definitions/grib2/tables/23/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.1.10.table b/definitions/grib2/tables/23/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/23/4.1.10.table +++ b/definitions/grib2/tables/23/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.1.2.table b/definitions/grib2/tables/23/4.1.2.table index 5b488fe9e..e74126645 100644 --- a/definitions/grib2/tables/23/4.1.2.table +++ b/definitions/grib2/tables/23/4.1.2.table @@ -1,9 +1,9 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.1.3.table b/definitions/grib2/tables/23/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/23/4.1.3.table +++ b/definitions/grib2/tables/23/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.10.table b/definitions/grib2/tables/23/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/23/4.10.table +++ b/definitions/grib2/tables/23/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/23/4.11.table b/definitions/grib2/tables/23/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/23/4.11.table +++ b/definitions/grib2/tables/23/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.12.table b/definitions/grib2/tables/23/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/23/4.12.table +++ b/definitions/grib2/tables/23/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.13.table b/definitions/grib2/tables/23/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/23/4.13.table +++ b/definitions/grib2/tables/23/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.14.table b/definitions/grib2/tables/23/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/23/4.14.table +++ b/definitions/grib2/tables/23/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.15.table b/definitions/grib2/tables/23/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/23/4.15.table +++ b/definitions/grib2/tables/23/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.16.table b/definitions/grib2/tables/23/4.16.table index de025080a..de3feccaf 100644 --- a/definitions/grib2/tables/23/4.16.table +++ b/definitions/grib2/tables/23/4.16.table @@ -1,9 +1,9 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.0.table b/definitions/grib2/tables/23/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/23/4.2.0.0.table +++ b/definitions/grib2/tables/23/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.1.table b/definitions/grib2/tables/23/4.2.0.1.table index 0c01ce89b..b4c1e8ba3 100644 --- a/definitions/grib2/tables/23/4.2.0.1.table +++ b/definitions/grib2/tables/23/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -121,6 +121,6 @@ 119 119 Unbalanced component of specific cloud liquid water content (kg kg-1) 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) -# 122-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 122-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.13.table b/definitions/grib2/tables/23/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/23/4.2.0.13.table +++ b/definitions/grib2/tables/23/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.14.table b/definitions/grib2/tables/23/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/23/4.2.0.14.table +++ b/definitions/grib2/tables/23/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.15.table b/definitions/grib2/tables/23/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/23/4.2.0.15.table +++ b/definitions/grib2/tables/23/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.16.table b/definitions/grib2/tables/23/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/23/4.2.0.16.table +++ b/definitions/grib2/tables/23/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.18.table b/definitions/grib2/tables/23/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/23/4.2.0.18.table +++ b/definitions/grib2/tables/23/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.19.table b/definitions/grib2/tables/23/4.2.0.19.table index d28010f2f..af9648d43 100644 --- a/definitions/grib2/tables/23/4.2.0.19.table +++ b/definitions/grib2/tables/23/4.2.0.19.table @@ -35,6 +35,6 @@ 33 33 Visibility through liquid fog (m) 34 34 Visibility through ice fog (m) 35 35 Visibility through blowing snow (m) -# 36-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 36-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.190.table b/definitions/grib2/tables/23/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/23/4.2.0.190.table +++ b/definitions/grib2/tables/23/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.191.table b/definitions/grib2/tables/23/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/23/4.2.0.191.table +++ b/definitions/grib2/tables/23/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.2.table b/definitions/grib2/tables/23/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/23/4.2.0.2.table +++ b/definitions/grib2/tables/23/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.20.table b/definitions/grib2/tables/23/4.2.0.20.table index 9e6ac3c05..214498114 100644 --- a/definitions/grib2/tables/23/4.2.0.20.table +++ b/definitions/grib2/tables/23/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -44,7 +44,7 @@ 73 73 Column-integrated below-cloud scavenging rate by convective precipitation (kg m-2 s-1) 74 74 Column-integrated release rate from evaporating convective precipitation (kg m-2 s-1) 75 75 Wildfire flux (kg m-2 s-1) -# 76-99 Reserved +# 76-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -57,6 +57,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.3.table b/definitions/grib2/tables/23/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/23/4.2.0.3.table +++ b/definitions/grib2/tables/23/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.4.table b/definitions/grib2/tables/23/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/23/4.2.0.4.table +++ b/definitions/grib2/tables/23/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.5.table b/definitions/grib2/tables/23/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/23/4.2.0.5.table +++ b/definitions/grib2/tables/23/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.6.table b/definitions/grib2/tables/23/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/23/4.2.0.6.table +++ b/definitions/grib2/tables/23/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.0.7.table b/definitions/grib2/tables/23/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/23/4.2.0.7.table +++ b/definitions/grib2/tables/23/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.1.0.table b/definitions/grib2/tables/23/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/23/4.2.1.0.table +++ b/definitions/grib2/tables/23/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.1.1.table b/definitions/grib2/tables/23/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/23/4.2.1.1.table +++ b/definitions/grib2/tables/23/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.0.table b/definitions/grib2/tables/23/4.2.10.0.table index 6a60ba8aa..41a8c1f41 100644 --- a/definitions/grib2/tables/23/4.2.10.0.table +++ b/definitions/grib2/tables/23/4.2.10.0.table @@ -55,7 +55,7 @@ 53 53 Mean wave direction of first swell partition (deg) 54 54 Mean wave direction of second swell partition (deg) 55 55 Mean wave direction of third swell partition (deg) -# 56-191 Reserved +# 56-191 Reserved 56 56 Wave directional width of first swell partition (-) 57 57 Wave directional width of second swell partition (-) 58 58 Wave directional width of third swell partition (-) @@ -65,6 +65,6 @@ 62 62 Wave frequency width (-) 63 63 Frequency width of wind waves (-) 64 64 Frequency width of total swell (-) -# 65-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 65-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.1.table b/definitions/grib2/tables/23/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/23/4.2.10.1.table +++ b/definitions/grib2/tables/23/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.191.table b/definitions/grib2/tables/23/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/23/4.2.10.191.table +++ b/definitions/grib2/tables/23/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.2.table b/definitions/grib2/tables/23/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/23/4.2.10.2.table +++ b/definitions/grib2/tables/23/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.3.table b/definitions/grib2/tables/23/4.2.10.3.table index de7afd61c..b01d7ae46 100644 --- a/definitions/grib2/tables/23/4.2.10.3.table +++ b/definitions/grib2/tables/23/4.2.10.3.table @@ -2,6 +2,6 @@ 0 0 Water temperature (K) 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.10.4.table b/definitions/grib2/tables/23/4.2.10.4.table index 69ba0cc66..66e9a323c 100644 --- a/definitions/grib2/tables/23/4.2.10.4.table +++ b/definitions/grib2/tables/23/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -19,6 +19,6 @@ 19 19 Water potential density (rho theta) (kg m-3) 20 20 Water potential density anomaly (sigma theta) (kg m-3) 21 21 Practical salinity (Numeric) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.2.0.table b/definitions/grib2/tables/23/4.2.2.0.table index 81548840c..b253cac22 100644 --- a/definitions/grib2/tables/23/4.2.2.0.table +++ b/definitions/grib2/tables/23/4.2.2.0.table @@ -38,6 +38,6 @@ 36 36 Tile fraction (Proportion) 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) -# 39-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 39-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.2.3.table b/definitions/grib2/tables/23/4.2.2.3.table index 690fab42b..2674e9f42 100644 --- a/definitions/grib2/tables/23/4.2.2.3.table +++ b/definitions/grib2/tables/23/4.2.2.3.table @@ -27,6 +27,6 @@ 25 25 Snow depth at elevation bands (kg m-2) 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.2.4.table b/definitions/grib2/tables/23/4.2.2.4.table index bb54fac22..ceb761557 100644 --- a/definitions/grib2/tables/23/4.2.2.4.table +++ b/definitions/grib2/tables/23/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.3.0.table b/definitions/grib2/tables/23/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/23/4.2.3.0.table +++ b/definitions/grib2/tables/23/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.2.3.1.table b/definitions/grib2/tables/23/4.2.3.1.table index 7d4364f4d..365e59a22 100644 --- a/definitions/grib2/tables/23/4.2.3.1.table +++ b/definitions/grib2/tables/23/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.201.table b/definitions/grib2/tables/23/4.201.table index 44943d5e0..0dca20884 100644 --- a/definitions/grib2/tables/23/4.201.table +++ b/definitions/grib2/tables/23/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.202.table b/definitions/grib2/tables/23/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/23/4.202.table +++ b/definitions/grib2/tables/23/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.203.table b/definitions/grib2/tables/23/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/23/4.203.table +++ b/definitions/grib2/tables/23/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.204.table b/definitions/grib2/tables/23/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/23/4.204.table +++ b/definitions/grib2/tables/23/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.205.table b/definitions/grib2/tables/23/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/23/4.205.table +++ b/definitions/grib2/tables/23/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.206.table b/definitions/grib2/tables/23/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/23/4.206.table +++ b/definitions/grib2/tables/23/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.207.table b/definitions/grib2/tables/23/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/23/4.207.table +++ b/definitions/grib2/tables/23/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.208.table b/definitions/grib2/tables/23/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/23/4.208.table +++ b/definitions/grib2/tables/23/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.209.table b/definitions/grib2/tables/23/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/23/4.209.table +++ b/definitions/grib2/tables/23/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.210.table b/definitions/grib2/tables/23/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/23/4.210.table +++ b/definitions/grib2/tables/23/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.211.table b/definitions/grib2/tables/23/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/23/4.211.table +++ b/definitions/grib2/tables/23/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.212.table b/definitions/grib2/tables/23/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/23/4.212.table +++ b/definitions/grib2/tables/23/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.213.table b/definitions/grib2/tables/23/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/23/4.213.table +++ b/definitions/grib2/tables/23/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.215.table b/definitions/grib2/tables/23/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/23/4.215.table +++ b/definitions/grib2/tables/23/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.216.table b/definitions/grib2/tables/23/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/23/4.216.table +++ b/definitions/grib2/tables/23/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/23/4.217.table b/definitions/grib2/tables/23/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/23/4.217.table +++ b/definitions/grib2/tables/23/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.218.table b/definitions/grib2/tables/23/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/23/4.218.table +++ b/definitions/grib2/tables/23/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.219.table b/definitions/grib2/tables/23/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/23/4.219.table +++ b/definitions/grib2/tables/23/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.220.table b/definitions/grib2/tables/23/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/23/4.220.table +++ b/definitions/grib2/tables/23/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.221.table b/definitions/grib2/tables/23/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/23/4.221.table +++ b/definitions/grib2/tables/23/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.222.table b/definitions/grib2/tables/23/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/23/4.222.table +++ b/definitions/grib2/tables/23/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.223.table b/definitions/grib2/tables/23/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/23/4.223.table +++ b/definitions/grib2/tables/23/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/23/4.224.table b/definitions/grib2/tables/23/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/23/4.224.table +++ b/definitions/grib2/tables/23/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/4.227.table b/definitions/grib2/tables/23/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/23/4.227.table +++ b/definitions/grib2/tables/23/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/23/4.234.table b/definitions/grib2/tables/23/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/23/4.234.table +++ b/definitions/grib2/tables/23/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/23/4.236.table b/definitions/grib2/tables/23/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/23/4.236.table +++ b/definitions/grib2/tables/23/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/23/4.240.table b/definitions/grib2/tables/23/4.240.table index f48c086e4..2a31fb2ab 100644 --- a/definitions/grib2/tables/23/4.240.table +++ b/definitions/grib2/tables/23/4.240.table @@ -1,13 +1,13 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given -1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre -2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg +0 0 No specific distribution function given +1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre +2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) -4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance +4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance 5 5 Log-normal distribution with spatially variable number density, mean diameter and variance 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/23/4.241.table b/definitions/grib2/tables/23/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/23/4.241.table +++ b/definitions/grib2/tables/23/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/23/4.242.table b/definitions/grib2/tables/23/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/23/4.242.table +++ b/definitions/grib2/tables/23/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/23/4.243.table b/definitions/grib2/tables/23/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/23/4.243.table +++ b/definitions/grib2/tables/23/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/23/4.244.table b/definitions/grib2/tables/23/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/23/4.244.table +++ b/definitions/grib2/tables/23/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.3.table b/definitions/grib2/tables/23/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/23/4.3.table +++ b/definitions/grib2/tables/23/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.4.table b/definitions/grib2/tables/23/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/23/4.4.table +++ b/definitions/grib2/tables/23/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.5.table b/definitions/grib2/tables/23/4.5.table index 178a04445..638258422 100644 --- a/definitions/grib2/tables/23/4.5.table +++ b/definitions/grib2/tables/23/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,16 +16,16 @@ 14 14 Level of free convection (LFC) 15 15 Convective condensation level (CCL) 16 16 Level of neutral buoyancy or equilibrium level (LNB) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) 25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ) -# 26-99 Reserved +# 26-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -34,20 +34,20 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 114 Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) -# 152-159 Reserved +# 152-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -56,7 +56,7 @@ 165 165 Bottom of sediment layer penetrated by thermal wave (-) 166 sfc Mixing layer (-) 167 167 Bottom of root zone (-) -# 168-173 Reserved +# 168-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -68,6 +68,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.6.table b/definitions/grib2/tables/23/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/23/4.6.table +++ b/definitions/grib2/tables/23/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.7.table b/definitions/grib2/tables/23/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/23/4.7.table +++ b/definitions/grib2/tables/23/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.8.table b/definitions/grib2/tables/23/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/23/4.8.table +++ b/definitions/grib2/tables/23/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.9.table b/definitions/grib2/tables/23/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/23/4.9.table +++ b/definitions/grib2/tables/23/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/4.91.table b/definitions/grib2/tables/23/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/23/4.91.table +++ b/definitions/grib2/tables/23/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/23/5.0.table b/definitions/grib2/tables/23/5.0.table index 20ed3d129..7fa534a0f 100644 --- a/definitions/grib2/tables/23/5.0.table +++ b/definitions/grib2/tables/23/5.0.table @@ -1,27 +1,27 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data # 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved 53 53 Spectral data for limited area models - complex packing # 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG pacling 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/23/5.1.table b/definitions/grib2/tables/23/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/23/5.1.table +++ b/definitions/grib2/tables/23/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.2.table b/definitions/grib2/tables/23/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/23/5.2.table +++ b/definitions/grib2/tables/23/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.25.table b/definitions/grib2/tables/23/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/23/5.25.table +++ b/definitions/grib2/tables/23/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/5.26.table b/definitions/grib2/tables/23/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/23/5.26.table +++ b/definitions/grib2/tables/23/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/5.3.table b/definitions/grib2/tables/23/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/23/5.3.table +++ b/definitions/grib2/tables/23/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.4.table b/definitions/grib2/tables/23/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/23/5.4.table +++ b/definitions/grib2/tables/23/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.40.table b/definitions/grib2/tables/23/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/23/5.40.table +++ b/definitions/grib2/tables/23/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/5.40000.table b/definitions/grib2/tables/23/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/23/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/23/5.5.table b/definitions/grib2/tables/23/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/23/5.5.table +++ b/definitions/grib2/tables/23/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.6.table b/definitions/grib2/tables/23/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/23/5.6.table +++ b/definitions/grib2/tables/23/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/23/5.7.table b/definitions/grib2/tables/23/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/23/5.7.table +++ b/definitions/grib2/tables/23/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/23/6.0.table b/definitions/grib2/tables/23/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/23/6.0.table +++ b/definitions/grib2/tables/23/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/24/0.0.table b/definitions/grib2/tables/24/0.0.table index 48569a541..cb9de8e80 100644 --- a/definitions/grib2/tables/24/0.0.table +++ b/definitions/grib2/tables/24/0.0.table @@ -8,4 +8,4 @@ 10 10 Oceanographic products # 11-191 Reserved # 192-254 Reserved for local use -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/24/1.0.table b/definitions/grib2/tables/24/1.0.table index e2fa20abe..d577b64fc 100644 --- a/definitions/grib2/tables/24/1.0.table +++ b/definitions/grib2/tables/24/1.0.table @@ -1,28 +1,28 @@ # Code table 1.0 - GRIB master tables version number -0 0 Experimental -1 1 Version implemented on 7 November 2001 -2 2 Version implemented on 4 November 2003 -3 3 Version implemented on 2 November 2005 -4 4 Version implemented on 7 November 2007 -5 5 Version implemented on 4 November 2009 -6 6 Version implemented on 15 September 2010 -7 7 Version implemented on 4 May 2011 -8 8 Version implemented on 2 November 2011 -9 9 Version implemented on 2 May 2012 -10 10 Version implemented on 7 November 2012 -11 11 Version implemented on 8 May 2013 -12 12 Version implemented on 14 November 2013 -13 13 Version implemented on 7 May 2014 -14 14 Version implemented on 5 November 2014 -15 15 Version implemented on 6 May 2015 -16 16 Version implemented on 11 November 2015 -17 17 Version implemented on 4 May 2016 -18 18 Version implemented on 2 November 2016 -19 19 Version implemented on 3 May 2017 -20 20 Version implemented on 8 November 2017 -21 21 Version implemented on 2 May 2018 -22 22 Version implemented on 7 November 2018 +0 0 Experimental +1 1 Version implemented on 7 November 2001 +2 2 Version implemented on 4 November 2003 +3 3 Version implemented on 2 November 2005 +4 4 Version implemented on 7 November 2007 +5 5 Version implemented on 4 November 2009 +6 6 Version implemented on 15 September 2010 +7 7 Version implemented on 4 May 2011 +8 8 Version implemented on 2 November 2011 +9 9 Version implemented on 2 May 2012 +10 10 Version implemented on 7 November 2012 +11 11 Version implemented on 8 May 2013 +12 12 Version implemented on 14 November 2013 +13 13 Version implemented on 7 May 2014 +14 14 Version implemented on 5 November 2014 +15 15 Version implemented on 6 May 2015 +16 16 Version implemented on 11 November 2015 +17 17 Version implemented on 4 May 2016 +18 18 Version implemented on 2 November 2016 +19 19 Version implemented on 3 May 2017 +20 20 Version implemented on 8 November 2017 +21 21 Version implemented on 2 May 2018 +22 22 Version implemented on 7 November 2018 23 23 Version implemented on 15 May 2019 24 24 Version implemented on 6 November 2019 -# 25-254 Future versions +# 25-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/24/1.1.table b/definitions/grib2/tables/24/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/24/1.1.table +++ b/definitions/grib2/tables/24/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/24/1.2.table b/definitions/grib2/tables/24/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/24/1.2.table +++ b/definitions/grib2/tables/24/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/1.3.table b/definitions/grib2/tables/24/1.3.table index a5bd99e5b..5e2e59087 100644 --- a/definitions/grib2/tables/24/1.3.table +++ b/definitions/grib2/tables/24/1.3.table @@ -12,5 +12,5 @@ 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) # 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/1.4.table b/definitions/grib2/tables/24/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/24/1.4.table +++ b/definitions/grib2/tables/24/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/24/1.5.table b/definitions/grib2/tables/24/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/24/1.5.table +++ b/definitions/grib2/tables/24/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/24/1.6.table b/definitions/grib2/tables/24/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/24/1.6.table +++ b/definitions/grib2/tables/24/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.0.table b/definitions/grib2/tables/24/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/24/3.0.table +++ b/definitions/grib2/tables/24/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/24/3.1.table b/definitions/grib2/tables/24/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/24/3.1.table +++ b/definitions/grib2/tables/24/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/24/3.10.table b/definitions/grib2/tables/24/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/24/3.10.table +++ b/definitions/grib2/tables/24/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/24/3.11.table b/definitions/grib2/tables/24/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/24/3.11.table +++ b/definitions/grib2/tables/24/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/3.15.table b/definitions/grib2/tables/24/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/24/3.15.table +++ b/definitions/grib2/tables/24/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.2.table b/definitions/grib2/tables/24/3.2.table index 1b5c8241d..56ffdc08e 100644 --- a/definitions/grib2/tables/24/3.2.table +++ b/definitions/grib2/tables/24/3.2.table @@ -1,14 +1,14 @@ # Code table 3.2 - Shape of the Earth -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.20.table b/definitions/grib2/tables/24/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/24/3.20.table +++ b/definitions/grib2/tables/24/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.21.table b/definitions/grib2/tables/24/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/24/3.21.table +++ b/definitions/grib2/tables/24/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.25.table b/definitions/grib2/tables/24/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/24/3.25.table +++ b/definitions/grib2/tables/24/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.3.table b/definitions/grib2/tables/24/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/24/3.3.table +++ b/definitions/grib2/tables/24/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/24/3.4.table b/definitions/grib2/tables/24/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/24/3.4.table +++ b/definitions/grib2/tables/24/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/24/3.5.table b/definitions/grib2/tables/24/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/24/3.5.table +++ b/definitions/grib2/tables/24/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/24/3.6.table b/definitions/grib2/tables/24/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/24/3.6.table +++ b/definitions/grib2/tables/24/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/24/3.7.table b/definitions/grib2/tables/24/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/24/3.7.table +++ b/definitions/grib2/tables/24/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/3.8.table b/definitions/grib2/tables/24/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/24/3.8.table +++ b/definitions/grib2/tables/24/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/3.9.table b/definitions/grib2/tables/24/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/24/3.9.table +++ b/definitions/grib2/tables/24/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/24/4.1.0.table b/definitions/grib2/tables/24/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/24/4.1.0.table +++ b/definitions/grib2/tables/24/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.1.1.table b/definitions/grib2/tables/24/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/24/4.1.1.table +++ b/definitions/grib2/tables/24/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.1.10.table b/definitions/grib2/tables/24/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/24/4.1.10.table +++ b/definitions/grib2/tables/24/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.1.2.table b/definitions/grib2/tables/24/4.1.2.table index 60e2452d4..046689b83 100644 --- a/definitions/grib2/tables/24/4.1.2.table +++ b/definitions/grib2/tables/24/4.1.2.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.1.3.table b/definitions/grib2/tables/24/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/24/4.1.3.table +++ b/definitions/grib2/tables/24/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.10.table b/definitions/grib2/tables/24/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/24/4.10.table +++ b/definitions/grib2/tables/24/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/24/4.11.table b/definitions/grib2/tables/24/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/24/4.11.table +++ b/definitions/grib2/tables/24/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.12.table b/definitions/grib2/tables/24/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/24/4.12.table +++ b/definitions/grib2/tables/24/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.13.table b/definitions/grib2/tables/24/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/24/4.13.table +++ b/definitions/grib2/tables/24/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.14.table b/definitions/grib2/tables/24/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/24/4.14.table +++ b/definitions/grib2/tables/24/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.15.table b/definitions/grib2/tables/24/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/24/4.15.table +++ b/definitions/grib2/tables/24/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.16.table b/definitions/grib2/tables/24/4.16.table index de025080a..de3feccaf 100644 --- a/definitions/grib2/tables/24/4.16.table +++ b/definitions/grib2/tables/24/4.16.table @@ -1,9 +1,9 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.0.table b/definitions/grib2/tables/24/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/24/4.2.0.0.table +++ b/definitions/grib2/tables/24/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.1.table b/definitions/grib2/tables/24/4.2.0.1.table index ef6d2ed7e..46f83bce9 100644 --- a/definitions/grib2/tables/24/4.2.0.1.table +++ b/definitions/grib2/tables/24/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -121,7 +121,7 @@ 119 119 Unbalanced component of specific cloud liquid water content (kg kg-1) 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) -# 122-128 Reserved +# 122-128 Reserved 129 129 Effective radius of cloud water (m) 130 130 Effective radius of rain (m) 131 131 Effective radius of cloud ice (m) @@ -136,6 +136,6 @@ 140 140 Effective aspect ratio of graupel (-) 141 141 Effective aspect ratio of hail (-) 142 142 Effective aspect ratio of subgrid ice clouds (-) -# 143-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 143-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.13.table b/definitions/grib2/tables/24/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/24/4.2.0.13.table +++ b/definitions/grib2/tables/24/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.14.table b/definitions/grib2/tables/24/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/24/4.2.0.14.table +++ b/definitions/grib2/tables/24/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.15.table b/definitions/grib2/tables/24/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/24/4.2.0.15.table +++ b/definitions/grib2/tables/24/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.16.table b/definitions/grib2/tables/24/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/24/4.2.0.16.table +++ b/definitions/grib2/tables/24/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.18.table b/definitions/grib2/tables/24/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/24/4.2.0.18.table +++ b/definitions/grib2/tables/24/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.19.table b/definitions/grib2/tables/24/4.2.0.19.table index d2a1b8d1c..ac03c2f37 100644 --- a/definitions/grib2/tables/24/4.2.0.19.table +++ b/definitions/grib2/tables/24/4.2.0.19.table @@ -37,5 +37,5 @@ 35 35 Visibility through blowing snow (m) 36 36 Presence of snow squalls (Code table 4.222) # 37-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.190.table b/definitions/grib2/tables/24/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/24/4.2.0.190.table +++ b/definitions/grib2/tables/24/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.191.table b/definitions/grib2/tables/24/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/24/4.2.0.191.table +++ b/definitions/grib2/tables/24/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.2.table b/definitions/grib2/tables/24/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/24/4.2.0.2.table +++ b/definitions/grib2/tables/24/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.20.table b/definitions/grib2/tables/24/4.2.0.20.table index 042732760..9b0170f5c 100644 --- a/definitions/grib2/tables/24/4.2.0.20.table +++ b/definitions/grib2/tables/24/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -46,7 +46,7 @@ 75 75 Wildfire flux (kg m-2 s-1) 76 76 Emission rate (kg kg-1 s-1) 77 77 Surface emission flux (kg m-2 s-1) -# 78-99 Reserved +# 78-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -59,6 +59,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.3.table b/definitions/grib2/tables/24/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/24/4.2.0.3.table +++ b/definitions/grib2/tables/24/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.4.table b/definitions/grib2/tables/24/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/24/4.2.0.4.table +++ b/definitions/grib2/tables/24/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.5.table b/definitions/grib2/tables/24/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/24/4.2.0.5.table +++ b/definitions/grib2/tables/24/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.6.table b/definitions/grib2/tables/24/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/24/4.2.0.6.table +++ b/definitions/grib2/tables/24/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.0.7.table b/definitions/grib2/tables/24/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/24/4.2.0.7.table +++ b/definitions/grib2/tables/24/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.1.0.table b/definitions/grib2/tables/24/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/24/4.2.1.0.table +++ b/definitions/grib2/tables/24/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.1.1.table b/definitions/grib2/tables/24/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/24/4.2.1.1.table +++ b/definitions/grib2/tables/24/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.0.table b/definitions/grib2/tables/24/4.2.10.0.table index 53c9d2421..c35e2abfd 100644 --- a/definitions/grib2/tables/24/4.2.10.0.table +++ b/definitions/grib2/tables/24/4.2.10.0.table @@ -64,6 +64,6 @@ 62 62 Wave frequency width (-) 63 63 Frequency width of wind waves (-) 64 64 Frequency width of total swell (-) -# 65-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 65-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.1.table b/definitions/grib2/tables/24/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/24/4.2.10.1.table +++ b/definitions/grib2/tables/24/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.191.table b/definitions/grib2/tables/24/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/24/4.2.10.191.table +++ b/definitions/grib2/tables/24/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.2.table b/definitions/grib2/tables/24/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/24/4.2.10.2.table +++ b/definitions/grib2/tables/24/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.3.table b/definitions/grib2/tables/24/4.2.10.3.table index 9f9492f04..ac1603ecc 100644 --- a/definitions/grib2/tables/24/4.2.10.3.table +++ b/definitions/grib2/tables/24/4.2.10.3.table @@ -3,6 +3,6 @@ 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) 3 3 Practical salinity (Numeric) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.10.4.table b/definitions/grib2/tables/24/4.2.10.4.table index 69ba0cc66..66e9a323c 100644 --- a/definitions/grib2/tables/24/4.2.10.4.table +++ b/definitions/grib2/tables/24/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -19,6 +19,6 @@ 19 19 Water potential density (rho theta) (kg m-3) 20 20 Water potential density anomaly (sigma theta) (kg m-3) 21 21 Practical salinity (Numeric) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.2.0.table b/definitions/grib2/tables/24/4.2.2.0.table index 849c2f1e4..bcfc982b7 100644 --- a/definitions/grib2/tables/24/4.2.2.0.table +++ b/definitions/grib2/tables/24/4.2.2.0.table @@ -39,6 +39,6 @@ 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) 39 39 Evapotranspiration rate (kg m-2 s-1) -# 40-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 40-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.2.3.table b/definitions/grib2/tables/24/4.2.2.3.table index 8f53f4029..2674e9f42 100644 --- a/definitions/grib2/tables/24/4.2.2.3.table +++ b/definitions/grib2/tables/24/4.2.2.3.table @@ -28,5 +28,5 @@ 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) # 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.2.4.table b/definitions/grib2/tables/24/4.2.2.4.table index bb54fac22..ceb761557 100644 --- a/definitions/grib2/tables/24/4.2.2.4.table +++ b/definitions/grib2/tables/24/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.3.0.table b/definitions/grib2/tables/24/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/24/4.2.3.0.table +++ b/definitions/grib2/tables/24/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.2.3.1.table b/definitions/grib2/tables/24/4.2.3.1.table index 7d4364f4d..365e59a22 100644 --- a/definitions/grib2/tables/24/4.2.3.1.table +++ b/definitions/grib2/tables/24/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.201.table b/definitions/grib2/tables/24/4.201.table index 44943d5e0..0dca20884 100644 --- a/definitions/grib2/tables/24/4.201.table +++ b/definitions/grib2/tables/24/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.202.table b/definitions/grib2/tables/24/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/24/4.202.table +++ b/definitions/grib2/tables/24/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.203.table b/definitions/grib2/tables/24/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/24/4.203.table +++ b/definitions/grib2/tables/24/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.204.table b/definitions/grib2/tables/24/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/24/4.204.table +++ b/definitions/grib2/tables/24/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.205.table b/definitions/grib2/tables/24/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/24/4.205.table +++ b/definitions/grib2/tables/24/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.206.table b/definitions/grib2/tables/24/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/24/4.206.table +++ b/definitions/grib2/tables/24/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.207.table b/definitions/grib2/tables/24/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/24/4.207.table +++ b/definitions/grib2/tables/24/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.208.table b/definitions/grib2/tables/24/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/24/4.208.table +++ b/definitions/grib2/tables/24/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.209.table b/definitions/grib2/tables/24/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/24/4.209.table +++ b/definitions/grib2/tables/24/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.210.table b/definitions/grib2/tables/24/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/24/4.210.table +++ b/definitions/grib2/tables/24/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.211.table b/definitions/grib2/tables/24/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/24/4.211.table +++ b/definitions/grib2/tables/24/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.212.table b/definitions/grib2/tables/24/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/24/4.212.table +++ b/definitions/grib2/tables/24/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.213.table b/definitions/grib2/tables/24/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/24/4.213.table +++ b/definitions/grib2/tables/24/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.215.table b/definitions/grib2/tables/24/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/24/4.215.table +++ b/definitions/grib2/tables/24/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.216.table b/definitions/grib2/tables/24/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/24/4.216.table +++ b/definitions/grib2/tables/24/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/24/4.217.table b/definitions/grib2/tables/24/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/24/4.217.table +++ b/definitions/grib2/tables/24/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.218.table b/definitions/grib2/tables/24/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/24/4.218.table +++ b/definitions/grib2/tables/24/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.219.table b/definitions/grib2/tables/24/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/24/4.219.table +++ b/definitions/grib2/tables/24/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.220.table b/definitions/grib2/tables/24/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/24/4.220.table +++ b/definitions/grib2/tables/24/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.221.table b/definitions/grib2/tables/24/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/24/4.221.table +++ b/definitions/grib2/tables/24/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.222.table b/definitions/grib2/tables/24/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/24/4.222.table +++ b/definitions/grib2/tables/24/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.223.table b/definitions/grib2/tables/24/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/24/4.223.table +++ b/definitions/grib2/tables/24/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/24/4.224.table b/definitions/grib2/tables/24/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/24/4.224.table +++ b/definitions/grib2/tables/24/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/4.227.table b/definitions/grib2/tables/24/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/24/4.227.table +++ b/definitions/grib2/tables/24/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/24/4.230.table b/definitions/grib2/tables/24/4.230.table index 147ff9747..6159d2aad 100644 --- a/definitions/grib2/tables/24/4.230.table +++ b/definitions/grib2/tables/24/4.230.table @@ -101,10 +101,10 @@ 10052 10052 Ethyl hydroperoxide CH3CH2OOH 10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO 10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH -# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) +# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) 10500 10500 Dimethyl sulphide CH3SCH3 (DMS) 10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO -# 10502-20000 Reserved +# 10502-20000 Reserved 20001 20001 Hydrogen chloride HCl 20002 20002 CFC-11 (trichlorofluoromethane) CCl3F 20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2 @@ -507,6 +507,6 @@ 62205 62205 Urtica (nettle) pollen # 62206-62299 Reserved 62300 62300 Poaceae (grass family) pollen -# 62301-62999 Reserved -# 63000-65534 For experimental use at local level +# 62301-62999 Reserved +# 63000-65534 For experimental use at local level 65535 65535 Missing diff --git a/definitions/grib2/tables/24/4.233.table b/definitions/grib2/tables/24/4.233.table index 051d603a9..d60790f5a 100644 --- a/definitions/grib2/tables/24/4.233.table +++ b/definitions/grib2/tables/24/4.233.table @@ -101,10 +101,10 @@ 10052 10052 Ethyl hydroperoxide CH3CH2OOH 10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO 10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH -# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) +# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) 10500 10500 Dimethyl sulphide CH3SCH3 (DMS) 10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO -# 10502-20000 Reserved +# 10502-20000 Reserved 20001 20001 Hydrogen chloride HCl 20002 20002 CFC-11 (trichlorofluoromethane) CCl3F 20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2 @@ -507,6 +507,6 @@ 62205 62205 Urtica (nettle) pollen # 62206-62299 Reserved 62300 62300 Poaceae (grass family) pollen -# 62301-62999 Reserved -# 63000-65534 For experimental use at local level +# 62301-62999 Reserved +# 63000-65534 For experimental use at local level 65535 65535 Missing diff --git a/definitions/grib2/tables/24/4.234.table b/definitions/grib2/tables/24/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/24/4.234.table +++ b/definitions/grib2/tables/24/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/24/4.236.table b/definitions/grib2/tables/24/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/24/4.236.table +++ b/definitions/grib2/tables/24/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/24/4.238.table b/definitions/grib2/tables/24/4.238.table index 6dfaf8286..84ae04c80 100644 --- a/definitions/grib2/tables/24/4.238.table +++ b/definitions/grib2/tables/24/4.238.table @@ -1,16 +1,16 @@ # Code table 4.238 - Source or sink -0 0 Reserved -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.240.table b/definitions/grib2/tables/24/4.240.table index f48c086e4..2a31fb2ab 100644 --- a/definitions/grib2/tables/24/4.240.table +++ b/definitions/grib2/tables/24/4.240.table @@ -1,13 +1,13 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given -1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre -2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg +0 0 No specific distribution function given +1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre +2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) -4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance +4 4 Gaussian (normal) distribution with spatially variable concentration, mean diameter and variance 5 5 Log-normal distribution with spatially variable number density, mean diameter and variance 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/24/4.241.table b/definitions/grib2/tables/24/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/24/4.241.table +++ b/definitions/grib2/tables/24/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/24/4.242.table b/definitions/grib2/tables/24/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/24/4.242.table +++ b/definitions/grib2/tables/24/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/24/4.243.table b/definitions/grib2/tables/24/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/24/4.243.table +++ b/definitions/grib2/tables/24/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/24/4.244.table b/definitions/grib2/tables/24/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/24/4.244.table +++ b/definitions/grib2/tables/24/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.3.table b/definitions/grib2/tables/24/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/24/4.3.table +++ b/definitions/grib2/tables/24/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.4.table b/definitions/grib2/tables/24/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/24/4.4.table +++ b/definitions/grib2/tables/24/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.5.table b/definitions/grib2/tables/24/4.5.table index 2847d65f6..338a39b6a 100644 --- a/definitions/grib2/tables/24/4.5.table +++ b/definitions/grib2/tables/24/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,7 +16,7 @@ 14 14 Level of free convection (LFC) 15 15 Convective condensation level (CCL) 16 16 Level of neutral buoyancy or equilibrium level (LNB) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) @@ -25,7 +25,7 @@ 25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ) # 26-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -34,18 +34,18 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 114 Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) # 152-159 Reserved 160 o2d Depth below sea level (m) @@ -59,7 +59,7 @@ 168 168 Ocean model level (Numeric) 169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3) 170 170 Ocean level defined by water potential temperature difference from near-surface to level (K) -# 171-173 Reserved +# 171-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -71,6 +71,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.6.table b/definitions/grib2/tables/24/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/24/4.6.table +++ b/definitions/grib2/tables/24/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.7.table b/definitions/grib2/tables/24/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/24/4.7.table +++ b/definitions/grib2/tables/24/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.8.table b/definitions/grib2/tables/24/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/24/4.8.table +++ b/definitions/grib2/tables/24/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.9.table b/definitions/grib2/tables/24/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/24/4.9.table +++ b/definitions/grib2/tables/24/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/4.91.table b/definitions/grib2/tables/24/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/24/4.91.table +++ b/definitions/grib2/tables/24/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/24/5.0.table b/definitions/grib2/tables/24/5.0.table index 20ed3d129..7fa534a0f 100644 --- a/definitions/grib2/tables/24/5.0.table +++ b/definitions/grib2/tables/24/5.0.table @@ -1,27 +1,27 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data # 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved 53 53 Spectral data for limited area models - complex packing # 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG pacling 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/24/5.1.table b/definitions/grib2/tables/24/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/24/5.1.table +++ b/definitions/grib2/tables/24/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.2.table b/definitions/grib2/tables/24/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/24/5.2.table +++ b/definitions/grib2/tables/24/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.25.table b/definitions/grib2/tables/24/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/24/5.25.table +++ b/definitions/grib2/tables/24/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/5.26.table b/definitions/grib2/tables/24/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/24/5.26.table +++ b/definitions/grib2/tables/24/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/5.3.table b/definitions/grib2/tables/24/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/24/5.3.table +++ b/definitions/grib2/tables/24/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.4.table b/definitions/grib2/tables/24/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/24/5.4.table +++ b/definitions/grib2/tables/24/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.40.table b/definitions/grib2/tables/24/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/24/5.40.table +++ b/definitions/grib2/tables/24/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/5.40000.table b/definitions/grib2/tables/24/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/24/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/24/5.5.table b/definitions/grib2/tables/24/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/24/5.5.table +++ b/definitions/grib2/tables/24/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.6.table b/definitions/grib2/tables/24/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/24/5.6.table +++ b/definitions/grib2/tables/24/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/24/5.7.table b/definitions/grib2/tables/24/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/24/5.7.table +++ b/definitions/grib2/tables/24/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/24/6.0.table b/definitions/grib2/tables/24/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/24/6.0.table +++ b/definitions/grib2/tables/24/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/25/0.0.table b/definitions/grib2/tables/25/0.0.table index a3097cd30..a8542e94f 100644 --- a/definitions/grib2/tables/25/0.0.table +++ b/definitions/grib2/tables/25/0.0.table @@ -6,7 +6,7 @@ 4 4 Space weather products # 5-9 Reserved 10 10 Oceanographic products -# 11-19 Reserved +# 11-19 Reserved 20 20 Health and socioeconomic impacts # 21-191 Reserved # 192-254 Reserved for local use diff --git a/definitions/grib2/tables/25/1.0.table b/definitions/grib2/tables/25/1.0.table index a6e370f40..294d163eb 100644 --- a/definitions/grib2/tables/25/1.0.table +++ b/definitions/grib2/tables/25/1.0.table @@ -1,29 +1,29 @@ # Code table 1.0 - GRIB master tables version number -0 0 Experimental -1 1 Version implemented on 7 November 2001 -2 2 Version implemented on 4 November 2003 -3 3 Version implemented on 2 November 2005 -4 4 Version implemented on 7 November 2007 -5 5 Version implemented on 4 November 2009 -6 6 Version implemented on 15 September 2010 -7 7 Version implemented on 4 May 2011 -8 8 Version implemented on 2 November 2011 -9 9 Version implemented on 2 May 2012 -10 10 Version implemented on 7 November 2012 -11 11 Version implemented on 8 May 2013 -12 12 Version implemented on 14 November 2013 -13 13 Version implemented on 7 May 2014 -14 14 Version implemented on 5 November 2014 -15 15 Version implemented on 6 May 2015 -16 16 Version implemented on 11 November 2015 -17 17 Version implemented on 4 May 2016 -18 18 Version implemented on 2 November 2016 -19 19 Version implemented on 3 May 2017 -20 20 Version implemented on 8 November 2017 -21 21 Version implemented on 2 May 2018 -22 22 Version implemented on 7 November 2018 +0 0 Experimental +1 1 Version implemented on 7 November 2001 +2 2 Version implemented on 4 November 2003 +3 3 Version implemented on 2 November 2005 +4 4 Version implemented on 7 November 2007 +5 5 Version implemented on 4 November 2009 +6 6 Version implemented on 15 September 2010 +7 7 Version implemented on 4 May 2011 +8 8 Version implemented on 2 November 2011 +9 9 Version implemented on 2 May 2012 +10 10 Version implemented on 7 November 2012 +11 11 Version implemented on 8 May 2013 +12 12 Version implemented on 14 November 2013 +13 13 Version implemented on 7 May 2014 +14 14 Version implemented on 5 November 2014 +15 15 Version implemented on 6 May 2015 +16 16 Version implemented on 11 November 2015 +17 17 Version implemented on 4 May 2016 +18 18 Version implemented on 2 November 2016 +19 19 Version implemented on 3 May 2017 +20 20 Version implemented on 8 November 2017 +21 21 Version implemented on 2 May 2018 +22 22 Version implemented on 7 November 2018 23 23 Version implemented on 15 May 2019 24 24 Version implemented on 6 November 2019 25 25 Version implemented on 6 May 2020 -# 26-254 Future versions +# 26-254 Future versions 255 255 Master tables not used. Local table entries and local templates may use the entire range of the table, not just those sections marked Reserved for local used. diff --git a/definitions/grib2/tables/25/1.1.table b/definitions/grib2/tables/25/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/25/1.1.table +++ b/definitions/grib2/tables/25/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/25/1.2.table b/definitions/grib2/tables/25/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/25/1.2.table +++ b/definitions/grib2/tables/25/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/1.3.table b/definitions/grib2/tables/25/1.3.table index a5bd99e5b..5e2e59087 100644 --- a/definitions/grib2/tables/25/1.3.table +++ b/definitions/grib2/tables/25/1.3.table @@ -12,5 +12,5 @@ 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) # 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/1.4.table b/definitions/grib2/tables/25/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/25/1.4.table +++ b/definitions/grib2/tables/25/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/25/1.5.table b/definitions/grib2/tables/25/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/25/1.5.table +++ b/definitions/grib2/tables/25/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/25/1.6.table b/definitions/grib2/tables/25/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/25/1.6.table +++ b/definitions/grib2/tables/25/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.0.table b/definitions/grib2/tables/25/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/25/3.0.table +++ b/definitions/grib2/tables/25/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/25/3.1.table b/definitions/grib2/tables/25/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/25/3.1.table +++ b/definitions/grib2/tables/25/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/25/3.10.table b/definitions/grib2/tables/25/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/25/3.10.table +++ b/definitions/grib2/tables/25/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/25/3.11.table b/definitions/grib2/tables/25/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/25/3.11.table +++ b/definitions/grib2/tables/25/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/3.15.table b/definitions/grib2/tables/25/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/25/3.15.table +++ b/definitions/grib2/tables/25/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.2.table b/definitions/grib2/tables/25/3.2.table index e383c1321..3b6046969 100644 --- a/definitions/grib2/tables/25/3.2.table +++ b/definitions/grib2/tables/25/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height 10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.20.table b/definitions/grib2/tables/25/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/25/3.20.table +++ b/definitions/grib2/tables/25/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.21.table b/definitions/grib2/tables/25/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/25/3.21.table +++ b/definitions/grib2/tables/25/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.25.table b/definitions/grib2/tables/25/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/25/3.25.table +++ b/definitions/grib2/tables/25/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.3.table b/definitions/grib2/tables/25/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/25/3.3.table +++ b/definitions/grib2/tables/25/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/25/3.4.table b/definitions/grib2/tables/25/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/25/3.4.table +++ b/definitions/grib2/tables/25/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/25/3.5.table b/definitions/grib2/tables/25/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/25/3.5.table +++ b/definitions/grib2/tables/25/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/25/3.6.table b/definitions/grib2/tables/25/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/25/3.6.table +++ b/definitions/grib2/tables/25/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/25/3.7.table b/definitions/grib2/tables/25/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/25/3.7.table +++ b/definitions/grib2/tables/25/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/3.8.table b/definitions/grib2/tables/25/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/25/3.8.table +++ b/definitions/grib2/tables/25/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/3.9.table b/definitions/grib2/tables/25/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/25/3.9.table +++ b/definitions/grib2/tables/25/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/25/4.0.table b/definitions/grib2/tables/25/4.0.table index 3b12b1a91..0ea0af4ec 100644 --- a/definitions/grib2/tables/25/4.0.table +++ b/definitions/grib2/tables/25/4.0.table @@ -1,63 +1,63 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved 76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source/sink 77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source/sink 78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source/sink @@ -66,21 +66,21 @@ 81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source/sink 82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source/sink 83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source/sink -# 84-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 92-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 84-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 92-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing 50001 50001 Forecasting Systems with Variable Resolution in a point in time 50011 50011 Forecasting Systems with Variable Resolution in a continous or non countinous time interval -# 1102-32767 Reserved -# 32768-65534 Reserved for local use +# 1102-32767 Reserved +# 32768-65534 Reserved for local use 40033 40033 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data 40034 40034 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/25/4.1.0.table b/definitions/grib2/tables/25/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/25/4.1.0.table +++ b/definitions/grib2/tables/25/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.1.table b/definitions/grib2/tables/25/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/25/4.1.1.table +++ b/definitions/grib2/tables/25/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.10.table b/definitions/grib2/tables/25/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/25/4.1.10.table +++ b/definitions/grib2/tables/25/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.2.table b/definitions/grib2/tables/25/4.1.2.table index 60e2452d4..046689b83 100644 --- a/definitions/grib2/tables/25/4.1.2.table +++ b/definitions/grib2/tables/25/4.1.2.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.20.table b/definitions/grib2/tables/25/4.1.20.table index afad6c811..fe4362b3c 100644 --- a/definitions/grib2/tables/25/4.1.20.table +++ b/definitions/grib2/tables/25/4.1.20.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.3.table b/definitions/grib2/tables/25/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/25/4.1.3.table +++ b/definitions/grib2/tables/25/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.1.4.table b/definitions/grib2/tables/25/4.1.4.table index 4d3e1cf2b..792feca5b 100644 --- a/definitions/grib2/tables/25/4.1.4.table +++ b/definitions/grib2/tables/25/4.1.4.table @@ -1,15 +1,15 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.10.table b/definitions/grib2/tables/25/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/25/4.10.table +++ b/definitions/grib2/tables/25/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/25/4.11.table b/definitions/grib2/tables/25/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/25/4.11.table +++ b/definitions/grib2/tables/25/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.12.table b/definitions/grib2/tables/25/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/25/4.12.table +++ b/definitions/grib2/tables/25/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.13.table b/definitions/grib2/tables/25/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/25/4.13.table +++ b/definitions/grib2/tables/25/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.14.table b/definitions/grib2/tables/25/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/25/4.14.table +++ b/definitions/grib2/tables/25/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.15.table b/definitions/grib2/tables/25/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/25/4.15.table +++ b/definitions/grib2/tables/25/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.16.table b/definitions/grib2/tables/25/4.16.table index de025080a..de3feccaf 100644 --- a/definitions/grib2/tables/25/4.16.table +++ b/definitions/grib2/tables/25/4.16.table @@ -1,9 +1,9 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.0.table b/definitions/grib2/tables/25/4.2.0.0.table index 7201a8667..83b3e8ef1 100644 --- a/definitions/grib2/tables/25/4.2.0.0.table +++ b/definitions/grib2/tables/25/4.2.0.0.table @@ -29,6 +29,6 @@ 27 27 Wet-bulb temperature (K) 28 28 Unbalanced component of temperature (K) 29 29 Temperature advection (K s-1) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.1.table b/definitions/grib2/tables/25/4.2.0.1.table index ef6d2ed7e..46f83bce9 100644 --- a/definitions/grib2/tables/25/4.2.0.1.table +++ b/definitions/grib2/tables/25/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -121,7 +121,7 @@ 119 119 Unbalanced component of specific cloud liquid water content (kg kg-1) 120 120 Unbalanced component of specific cloud ice water content (kg kg-1) 121 121 Fraction of snow cover (Proportion) -# 122-128 Reserved +# 122-128 Reserved 129 129 Effective radius of cloud water (m) 130 130 Effective radius of rain (m) 131 131 Effective radius of cloud ice (m) @@ -136,6 +136,6 @@ 140 140 Effective aspect ratio of graupel (-) 141 141 Effective aspect ratio of hail (-) 142 142 Effective aspect ratio of subgrid ice clouds (-) -# 143-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 143-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.13.table b/definitions/grib2/tables/25/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/25/4.2.0.13.table +++ b/definitions/grib2/tables/25/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.14.table b/definitions/grib2/tables/25/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/25/4.2.0.14.table +++ b/definitions/grib2/tables/25/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.15.table b/definitions/grib2/tables/25/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/25/4.2.0.15.table +++ b/definitions/grib2/tables/25/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.16.table b/definitions/grib2/tables/25/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/25/4.2.0.16.table +++ b/definitions/grib2/tables/25/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.18.table b/definitions/grib2/tables/25/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/25/4.2.0.18.table +++ b/definitions/grib2/tables/25/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.19.table b/definitions/grib2/tables/25/4.2.0.19.table index a99dc5d62..d06ffc13b 100644 --- a/definitions/grib2/tables/25/4.2.0.19.table +++ b/definitions/grib2/tables/25/4.2.0.19.table @@ -38,5 +38,5 @@ 36 36 Presence of snow squalls (Code table 4.222) 37 37 Icing severity (Code table 4.228) # 38-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.190.table b/definitions/grib2/tables/25/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/25/4.2.0.190.table +++ b/definitions/grib2/tables/25/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.191.table b/definitions/grib2/tables/25/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/25/4.2.0.191.table +++ b/definitions/grib2/tables/25/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.2.table b/definitions/grib2/tables/25/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/25/4.2.0.2.table +++ b/definitions/grib2/tables/25/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.20.table b/definitions/grib2/tables/25/4.2.0.20.table index 042732760..9b0170f5c 100644 --- a/definitions/grib2/tables/25/4.2.0.20.table +++ b/definitions/grib2/tables/25/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -46,7 +46,7 @@ 75 75 Wildfire flux (kg m-2 s-1) 76 76 Emission rate (kg kg-1 s-1) 77 77 Surface emission flux (kg m-2 s-1) -# 78-99 Reserved +# 78-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -59,6 +59,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.3.table b/definitions/grib2/tables/25/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/25/4.2.0.3.table +++ b/definitions/grib2/tables/25/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.4.table b/definitions/grib2/tables/25/4.2.0.4.table index 0a5ded2b5..f97270456 100644 --- a/definitions/grib2/tables/25/4.2.0.4.table +++ b/definitions/grib2/tables/25/4.2.0.4.table @@ -14,11 +14,11 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) -# 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 54-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.5.table b/definitions/grib2/tables/25/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/25/4.2.0.5.table +++ b/definitions/grib2/tables/25/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.6.table b/definitions/grib2/tables/25/4.2.0.6.table index 4cec0c8aa..0450ec194 100644 --- a/definitions/grib2/tables/25/4.2.0.6.table +++ b/definitions/grib2/tables/25/4.2.0.6.table @@ -40,10 +40,10 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) -# 50-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 50-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.0.7.table b/definitions/grib2/tables/25/4.2.0.7.table index aff6a6516..6289d8b20 100644 --- a/definitions/grib2/tables/25/4.2.0.7.table +++ b/definitions/grib2/tables/25/4.2.0.7.table @@ -13,12 +13,12 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.1.0.table b/definitions/grib2/tables/25/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/25/4.2.1.0.table +++ b/definitions/grib2/tables/25/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.1.1.table b/definitions/grib2/tables/25/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/25/4.2.1.1.table +++ b/definitions/grib2/tables/25/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.0.table b/definitions/grib2/tables/25/4.2.10.0.table index 53c9d2421..c35e2abfd 100644 --- a/definitions/grib2/tables/25/4.2.10.0.table +++ b/definitions/grib2/tables/25/4.2.10.0.table @@ -64,6 +64,6 @@ 62 62 Wave frequency width (-) 63 63 Frequency width of wind waves (-) 64 64 Frequency width of total swell (-) -# 65-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 65-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.1.table b/definitions/grib2/tables/25/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/25/4.2.10.1.table +++ b/definitions/grib2/tables/25/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.191.table b/definitions/grib2/tables/25/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/25/4.2.10.191.table +++ b/definitions/grib2/tables/25/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.2.table b/definitions/grib2/tables/25/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/25/4.2.10.2.table +++ b/definitions/grib2/tables/25/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.3.table b/definitions/grib2/tables/25/4.2.10.3.table index 9f9492f04..ac1603ecc 100644 --- a/definitions/grib2/tables/25/4.2.10.3.table +++ b/definitions/grib2/tables/25/4.2.10.3.table @@ -3,6 +3,6 @@ 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) 3 3 Practical salinity (Numeric) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.10.4.table b/definitions/grib2/tables/25/4.2.10.4.table index 69ba0cc66..66e9a323c 100644 --- a/definitions/grib2/tables/25/4.2.10.4.table +++ b/definitions/grib2/tables/25/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -19,6 +19,6 @@ 19 19 Water potential density (rho theta) (kg m-3) 20 20 Water potential density anomaly (sigma theta) (kg m-3) 21 21 Practical salinity (Numeric) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.2.0.table b/definitions/grib2/tables/25/4.2.2.0.table index 849c2f1e4..bcfc982b7 100644 --- a/definitions/grib2/tables/25/4.2.2.0.table +++ b/definitions/grib2/tables/25/4.2.2.0.table @@ -39,6 +39,6 @@ 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) 39 39 Evapotranspiration rate (kg m-2 s-1) -# 40-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 40-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.2.3.table b/definitions/grib2/tables/25/4.2.2.3.table index fcb3ebd72..cb2cb71d0 100644 --- a/definitions/grib2/tables/25/4.2.2.3.table +++ b/definitions/grib2/tables/25/4.2.2.3.table @@ -29,5 +29,5 @@ 27 27 Soil depth (m) 28 28 Snow temperature (K) # 29-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.2.4.table b/definitions/grib2/tables/25/4.2.2.4.table index 64ce58355..8dcaa509a 100644 --- a/definitions/grib2/tables/25/4.2.2.4.table +++ b/definitions/grib2/tables/25/4.2.2.4.table @@ -11,6 +11,6 @@ 9 9 Initial Fire Spread Index (as defined by the Canadian Forest Service) (Numeric) 10 10 Fire Buildup Index (as defined by the Canadian Forest Service) (Numeric) 11 11 Fire Daily Severity Rating (as defined by the Canadian Forest Service) (Numeric) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.20.0.table b/definitions/grib2/tables/25/4.2.20.0.table index 9cd936387..cf842f6ea 100644 --- a/definitions/grib2/tables/25/4.2.20.0.table +++ b/definitions/grib2/tables/25/4.2.20.0.table @@ -1,6 +1,6 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Universal thermal climate index (K) 1 1 Mean radiant temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.20.1.table b/definitions/grib2/tables/25/4.2.20.1.table index bdddca5f9..3c94cdf17 100644 --- a/definitions/grib2/tables/25/4.2.20.1.table +++ b/definitions/grib2/tables/25/4.2.20.1.table @@ -9,6 +9,6 @@ 7 7 Anopheles vector to host ratio (Fraction) 8 8 Anopheles vector number (Number m-2) 9 9 Fraction of malarial vector reproductive habitat (Fraction) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.20.2.table b/definitions/grib2/tables/25/4.2.20.2.table index 0804bcafd..8a937c0d1 100644 --- a/definitions/grib2/tables/25/4.2.20.2.table +++ b/definitions/grib2/tables/25/4.2.20.2.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Population density (Person m-2) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.3.0.table b/definitions/grib2/tables/25/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/25/4.2.3.0.table +++ b/definitions/grib2/tables/25/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.3.1.table b/definitions/grib2/tables/25/4.2.3.1.table index 7d4364f4d..365e59a22 100644 --- a/definitions/grib2/tables/25/4.2.3.1.table +++ b/definitions/grib2/tables/25/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.0.table b/definitions/grib2/tables/25/4.2.4.0.table index 0b35aba26..f89f1fee8 100644 --- a/definitions/grib2/tables/25/4.2.4.0.table +++ b/definitions/grib2/tables/25/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.1.table b/definitions/grib2/tables/25/4.2.4.1.table index abd58440a..de1bb48b1 100644 --- a/definitions/grib2/tables/25/4.2.4.1.table +++ b/definitions/grib2/tables/25/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.10.table b/definitions/grib2/tables/25/4.2.4.10.table index 420d2b43d..dade20fca 100644 --- a/definitions/grib2/tables/25/4.2.4.10.table +++ b/definitions/grib2/tables/25/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral Electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.2.table b/definitions/grib2/tables/25/4.2.4.2.table index 5f8dd4750..0ab69cf2c 100644 --- a/definitions/grib2/tables/25/4.2.4.2.table +++ b/definitions/grib2/tables/25/4.2.4.2.table @@ -13,6 +13,6 @@ 11 11 Peak height (hm) (m) 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.3.table b/definitions/grib2/tables/25/4.2.4.3.table index a46f4a403..943251fca 100644 --- a/definitions/grib2/tables/25/4.2.4.3.table +++ b/definitions/grib2/tables/25/4.2.4.3.table @@ -7,6 +7,6 @@ 5 5 1st vector component of electric field (V m-1) 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.4.table b/definitions/grib2/tables/25/4.2.4.4.table index b71abeb93..991faa417 100644 --- a/definitions/grib2/tables/25/4.2.4.4.table +++ b/definitions/grib2/tables/25/4.2.4.4.table @@ -6,6 +6,6 @@ 4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1) 5 5 Heavy ion flux (integral) ((m2 s sr)-1) 6 6 Cosmic ray neutron flux (/h) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.5.table b/definitions/grib2/tables/25/4.2.4.5.table index 014ea22fa..e4aae61da 100644 --- a/definitions/grib2/tables/25/4.2.4.5.table +++ b/definitions/grib2/tables/25/4.2.4.5.table @@ -3,6 +3,6 @@ 1 1 Phase (rad) 2 2 Frequency (Hz) 3 3 Wave length (m) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.6.table b/definitions/grib2/tables/25/4.2.4.6.table index 67f551f7a..64dccb947 100644 --- a/definitions/grib2/tables/25/4.2.4.6.table +++ b/definitions/grib2/tables/25/4.2.4.6.table @@ -6,6 +6,6 @@ 4 4 Solar spectral irradiance (W m-2 nm-1) 5 5 F10.7 (W m-2 Hz-1) 6 6 Solar radio emissions (W m-2 Hz-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.7.table b/definitions/grib2/tables/25/4.2.4.7.table index 9b93bcff1..98dd1d649 100644 --- a/definitions/grib2/tables/25/4.2.4.7.table +++ b/definitions/grib2/tables/25/4.2.4.7.table @@ -3,6 +3,6 @@ 1 1 Disk intensity (J m-2 s-1) 2 2 Disk intensity day (J m-2 s-1) 3 3 Disk intensity night (J m-2 s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.8.table b/definitions/grib2/tables/25/4.2.4.8.table index 358b91ca7..3c7834a9a 100644 --- a/definitions/grib2/tables/25/4.2.4.8.table +++ b/definitions/grib2/tables/25/4.2.4.8.table @@ -7,6 +7,6 @@ 5 5 White light coronagraph radiance (W sr-1 m-2) 6 6 Heliospheric radiance (W sr-1 m-2) 7 7 Thematic mask (Numeric) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.2.4.9.table b/definitions/grib2/tables/25/4.2.4.9.table index e96c81ba3..df8ceaac2 100644 --- a/definitions/grib2/tables/25/4.2.4.9.table +++ b/definitions/grib2/tables/25/4.2.4.9.table @@ -2,6 +2,6 @@ 0 0 Pedersen conductivity (S m-1) 1 1 Hall conductivity (S m-1) 2 2 Parallel conductivity (S m-1) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.201.table b/definitions/grib2/tables/25/4.201.table index 44943d5e0..0dca20884 100644 --- a/definitions/grib2/tables/25/4.201.table +++ b/definitions/grib2/tables/25/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.202.table b/definitions/grib2/tables/25/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/25/4.202.table +++ b/definitions/grib2/tables/25/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.203.table b/definitions/grib2/tables/25/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/25/4.203.table +++ b/definitions/grib2/tables/25/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.204.table b/definitions/grib2/tables/25/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/25/4.204.table +++ b/definitions/grib2/tables/25/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.205.table b/definitions/grib2/tables/25/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/25/4.205.table +++ b/definitions/grib2/tables/25/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.206.table b/definitions/grib2/tables/25/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/25/4.206.table +++ b/definitions/grib2/tables/25/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.207.table b/definitions/grib2/tables/25/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/25/4.207.table +++ b/definitions/grib2/tables/25/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.208.table b/definitions/grib2/tables/25/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/25/4.208.table +++ b/definitions/grib2/tables/25/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.209.table b/definitions/grib2/tables/25/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/25/4.209.table +++ b/definitions/grib2/tables/25/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.210.table b/definitions/grib2/tables/25/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/25/4.210.table +++ b/definitions/grib2/tables/25/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.211.table b/definitions/grib2/tables/25/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/25/4.211.table +++ b/definitions/grib2/tables/25/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.212.table b/definitions/grib2/tables/25/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/25/4.212.table +++ b/definitions/grib2/tables/25/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.213.table b/definitions/grib2/tables/25/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/25/4.213.table +++ b/definitions/grib2/tables/25/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.215.table b/definitions/grib2/tables/25/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/25/4.215.table +++ b/definitions/grib2/tables/25/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.216.table b/definitions/grib2/tables/25/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/25/4.216.table +++ b/definitions/grib2/tables/25/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/25/4.217.table b/definitions/grib2/tables/25/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/25/4.217.table +++ b/definitions/grib2/tables/25/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.218.table b/definitions/grib2/tables/25/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/25/4.218.table +++ b/definitions/grib2/tables/25/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.219.table b/definitions/grib2/tables/25/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/25/4.219.table +++ b/definitions/grib2/tables/25/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.220.table b/definitions/grib2/tables/25/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/25/4.220.table +++ b/definitions/grib2/tables/25/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.221.table b/definitions/grib2/tables/25/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/25/4.221.table +++ b/definitions/grib2/tables/25/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.222.table b/definitions/grib2/tables/25/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/25/4.222.table +++ b/definitions/grib2/tables/25/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.223.table b/definitions/grib2/tables/25/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/25/4.223.table +++ b/definitions/grib2/tables/25/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/25/4.224.table b/definitions/grib2/tables/25/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/25/4.224.table +++ b/definitions/grib2/tables/25/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/4.227.table b/definitions/grib2/tables/25/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/25/4.227.table +++ b/definitions/grib2/tables/25/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/25/4.228.table b/definitions/grib2/tables/25/4.228.table index 559ae916a..048a69f0b 100644 --- a/definitions/grib2/tables/25/4.228.table +++ b/definitions/grib2/tables/25/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe -# 5-254 Reserved -255 255 Missing value +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe +# 5-254 Reserved +255 255 Missing value diff --git a/definitions/grib2/tables/25/4.230.table b/definitions/grib2/tables/25/4.230.table index 147ff9747..6159d2aad 100644 --- a/definitions/grib2/tables/25/4.230.table +++ b/definitions/grib2/tables/25/4.230.table @@ -101,10 +101,10 @@ 10052 10052 Ethyl hydroperoxide CH3CH2OOH 10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO 10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH -# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) +# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) 10500 10500 Dimethyl sulphide CH3SCH3 (DMS) 10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO -# 10502-20000 Reserved +# 10502-20000 Reserved 20001 20001 Hydrogen chloride HCl 20002 20002 CFC-11 (trichlorofluoromethane) CCl3F 20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2 @@ -507,6 +507,6 @@ 62205 62205 Urtica (nettle) pollen # 62206-62299 Reserved 62300 62300 Poaceae (grass family) pollen -# 62301-62999 Reserved -# 63000-65534 For experimental use at local level +# 62301-62999 Reserved +# 63000-65534 For experimental use at local level 65535 65535 Missing diff --git a/definitions/grib2/tables/25/4.233.table b/definitions/grib2/tables/25/4.233.table index 051d603a9..d60790f5a 100644 --- a/definitions/grib2/tables/25/4.233.table +++ b/definitions/grib2/tables/25/4.233.table @@ -101,10 +101,10 @@ 10052 10052 Ethyl hydroperoxide CH3CH2OOH 10053 10053 3-hydroxypropyl dioxidanyl radical HOCH2CH2CH2OO 10054 10054 3-hydroxypropyl hydroperoxide HOCH2CH2CH2OOH -# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) +# 10055-10499 Reserved for other simple organic molecules (e.g. higher aldehydes, alcohols, peroxides, ...) 10500 10500 Dimethyl sulphide CH3SCH3 (DMS) 10501 10501 DMSO (dimethyl sulfoxide) (CH3)2SO -# 10502-20000 Reserved +# 10502-20000 Reserved 20001 20001 Hydrogen chloride HCl 20002 20002 CFC-11 (trichlorofluoromethane) CCl3F 20003 20003 CFC-12 (dichlorodifluoromethane) CCl2F2 @@ -507,6 +507,6 @@ 62205 62205 Urtica (nettle) pollen # 62206-62299 Reserved 62300 62300 Poaceae (grass family) pollen -# 62301-62999 Reserved -# 63000-65534 For experimental use at local level +# 62301-62999 Reserved +# 63000-65534 For experimental use at local level 65535 65535 Missing diff --git a/definitions/grib2/tables/25/4.234.table b/definitions/grib2/tables/25/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/25/4.234.table +++ b/definitions/grib2/tables/25/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/25/4.236.table b/definitions/grib2/tables/25/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/25/4.236.table +++ b/definitions/grib2/tables/25/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/25/4.238.table b/definitions/grib2/tables/25/4.238.table index 6dfaf8286..84ae04c80 100644 --- a/definitions/grib2/tables/25/4.238.table +++ b/definitions/grib2/tables/25/4.238.table @@ -1,16 +1,16 @@ # Code table 4.238 - Source or sink -0 0 Reserved -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.240.table b/definitions/grib2/tables/25/4.240.table index 4daef3d13..2a31fb2ab 100644 --- a/definitions/grib2/tables/25/4.240.table +++ b/definitions/grib2/tables/25/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) @@ -8,6 +8,6 @@ 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/25/4.241.table b/definitions/grib2/tables/25/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/25/4.241.table +++ b/definitions/grib2/tables/25/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/25/4.242.table b/definitions/grib2/tables/25/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/25/4.242.table +++ b/definitions/grib2/tables/25/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/25/4.243.table b/definitions/grib2/tables/25/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/25/4.243.table +++ b/definitions/grib2/tables/25/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/25/4.244.table b/definitions/grib2/tables/25/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/25/4.244.table +++ b/definitions/grib2/tables/25/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.3.table b/definitions/grib2/tables/25/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/25/4.3.table +++ b/definitions/grib2/tables/25/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.4.table b/definitions/grib2/tables/25/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/25/4.4.table +++ b/definitions/grib2/tables/25/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.5.table b/definitions/grib2/tables/25/4.5.table index 98d6308ac..9813bf777 100644 --- a/definitions/grib2/tables/25/4.5.table +++ b/definitions/grib2/tables/25/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -16,7 +16,7 @@ 14 14 Level of free convection (LFC) (-) 15 15 Convective condensation level (CCL) (-) 16 16 Level of neutral buoyancy or equilibrium level (LNB) (-) -# 17-19 Reserved +# 17-19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) @@ -25,14 +25,14 @@ 25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ) # 26-29 Reserved 30 30 Specified radius from the center of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level # 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -41,18 +41,18 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea ice level (Numeric) # 153-159 Reserved @@ -67,7 +67,7 @@ 168 168 Ocean model level (Numeric) 169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3) 170 170 Ocean level defined by water potential temperature difference from near-surface to level (K) -# 171-173 Reserved +# 171-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -79,6 +79,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.6.table b/definitions/grib2/tables/25/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/25/4.6.table +++ b/definitions/grib2/tables/25/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.7.table b/definitions/grib2/tables/25/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/25/4.7.table +++ b/definitions/grib2/tables/25/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.8.table b/definitions/grib2/tables/25/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/25/4.8.table +++ b/definitions/grib2/tables/25/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.9.table b/definitions/grib2/tables/25/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/25/4.9.table +++ b/definitions/grib2/tables/25/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/4.91.table b/definitions/grib2/tables/25/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/25/4.91.table +++ b/definitions/grib2/tables/25/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/25/5.0.table b/definitions/grib2/tables/25/5.0.table index 48068f19e..bf17dd722 100644 --- a/definitions/grib2/tables/25/5.0.table +++ b/definitions/grib2/tables/25/5.0.table @@ -1,27 +1,27 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data -# 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data +# 5-39 Reserved +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved -53 53 Spectral data for limited area models - complex packing -# 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use +53 53 Spectral data for limited area models - complex packing +# 54-60 Reserved +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use 40000 40000 JPEG2000 Packing 40010 40010 PNG packing 50000 50000 Sperical harmonics ieee packing 50001 50001 Second order packing 50002 50002 Second order packing -65535 65535 Missing +65535 65535 Missing diff --git a/definitions/grib2/tables/25/5.1.table b/definitions/grib2/tables/25/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/25/5.1.table +++ b/definitions/grib2/tables/25/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.2.table b/definitions/grib2/tables/25/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/25/5.2.table +++ b/definitions/grib2/tables/25/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.25.table b/definitions/grib2/tables/25/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/25/5.25.table +++ b/definitions/grib2/tables/25/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/5.26.table b/definitions/grib2/tables/25/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/25/5.26.table +++ b/definitions/grib2/tables/25/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/5.3.table b/definitions/grib2/tables/25/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/25/5.3.table +++ b/definitions/grib2/tables/25/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.4.table b/definitions/grib2/tables/25/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/25/5.4.table +++ b/definitions/grib2/tables/25/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.40.table b/definitions/grib2/tables/25/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/25/5.40.table +++ b/definitions/grib2/tables/25/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/5.40000.table b/definitions/grib2/tables/25/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/25/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/25/5.5.table b/definitions/grib2/tables/25/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/25/5.5.table +++ b/definitions/grib2/tables/25/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.6.table b/definitions/grib2/tables/25/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/25/5.6.table +++ b/definitions/grib2/tables/25/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/25/5.7.table b/definitions/grib2/tables/25/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/25/5.7.table +++ b/definitions/grib2/tables/25/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/25/6.0.table b/definitions/grib2/tables/25/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/25/6.0.table +++ b/definitions/grib2/tables/25/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/26/0.0.table b/definitions/grib2/tables/26/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/26/0.0.table +++ b/definitions/grib2/tables/26/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/1.1.table b/definitions/grib2/tables/26/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/26/1.1.table +++ b/definitions/grib2/tables/26/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/26/1.2.table b/definitions/grib2/tables/26/1.2.table index 934b70455..638f1efbb 100644 --- a/definitions/grib2/tables/26/1.2.table +++ b/definitions/grib2/tables/26/1.2.table @@ -1,8 +1,8 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/1.3.table b/definitions/grib2/tables/26/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/26/1.3.table +++ b/definitions/grib2/tables/26/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/1.4.table b/definitions/grib2/tables/26/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/26/1.4.table +++ b/definitions/grib2/tables/26/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/26/1.5.table b/definitions/grib2/tables/26/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/26/1.5.table +++ b/definitions/grib2/tables/26/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/26/1.6.table b/definitions/grib2/tables/26/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/26/1.6.table +++ b/definitions/grib2/tables/26/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.0.table b/definitions/grib2/tables/26/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/26/3.0.table +++ b/definitions/grib2/tables/26/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/26/3.1.table b/definitions/grib2/tables/26/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/26/3.1.table +++ b/definitions/grib2/tables/26/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/26/3.10.table b/definitions/grib2/tables/26/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/26/3.10.table +++ b/definitions/grib2/tables/26/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/26/3.11.table b/definitions/grib2/tables/26/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/26/3.11.table +++ b/definitions/grib2/tables/26/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/3.15.table b/definitions/grib2/tables/26/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/26/3.15.table +++ b/definitions/grib2/tables/26/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.2.table b/definitions/grib2/tables/26/3.2.table index 5369fc878..3b6046969 100644 --- a/definitions/grib2/tables/26/3.2.table +++ b/definitions/grib2/tables/26/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.20.table b/definitions/grib2/tables/26/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/26/3.20.table +++ b/definitions/grib2/tables/26/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.21.table b/definitions/grib2/tables/26/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/26/3.21.table +++ b/definitions/grib2/tables/26/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.25.table b/definitions/grib2/tables/26/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/26/3.25.table +++ b/definitions/grib2/tables/26/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.3.table b/definitions/grib2/tables/26/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/26/3.3.table +++ b/definitions/grib2/tables/26/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/26/3.4.table b/definitions/grib2/tables/26/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/26/3.4.table +++ b/definitions/grib2/tables/26/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/26/3.5.table b/definitions/grib2/tables/26/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/26/3.5.table +++ b/definitions/grib2/tables/26/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/26/3.6.table b/definitions/grib2/tables/26/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/26/3.6.table +++ b/definitions/grib2/tables/26/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/26/3.7.table b/definitions/grib2/tables/26/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/26/3.7.table +++ b/definitions/grib2/tables/26/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/3.8.table b/definitions/grib2/tables/26/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/26/3.8.table +++ b/definitions/grib2/tables/26/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/3.9.table b/definitions/grib2/tables/26/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/26/3.9.table +++ b/definitions/grib2/tables/26/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/26/4.0.table b/definitions/grib2/tables/26/4.0.table index 03f30748d..f364b851b 100644 --- a/definitions/grib2/tables/26/4.0.table +++ b/definitions/grib2/tables/26/4.0.table @@ -1,84 +1,84 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -# 86-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 92-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +# 86-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 92-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/26/4.1.0.table b/definitions/grib2/tables/26/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/26/4.1.0.table +++ b/definitions/grib2/tables/26/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.1.table b/definitions/grib2/tables/26/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/26/4.1.1.table +++ b/definitions/grib2/tables/26/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.10.table b/definitions/grib2/tables/26/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/26/4.1.10.table +++ b/definitions/grib2/tables/26/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.2.table b/definitions/grib2/tables/26/4.1.2.table index 60e2452d4..046689b83 100644 --- a/definitions/grib2/tables/26/4.1.2.table +++ b/definitions/grib2/tables/26/4.1.2.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.20.table b/definitions/grib2/tables/26/4.1.20.table index afad6c811..fe4362b3c 100644 --- a/definitions/grib2/tables/26/4.1.20.table +++ b/definitions/grib2/tables/26/4.1.20.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.3.table b/definitions/grib2/tables/26/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/26/4.1.3.table +++ b/definitions/grib2/tables/26/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.1.4.table b/definitions/grib2/tables/26/4.1.4.table index 4d3e1cf2b..792feca5b 100644 --- a/definitions/grib2/tables/26/4.1.4.table +++ b/definitions/grib2/tables/26/4.1.4.table @@ -1,15 +1,15 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.10.table b/definitions/grib2/tables/26/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/26/4.10.table +++ b/definitions/grib2/tables/26/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/26/4.11.table b/definitions/grib2/tables/26/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/26/4.11.table +++ b/definitions/grib2/tables/26/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.12.table b/definitions/grib2/tables/26/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/26/4.12.table +++ b/definitions/grib2/tables/26/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.13.table b/definitions/grib2/tables/26/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/26/4.13.table +++ b/definitions/grib2/tables/26/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.14.table b/definitions/grib2/tables/26/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/26/4.14.table +++ b/definitions/grib2/tables/26/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.15.table b/definitions/grib2/tables/26/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/26/4.15.table +++ b/definitions/grib2/tables/26/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.16.table b/definitions/grib2/tables/26/4.16.table index a18c63f81..5b9f6fd73 100644 --- a/definitions/grib2/tables/26/4.16.table +++ b/definitions/grib2/tables/26/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error 5 5 Probability # 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.0.table b/definitions/grib2/tables/26/4.2.0.0.table index f361355b7..ec0a88ce8 100644 --- a/definitions/grib2/tables/26/4.2.0.0.table +++ b/definitions/grib2/tables/26/4.2.0.0.table @@ -32,5 +32,5 @@ 30 30 Latent heat net flux due to evaporation (W m-2) 31 31 Latent heat net flux due to sublimation (W m-2) # 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.1.table b/definitions/grib2/tables/26/4.2.0.1.table index 4866aea0e..7e35d7d3c 100644 --- a/definitions/grib2/tables/26/4.2.0.1.table +++ b/definitions/grib2/tables/26/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -146,5 +146,5 @@ 144 144 specific rain water content (convective) (kg kg-1) 145 145 specific snow water content (convective) (kg kg-1) # 146-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.13.table b/definitions/grib2/tables/26/4.2.0.13.table index 5086101ad..3f5c30675 100644 --- a/definitions/grib2/tables/26/4.2.0.13.table +++ b/definitions/grib2/tables/26/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.14.table b/definitions/grib2/tables/26/4.2.0.14.table index 215884737..97fb38c8b 100644 --- a/definitions/grib2/tables/26/4.2.0.14.table +++ b/definitions/grib2/tables/26/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.15.table b/definitions/grib2/tables/26/4.2.0.15.table index dfbc4d12f..8df082466 100644 --- a/definitions/grib2/tables/26/4.2.0.15.table +++ b/definitions/grib2/tables/26/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.16.table b/definitions/grib2/tables/26/4.2.0.16.table index 0c240a853..9499d9333 100644 --- a/definitions/grib2/tables/26/4.2.0.16.table +++ b/definitions/grib2/tables/26/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.18.table b/definitions/grib2/tables/26/4.2.0.18.table index 9d106f419..9ca6db61e 100644 --- a/definitions/grib2/tables/26/4.2.0.18.table +++ b/definitions/grib2/tables/26/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.19.table b/definitions/grib2/tables/26/4.2.0.19.table index 3ffe0c124..a20afbfdc 100644 --- a/definitions/grib2/tables/26/4.2.0.19.table +++ b/definitions/grib2/tables/26/4.2.0.19.table @@ -41,5 +41,5 @@ 39 39 Seeing index (Code Table 4.214) 40 40 Snow level (m) # 41-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.190.table b/definitions/grib2/tables/26/4.2.0.190.table index de621a924..a0d6ba0ac 100644 --- a/definitions/grib2/tables/26/4.2.0.190.table +++ b/definitions/grib2/tables/26/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.191.table b/definitions/grib2/tables/26/4.2.0.191.table index e3bba0ebe..b3a7092ea 100644 --- a/definitions/grib2/tables/26/4.2.0.191.table +++ b/definitions/grib2/tables/26/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.2.table b/definitions/grib2/tables/26/4.2.0.2.table index 5446262e6..8a70b2591 100644 --- a/definitions/grib2/tables/26/4.2.0.2.table +++ b/definitions/grib2/tables/26/4.2.0.2.table @@ -46,6 +46,6 @@ 44 44 Geostrophic wind speed (m s-1) 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) -# 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 47-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.20.table b/definitions/grib2/tables/26/4.2.0.20.table index 042732760..9b0170f5c 100644 --- a/definitions/grib2/tables/26/4.2.0.20.table +++ b/definitions/grib2/tables/26/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -46,7 +46,7 @@ 75 75 Wildfire flux (kg m-2 s-1) 76 76 Emission rate (kg kg-1 s-1) 77 77 Surface emission flux (kg m-2 s-1) -# 78-99 Reserved +# 78-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -59,6 +59,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.3.table b/definitions/grib2/tables/26/4.2.0.3.table index 34941dcab..52c421b97 100644 --- a/definitions/grib2/tables/26/4.2.0.3.table +++ b/definitions/grib2/tables/26/4.2.0.3.table @@ -31,6 +31,6 @@ 29 29 Updraught detrainment rate (kg m-3 s-1) 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) -# 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 32-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.4.table b/definitions/grib2/tables/26/4.2.0.4.table index d56ee2ff8..226b1e23b 100644 --- a/definitions/grib2/tables/26/4.2.0.4.table +++ b/definitions/grib2/tables/26/4.2.0.4.table @@ -14,12 +14,12 @@ 12 12 Downward UV radiation (W m-2) 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) -# 15-49 Reserved +# 15-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) 54 54 Direct normal short-wave radiation flux (W m-2) # 55-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.5.table b/definitions/grib2/tables/26/4.2.0.5.table index 4550220b6..ddfa634ce 100644 --- a/definitions/grib2/tables/26/4.2.0.5.table +++ b/definitions/grib2/tables/26/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.6.table b/definitions/grib2/tables/26/4.2.0.6.table index ce331de75..35f7b5dca 100644 --- a/definitions/grib2/tables/26/4.2.0.6.table +++ b/definitions/grib2/tables/26/4.2.0.6.table @@ -40,11 +40,11 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) 50 50 Fog (%) # 51-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.0.7.table b/definitions/grib2/tables/26/4.2.0.7.table index 04d7f393f..e9aa4e39b 100644 --- a/definitions/grib2/tables/26/4.2.0.7.table +++ b/definitions/grib2/tables/26/4.2.0.7.table @@ -13,7 +13,7 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) @@ -21,5 +21,5 @@ 19 19 Convective available potential energy - shear (m2 s-2) 20 20 Thunderstorm intensity index (Code table 4.246) # 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.1.0.table b/definitions/grib2/tables/26/4.2.1.0.table index bcd849c2e..a2660f4f3 100644 --- a/definitions/grib2/tables/26/4.2.1.0.table +++ b/definitions/grib2/tables/26/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.1.1.table b/definitions/grib2/tables/26/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/26/4.2.1.1.table +++ b/definitions/grib2/tables/26/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.0.table b/definitions/grib2/tables/26/4.2.10.0.table index de15555c0..0ddb10c2b 100644 --- a/definitions/grib2/tables/26/4.2.10.0.table +++ b/definitions/grib2/tables/26/4.2.10.0.table @@ -64,6 +64,6 @@ 62 62 Wave frequency width (-) 63 63 Frequency width of wind waves (-) 64 64 Frequency width of total swell (-) -# 65-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 65-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.1.table b/definitions/grib2/tables/26/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/26/4.2.10.1.table +++ b/definitions/grib2/tables/26/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.191.table b/definitions/grib2/tables/26/4.2.10.191.table index 524929e78..1ebf85006 100644 --- a/definitions/grib2/tables/26/4.2.10.191.table +++ b/definitions/grib2/tables/26/4.2.10.191.table @@ -1,8 +1,8 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.2.table b/definitions/grib2/tables/26/4.2.10.2.table index 6797062ac..4633bad4f 100644 --- a/definitions/grib2/tables/26/4.2.10.2.table +++ b/definitions/grib2/tables/26/4.2.10.2.table @@ -12,6 +12,6 @@ 10 10 Zonal vector component of vertically integrated ice internal pressure (Pa m) 11 11 Meridional vector component of vertically integrated ice internal pressure (Pa m) 12 12 Compressive ice strength (N/m) -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.3.table b/definitions/grib2/tables/26/4.2.10.3.table index 9f9492f04..ac1603ecc 100644 --- a/definitions/grib2/tables/26/4.2.10.3.table +++ b/definitions/grib2/tables/26/4.2.10.3.table @@ -3,6 +3,6 @@ 1 1 Deviation of sea level from mean (m) 2 2 Heat exchange coefficient (-) 3 3 Practical salinity (Numeric) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.10.4.table b/definitions/grib2/tables/26/4.2.10.4.table index 69ba0cc66..66e9a323c 100644 --- a/definitions/grib2/tables/26/4.2.10.4.table +++ b/definitions/grib2/tables/26/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -19,6 +19,6 @@ 19 19 Water potential density (rho theta) (kg m-3) 20 20 Water potential density anomaly (sigma theta) (kg m-3) 21 21 Practical salinity (Numeric) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.2.0.table b/definitions/grib2/tables/26/4.2.2.0.table index 849c2f1e4..bcfc982b7 100644 --- a/definitions/grib2/tables/26/4.2.2.0.table +++ b/definitions/grib2/tables/26/4.2.2.0.table @@ -39,6 +39,6 @@ 37 37 Tile percentage (%) 38 38 Soil volumetric ice content (water equivalent) (m3 m-3) 39 39 Evapotranspiration rate (kg m-2 s-1) -# 40-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 40-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.2.3.table b/definitions/grib2/tables/26/4.2.2.3.table index b77400890..cb2cb71d0 100644 --- a/definitions/grib2/tables/26/4.2.2.3.table +++ b/definitions/grib2/tables/26/4.2.2.3.table @@ -28,6 +28,6 @@ 26 26 Soil heat flux (W m-2) 27 27 Soil depth (m) 28 28 Snow temperature (K) -# 29-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 29-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.2.4.table b/definitions/grib2/tables/26/4.2.2.4.table index 14c317ff9..5598e5775 100644 --- a/definitions/grib2/tables/26/4.2.2.4.table +++ b/definitions/grib2/tables/26/4.2.2.4.table @@ -20,5 +20,5 @@ 18 18 Ignition component (as defined by the U.S Forest Service National Fire-Danger Rating System) (%) 19 19 Energy release component (as defined by the U.S Forest Service National Fire-Danger Rating System) (Joule/m2) # 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.2.5.table b/definitions/grib2/tables/26/4.2.2.5.table index 122f0aa23..a5a71dcd1 100644 --- a/definitions/grib2/tables/26/4.2.2.5.table +++ b/definitions/grib2/tables/26/4.2.2.5.table @@ -1,6 +1,6 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Glacier cover (Proportion) 1 1 Glacier temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.20.0.table b/definitions/grib2/tables/26/4.2.20.0.table index 9cd936387..cf842f6ea 100644 --- a/definitions/grib2/tables/26/4.2.20.0.table +++ b/definitions/grib2/tables/26/4.2.20.0.table @@ -1,6 +1,6 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Universal thermal climate index (K) 1 1 Mean radiant temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.20.1.table b/definitions/grib2/tables/26/4.2.20.1.table index bdddca5f9..3c94cdf17 100644 --- a/definitions/grib2/tables/26/4.2.20.1.table +++ b/definitions/grib2/tables/26/4.2.20.1.table @@ -9,6 +9,6 @@ 7 7 Anopheles vector to host ratio (Fraction) 8 8 Anopheles vector number (Number m-2) 9 9 Fraction of malarial vector reproductive habitat (Fraction) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.20.2.table b/definitions/grib2/tables/26/4.2.20.2.table index 0804bcafd..8a937c0d1 100644 --- a/definitions/grib2/tables/26/4.2.20.2.table +++ b/definitions/grib2/tables/26/4.2.20.2.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Population density (Person m-2) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.3.0.table b/definitions/grib2/tables/26/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/26/4.2.3.0.table +++ b/definitions/grib2/tables/26/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.3.1.table b/definitions/grib2/tables/26/4.2.3.1.table index 7d4364f4d..365e59a22 100644 --- a/definitions/grib2/tables/26/4.2.3.1.table +++ b/definitions/grib2/tables/26/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.0.table b/definitions/grib2/tables/26/4.2.4.0.table index 0b35aba26..f89f1fee8 100644 --- a/definitions/grib2/tables/26/4.2.4.0.table +++ b/definitions/grib2/tables/26/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.1.table b/definitions/grib2/tables/26/4.2.4.1.table index abd58440a..de1bb48b1 100644 --- a/definitions/grib2/tables/26/4.2.4.1.table +++ b/definitions/grib2/tables/26/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.10.table b/definitions/grib2/tables/26/4.2.4.10.table index 420d2b43d..dade20fca 100644 --- a/definitions/grib2/tables/26/4.2.4.10.table +++ b/definitions/grib2/tables/26/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral Electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.2.table b/definitions/grib2/tables/26/4.2.4.2.table index 5f8dd4750..0ab69cf2c 100644 --- a/definitions/grib2/tables/26/4.2.4.2.table +++ b/definitions/grib2/tables/26/4.2.4.2.table @@ -13,6 +13,6 @@ 11 11 Peak height (hm) (m) 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.3.table b/definitions/grib2/tables/26/4.2.4.3.table index a46f4a403..943251fca 100644 --- a/definitions/grib2/tables/26/4.2.4.3.table +++ b/definitions/grib2/tables/26/4.2.4.3.table @@ -7,6 +7,6 @@ 5 5 1st vector component of electric field (V m-1) 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.4.table b/definitions/grib2/tables/26/4.2.4.4.table index b71abeb93..991faa417 100644 --- a/definitions/grib2/tables/26/4.2.4.4.table +++ b/definitions/grib2/tables/26/4.2.4.4.table @@ -6,6 +6,6 @@ 4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1) 5 5 Heavy ion flux (integral) ((m2 s sr)-1) 6 6 Cosmic ray neutron flux (/h) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.5.table b/definitions/grib2/tables/26/4.2.4.5.table index 014ea22fa..e4aae61da 100644 --- a/definitions/grib2/tables/26/4.2.4.5.table +++ b/definitions/grib2/tables/26/4.2.4.5.table @@ -3,6 +3,6 @@ 1 1 Phase (rad) 2 2 Frequency (Hz) 3 3 Wave length (m) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.6.table b/definitions/grib2/tables/26/4.2.4.6.table index 67f551f7a..64dccb947 100644 --- a/definitions/grib2/tables/26/4.2.4.6.table +++ b/definitions/grib2/tables/26/4.2.4.6.table @@ -6,6 +6,6 @@ 4 4 Solar spectral irradiance (W m-2 nm-1) 5 5 F10.7 (W m-2 Hz-1) 6 6 Solar radio emissions (W m-2 Hz-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.7.table b/definitions/grib2/tables/26/4.2.4.7.table index 9b93bcff1..98dd1d649 100644 --- a/definitions/grib2/tables/26/4.2.4.7.table +++ b/definitions/grib2/tables/26/4.2.4.7.table @@ -3,6 +3,6 @@ 1 1 Disk intensity (J m-2 s-1) 2 2 Disk intensity day (J m-2 s-1) 3 3 Disk intensity night (J m-2 s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.8.table b/definitions/grib2/tables/26/4.2.4.8.table index 358b91ca7..3c7834a9a 100644 --- a/definitions/grib2/tables/26/4.2.4.8.table +++ b/definitions/grib2/tables/26/4.2.4.8.table @@ -7,6 +7,6 @@ 5 5 White light coronagraph radiance (W sr-1 m-2) 6 6 Heliospheric radiance (W sr-1 m-2) 7 7 Thematic mask (Numeric) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.2.4.9.table b/definitions/grib2/tables/26/4.2.4.9.table index e96c81ba3..df8ceaac2 100644 --- a/definitions/grib2/tables/26/4.2.4.9.table +++ b/definitions/grib2/tables/26/4.2.4.9.table @@ -2,6 +2,6 @@ 0 0 Pedersen conductivity (S m-1) 1 1 Hall conductivity (S m-1) 2 2 Parallel conductivity (S m-1) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.201.table b/definitions/grib2/tables/26/4.201.table index 44943d5e0..0dca20884 100644 --- a/definitions/grib2/tables/26/4.201.table +++ b/definitions/grib2/tables/26/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.202.table b/definitions/grib2/tables/26/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/26/4.202.table +++ b/definitions/grib2/tables/26/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.203.table b/definitions/grib2/tables/26/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/26/4.203.table +++ b/definitions/grib2/tables/26/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.204.table b/definitions/grib2/tables/26/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/26/4.204.table +++ b/definitions/grib2/tables/26/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.205.table b/definitions/grib2/tables/26/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/26/4.205.table +++ b/definitions/grib2/tables/26/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.206.table b/definitions/grib2/tables/26/4.206.table index 1222d9786..76472c261 100644 --- a/definitions/grib2/tables/26/4.206.table +++ b/definitions/grib2/tables/26/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash 0 0 Not present 1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.207.table b/definitions/grib2/tables/26/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/26/4.207.table +++ b/definitions/grib2/tables/26/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.208.table b/definitions/grib2/tables/26/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/26/4.208.table +++ b/definitions/grib2/tables/26/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.209.table b/definitions/grib2/tables/26/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/26/4.209.table +++ b/definitions/grib2/tables/26/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.210.table b/definitions/grib2/tables/26/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/26/4.210.table +++ b/definitions/grib2/tables/26/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.211.table b/definitions/grib2/tables/26/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/26/4.211.table +++ b/definitions/grib2/tables/26/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.212.table b/definitions/grib2/tables/26/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/26/4.212.table +++ b/definitions/grib2/tables/26/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.213.table b/definitions/grib2/tables/26/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/26/4.213.table +++ b/definitions/grib2/tables/26/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.215.table b/definitions/grib2/tables/26/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/26/4.215.table +++ b/definitions/grib2/tables/26/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.216.table b/definitions/grib2/tables/26/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/26/4.216.table +++ b/definitions/grib2/tables/26/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/26/4.217.table b/definitions/grib2/tables/26/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/26/4.217.table +++ b/definitions/grib2/tables/26/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.218.table b/definitions/grib2/tables/26/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/26/4.218.table +++ b/definitions/grib2/tables/26/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.219.table b/definitions/grib2/tables/26/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/26/4.219.table +++ b/definitions/grib2/tables/26/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.220.table b/definitions/grib2/tables/26/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/26/4.220.table +++ b/definitions/grib2/tables/26/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.221.table b/definitions/grib2/tables/26/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/26/4.221.table +++ b/definitions/grib2/tables/26/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.222.table b/definitions/grib2/tables/26/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/26/4.222.table +++ b/definitions/grib2/tables/26/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.223.table b/definitions/grib2/tables/26/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/26/4.223.table +++ b/definitions/grib2/tables/26/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/26/4.224.table b/definitions/grib2/tables/26/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/26/4.224.table +++ b/definitions/grib2/tables/26/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/4.227.table b/definitions/grib2/tables/26/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/26/4.227.table +++ b/definitions/grib2/tables/26/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/26/4.228.table b/definitions/grib2/tables/26/4.228.table index 559ae916a..048a69f0b 100644 --- a/definitions/grib2/tables/26/4.228.table +++ b/definitions/grib2/tables/26/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe -# 5-254 Reserved -255 255 Missing value +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe +# 5-254 Reserved +255 255 Missing value diff --git a/definitions/grib2/tables/26/4.234.table b/definitions/grib2/tables/26/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/26/4.234.table +++ b/definitions/grib2/tables/26/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/26/4.236.table b/definitions/grib2/tables/26/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/26/4.236.table +++ b/definitions/grib2/tables/26/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/26/4.240.table b/definitions/grib2/tables/26/4.240.table index 4daef3d13..2a31fb2ab 100644 --- a/definitions/grib2/tables/26/4.240.table +++ b/definitions/grib2/tables/26/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) @@ -8,6 +8,6 @@ 6 6 Log-normal distribution with spatially variable number density, mean diameter and fixed variance(p1) 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) -# 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 9-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/26/4.241.table b/definitions/grib2/tables/26/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/26/4.241.table +++ b/definitions/grib2/tables/26/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/26/4.242.table b/definitions/grib2/tables/26/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/26/4.242.table +++ b/definitions/grib2/tables/26/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/26/4.243.table b/definitions/grib2/tables/26/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/26/4.243.table +++ b/definitions/grib2/tables/26/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/26/4.244.table b/definitions/grib2/tables/26/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/26/4.244.table +++ b/definitions/grib2/tables/26/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.247.table b/definitions/grib2/tables/26/4.247.table index cd7fc90bd..6da16e396 100644 --- a/definitions/grib2/tables/26/4.247.table +++ b/definitions/grib2/tables/26/4.247.table @@ -1,7 +1,7 @@ # Code table 4.247 - Precipitation intensity -0 0 No precipitation occurrence -1 1 Light precipitation -2 2 Moderate precipitation -3 3 Heavy precipitation -# 4-254 Reserved -255 255 Missing +0 0 No precipitation occurrence +1 1 Light precipitation +2 2 Moderate precipitation +3 3 Heavy precipitation +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/4.3.table b/definitions/grib2/tables/26/4.3.table index 8ba9e08ab..cea1bef4f 100644 --- a/definitions/grib2/tables/26/4.3.table +++ b/definitions/grib2/tables/26/4.3.table @@ -1,23 +1,23 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.4.table b/definitions/grib2/tables/26/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/26/4.4.table +++ b/definitions/grib2/tables/26/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.5.table b/definitions/grib2/tables/26/4.5.table index 05050c6b7..4ecc8e6a6 100644 --- a/definitions/grib2/tables/26/4.5.table +++ b/definitions/grib2/tables/26/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -18,23 +18,23 @@ 16 16 Level of neutral buoyancy or equilibrium level (LNB) (-) 17 sfc Departure level of the most unstable parcel of air (MUDL) 18 sfc Departure level of a mixed layer parcel of air with specified layer depth (Pa) -# 19 Reserved +# 19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) 25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ) -# 26-29 Reserved +# 26-29 Reserved 30 30 Specified radius from the center of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level -# 36-99 Reserved +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level +# 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -43,21 +43,21 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea ice level (Numeric) -# 153-159 Reserved +# 153-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -69,7 +69,7 @@ 168 168 Ocean model level (Numeric) 169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3) 170 170 Ocean level defined by water potential temperature difference from near-surface to level (K) -# 171-173 Reserved +# 171-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -81,6 +81,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.6.table b/definitions/grib2/tables/26/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/26/4.6.table +++ b/definitions/grib2/tables/26/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.7.table b/definitions/grib2/tables/26/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/26/4.7.table +++ b/definitions/grib2/tables/26/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.8.table b/definitions/grib2/tables/26/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/26/4.8.table +++ b/definitions/grib2/tables/26/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.9.table b/definitions/grib2/tables/26/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/26/4.9.table +++ b/definitions/grib2/tables/26/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/4.91.table b/definitions/grib2/tables/26/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/26/4.91.table +++ b/definitions/grib2/tables/26/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/26/5.0.table b/definitions/grib2/tables/26/5.0.table index ac0a10f02..5e00004b0 100644 --- a/definitions/grib2/tables/26/5.0.table +++ b/definitions/grib2/tables/26/5.0.table @@ -1,22 +1,22 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data -# 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression -# 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data +# 5-39 Reserved +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression +# 43-49 Reserved +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved -53 53 Spectral data for limited area models - complex packing -# 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing -# 62-199 Reserved -200 200 Run length packing with level values -# 201-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing +53 53 Spectral data for limited area models - complex packing +# 54-60 Reserved +61 61 Grid point data - simple packing with logarithm pre-processing +# 62-199 Reserved +200 200 Run length packing with level values +# 201-49151 Reserved +# 49152-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/26/5.1.table b/definitions/grib2/tables/26/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/26/5.1.table +++ b/definitions/grib2/tables/26/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.2.table b/definitions/grib2/tables/26/5.2.table index 40586a131..d77fdf4e7 100644 --- a/definitions/grib2/tables/26/5.2.table +++ b/definitions/grib2/tables/26/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.25.table b/definitions/grib2/tables/26/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/26/5.25.table +++ b/definitions/grib2/tables/26/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/5.26.table b/definitions/grib2/tables/26/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/26/5.26.table +++ b/definitions/grib2/tables/26/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/5.3.table b/definitions/grib2/tables/26/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/26/5.3.table +++ b/definitions/grib2/tables/26/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.4.table b/definitions/grib2/tables/26/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/26/5.4.table +++ b/definitions/grib2/tables/26/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.40.table b/definitions/grib2/tables/26/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/26/5.40.table +++ b/definitions/grib2/tables/26/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/5.5.table b/definitions/grib2/tables/26/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/26/5.5.table +++ b/definitions/grib2/tables/26/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.6.table b/definitions/grib2/tables/26/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/26/5.6.table +++ b/definitions/grib2/tables/26/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/26/5.7.table b/definitions/grib2/tables/26/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/26/5.7.table +++ b/definitions/grib2/tables/26/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/26/6.0.table b/definitions/grib2/tables/26/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/26/6.0.table +++ b/definitions/grib2/tables/26/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/27/0.0.table b/definitions/grib2/tables/27/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/27/0.0.table +++ b/definitions/grib2/tables/27/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/1.1.table b/definitions/grib2/tables/27/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/27/1.1.table +++ b/definitions/grib2/tables/27/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/27/1.2.table b/definitions/grib2/tables/27/1.2.table index 9833a2721..77f96637a 100644 --- a/definitions/grib2/tables/27/1.2.table +++ b/definitions/grib2/tables/27/1.2.table @@ -1,9 +1,9 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time 4 4 Local time -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/1.3.table b/definitions/grib2/tables/27/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/27/1.3.table +++ b/definitions/grib2/tables/27/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/1.4.table b/definitions/grib2/tables/27/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/27/1.4.table +++ b/definitions/grib2/tables/27/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/27/1.5.table b/definitions/grib2/tables/27/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/27/1.5.table +++ b/definitions/grib2/tables/27/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/27/1.6.table b/definitions/grib2/tables/27/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/27/1.6.table +++ b/definitions/grib2/tables/27/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.0.table b/definitions/grib2/tables/27/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/27/3.0.table +++ b/definitions/grib2/tables/27/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/27/3.1.table b/definitions/grib2/tables/27/3.1.table index ed68c5144..41da4c59c 100644 --- a/definitions/grib2/tables/27/3.1.table +++ b/definitions/grib2/tables/27/3.1.table @@ -1,54 +1,54 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator -# 11-12 Reserved -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator +# 11-12 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/27/3.10.table b/definitions/grib2/tables/27/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/27/3.10.table +++ b/definitions/grib2/tables/27/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/27/3.11.table b/definitions/grib2/tables/27/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/27/3.11.table +++ b/definitions/grib2/tables/27/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/27/3.15.table b/definitions/grib2/tables/27/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/27/3.15.table +++ b/definitions/grib2/tables/27/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.2.table b/definitions/grib2/tables/27/3.2.table index 5369fc878..3b6046969 100644 --- a/definitions/grib2/tables/27/3.2.table +++ b/definitions/grib2/tables/27/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.20.table b/definitions/grib2/tables/27/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/27/3.20.table +++ b/definitions/grib2/tables/27/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.21.table b/definitions/grib2/tables/27/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/27/3.21.table +++ b/definitions/grib2/tables/27/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.25.table b/definitions/grib2/tables/27/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/27/3.25.table +++ b/definitions/grib2/tables/27/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.3.table b/definitions/grib2/tables/27/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/27/3.3.table +++ b/definitions/grib2/tables/27/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/27/3.4.table b/definitions/grib2/tables/27/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/27/3.4.table +++ b/definitions/grib2/tables/27/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/27/3.5.table b/definitions/grib2/tables/27/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/27/3.5.table +++ b/definitions/grib2/tables/27/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/27/3.6.table b/definitions/grib2/tables/27/3.6.table index dc7d107aa..5ab13aaa5 100644 --- a/definitions/grib2/tables/27/3.6.table +++ b/definitions/grib2/tables/27/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type 1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/27/3.7.table b/definitions/grib2/tables/27/3.7.table index 0a7d6efde..34c0de085 100644 --- a/definitions/grib2/tables/27/3.7.table +++ b/definitions/grib2/tables/27/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved +0 0 Reserved 1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/27/3.8.table b/definitions/grib2/tables/27/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/27/3.8.table +++ b/definitions/grib2/tables/27/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/3.9.table b/definitions/grib2/tables/27/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/27/3.9.table +++ b/definitions/grib2/tables/27/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/27/4.0.table b/definitions/grib2/tables/27/4.0.table index d0aaa8330..480c65e95 100644 --- a/definitions/grib2/tables/27/4.0.table +++ b/definitions/grib2/tables/27/4.0.table @@ -1,87 +1,87 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values, or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol 86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time 87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -# 89-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 92-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +# 89-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 92-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/27/4.1.0.table b/definitions/grib2/tables/27/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/27/4.1.0.table +++ b/definitions/grib2/tables/27/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.1.table b/definitions/grib2/tables/27/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/27/4.1.1.table +++ b/definitions/grib2/tables/27/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.10.table b/definitions/grib2/tables/27/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/27/4.1.10.table +++ b/definitions/grib2/tables/27/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.2.table b/definitions/grib2/tables/27/4.1.2.table index 60e2452d4..046689b83 100644 --- a/definitions/grib2/tables/27/4.1.2.table +++ b/definitions/grib2/tables/27/4.1.2.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.20.table b/definitions/grib2/tables/27/4.1.20.table index afad6c811..fe4362b3c 100644 --- a/definitions/grib2/tables/27/4.1.20.table +++ b/definitions/grib2/tables/27/4.1.20.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.3.table b/definitions/grib2/tables/27/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/27/4.1.3.table +++ b/definitions/grib2/tables/27/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.1.4.table b/definitions/grib2/tables/27/4.1.4.table index 4d3e1cf2b..792feca5b 100644 --- a/definitions/grib2/tables/27/4.1.4.table +++ b/definitions/grib2/tables/27/4.1.4.table @@ -1,15 +1,15 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.10.table b/definitions/grib2/tables/27/4.10.table index 1a92baaf6..8a390e4be 100644 --- a/definitions/grib2/tables/27/4.10.table +++ b/definitions/grib2/tables/27/4.10.table @@ -1,16 +1,16 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/27/4.11.table b/definitions/grib2/tables/27/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/27/4.11.table +++ b/definitions/grib2/tables/27/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.12.table b/definitions/grib2/tables/27/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/27/4.12.table +++ b/definitions/grib2/tables/27/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.13.table b/definitions/grib2/tables/27/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/27/4.13.table +++ b/definitions/grib2/tables/27/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.14.table b/definitions/grib2/tables/27/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/27/4.14.table +++ b/definitions/grib2/tables/27/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.15.table b/definitions/grib2/tables/27/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/27/4.15.table +++ b/definitions/grib2/tables/27/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.16.table b/definitions/grib2/tables/27/4.16.table index fedb05324..5b9f6fd73 100644 --- a/definitions/grib2/tables/27/4.16.table +++ b/definitions/grib2/tables/27/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -5 5 Probability -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +5 5 Probability +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.0.table b/definitions/grib2/tables/27/4.2.0.0.table index f361355b7..ec0a88ce8 100644 --- a/definitions/grib2/tables/27/4.2.0.0.table +++ b/definitions/grib2/tables/27/4.2.0.0.table @@ -32,5 +32,5 @@ 30 30 Latent heat net flux due to evaporation (W m-2) 31 31 Latent heat net flux due to sublimation (W m-2) # 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.1.table b/definitions/grib2/tables/27/4.2.0.1.table index e03c5bc31..146ec4124 100644 --- a/definitions/grib2/tables/27/4.2.0.1.table +++ b/definitions/grib2/tables/27/4.2.0.1.table @@ -147,5 +147,5 @@ 145 145 Specific snow water content (convective) (kg kg-1) 146 146 Cloud ice precipitation rate (kg m-2 s-1) # 147-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.13.table b/definitions/grib2/tables/27/4.2.0.13.table index 926b454e3..3f5c30675 100644 --- a/definitions/grib2/tables/27/4.2.0.13.table +++ b/definitions/grib2/tables/27/4.2.0.13.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Aerosol type (Code table 4.205) # 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.14.table b/definitions/grib2/tables/27/4.2.0.14.table index 8ce11f812..97fb38c8b 100644 --- a/definitions/grib2/tables/27/4.2.0.14.table +++ b/definitions/grib2/tables/27/4.2.0.14.table @@ -3,5 +3,5 @@ 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.15.table b/definitions/grib2/tables/27/4.2.0.15.table index 80433a87d..8df082466 100644 --- a/definitions/grib2/tables/27/4.2.0.15.table +++ b/definitions/grib2/tables/27/4.2.0.15.table @@ -17,5 +17,5 @@ 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) # 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.16.table b/definitions/grib2/tables/27/4.2.0.16.table index cb2021683..9499d9333 100644 --- a/definitions/grib2/tables/27/4.2.0.16.table +++ b/definitions/grib2/tables/27/4.2.0.16.table @@ -6,5 +6,5 @@ 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) # 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.18.table b/definitions/grib2/tables/27/4.2.0.18.table index fda683983..9ca6db61e 100644 --- a/definitions/grib2/tables/27/4.2.0.18.table +++ b/definitions/grib2/tables/27/4.2.0.18.table @@ -19,5 +19,5 @@ 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) # 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.19.table b/definitions/grib2/tables/27/4.2.0.19.table index 80f4d1173..1ae94c6e6 100644 --- a/definitions/grib2/tables/27/4.2.0.19.table +++ b/definitions/grib2/tables/27/4.2.0.19.table @@ -41,5 +41,5 @@ 39 39 Seeing index (Code table 4.214) 40 40 Snow level (m) # 41-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.190.table b/definitions/grib2/tables/27/4.2.0.190.table index 2e622fe9a..a0d6ba0ac 100644 --- a/definitions/grib2/tables/27/4.2.0.190.table +++ b/definitions/grib2/tables/27/4.2.0.190.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Arbitrary text string (CCITT IA5) # 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.191.table b/definitions/grib2/tables/27/4.2.0.191.table index e580fb466..b3a7092ea 100644 --- a/definitions/grib2/tables/27/4.2.0.191.table +++ b/definitions/grib2/tables/27/4.2.0.191.table @@ -4,5 +4,5 @@ 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.2.table b/definitions/grib2/tables/27/4.2.0.2.table index 9ff2cb2cd..8a70b2591 100644 --- a/definitions/grib2/tables/27/4.2.0.2.table +++ b/definitions/grib2/tables/27/4.2.0.2.table @@ -47,5 +47,5 @@ 45 45 Unbalanced component of divergence (s-1) 46 46 Vorticity advection (s-2) # 47-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.20.table b/definitions/grib2/tables/27/4.2.0.20.table index 842ff478c..9b0170f5c 100644 --- a/definitions/grib2/tables/27/4.2.0.20.table +++ b/definitions/grib2/tables/27/4.2.0.20.table @@ -60,5 +60,5 @@ 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) # 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.3.table b/definitions/grib2/tables/27/4.2.0.3.table index 87113fc8c..52c421b97 100644 --- a/definitions/grib2/tables/27/4.2.0.3.table +++ b/definitions/grib2/tables/27/4.2.0.3.table @@ -32,5 +32,5 @@ 30 30 Downdraught detrainment rate (kg m-3 s-1) 31 31 Unbalanced component of logarithm of surface pressure (-) # 32-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.4.table b/definitions/grib2/tables/27/4.2.0.4.table index 9d44c2e26..226b1e23b 100644 --- a/definitions/grib2/tables/27/4.2.0.4.table +++ b/definitions/grib2/tables/27/4.2.0.4.table @@ -21,5 +21,5 @@ 53 53 Upward short-wave radiation flux, clear sky (W m-2) 54 54 Direct normal short-wave radiation flux (W m-2) # 55-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.5.table b/definitions/grib2/tables/27/4.2.0.5.table index 21d28b5e9..ddfa634ce 100644 --- a/definitions/grib2/tables/27/4.2.0.5.table +++ b/definitions/grib2/tables/27/4.2.0.5.table @@ -9,5 +9,5 @@ 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) # 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.6.table b/definitions/grib2/tables/27/4.2.0.6.table index e0f1d4fde..35f7b5dca 100644 --- a/definitions/grib2/tables/27/4.2.0.6.table +++ b/definitions/grib2/tables/27/4.2.0.6.table @@ -46,5 +46,5 @@ 49 49 Volume fraction of cloud (ice and/or water) (Numeric) 50 50 Fog (%) # 51-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.0.7.table b/definitions/grib2/tables/27/4.2.0.7.table index ada6b8a54..e9aa4e39b 100644 --- a/definitions/grib2/tables/27/4.2.0.7.table +++ b/definitions/grib2/tables/27/4.2.0.7.table @@ -21,5 +21,5 @@ 19 19 Convective available potential energy - shear (m2 s-2) 20 20 Thunderstorm intensity index (Code table 4.246) # 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.1.0.table b/definitions/grib2/tables/27/4.2.1.0.table index 297434e27..a2660f4f3 100644 --- a/definitions/grib2/tables/27/4.2.1.0.table +++ b/definitions/grib2/tables/27/4.2.1.0.table @@ -17,5 +17,5 @@ 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) # 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.1.1.table b/definitions/grib2/tables/27/4.2.1.1.table index 322aedb35..171da3958 100644 --- a/definitions/grib2/tables/27/4.2.1.1.table +++ b/definitions/grib2/tables/27/4.2.1.1.table @@ -3,5 +3,5 @@ 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.1.2.table b/definitions/grib2/tables/27/4.2.1.2.table index c6d5a9be5..84844b25a 100644 --- a/definitions/grib2/tables/27/4.2.1.2.table +++ b/definitions/grib2/tables/27/4.2.1.2.table @@ -15,5 +15,5 @@ 13 13 Cross-sectional area of flow in channel (m2) 14 14 Snow temperature (K) # 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.0.table b/definitions/grib2/tables/27/4.2.10.0.table index 92d4cafa9..db25b251f 100644 --- a/definitions/grib2/tables/27/4.2.10.0.table +++ b/definitions/grib2/tables/27/4.2.10.0.table @@ -72,5 +72,5 @@ 70 70 Peak wave direction of third swell partition (degree true) 71 71 Peak direction of wind waves (degree true) # 72-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.1.table b/definitions/grib2/tables/27/4.2.10.1.table index 33674371f..237e6865a 100644 --- a/definitions/grib2/tables/27/4.2.10.1.table +++ b/definitions/grib2/tables/27/4.2.10.1.table @@ -5,5 +5,5 @@ 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.191.table b/definitions/grib2/tables/27/4.2.10.191.table index 900a29432..fe90ab6aa 100644 --- a/definitions/grib2/tables/27/4.2.10.191.table +++ b/definitions/grib2/tables/27/4.2.10.191.table @@ -5,5 +5,5 @@ 3 3 Days since last observation (d) 4 4 Barotropic stream function (m3 s-1) # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.2.table b/definitions/grib2/tables/27/4.2.10.2.table index 42a380e7d..6fbb95a65 100644 --- a/definitions/grib2/tables/27/4.2.10.2.table +++ b/definitions/grib2/tables/27/4.2.10.2.table @@ -14,5 +14,5 @@ 12 12 Compressive ice strength (N/m) 13 13 Snow temperature (over sea ice) (K) # 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.3.table b/definitions/grib2/tables/27/4.2.10.3.table index b7a2f75a6..a922ee799 100644 --- a/definitions/grib2/tables/27/4.2.10.3.table +++ b/definitions/grib2/tables/27/4.2.10.3.table @@ -12,5 +12,5 @@ 10 10 Halosteric change in sea surface height (m) 11 11 Steric change in sea surface height (m) # 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.10.4.table b/definitions/grib2/tables/27/4.2.10.4.table index a4bfd602f..677cbbcb0 100644 --- a/definitions/grib2/tables/27/4.2.10.4.table +++ b/definitions/grib2/tables/27/4.2.10.4.table @@ -26,5 +26,5 @@ 26 26 y-component water velocity (m s-1) 27 27 Upward water velocity (m s-1) # 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.2.0.table b/definitions/grib2/tables/27/4.2.2.0.table index 1ce9c72b9..4ffd25ae9 100644 --- a/definitions/grib2/tables/27/4.2.2.0.table +++ b/definitions/grib2/tables/27/4.2.2.0.table @@ -41,5 +41,5 @@ 39 39 Evapotranspiration rate (kg m-2 s-1) 40 40 Potential evapotranspiration rate (kg m-2 s-1) # 41-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.2.3.table b/definitions/grib2/tables/27/4.2.2.3.table index 763004b87..d5540f48b 100644 --- a/definitions/grib2/tables/27/4.2.2.3.table +++ b/definitions/grib2/tables/27/4.2.2.3.table @@ -30,5 +30,5 @@ 28 28 Snow temperature (K) 29 29 Ice temperature (K) # 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.2.4.table b/definitions/grib2/tables/27/4.2.2.4.table index 3421cbf3b..5bc0b0b70 100644 --- a/definitions/grib2/tables/27/4.2.2.4.table +++ b/definitions/grib2/tables/27/4.2.2.4.table @@ -20,5 +20,5 @@ 18 18 Ignition component (as defined by the US Forest Service National Fire Danger Rating System) (%) 19 19 Energy release component (as defined by the US Forest Service National Fire Danger Rating System) (Joule/m2) # 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.2.5.table b/definitions/grib2/tables/27/4.2.2.5.table index d5297e727..a5a71dcd1 100644 --- a/definitions/grib2/tables/27/4.2.2.5.table +++ b/definitions/grib2/tables/27/4.2.2.5.table @@ -2,5 +2,5 @@ 0 0 Glacier cover (Proportion) 1 1 Glacier temperature (K) # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.20.0.table b/definitions/grib2/tables/27/4.2.20.0.table index 88c7248e1..cf842f6ea 100644 --- a/definitions/grib2/tables/27/4.2.20.0.table +++ b/definitions/grib2/tables/27/4.2.20.0.table @@ -2,5 +2,5 @@ 0 0 Universal thermal climate index (K) 1 1 Mean radiant temperature (K) # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.20.1.table b/definitions/grib2/tables/27/4.2.20.1.table index b98f62980..3c94cdf17 100644 --- a/definitions/grib2/tables/27/4.2.20.1.table +++ b/definitions/grib2/tables/27/4.2.20.1.table @@ -10,5 +10,5 @@ 8 8 Anopheles vector number (Number m-2) 9 9 Fraction of malarial vector reproductive habitat (Fraction) # 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.20.2.table b/definitions/grib2/tables/27/4.2.20.2.table index 4eab181af..8a937c0d1 100644 --- a/definitions/grib2/tables/27/4.2.20.2.table +++ b/definitions/grib2/tables/27/4.2.20.2.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Population density (Person m-2) # 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.3.0.table b/definitions/grib2/tables/27/4.2.3.0.table index 387eef7a5..80a829673 100644 --- a/definitions/grib2/tables/27/4.2.3.0.table +++ b/definitions/grib2/tables/27/4.2.3.0.table @@ -10,5 +10,5 @@ 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) # 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.3.1.table b/definitions/grib2/tables/27/4.2.3.1.table index 5a30a7875..365e59a22 100644 --- a/definitions/grib2/tables/27/4.2.3.1.table +++ b/definitions/grib2/tables/27/4.2.3.1.table @@ -22,7 +22,7 @@ 20 20 Aerosol optical thickness at 0.635 um 21 21 Aerosol optical thickness at 0.810 um 22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient +23 23 Angstrom coefficient # 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) @@ -31,5 +31,5 @@ 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) # 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.0.table b/definitions/grib2/tables/27/4.2.4.0.table index 46bae651a..f89f1fee8 100644 --- a/definitions/grib2/tables/27/4.2.4.0.table +++ b/definitions/grib2/tables/27/4.2.4.0.table @@ -6,5 +6,5 @@ 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) # 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.1.table b/definitions/grib2/tables/27/4.2.4.1.table index f69353f05..de1bb48b1 100644 --- a/definitions/grib2/tables/27/4.2.4.1.table +++ b/definitions/grib2/tables/27/4.2.4.1.table @@ -4,5 +4,5 @@ 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.10.table b/definitions/grib2/tables/27/4.2.4.10.table index 554410467..dade20fca 100644 --- a/definitions/grib2/tables/27/4.2.4.10.table +++ b/definitions/grib2/tables/27/4.2.4.10.table @@ -8,5 +8,5 @@ 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral Electrojet (AE) (nT) # 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.2.table b/definitions/grib2/tables/27/4.2.4.2.table index 9430e193f..0ab69cf2c 100644 --- a/definitions/grib2/tables/27/4.2.4.2.table +++ b/definitions/grib2/tables/27/4.2.4.2.table @@ -14,5 +14,5 @@ 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) # 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.3.table b/definitions/grib2/tables/27/4.2.4.3.table index 70f6a9d4c..943251fca 100644 --- a/definitions/grib2/tables/27/4.2.4.3.table +++ b/definitions/grib2/tables/27/4.2.4.3.table @@ -8,5 +8,5 @@ 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) # 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.4.table b/definitions/grib2/tables/27/4.2.4.4.table index 4e1779d19..991faa417 100644 --- a/definitions/grib2/tables/27/4.2.4.4.table +++ b/definitions/grib2/tables/27/4.2.4.4.table @@ -7,5 +7,5 @@ 5 5 Heavy ion flux (integral) ((m2 s sr)-1) 6 6 Cosmic ray neutron flux (/h) # 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.5.table b/definitions/grib2/tables/27/4.2.4.5.table index 468a5598f..e4aae61da 100644 --- a/definitions/grib2/tables/27/4.2.4.5.table +++ b/definitions/grib2/tables/27/4.2.4.5.table @@ -4,5 +4,5 @@ 2 2 Frequency (Hz) 3 3 Wave length (m) # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.6.table b/definitions/grib2/tables/27/4.2.4.6.table index 12310bc6e..64dccb947 100644 --- a/definitions/grib2/tables/27/4.2.4.6.table +++ b/definitions/grib2/tables/27/4.2.4.6.table @@ -7,5 +7,5 @@ 5 5 F10.7 (W m-2 Hz-1) 6 6 Solar radio emissions (W m-2 Hz-1) # 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.7.table b/definitions/grib2/tables/27/4.2.4.7.table index 15d142013..98dd1d649 100644 --- a/definitions/grib2/tables/27/4.2.4.7.table +++ b/definitions/grib2/tables/27/4.2.4.7.table @@ -4,5 +4,5 @@ 2 2 Disk intensity day (J m-2 s-1) 3 3 Disk intensity night (J m-2 s-1) # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.8.table b/definitions/grib2/tables/27/4.2.4.8.table index 00f76b77f..3c7834a9a 100644 --- a/definitions/grib2/tables/27/4.2.4.8.table +++ b/definitions/grib2/tables/27/4.2.4.8.table @@ -8,5 +8,5 @@ 6 6 Heliospheric radiance (W sr-1 m-2) 7 7 Thematic mask (Numeric) # 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.2.4.9.table b/definitions/grib2/tables/27/4.2.4.9.table index 8892a61a9..df8ceaac2 100644 --- a/definitions/grib2/tables/27/4.2.4.9.table +++ b/definitions/grib2/tables/27/4.2.4.9.table @@ -3,5 +3,5 @@ 1 1 Hall conductivity (S m-1) 2 2 Parallel conductivity (S m-1) # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.201.table b/definitions/grib2/tables/27/4.201.table index b4657c66e..0dca20884 100644 --- a/definitions/grib2/tables/27/4.201.table +++ b/definitions/grib2/tables/27/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type 0 0 Reserved -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle # 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.202.table b/definitions/grib2/tables/27/4.202.table index 0e02f2957..7f3c8f6cf 100644 --- a/definitions/grib2/tables/27/4.202.table +++ b/definitions/grib2/tables/27/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category # 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.203.table b/definitions/grib2/tables/27/4.203.table index 9d73d6422..cf5eb6bdc 100644 --- a/definitions/grib2/tables/27/4.203.table +++ b/definitions/grib2/tables/27/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer # 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.204.table b/definitions/grib2/tables/27/4.204.table index f6d2985bd..8e0be1f8c 100644 --- a/definitions/grib2/tables/27/4.204.table +++ b/definitions/grib2/tables/27/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.205.table b/definitions/grib2/tables/27/4.205.table index 3d579a07a..c40c7f47b 100644 --- a/definitions/grib2/tables/27/4.205.table +++ b/definitions/grib2/tables/27/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present +0 0 Aerosol not present +1 1 Aerosol present # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.206.table b/definitions/grib2/tables/27/4.206.table index 38f037aa4..76472c261 100644 --- a/definitions/grib2/tables/27/4.206.table +++ b/definitions/grib2/tables/27/4.206.table @@ -3,4 +3,4 @@ 1 1 Present # 2-191 Reserved # 192-254 Reserved for local use -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/4.207.table b/definitions/grib2/tables/27/4.207.table index 9b6f046f2..b6392fca0 100644 --- a/definitions/grib2/tables/27/4.207.table +++ b/definitions/grib2/tables/27/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy # 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.208.table b/definitions/grib2/tables/27/4.208.table index 5320a7542..4361d38c0 100644 --- a/definitions/grib2/tables/27/4.208.table +++ b/definitions/grib2/tables/27/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.209.table b/definitions/grib2/tables/27/4.209.table index 658d2b57c..39ea549ac 100644 --- a/definitions/grib2/tables/27/4.209.table +++ b/definitions/grib2/tables/27/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime 0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.210.table b/definitions/grib2/tables/27/4.210.table index dc3d03302..791878469 100644 --- a/definitions/grib2/tables/27/4.210.table +++ b/definitions/grib2/tables/27/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present +0 0 Contrail not present +1 1 Contrail present # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.211.table b/definitions/grib2/tables/27/4.211.table index 407b95a79..2a28a84d9 100644 --- a/definitions/grib2/tables/27/4.211.table +++ b/definitions/grib2/tables/27/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.212.table b/definitions/grib2/tables/27/4.212.table index 34a500634..6a3dcf88c 100644 --- a/definitions/grib2/tables/27/4.212.table +++ b/definitions/grib2/tables/27/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use 0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah # 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.213.table b/definitions/grib2/tables/27/4.213.table index 6d3c54217..68d627af6 100644 --- a/definitions/grib2/tables/27/4.213.table +++ b/definitions/grib2/tables/27/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type 0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay # 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.214.table b/definitions/grib2/tables/27/4.214.table index eb9db0d02..b08860ce0 100644 --- a/definitions/grib2/tables/27/4.214.table +++ b/definitions/grib2/tables/27/4.214.table @@ -1,11 +1,11 @@ # Code table 4.214 - Environmental Factor Qualifier -0 0 Worst -1 1 Very poor -2 2 Poor -3 3 Average -4 4 Good -5 5 Excellent +0 0 Worst +1 1 Very poor +2 2 Poor +3 3 Average +4 4 Good +5 5 Excellent # 6-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.215.table b/definitions/grib2/tables/27/4.215.table index e265bdca9..7888772d5 100644 --- a/definitions/grib2/tables/27/4.215.table +++ b/definitions/grib2/tables/27/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage # 0-49 Reserved -50 50 No-snow/no-cloud +50 50 No-snow/no-cloud # 51-99 Reserved -100 100 Clouds +100 100 Clouds # 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.216.table b/definitions/grib2/tables/27/4.216.table index b460fb94b..b51b358f4 100644 --- a/definitions/grib2/tables/27/4.216.table +++ b/definitions/grib2/tables/27/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m +# 0-90 Elevation in increments of 100 m # 91-253 Reserved -254 254 Clouds -255 255 Missing +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/27/4.217.table b/definitions/grib2/tables/27/4.217.table index 03a60b6b0..a700410d5 100644 --- a/definitions/grib2/tables/27/4.217.table +++ b/definitions/grib2/tables/27/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.218.table b/definitions/grib2/tables/27/4.218.table index 8463ca3af..a13debf16 100644 --- a/definitions/grib2/tables/27/4.218.table +++ b/definitions/grib2/tables/27/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud # 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud # 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.219.table b/definitions/grib2/tables/27/4.219.table index 6bec88ecb..9979f50ad 100644 --- a/definitions/grib2/tables/27/4.219.table +++ b/definitions/grib2/tables/27/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.220.table b/definitions/grib2/tables/27/4.220.table index 653056229..88e869e42 100644 --- a/definitions/grib2/tables/27/4.220.table +++ b/definitions/grib2/tables/27/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude +0 0 Latitude +1 1 Longitude # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.221.table b/definitions/grib2/tables/27/4.221.table index 0f76e0c58..011cc3518 100644 --- a/definitions/grib2/tables/27/4.221.table +++ b/definitions/grib2/tables/27/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated +0 0 Not included +1 1 Extrapolated # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.222.table b/definitions/grib2/tables/27/4.222.table index 1624cafdb..558d947ac 100644 --- a/definitions/grib2/tables/27/4.222.table +++ b/definitions/grib2/tables/27/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes +0 0 No +1 1 Yes # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.223.table b/definitions/grib2/tables/27/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/27/4.223.table +++ b/definitions/grib2/tables/27/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/27/4.224.table b/definitions/grib2/tables/27/4.224.table index 4e16305a4..014f56e23 100644 --- a/definitions/grib2/tables/27/4.224.table +++ b/definitions/grib2/tables/27/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area +0 0 No risk area 1 1 Reserved -2 2 General thunderstorm risk area +2 2 General thunderstorm risk area 3 3 Reserved -4 4 Slight risk area +4 4 Slight risk area 5 5 Reserved -6 6 Moderate risk area +6 6 Moderate risk area 7 7 Reserved -8 8 High risk area +8 8 High risk area # 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area +11 11 Dry thunderstorm (dry lightning) risk area # 12-13 Reserved -14 14 Critical risk area +14 14 Critical risk area # 15-17 Reserved -18 18 Extremely critical risk area +18 18 Extremely critical risk area # 19-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/4.227.table b/definitions/grib2/tables/27/4.227.table index 1ff73d623..48c3b7633 100644 --- a/definitions/grib2/tables/27/4.227.table +++ b/definitions/grib2/tables/27/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/27/4.228.table b/definitions/grib2/tables/27/4.228.table index 6198a462e..048a69f0b 100644 --- a/definitions/grib2/tables/27/4.228.table +++ b/definitions/grib2/tables/27/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe # 5-254 Reserved -255 255 Missing value +255 255 Missing value diff --git a/definitions/grib2/tables/27/4.234.table b/definitions/grib2/tables/27/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/27/4.234.table +++ b/definitions/grib2/tables/27/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/27/4.236.table b/definitions/grib2/tables/27/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/27/4.236.table +++ b/definitions/grib2/tables/27/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/27/4.238.table b/definitions/grib2/tables/27/4.238.table index 785f06d14..be5be3a90 100644 --- a/definitions/grib2/tables/27/4.238.table +++ b/definitions/grib2/tables/27/4.238.table @@ -1,32 +1,32 @@ # Code table 4.238 - Source or sink -0 0 Other -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -12 12 Elevated anthropogenic sources -13 13 Surface anthropogenic sources -14 14 Agriculture livestock -15 15 Agriculture soils -16 16 Agriculture waste burning -17 17 Agriculture (all) -18 18 Residential, commercial and other combustion -19 19 Power generation -20 20 Super power stations -21 21 Fugitives -22 22 Industrial process -23 23 Solvents -24 24 Ships -25 25 Wastes (solid and water) -26 26 Road transportation -27 27 Off-road transportation +0 0 Other +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +12 12 Elevated anthropogenic sources +13 13 Surface anthropogenic sources +14 14 Agriculture livestock +15 15 Agriculture soils +16 16 Agriculture waste burning +17 17 Agriculture (all) +18 18 Residential, commercial and other combustion +19 19 Power generation +20 20 Super power stations +21 21 Fugitives +22 22 Industrial process +23 23 Solvents +24 24 Ships +25 25 Wastes (solid and water) +26 26 Road transportation +27 27 Off-road transportation # 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.240.table b/definitions/grib2/tables/27/4.240.table index ca3bb8fd1..2a31fb2ab 100644 --- a/definitions/grib2/tables/27/4.240.table +++ b/definitions/grib2/tables/27/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) @@ -9,5 +9,5 @@ 7 7 Log-normal distribution with spatially variable number density and mass density and fixed variance(p1) and fixed particle density(p2) 8 8 No distribution function. The encoded variable is derived from variables characterized by type of distribution function of type No. 7 (see above) with fixed variance(p1) and fixed particle density(p2) # 9-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing value +# 49152-65534 Reserved for local use +65535 65535 Missing value diff --git a/definitions/grib2/tables/27/4.241.table b/definitions/grib2/tables/27/4.241.table index 556329f75..5ea7f775a 100644 --- a/definitions/grib2/tables/27/4.241.table +++ b/definitions/grib2/tables/27/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered # 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/27/4.242.table b/definitions/grib2/tables/27/4.242.table index d37a6f492..f6865957c 100644 --- a/definitions/grib2/tables/27/4.242.table +++ b/definitions/grib2/tables/27/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification 0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/27/4.243.table b/definitions/grib2/tables/27/4.243.table index e72b699f8..24d21b719 100644 --- a/definitions/grib2/tables/27/4.243.table +++ b/definitions/grib2/tables/27/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class 0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined # 40-32767 Reserved -# 32768- Reserved for local use +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/27/4.244.table b/definitions/grib2/tables/27/4.244.table index 2b8d8fe66..a4470cd56 100644 --- a/definitions/grib2/tables/27/4.244.table +++ b/definitions/grib2/tables/27/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed +0 0 No quality information available +1 1 Failed +2 2 Passed # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.247.table b/definitions/grib2/tables/27/4.247.table index 2e28368f6..6da16e396 100644 --- a/definitions/grib2/tables/27/4.247.table +++ b/definitions/grib2/tables/27/4.247.table @@ -1,7 +1,7 @@ # Code table 4.247 - Precipitation intensity -0 0 No precipitation occurrence -1 1 Light precipitation -2 2 Moderate precipitation -3 3 Heavy precipitation +0 0 No precipitation occurrence +1 1 Light precipitation +2 2 Moderate precipitation +3 3 Heavy precipitation # 4-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/4.3.table b/definitions/grib2/tables/27/4.3.table index d5aadcfe1..8ae36efc3 100644 --- a/definitions/grib2/tables/27/4.3.table +++ b/definitions/grib2/tables/27/4.3.table @@ -1,26 +1,26 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast 12 12 Post-processed analysis 13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -19 19 First guess +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +19 19 First guess 20 20 Analysis increment 21 21 Initialization increment for analysis -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.4.table b/definitions/grib2/tables/27/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/27/4.4.table +++ b/definitions/grib2/tables/27/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.5.table b/definitions/grib2/tables/27/4.5.table index c3d56dfb6..a1084729a 100644 --- a/definitions/grib2/tables/27/4.5.table +++ b/definitions/grib2/tables/27/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -18,23 +18,23 @@ 16 16 Level of neutral buoyancy or equilibrium level (LNB) (-) 17 sfc Departure level of the most unstable parcel of air (MUDL) 18 sfc Departure level of a mixed layer parcel of air with specified layer depth (Pa) -# 19 Reserved +# 19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) 23 23 Lowest level where air concentration exceeds the specified value (base for a given threshold of air concentration) (Bq m-3) 24 24 Highest level where air concentration exceeds the specified value (top for a given threshold of air concentration) (Bq m-3) 25 25 Highest level where radar reflectivity exceeds the specified value (echo top for a given threshold of reflectivity) (dBZ) -# 26-29 Reserved +# 26-29 Reserved 30 30 Specified radius from the center of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level -# 36-99 Reserved +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level +# 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -43,21 +43,21 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea-ice level (Numeric) -# 153-159 Reserved +# 153-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -69,7 +69,7 @@ 168 168 Ocean model level (Numeric) 169 169 Ocean level defined by water density (sigma-theta) difference from near-surface to level (kg m-3) 170 170 Ocean level defined by water potential temperature difference from near-surface to level (K) -# 171-173 Reserved +# 171-173 Reserved 174 sfc Top surface of ice on sea, lake or river 175 175 Top surface of ice, under snow cover, on sea, lake or river 176 176 Bottom surface (underside) ice on sea, lake or river @@ -81,6 +81,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.6.table b/definitions/grib2/tables/27/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/27/4.6.table +++ b/definitions/grib2/tables/27/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.7.table b/definitions/grib2/tables/27/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/27/4.7.table +++ b/definitions/grib2/tables/27/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.8.table b/definitions/grib2/tables/27/4.8.table index 88f0ad29d..78467454a 100644 --- a/definitions/grib2/tables/27/4.8.table +++ b/definitions/grib2/tables/27/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square +0 0 Anomaly correlation +1 1 Root mean square # 2-191 Reserved # 192-254 Reserved for local use -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/4.9.table b/definitions/grib2/tables/27/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/27/4.9.table +++ b/definitions/grib2/tables/27/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/4.91.table b/definitions/grib2/tables/27/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/27/4.91.table +++ b/definitions/grib2/tables/27/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/27/5.0.table b/definitions/grib2/tables/27/5.0.table index eaca4ac66..5e00004b0 100644 --- a/definitions/grib2/tables/27/5.0.table +++ b/definitions/grib2/tables/27/5.0.table @@ -1,22 +1,22 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data # 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression # 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved -53 53 Spectral data for limited area models - complex packing +53 53 Spectral data for limited area models - complex packing # 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing +61 61 Grid point data - simple packing with logarithm pre-processing # 62-199 Reserved -200 200 Run length packing with level values +200 200 Run length packing with level values # 201-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing +# 49152-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/27/5.1.table b/definitions/grib2/tables/27/5.1.table index 86b532ccb..1189b5e46 100644 --- a/definitions/grib2/tables/27/5.1.table +++ b/definitions/grib2/tables/27/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer +0 0 Floating point +1 1 Integer # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.2.table b/definitions/grib2/tables/27/5.2.table index a9729dafe..d77fdf4e7 100644 --- a/definitions/grib2/tables/27/5.2.table +++ b/definitions/grib2/tables/27/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 # 2-10 Reserved 11 11 Geometric coordinates f(1)=C1, f(n)=C2*f(n-1) # 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.25.table b/definitions/grib2/tables/27/5.25.table index 6722fb2c2..79e9fd69a 100644 --- a/definitions/grib2/tables/27/5.25.table +++ b/definitions/grib2/tables/27/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation # 0-76 Reserved -77 77 Rectangular +77 77 Rectangular # 78-87 Reserved -88 88 Elliptic +88 88 Elliptic # 89-98 Reserved -99 99 Diamond +99 99 Diamond # 100-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/5.26.table b/definitions/grib2/tables/27/5.26.table index e54d98aca..298f3fcd0 100644 --- a/definitions/grib2/tables/27/5.26.table +++ b/definitions/grib2/tables/27/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset # 2-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/5.3.table b/definitions/grib2/tables/27/5.3.table index 758f4df78..481331791 100644 --- a/definitions/grib2/tables/27/5.3.table +++ b/definitions/grib2/tables/27/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) # 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.4.table b/definitions/grib2/tables/27/5.4.table index be9d35030..e84ab1901 100644 --- a/definitions/grib2/tables/27/5.4.table +++ b/definitions/grib2/tables/27/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting +0 0 Row by row splitting +1 1 General group splitting # 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.40.table b/definitions/grib2/tables/27/5.40.table index f0977ac85..97e8880ab 100644 --- a/definitions/grib2/tables/27/5.40.table +++ b/definitions/grib2/tables/27/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy +0 0 Lossless +1 1 Lossy # 2-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/5.5.table b/definitions/grib2/tables/27/5.5.table index 0f31d8025..f2316975a 100644 --- a/definitions/grib2/tables/27/5.5.table +++ b/definitions/grib2/tables/27/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.6.table b/definitions/grib2/tables/27/5.6.table index bfd944ca8..db68ead9c 100644 --- a/definitions/grib2/tables/27/5.6.table +++ b/definitions/grib2/tables/27/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing 0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing +1 1 First-order spatial differencing +2 2 Second-order spatial differencing # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/27/5.7.table b/definitions/grib2/tables/27/5.7.table index d7900695e..e54862c19 100644 --- a/definitions/grib2/tables/27/5.7.table +++ b/definitions/grib2/tables/27/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers 0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) # 4-254 Reserved -255 255 Missing +255 255 Missing diff --git a/definitions/grib2/tables/27/6.0.table b/definitions/grib2/tables/27/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/27/6.0.table +++ b/definitions/grib2/tables/27/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/28/0.0.table b/definitions/grib2/tables/28/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/28/0.0.table +++ b/definitions/grib2/tables/28/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/1.1.table b/definitions/grib2/tables/28/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/28/1.1.table +++ b/definitions/grib2/tables/28/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/28/1.2.table b/definitions/grib2/tables/28/1.2.table index 44ea816e9..77f96637a 100644 --- a/definitions/grib2/tables/28/1.2.table +++ b/definitions/grib2/tables/28/1.2.table @@ -1,9 +1,9 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -4 4 Local time -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +4 4 Local time +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/1.3.table b/definitions/grib2/tables/28/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/28/1.3.table +++ b/definitions/grib2/tables/28/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/1.4.table b/definitions/grib2/tables/28/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/28/1.4.table +++ b/definitions/grib2/tables/28/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/28/1.5.table b/definitions/grib2/tables/28/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/28/1.5.table +++ b/definitions/grib2/tables/28/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/28/1.6.table b/definitions/grib2/tables/28/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/28/1.6.table +++ b/definitions/grib2/tables/28/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.0.table b/definitions/grib2/tables/28/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/28/3.0.table +++ b/definitions/grib2/tables/28/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/28/3.1.table b/definitions/grib2/tables/28/3.1.table index 60a5eddb4..7d372ddaf 100644 --- a/definitions/grib2/tables/28/3.1.table +++ b/definitions/grib2/tables/28/3.1.table @@ -1,55 +1,55 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator # 11 Reserved 12 12 Transverse Mercator -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/28/3.10.table b/definitions/grib2/tables/28/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/28/3.10.table +++ b/definitions/grib2/tables/28/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/28/3.11.table b/definitions/grib2/tables/28/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/28/3.11.table +++ b/definitions/grib2/tables/28/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/3.15.table b/definitions/grib2/tables/28/3.15.table index 331217ebe..6087902a3 100644 --- a/definitions/grib2/tables/28/3.15.table +++ b/definitions/grib2/tables/28/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m-2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.2.table b/definitions/grib2/tables/28/3.2.table index 5369fc878..3b6046969 100644 --- a/definitions/grib2/tables/28/3.2.table +++ b/definitions/grib2/tables/28/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) -5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695,990,000 m (Allen, C.W., 1976 Astrophysical Quantities (3rd Ed.; London: Athlone) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W, Coordinate systems for solar image data, A&A 449, 791-803 (2006)) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.20.table b/definitions/grib2/tables/28/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/28/3.20.table +++ b/definitions/grib2/tables/28/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.21.table b/definitions/grib2/tables/28/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/28/3.21.table +++ b/definitions/grib2/tables/28/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.25.table b/definitions/grib2/tables/28/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/28/3.25.table +++ b/definitions/grib2/tables/28/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.3.table b/definitions/grib2/tables/28/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/28/3.3.table +++ b/definitions/grib2/tables/28/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/28/3.4.table b/definitions/grib2/tables/28/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/28/3.4.table +++ b/definitions/grib2/tables/28/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/28/3.5.table b/definitions/grib2/tables/28/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/28/3.5.table +++ b/definitions/grib2/tables/28/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/28/3.6.table b/definitions/grib2/tables/28/3.6.table index 3133b9cfe..5ab13aaa5 100644 --- a/definitions/grib2/tables/28/3.6.table +++ b/definitions/grib2/tables/28/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type -1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +1 1 see separate doc or pdf file +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/28/3.7.table b/definitions/grib2/tables/28/3.7.table index cd566487b..34c0de085 100644 --- a/definitions/grib2/tables/28/3.7.table +++ b/definitions/grib2/tables/28/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved -1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +0 0 Reserved +1 1 see separate doc or pdf file +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/3.8.table b/definitions/grib2/tables/28/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/28/3.8.table +++ b/definitions/grib2/tables/28/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/3.9.table b/definitions/grib2/tables/28/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/28/3.9.table +++ b/definitions/grib2/tables/28/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/28/4.0.table b/definitions/grib2/tables/28/4.0.table index 3b35b9c5c..47aa74902 100644 --- a/definitions/grib2/tables/28/4.0.table +++ b/definitions/grib2/tables/28/4.0.table @@ -1,78 +1,78 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time -87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -# 89-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time +87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +# 89-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval 92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time 93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time @@ -81,14 +81,14 @@ 97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time # 99-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/28/4.1.0.table b/definitions/grib2/tables/28/4.1.0.table index 04cfd7802..df58636d6 100644 --- a/definitions/grib2/tables/28/4.1.0.table +++ b/definitions/grib2/tables/28/4.1.0.table @@ -1,27 +1,27 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.1.table b/definitions/grib2/tables/28/4.1.1.table index 7b22b6fed..05a854da0 100644 --- a/definitions/grib2/tables/28/4.1.1.table +++ b/definitions/grib2/tables/28/4.1.1.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.10.table b/definitions/grib2/tables/28/4.1.10.table index a9b20eb9c..88d3c8743 100644 --- a/definitions/grib2/tables/28/4.1.10.table +++ b/definitions/grib2/tables/28/4.1.10.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.2.table b/definitions/grib2/tables/28/4.1.2.table index 60e2452d4..046689b83 100644 --- a/definitions/grib2/tables/28/4.1.2.table +++ b/definitions/grib2/tables/28/4.1.2.table @@ -1,10 +1,10 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.20.table b/definitions/grib2/tables/28/4.1.20.table index afad6c811..fe4362b3c 100644 --- a/definitions/grib2/tables/28/4.1.20.table +++ b/definitions/grib2/tables/28/4.1.20.table @@ -1,7 +1,7 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.3.table b/definitions/grib2/tables/28/4.1.3.table index 7bf60d4a7..ba38c9301 100644 --- a/definitions/grib2/tables/28/4.1.3.table +++ b/definitions/grib2/tables/28/4.1.3.table @@ -1,11 +1,11 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.1.4.table b/definitions/grib2/tables/28/4.1.4.table index 4d3e1cf2b..792feca5b 100644 --- a/definitions/grib2/tables/28/4.1.4.table +++ b/definitions/grib2/tables/28/4.1.4.table @@ -1,15 +1,15 @@ # Code table 4.1 - Parameter category by product discipline -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.10.table b/definitions/grib2/tables/28/4.10.table index 525eb039f..593b052a5 100644 --- a/definitions/grib2/tables/28/4.10.table +++ b/definitions/grib2/tables/28/4.10.table @@ -1,19 +1,19 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation # 12-99 Reserved 100 100 Severity 101 101 Mode # 102-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/28/4.11.table b/definitions/grib2/tables/28/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/28/4.11.table +++ b/definitions/grib2/tables/28/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.12.table b/definitions/grib2/tables/28/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/28/4.12.table +++ b/definitions/grib2/tables/28/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.13.table b/definitions/grib2/tables/28/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/28/4.13.table +++ b/definitions/grib2/tables/28/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.14.table b/definitions/grib2/tables/28/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/28/4.14.table +++ b/definitions/grib2/tables/28/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.15.table b/definitions/grib2/tables/28/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/28/4.15.table +++ b/definitions/grib2/tables/28/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.16.table b/definitions/grib2/tables/28/4.16.table index fedb05324..5b9f6fd73 100644 --- a/definitions/grib2/tables/28/4.16.table +++ b/definitions/grib2/tables/28/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -5 5 Probability -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +5 5 Probability +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.1.1.table b/definitions/grib2/tables/28/4.2.1.1.table index b488eb0bd..171da3958 100644 --- a/definitions/grib2/tables/28/4.2.1.1.table +++ b/definitions/grib2/tables/28/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.1.2.table b/definitions/grib2/tables/28/4.2.1.2.table index 8ea245549..84844b25a 100644 --- a/definitions/grib2/tables/28/4.2.1.2.table +++ b/definitions/grib2/tables/28/4.2.1.2.table @@ -14,6 +14,6 @@ 12 12 Salinity (kg/kg) 13 13 Cross-sectional area of flow in channel (m2) 14 14 Snow temperature (K) -# 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 15-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.0.table b/definitions/grib2/tables/28/4.2.10.0.table index 641fd948a..db25b251f 100644 --- a/definitions/grib2/tables/28/4.2.10.0.table +++ b/definitions/grib2/tables/28/4.2.10.0.table @@ -71,6 +71,6 @@ 69 69 Peak wave direction of second swell partition (degree true) 70 70 Peak wave direction of third swell partition (degree true) 71 71 Peak direction of wind waves (degree true) -# 72-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 72-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.1.table b/definitions/grib2/tables/28/4.2.10.1.table index 00a084e34..237e6865a 100644 --- a/definitions/grib2/tables/28/4.2.10.1.table +++ b/definitions/grib2/tables/28/4.2.10.1.table @@ -4,6 +4,6 @@ 2 2 u-component of current (m/s) 3 3 v-component of current (m/s) 4 4 Rip current occurrence probability (%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.191.table b/definitions/grib2/tables/28/4.2.10.191.table index eef728d30..fe90ab6aa 100644 --- a/definitions/grib2/tables/28/4.2.10.191.table +++ b/definitions/grib2/tables/28/4.2.10.191.table @@ -1,9 +1,9 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) 4 4 Barotropic stream function (m3 s-1) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.2.table b/definitions/grib2/tables/28/4.2.10.2.table index 062d29571..b3278eb93 100644 --- a/definitions/grib2/tables/28/4.2.10.2.table +++ b/definitions/grib2/tables/28/4.2.10.2.table @@ -15,5 +15,5 @@ 13 13 Snow temperature (over sea ice) (K) 14 14 Albedo (Numeric) # 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.3.table b/definitions/grib2/tables/28/4.2.10.3.table index 21eafc330..55dfcc3ed 100644 --- a/definitions/grib2/tables/28/4.2.10.3.table +++ b/definitions/grib2/tables/28/4.2.10.3.table @@ -13,5 +13,5 @@ 11 11 Steric change in sea surface height (m) 12 12 Sea salt flux (kg m-2 s-1) # 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.10.4.table b/definitions/grib2/tables/28/4.2.10.4.table index 7bbf16a1c..029d20d07 100644 --- a/definitions/grib2/tables/28/4.2.10.4.table +++ b/definitions/grib2/tables/28/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -27,5 +27,5 @@ 27 27 Upward water velocity (m s-1) 28 28 Vertical eddy diffusivity (m2 s-1) # 29-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.2.0.table b/definitions/grib2/tables/28/4.2.2.0.table index 1324accc2..dee2ed824 100644 --- a/definitions/grib2/tables/28/4.2.2.0.table +++ b/definitions/grib2/tables/28/4.2.2.0.table @@ -43,5 +43,5 @@ 41 41 Snow melt rate (kg m-2 s-1) 42 42 Water runoff and drainage rate (kg m-2 s-1) # 43-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.2.3.table b/definitions/grib2/tables/28/4.2.2.3.table index 29aaccc7e..d5540f48b 100644 --- a/definitions/grib2/tables/28/4.2.2.3.table +++ b/definitions/grib2/tables/28/4.2.2.3.table @@ -29,6 +29,6 @@ 27 27 Soil depth (m) 28 28 Snow temperature (K) 29 29 Ice temperature (K) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.2.4.table b/definitions/grib2/tables/28/4.2.2.4.table index c18b3b5d4..5bc0b0b70 100644 --- a/definitions/grib2/tables/28/4.2.2.4.table +++ b/definitions/grib2/tables/28/4.2.2.4.table @@ -19,6 +19,6 @@ 17 17 Burning index (as defined by the US Forest Service National Fire Danger Rating System) (Numeric) 18 18 Ignition component (as defined by the US Forest Service National Fire Danger Rating System) (%) 19 19 Energy release component (as defined by the US Forest Service National Fire Danger Rating System) (Joule/m2) -# 20-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 20-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.2.5.table b/definitions/grib2/tables/28/4.2.2.5.table index 122f0aa23..a5a71dcd1 100644 --- a/definitions/grib2/tables/28/4.2.2.5.table +++ b/definitions/grib2/tables/28/4.2.2.5.table @@ -1,6 +1,6 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Glacier cover (Proportion) 1 1 Glacier temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.20.0.table b/definitions/grib2/tables/28/4.2.20.0.table index 0aa7ff6e8..d2010755e 100644 --- a/definitions/grib2/tables/28/4.2.20.0.table +++ b/definitions/grib2/tables/28/4.2.20.0.table @@ -3,5 +3,5 @@ 1 1 Mean radiant temperature (K) 2 2 Wet-bulb globe temperature (K) # 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.20.1.table b/definitions/grib2/tables/28/4.2.20.1.table index bdddca5f9..3c94cdf17 100644 --- a/definitions/grib2/tables/28/4.2.20.1.table +++ b/definitions/grib2/tables/28/4.2.20.1.table @@ -9,6 +9,6 @@ 7 7 Anopheles vector to host ratio (Fraction) 8 8 Anopheles vector number (Number m-2) 9 9 Fraction of malarial vector reproductive habitat (Fraction) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.20.2.table b/definitions/grib2/tables/28/4.2.20.2.table index 0804bcafd..8a937c0d1 100644 --- a/definitions/grib2/tables/28/4.2.20.2.table +++ b/definitions/grib2/tables/28/4.2.20.2.table @@ -1,5 +1,5 @@ # Code table 4.2 - Parameter number by product discipline and parameter category 0 0 Population density (Person m-2) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.3.0.table b/definitions/grib2/tables/28/4.2.3.0.table index c0ffa29f5..80a829673 100644 --- a/definitions/grib2/tables/28/4.2.3.0.table +++ b/definitions/grib2/tables/28/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.3.1.table b/definitions/grib2/tables/28/4.2.3.1.table index 0f80a61bb..365e59a22 100644 --- a/definitions/grib2/tables/28/4.2.3.1.table +++ b/definitions/grib2/tables/28/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) -20 20 Aerosol optical thickness at 0.635 um -21 21 Aerosol optical thickness at 0.810 um -22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +20 20 Aerosol optical thickness at 0.635 um +21 21 Aerosol optical thickness at 0.810 um +22 22 Aerosol optical thickness at 1.640 um +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.0.table b/definitions/grib2/tables/28/4.2.4.0.table index 0b35aba26..f89f1fee8 100644 --- a/definitions/grib2/tables/28/4.2.4.0.table +++ b/definitions/grib2/tables/28/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.1.table b/definitions/grib2/tables/28/4.2.4.1.table index abd58440a..de1bb48b1 100644 --- a/definitions/grib2/tables/28/4.2.4.1.table +++ b/definitions/grib2/tables/28/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.10.table b/definitions/grib2/tables/28/4.2.4.10.table index 420d2b43d..dade20fca 100644 --- a/definitions/grib2/tables/28/4.2.4.10.table +++ b/definitions/grib2/tables/28/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral Electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.2.table b/definitions/grib2/tables/28/4.2.4.2.table index 5f8dd4750..0ab69cf2c 100644 --- a/definitions/grib2/tables/28/4.2.4.2.table +++ b/definitions/grib2/tables/28/4.2.4.2.table @@ -13,6 +13,6 @@ 11 11 Peak height (hm) (m) 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.3.table b/definitions/grib2/tables/28/4.2.4.3.table index a46f4a403..943251fca 100644 --- a/definitions/grib2/tables/28/4.2.4.3.table +++ b/definitions/grib2/tables/28/4.2.4.3.table @@ -7,6 +7,6 @@ 5 5 1st vector component of electric field (V m-1) 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.4.table b/definitions/grib2/tables/28/4.2.4.4.table index b71abeb93..991faa417 100644 --- a/definitions/grib2/tables/28/4.2.4.4.table +++ b/definitions/grib2/tables/28/4.2.4.4.table @@ -6,6 +6,6 @@ 4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1) 5 5 Heavy ion flux (integral) ((m2 s sr)-1) 6 6 Cosmic ray neutron flux (/h) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.2.4.5.table b/definitions/grib2/tables/28/4.2.4.5.table index 014ea22fa..e4aae61da 100644 --- a/definitions/grib2/tables/28/4.2.4.5.table +++ b/definitions/grib2/tables/28/4.2.4.5.table @@ -3,6 +3,6 @@ 1 1 Phase (rad) 2 2 Frequency (Hz) 3 3 Wave length (m) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.216.table b/definitions/grib2/tables/28/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/28/4.216.table +++ b/definitions/grib2/tables/28/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/28/4.222.table b/definitions/grib2/tables/28/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/28/4.222.table +++ b/definitions/grib2/tables/28/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.3.table b/definitions/grib2/tables/28/4.3.table index 7ad6be363..8ae36efc3 100644 --- a/definitions/grib2/tables/28/4.3.table +++ b/definitions/grib2/tables/28/4.3.table @@ -1,26 +1,26 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -19 19 First guess -20 20 Analysis increment -21 21 Initialization increment for analysis -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +19 19 First guess +20 20 Analysis increment +21 21 Initialization increment for analysis +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.4.table b/definitions/grib2/tables/28/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/28/4.4.table +++ b/definitions/grib2/tables/28/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.5.table b/definitions/grib2/tables/28/4.5.table index b08dbb862..5eaa05d69 100644 --- a/definitions/grib2/tables/28/4.5.table +++ b/definitions/grib2/tables/28/4.5.table @@ -1,5 +1,5 @@ # Code table 4.5 - Fixed surface types and units -0 0 Reserved +0 0 Reserved 1 sfc Ground or water surface (-) 2 2 Cloud base level (-) 3 3 Level of cloud tops (-) @@ -18,7 +18,7 @@ 16 16 Level of neutral buoyancy or equilibrium level (LNB) (-) 17 sfc Departure level of the most unstable parcel of air (MUDL) 18 sfc Departure level of a mixed layer parcel of air with specified layer depth (Pa) -# 19 Reserved +# 19 Reserved 20 20 Isothermal level (K) 21 21 Lowest level where mass density exceeds the specified value (base for a given threshold of mass density) (kg m-3) 22 22 Highest level where mass density exceeds the specified value (top for a given threshold of mass density) (kg m-3) @@ -29,14 +29,14 @@ 27 27 Convective cloud layer top (m) # 28-29 Reserved 30 30 Specified radius from the center of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level -# 36-99 Reserved +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level +# 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -45,21 +45,21 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved 117 117 Mixed layer depth (m) 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) -# 120-149 Reserved -150 150 Generalized vertical height coordinate +# 120-149 Reserved +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea-ice level (Numeric) -# 153-159 Reserved +# 153-159 Reserved 160 160 Depth below sea level (m) 161 161 Depth below water surface (m) 162 sfc Lake or river bottom (-) @@ -84,6 +84,6 @@ 182 182 Grid tile water fraction as a model surface 183 183 Grid tile ice fraction on sea, lake or river as a model surface 184 184 Grid tile glacier ice and inland ice fraction as a model surface -# 185-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 185-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.6.table b/definitions/grib2/tables/28/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/28/4.6.table +++ b/definitions/grib2/tables/28/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.7.table b/definitions/grib2/tables/28/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/28/4.7.table +++ b/definitions/grib2/tables/28/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.8.table b/definitions/grib2/tables/28/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/28/4.8.table +++ b/definitions/grib2/tables/28/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.9.table b/definitions/grib2/tables/28/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/28/4.9.table +++ b/definitions/grib2/tables/28/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/4.91.table b/definitions/grib2/tables/28/4.91.table index 44cf25f44..ae31ed61c 100644 --- a/definitions/grib2/tables/28/4.91.table +++ b/definitions/grib2/tables/28/4.91.table @@ -1,16 +1,16 @@ # Code table 4.91 - Type of Interval -0 0 Smaller than first limit -1 1 Greater than second limit -2 2 Between first and second limit. The range includes the first limit but not the second limit -3 3 Greater than first limit -4 4 Smaller than second limit -5 5 Smaller or equal first limit -6 6 Greater or equal second limit -7 7 Between first and second. The range includes the first limit and the second limit -8 8 Greater or equal first limit -9 9 Smaller or equal second limit -10 10 Between first and second limit. The range includes the second limit but not the first limit -11 11 Equal to first limit -# 12-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 0 Smaller than first limit +1 1 Greater than second limit +2 2 Between first and second limit. The range includes the first limit but not the second limit +3 3 Greater than first limit +4 4 Smaller than second limit +5 5 Smaller or equal first limit +6 6 Greater or equal second limit +7 7 Between first and second. The range includes the first limit and the second limit +8 8 Greater or equal first limit +9 9 Smaller or equal second limit +10 10 Between first and second limit. The range includes the second limit but not the first limit +11 11 Equal to first limit +# 12-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/28/5.0.table b/definitions/grib2/tables/28/5.0.table index eaca4ac66..5e00004b0 100644 --- a/definitions/grib2/tables/28/5.0.table +++ b/definitions/grib2/tables/28/5.0.table @@ -1,22 +1,22 @@ # Code table 5.0 - Data representation template number -0 0 Grid point data - simple packing -1 1 Matrix value at grid point - simple packing -2 2 Grid point data - complex packing -3 3 Grid point data - complex packing and spatial differencing -4 4 Grid point data - IEEE floating point data +0 0 Grid point data - simple packing +1 1 Matrix value at grid point - simple packing +2 2 Grid point data - complex packing +3 3 Grid point data - complex packing and spatial differencing +4 4 Grid point data - IEEE floating point data # 5-39 Reserved -40 40 Grid point data - JPEG 2000 code stream format -41 41 Grid point data - Portable Network Graphics (PNG) -42 42 Grid point data - CCSDS recommended lossless compression +40 40 Grid point data - JPEG 2000 code stream format +41 41 Grid point data - Portable Network Graphics (PNG) +42 42 Grid point data - CCSDS recommended lossless compression # 43-49 Reserved -50 50 Spectral data - simple packing -51 51 Spherical harmonics data - complex packing +50 50 Spectral data - simple packing +51 51 Spherical harmonics data - complex packing # 52 Reserved -53 53 Spectral data for limited area models - complex packing +53 53 Spectral data for limited area models - complex packing # 54-60 Reserved -61 61 Grid point data - simple packing with logarithm pre-processing +61 61 Grid point data - simple packing with logarithm pre-processing # 62-199 Reserved -200 200 Run length packing with level values +200 200 Run length packing with level values # 201-49151 Reserved -# 49152-65534 Reserved for local use -65535 65535 Missing +# 49152-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/28/5.1.table b/definitions/grib2/tables/28/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/28/5.1.table +++ b/definitions/grib2/tables/28/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.2.table b/definitions/grib2/tables/28/5.2.table index eb2d544f0..60d557a0d 100644 --- a/definitions/grib2/tables/28/5.2.table +++ b/definitions/grib2/tables/28/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.25.table b/definitions/grib2/tables/28/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/28/5.25.table +++ b/definitions/grib2/tables/28/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/5.26.table b/definitions/grib2/tables/28/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/28/5.26.table +++ b/definitions/grib2/tables/28/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/5.3.table b/definitions/grib2/tables/28/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/28/5.3.table +++ b/definitions/grib2/tables/28/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.4.table b/definitions/grib2/tables/28/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/28/5.4.table +++ b/definitions/grib2/tables/28/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.40.table b/definitions/grib2/tables/28/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/28/5.40.table +++ b/definitions/grib2/tables/28/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/5.5.table b/definitions/grib2/tables/28/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/28/5.5.table +++ b/definitions/grib2/tables/28/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.6.table b/definitions/grib2/tables/28/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/28/5.6.table +++ b/definitions/grib2/tables/28/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/28/5.7.table b/definitions/grib2/tables/28/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/28/5.7.table +++ b/definitions/grib2/tables/28/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/28/6.0.table b/definitions/grib2/tables/28/6.0.table index 2a29aa285..a8f30f5a4 100644 --- a/definitions/grib2/tables/28/6.0.table +++ b/definitions/grib2/tables/28/6.0.table @@ -1,6 +1,6 @@ # Code table 6.0 - Bit map indicator -0 0 A bit map applies to this product and is specified in this Section +0 0 A bit map applies to this product and is specified in this Section 1 1 A bit map pre-determined by the originating/generating centre applies to this product and is not specified in this Section -# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section -254 254 A bit map defined previously in the same GRIB message applies to this product -255 255 A bit map does not apply to this product +# 1-253 A bit map predetermined by the originating/generating centre applies to this product and is not specified in this Section +254 254 A bit map defined previously in the same GRIB message applies to this product +255 255 A bit map does not apply to this product diff --git a/definitions/grib2/tables/29/0.0.table b/definitions/grib2/tables/29/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/29/0.0.table +++ b/definitions/grib2/tables/29/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/1.1.table b/definitions/grib2/tables/29/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/29/1.1.table +++ b/definitions/grib2/tables/29/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/29/1.2.table b/definitions/grib2/tables/29/1.2.table index 44ea816e9..77f96637a 100644 --- a/definitions/grib2/tables/29/1.2.table +++ b/definitions/grib2/tables/29/1.2.table @@ -1,9 +1,9 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -4 4 Local time -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +4 4 Local time +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/1.3.table b/definitions/grib2/tables/29/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/29/1.3.table +++ b/definitions/grib2/tables/29/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/1.4.table b/definitions/grib2/tables/29/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/29/1.4.table +++ b/definitions/grib2/tables/29/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/29/1.5.table b/definitions/grib2/tables/29/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/29/1.5.table +++ b/definitions/grib2/tables/29/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/29/1.6.table b/definitions/grib2/tables/29/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/29/1.6.table +++ b/definitions/grib2/tables/29/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.0.table b/definitions/grib2/tables/29/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/29/3.0.table +++ b/definitions/grib2/tables/29/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/29/3.1.table b/definitions/grib2/tables/29/3.1.table index 60a5eddb4..7d372ddaf 100644 --- a/definitions/grib2/tables/29/3.1.table +++ b/definitions/grib2/tables/29/3.1.table @@ -1,55 +1,55 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator # 11 Reserved 12 12 Transverse Mercator -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/29/3.10.table b/definitions/grib2/tables/29/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/29/3.10.table +++ b/definitions/grib2/tables/29/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/29/3.11.table b/definitions/grib2/tables/29/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/29/3.11.table +++ b/definitions/grib2/tables/29/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/3.15.table b/definitions/grib2/tables/29/3.15.table index 7c4626b88..43539dbfc 100644 --- a/definitions/grib2/tables/29/3.15.table +++ b/definitions/grib2/tables/29/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.2.table b/definitions/grib2/tables/29/3.2.table index bc3b653d0..13b9bf469 100644 --- a/definitions/grib2/tables/29/3.2.table +++ b/definitions/grib2/tables/29/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) 5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.20.table b/definitions/grib2/tables/29/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/29/3.20.table +++ b/definitions/grib2/tables/29/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.21.table b/definitions/grib2/tables/29/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/29/3.21.table +++ b/definitions/grib2/tables/29/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.25.table b/definitions/grib2/tables/29/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/29/3.25.table +++ b/definitions/grib2/tables/29/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.3.table b/definitions/grib2/tables/29/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/29/3.3.table +++ b/definitions/grib2/tables/29/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/29/3.4.table b/definitions/grib2/tables/29/3.4.table index 897b813d7..43835c014 100644 --- a/definitions/grib2/tables/29/3.4.table +++ b/definitions/grib2/tables/29/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scans in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scans in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/29/3.5.table b/definitions/grib2/tables/29/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/29/3.5.table +++ b/definitions/grib2/tables/29/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/29/3.6.table b/definitions/grib2/tables/29/3.6.table index 3133b9cfe..5ab13aaa5 100644 --- a/definitions/grib2/tables/29/3.6.table +++ b/definitions/grib2/tables/29/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type -1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +1 1 see separate doc or pdf file +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/29/3.7.table b/definitions/grib2/tables/29/3.7.table index cd566487b..34c0de085 100644 --- a/definitions/grib2/tables/29/3.7.table +++ b/definitions/grib2/tables/29/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved -1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +0 0 Reserved +1 1 see separate doc or pdf file +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/3.8.table b/definitions/grib2/tables/29/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/29/3.8.table +++ b/definitions/grib2/tables/29/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/3.9.table b/definitions/grib2/tables/29/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/29/3.9.table +++ b/definitions/grib2/tables/29/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/29/4.0.table b/definitions/grib2/tables/29/4.0.table index 3b35b9c5c..47aa74902 100644 --- a/definitions/grib2/tables/29/4.0.table +++ b/definitions/grib2/tables/29/4.0.table @@ -1,78 +1,78 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time -87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -# 89-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time +87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +# 89-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval 92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time 93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time @@ -81,14 +81,14 @@ 97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time # 99-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/29/4.1.0.table b/definitions/grib2/tables/29/4.1.0.table index 9b46e5b16..56c8b0647 100644 --- a/definitions/grib2/tables/29/4.1.0.table +++ b/definitions/grib2/tables/29/4.1.0.table @@ -1,27 +1,27 @@ # Product discipline 0 - Meteorological products -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -# 21-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +# 21-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.1.table b/definitions/grib2/tables/29/4.1.1.table index 20af0032a..df2c13fa8 100644 --- a/definitions/grib2/tables/29/4.1.1.table +++ b/definitions/grib2/tables/29/4.1.1.table @@ -1,7 +1,7 @@ # Product discipline 1 - Hydrological products -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.10.table b/definitions/grib2/tables/29/4.1.10.table index afaea7619..5a64f9652 100644 --- a/definitions/grib2/tables/29/4.1.10.table +++ b/definitions/grib2/tables/29/4.1.10.table @@ -1,10 +1,10 @@ # Product discipline 10 - Oceanographic products -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.2.table b/definitions/grib2/tables/29/4.1.2.table index 65eb5910b..4192e50d1 100644 --- a/definitions/grib2/tables/29/4.1.2.table +++ b/definitions/grib2/tables/29/4.1.2.table @@ -1,10 +1,10 @@ # Product discipline 2 - Land surface products -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.20.table b/definitions/grib2/tables/29/4.1.20.table index 235ed5810..1e5472a3f 100644 --- a/definitions/grib2/tables/29/4.1.20.table +++ b/definitions/grib2/tables/29/4.1.20.table @@ -1,7 +1,7 @@ # Product discipline 20 - Health and socioeconomic impacts -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.3.table b/definitions/grib2/tables/29/4.1.3.table index 130b899bf..35d82f440 100644 --- a/definitions/grib2/tables/29/4.1.3.table +++ b/definitions/grib2/tables/29/4.1.3.table @@ -1,11 +1,11 @@ # Product discipline 3 - Satellite remote sensing products (formerly Space products) -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.1.4.table b/definitions/grib2/tables/29/4.1.4.table index 3c769dcf7..7d1378729 100644 --- a/definitions/grib2/tables/29/4.1.4.table +++ b/definitions/grib2/tables/29/4.1.4.table @@ -1,15 +1,15 @@ # Product discipline 4 - Space weather products -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.10.table b/definitions/grib2/tables/29/4.10.table index 1eee9c096..b66560e8d 100644 --- a/definitions/grib2/tables/29/4.10.table +++ b/definitions/grib2/tables/29/4.10.table @@ -1,20 +1,20 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -12 12 Return period -# 13-99 Reserved -100 100 Severity -101 101 Mode -# 102-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +12 12 Return period +# 13-99 Reserved +100 100 Severity +101 101 Mode +# 102-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/29/4.11.table b/definitions/grib2/tables/29/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/29/4.11.table +++ b/definitions/grib2/tables/29/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.12.table b/definitions/grib2/tables/29/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/29/4.12.table +++ b/definitions/grib2/tables/29/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.13.table b/definitions/grib2/tables/29/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/29/4.13.table +++ b/definitions/grib2/tables/29/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.14.table b/definitions/grib2/tables/29/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/29/4.14.table +++ b/definitions/grib2/tables/29/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.15.table b/definitions/grib2/tables/29/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/29/4.15.table +++ b/definitions/grib2/tables/29/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.16.table b/definitions/grib2/tables/29/4.16.table index fedb05324..5b9f6fd73 100644 --- a/definitions/grib2/tables/29/4.16.table +++ b/definitions/grib2/tables/29/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -5 5 Probability -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +5 5 Probability +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.0.table b/definitions/grib2/tables/29/4.2.0.0.table index a2dff3668..e4912c9d6 100644 --- a/definitions/grib2/tables/29/4.2.0.0.table +++ b/definitions/grib2/tables/29/4.2.0.0.table @@ -32,6 +32,6 @@ 30 30 Latent heat net flux due to evaporation (W m-2) 31 31 Latent heat net flux due to sublimation (W m-2) 32 32 Wet-bulb potential temperature (K) -# 33-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 33-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.1.table b/definitions/grib2/tables/29/4.2.0.1.table index ec4a83543..cd12c1444 100644 --- a/definitions/grib2/tables/29/4.2.0.1.table +++ b/definitions/grib2/tables/29/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) diff --git a/definitions/grib2/tables/29/4.2.0.13.table b/definitions/grib2/tables/29/4.2.0.13.table index fc7344d7e..4c1253b96 100644 --- a/definitions/grib2/tables/29/4.2.0.13.table +++ b/definitions/grib2/tables/29/4.2.0.13.table @@ -1,5 +1,5 @@ # Product discipline 0 - Meteorological products, parameter category 13: aerosols 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.14.table b/definitions/grib2/tables/29/4.2.0.14.table index 87f1db9a2..df0f721ea 100644 --- a/definitions/grib2/tables/29/4.2.0.14.table +++ b/definitions/grib2/tables/29/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.15.table b/definitions/grib2/tables/29/4.2.0.15.table index 02d0fcbf3..ac49ad402 100644 --- a/definitions/grib2/tables/29/4.2.0.15.table +++ b/definitions/grib2/tables/29/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.16.table b/definitions/grib2/tables/29/4.2.0.16.table index faaa32d16..111e6d986 100644 --- a/definitions/grib2/tables/29/4.2.0.16.table +++ b/definitions/grib2/tables/29/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.18.table b/definitions/grib2/tables/29/4.2.0.18.table index fe2dac3dc..9d527a828 100644 --- a/definitions/grib2/tables/29/4.2.0.18.table +++ b/definitions/grib2/tables/29/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.19.table b/definitions/grib2/tables/29/4.2.0.19.table index 42712fd92..44bd20957 100644 --- a/definitions/grib2/tables/29/4.2.0.19.table +++ b/definitions/grib2/tables/29/4.2.0.19.table @@ -40,6 +40,6 @@ 38 38 Sky transparency index (Code table 4.214) 39 39 Seeing index (Code table 4.214) 40 40 Snow level (m) -# 41-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 41-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.190.table b/definitions/grib2/tables/29/4.2.0.190.table index e5d6618cf..dfe39840d 100644 --- a/definitions/grib2/tables/29/4.2.0.190.table +++ b/definitions/grib2/tables/29/4.2.0.190.table @@ -1,5 +1,5 @@ # Product discipline 0 - Meteorological products, parameter category 190: CCITT IA5 string 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.191.table b/definitions/grib2/tables/29/4.2.0.191.table index d375dbd4a..abc386331 100644 --- a/definitions/grib2/tables/29/4.2.0.191.table +++ b/definitions/grib2/tables/29/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.2.table b/definitions/grib2/tables/29/4.2.0.2.table index 23b9fd852..079d475ac 100644 --- a/definitions/grib2/tables/29/4.2.0.2.table +++ b/definitions/grib2/tables/29/4.2.0.2.table @@ -48,6 +48,6 @@ 46 46 Vorticity advection (s-2) 47 47 Surface roughness for heat (m) 48 48 Surface roughness for moisture (m) -# 49-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 49-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.20.table b/definitions/grib2/tables/29/4.2.0.20.table index 26818042a..bae36e080 100644 --- a/definitions/grib2/tables/29/4.2.0.20.table +++ b/definitions/grib2/tables/29/4.2.0.20.table @@ -17,7 +17,7 @@ 15 15 Dry deposition velocity (m/s) 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) -# 18-49 Reserved +# 18-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -46,7 +46,7 @@ 75 75 Wildfire flux (kg m-2 s-1) 76 76 Emission rate (kg kg-1 s-1) 77 77 Surface emission flux (kg m-2 s-1) -# 78-99 Reserved +# 78-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -59,6 +59,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.3.table b/definitions/grib2/tables/29/4.2.0.3.table index 3a771edb4..9f8fdb4bc 100644 --- a/definitions/grib2/tables/29/4.2.0.3.table +++ b/definitions/grib2/tables/29/4.2.0.3.table @@ -35,5 +35,5 @@ 33 33 Geometric altitude above mean sea level (m) 34 34 Geometric height above ground level (m) # 35-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.4.table b/definitions/grib2/tables/29/4.2.0.4.table index 2443d8348..1d7f50233 100644 --- a/definitions/grib2/tables/29/4.2.0.4.table +++ b/definitions/grib2/tables/29/4.2.0.4.table @@ -15,12 +15,12 @@ 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) 15 15 Upward UV radiation emitted/reflected from the Earth's surface (W m-2) -# 16-49 Reserved +# 16-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) 54 54 Direct normal short-wave radiation flux (W m-2) -# 55-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 55-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.5.table b/definitions/grib2/tables/29/4.2.0.5.table index 204e89307..157326ba4 100644 --- a/definitions/grib2/tables/29/4.2.0.5.table +++ b/definitions/grib2/tables/29/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.6.table b/definitions/grib2/tables/29/4.2.0.6.table index 7aa178d2e..ba308d07f 100644 --- a/definitions/grib2/tables/29/4.2.0.6.table +++ b/definitions/grib2/tables/29/4.2.0.6.table @@ -40,11 +40,11 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) 50 50 Fog (%) -# 51-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 51-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.0.7.table b/definitions/grib2/tables/29/4.2.0.7.table index 93d4d1335..15acb1857 100644 --- a/definitions/grib2/tables/29/4.2.0.7.table +++ b/definitions/grib2/tables/29/4.2.0.7.table @@ -13,13 +13,13 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) 20 20 Thunderstorm intensity index (Code table 4.246) -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.1.0.table b/definitions/grib2/tables/29/4.2.1.0.table index 0ce4b8fc4..6204a22ae 100644 --- a/definitions/grib2/tables/29/4.2.1.0.table +++ b/definitions/grib2/tables/29/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.1.1.table b/definitions/grib2/tables/29/4.2.1.1.table index ede9a3a72..e3931d5e6 100644 --- a/definitions/grib2/tables/29/4.2.1.1.table +++ b/definitions/grib2/tables/29/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.1.2.table b/definitions/grib2/tables/29/4.2.1.2.table index 97f062dbc..bd7276cfe 100644 --- a/definitions/grib2/tables/29/4.2.1.2.table +++ b/definitions/grib2/tables/29/4.2.1.2.table @@ -14,6 +14,6 @@ 12 12 Salinity (kg/kg) 13 13 Cross-sectional area of flow in channel (m2) 14 14 Snow temperature (K) -# 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 15-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.10.0.table b/definitions/grib2/tables/29/4.2.10.0.table index 07b6b00b8..8f307c0de 100644 --- a/definitions/grib2/tables/29/4.2.10.0.table +++ b/definitions/grib2/tables/29/4.2.10.0.table @@ -74,5 +74,5 @@ 72 72 Peak direction of total swell (degree true) 73 73 Whitecap fraction (fraction) # 74-191 Reserved -# 192-254 Reserved for local use +# 192-254 Reserved for local use 255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.10.191.table b/definitions/grib2/tables/29/4.2.10.191.table index ba3832941..cd4d4cde7 100644 --- a/definitions/grib2/tables/29/4.2.10.191.table +++ b/definitions/grib2/tables/29/4.2.10.191.table @@ -1,7 +1,7 @@ # Product discipline 10 - Oceanographic products, parameter category 191: miscellaneous 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) 4 4 Barotropic stream function (m3 s-1) # 5-191 Reserved diff --git a/definitions/grib2/tables/29/4.2.10.4.table b/definitions/grib2/tables/29/4.2.10.4.table index 558231bdc..20bdb9e36 100644 --- a/definitions/grib2/tables/29/4.2.10.4.table +++ b/definitions/grib2/tables/29/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -26,6 +26,6 @@ 26 26 y-component water velocity (m s-1) 27 27 Upward water velocity (m s-1) 28 28 Vertical eddy diffusivity (m2 s-1) -# 29-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 29-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.2.3.table b/definitions/grib2/tables/29/4.2.2.3.table index 5eb7c4d02..4e2187a5b 100644 --- a/definitions/grib2/tables/29/4.2.2.3.table +++ b/definitions/grib2/tables/29/4.2.2.3.table @@ -29,6 +29,6 @@ 27 27 Soil depth (m) 28 28 Snow temperature (K) 29 29 Ice temperature (K) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.2.5.table b/definitions/grib2/tables/29/4.2.2.5.table index 7e87927b1..1d08dd573 100644 --- a/definitions/grib2/tables/29/4.2.2.5.table +++ b/definitions/grib2/tables/29/4.2.2.5.table @@ -1,6 +1,6 @@ # Product discipline 2 - Land surface products, parameter category 5: glaciers and inland ice 0 0 Glacier cover (Proportion) 1 1 Glacier temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.3.1.table b/definitions/grib2/tables/29/4.2.3.1.table index 7e0b15d5d..3211e5d1c 100644 --- a/definitions/grib2/tables/29/4.2.3.1.table +++ b/definitions/grib2/tables/29/4.2.3.1.table @@ -17,17 +17,17 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) -20 20 Aerosol optical thickness at 0.635 um -21 21 Aerosol optical thickness at 0.810 um -22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +20 20 Aerosol optical thickness at 0.635 um +21 21 Aerosol optical thickness at 0.810 um +22 22 Aerosol optical thickness at 1.640 um +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) # 100-191 Reserved diff --git a/definitions/grib2/tables/29/4.2.4.0.table b/definitions/grib2/tables/29/4.2.4.0.table index 1a9318430..337308305 100644 --- a/definitions/grib2/tables/29/4.2.4.0.table +++ b/definitions/grib2/tables/29/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.4.1.table b/definitions/grib2/tables/29/4.2.4.1.table index ba2d09db8..9ec11160f 100644 --- a/definitions/grib2/tables/29/4.2.4.1.table +++ b/definitions/grib2/tables/29/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.2.4.10.table b/definitions/grib2/tables/29/4.2.4.10.table index fd9b2db49..8f5b19e06 100644 --- a/definitions/grib2/tables/29/4.2.4.10.table +++ b/definitions/grib2/tables/29/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.202.table b/definitions/grib2/tables/29/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/29/4.202.table +++ b/definitions/grib2/tables/29/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.203.table b/definitions/grib2/tables/29/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/29/4.203.table +++ b/definitions/grib2/tables/29/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.204.table b/definitions/grib2/tables/29/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/29/4.204.table +++ b/definitions/grib2/tables/29/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.205.table b/definitions/grib2/tables/29/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/29/4.205.table +++ b/definitions/grib2/tables/29/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.206.table b/definitions/grib2/tables/29/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/29/4.206.table +++ b/definitions/grib2/tables/29/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.207.table b/definitions/grib2/tables/29/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/29/4.207.table +++ b/definitions/grib2/tables/29/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.208.table b/definitions/grib2/tables/29/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/29/4.208.table +++ b/definitions/grib2/tables/29/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.209.table b/definitions/grib2/tables/29/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/29/4.209.table +++ b/definitions/grib2/tables/29/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.210.table b/definitions/grib2/tables/29/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/29/4.210.table +++ b/definitions/grib2/tables/29/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.211.table b/definitions/grib2/tables/29/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/29/4.211.table +++ b/definitions/grib2/tables/29/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.212.table b/definitions/grib2/tables/29/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/29/4.212.table +++ b/definitions/grib2/tables/29/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.213.table b/definitions/grib2/tables/29/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/29/4.213.table +++ b/definitions/grib2/tables/29/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.214.table b/definitions/grib2/tables/29/4.214.table index 9df466fe5..b08860ce0 100644 --- a/definitions/grib2/tables/29/4.214.table +++ b/definitions/grib2/tables/29/4.214.table @@ -1,11 +1,11 @@ # Code table 4.214 - Environmental Factor Qualifier -0 0 Worst -1 1 Very poor -2 2 Poor -3 3 Average -4 4 Good -5 5 Excellent -# 6-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Worst +1 1 Very poor +2 2 Poor +3 3 Average +4 4 Good +5 5 Excellent +# 6-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.215.table b/definitions/grib2/tables/29/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/29/4.215.table +++ b/definitions/grib2/tables/29/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.216.table b/definitions/grib2/tables/29/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/29/4.216.table +++ b/definitions/grib2/tables/29/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/29/4.217.table b/definitions/grib2/tables/29/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/29/4.217.table +++ b/definitions/grib2/tables/29/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.218.table b/definitions/grib2/tables/29/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/29/4.218.table +++ b/definitions/grib2/tables/29/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.219.table b/definitions/grib2/tables/29/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/29/4.219.table +++ b/definitions/grib2/tables/29/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.220.table b/definitions/grib2/tables/29/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/29/4.220.table +++ b/definitions/grib2/tables/29/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.221.table b/definitions/grib2/tables/29/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/29/4.221.table +++ b/definitions/grib2/tables/29/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.222.table b/definitions/grib2/tables/29/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/29/4.222.table +++ b/definitions/grib2/tables/29/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.223.table b/definitions/grib2/tables/29/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/29/4.223.table +++ b/definitions/grib2/tables/29/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/29/4.224.table b/definitions/grib2/tables/29/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/29/4.224.table +++ b/definitions/grib2/tables/29/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/4.227.table b/definitions/grib2/tables/29/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/29/4.227.table +++ b/definitions/grib2/tables/29/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/29/4.228.table b/definitions/grib2/tables/29/4.228.table index 559ae916a..048a69f0b 100644 --- a/definitions/grib2/tables/29/4.228.table +++ b/definitions/grib2/tables/29/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe -# 5-254 Reserved -255 255 Missing value +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe +# 5-254 Reserved +255 255 Missing value diff --git a/definitions/grib2/tables/29/4.234.table b/definitions/grib2/tables/29/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/29/4.234.table +++ b/definitions/grib2/tables/29/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/29/4.236.table b/definitions/grib2/tables/29/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/29/4.236.table +++ b/definitions/grib2/tables/29/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/29/4.238.table b/definitions/grib2/tables/29/4.238.table index 7e1c8e4d0..be5be3a90 100644 --- a/definitions/grib2/tables/29/4.238.table +++ b/definitions/grib2/tables/29/4.238.table @@ -1,32 +1,32 @@ # Code table 4.238 - Source or sink -0 0 Other -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -12 12 Elevated anthropogenic sources -13 13 Surface anthropogenic sources -14 14 Agriculture livestock -15 15 Agriculture soils -16 16 Agriculture waste burning -17 17 Agriculture (all) -18 18 Residential, commercial and other combustion -19 19 Power generation -20 20 Super power stations -21 21 Fugitives -22 22 Industrial process -23 23 Solvents -24 24 Ships -25 25 Wastes (solid and water) -26 26 Road transportation -27 27 Off-road transportation -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Other +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +12 12 Elevated anthropogenic sources +13 13 Surface anthropogenic sources +14 14 Agriculture livestock +15 15 Agriculture soils +16 16 Agriculture waste burning +17 17 Agriculture (all) +18 18 Residential, commercial and other combustion +19 19 Power generation +20 20 Super power stations +21 21 Fugitives +22 22 Industrial process +23 23 Solvents +24 24 Ships +25 25 Wastes (solid and water) +26 26 Road transportation +27 27 Off-road transportation +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.240.table b/definitions/grib2/tables/29/4.240.table index e34ad678c..2a31fb2ab 100644 --- a/definitions/grib2/tables/29/4.240.table +++ b/definitions/grib2/tables/29/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) diff --git a/definitions/grib2/tables/29/4.241.table b/definitions/grib2/tables/29/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/29/4.241.table +++ b/definitions/grib2/tables/29/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/29/4.242.table b/definitions/grib2/tables/29/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/29/4.242.table +++ b/definitions/grib2/tables/29/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/29/4.243.table b/definitions/grib2/tables/29/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/29/4.243.table +++ b/definitions/grib2/tables/29/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/29/4.244.table b/definitions/grib2/tables/29/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/29/4.244.table +++ b/definitions/grib2/tables/29/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.246.table b/definitions/grib2/tables/29/4.246.table index bc89c27b9..0ca9c0c98 100644 --- a/definitions/grib2/tables/29/4.246.table +++ b/definitions/grib2/tables/29/4.246.table @@ -1,7 +1,7 @@ # Code table 4.246 - Thunderstorm intensity -0 0 No thunderstorm occurrence -1 1 Weak thunderstorm -2 2 Moderate thunderstorm -3 3 Severe thunderstorm -# 4-254 Reserved -255 255 Missing +0 0 No thunderstorm occurrence +1 1 Weak thunderstorm +2 2 Moderate thunderstorm +3 3 Severe thunderstorm +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/4.247.table b/definitions/grib2/tables/29/4.247.table index cd7fc90bd..6da16e396 100644 --- a/definitions/grib2/tables/29/4.247.table +++ b/definitions/grib2/tables/29/4.247.table @@ -1,7 +1,7 @@ # Code table 4.247 - Precipitation intensity -0 0 No precipitation occurrence -1 1 Light precipitation -2 2 Moderate precipitation -3 3 Heavy precipitation -# 4-254 Reserved -255 255 Missing +0 0 No precipitation occurrence +1 1 Light precipitation +2 2 Moderate precipitation +3 3 Heavy precipitation +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/4.248.table b/definitions/grib2/tables/29/4.248.table index 694eebb72..04e365c97 100644 --- a/definitions/grib2/tables/29/4.248.table +++ b/definitions/grib2/tables/29/4.248.table @@ -1,6 +1,6 @@ # Code table 4.248 - Method used to derive data values for a given local time -0 0 Nearest forecast or analysis time to specified local time -1 1 Interpolated to be valid at the specified local time -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nearest forecast or analysis time to specified local time +1 1 Interpolated to be valid at the specified local time +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.249.table b/definitions/grib2/tables/29/4.249.table index 9e62d9bbb..bd1c944c4 100644 --- a/definitions/grib2/tables/29/4.249.table +++ b/definitions/grib2/tables/29/4.249.table @@ -1,7 +1,7 @@ # Code table 4.249 - Character of precipitation -0 0 None -1 1 Showers -2 2 Intermittent -3 3 Continuous -# 4-254 Reserved -255 255 Missing +0 0 None +1 1 Showers +2 2 Intermittent +3 3 Continuous +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/4.250.table b/definitions/grib2/tables/29/4.250.table index e72140e89..e4d91caba 100644 --- a/definitions/grib2/tables/29/4.250.table +++ b/definitions/grib2/tables/29/4.250.table @@ -1,14 +1,14 @@ # Code table 4.250 - Drainage direction -0 0 Reserved -1 1 South-West -2 2 South -3 3 South-East -4 4 West -5 5 No direction -6 6 East -7 7 North-West -8 8 North -9 9 North-East -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 South-West +2 2 South +3 3 South-East +4 4 West +5 5 No direction +6 6 East +7 7 North-West +8 8 North +9 9 North-East +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.3.table b/definitions/grib2/tables/29/4.3.table index 7ad6be363..8ae36efc3 100644 --- a/definitions/grib2/tables/29/4.3.table +++ b/definitions/grib2/tables/29/4.3.table @@ -1,26 +1,26 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -19 19 First guess -20 20 Analysis increment -21 21 Initialization increment for analysis -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +19 19 First guess +20 20 Analysis increment +21 21 Initialization increment for analysis +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.4.table b/definitions/grib2/tables/29/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/29/4.4.table +++ b/definitions/grib2/tables/29/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.5.table b/definitions/grib2/tables/29/4.5.table index 3c338232d..98103671d 100644 --- a/definitions/grib2/tables/29/4.5.table +++ b/definitions/grib2/tables/29/4.5.table @@ -29,14 +29,14 @@ 27 27 Convective cloud layer top (m) # 28-29 Reserved 30 30 Specified radius from the centre of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level # 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -45,10 +45,10 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved @@ -56,7 +56,7 @@ 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) # 120-149 Reserved -150 150 Generalized vertical height coordinate +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea-ice level (Numeric) # 153-159 Reserved diff --git a/definitions/grib2/tables/29/4.6.table b/definitions/grib2/tables/29/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/29/4.6.table +++ b/definitions/grib2/tables/29/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.7.table b/definitions/grib2/tables/29/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/29/4.7.table +++ b/definitions/grib2/tables/29/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.8.table b/definitions/grib2/tables/29/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/29/4.8.table +++ b/definitions/grib2/tables/29/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/4.9.table b/definitions/grib2/tables/29/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/29/4.9.table +++ b/definitions/grib2/tables/29/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.1.table b/definitions/grib2/tables/29/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/29/5.1.table +++ b/definitions/grib2/tables/29/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.2.table b/definitions/grib2/tables/29/5.2.table index eb2d544f0..60d557a0d 100644 --- a/definitions/grib2/tables/29/5.2.table +++ b/definitions/grib2/tables/29/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.25.table b/definitions/grib2/tables/29/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/29/5.25.table +++ b/definitions/grib2/tables/29/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/5.26.table b/definitions/grib2/tables/29/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/29/5.26.table +++ b/definitions/grib2/tables/29/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/5.3.table b/definitions/grib2/tables/29/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/29/5.3.table +++ b/definitions/grib2/tables/29/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.4.table b/definitions/grib2/tables/29/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/29/5.4.table +++ b/definitions/grib2/tables/29/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.40.table b/definitions/grib2/tables/29/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/29/5.40.table +++ b/definitions/grib2/tables/29/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/29/5.5.table b/definitions/grib2/tables/29/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/29/5.5.table +++ b/definitions/grib2/tables/29/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.6.table b/definitions/grib2/tables/29/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/29/5.6.table +++ b/definitions/grib2/tables/29/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/29/5.7.table b/definitions/grib2/tables/29/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/29/5.7.table +++ b/definitions/grib2/tables/29/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/3/5.0.table b/definitions/grib2/tables/3/5.0.table index 0cf3752cb..b9b301151 100644 --- a/definitions/grib2/tables/3/5.0.table +++ b/definitions/grib2/tables/3/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/3/5.40000.table b/definitions/grib2/tables/3/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/3/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/30/0.0.table b/definitions/grib2/tables/30/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/30/0.0.table +++ b/definitions/grib2/tables/30/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/1.1.table b/definitions/grib2/tables/30/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/30/1.1.table +++ b/definitions/grib2/tables/30/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/30/1.2.table b/definitions/grib2/tables/30/1.2.table index 44ea816e9..77f96637a 100644 --- a/definitions/grib2/tables/30/1.2.table +++ b/definitions/grib2/tables/30/1.2.table @@ -1,9 +1,9 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -4 4 Local time -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +4 4 Local time +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/1.3.table b/definitions/grib2/tables/30/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/30/1.3.table +++ b/definitions/grib2/tables/30/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/1.4.table b/definitions/grib2/tables/30/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/30/1.4.table +++ b/definitions/grib2/tables/30/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/30/1.5.table b/definitions/grib2/tables/30/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/30/1.5.table +++ b/definitions/grib2/tables/30/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/30/1.6.table b/definitions/grib2/tables/30/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/30/1.6.table +++ b/definitions/grib2/tables/30/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.0.table b/definitions/grib2/tables/30/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/30/3.0.table +++ b/definitions/grib2/tables/30/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/30/3.1.table b/definitions/grib2/tables/30/3.1.table index 60a5eddb4..7d372ddaf 100644 --- a/definitions/grib2/tables/30/3.1.table +++ b/definitions/grib2/tables/30/3.1.table @@ -1,55 +1,55 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator # 11 Reserved 12 12 Transverse Mercator -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/30/3.10.table b/definitions/grib2/tables/30/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/30/3.10.table +++ b/definitions/grib2/tables/30/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/30/3.11.table b/definitions/grib2/tables/30/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/30/3.11.table +++ b/definitions/grib2/tables/30/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/3.15.table b/definitions/grib2/tables/30/3.15.table index 7c4626b88..43539dbfc 100644 --- a/definitions/grib2/tables/30/3.15.table +++ b/definitions/grib2/tables/30/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.2.table b/definitions/grib2/tables/30/3.2.table index bc3b653d0..13b9bf469 100644 --- a/definitions/grib2/tables/30/3.2.table +++ b/definitions/grib2/tables/30/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) 5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.20.table b/definitions/grib2/tables/30/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/30/3.20.table +++ b/definitions/grib2/tables/30/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.21.table b/definitions/grib2/tables/30/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/30/3.21.table +++ b/definitions/grib2/tables/30/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.25.table b/definitions/grib2/tables/30/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/30/3.25.table +++ b/definitions/grib2/tables/30/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.3.table b/definitions/grib2/tables/30/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/30/3.3.table +++ b/definitions/grib2/tables/30/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/30/3.4.table b/definitions/grib2/tables/30/3.4.table index e5a628e45..c10a62b01 100644 --- a/definitions/grib2/tables/30/3.4.table +++ b/definitions/grib2/tables/30/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scan in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scan in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/30/3.5.table b/definitions/grib2/tables/30/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/30/3.5.table +++ b/definitions/grib2/tables/30/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/30/3.6.table b/definitions/grib2/tables/30/3.6.table index 3133b9cfe..5ab13aaa5 100644 --- a/definitions/grib2/tables/30/3.6.table +++ b/definitions/grib2/tables/30/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type -1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +1 1 see separate doc or pdf file +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/30/3.7.table b/definitions/grib2/tables/30/3.7.table index cd566487b..34c0de085 100644 --- a/definitions/grib2/tables/30/3.7.table +++ b/definitions/grib2/tables/30/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved -1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +0 0 Reserved +1 1 see separate doc or pdf file +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/3.8.table b/definitions/grib2/tables/30/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/30/3.8.table +++ b/definitions/grib2/tables/30/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/3.9.table b/definitions/grib2/tables/30/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/30/3.9.table +++ b/definitions/grib2/tables/30/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/30/4.0.table b/definitions/grib2/tables/30/4.0.table index 3b35b9c5c..47aa74902 100644 --- a/definitions/grib2/tables/30/4.0.table +++ b/definitions/grib2/tables/30/4.0.table @@ -1,78 +1,78 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time -87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -# 89-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time +87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +# 89-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval 92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time 93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time @@ -81,14 +81,14 @@ 97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time 98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time # 99-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/30/4.1.0.table b/definitions/grib2/tables/30/4.1.0.table index 15c809738..7f390b679 100644 --- a/definitions/grib2/tables/30/4.1.0.table +++ b/definitions/grib2/tables/30/4.1.0.table @@ -1,28 +1,28 @@ # Product discipline 0 - Meteorological products -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -21 21 Thermodynamic properties +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +21 21 Thermodynamic properties # 22-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.1.table b/definitions/grib2/tables/30/4.1.1.table index 20af0032a..df2c13fa8 100644 --- a/definitions/grib2/tables/30/4.1.1.table +++ b/definitions/grib2/tables/30/4.1.1.table @@ -1,7 +1,7 @@ # Product discipline 1 - Hydrological products -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.10.table b/definitions/grib2/tables/30/4.1.10.table index afaea7619..5a64f9652 100644 --- a/definitions/grib2/tables/30/4.1.10.table +++ b/definitions/grib2/tables/30/4.1.10.table @@ -1,10 +1,10 @@ # Product discipline 10 - Oceanographic products -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.2.table b/definitions/grib2/tables/30/4.1.2.table index a81cbc129..9d6f690ac 100644 --- a/definitions/grib2/tables/30/4.1.2.table +++ b/definitions/grib2/tables/30/4.1.2.table @@ -1,11 +1,11 @@ # Product discipline 2 - Land surface products -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -6 6 Urban areas +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +6 6 Urban areas # 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.20.table b/definitions/grib2/tables/30/4.1.20.table index 235ed5810..1e5472a3f 100644 --- a/definitions/grib2/tables/30/4.1.20.table +++ b/definitions/grib2/tables/30/4.1.20.table @@ -1,7 +1,7 @@ # Product discipline 20 - Health and socioeconomic impacts -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.3.table b/definitions/grib2/tables/30/4.1.3.table index 130b899bf..35d82f440 100644 --- a/definitions/grib2/tables/30/4.1.3.table +++ b/definitions/grib2/tables/30/4.1.3.table @@ -1,11 +1,11 @@ # Product discipline 3 - Satellite remote sensing products (formerly Space products) -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.1.4.table b/definitions/grib2/tables/30/4.1.4.table index 3c769dcf7..7d1378729 100644 --- a/definitions/grib2/tables/30/4.1.4.table +++ b/definitions/grib2/tables/30/4.1.4.table @@ -1,15 +1,15 @@ # Product discipline 4 - Space weather products -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.10.table b/definitions/grib2/tables/30/4.10.table index 1eee9c096..b66560e8d 100644 --- a/definitions/grib2/tables/30/4.10.table +++ b/definitions/grib2/tables/30/4.10.table @@ -1,20 +1,20 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -12 12 Return period -# 13-99 Reserved -100 100 Severity -101 101 Mode -# 102-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +12 12 Return period +# 13-99 Reserved +100 100 Severity +101 101 Mode +# 102-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/30/4.11.table b/definitions/grib2/tables/30/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/30/4.11.table +++ b/definitions/grib2/tables/30/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.12.table b/definitions/grib2/tables/30/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/30/4.12.table +++ b/definitions/grib2/tables/30/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.13.table b/definitions/grib2/tables/30/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/30/4.13.table +++ b/definitions/grib2/tables/30/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.14.table b/definitions/grib2/tables/30/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/30/4.14.table +++ b/definitions/grib2/tables/30/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.15.table b/definitions/grib2/tables/30/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/30/4.15.table +++ b/definitions/grib2/tables/30/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.16.table b/definitions/grib2/tables/30/4.16.table index fedb05324..5b9f6fd73 100644 --- a/definitions/grib2/tables/30/4.16.table +++ b/definitions/grib2/tables/30/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -5 5 Probability -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +5 5 Probability +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.18.table b/definitions/grib2/tables/30/4.2.0.18.table index fe2dac3dc..9d527a828 100644 --- a/definitions/grib2/tables/30/4.2.0.18.table +++ b/definitions/grib2/tables/30/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.19.table b/definitions/grib2/tables/30/4.2.0.19.table index 42712fd92..44bd20957 100644 --- a/definitions/grib2/tables/30/4.2.0.19.table +++ b/definitions/grib2/tables/30/4.2.0.19.table @@ -40,6 +40,6 @@ 38 38 Sky transparency index (Code table 4.214) 39 39 Seeing index (Code table 4.214) 40 40 Snow level (m) -# 41-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 41-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.190.table b/definitions/grib2/tables/30/4.2.0.190.table index e5d6618cf..dfe39840d 100644 --- a/definitions/grib2/tables/30/4.2.0.190.table +++ b/definitions/grib2/tables/30/4.2.0.190.table @@ -1,5 +1,5 @@ # Product discipline 0 - Meteorological products, parameter category 190: CCITT IA5 string 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.191.table b/definitions/grib2/tables/30/4.2.0.191.table index d375dbd4a..abc386331 100644 --- a/definitions/grib2/tables/30/4.2.0.191.table +++ b/definitions/grib2/tables/30/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.2.table b/definitions/grib2/tables/30/4.2.0.2.table index ce965eb42..97f1b60eb 100644 --- a/definitions/grib2/tables/30/4.2.0.2.table +++ b/definitions/grib2/tables/30/4.2.0.2.table @@ -54,5 +54,5 @@ 52 52 u-component of wind stress (N m-2) 53 53 v-component of wind stress (N m-2) # 54-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.21.table b/definitions/grib2/tables/30/4.2.0.21.table index f66574d16..c9d2d3496 100644 --- a/definitions/grib2/tables/30/4.2.0.21.table +++ b/definitions/grib2/tables/30/4.2.0.21.table @@ -18,6 +18,6 @@ 16 16 Divergence of column integrated kinetic energy flux (W m-2) 17 17 Divergence of column integrated total energy flux (W m-2) 18 18 Divergence of column integrated water enthalpy flux (W m-2) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.4.table b/definitions/grib2/tables/30/4.2.0.4.table index 2443d8348..1d7f50233 100644 --- a/definitions/grib2/tables/30/4.2.0.4.table +++ b/definitions/grib2/tables/30/4.2.0.4.table @@ -15,12 +15,12 @@ 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) 15 15 Upward UV radiation emitted/reflected from the Earth's surface (W m-2) -# 16-49 Reserved +# 16-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) 53 53 Upward short-wave radiation flux, clear sky (W m-2) 54 54 Direct normal short-wave radiation flux (W m-2) -# 55-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 55-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.5.table b/definitions/grib2/tables/30/4.2.0.5.table index 204e89307..157326ba4 100644 --- a/definitions/grib2/tables/30/4.2.0.5.table +++ b/definitions/grib2/tables/30/4.2.0.5.table @@ -8,6 +8,6 @@ 6 6 Net long-wave radiation flux, clear sky (W m-2) 7 7 Brightness temperature (K) 8 8 Downward long-wave radiation flux, clear sky (W m-2) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.6.table b/definitions/grib2/tables/30/4.2.0.6.table index 7aa178d2e..ba308d07f 100644 --- a/definitions/grib2/tables/30/4.2.0.6.table +++ b/definitions/grib2/tables/30/4.2.0.6.table @@ -40,11 +40,11 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) 50 50 Fog (%) -# 51-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 51-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.0.7.table b/definitions/grib2/tables/30/4.2.0.7.table index 93d4d1335..15acb1857 100644 --- a/definitions/grib2/tables/30/4.2.0.7.table +++ b/definitions/grib2/tables/30/4.2.0.7.table @@ -13,13 +13,13 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) 20 20 Thunderstorm intensity index (Code table 4.246) -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.1.0.table b/definitions/grib2/tables/30/4.2.1.0.table index 0ce4b8fc4..6204a22ae 100644 --- a/definitions/grib2/tables/30/4.2.1.0.table +++ b/definitions/grib2/tables/30/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.1.1.table b/definitions/grib2/tables/30/4.2.1.1.table index ede9a3a72..e3931d5e6 100644 --- a/definitions/grib2/tables/30/4.2.1.1.table +++ b/definitions/grib2/tables/30/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.1.2.table b/definitions/grib2/tables/30/4.2.1.2.table index 97f062dbc..bd7276cfe 100644 --- a/definitions/grib2/tables/30/4.2.1.2.table +++ b/definitions/grib2/tables/30/4.2.1.2.table @@ -14,6 +14,6 @@ 12 12 Salinity (kg/kg) 13 13 Cross-sectional area of flow in channel (m2) 14 14 Snow temperature (K) -# 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 15-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.10.0.table b/definitions/grib2/tables/30/4.2.10.0.table index a7b020933..8f307c0de 100644 --- a/definitions/grib2/tables/30/4.2.10.0.table +++ b/definitions/grib2/tables/30/4.2.10.0.table @@ -73,6 +73,6 @@ 71 71 Peak direction of wind waves (degree true) 72 72 Peak direction of total swell (degree true) 73 73 Whitecap fraction (fraction) -# 74-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 74-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.10.1.table b/definitions/grib2/tables/30/4.2.10.1.table index 8d1afe640..aeec67455 100644 --- a/definitions/grib2/tables/30/4.2.10.1.table +++ b/definitions/grib2/tables/30/4.2.10.1.table @@ -7,5 +7,5 @@ 5 5 Eastward current (m s-1) 6 6 Northward current (m s-1) # 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.10.191.table b/definitions/grib2/tables/30/4.2.10.191.table index bda676c83..cd4d4cde7 100644 --- a/definitions/grib2/tables/30/4.2.10.191.table +++ b/definitions/grib2/tables/30/4.2.10.191.table @@ -1,9 +1,9 @@ # Product discipline 10 - Oceanographic products, parameter category 191: miscellaneous 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) 4 4 Barotropic stream function (m3 s-1) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.10.2.table b/definitions/grib2/tables/30/4.2.10.2.table index 0f96b47ff..5612159ef 100644 --- a/definitions/grib2/tables/30/4.2.10.2.table +++ b/definitions/grib2/tables/30/4.2.10.2.table @@ -24,5 +24,5 @@ 22 22 Ice melt pond volume per unit area (m3 m-2) 23 23 Sea ice fraction tendency due to parameterization (s-1) # 24-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.10.4.table b/definitions/grib2/tables/30/4.2.10.4.table index 2787e1791..34d578988 100644 --- a/definitions/grib2/tables/30/4.2.10.4.table +++ b/definitions/grib2/tables/30/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) diff --git a/definitions/grib2/tables/30/4.2.3.0.table b/definitions/grib2/tables/30/4.2.3.0.table index fd75ee1b8..0bec15119 100644 --- a/definitions/grib2/tables/30/4.2.3.0.table +++ b/definitions/grib2/tables/30/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.3.1.table b/definitions/grib2/tables/30/4.2.3.1.table index c321976da..3211e5d1c 100644 --- a/definitions/grib2/tables/30/4.2.3.1.table +++ b/definitions/grib2/tables/30/4.2.3.1.table @@ -17,19 +17,19 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) -20 20 Aerosol optical thickness at 0.635 um -21 21 Aerosol optical thickness at 0.810 um -22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +20 20 Aerosol optical thickness at 0.635 um +21 21 Aerosol optical thickness at 0.810 um +22 22 Aerosol optical thickness at 1.640 um +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (numeric) -# 30-97 Reserved +# 30-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.0.table b/definitions/grib2/tables/30/4.2.4.0.table index 1a9318430..337308305 100644 --- a/definitions/grib2/tables/30/4.2.4.0.table +++ b/definitions/grib2/tables/30/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.1.table b/definitions/grib2/tables/30/4.2.4.1.table index ba2d09db8..9ec11160f 100644 --- a/definitions/grib2/tables/30/4.2.4.1.table +++ b/definitions/grib2/tables/30/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.10.table b/definitions/grib2/tables/30/4.2.4.10.table index fd9b2db49..8f5b19e06 100644 --- a/definitions/grib2/tables/30/4.2.4.10.table +++ b/definitions/grib2/tables/30/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.2.table b/definitions/grib2/tables/30/4.2.4.2.table index 90a94d23d..b479b3361 100644 --- a/definitions/grib2/tables/30/4.2.4.2.table +++ b/definitions/grib2/tables/30/4.2.4.2.table @@ -13,6 +13,6 @@ 11 11 Peak height (hm) (m) 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.3.table b/definitions/grib2/tables/30/4.2.4.3.table index aabee3d3a..3b752bbbc 100644 --- a/definitions/grib2/tables/30/4.2.4.3.table +++ b/definitions/grib2/tables/30/4.2.4.3.table @@ -7,6 +7,6 @@ 5 5 1st vector component of electric field (V m-1) 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.5.table b/definitions/grib2/tables/30/4.2.4.5.table index 93bfa1d01..913efec6f 100644 --- a/definitions/grib2/tables/30/4.2.4.5.table +++ b/definitions/grib2/tables/30/4.2.4.5.table @@ -3,6 +3,6 @@ 1 1 Phase (rad) 2 2 Frequency (Hz) 3 3 Wavelength (m) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.6.table b/definitions/grib2/tables/30/4.2.4.6.table index 92bdcb92c..6d13019a6 100644 --- a/definitions/grib2/tables/30/4.2.4.6.table +++ b/definitions/grib2/tables/30/4.2.4.6.table @@ -6,6 +6,6 @@ 4 4 Solar spectral irradiance (W m-2 nm-1) 5 5 F10.7 (W m-2 Hz-1) 6 6 Solar radio emissions (W m-2 Hz-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.7.table b/definitions/grib2/tables/30/4.2.4.7.table index da779d098..38c2b17a8 100644 --- a/definitions/grib2/tables/30/4.2.4.7.table +++ b/definitions/grib2/tables/30/4.2.4.7.table @@ -3,6 +3,6 @@ 1 1 Disk intensity (J m-2 s-1) 2 2 Disk intensity day (J m-2 s-1) 3 3 Disk intensity night (J m-2 s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.8.table b/definitions/grib2/tables/30/4.2.4.8.table index fd2227ccd..f350f4807 100644 --- a/definitions/grib2/tables/30/4.2.4.8.table +++ b/definitions/grib2/tables/30/4.2.4.8.table @@ -8,6 +8,6 @@ 6 6 Heliospheric radiance (W sr-1 m-2) 7 7 Thematic mask (Numeric) 8 8 Solar induced chlorophyll fluorescence (W m-2 sr-1 m-1) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.2.4.9.table b/definitions/grib2/tables/30/4.2.4.9.table index 9c4e93ec7..0e83436e2 100644 --- a/definitions/grib2/tables/30/4.2.4.9.table +++ b/definitions/grib2/tables/30/4.2.4.9.table @@ -2,6 +2,6 @@ 0 0 Pedersen conductivity (S m-1) 1 1 Hall conductivity (S m-1) 2 2 Parallel conductivity (S m-1) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.201.table b/definitions/grib2/tables/30/4.201.table index 49fe27c85..a725e4e65 100644 --- a/definitions/grib2/tables/30/4.201.table +++ b/definitions/grib2/tables/30/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 No precipitation -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No precipitation +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.202.table b/definitions/grib2/tables/30/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/30/4.202.table +++ b/definitions/grib2/tables/30/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.203.table b/definitions/grib2/tables/30/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/30/4.203.table +++ b/definitions/grib2/tables/30/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.204.table b/definitions/grib2/tables/30/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/30/4.204.table +++ b/definitions/grib2/tables/30/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.205.table b/definitions/grib2/tables/30/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/30/4.205.table +++ b/definitions/grib2/tables/30/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.206.table b/definitions/grib2/tables/30/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/30/4.206.table +++ b/definitions/grib2/tables/30/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.207.table b/definitions/grib2/tables/30/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/30/4.207.table +++ b/definitions/grib2/tables/30/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.208.table b/definitions/grib2/tables/30/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/30/4.208.table +++ b/definitions/grib2/tables/30/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.209.table b/definitions/grib2/tables/30/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/30/4.209.table +++ b/definitions/grib2/tables/30/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.210.table b/definitions/grib2/tables/30/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/30/4.210.table +++ b/definitions/grib2/tables/30/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.211.table b/definitions/grib2/tables/30/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/30/4.211.table +++ b/definitions/grib2/tables/30/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.212.table b/definitions/grib2/tables/30/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/30/4.212.table +++ b/definitions/grib2/tables/30/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.213.table b/definitions/grib2/tables/30/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/30/4.213.table +++ b/definitions/grib2/tables/30/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.214.table b/definitions/grib2/tables/30/4.214.table index 9df466fe5..b08860ce0 100644 --- a/definitions/grib2/tables/30/4.214.table +++ b/definitions/grib2/tables/30/4.214.table @@ -1,11 +1,11 @@ # Code table 4.214 - Environmental Factor Qualifier -0 0 Worst -1 1 Very poor -2 2 Poor -3 3 Average -4 4 Good -5 5 Excellent -# 6-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Worst +1 1 Very poor +2 2 Poor +3 3 Average +4 4 Good +5 5 Excellent +# 6-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.215.table b/definitions/grib2/tables/30/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/30/4.215.table +++ b/definitions/grib2/tables/30/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.216.table b/definitions/grib2/tables/30/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/30/4.216.table +++ b/definitions/grib2/tables/30/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/30/4.217.table b/definitions/grib2/tables/30/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/30/4.217.table +++ b/definitions/grib2/tables/30/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.218.table b/definitions/grib2/tables/30/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/30/4.218.table +++ b/definitions/grib2/tables/30/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.219.table b/definitions/grib2/tables/30/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/30/4.219.table +++ b/definitions/grib2/tables/30/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.220.table b/definitions/grib2/tables/30/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/30/4.220.table +++ b/definitions/grib2/tables/30/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.221.table b/definitions/grib2/tables/30/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/30/4.221.table +++ b/definitions/grib2/tables/30/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.222.table b/definitions/grib2/tables/30/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/30/4.222.table +++ b/definitions/grib2/tables/30/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.223.table b/definitions/grib2/tables/30/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/30/4.223.table +++ b/definitions/grib2/tables/30/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/30/4.224.table b/definitions/grib2/tables/30/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/30/4.224.table +++ b/definitions/grib2/tables/30/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/4.227.table b/definitions/grib2/tables/30/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/30/4.227.table +++ b/definitions/grib2/tables/30/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/30/4.228.table b/definitions/grib2/tables/30/4.228.table index 559ae916a..048a69f0b 100644 --- a/definitions/grib2/tables/30/4.228.table +++ b/definitions/grib2/tables/30/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe -# 5-254 Reserved -255 255 Missing value +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe +# 5-254 Reserved +255 255 Missing value diff --git a/definitions/grib2/tables/30/4.230.table b/definitions/grib2/tables/30/4.230.table index 47e011140..705857e5c 100644 --- a/definitions/grib2/tables/30/4.230.table +++ b/definitions/grib2/tables/30/4.230.table @@ -317,7 +317,7 @@ 30189 30189 Promethium 146 Pm-146 30190 30190 Promethium 147 Pm-147 30191 30191 Promethium 151 Pm-151 -30192 30192 Europium 152 Eu-152 +30192 30192 Europium 152 Eu-152 30193 30193 Europium 154 Eu-154 30194 30194 Europium 155 Eu-155 30195 30195 Gadolinium 153 Gd-153 diff --git a/definitions/grib2/tables/30/4.233.table b/definitions/grib2/tables/30/4.233.table index 011c7d6af..e4960cc1b 100644 --- a/definitions/grib2/tables/30/4.233.table +++ b/definitions/grib2/tables/30/4.233.table @@ -317,7 +317,7 @@ 30189 30189 Promethium 146 Pm-146 30190 30190 Promethium 147 Pm-147 30191 30191 Promethium 151 Pm-151 -30192 30192 Europium 152 Eu-152 +30192 30192 Europium 152 Eu-152 30193 30193 Europium 154 Eu-154 30194 30194 Europium 155 Eu-155 30195 30195 Gadolinium 153 Gd-153 diff --git a/definitions/grib2/tables/30/4.234.table b/definitions/grib2/tables/30/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/30/4.234.table +++ b/definitions/grib2/tables/30/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/30/4.236.table b/definitions/grib2/tables/30/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/30/4.236.table +++ b/definitions/grib2/tables/30/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/30/4.238.table b/definitions/grib2/tables/30/4.238.table index 7e1c8e4d0..be5be3a90 100644 --- a/definitions/grib2/tables/30/4.238.table +++ b/definitions/grib2/tables/30/4.238.table @@ -1,32 +1,32 @@ # Code table 4.238 - Source or sink -0 0 Other -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -12 12 Elevated anthropogenic sources -13 13 Surface anthropogenic sources -14 14 Agriculture livestock -15 15 Agriculture soils -16 16 Agriculture waste burning -17 17 Agriculture (all) -18 18 Residential, commercial and other combustion -19 19 Power generation -20 20 Super power stations -21 21 Fugitives -22 22 Industrial process -23 23 Solvents -24 24 Ships -25 25 Wastes (solid and water) -26 26 Road transportation -27 27 Off-road transportation -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Other +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +12 12 Elevated anthropogenic sources +13 13 Surface anthropogenic sources +14 14 Agriculture livestock +15 15 Agriculture soils +16 16 Agriculture waste burning +17 17 Agriculture (all) +18 18 Residential, commercial and other combustion +19 19 Power generation +20 20 Super power stations +21 21 Fugitives +22 22 Industrial process +23 23 Solvents +24 24 Ships +25 25 Wastes (solid and water) +26 26 Road transportation +27 27 Off-road transportation +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.239.table b/definitions/grib2/tables/30/4.239.table index c038926a5..f095b14a0 100644 --- a/definitions/grib2/tables/30/4.239.table +++ b/definitions/grib2/tables/30/4.239.table @@ -1,17 +1,17 @@ # Code table 4.239 - Wetland Type -0 0 Reserved -1 1 Bog -2 2 Drained -3 3 Fen -4 4 Floodplain -5 5 Mangrove -6 6 Marsh -7 7 Rice -8 8 Riverine -9 9 Salt marsh -10 10 Swamp -11 11 Upland -12 12 Wet tundra -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Bog +2 2 Drained +3 3 Fen +4 4 Floodplain +5 5 Mangrove +6 6 Marsh +7 7 Rice +8 8 Riverine +9 9 Salt marsh +10 10 Swamp +11 11 Upland +12 12 Wet tundra +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.240.table b/definitions/grib2/tables/30/4.240.table index e34ad678c..2a31fb2ab 100644 --- a/definitions/grib2/tables/30/4.240.table +++ b/definitions/grib2/tables/30/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) diff --git a/definitions/grib2/tables/30/4.241.table b/definitions/grib2/tables/30/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/30/4.241.table +++ b/definitions/grib2/tables/30/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/30/4.242.table b/definitions/grib2/tables/30/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/30/4.242.table +++ b/definitions/grib2/tables/30/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/30/4.243.table b/definitions/grib2/tables/30/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/30/4.243.table +++ b/definitions/grib2/tables/30/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/30/4.244.table b/definitions/grib2/tables/30/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/30/4.244.table +++ b/definitions/grib2/tables/30/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.246.table b/definitions/grib2/tables/30/4.246.table index bc89c27b9..0ca9c0c98 100644 --- a/definitions/grib2/tables/30/4.246.table +++ b/definitions/grib2/tables/30/4.246.table @@ -1,7 +1,7 @@ # Code table 4.246 - Thunderstorm intensity -0 0 No thunderstorm occurrence -1 1 Weak thunderstorm -2 2 Moderate thunderstorm -3 3 Severe thunderstorm -# 4-254 Reserved -255 255 Missing +0 0 No thunderstorm occurrence +1 1 Weak thunderstorm +2 2 Moderate thunderstorm +3 3 Severe thunderstorm +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/4.247.table b/definitions/grib2/tables/30/4.247.table index cd7fc90bd..6da16e396 100644 --- a/definitions/grib2/tables/30/4.247.table +++ b/definitions/grib2/tables/30/4.247.table @@ -1,7 +1,7 @@ # Code table 4.247 - Precipitation intensity -0 0 No precipitation occurrence -1 1 Light precipitation -2 2 Moderate precipitation -3 3 Heavy precipitation -# 4-254 Reserved -255 255 Missing +0 0 No precipitation occurrence +1 1 Light precipitation +2 2 Moderate precipitation +3 3 Heavy precipitation +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/4.248.table b/definitions/grib2/tables/30/4.248.table index 694eebb72..04e365c97 100644 --- a/definitions/grib2/tables/30/4.248.table +++ b/definitions/grib2/tables/30/4.248.table @@ -1,6 +1,6 @@ # Code table 4.248 - Method used to derive data values for a given local time -0 0 Nearest forecast or analysis time to specified local time -1 1 Interpolated to be valid at the specified local time -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nearest forecast or analysis time to specified local time +1 1 Interpolated to be valid at the specified local time +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.249.table b/definitions/grib2/tables/30/4.249.table index 9e62d9bbb..bd1c944c4 100644 --- a/definitions/grib2/tables/30/4.249.table +++ b/definitions/grib2/tables/30/4.249.table @@ -1,7 +1,7 @@ # Code table 4.249 - Character of precipitation -0 0 None -1 1 Showers -2 2 Intermittent -3 3 Continuous -# 4-254 Reserved -255 255 Missing +0 0 None +1 1 Showers +2 2 Intermittent +3 3 Continuous +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/30/4.3.table b/definitions/grib2/tables/30/4.3.table index 7ad6be363..8ae36efc3 100644 --- a/definitions/grib2/tables/30/4.3.table +++ b/definitions/grib2/tables/30/4.3.table @@ -1,26 +1,26 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -19 19 First guess -20 20 Analysis increment -21 21 Initialization increment for analysis -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +19 19 First guess +20 20 Analysis increment +21 21 Initialization increment for analysis +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.4.table b/definitions/grib2/tables/30/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/30/4.4.table +++ b/definitions/grib2/tables/30/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.5.table b/definitions/grib2/tables/30/4.5.table index 3c338232d..98103671d 100644 --- a/definitions/grib2/tables/30/4.5.table +++ b/definitions/grib2/tables/30/4.5.table @@ -29,14 +29,14 @@ 27 27 Convective cloud layer top (m) # 28-29 Reserved 30 30 Specified radius from the centre of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level # 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -45,10 +45,10 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved @@ -56,7 +56,7 @@ 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) # 120-149 Reserved -150 150 Generalized vertical height coordinate +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea-ice level (Numeric) # 153-159 Reserved diff --git a/definitions/grib2/tables/30/4.6.table b/definitions/grib2/tables/30/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/30/4.6.table +++ b/definitions/grib2/tables/30/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.7.table b/definitions/grib2/tables/30/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/30/4.7.table +++ b/definitions/grib2/tables/30/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.8.table b/definitions/grib2/tables/30/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/30/4.8.table +++ b/definitions/grib2/tables/30/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/30/4.9.table b/definitions/grib2/tables/30/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/30/4.9.table +++ b/definitions/grib2/tables/30/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/0.0.table b/definitions/grib2/tables/31/0.0.table index 71ac57ab3..a8542e94f 100644 --- a/definitions/grib2/tables/31/0.0.table +++ b/definitions/grib2/tables/31/0.0.table @@ -1,13 +1,13 @@ # Code table 0.0 - Discipline of processed data in the GRIB message, number of GRIB Master table -0 0 Meteorological products -1 1 Hydrological products -2 2 Land surface products -3 3 Satellite remote sensing products (formerly Space products) -4 4 Space weather products -# 5-9 Reserved -10 10 Oceanographic products -# 11-19 Reserved -20 20 Health and socioeconomic impacts -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Meteorological products +1 1 Hydrological products +2 2 Land surface products +3 3 Satellite remote sensing products (formerly Space products) +4 4 Space weather products +# 5-9 Reserved +10 10 Oceanographic products +# 11-19 Reserved +20 20 Health and socioeconomic impacts +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/1.1.table b/definitions/grib2/tables/31/1.1.table index d50f8fd72..f6d332005 100644 --- a/definitions/grib2/tables/31/1.1.table +++ b/definitions/grib2/tables/31/1.1.table @@ -1,4 +1,4 @@ # Code table 1.1 - GRIB local tables version number -0 0 Local tables not used. Only table entries and templates from the current master table are valid -# 1-254 Number of local tables version used -255 255 Missing +0 0 Local tables not used. Only table entries and templates from the current master table are valid +# 1-254 Number of local tables version used +255 255 Missing diff --git a/definitions/grib2/tables/31/1.2.table b/definitions/grib2/tables/31/1.2.table index 44ea816e9..77f96637a 100644 --- a/definitions/grib2/tables/31/1.2.table +++ b/definitions/grib2/tables/31/1.2.table @@ -1,9 +1,9 @@ # Code table 1.2 - Significance of reference time -0 0 Analysis -1 1 Start of forecast -2 2 Verifying time of forecast -3 3 Observation time -4 4 Local time -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Start of forecast +2 2 Verifying time of forecast +3 3 Observation time +4 4 Local time +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/1.3.table b/definitions/grib2/tables/31/1.3.table index dc138ef12..5e2e59087 100644 --- a/definitions/grib2/tables/31/1.3.table +++ b/definitions/grib2/tables/31/1.3.table @@ -1,16 +1,16 @@ # Code table 1.3 - Production status of data -0 0 Operational products -1 1 Operational test products -2 2 Research products -3 3 Re-analysis products -4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) +0 0 Operational products +1 1 Operational test products +2 2 Research products +3 3 Re-analysis products +4 4 THORPEX Interactive Grand Global Ensemble (TIGGE) 5 5 THORPEX Interactive Grand Global Ensemble test (TIGGE) -6 6 S2S operational products -7 7 S2S test products -8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) +6 6 S2S operational products +7 7 S2S test products +8 8 Uncertainties in Ensembles of Regional ReAnalyses project (UERRA) 9 9 Uncertainties in Ensembles of Regional ReAnalyses project test (UERRA) 10 10 Copernicus regional reanalysis (CARRA/CERRA) 11 11 Copernicus regional reanalysis test (CARRA/CERRA) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/1.4.table b/definitions/grib2/tables/31/1.4.table index 03203d874..877288c0e 100644 --- a/definitions/grib2/tables/31/1.4.table +++ b/definitions/grib2/tables/31/1.4.table @@ -1,13 +1,13 @@ # Code table 1.4 - Type of data -0 an Analysis products -1 fc Forecast products -2 af Analysis and forecast products -3 cf Control forecast products -4 pf Perturbed forecast products -5 cp Control and perturbed forecast products -6 sa Processed satellite observations -7 ra Processed radar observations -8 ep Event probability -# 9-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 an Analysis products +1 fc Forecast products +2 af Analysis and forecast products +3 cf Control forecast products +4 pf Perturbed forecast products +5 cp Control and perturbed forecast products +6 sa Processed satellite observations +7 ra Processed radar observations +8 ep Event probability +# 9-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/31/1.5.table b/definitions/grib2/tables/31/1.5.table index b2cf9f087..533111959 100644 --- a/definitions/grib2/tables/31/1.5.table +++ b/definitions/grib2/tables/31/1.5.table @@ -1,7 +1,7 @@ # Code table 1.5 - Identification template number -0 0 Calendar definition -1 1 Paleontological offset -2 2 Calendar definition and paleontological offset -# 3-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +0 0 Calendar definition +1 1 Paleontological offset +2 2 Calendar definition and paleontological offset +# 3-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/31/1.6.table b/definitions/grib2/tables/31/1.6.table index 5db921990..bd46899a7 100644 --- a/definitions/grib2/tables/31/1.6.table +++ b/definitions/grib2/tables/31/1.6.table @@ -1,8 +1,8 @@ # Code table 1.6 - Type of calendar -0 0 Gregorian -1 1 360-day -2 2 365-day -3 3 Proleptic Gregorian -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Gregorian +1 1 360-day +2 2 365-day +3 3 Proleptic Gregorian +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.0.table b/definitions/grib2/tables/31/3.0.table index 45187b80d..a442a06a0 100644 --- a/definitions/grib2/tables/31/3.0.table +++ b/definitions/grib2/tables/31/3.0.table @@ -1,6 +1,6 @@ # Code table 3.0 - Source of grid definition -0 0 Specified in Code table 3.1 +0 0 Specified in Code table 3.1 1 1 Predetermined grid definition (Defined by originating centre) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 A grid definition does not apply to this product +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 A grid definition does not apply to this product diff --git a/definitions/grib2/tables/31/3.1.table b/definitions/grib2/tables/31/3.1.table index 60a5eddb4..7d372ddaf 100644 --- a/definitions/grib2/tables/31/3.1.table +++ b/definitions/grib2/tables/31/3.1.table @@ -1,55 +1,55 @@ # Code table 3.1 - Grid definition template number 0 0 Latitude/longitude (Also called equidistant cylindrical, or Plate Carree) -1 1 Rotated latitude/longitude -2 2 Stretched latitude/longitude -3 3 Stretched and rotated latitude/longitude -4 4 Variable resolution latitude/longitude -5 5 Variable resolution rotated latitude/longitude -# 6-9 Reserved -10 10 Mercator +1 1 Rotated latitude/longitude +2 2 Stretched latitude/longitude +3 3 Stretched and rotated latitude/longitude +4 4 Variable resolution latitude/longitude +5 5 Variable resolution rotated latitude/longitude +# 6-9 Reserved +10 10 Mercator # 11 Reserved 12 12 Transverse Mercator -13 13 Mercator with modelling subdomains definition -# 14-19 Reserved +13 13 Mercator with modelling subdomains definition +# 14-19 Reserved 20 20 Polar stereographic projection (Can be south or north) -# 21-22 Reserved -23 23 Polar stereographic with modelling subdomains definition -# 24-29 Reserved +# 21-22 Reserved +23 23 Polar stereographic with modelling subdomains definition +# 24-29 Reserved 30 30 Lambert conformal (Can be secant or tangent, conical or bipolar) -31 31 Albers equal area -32 32 Reserved -33 33 Lambert conformal with modelling subdomains definition -# 34-39 Reserved -40 40 Gaussian latitude/longitude -41 41 Rotated Gaussian latitude/longitude -42 42 Stretched Gaussian latitude/longitude -43 43 Stretched and rotated Gaussian latitude/longitude -# 44-49 Reserved -50 50 Spherical harmonic coefficients -51 51 Rotated spherical harmonic coefficients -52 52 Stretched spherical harmonic coefficients -53 53 Stretched and rotated spherical harmonic coefficients -# 54-60 Reserved -61 61 Spectral Mercator with modelling subdomains definition -62 62 Spectral polar stereographic with modelling subdomains definition -63 63 Spectral Lambert conformal with modelling subdomains definition -# 64-89 Reserved -90 90 Space view perspective or orthographic -# 91-99 Reserved -100 100 Triangular grid based on an icosahedron -101 101 General unstructured grid -# 102-109 Reserved -110 110 Equatorial azimuthal equidistant projection -# 111-119 Reserved -120 120 Azimuth-range projection -# 121-139 Reserved -140 140 Lambert azimuthal equal area projection -# 141-999 Reserved -1000 1000 Cross-section grid with points equally spaced on the horizontal -# 1001-1099 Reserved -1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal -# 1101-1199 Reserved -1200 1200 Time section grid -# 1201-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +31 31 Albers equal area +# 32 Reserved +33 33 Lambert conformal with modelling subdomains definition +# 34-39 Reserved +40 40 Gaussian latitude/longitude +41 41 Rotated Gaussian latitude/longitude +42 42 Stretched Gaussian latitude/longitude +43 43 Stretched and rotated Gaussian latitude/longitude +# 44-49 Reserved +50 50 Spherical harmonic coefficients +51 51 Rotated spherical harmonic coefficients +52 52 Stretched spherical harmonic coefficients +53 53 Stretched and rotated spherical harmonic coefficients +# 54-60 Reserved +61 61 Spectral Mercator with modelling subdomains definition +62 62 Spectral polar stereographic with modelling subdomains definition +63 63 Spectral Lambert conformal with modelling subdomains definition +# 64-89 Reserved +90 90 Space view perspective or orthographic +# 91-99 Reserved +100 100 Triangular grid based on an icosahedron +101 101 General unstructured grid +# 102-109 Reserved +110 110 Equatorial azimuthal equidistant projection +# 111-119 Reserved +120 120 Azimuth-range projection +# 121-139 Reserved +140 140 Lambert azimuthal equal area projection +# 141-999 Reserved +1000 1000 Cross-section grid with points equally spaced on the horizontal +# 1001-1099 Reserved +1100 1100 Hovmoller diagram grid with points equally spaced on the horizontal +# 1101-1199 Reserved +1200 1200 Time section grid +# 1201-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/31/3.10.table b/definitions/grib2/tables/31/3.10.table index afa8843a7..1612d05e3 100644 --- a/definitions/grib2/tables/31/3.10.table +++ b/definitions/grib2/tables/31/3.10.table @@ -1,8 +1,8 @@ # Flag table 3.10 - Scanning mode for one diamond -1 0 Points scan in +i direction, i.e. from pole to Equator -1 1 Points scan in -i direction, i.e. from Equator to pole -2 0 Points scan in +j direction, i.e. from west to east -2 1 Points scan in -j direction, i.e. from east to west -3 0 Adjacent points in i direction are consecutive -3 1 Adjacent points in j direction are consecutive -# 4-8 Reserved +1 0 Points scan in +i direction, i.e. from pole to Equator +1 1 Points scan in -i direction, i.e. from Equator to pole +2 0 Points scan in +j direction, i.e. from west to east +2 1 Points scan in -j direction, i.e. from east to west +3 0 Adjacent points in i direction are consecutive +3 1 Adjacent points in j direction are consecutive +# 4-8 Reserved diff --git a/definitions/grib2/tables/31/3.11.table b/definitions/grib2/tables/31/3.11.table index e516a2ab9..06ae10810 100644 --- a/definitions/grib2/tables/31/3.11.table +++ b/definitions/grib2/tables/31/3.11.table @@ -1,7 +1,7 @@ # Code table 3.11 - Interpretation of list of numbers at end of section 3 -0 0 There is no appended list -1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows -2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row -3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) -# 4-254 Reserved -255 255 Missing +0 0 There is no appended list +1 1 Numbers define number of points corresponding to full coordinate circles (i.e. parallels), coordinate values on each circle are multiple of the circle mesh, and extreme coordinate values given in grid definition (i.e. extreme longitudes) may not be reached in all rows +2 2 Numbers define number of points corresponding to coordinate lines delimited by extreme coordinate values given in grid definition (i.e. extreme longitudes) which are present in each row +3 3 Numbers define the actual latitudes for each row in the grid. The list of numbers are integer values of the valid latitudes in microdegrees (scaled by 10-6) or in unit equal to the ratio of the basic angle and the subdivisions number for each row, in the same order as specified in the scanning mode flag (bit no. 2) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/3.15.table b/definitions/grib2/tables/31/3.15.table index 7c4626b88..43539dbfc 100644 --- a/definitions/grib2/tables/31/3.15.table +++ b/definitions/grib2/tables/31/3.15.table @@ -1,23 +1,23 @@ # Code table 3.15 - Physical meaning of vertical coordinate -# 0-19 Reserved +# 0-19 Reserved 20 20 Temperature (K) -# 21-99 Reserved +# 21-99 Reserved 100 100 Pressure (Pa) 101 101 Pressure deviation from mean sea level (Pa) 102 102 Altitude above mean sea level (m) 103 103 Height above ground (m) -104 104 Sigma coordinate -105 105 Hybrid coordinate +104 104 Sigma coordinate +105 105 Hybrid coordinate 106 106 Depth below land surface (m) 107 pt Potential temperature (theta) (K) 108 108 Pressure deviation from ground to level (Pa) 109 pv Potential vorticity (K m2 kg-1 s-1) 110 110 Geometrical height (m) -111 111 Eta coordinate +111 111 Eta coordinate 112 112 Geopotential height (gpm) -113 113 Logarithmic hybrid coordinate -# 114-159 Reserved +113 113 Logarithmic hybrid coordinate +# 114-159 Reserved 160 160 Depth below sea level (m) -# 161-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 161-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.2.table b/definitions/grib2/tables/31/3.2.table index bc3b653d0..13b9bf469 100644 --- a/definitions/grib2/tables/31/3.2.table +++ b/definitions/grib2/tables/31/3.2.table @@ -1,16 +1,16 @@ # Code table 3.2 - Shape of the reference system -0 0 Earth assumed spherical with radius = 6 367 470.0 m -1 1 Earth assumed spherical with radius specified (in m) by data producer -2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) -3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer -4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) +0 0 Earth assumed spherical with radius = 6 367 470.0 m +1 1 Earth assumed spherical with radius specified (in m) by data producer +2 2 Earth assumed oblate spheroid with size as determined by IAU in 1965 (major axis = 6 378 160.0 m, minor axis = 6 356 775.0 m, f = 1/297.0) +3 3 Earth assumed oblate spheroid with major and minor axes specified (in km) by data producer +4 4 Earth assumed oblate spheroid as defined in IAG-GRS80 model (major axis = 6 378 137.0 m, minor axis = 6 356 752.314 m, f = 1/298.257 222 101) 5 5 Earth assumed represented by WGS-84 (as used by ICAO since 1998) -6 6 Earth assumed spherical with radius of 6 371 229.0 m -7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer -8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame -9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height -10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 -11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +6 6 Earth assumed spherical with radius of 6 371 229.0 m +7 7 Earth assumed oblate spheroid with major or minor axes specified (in m) by data producer +8 8 Earth model assumed spherical with radius of 6 371 200 m, but the horizontal datum of the resulting latitude/longitude field is the WGS-84 reference frame +9 9 Earth represented by the Ordnance Survey Great Britain 1936 Datum, using the Airy 1830 Spheroid, the Greenwich meridian as 0 longitude, and the Newlyn datum as mean sea level, 0 height +10 10 Earth model assumed WGS84 with corrected geomagnetic coordinates (latitude and longitude) defined by Gustafsson et al., 1992 +11 11 Sun assumed spherical with radius = 695 990 000 m (Allen, C.W., Astrophysical Quantities, 3rd ed.; Athlone: London, 1976) and Stonyhurst latitude and longitude system with origin at the intersection of the solar central meridian (as seen from Earth) and the solar equator (Thompson, W., Coordinate systems for solar image data, Astron. Astrophys. 2006, 449, 791-803) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.20.table b/definitions/grib2/tables/31/3.20.table index efbf08d19..e2bb156ee 100644 --- a/definitions/grib2/tables/31/3.20.table +++ b/definitions/grib2/tables/31/3.20.table @@ -1,6 +1,6 @@ # Code table 3.20 - Type of horizontal line -0 0 Rhumb -1 1 Great circle -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Rhumb +1 1 Great circle +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.21.table b/definitions/grib2/tables/31/3.21.table index 88dbb9019..e001e1c8f 100644 --- a/definitions/grib2/tables/31/3.21.table +++ b/definitions/grib2/tables/31/3.21.table @@ -1,8 +1,8 @@ # Code table 3.21 - Vertical dimension coordinate values definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.25.table b/definitions/grib2/tables/31/3.25.table index de1bc74ed..e5a754994 100644 --- a/definitions/grib2/tables/31/3.25.table +++ b/definitions/grib2/tables/31/3.25.table @@ -1,10 +1,10 @@ # Code table 3.25 - Type of bi-Fourier truncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.3.table b/definitions/grib2/tables/31/3.3.table index 5dd7c7001..25cb46a1d 100644 --- a/definitions/grib2/tables/31/3.3.table +++ b/definitions/grib2/tables/31/3.3.table @@ -1,9 +1,9 @@ # Flag table 3.3 - Resolution and component flags -# 1-2 Reserved -3 0 i direction increments not given -3 1 i direction increments given -4 0 j direction increments not given -4 1 j direction increments given -5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions -5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively -# 6-8 Reserved - set to zero +# 1-2 Reserved +3 0 i direction increments not given +3 1 i direction increments given +4 0 j direction increments not given +4 1 j direction increments given +5 0 Resolved u- and v- components of vector quantities relative to easterly and northerly directions +5 1 Resolved u- and v- components of vector quantities relative to the defined grid in the direction of increasing x and y (or i and j) coordinates, respectively +# 6-8 Reserved - set to zero diff --git a/definitions/grib2/tables/31/3.4.table b/definitions/grib2/tables/31/3.4.table index e5a628e45..c10a62b01 100644 --- a/definitions/grib2/tables/31/3.4.table +++ b/definitions/grib2/tables/31/3.4.table @@ -1,17 +1,17 @@ # Flag table 3.4 - Scanning mode -1 0 Points of first row or column scan in the +i (+x) direction -1 1 Points of first row or column scan in the -i (-x) direction -2 0 Points of first row or column scan in the -j (-y) direction -2 1 Points of first row or column scan in the +j (+y) direction -3 0 Adjacent points in i (x) direction are consecutive -3 1 Adjacent points in j (y) direction is consecutive -4 0 All rows scan in the same direction -4 1 Adjacent rows scan in the opposite direction -5 0 Points within odd rows are not offset in i (x) direction -5 1 Points within odd rows are offset by Di/2 in i (x) direction -6 0 Points within even rows are not offset in i (x) direction -6 1 Points within even rows are offset by Di/2 in i (x) direction -7 0 Points are not offset in j (y) direction -7 1 Points are offset by Dj/2 in j (y) direction -8 0 Rows have Ni grid points and columns have Nj grid points -8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction +1 0 Points of first row or column scan in the +i (+x) direction +1 1 Points of first row or column scan in the -i (-x) direction +2 0 Points of first row or column scan in the -j (-y) direction +2 1 Points of first row or column scan in the +j (+y) direction +3 0 Adjacent points in i (x) direction are consecutive +3 1 Adjacent points in j (y) direction is consecutive +4 0 All rows scan in the same direction +4 1 Adjacent rows scan in the opposite direction +5 0 Points within odd rows are not offset in i (x) direction +5 1 Points within odd rows are offset by Di/2 in i (x) direction +6 0 Points within even rows are not offset in i (x) direction +6 1 Points within even rows are offset by Di/2 in i (x) direction +7 0 Points are not offset in j (y) direction +7 1 Points are offset by Dj/2 in j (y) direction +8 0 Rows have Ni grid points and columns have Nj grid points +8 1 Rows have Ni grid points if points are not offset in i direction Rows have Ni-1 grid points if points are offset by Di/2 in i direction Columns have Nj grid points if points are not offset in j direction Columns have Nj-1 grid points if points are offset by Dj/2 in j direction diff --git a/definitions/grib2/tables/31/3.5.table b/definitions/grib2/tables/31/3.5.table index eabdde896..2f8ec82e3 100644 --- a/definitions/grib2/tables/31/3.5.table +++ b/definitions/grib2/tables/31/3.5.table @@ -1,5 +1,5 @@ # Flag table 3.5 - Projection centre -1 0 North Pole is on the projection plane -1 1 South Pole is on the projection plane -2 0 Only one projection centre is used -2 1 Projection is bipolar and symmetric +1 0 North Pole is on the projection plane +1 1 South Pole is on the projection plane +2 0 Only one projection centre is used +2 1 Projection is bipolar and symmetric diff --git a/definitions/grib2/tables/31/3.6.table b/definitions/grib2/tables/31/3.6.table index 3133b9cfe..5ab13aaa5 100644 --- a/definitions/grib2/tables/31/3.6.table +++ b/definitions/grib2/tables/31/3.6.table @@ -1,3 +1,3 @@ # Code table 3.6 - Spectral data representation type -1 1 see separate doc or pdf file -2 2 Bi-Fourier representation +1 1 see separate doc or pdf file +2 2 Bi-Fourier representation diff --git a/definitions/grib2/tables/31/3.7.table b/definitions/grib2/tables/31/3.7.table index cd566487b..34c0de085 100644 --- a/definitions/grib2/tables/31/3.7.table +++ b/definitions/grib2/tables/31/3.7.table @@ -1,5 +1,5 @@ # Code table 3.7 - Spectral data representation mode -0 0 Reserved -1 1 see separate doc or pdf file -# 2-254 Reserved -255 255 Missing +0 0 Reserved +1 1 see separate doc or pdf file +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/3.8.table b/definitions/grib2/tables/31/3.8.table index 844e74235..578fab37f 100644 --- a/definitions/grib2/tables/31/3.8.table +++ b/definitions/grib2/tables/31/3.8.table @@ -1,7 +1,7 @@ # Code table 3.8 - Grid point position -0 0 Grid points at triangle vertices -1 1 Grid points at centres of triangles -2 2 Grid points at midpoints of triangle sides -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Grid points at triangle vertices +1 1 Grid points at centres of triangles +2 2 Grid points at midpoints of triangle sides +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/3.9.table b/definitions/grib2/tables/31/3.9.table index fd730bc64..ecd65514a 100644 --- a/definitions/grib2/tables/31/3.9.table +++ b/definitions/grib2/tables/31/3.9.table @@ -1,4 +1,4 @@ # Flag table 3.9 - Numbering order of diamonds as seen from the corresponding pole -1 0 Clockwise orientation -1 1 Anti-clockwise (i.e. counter-clockwise) orientation -# 2-8 Reserved +1 0 Clockwise orientation +1 1 Anti-clockwise (i.e. counter-clockwise) orientation +# 2-8 Reserved diff --git a/definitions/grib2/tables/31/4.0.table b/definitions/grib2/tables/31/4.0.table index 7c34c45f3..1b7479edc 100644 --- a/definitions/grib2/tables/31/4.0.table +++ b/definitions/grib2/tables/31/4.0.table @@ -1,108 +1,108 @@ # Code table 4.0 - Product definition template number -0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time -1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time -3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time -4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time -5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time -6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time -7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time -8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval -15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time -# 16-19 Reserved -20 20 Radar product -# 21-29 Reserved -30 30 Satellite product (deprecated) -31 31 Satellite product -32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data -34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data -35 35 Satellite product with or without associated quality values -# 36-39 Reserved -40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents -42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents -44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol -45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol -46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol -49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +0 0 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time +1 1 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +2 2 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer at a point in time +3 3 Derived forecasts based on a cluster of ensemble members over a rectangular area at a horizontal level or in a horizontal layer at a point in time +4 4 Derived forecasts based on a cluster of ensemble members over a circular area at a horizontal level or in a horizontal layer at a point in time +5 5 Probability forecasts at a horizontal level or in a horizontal layer at a point in time +6 6 Percentile forecasts at a horizontal level or in a horizontal layer at a point in time +7 7 Analysis or forecast error at a horizontal level or in a horizontal layer at a point in time +8 8 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +9 9 Probability forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +10 10 Percentile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +11 11 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +12 12 Derived forecasts based on all ensemble members at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +13 13 Derived forecasts based on a cluster of ensemble members over a rectangular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +14 14 Derived forecasts based on a cluster of ensemble members over a circular area, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval +15 15 Average, accumulation, extreme values or other statistically processed values over a spatial area at a horizontal level or in a horizontal layer at a point in time +# 16-19 Reserved +20 20 Radar product +# 21-29 Reserved +30 30 Satellite product (deprecated) +31 31 Satellite product +32 32 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +33 33 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for simulated (synthetic) satellite data +34 34 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for simulated (synthetic) satellite data +35 35 Satellite product with or without associated quality values +# 36-39 Reserved +40 40 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +41 41 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents +42 42 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +43 43 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents +44 44 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for aerosol +45 45 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for aerosol +46 46 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +47 47 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +48 48 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol +49 49 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol # 50 Reserved -51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time +51 51 Categorical forecasts at a horizontal level or in a horizontal layer at a point in time # 52 Reserved -53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time -54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters -55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) -57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function -59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) -60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time -63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles -# 64-66 Reserved -67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function -68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +53 53 Partitioned parameters at a horizontal level or in a horizontal layer at a point in time +54 54 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for partitioned parameters +55 55 Spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +56 56 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (deprecated) +57 57 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +58 58 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents based on a distribution function +59 59 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for spatio-temporal changing tile parameters (corrected version of template 4.56) +60 60 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +61 61 Individual ensemble reforecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +62 62 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles at a horizontal level or horizontal layer at a point in time +63 63 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for spatio-temporal changing tiles +# 64-66 Reserved +67 67 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function +68 68 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents based on a distribution function # 69 Reserved -70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time -71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time -72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval -# 74-75 Reserved -76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink -78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink -80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink -82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink -85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol -86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time -87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -# 89-90 Reserved -91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time -93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time -95 95 Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time -96 96 Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time -97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time -98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time -99 99 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions -100 100 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions -101 101 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae -102 102 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae -103 103 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range -104 104 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range -105 105 Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -106 106 Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -107 107 Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -108 108 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products -109 109 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products -110 110 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products -111 111 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products -112 112 Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval -# 113-253 Reserved -254 254 CCITT IA5 character string -# 255-999 Reserved -1000 1000 Cross-section of analysis and forecast at a point in time -1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time -1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude -# 1003-1099 Reserved -1100 1100 Hovmoller-type grid with no averaging or other statistical processing -1101 1101 Hovmoller-type grid with averaging or other statistical processing -# 1102-32767 Reserved -# 32768-65534 Reserved for local use -65535 65535 Missing +70 70 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a point in time +71 71 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time +72 72 Post-processing average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +73 73 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous time interval +# 74-75 Reserved +76 76 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +77 77 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for atmospheric chemical constituents with source or sink +78 78 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +79 79 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for atmospheric chemical constituents with source or sink +80 80 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +81 81 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for optical properties of aerosol with source or sink +82 82 Average, accumulation, and/or extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +83 83 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +84 84 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol with source or sink +85 85 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for aerosol +86 86 Quantile forecasts at a horizontal level or in a horizontal layer at a point in time +87 87 Quantile forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +88 88 Analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +# 89-90 Reserved +91 91 Categorical forecasts at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +92 92 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time +93 93 Post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +94 94 Post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time +95 95 Average, accumulation, extreme values or other statiscally processed value at a horizontal level or in a horizontal layer at a specified local time +96 96 Average, accumulation, extreme values or other statistically processed values of an individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time +97 97 Average, accumulation, extreme values or other statistically processed values of post-processing analysis or forecast at a horizontal level or in a horizontal layer at a specified local time +98 98 Average, accumulation, extreme values or other statistically processed values of a post-processing individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a specified local time +99 99 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions +100 100 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with explicit list of frequencies and directions +101 101 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae +102 102 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for wave 2D spectra with frequencies and directions defined by formulae +103 103 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for waves selected by period range +104 104 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for waves selected by period range +105 105 Anomalies, significance and other derived products from an analysis or forecast in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +106 106 Anomalies, significance and other derived products from an individual ensemble forecast, control and perturbed in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +107 107 Anomalies, significance and other derived products from derived forecasts based on all ensemble members in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +108 108 Analysis or forecast at a horizontal level or in a horizontal layer at a point in time for generic optical products +109 109 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical products +110 110 Average, accumulation, extreme values or other statistically processed values at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval for generic optical products +111 111 Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer, in a continuous or non-continuous interval for generic optical products +112 112 Anomalies, significance and other derived products as probability forecasts in relation to a reference period at a horizontal level or in a horizontal layer in a continuous or non-continuous time interval +# 113-253 Reserved +254 254 CCITT IA5 character string +# 255-999 Reserved +1000 1000 Cross-section of analysis and forecast at a point in time +1001 1001 Cross-section of averaged or otherwise statistically processed analysis or forecast over a range of time +1002 1002 Cross-section of analysis and forecast, averaged or otherwise statistically processed over latitude or longitude +# 1003-1099 Reserved +1100 1100 Hovmoller-type grid with no averaging or other statistical processing +1101 1101 Hovmoller-type grid with averaging or other statistical processing +# 1102-32767 Reserved +# 32768-65534 Reserved for local use +65535 65535 Missing diff --git a/definitions/grib2/tables/31/4.1.0.table b/definitions/grib2/tables/31/4.1.0.table index 9462cde19..7f390b679 100644 --- a/definitions/grib2/tables/31/4.1.0.table +++ b/definitions/grib2/tables/31/4.1.0.table @@ -1,28 +1,28 @@ # Product discipline 0 - Meteorological products -0 0 Temperature -1 1 Moisture -2 2 Momentum -3 3 Mass -4 4 Short-wave radiation -5 5 Long-wave radiation -6 6 Cloud -7 7 Thermodynamic stability indices -8 8 Kinematic stability indices -9 9 Temperature probabilities -10 10 Moisture probabilities -11 11 Momentum probabilities -12 12 Mass probabilities -13 13 Aerosols -14 14 Trace gases (e.g. ozone, CO2) -15 15 Radar -16 16 Forecast radar imagery -17 17 Electrodynamics -18 18 Nuclear/radiology -19 19 Physical atmospheric properties -20 20 Atmospheric chemical constituents -21 21 Thermodynamic properties -# 22-189 Reserved -190 190 CCITT IA5 string -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Moisture +2 2 Momentum +3 3 Mass +4 4 Short-wave radiation +5 5 Long-wave radiation +6 6 Cloud +7 7 Thermodynamic stability indices +8 8 Kinematic stability indices +9 9 Temperature probabilities +10 10 Moisture probabilities +11 11 Momentum probabilities +12 12 Mass probabilities +13 13 Aerosols +14 14 Trace gases (e.g. ozone, CO2) +15 15 Radar +16 16 Forecast radar imagery +17 17 Electrodynamics +18 18 Nuclear/radiology +19 19 Physical atmospheric properties +20 20 Atmospheric chemical constituents +21 21 Thermodynamic properties +# 22-189 Reserved +190 190 CCITT IA5 string +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.1.table b/definitions/grib2/tables/31/4.1.1.table index 20af0032a..df2c13fa8 100644 --- a/definitions/grib2/tables/31/4.1.1.table +++ b/definitions/grib2/tables/31/4.1.1.table @@ -1,7 +1,7 @@ # Product discipline 1 - Hydrological products -0 0 Hydrology basic products -1 1 Hydrology probabilities -2 2 Inland water and sediment properties -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Hydrology basic products +1 1 Hydrology probabilities +2 2 Inland water and sediment properties +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.10.table b/definitions/grib2/tables/31/4.1.10.table index afaea7619..5a64f9652 100644 --- a/definitions/grib2/tables/31/4.1.10.table +++ b/definitions/grib2/tables/31/4.1.10.table @@ -1,10 +1,10 @@ # Product discipline 10 - Oceanographic products -0 0 Waves -1 1 Currents -2 2 Ice -3 3 Surface properties -4 4 Subsurface properties -# 5-190 Reserved -191 191 Miscellaneous -# 192-254 Reserved for local use -255 255 Missing +0 0 Waves +1 1 Currents +2 2 Ice +3 3 Surface properties +4 4 Subsurface properties +# 5-190 Reserved +191 191 Miscellaneous +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.2.table b/definitions/grib2/tables/31/4.1.2.table index 3d67e0ceb..9d6f690ac 100644 --- a/definitions/grib2/tables/31/4.1.2.table +++ b/definitions/grib2/tables/31/4.1.2.table @@ -1,11 +1,11 @@ # Product discipline 2 - Land surface products -0 0 Vegetation/biomass -1 1 Agri-/aquacultural special products -2 2 Transportation-related products -3 3 Soil products -4 4 Fire weather products -5 5 Glaciers and inland ice -6 6 Urban areas -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Vegetation/biomass +1 1 Agri-/aquacultural special products +2 2 Transportation-related products +3 3 Soil products +4 4 Fire weather products +5 5 Glaciers and inland ice +6 6 Urban areas +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.20.table b/definitions/grib2/tables/31/4.1.20.table index 235ed5810..1e5472a3f 100644 --- a/definitions/grib2/tables/31/4.1.20.table +++ b/definitions/grib2/tables/31/4.1.20.table @@ -1,7 +1,7 @@ # Product discipline 20 - Health and socioeconomic impacts -0 0 Health indicators -1 1 Epidemiology -2 2 Socioeconomic indicators -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Health indicators +1 1 Epidemiology +2 2 Socioeconomic indicators +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.3.table b/definitions/grib2/tables/31/4.1.3.table index 130b899bf..35d82f440 100644 --- a/definitions/grib2/tables/31/4.1.3.table +++ b/definitions/grib2/tables/31/4.1.3.table @@ -1,11 +1,11 @@ # Product discipline 3 - Satellite remote sensing products (formerly Space products) -0 0 Image format products -1 1 Quantitative products -2 2 Cloud properties -3 3 Flight rule conditions -4 4 Volcanic ash -5 5 Sea-surface temperature -6 6 Solar radiation -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Image format products +1 1 Quantitative products +2 2 Cloud properties +3 3 Flight rule conditions +4 4 Volcanic ash +5 5 Sea-surface temperature +6 6 Solar radiation +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.1.4.table b/definitions/grib2/tables/31/4.1.4.table index 3c769dcf7..7d1378729 100644 --- a/definitions/grib2/tables/31/4.1.4.table +++ b/definitions/grib2/tables/31/4.1.4.table @@ -1,15 +1,15 @@ # Product discipline 4 - Space weather products -0 0 Temperature -1 1 Momentum -2 2 Charged particle mass and number -3 3 Electric and magnetic fields -4 4 Energetic particles -5 5 Waves -6 6 Solar electromagnetic emissions -7 7 Terrestrial electromagnetic emissions -8 8 Imagery -9 9 Ion-neutral coupling -10 10 Space weather indices -# 11-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Temperature +1 1 Momentum +2 2 Charged particle mass and number +3 3 Electric and magnetic fields +4 4 Energetic particles +5 5 Waves +6 6 Solar electromagnetic emissions +7 7 Terrestrial electromagnetic emissions +8 8 Imagery +9 9 Ion-neutral coupling +10 10 Space weather indices +# 11-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.10.table b/definitions/grib2/tables/31/4.10.table index 1eee9c096..b66560e8d 100644 --- a/definitions/grib2/tables/31/4.10.table +++ b/definitions/grib2/tables/31/4.10.table @@ -1,20 +1,20 @@ # Code table 4.10 - Type of statistical processing -0 avg Average -1 accum Accumulation -2 max Maximum -3 min Minimum -4 diff Difference (value at the end of time range minus value at the beginning) -5 rms Root mean square -6 sd Standard deviation -7 cov Covariance (temporal variance) -8 8 Difference (value at the start of time range minus value at the end) -9 ratio Ratio -10 10 Standardized anomaly -11 11 Summation -12 12 Return period -# 13-99 Reserved -100 100 Severity -101 101 Mode -# 102-191 Reserved -# 192-254 Reserved for local use -255 missing Missing +0 avg Average +1 accum Accumulation +2 max Maximum +3 min Minimum +4 diff Difference (value at the end of time range minus value at the beginning) +5 rms Root mean square +6 sd Standard deviation +7 cov Covariance (temporal variance) +8 8 Difference (value at the start of time range minus value at the end) +9 ratio Ratio +10 10 Standardized anomaly +11 11 Summation +12 12 Return period +# 13-99 Reserved +100 100 Severity +101 101 Mode +# 102-191 Reserved +# 192-254 Reserved for local use +255 missing Missing diff --git a/definitions/grib2/tables/31/4.100.table b/definitions/grib2/tables/31/4.100.table index c31865fb2..a24770d68 100644 --- a/definitions/grib2/tables/31/4.100.table +++ b/definitions/grib2/tables/31/4.100.table @@ -1,10 +1,10 @@ # Code table 4.100 - Type of reference dataset -0 0 Analysis -1 1 Forecast -2 2 Reforecast (Hindcast) -3 3 Reanalysis -4 4 Climate projection -5 5 Gridded observations -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Forecast +2 2 Reforecast (Hindcast) +3 3 Reanalysis +4 4 Climate projection +5 5 Gridded observations +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.101.table b/definitions/grib2/tables/31/4.101.table index 7b0c295f3..e65f87826 100644 --- a/definitions/grib2/tables/31/4.101.table +++ b/definitions/grib2/tables/31/4.101.table @@ -1,10 +1,10 @@ # Code table 4.101 - Type of relationship to reference dataset -0 0 Anomaly -1 1 Standardized anomaly -2 2 Significance (Wilcoxon-Mann-Whitney) -# 3-19 Reserved -20 20 Extreme Forecast Index (EFI) -21 21 Shift of Tails (SOT) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly +1 1 Standardized anomaly +2 2 Significance (Wilcoxon-Mann-Whitney) +# 3-19 Reserved +20 20 Extreme Forecast Index (EFI) +21 21 Shift of Tails (SOT) +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.102.table b/definitions/grib2/tables/31/4.102.table index e24b1bf29..ec8edebf5 100644 --- a/definitions/grib2/tables/31/4.102.table +++ b/definitions/grib2/tables/31/4.102.table @@ -1,11 +1,11 @@ # Code table 4.102 - Statistical processing of reference period -0 0 Average -1 1 Accumulation -2 2 Maximum -3 3 Minimum -4 4 Median -# 5-19 Reserved -20 20 Model Climate -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Average +1 1 Accumulation +2 2 Maximum +3 3 Minimum +4 4 Median +# 5-19 Reserved +20 20 Model Climate +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.11.table b/definitions/grib2/tables/31/4.11.table index 7f404c849..01cc81303 100644 --- a/definitions/grib2/tables/31/4.11.table +++ b/definitions/grib2/tables/31/4.11.table @@ -1,10 +1,10 @@ # Code table 4.11 - Type of time intervals -0 0 Reserved -1 1 Successive times processed have same forecast time, start time of forecast is incremented -2 2 Successive times processed have same start time of forecast, forecast time is incremented -3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant -4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant -5 5 Floating subinterval of time between forecast time and end of overall time interval -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Successive times processed have same forecast time, start time of forecast is incremented +2 2 Successive times processed have same start time of forecast, forecast time is incremented +3 3 Successive times processed have start time of forecast incremented and forecast time decremented so that valid time remains constant +4 4 Successive times processed have start time of forecast decremented and forecast time incremented so that valid time remains constant +5 5 Floating subinterval of time between forecast time and end of overall time interval +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.12.table b/definitions/grib2/tables/31/4.12.table index 03fd89b36..d42b47e96 100644 --- a/definitions/grib2/tables/31/4.12.table +++ b/definitions/grib2/tables/31/4.12.table @@ -1,7 +1,7 @@ # Code table 4.12 - Operating mode -0 0 Maintenance mode -1 1 Clear air -2 2 Precipitation -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Maintenance mode +1 1 Clear air +2 2 Precipitation +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.13.table b/definitions/grib2/tables/31/4.13.table index c92854eec..a0e28eac8 100644 --- a/definitions/grib2/tables/31/4.13.table +++ b/definitions/grib2/tables/31/4.13.table @@ -1,6 +1,6 @@ # Code table 4.13 - Quality control indicator -0 0 No quality control applied -1 1 Quality control applied -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality control applied +1 1 Quality control applied +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.14.table b/definitions/grib2/tables/31/4.14.table index a88cb93fa..d525b23b3 100644 --- a/definitions/grib2/tables/31/4.14.table +++ b/definitions/grib2/tables/31/4.14.table @@ -1,6 +1,6 @@ # Code table 4.14 - Clutter filter indicator -0 0 No clutter filter used -1 1 Clutter filter used -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No clutter filter used +1 1 Clutter filter used +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.15.table b/definitions/grib2/tables/31/4.15.table index 2e5f3dea3..7adddedb6 100644 --- a/definitions/grib2/tables/31/4.15.table +++ b/definitions/grib2/tables/31/4.15.table @@ -1,11 +1,11 @@ # Code table 4.15 - Type of spatial processing used to arrive at given data value from the source data -0 0 Data is calculated directly from the source grid with no interpolation -1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point -4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Data is calculated directly from the source grid with no interpolation +1 1 Bilinear interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +2 2 Bicubic interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +3 3 Using the value from the source grid grid-point which is nearest to the nominal grid-point +4 4 Budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +5 5 Spectral interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +6 6 Neighbor-budget interpolation using the 4 source grid grid-point values surrounding the nominal grid-point +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.16.table b/definitions/grib2/tables/31/4.16.table index fedb05324..5b9f6fd73 100644 --- a/definitions/grib2/tables/31/4.16.table +++ b/definitions/grib2/tables/31/4.16.table @@ -1,10 +1,10 @@ # Code table 4.16 - Quality value associated with parameter -0 0 Confidence index -1 1 Quality indicator -2 2 Correlation of product with used calibration product -3 3 Standard deviation -4 4 Random error -5 5 Probability -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Confidence index +1 1 Quality indicator +2 2 Correlation of product with used calibration product +3 3 Standard deviation +4 4 Random error +5 5 Probability +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.0.table b/definitions/grib2/tables/31/4.2.0.0.table index a2dff3668..e4912c9d6 100644 --- a/definitions/grib2/tables/31/4.2.0.0.table +++ b/definitions/grib2/tables/31/4.2.0.0.table @@ -32,6 +32,6 @@ 30 30 Latent heat net flux due to evaporation (W m-2) 31 31 Latent heat net flux due to sublimation (W m-2) 32 32 Wet-bulb potential temperature (K) -# 33-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 33-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.1.table b/definitions/grib2/tables/31/4.2.0.1.table index 85bc9fb64..03473003a 100644 --- a/definitions/grib2/tables/31/4.2.0.1.table +++ b/definitions/grib2/tables/31/4.2.0.1.table @@ -62,7 +62,7 @@ 60 60 Snow depth water equivalent (kg m-2) 61 61 Snow density (kg m-3) 62 62 Snow evaporation (kg m-2) -63 63 Reserved +63 63 Reserved 64 64 Total column integrated water vapour (kg m-2) 65 65 Rain precipitation rate (kg m-2 s-1) 66 66 Snow precipitation rate (kg m-2 s-1) @@ -167,6 +167,6 @@ 165 165 Column integrated divergence of total water mass flux (kg m-2 s-1) 166 166 Column integrated water vapour flux (kg m-2 s-1) 167 167 Total column supercooled liquid water (kg m-2) -# 168-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 168-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.13.table b/definitions/grib2/tables/31/4.2.0.13.table index fc7344d7e..4c1253b96 100644 --- a/definitions/grib2/tables/31/4.2.0.13.table +++ b/definitions/grib2/tables/31/4.2.0.13.table @@ -1,5 +1,5 @@ # Product discipline 0 - Meteorological products, parameter category 13: aerosols 0 0 Aerosol type (Code table 4.205) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.14.table b/definitions/grib2/tables/31/4.2.0.14.table index 87f1db9a2..df0f721ea 100644 --- a/definitions/grib2/tables/31/4.2.0.14.table +++ b/definitions/grib2/tables/31/4.2.0.14.table @@ -2,6 +2,6 @@ 0 0 Total ozone (DU) 1 1 Ozone mixing ratio (kg/kg) 2 2 Total column integrated ozone (DU) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.15.table b/definitions/grib2/tables/31/4.2.0.15.table index 02d0fcbf3..ac49ad402 100644 --- a/definitions/grib2/tables/31/4.2.0.15.table +++ b/definitions/grib2/tables/31/4.2.0.15.table @@ -16,6 +16,6 @@ 14 14 Reflectivity of hail (dB) 15 15 Hybrid scan reflectivity (dB) 16 16 Hybrid scan reflectivity height (m) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.16.table b/definitions/grib2/tables/31/4.2.0.16.table index faaa32d16..111e6d986 100644 --- a/definitions/grib2/tables/31/4.2.0.16.table +++ b/definitions/grib2/tables/31/4.2.0.16.table @@ -5,6 +5,6 @@ 3 3 Echo top (m) 4 4 Reflectivity (dB) 5 5 Composite reflectivity (dB) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.18.table b/definitions/grib2/tables/31/4.2.0.18.table index fe2dac3dc..9d527a828 100644 --- a/definitions/grib2/tables/31/4.2.0.18.table +++ b/definitions/grib2/tables/31/4.2.0.18.table @@ -8,7 +8,7 @@ 6 6 Time-integrated air concentration of caesium pollutant (Bq s m-3) 7 7 Time-integrated air concentration of iodine pollutant (Bq s m-3) 8 8 Time-integrated air concentration of radioactive pollutant (Bq s m-3) -9 9 Reserved +9 9 Reserved 10 10 Air concentration (Bq m-3) 11 11 Wet deposition (Bq m-2) 12 12 Dry deposition (Bq m-2) @@ -18,6 +18,6 @@ 16 16 Height of maximum air concentration (m) 17 17 Column-integrated air concentration (Bq m-2) 18 18 Column-averaged air concentration in layer (Bq m-3) -# 19-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 19-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.19.table b/definitions/grib2/tables/31/4.2.0.19.table index b6b71b358..1289ba487 100644 --- a/definitions/grib2/tables/31/4.2.0.19.table +++ b/definitions/grib2/tables/31/4.2.0.19.table @@ -45,6 +45,6 @@ 43 43 Trapping layer top height (m) 44 44 Mean vertical gradient of refractivity inside trapping layer (m-1) 45 45 Minimum vertical gradient of refractivity inside trapping layer (m-1) -# 46-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 46-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.190.table b/definitions/grib2/tables/31/4.2.0.190.table index e5d6618cf..dfe39840d 100644 --- a/definitions/grib2/tables/31/4.2.0.190.table +++ b/definitions/grib2/tables/31/4.2.0.190.table @@ -1,5 +1,5 @@ # Product discipline 0 - Meteorological products, parameter category 190: CCITT IA5 string 0 0 Arbitrary text string (CCITT IA5) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.191.table b/definitions/grib2/tables/31/4.2.0.191.table index d375dbd4a..abc386331 100644 --- a/definitions/grib2/tables/31/4.2.0.191.table +++ b/definitions/grib2/tables/31/4.2.0.191.table @@ -3,6 +3,6 @@ 1 1 Geographical latitude (deg N) 2 2 Geographical longitude (deg E) 3 3 Days since last observation (d) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.2.table b/definitions/grib2/tables/31/4.2.0.2.table index ae4d43c52..690021d70 100644 --- a/definitions/grib2/tables/31/4.2.0.2.table +++ b/definitions/grib2/tables/31/4.2.0.2.table @@ -58,6 +58,6 @@ 56 56 u-component of neutral wind (m s-1) 57 57 v-component of neutral wind (m s-1) 58 58 Magnitude of turbulent surface stress (N m-2) -# 59-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 59-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.20.table b/definitions/grib2/tables/31/4.2.0.20.table index 9af93ae48..7855a8618 100644 --- a/definitions/grib2/tables/31/4.2.0.20.table +++ b/definitions/grib2/tables/31/4.2.0.20.table @@ -18,7 +18,7 @@ 16 16 Mass mixing ratio with respect to dry air (kg/kg) 17 17 Mass mixing ratio with respect to wet air (kg/kg) 18 18 Potential of hydrogen (pH) (pH) -# 19-49 Reserved +# 19-49 Reserved 50 50 Amount in atmosphere (mol) 51 51 Concentration in air (mol m-3) 52 52 Volume mixing ratio (fraction in air) (mol/mol) @@ -51,7 +51,7 @@ 79 79 Column integrated northward mass flux (kg m-1 s-1) 80 80 Column integrated divergence of mass flux (kg m-2 s-1) 81 81 Column integrated net source (kg m-2 s-1) -# 82-99 Reserved +# 82-99 Reserved 100 100 Surface area density (aerosol) (/m) 101 101 Vertical visual range (m) 102 102 Aerosol optical thickness (Numeric) @@ -64,6 +64,6 @@ 109 109 Aerosol lidar extinction from satellite (/m) 110 110 Aerosol lidar extinction from the ground (/m) 111 111 Angstrom exponent (Numeric) -# 112-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 112-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.21.table b/definitions/grib2/tables/31/4.2.0.21.table index 2734355b0..50a2e3468 100644 --- a/definitions/grib2/tables/31/4.2.0.21.table +++ b/definitions/grib2/tables/31/4.2.0.21.table @@ -21,6 +21,6 @@ 19 19 Column integrated eastward heat flux (W m-1) 20 20 Column integrated northward heat flux (W m-1) 21 21 Column integrated potential+internal+latent energy (J m-2) -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.3.table b/definitions/grib2/tables/31/4.2.0.3.table index 5ccadabf8..09c5eef4f 100644 --- a/definitions/grib2/tables/31/4.2.0.3.table +++ b/definitions/grib2/tables/31/4.2.0.3.table @@ -45,6 +45,6 @@ 43 43 Column integrated divergence of geopotential flux (W m-2) 44 44 Height of zero-degree wet-bulb temperature (m) 45 45 Height of one-degree wet-bulb temperature (m) -# 46-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 46-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.4.table b/definitions/grib2/tables/31/4.2.0.4.table index f6a225a8f..88c24ae52 100644 --- a/definitions/grib2/tables/31/4.2.0.4.table +++ b/definitions/grib2/tables/31/4.2.0.4.table @@ -15,7 +15,7 @@ 13 13 Direct short-wave radiation flux (W m-2) 14 14 Diffuse short-wave radiation flux (W m-2) 15 15 Upward UV radiation emitted/reflected from the Earth's surface (W m-2) -# 16-49 Reserved +# 16-49 Reserved 50 50 UV index (under clear sky) (Numeric) 51 51 UV index (Numeric) 52 52 Downward short-wave radiation flux, clear sky (W m-2) @@ -28,6 +28,6 @@ 59 59 UV visible albedo for direct radiation, volumetric component (%) 60 60 Photosynthetically active radiation flux, clear sky (W m-2) 61 61 Direct short-wave radiation flux, clear sky (W m-2) -# 62-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 62-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.5.table b/definitions/grib2/tables/31/4.2.0.5.table index cadb20762..7065106a2 100644 --- a/definitions/grib2/tables/31/4.2.0.5.table +++ b/definitions/grib2/tables/31/4.2.0.5.table @@ -13,6 +13,6 @@ 11 11 Near IR albedo for direct radiation, geometric component (%) 12 12 Near IR albedo for direct radiation, isotropic component (%) 13 13 Near IR albedo for direct radiation, volumetric component (%) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.6.table b/definitions/grib2/tables/31/4.2.0.6.table index 46f5a7684..d831f3474 100644 --- a/definitions/grib2/tables/31/4.2.0.6.table +++ b/definitions/grib2/tables/31/4.2.0.6.table @@ -40,12 +40,12 @@ 38 38 Mass density of cloud droplets (kg m-3) 39 39 Mass density of cloud ice (kg m-3) 40 40 Mass density of convective cloud water droplets (kg m-3) -# 41-46 Reserved +# 41-46 Reserved 47 47 Volume fraction of cloud water droplets (Numeric) 48 48 Volume fraction of cloud ice particles (Numeric) 49 49 Volume fraction of cloud (ice and/or water) (Numeric) 50 50 Fog (%) 51 51 Sunshine duration fraction (Proportion) -# 52-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 52-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.0.7.table b/definitions/grib2/tables/31/4.2.0.7.table index 93d4d1335..15acb1857 100644 --- a/definitions/grib2/tables/31/4.2.0.7.table +++ b/definitions/grib2/tables/31/4.2.0.7.table @@ -13,13 +13,13 @@ 11 11 Best (4-layer) lifted index (K) 12 12 Richardson number (Numeric) 13 13 Showalter index (K) -14 14 Reserved +14 14 Reserved 15 15 Updraught helicity (m2 s-2) 16 16 Bulk Richardson number (Numeric) 17 17 Gradient Richardson number (Numeric) 18 18 Flux Richardson number (Numeric) 19 19 Convective available potential energy - shear (m2 s-2) 20 20 Thunderstorm intensity index (Code table 4.246) -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.1.0.table b/definitions/grib2/tables/31/4.2.1.0.table index 0ce4b8fc4..6204a22ae 100644 --- a/definitions/grib2/tables/31/4.2.1.0.table +++ b/definitions/grib2/tables/31/4.2.1.0.table @@ -16,6 +16,6 @@ 14 14 Upstream accumulated precipitation (kg m-2) 15 15 Upstream accumulated snow melt (kg m-2) 16 16 Percolation rate (kg m-2 s-1) -# 17-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 17-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.1.1.table b/definitions/grib2/tables/31/4.2.1.1.table index ede9a3a72..e3931d5e6 100644 --- a/definitions/grib2/tables/31/4.2.1.1.table +++ b/definitions/grib2/tables/31/4.2.1.1.table @@ -2,6 +2,6 @@ 0 0 Conditional per cent precipitation amount fractile for an overall period (Encoded as an accumulation) (kg m-2) 1 1 Per cent precipitation in a sub-period of an overall period (Encoded as per cent accumulation over the sub-period) (%) 2 2 Probability of 0.01 inch of precipitation (POP) (%) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.1.2.table b/definitions/grib2/tables/31/4.2.1.2.table index 97f062dbc..bd7276cfe 100644 --- a/definitions/grib2/tables/31/4.2.1.2.table +++ b/definitions/grib2/tables/31/4.2.1.2.table @@ -14,6 +14,6 @@ 12 12 Salinity (kg/kg) 13 13 Cross-sectional area of flow in channel (m2) 14 14 Snow temperature (K) -# 15-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 15-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.0.table b/definitions/grib2/tables/31/4.2.10.0.table index 07a91363f..e1db2d3f1 100644 --- a/definitions/grib2/tables/31/4.2.10.0.table +++ b/definitions/grib2/tables/31/4.2.10.0.table @@ -92,6 +92,6 @@ 90 90 u-component of surface momentum flux into ocean (N m-2) 91 91 v-component of surface momentum flux into ocean (N m-2) 92 92 Wave turbulent energy flux into ocean (W m-2) -# 93-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 93-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.1.table b/definitions/grib2/tables/31/4.2.10.1.table index bcdbbc793..aeec67455 100644 --- a/definitions/grib2/tables/31/4.2.10.1.table +++ b/definitions/grib2/tables/31/4.2.10.1.table @@ -6,6 +6,6 @@ 4 4 Rip current occurrence probability (%) 5 5 Eastward current (m s-1) 6 6 Northward current (m s-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.191.table b/definitions/grib2/tables/31/4.2.10.191.table index bda676c83..cd4d4cde7 100644 --- a/definitions/grib2/tables/31/4.2.10.191.table +++ b/definitions/grib2/tables/31/4.2.10.191.table @@ -1,9 +1,9 @@ # Product discipline 10 - Oceanographic products, parameter category 191: miscellaneous 0 0 Seconds prior to initial reference time (defined in Section 1) (s) 1 1 Meridional overturning stream function (m3/s) -2 2 Reserved +2 2 Reserved 3 3 Days since last observation (d) 4 4 Barotropic stream function (m3 s-1) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.2.table b/definitions/grib2/tables/31/4.2.10.2.table index 1591ed64e..5612159ef 100644 --- a/definitions/grib2/tables/31/4.2.10.2.table +++ b/definitions/grib2/tables/31/4.2.10.2.table @@ -23,6 +23,6 @@ 21 21 Ice melt pond depth (m) 22 22 Ice melt pond volume per unit area (m3 m-2) 23 23 Sea ice fraction tendency due to parameterization (s-1) -# 24-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 24-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.3.table b/definitions/grib2/tables/31/4.2.10.3.table index 14481d01f..eb699c929 100644 --- a/definitions/grib2/tables/31/4.2.10.3.table +++ b/definitions/grib2/tables/31/4.2.10.3.table @@ -20,6 +20,6 @@ 18 18 Heat flux correction (W m-2) 19 19 Sea surface height tendency due to parameterization (m s-1) 20 20 Deviation of sea level from mean with inverse barometer correction (m) -# 21-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 21-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.10.4.table b/definitions/grib2/tables/31/4.2.10.4.table index 2da0b9807..34d578988 100644 --- a/definitions/grib2/tables/31/4.2.10.4.table +++ b/definitions/grib2/tables/31/4.2.10.4.table @@ -7,7 +7,7 @@ 5 5 Ocean vertical salt diffusivity (m2/s) 6 6 Ocean vertical momentum diffusivity (m2/s) 7 7 Bathymetry (m) -# 8-10 Reserved +# 8-10 Reserved 11 11 Shape factor with respect to salinity profile (-) 12 12 Shape factor with respect to temperature profile in thermocline (-) 13 13 Attenuation coefficient of water with respect to solar radiation (/m) @@ -39,6 +39,6 @@ 39 39 Northward sea water velocity tendency due to parameterization (m-2 s-1) 40 40 Sea water temperature tendency due to direct bias correction (K s-1) 41 41 Sea water salinity tendency due to direct bias correction (g kg-1 s-1) -# 42-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 42-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.2.0.table b/definitions/grib2/tables/31/4.2.2.0.table index b01d681c7..cfad864d0 100644 --- a/definitions/grib2/tables/31/4.2.2.0.table +++ b/definitions/grib2/tables/31/4.2.2.0.table @@ -61,6 +61,6 @@ 59 59 Net ecosystem exchange flux (kg m-2 s-1) 60 60 Gross primary production flux (kg m-2 s-1) 61 61 Ecosystem respiration flux (kg m-2 s-1) -# 62-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 62-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.2.3.table b/definitions/grib2/tables/31/4.2.2.3.table index 5eb7c4d02..4e2187a5b 100644 --- a/definitions/grib2/tables/31/4.2.2.3.table +++ b/definitions/grib2/tables/31/4.2.2.3.table @@ -29,6 +29,6 @@ 27 27 Soil depth (m) 28 28 Snow temperature (K) 29 29 Ice temperature (K) -# 30-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 30-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.2.4.table b/definitions/grib2/tables/31/4.2.2.4.table index d7d107416..98aa7b6d5 100644 --- a/definitions/grib2/tables/31/4.2.2.4.table +++ b/definitions/grib2/tables/31/4.2.2.4.table @@ -26,6 +26,6 @@ 24 24 Combustion completeness (%) 25 25 Fuel moisture content (kg kg-1) 26 26 Wildfire potential (as defined by the US NOAA Global Systems Laboratory) (Numeric) -# 27-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 27-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.2.5.table b/definitions/grib2/tables/31/4.2.2.5.table index 7e87927b1..1d08dd573 100644 --- a/definitions/grib2/tables/31/4.2.2.5.table +++ b/definitions/grib2/tables/31/4.2.2.5.table @@ -1,6 +1,6 @@ # Product discipline 2 - Land surface products, parameter category 5: glaciers and inland ice 0 0 Glacier cover (Proportion) 1 1 Glacier temperature (K) -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.2.6.table b/definitions/grib2/tables/31/4.2.2.6.table index a2ba47cb2..b0e37883a 100644 --- a/definitions/grib2/tables/31/4.2.2.6.table +++ b/definitions/grib2/tables/31/4.2.2.6.table @@ -5,6 +5,6 @@ 3 3 Building height (m) 4 4 Vertical-to-horizontal area fraction (m2 m-2) 5 5 Standard deviation of building height (m) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.20.0.table b/definitions/grib2/tables/31/4.2.20.0.table index 64ce0f01c..a997371d9 100644 --- a/definitions/grib2/tables/31/4.2.20.0.table +++ b/definitions/grib2/tables/31/4.2.20.0.table @@ -8,6 +8,6 @@ 6 6 Normal effective temperature (K) 7 7 Standard effective temperature (K) 8 8 Physiological equivalent temperature (K) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.20.1.table b/definitions/grib2/tables/31/4.2.20.1.table index c4c87d4ad..0712cd8d1 100644 --- a/definitions/grib2/tables/31/4.2.20.1.table +++ b/definitions/grib2/tables/31/4.2.20.1.table @@ -9,6 +9,6 @@ 7 7 Anopheles vector to host ratio (Fraction) 8 8 Anopheles vector number (Number m-2) 9 9 Fraction of malarial vector reproductive habitat (Fraction) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.20.2.table b/definitions/grib2/tables/31/4.2.20.2.table index 3c3563ac0..d6b9083d1 100644 --- a/definitions/grib2/tables/31/4.2.20.2.table +++ b/definitions/grib2/tables/31/4.2.20.2.table @@ -1,5 +1,5 @@ # Product discipline 20 - Health and socioeconomic impacts, parameter category 2: socioeconomic indicators 0 0 Population density (Person m-2) -# 1-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 1-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.3.0.table b/definitions/grib2/tables/31/4.2.3.0.table index fd75ee1b8..0bec15119 100644 --- a/definitions/grib2/tables/31/4.2.3.0.table +++ b/definitions/grib2/tables/31/4.2.3.0.table @@ -9,6 +9,6 @@ 7 7 Cloud mask (Code table 4.217) 8 8 Pixel scene type (Code table 4.218) 9 9 Fire detection indicator (Code table 4.223) -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.3.1.table b/definitions/grib2/tables/31/4.2.3.1.table index ad568321d..df3ea372d 100644 --- a/definitions/grib2/tables/31/4.2.3.1.table +++ b/definitions/grib2/tables/31/4.2.3.1.table @@ -17,20 +17,20 @@ 15 15 Clear-sky brightness temperature (K) 16 16 Cloudy radiance (with respect to wave number) (W m-1 sr-1) 17 17 Clear-sky radiance (with respect to wave number) (W m-1 sr-1) -18 18 Reserved +18 18 Reserved 19 19 Wind speed (m/s) -20 20 Aerosol optical thickness at 0.635 um -21 21 Aerosol optical thickness at 0.810 um -22 22 Aerosol optical thickness at 1.640 um -23 23 Angstrom coefficient -# 24-26 Reserved +20 20 Aerosol optical thickness at 0.635 um +21 21 Aerosol optical thickness at 0.810 um +22 22 Aerosol optical thickness at 1.640 um +23 23 Angstrom coefficient +# 24-26 Reserved 27 27 Bidirectional reflectance factor (Numeric) 28 28 Brightness temperature (K) 29 29 Scaled radiance (Numeric) 30 30 Reflectance in 0.4 micron channel (%) -# 31-97 Reserved +# 31-97 Reserved 98 98 Correlation coefficient between MPE rain-rates for the co-located IR data and the microwave data rain-rates (Numeric) 99 99 Standard deviation between MPE rain-rates for the co-located IR data and the microwave data rain-rates (kg m-2 s-1) -# 100-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 100-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.0.table b/definitions/grib2/tables/31/4.2.4.0.table index 1a9318430..337308305 100644 --- a/definitions/grib2/tables/31/4.2.4.0.table +++ b/definitions/grib2/tables/31/4.2.4.0.table @@ -5,6 +5,6 @@ 3 3 Ion temperature (K) 4 4 Parallel temperature (K) 5 5 Perpendicular temperature (K) -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.1.table b/definitions/grib2/tables/31/4.2.4.1.table index ba2d09db8..9ec11160f 100644 --- a/definitions/grib2/tables/31/4.2.4.1.table +++ b/definitions/grib2/tables/31/4.2.4.1.table @@ -3,6 +3,6 @@ 1 1 1st vector component of velocity (coordinate system dependent) (m s-1) 2 2 2nd vector component of velocity (coordinate system dependent) (m s-1) 3 3 3rd vector component of velocity (coordinate system dependent) (m s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.10.table b/definitions/grib2/tables/31/4.2.4.10.table index fd9b2db49..8f5b19e06 100644 --- a/definitions/grib2/tables/31/4.2.4.10.table +++ b/definitions/grib2/tables/31/4.2.4.10.table @@ -7,6 +7,6 @@ 5 5 Kp (Numeric) 6 6 Equatorial disturbance storm time index (Dst) (nT) 7 7 Auroral electrojet (AE) (nT) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.2.table b/definitions/grib2/tables/31/4.2.4.2.table index 90a94d23d..b479b3361 100644 --- a/definitions/grib2/tables/31/4.2.4.2.table +++ b/definitions/grib2/tables/31/4.2.4.2.table @@ -13,6 +13,6 @@ 11 11 Peak height (hm) (m) 12 12 Peak density (Nm) (m-3) 13 13 Equivalent slab thickness (tau) (km) -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.3.table b/definitions/grib2/tables/31/4.2.4.3.table index aabee3d3a..3b752bbbc 100644 --- a/definitions/grib2/tables/31/4.2.4.3.table +++ b/definitions/grib2/tables/31/4.2.4.3.table @@ -7,6 +7,6 @@ 5 5 1st vector component of electric field (V m-1) 6 6 2nd vector component of electric field (V m-1) 7 7 3rd vector component of electric field (V m-1) -# 8-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 8-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.4.table b/definitions/grib2/tables/31/4.2.4.4.table index b54568ce4..694c8cacc 100644 --- a/definitions/grib2/tables/31/4.2.4.4.table +++ b/definitions/grib2/tables/31/4.2.4.4.table @@ -6,6 +6,6 @@ 4 4 Heavy ion flux (differential) ((m2 s sr eV/nuc)-1) 5 5 Heavy ion flux (integral) ((m2 s sr)-1) 6 6 Cosmic ray neutron flux (h-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.5.table b/definitions/grib2/tables/31/4.2.4.5.table index 93bfa1d01..913efec6f 100644 --- a/definitions/grib2/tables/31/4.2.4.5.table +++ b/definitions/grib2/tables/31/4.2.4.5.table @@ -3,6 +3,6 @@ 1 1 Phase (rad) 2 2 Frequency (Hz) 3 3 Wavelength (m) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.6.table b/definitions/grib2/tables/31/4.2.4.6.table index 92bdcb92c..6d13019a6 100644 --- a/definitions/grib2/tables/31/4.2.4.6.table +++ b/definitions/grib2/tables/31/4.2.4.6.table @@ -6,6 +6,6 @@ 4 4 Solar spectral irradiance (W m-2 nm-1) 5 5 F10.7 (W m-2 Hz-1) 6 6 Solar radio emissions (W m-2 Hz-1) -# 7-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 7-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.7.table b/definitions/grib2/tables/31/4.2.4.7.table index da779d098..38c2b17a8 100644 --- a/definitions/grib2/tables/31/4.2.4.7.table +++ b/definitions/grib2/tables/31/4.2.4.7.table @@ -3,6 +3,6 @@ 1 1 Disk intensity (J m-2 s-1) 2 2 Disk intensity day (J m-2 s-1) 3 3 Disk intensity night (J m-2 s-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.8.table b/definitions/grib2/tables/31/4.2.4.8.table index fd2227ccd..f350f4807 100644 --- a/definitions/grib2/tables/31/4.2.4.8.table +++ b/definitions/grib2/tables/31/4.2.4.8.table @@ -8,6 +8,6 @@ 6 6 Heliospheric radiance (W sr-1 m-2) 7 7 Thematic mask (Numeric) 8 8 Solar induced chlorophyll fluorescence (W m-2 sr-1 m-1) -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.2.4.9.table b/definitions/grib2/tables/31/4.2.4.9.table index 9c4e93ec7..0e83436e2 100644 --- a/definitions/grib2/tables/31/4.2.4.9.table +++ b/definitions/grib2/tables/31/4.2.4.9.table @@ -2,6 +2,6 @@ 0 0 Pedersen conductivity (S m-1) 1 1 Hall conductivity (S m-1) 2 2 Parallel conductivity (S m-1) -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.201.table b/definitions/grib2/tables/31/4.201.table index 49fe27c85..a725e4e65 100644 --- a/definitions/grib2/tables/31/4.201.table +++ b/definitions/grib2/tables/31/4.201.table @@ -1,17 +1,17 @@ # Code table 4.201 - Precipitation type -0 0 No precipitation -1 1 Rain -2 2 Thunderstorm -3 3 Freezing rain -4 4 Mixed/ice -5 5 Snow -6 6 Wet snow -7 7 Mixture of rain and snow -8 8 Ice pellets -9 9 Graupel -10 10 Hail -11 11 Drizzle -12 12 Freezing drizzle -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No precipitation +1 1 Rain +2 2 Thunderstorm +3 3 Freezing rain +4 4 Mixed/ice +5 5 Snow +6 6 Wet snow +7 7 Mixture of rain and snow +8 8 Ice pellets +9 9 Graupel +10 10 Hail +11 11 Drizzle +12 12 Freezing drizzle +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.202.table b/definitions/grib2/tables/31/4.202.table index 438502ff9..7f3c8f6cf 100644 --- a/definitions/grib2/tables/31/4.202.table +++ b/definitions/grib2/tables/31/4.202.table @@ -1,4 +1,4 @@ # Code table 4.202 - Precipitable water category -# 0-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +# 0-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.203.table b/definitions/grib2/tables/31/4.203.table index 8a9aedf7a..cf5eb6bdc 100644 --- a/definitions/grib2/tables/31/4.203.table +++ b/definitions/grib2/tables/31/4.203.table @@ -1,26 +1,26 @@ # Code table 4.203 - Cloud type -0 0 Clear -1 1 Cumulonimbus -2 2 Stratus -3 3 Stratocumulus -4 4 Cumulus -5 5 Altostratus -6 6 Nimbostratus -7 7 Altocumulus -8 8 Cirrostratus -9 9 Cirrocumulus -10 10 Cirrus -11 11 Cumulonimbus - ground-based fog beneath the lowest layer -12 12 Stratus - ground-based fog beneath the lowest layer -13 13 Stratocumulus - ground-based fog beneath the lowest layer -14 14 Cumulus - ground-based fog beneath the lowest layer -15 15 Altostratus - ground-based fog beneath the lowest layer -16 16 Nimbostratus - ground-based fog beneath the lowest layer -17 17 Altocumulus - ground-based fog beneath the lowest layer -18 18 Cirrostratus - ground-based fog beneath the lowest layer -19 19 Cirrocumulus - ground-based fog beneath the lowest layer -20 20 Cirrus - ground-based fog beneath the lowest layer -# 21-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear +1 1 Cumulonimbus +2 2 Stratus +3 3 Stratocumulus +4 4 Cumulus +5 5 Altostratus +6 6 Nimbostratus +7 7 Altocumulus +8 8 Cirrostratus +9 9 Cirrocumulus +10 10 Cirrus +11 11 Cumulonimbus - ground-based fog beneath the lowest layer +12 12 Stratus - ground-based fog beneath the lowest layer +13 13 Stratocumulus - ground-based fog beneath the lowest layer +14 14 Cumulus - ground-based fog beneath the lowest layer +15 15 Altostratus - ground-based fog beneath the lowest layer +16 16 Nimbostratus - ground-based fog beneath the lowest layer +17 17 Altocumulus - ground-based fog beneath the lowest layer +18 18 Cirrostratus - ground-based fog beneath the lowest layer +19 19 Cirrocumulus - ground-based fog beneath the lowest layer +20 20 Cirrus - ground-based fog beneath the lowest layer +# 21-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.204.table b/definitions/grib2/tables/31/4.204.table index 481372936..8e0be1f8c 100644 --- a/definitions/grib2/tables/31/4.204.table +++ b/definitions/grib2/tables/31/4.204.table @@ -1,9 +1,9 @@ # Code table 4.204 - Thunderstorm coverage -0 0 None -1 1 Isolated (1-2%) -2 2 Few (3-5%) -3 3 Scattered (6-45%) -4 4 Numerous (> 45%) -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Isolated (1-2%) +2 2 Few (3-5%) +3 3 Scattered (6-45%) +4 4 Numerous (> 45%) +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.205.table b/definitions/grib2/tables/31/4.205.table index 5b4484dfd..c40c7f47b 100644 --- a/definitions/grib2/tables/31/4.205.table +++ b/definitions/grib2/tables/31/4.205.table @@ -1,6 +1,6 @@ # Code table 4.205 - Presence of aerosol -0 0 Aerosol not present -1 1 Aerosol present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Aerosol not present +1 1 Aerosol present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.206.table b/definitions/grib2/tables/31/4.206.table index 02c3dfdf9..76472c261 100644 --- a/definitions/grib2/tables/31/4.206.table +++ b/definitions/grib2/tables/31/4.206.table @@ -1,6 +1,6 @@ # Code table 4.206 - Volcanic ash -0 0 Not present -1 1 Present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not present +1 1 Present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.207.table b/definitions/grib2/tables/31/4.207.table index 8ddb2e048..b6392fca0 100644 --- a/definitions/grib2/tables/31/4.207.table +++ b/definitions/grib2/tables/31/4.207.table @@ -1,10 +1,10 @@ # Code table 4.207 - Icing -0 0 None -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Trace -5 5 Heavy -# 6-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Trace +5 5 Heavy +# 6-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.208.table b/definitions/grib2/tables/31/4.208.table index b83685a1a..4361d38c0 100644 --- a/definitions/grib2/tables/31/4.208.table +++ b/definitions/grib2/tables/31/4.208.table @@ -1,9 +1,9 @@ # Code table 4.208 - Turbulence -0 0 None (smooth) -1 1 Light -2 2 Moderate -3 3 Severe -4 4 Extreme -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 None (smooth) +1 1 Light +2 2 Moderate +3 3 Severe +4 4 Extreme +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.209.table b/definitions/grib2/tables/31/4.209.table index cb7617071..39ea549ac 100644 --- a/definitions/grib2/tables/31/4.209.table +++ b/definitions/grib2/tables/31/4.209.table @@ -1,9 +1,9 @@ # Code table 4.209 - Planetary boundary-layer regime -0 0 Reserved -1 1 Stable -2 2 Mechanically driven turbulence -3 3 Forced convection -4 4 Free convection -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Stable +2 2 Mechanically driven turbulence +3 3 Forced convection +4 4 Free convection +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.210.table b/definitions/grib2/tables/31/4.210.table index 524a6ca73..791878469 100644 --- a/definitions/grib2/tables/31/4.210.table +++ b/definitions/grib2/tables/31/4.210.table @@ -1,6 +1,6 @@ # Code table 4.210 - Contrail intensity -0 0 Contrail not present -1 1 Contrail present -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Contrail not present +1 1 Contrail present +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.211.table b/definitions/grib2/tables/31/4.211.table index 098eb2d43..2a28a84d9 100644 --- a/definitions/grib2/tables/31/4.211.table +++ b/definitions/grib2/tables/31/4.211.table @@ -1,7 +1,7 @@ # Code table 4.211 - Contrail engine type -0 0 Low bypass -1 1 High bypass -2 2 Non-bypass -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Low bypass +1 1 High bypass +2 2 Non-bypass +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.212.table b/definitions/grib2/tables/31/4.212.table index 1a085b88d..6a3dcf88c 100644 --- a/definitions/grib2/tables/31/4.212.table +++ b/definitions/grib2/tables/31/4.212.table @@ -1,18 +1,18 @@ # Code table 4.212 - Land use -0 0 Reserved -1 1 Urban land -2 2 Agriculture -3 3 Range land -4 4 Deciduous forest -5 5 Coniferous forest -6 6 Forest/wetland -7 7 Water -8 8 Wetlands -9 9 Desert -10 10 Tundra -11 11 Ice -12 12 Tropical forest -13 13 Savannah -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Urban land +2 2 Agriculture +3 3 Range land +4 4 Deciduous forest +5 5 Coniferous forest +6 6 Forest/wetland +7 7 Water +8 8 Wetlands +9 9 Desert +10 10 Tundra +11 11 Ice +12 12 Tropical forest +13 13 Savannah +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.213.table b/definitions/grib2/tables/31/4.213.table index c65784a00..68d627af6 100644 --- a/definitions/grib2/tables/31/4.213.table +++ b/definitions/grib2/tables/31/4.213.table @@ -1,16 +1,16 @@ # Code table 4.213 - Soil type -0 0 Reserved -1 1 Sand -2 2 Loamy sand -3 3 Sandy loam -4 4 Silt loam -5 5 Organic (redefined) -6 6 Sandy clay loam -7 7 Silt clay loam -8 8 Clay loam -9 9 Sandy clay -10 10 Silty clay -11 11 Clay -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Sand +2 2 Loamy sand +3 3 Sandy loam +4 4 Silt loam +5 5 Organic (redefined) +6 6 Sandy clay loam +7 7 Silt clay loam +8 8 Clay loam +9 9 Sandy clay +10 10 Silty clay +11 11 Clay +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.214.table b/definitions/grib2/tables/31/4.214.table index 9df466fe5..b08860ce0 100644 --- a/definitions/grib2/tables/31/4.214.table +++ b/definitions/grib2/tables/31/4.214.table @@ -1,11 +1,11 @@ # Code table 4.214 - Environmental Factor Qualifier -0 0 Worst -1 1 Very poor -2 2 Poor -3 3 Average -4 4 Good -5 5 Excellent -# 6-190 Reserved -191 191 Unknown -# 192-254 Reserved for local use -255 255 Missing +0 0 Worst +1 1 Very poor +2 2 Poor +3 3 Average +4 4 Good +5 5 Excellent +# 6-190 Reserved +191 191 Unknown +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.215.table b/definitions/grib2/tables/31/4.215.table index 034db72be..7888772d5 100644 --- a/definitions/grib2/tables/31/4.215.table +++ b/definitions/grib2/tables/31/4.215.table @@ -1,9 +1,9 @@ # Code table 4.215 - Remotely sensed snow coverage -# 0-49 Reserved -50 50 No-snow/no-cloud -# 51-99 Reserved -100 100 Clouds -# 101-249 Reserved -250 250 Snow -# 251-254 Reserved for local use -255 255 Missing +# 0-49 Reserved +50 50 No-snow/no-cloud +# 51-99 Reserved +100 100 Clouds +# 101-249 Reserved +250 250 Snow +# 251-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.216.table b/definitions/grib2/tables/31/4.216.table index 5d1460cef..b51b358f4 100644 --- a/definitions/grib2/tables/31/4.216.table +++ b/definitions/grib2/tables/31/4.216.table @@ -1,5 +1,5 @@ # Code table 4.216 - Elevation of snow-covered terrain -# 0-90 Elevation in increments of 100 m -# 91-253 Reserved -254 254 Clouds -255 255 Missing +# 0-90 Elevation in increments of 100 m +# 91-253 Reserved +254 254 Clouds +255 255 Missing diff --git a/definitions/grib2/tables/31/4.217.table b/definitions/grib2/tables/31/4.217.table index a4452182c..a700410d5 100644 --- a/definitions/grib2/tables/31/4.217.table +++ b/definitions/grib2/tables/31/4.217.table @@ -1,8 +1,8 @@ # Code table 4.217 - Cloud mask type -0 0 Clear over water -1 1 Clear over land -2 2 Cloud -3 3 No data -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Clear over water +1 1 Clear over land +2 2 Cloud +3 3 No data +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.218.table b/definitions/grib2/tables/31/4.218.table index fcd06c348..a13debf16 100644 --- a/definitions/grib2/tables/31/4.218.table +++ b/definitions/grib2/tables/31/4.218.table @@ -1,46 +1,46 @@ # Code table 4.218 - Pixel scene type -0 0 No scene identified -1 1 Green needle-leafed forest -2 2 Green broad-leafed forest -3 3 Deciduous needle-leafed forest -4 4 Deciduous broad-leafed forest -5 5 Deciduous mixed forest -6 6 Closed shrub-land -7 7 Open shrub-land -8 8 Woody savannah -9 9 Savannah -10 10 Grassland -11 11 Permanent wetland -12 12 Cropland -13 13 Urban -14 14 Vegetation/crops -15 15 Permanent snow/ice -16 16 Barren desert -17 17 Water bodies -18 18 Tundra -19 19 Warm liquid water cloud -20 20 Supercooled liquid water cloud -21 21 Mixed-phase cloud -22 22 Optically thin ice cloud -23 23 Optically thick ice cloud -24 24 Multilayered cloud -# 25-96 Reserved -97 97 Snow/ice on land -98 98 Snow/ice on water -99 99 Sun-glint -100 100 General cloud -101 101 Low cloud/fog/stratus -102 102 Low cloud/stratocumulus -103 103 Low cloud/unknown type -104 104 Medium cloud/nimbostratus -105 105 Medium cloud/altostratus -106 106 Medium cloud/unknown type -107 107 High cloud/cumulus -108 108 High cloud/cirrus -109 109 High cloud/unknown -110 110 Unknown cloud type -111 111 Single layer water cloud -112 112 Single layer ice cloud -# 113-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No scene identified +1 1 Green needle-leafed forest +2 2 Green broad-leafed forest +3 3 Deciduous needle-leafed forest +4 4 Deciduous broad-leafed forest +5 5 Deciduous mixed forest +6 6 Closed shrub-land +7 7 Open shrub-land +8 8 Woody savannah +9 9 Savannah +10 10 Grassland +11 11 Permanent wetland +12 12 Cropland +13 13 Urban +14 14 Vegetation/crops +15 15 Permanent snow/ice +16 16 Barren desert +17 17 Water bodies +18 18 Tundra +19 19 Warm liquid water cloud +20 20 Supercooled liquid water cloud +21 21 Mixed-phase cloud +22 22 Optically thin ice cloud +23 23 Optically thick ice cloud +24 24 Multilayered cloud +# 25-96 Reserved +97 97 Snow/ice on land +98 98 Snow/ice on water +99 99 Sun-glint +100 100 General cloud +101 101 Low cloud/fog/stratus +102 102 Low cloud/stratocumulus +103 103 Low cloud/unknown type +104 104 Medium cloud/nimbostratus +105 105 Medium cloud/altostratus +106 106 Medium cloud/unknown type +107 107 High cloud/cumulus +108 108 High cloud/cirrus +109 109 High cloud/unknown +110 110 Unknown cloud type +111 111 Single layer water cloud +112 112 Single layer ice cloud +# 113-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.219.table b/definitions/grib2/tables/31/4.219.table index 86df0522e..9979f50ad 100644 --- a/definitions/grib2/tables/31/4.219.table +++ b/definitions/grib2/tables/31/4.219.table @@ -1,8 +1,8 @@ # Code table 4.219 - Cloud top height quality indicator -0 0 Nominal cloud top height quality -1 1 Fog in segment -2 2 Poor quality height estimation -3 3 Fog in segment and poor quality height estimation -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nominal cloud top height quality +1 1 Fog in segment +2 2 Poor quality height estimation +3 3 Fog in segment and poor quality height estimation +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.220.table b/definitions/grib2/tables/31/4.220.table index 93e841f8b..88e869e42 100644 --- a/definitions/grib2/tables/31/4.220.table +++ b/definitions/grib2/tables/31/4.220.table @@ -1,6 +1,6 @@ # Code table 4.220 - Horizontal dimension processed -0 0 Latitude -1 1 Longitude -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Latitude +1 1 Longitude +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.221.table b/definitions/grib2/tables/31/4.221.table index 8448533d7..011cc3518 100644 --- a/definitions/grib2/tables/31/4.221.table +++ b/definitions/grib2/tables/31/4.221.table @@ -1,6 +1,6 @@ # Code table 4.221 - Treatment of missing data -0 0 Not included -1 1 Extrapolated -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Not included +1 1 Extrapolated +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.222.table b/definitions/grib2/tables/31/4.222.table index 57f113014..558d947ac 100644 --- a/definitions/grib2/tables/31/4.222.table +++ b/definitions/grib2/tables/31/4.222.table @@ -1,6 +1,6 @@ # Code table 4.222 - Categorical result -0 0 No -1 1 Yes -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No +1 1 Yes +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.223.table b/definitions/grib2/tables/31/4.223.table index f0deb076a..572c4e7a8 100644 --- a/definitions/grib2/tables/31/4.223.table +++ b/definitions/grib2/tables/31/4.223.table @@ -1,5 +1,5 @@ # Code table 4.223 - Fire detection indicator -0 0 No fire detected -1 1 Possible fire detected -2 2 Probable fire detected -3 3 Missing +0 0 No fire detected +1 1 Possible fire detected +2 2 Probable fire detected +3 3 Missing diff --git a/definitions/grib2/tables/31/4.224.table b/definitions/grib2/tables/31/4.224.table index e87cde4bb..014f56e23 100644 --- a/definitions/grib2/tables/31/4.224.table +++ b/definitions/grib2/tables/31/4.224.table @@ -1,18 +1,18 @@ # Code table 4.224 - Categorical outlook -0 0 No risk area -1 1 Reserved -2 2 General thunderstorm risk area -3 3 Reserved -4 4 Slight risk area -5 5 Reserved -6 6 Moderate risk area -7 7 Reserved -8 8 High risk area -# 9-10 Reserved -11 11 Dry thunderstorm (dry lightning) risk area -# 12-13 Reserved -14 14 Critical risk area -# 15-17 Reserved -18 18 Extremely critical risk area -# 19-254 Reserved -255 255 Missing +0 0 No risk area +1 1 Reserved +2 2 General thunderstorm risk area +3 3 Reserved +4 4 Slight risk area +5 5 Reserved +6 6 Moderate risk area +7 7 Reserved +8 8 High risk area +# 9-10 Reserved +11 11 Dry thunderstorm (dry lightning) risk area +# 12-13 Reserved +14 14 Critical risk area +# 15-17 Reserved +18 18 Extremely critical risk area +# 19-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/4.227.table b/definitions/grib2/tables/31/4.227.table index 27c76553d..48c3b7633 100644 --- a/definitions/grib2/tables/31/4.227.table +++ b/definitions/grib2/tables/31/4.227.table @@ -1,9 +1,9 @@ # Code table 4.227 - Icing scenario (weather/cloud classification) -0 0 None -1 1 General -2 2 Convective -3 3 Stratiform -4 4 Freezing -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 None +1 1 General +2 2 Convective +3 3 Stratiform +4 4 Freezing +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/31/4.228.table b/definitions/grib2/tables/31/4.228.table index 559ae916a..048a69f0b 100644 --- a/definitions/grib2/tables/31/4.228.table +++ b/definitions/grib2/tables/31/4.228.table @@ -1,8 +1,8 @@ # Code table 4.228 - Icing severity -0 0 None -1 1 Trace -2 2 Light -3 3 Moderate -4 4 Severe -# 5-254 Reserved -255 255 Missing value +0 0 None +1 1 Trace +2 2 Light +3 3 Moderate +4 4 Severe +# 5-254 Reserved +255 255 Missing value diff --git a/definitions/grib2/tables/31/4.230.table b/definitions/grib2/tables/31/4.230.table index 47e011140..705857e5c 100644 --- a/definitions/grib2/tables/31/4.230.table +++ b/definitions/grib2/tables/31/4.230.table @@ -317,7 +317,7 @@ 30189 30189 Promethium 146 Pm-146 30190 30190 Promethium 147 Pm-147 30191 30191 Promethium 151 Pm-151 -30192 30192 Europium 152 Eu-152 +30192 30192 Europium 152 Eu-152 30193 30193 Europium 154 Eu-154 30194 30194 Europium 155 Eu-155 30195 30195 Gadolinium 153 Gd-153 diff --git a/definitions/grib2/tables/31/4.233.table b/definitions/grib2/tables/31/4.233.table index 011c7d6af..e4960cc1b 100644 --- a/definitions/grib2/tables/31/4.233.table +++ b/definitions/grib2/tables/31/4.233.table @@ -317,7 +317,7 @@ 30189 30189 Promethium 146 Pm-146 30190 30190 Promethium 147 Pm-147 30191 30191 Promethium 151 Pm-151 -30192 30192 Europium 152 Eu-152 +30192 30192 Europium 152 Eu-152 30193 30193 Europium 154 Eu-154 30194 30194 Europium 155 Eu-155 30195 30195 Gadolinium 153 Gd-153 diff --git a/definitions/grib2/tables/31/4.234.table b/definitions/grib2/tables/31/4.234.table index 816541ce9..3b05b4515 100644 --- a/definitions/grib2/tables/31/4.234.table +++ b/definitions/grib2/tables/31/4.234.table @@ -1,21 +1,21 @@ # Code table 4.234 - Canopy cover fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Crops, mixed farming -2 2 Short grass -3 3 Evergreen needleleaf trees -4 4 Deciduous needleleaf trees -5 5 Deciduous broadleaf trees -6 6 Evergreen broadleaf trees -7 7 Tall grass -8 8 Desert -9 9 Tundra -10 10 Irrigated crops -11 11 Semidesert -12 12 Ice caps and glaciers -13 13 Bogs and marshes -14 14 Inland water -15 15 Ocean -16 16 Evergreen shrubs -17 17 Deciduous shrubs -18 18 Mixed forest -19 19 Interrupted forest -20 20 Water and land mixtures +1 1 Crops, mixed farming +2 2 Short grass +3 3 Evergreen needleleaf trees +4 4 Deciduous needleleaf trees +5 5 Deciduous broadleaf trees +6 6 Evergreen broadleaf trees +7 7 Tall grass +8 8 Desert +9 9 Tundra +10 10 Irrigated crops +11 11 Semidesert +12 12 Ice caps and glaciers +13 13 Bogs and marshes +14 14 Inland water +15 15 Ocean +16 16 Evergreen shrubs +17 17 Deciduous shrubs +18 18 Mixed forest +19 19 Interrupted forest +20 20 Water and land mixtures diff --git a/definitions/grib2/tables/31/4.236.table b/definitions/grib2/tables/31/4.236.table index fbe093ce9..9c58b488c 100644 --- a/definitions/grib2/tables/31/4.236.table +++ b/definitions/grib2/tables/31/4.236.table @@ -1,8 +1,8 @@ # Code table 4.236 - Soil texture fraction (to be used as partitioned parameter in product definition template 4.53 or 4.54) -1 1 Coarse -2 2 Medium -3 3 Medium-fine -4 4 Fine -5 5 Very-fine -6 6 Organic -7 7 Tropical-organic +1 1 Coarse +2 2 Medium +3 3 Medium-fine +4 4 Fine +5 5 Very-fine +6 6 Organic +7 7 Tropical-organic diff --git a/definitions/grib2/tables/31/4.238.table b/definitions/grib2/tables/31/4.238.table index 7e1c8e4d0..be5be3a90 100644 --- a/definitions/grib2/tables/31/4.238.table +++ b/definitions/grib2/tables/31/4.238.table @@ -1,32 +1,32 @@ # Code table 4.238 - Source or sink -0 0 Other -1 1 Aviation -2 2 Lightning -3 3 Biogenic sources -4 4 Anthropogenic sources -5 5 Wild fires -6 6 Natural sources -7 7 Volcanoes -8 8 Bio-fuel -9 9 Fossil-fuel -10 10 Wetlands -11 11 Oceans -12 12 Elevated anthropogenic sources -13 13 Surface anthropogenic sources -14 14 Agriculture livestock -15 15 Agriculture soils -16 16 Agriculture waste burning -17 17 Agriculture (all) -18 18 Residential, commercial and other combustion -19 19 Power generation -20 20 Super power stations -21 21 Fugitives -22 22 Industrial process -23 23 Solvents -24 24 Ships -25 25 Wastes (solid and water) -26 26 Road transportation -27 27 Off-road transportation -# 28-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Other +1 1 Aviation +2 2 Lightning +3 3 Biogenic sources +4 4 Anthropogenic sources +5 5 Wild fires +6 6 Natural sources +7 7 Volcanoes +8 8 Bio-fuel +9 9 Fossil-fuel +10 10 Wetlands +11 11 Oceans +12 12 Elevated anthropogenic sources +13 13 Surface anthropogenic sources +14 14 Agriculture livestock +15 15 Agriculture soils +16 16 Agriculture waste burning +17 17 Agriculture (all) +18 18 Residential, commercial and other combustion +19 19 Power generation +20 20 Super power stations +21 21 Fugitives +22 22 Industrial process +23 23 Solvents +24 24 Ships +25 25 Wastes (solid and water) +26 26 Road transportation +27 27 Off-road transportation +# 28-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.239.table b/definitions/grib2/tables/31/4.239.table index c038926a5..f095b14a0 100644 --- a/definitions/grib2/tables/31/4.239.table +++ b/definitions/grib2/tables/31/4.239.table @@ -1,17 +1,17 @@ # Code table 4.239 - Wetland Type -0 0 Reserved -1 1 Bog -2 2 Drained -3 3 Fen -4 4 Floodplain -5 5 Mangrove -6 6 Marsh -7 7 Rice -8 8 Riverine -9 9 Salt marsh -10 10 Swamp -11 11 Upland -12 12 Wet tundra -# 13-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 Bog +2 2 Drained +3 3 Fen +4 4 Floodplain +5 5 Mangrove +6 6 Marsh +7 7 Rice +8 8 Riverine +9 9 Salt marsh +10 10 Swamp +11 11 Upland +12 12 Wet tundra +# 13-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.240.table b/definitions/grib2/tables/31/4.240.table index e34ad678c..2a31fb2ab 100644 --- a/definitions/grib2/tables/31/4.240.table +++ b/definitions/grib2/tables/31/4.240.table @@ -1,5 +1,5 @@ # Code table 4.240 - Type of distribution function -0 0 No specific distribution function given +0 0 No specific distribution function given 1 1 Delta functions with spatially variable concentration and fixed diameters Dl (p1) in metre 2 2 Delta functions with spatially variable concentration and fixed masses Ml (p1) in kg 3 3 Gaussian (normal) distribution with spatially variable concentration and fixed mean diameter Dl(p1) and variance(p2) diff --git a/definitions/grib2/tables/31/4.241.table b/definitions/grib2/tables/31/4.241.table index a037b4ba5..5ea7f775a 100644 --- a/definitions/grib2/tables/31/4.241.table +++ b/definitions/grib2/tables/31/4.241.table @@ -1,9 +1,9 @@ # Code table 4.241 - Coverage attributes -0 0 Undefined -1 1 Unmodified -2 2 Snow covered -3 3 Flooded -4 4 Ice covered -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Undefined +1 1 Unmodified +2 2 Snow covered +3 3 Flooded +4 4 Ice covered +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/31/4.242.table b/definitions/grib2/tables/31/4.242.table index 083f88c29..f6865957c 100644 --- a/definitions/grib2/tables/31/4.242.table +++ b/definitions/grib2/tables/31/4.242.table @@ -1,7 +1,7 @@ # Code table 4.242 - Tile classification -0 0 Reserved -1 1 Land use classes according to ESA-GlobCover GCV2009 -2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing value +0 0 Reserved +1 1 Land use classes according to ESA-GlobCover GCV2009 +2 2 Land use classes according to European Commission-Global Land Cover Project GLC2000 +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing value diff --git a/definitions/grib2/tables/31/4.243.table b/definitions/grib2/tables/31/4.243.table index b39053311..24d21b719 100644 --- a/definitions/grib2/tables/31/4.243.table +++ b/definitions/grib2/tables/31/4.243.table @@ -1,43 +1,43 @@ # Code table 4.243 - Tile class -0 0 Reserved -1 1 Evergreen broadleaved forest -2 2 Deciduous broadleaved closed forest -3 3 Deciduous broadleaved open forest -4 4 Evergreen needle-leaf forest -5 5 Deciduous needle-leaf forest -6 6 Mixed leaf trees -7 7 Freshwater flooded trees -8 8 Saline water flooded trees -9 9 Mosaic tree/natural vegetation -10 10 Burnt tree cover -11 11 Evergreen shrubs closed-open -12 12 Deciduous shrubs closed-open -13 13 Herbaceous vegetation closed-open -14 14 Sparse herbaceous or grass -15 15 Flooded shrubs or herbaceous -16 16 Cultivated and managed areas -17 17 Mosaic crop/tree/natural vegetation -18 18 Mosaic crop/shrub/grass -19 19 Bare areas -20 20 Water -21 21 Snow and ice -22 22 Artificial surface -23 23 Ocean -24 24 Irrigated croplands -25 25 Rainfed croplands -26 26 Mosaic cropland (50-70%) - vegetation (20-50%) -27 27 Mosaic vegetation (50-70%) - cropland (20-50%) -28 28 Closed broadleaved evergreen forest -29 29 Closed needle-leaved evergreen forest -30 30 Open needle-leaved deciduous forest -31 31 Mixed broadleaved and needle-leaved forest -32 32 Mosaic shrubland (50-70%) - grassland (20-50%) -33 33 Mosaic grassland (50-70%) - shrubland (20-50%) -34 34 Closed to open shrubland -35 35 Sparse vegetation -36 36 Closed to open forest regularly flooded -37 37 Closed forest or shrubland permanently flooded -38 38 Closed to open grassland regularly flooded -39 39 Undefined -# 40-32767 Reserved -# 32768- Reserved for local use +0 0 Reserved +1 1 Evergreen broadleaved forest +2 2 Deciduous broadleaved closed forest +3 3 Deciduous broadleaved open forest +4 4 Evergreen needle-leaf forest +5 5 Deciduous needle-leaf forest +6 6 Mixed leaf trees +7 7 Freshwater flooded trees +8 8 Saline water flooded trees +9 9 Mosaic tree/natural vegetation +10 10 Burnt tree cover +11 11 Evergreen shrubs closed-open +12 12 Deciduous shrubs closed-open +13 13 Herbaceous vegetation closed-open +14 14 Sparse herbaceous or grass +15 15 Flooded shrubs or herbaceous +16 16 Cultivated and managed areas +17 17 Mosaic crop/tree/natural vegetation +18 18 Mosaic crop/shrub/grass +19 19 Bare areas +20 20 Water +21 21 Snow and ice +22 22 Artificial surface +23 23 Ocean +24 24 Irrigated croplands +25 25 Rainfed croplands +26 26 Mosaic cropland (50-70%) - vegetation (20-50%) +27 27 Mosaic vegetation (50-70%) - cropland (20-50%) +28 28 Closed broadleaved evergreen forest +29 29 Closed needle-leaved evergreen forest +30 30 Open needle-leaved deciduous forest +31 31 Mixed broadleaved and needle-leaved forest +32 32 Mosaic shrubland (50-70%) - grassland (20-50%) +33 33 Mosaic grassland (50-70%) - shrubland (20-50%) +34 34 Closed to open shrubland +35 35 Sparse vegetation +36 36 Closed to open forest regularly flooded +37 37 Closed forest or shrubland permanently flooded +38 38 Closed to open grassland regularly flooded +39 39 Undefined +# 40-32767 Reserved +# 32768- Reserved for local use diff --git a/definitions/grib2/tables/31/4.244.table b/definitions/grib2/tables/31/4.244.table index 40534ee09..a4470cd56 100644 --- a/definitions/grib2/tables/31/4.244.table +++ b/definitions/grib2/tables/31/4.244.table @@ -1,7 +1,7 @@ # Code table 4.244 - Quality indicator -0 0 No quality information available -1 1 Failed -2 2 Passed -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No quality information available +1 1 Failed +2 2 Passed +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.246.table b/definitions/grib2/tables/31/4.246.table index bc89c27b9..0ca9c0c98 100644 --- a/definitions/grib2/tables/31/4.246.table +++ b/definitions/grib2/tables/31/4.246.table @@ -1,7 +1,7 @@ # Code table 4.246 - Thunderstorm intensity -0 0 No thunderstorm occurrence -1 1 Weak thunderstorm -2 2 Moderate thunderstorm -3 3 Severe thunderstorm -# 4-254 Reserved -255 255 Missing +0 0 No thunderstorm occurrence +1 1 Weak thunderstorm +2 2 Moderate thunderstorm +3 3 Severe thunderstorm +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/4.247.table b/definitions/grib2/tables/31/4.247.table index cd7fc90bd..6da16e396 100644 --- a/definitions/grib2/tables/31/4.247.table +++ b/definitions/grib2/tables/31/4.247.table @@ -1,7 +1,7 @@ # Code table 4.247 - Precipitation intensity -0 0 No precipitation occurrence -1 1 Light precipitation -2 2 Moderate precipitation -3 3 Heavy precipitation -# 4-254 Reserved -255 255 Missing +0 0 No precipitation occurrence +1 1 Light precipitation +2 2 Moderate precipitation +3 3 Heavy precipitation +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/4.248.table b/definitions/grib2/tables/31/4.248.table index 694eebb72..04e365c97 100644 --- a/definitions/grib2/tables/31/4.248.table +++ b/definitions/grib2/tables/31/4.248.table @@ -1,6 +1,6 @@ # Code table 4.248 - Method used to derive data values for a given local time -0 0 Nearest forecast or analysis time to specified local time -1 1 Interpolated to be valid at the specified local time -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Nearest forecast or analysis time to specified local time +1 1 Interpolated to be valid at the specified local time +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.249.table b/definitions/grib2/tables/31/4.249.table index 9e62d9bbb..bd1c944c4 100644 --- a/definitions/grib2/tables/31/4.249.table +++ b/definitions/grib2/tables/31/4.249.table @@ -1,7 +1,7 @@ # Code table 4.249 - Character of precipitation -0 0 None -1 1 Showers -2 2 Intermittent -3 3 Continuous -# 4-254 Reserved -255 255 Missing +0 0 None +1 1 Showers +2 2 Intermittent +3 3 Continuous +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/4.250.table b/definitions/grib2/tables/31/4.250.table index 26209ed07..a249158ca 100644 --- a/definitions/grib2/tables/31/4.250.table +++ b/definitions/grib2/tables/31/4.250.table @@ -1,14 +1,14 @@ # Code table 4.250 - Drainage direction -0 0 Reserved -1 1 South-west -2 2 South -3 3 South-east -4 4 West -5 5 No direction -6 6 East -7 7 North-west -8 8 North -9 9 North-east -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 South-west +2 2 South +3 3 South-east +4 4 West +5 5 No direction +6 6 East +7 7 North-west +8 8 North +9 9 North-east +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.251.table b/definitions/grib2/tables/31/4.251.table index e6c8da0b9..3a78e713e 100644 --- a/definitions/grib2/tables/31/4.251.table +++ b/definitions/grib2/tables/31/4.251.table @@ -1,7 +1,7 @@ # Code table 4.251 - Wave direction and frequency formulae -0 0 Undefined sequence -1 1 Geometric sequence -2 2 Arithmetic sequence -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Undefined sequence +1 1 Geometric sequence +2 2 Arithmetic sequence +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.3.table b/definitions/grib2/tables/31/4.3.table index 7ad6be363..8ae36efc3 100644 --- a/definitions/grib2/tables/31/4.3.table +++ b/definitions/grib2/tables/31/4.3.table @@ -1,26 +1,26 @@ # Code table 4.3 - Type of generating process -0 0 Analysis -1 1 Initialization -2 2 Forecast -3 3 Bias corrected forecast -4 4 Ensemble forecast -5 5 Probability forecast -6 6 Forecast error -7 7 Analysis error -8 8 Observation -9 9 Climatological -10 10 Probability-weighted forecast -11 11 Bias-corrected ensemble forecast -12 12 Post-processed analysis -13 13 Post-processed forecast -14 14 Nowcast -15 15 Hindcast -16 16 Physical retrieval -17 17 Regression analysis -18 18 Difference between two forecasts -19 19 First guess -20 20 Analysis increment -21 21 Initialization increment for analysis -# 22-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Analysis +1 1 Initialization +2 2 Forecast +3 3 Bias corrected forecast +4 4 Ensemble forecast +5 5 Probability forecast +6 6 Forecast error +7 7 Analysis error +8 8 Observation +9 9 Climatological +10 10 Probability-weighted forecast +11 11 Bias-corrected ensemble forecast +12 12 Post-processed analysis +13 13 Post-processed forecast +14 14 Nowcast +15 15 Hindcast +16 16 Physical retrieval +17 17 Regression analysis +18 18 Difference between two forecasts +19 19 First guess +20 20 Analysis increment +21 21 Initialization increment for analysis +# 22-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.4.table b/definitions/grib2/tables/31/4.4.table index 7087ebddb..6e63e069c 100644 --- a/definitions/grib2/tables/31/4.4.table +++ b/definitions/grib2/tables/31/4.4.table @@ -1,17 +1,17 @@ # Code table 4.4 - Indicator of unit of time range -0 m Minute -1 h Hour -2 D Day -3 M Month -4 Y Year -5 10Y Decade (10 years) -6 30Y Normal (30 years) -7 C Century (100 years) -# 8-9 Reserved -10 3h 3 hours -11 6h 6 hours -12 12h 12 hours -13 s Second -# 14-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 m Minute +1 h Hour +2 D Day +3 M Month +4 Y Year +5 10Y Decade (10 years) +6 30Y Normal (30 years) +7 C Century (100 years) +# 8-9 Reserved +10 3h 3 hours +11 6h 6 hours +12 12h 12 hours +13 s Second +# 14-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.5.table b/definitions/grib2/tables/31/4.5.table index 3c338232d..98103671d 100644 --- a/definitions/grib2/tables/31/4.5.table +++ b/definitions/grib2/tables/31/4.5.table @@ -29,14 +29,14 @@ 27 27 Convective cloud layer top (m) # 28-29 Reserved 30 30 Specified radius from the centre of the Sun (m) -31 31 Solar photosphere -32 32 Ionospheric D-region level -33 33 Ionospheric E-region level -34 34 Ionospheric F1-region level -35 35 Ionospheric F2-region level +31 31 Solar photosphere +32 32 Ionospheric D-region level +33 33 Ionospheric E-region level +34 34 Ionospheric F1-region level +35 35 Ionospheric F2-region level # 36-99 Reserved 100 pl Isobaric surface (Pa) -101 sfc Mean sea level +101 sfc Mean sea level 102 102 Specific altitude above mean sea level (m) 103 sfc Specified height level above ground (m) 104 104 Sigma level (sigma value) @@ -45,10 +45,10 @@ 107 pt Isentropic (theta) level (K) 108 108 Level at specified pressure difference from ground to level (Pa) 109 pv Potential vorticity surface (K m2 kg-1 s-1) -110 110 Reserved +110 110 Reserved 111 111 Eta level (-) -112 112 Reserved -113 113 Logarithmic hybrid level +112 112 Reserved +113 113 Logarithmic hybrid level 114 sol Snow level (Numeric) 115 115 Sigma height level # 116 Reserved @@ -56,7 +56,7 @@ 118 hhl Hybrid height level (-) 119 hpl Hybrid pressure level (-) # 120-149 Reserved -150 150 Generalized vertical height coordinate +150 150 Generalized vertical height coordinate 151 sol Soil level (Numeric) 152 sol Sea-ice level (Numeric) # 153-159 Reserved diff --git a/definitions/grib2/tables/31/4.6.table b/definitions/grib2/tables/31/4.6.table index b2dfeb498..ce799721d 100644 --- a/definitions/grib2/tables/31/4.6.table +++ b/definitions/grib2/tables/31/4.6.table @@ -1,9 +1,9 @@ # Code table 4.6 - Type of ensemble forecast -0 0 Unperturbed high-resolution control forecast -1 1 Unperturbed low-resolution control forecast -2 2 Negatively perturbed forecast -3 3 Positively perturbed forecast -4 4 Multi-model forecast -# 5-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unperturbed high-resolution control forecast +1 1 Unperturbed low-resolution control forecast +2 2 Negatively perturbed forecast +3 3 Positively perturbed forecast +4 4 Multi-model forecast +# 5-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.7.table b/definitions/grib2/tables/31/4.7.table index e0de0e1b2..69b2b4d77 100644 --- a/definitions/grib2/tables/31/4.7.table +++ b/definitions/grib2/tables/31/4.7.table @@ -1,14 +1,14 @@ # Code table 4.7 - Derived forecast -0 0 Unweighted mean of all members -1 1 Weighted mean of all members -2 2 Standard deviation with respect to cluster mean -3 3 Standard deviation with respect to cluster mean, normalized -4 4 Spread of all members -5 5 Large anomaly index of all members -6 6 Unweighted mean of the cluster members -7 7 Interquartile range (range between the 25th and 75th quantile) -8 8 Minimum of all ensemble members -9 9 Maximum of all ensemble members -# 10-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Unweighted mean of all members +1 1 Weighted mean of all members +2 2 Standard deviation with respect to cluster mean +3 3 Standard deviation with respect to cluster mean, normalized +4 4 Spread of all members +5 5 Large anomaly index of all members +6 6 Unweighted mean of the cluster members +7 7 Interquartile range (range between the 25th and 75th quantile) +8 8 Minimum of all ensemble members +9 9 Maximum of all ensemble members +# 10-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.8.table b/definitions/grib2/tables/31/4.8.table index ad883039c..78467454a 100644 --- a/definitions/grib2/tables/31/4.8.table +++ b/definitions/grib2/tables/31/4.8.table @@ -1,6 +1,6 @@ # Code table 4.8 - Clustering method -0 0 Anomaly correlation -1 1 Root mean square -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Anomaly correlation +1 1 Root mean square +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/4.9.table b/definitions/grib2/tables/31/4.9.table index 9f74599c3..fa078f275 100644 --- a/definitions/grib2/tables/31/4.9.table +++ b/definitions/grib2/tables/31/4.9.table @@ -1,13 +1,13 @@ # Code table 4.9 - Probability type -0 0 Probability of event below lower limit -1 1 Probability of event above upper limit -2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) -3 3 Probability of event above lower limit -4 4 Probability of event below upper limit -5 5 Probability of event equal to lower limit -6 6 Probability of event in above normal category -7 7 Probability of event in near normal category -8 8 Probability of event in below normal category -# 9-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Probability of event below lower limit +1 1 Probability of event above upper limit +2 2 Probability of event between lower and upper limits (the range includes the lower limit but not the upper limit) +3 3 Probability of event above lower limit +4 4 Probability of event below upper limit +5 5 Probability of event equal to lower limit +6 6 Probability of event in above normal category +7 7 Probability of event in near normal category +8 8 Probability of event in below normal category +# 9-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.1.table b/definitions/grib2/tables/31/5.1.table index 854330c74..1189b5e46 100644 --- a/definitions/grib2/tables/31/5.1.table +++ b/definitions/grib2/tables/31/5.1.table @@ -1,6 +1,6 @@ # Code table 5.1 - Type of original field values -0 0 Floating point -1 1 Integer -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Floating point +1 1 Integer +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.2.table b/definitions/grib2/tables/31/5.2.table index eb2d544f0..60d557a0d 100644 --- a/definitions/grib2/tables/31/5.2.table +++ b/definitions/grib2/tables/31/5.2.table @@ -1,8 +1,8 @@ # Code table 5.2 - Matrix coordinate value function definition -0 0 Explicit coordinate values set -1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 -# 2-10 Reserved -11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) -# 12-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Explicit coordinate values set +1 1 Linear coordinates f(1) = C1, f(n) = f(n-1) + C2 +# 2-10 Reserved +11 11 Geometric coordinates f(1) = C1, f(n) = C2 * f(n-1) +# 12-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.25.table b/definitions/grib2/tables/31/5.25.table index 1b45f28a3..79e9fd69a 100644 --- a/definitions/grib2/tables/31/5.25.table +++ b/definitions/grib2/tables/31/5.25.table @@ -1,9 +1,9 @@ # Code table 5.25 - type of bi-Fourier subtruncation -# 0-76 Reserved -77 77 Rectangular -# 78-87 Reserved -88 88 Elliptic -# 89-98 Reserved -99 99 Diamond -# 100-254 Reserved -255 255 Missing +# 0-76 Reserved +77 77 Rectangular +# 78-87 Reserved +88 88 Elliptic +# 89-98 Reserved +99 99 Diamond +# 100-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/5.26.table b/definitions/grib2/tables/31/5.26.table index 9e91ebf2e..298f3fcd0 100644 --- a/definitions/grib2/tables/31/5.26.table +++ b/definitions/grib2/tables/31/5.26.table @@ -1,5 +1,5 @@ # Code table 5.26 - packing mode for axes -0 0 Spectral coefficients for axes are packed -1 1 Spectral coefficients for axes included in the unpacked subset -# 2-254 Reserved -255 255 Missing +0 0 Spectral coefficients for axes are packed +1 1 Spectral coefficients for axes included in the unpacked subset +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/5.3.table b/definitions/grib2/tables/31/5.3.table index c3b7b30fe..481331791 100644 --- a/definitions/grib2/tables/31/5.3.table +++ b/definitions/grib2/tables/31/5.3.table @@ -1,7 +1,7 @@ # Code table 5.3 - Matrix coordinate parameter -1 1 Direction degrees true -2 2 Frequency (s-1) -3 3 Radial number (2pi/lambda) (m-1) -# 4-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +1 1 Direction degrees true +2 2 Frequency (s-1) +3 3 Radial number (2pi/lambda) (m-1) +# 4-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.4.table b/definitions/grib2/tables/31/5.4.table index 8121c1819..e84ab1901 100644 --- a/definitions/grib2/tables/31/5.4.table +++ b/definitions/grib2/tables/31/5.4.table @@ -1,6 +1,6 @@ # Code table 5.4 - Group splitting method -0 0 Row by row splitting -1 1 General group splitting -# 2-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Row by row splitting +1 1 General group splitting +# 2-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.40.table b/definitions/grib2/tables/31/5.40.table index b9bad2c39..97e8880ab 100644 --- a/definitions/grib2/tables/31/5.40.table +++ b/definitions/grib2/tables/31/5.40.table @@ -1,5 +1,5 @@ # Code table 5.40 - Type of compression -0 0 Lossless -1 1 Lossy -# 2-254 Reserved -255 255 Missing +0 0 Lossless +1 1 Lossy +# 2-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/31/5.5.table b/definitions/grib2/tables/31/5.5.table index 3ef3eb070..f2316975a 100644 --- a/definitions/grib2/tables/31/5.5.table +++ b/definitions/grib2/tables/31/5.5.table @@ -1,7 +1,7 @@ # Code table 5.5 - Missing value management for complex packing -0 0 No explicit missing values included within data values -1 1 Primary missing values included within data values -2 2 Primary and secondary missing values included within data values -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 No explicit missing values included within data values +1 1 Primary missing values included within data values +2 2 Primary and secondary missing values included within data values +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.6.table b/definitions/grib2/tables/31/5.6.table index 6d5177877..db68ead9c 100644 --- a/definitions/grib2/tables/31/5.6.table +++ b/definitions/grib2/tables/31/5.6.table @@ -1,7 +1,7 @@ # Code table 5.6 - Order of spatial differencing -0 0 Reserved -1 1 First-order spatial differencing -2 2 Second-order spatial differencing -# 3-191 Reserved -# 192-254 Reserved for local use -255 255 Missing +0 0 Reserved +1 1 First-order spatial differencing +2 2 Second-order spatial differencing +# 3-191 Reserved +# 192-254 Reserved for local use +255 255 Missing diff --git a/definitions/grib2/tables/31/5.7.table b/definitions/grib2/tables/31/5.7.table index 5ab780056..e54862c19 100644 --- a/definitions/grib2/tables/31/5.7.table +++ b/definitions/grib2/tables/31/5.7.table @@ -1,7 +1,7 @@ # Code table 5.7 - Precision of floating-point numbers -0 0 Reserved -1 1 IEEE 32-bit (I=4 in section 7) -2 2 IEEE 64-bit (I=8 in section 7) -3 3 IEEE 128-bit (I=16 in section 7) -# 4-254 Reserved -255 255 Missing +0 0 Reserved +1 1 IEEE 32-bit (I=4 in section 7) +2 2 IEEE 64-bit (I=8 in section 7) +3 3 IEEE 128-bit (I=16 in section 7) +# 4-254 Reserved +255 255 Missing diff --git a/definitions/grib2/tables/4/5.0.table b/definitions/grib2/tables/4/5.0.table index 0cf3752cb..b9b301151 100644 --- a/definitions/grib2/tables/4/5.0.table +++ b/definitions/grib2/tables/4/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/4/5.40000.table b/definitions/grib2/tables/4/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/4/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/5/5.0.table b/definitions/grib2/tables/5/5.0.table index 62cc4a472..ccf4f88cb 100644 --- a/definitions/grib2/tables/5/5.0.table +++ b/definitions/grib2/tables/5/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/5/5.40000.table b/definitions/grib2/tables/5/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/5/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/6/5.0.table b/definitions/grib2/tables/6/5.0.table index 62cc4a472..ccf4f88cb 100644 --- a/definitions/grib2/tables/6/5.0.table +++ b/definitions/grib2/tables/6/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/6/5.40000.table b/definitions/grib2/tables/6/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/6/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/7/5.0.table b/definitions/grib2/tables/7/5.0.table index 62cc4a472..ccf4f88cb 100644 --- a/definitions/grib2/tables/7/5.0.table +++ b/definitions/grib2/tables/7/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - ieee packing -6 6 Grid point data - simple packing with pre-processing 40 40 JPEG2000 Packing 41 41 PNG pacling 50 50 Spectral data -simple packing diff --git a/definitions/grib2/tables/7/5.40000.table b/definitions/grib2/tables/7/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/7/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/8/3.1.table b/definitions/grib2/tables/8/3.1.table index ee6412390..15cbf2d57 100644 --- a/definitions/grib2/tables/8/3.1.table +++ b/definitions/grib2/tables/8/3.1.table @@ -28,9 +28,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid, with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/8/5.0.table b/definitions/grib2/tables/8/5.0.table index c7995a965..e554b5c4b 100644 --- a/definitions/grib2/tables/8/5.0.table +++ b/definitions/grib2/tables/8/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) #42-49 Reserved diff --git a/definitions/grib2/tables/8/5.40000.table b/definitions/grib2/tables/8/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/8/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/9/3.1.table b/definitions/grib2/tables/9/3.1.table index ee6412390..15cbf2d57 100644 --- a/definitions/grib2/tables/9/3.1.table +++ b/definitions/grib2/tables/9/3.1.table @@ -28,9 +28,7 @@ 110 110 Equatorial azimuthal equidistant projection # 111-119 Reserved 120 120 Azimuth-range projection -# 121-129 Reserved -130 130 Irregular latitude/longitude grid -# 131-139 Reserved +# 121-139 Reserved 140 140 Lambert azimuthal equal area projection # 141-999 Reserved 1000 1000 Cross-section grid, with points equally spaced on the horizontal diff --git a/definitions/grib2/tables/9/5.0.table b/definitions/grib2/tables/9/5.0.table index c7995a965..e554b5c4b 100644 --- a/definitions/grib2/tables/9/5.0.table +++ b/definitions/grib2/tables/9/5.0.table @@ -4,7 +4,6 @@ 2 2 Grid point data - complex packing 3 3 Grid point data - complex packing and spatial differencing 4 4 Grid point data - IEEE floating point data -6 6 Grid point data - simple packing with pre-processing 40 40 Grid point data - JPEG 2000 code stream format 41 41 Grid point data - Portable Network Graphics (PNG) #42-49 Reserved diff --git a/definitions/grib2/tables/9/5.40000.table b/definitions/grib2/tables/9/5.40000.table deleted file mode 100644 index 1eef7c763..000000000 --- a/definitions/grib2/tables/9/5.40000.table +++ /dev/null @@ -1,5 +0,0 @@ -# Code Table 5.40: Type of Compression -0 0 Lossless -1 1 Lossy -#2-254 Reserved -255 255 Missing diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table b/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table index 2c4961ba0..5e02901a1 100644 --- a/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table +++ b/definitions/grib2/tables/local/ecmf/1/4.2.0.1.table @@ -1,11 +1,13 @@ # Code table 4.2 - discipline=0 category=1 for ECMWF 192 192 Snow evaporation rate (kg m-2 s-1) -193 193 Total precipitation (m) +193 193 Total precipitation rate (m s-1) 194 194 Accumulated freezing rain (m) -195 195 Convective precipitation (m) -196 196 Large-scale precipitation (m) -197 197 Snow evaporation (m of water equivalent) -198 198 Snowfall (m of water equivalent) -199 199 Evaporation (m of water equivalent) -200 200 Potential evaporation (m) +195 195 Convective precipitation rate (m s-1) +196 196 Large-scale precipitation rate (m s-1) +197 197 Snow evaporation rate (m of water equivalent s-1) +198 198 Snowfall rate (m of water equivalent s-1) +199 199 Evaporation rate (m of water equivalent s-1) +200 200 Potential evaporation rate (m s-1) +201 201 Convective snowfall rate (m of water equivalent s-1) +202 202 Large-scale snowfall rate (m of water equivalent s-1) 254 254 Snow depth (m of water equivalent) diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.0.14.table b/definitions/grib2/tables/local/ecmf/1/4.2.0.14.table new file mode 100644 index 000000000..e7573ef3d --- /dev/null +++ b/definitions/grib2/tables/local/ecmf/1/4.2.0.14.table @@ -0,0 +1,2 @@ +# Code table 4.2 - discipline=0 category=14 for ECMWF +192 192 Total column ozone diff --git a/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table b/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table index f68411f32..16c57248b 100644 --- a/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table +++ b/definitions/grib2/tables/local/ecmf/1/4.2.2.0.table @@ -8,9 +8,9 @@ 198 198 GPP coefficient from Biogenic Flux Adjustment System 199 199 Rec coefficient from Biogenic Flux Adjustment System 200 200 Surface roughness length for heat (m) -201 201 Water runoff (m) -202 202 Surface runoff (m) -203 203 Snow melt (m of water equivalent) -204 204 Sub-surface runoff (m) +201 201 Water runoff and drainage rate (m s-1) +202 202 Surface runoff rate (m s-1) +203 203 Snow melt rate (m of water equivalent s-1) +204 204 Sub-surface runoff rate (m s-1) 205 205 Skin reservoir content (m of water equivalent) 255 255 Missing diff --git a/definitions/grib2/tables/local/ecmf/1/4.238.table b/definitions/grib2/tables/local/ecmf/1/4.238.table index 23a3468d8..54e4f9ab4 100644 --- a/definitions/grib2/tables/local/ecmf/1/4.238.table +++ b/definitions/grib2/tables/local/ecmf/1/4.238.table @@ -3,4 +3,4 @@ 193 193 Biomass burning 194 194 Settlements 195 195 Soil -196 195 Wild animals +196 196 Wild animals diff --git a/definitions/grib2/template.3.10.def b/definitions/grib2/template.3.10.def index 975d8dc87..fefc41ba4 100644 --- a/definitions/grib2/template.3.10.def +++ b/definitions/grib2/template.3.10.def @@ -3,14 +3,16 @@ # TEMPLATE 3.10, Mercator include "grib2/template.3.shape_of_the_earth.def"; +constant isGridded = one; + unsigned[4] Ni : dump; -alias numberOfPointsAlongAParallel=Ni; +alias numberOfPointsAlongAParallel = Ni; alias Nx = Ni; alias numberOfPointsAlongXAxis = Ni; alias geography.Ni=Ni; unsigned[4] Nj : dump; -alias numberOfPointsAlongAMeridian=Nj; +alias numberOfPointsAlongAMeridian = Nj; alias Ny = Nj; alias numberOfPointsAlongYAxis = Nj; alias geography.Nj=Nj; diff --git a/definitions/grib2/template.3.100.def b/definitions/grib2/template.3.100.def index 89b163406..8b1fe16a3 100644 --- a/definitions/grib2/template.3.100.def +++ b/definitions/grib2/template.3.100.def @@ -1,42 +1,43 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 3.100, Triangular grid based on an icosahedron (see Attachment I.2-GRIB-Att.) +constant isGridded = one; -# n2 - exponent of 2 for the number of intervals on main triangle sides +# n2 - exponent of 2 for the number of intervals on main triangle sides unsigned[1] n2 : dump ; -# n3 - exponent of 3 for the number of intervals on main triangle sides +# n3 - exponent of 3 for the number of intervals on main triangle sides unsigned[1] n3 : dump ; -# Ni - number of intervals on main triangle sides of the icosahedron +# Ni - number of intervals on main triangle sides of the icosahedron unsigned[2] Ni : dump ; -# nd - Number of diamonds +# nd - Number of diamonds unsigned[1] nd : dump ; alias numberOfDiamonds=nd; -# Latitude of the pole point of the icosahedron on the sphere +# Latitude of the pole point of the icosahedron on the sphere signed[4] latitudeOfThePolePoint : dump ; meta geography.latitudeOfThePolePointInDegrees scale(latitudeOfThePolePoint,one,grib2divider,truncateDegrees) : dump; -# Longitude of the pole point of the icosahedron on the sphere +# Longitude of the pole point of the icosahedron on the sphere unsigned[4] longitudeOfThePolePoint : dump ; meta geography.longitudeOfThePolePointInDegrees g2lon(longitudeOfThePolePoint); -# Longitude of the centre line of the first diamond of the icosahedron on the sphere +# Longitude of the centre line of the first diamond of the icosahedron on the sphere unsigned[4] longitudeOfFirstDiamondCentreLine : dump ; meta geography.longitudeOfFirstDiamondCentreLineInDegrees g2lon(longitudeOfFirstDiamondCentreLine); -# Grid point position +# Grid point position codetable[1] gridPointPosition ('3.8.table',masterDir,localDir); -# Numbering order of diamonds +# Numbering order of diamonds flags[1] numberingOrderOfDiamonds 'grib2/tables/[tablesVersion]/3.9.table'; -# Scanning mode for one diamond +# Scanning mode for one diamond flags[1] scanningModeForOneDiamond 'grib2/tables/[tablesVersion]/3.10.table'; -# nt - total number of grid points +# nt - total number of grid points unsigned[4] totalNumberOfGridPoints : dump ; alias nt = totalNumberOfGridPoints; diff --git a/definitions/grib2/template.3.1000.def b/definitions/grib2/template.3.1000.def index 590151dde..407fc16e7 100644 --- a/definitions/grib2/template.3.1000.def +++ b/definitions/grib2/template.3.1000.def @@ -1,55 +1,54 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 3.1000, Cross-section grid, with points equally spaced on the horizontal - include "grib2/template.3.shape_of_the_earth.def"; +constant isGridded = one; -# Number of horizontal points -unsigned[4] numberOfHorizontalPoints : dump ; +# Number of horizontal points +unsigned[4] numberOfHorizontalPoints : dump ; -# Basic angle of the initial production domain +# Basic angle of the initial production domain 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;; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific ; -alias La1 = latitudeOfFirstGridPoint; -# Lo1 - longitude of first grid point +alias La1 = latitudeOfFirstGridPoint; +# Lo1 - longitude of first grid point unsigned[4] longitudeOfFirstGridPoint : edition_specific; -alias Lo1 = longitudeOfFirstGridPoint; +alias Lo1 = longitudeOfFirstGridPoint; include "grib2/template.3.scanning_mode.def"; -# La2 - latitude of last grid point +# La2 - latitude of last grid point signed[4] latitudeOfLastGridPoint : edition_specific; alias La2 = latitudeOfLastGridPoint; -# Lo2 - longitude of last grid point +# Lo2 - longitude of last grid point unsigned[4] longitudeOfLastGridPoint: edition_specific ; alias Lo2 = longitudeOfLastGridPoint; -# Type of horizontal line +# Type of horizontal line codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump ; -# Number of vertical points -unsigned[2] numberOfVerticalPoints : dump ; +# Number of vertical points +unsigned[2] numberOfVerticalPoints : dump ; -# Physical meaning of vertical coordinate +# Physical meaning of vertical coordinate codetable[1] meaningOfVerticalCoordinate ('3.15.table',masterDir,localDir) : dump ; -# Vertical dimension coordinate values definition +# Vertical dimension coordinate values definition codetable[1] verticalCoordinate ('3.21.table',masterDir,localDir) : dump ; -# NC - Number of coefficients or values used to specify vertical coordinates -unsigned[2] NC : dump ; +# NC - Number of coefficients or values used to specify vertical coordinates +unsigned[2] NC : dump ; # 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) -# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values - +# ???? coefficients_to_define_vertical_dimension_coordinate_values_in_functional_form_or_the_explicit_coordinate_values diff --git a/definitions/grib2/template.3.101.def b/definitions/grib2/template.3.101.def index 6c37f39de..65d27a22f 100644 --- a/definitions/grib2/template.3.101.def +++ b/definitions/grib2/template.3.101.def @@ -2,6 +2,8 @@ # TEMPLATE 3.101, General Unstructured Grid +constant isGridded = one; + codetable[1] shapeOfTheEarth ('3.2.table',masterDir,localDir) : dump; unsigned[3] numberOfGridUsed : dump; diff --git a/definitions/grib2/template.3.110.def b/definitions/grib2/template.3.110.def index 5d63071db..dae4a9263 100644 --- a/definitions/grib2/template.3.110.def +++ b/definitions/grib2/template.3.110.def @@ -3,33 +3,39 @@ # TEMPLATE 3.110, Equatorial azimuthal equidistant projection include "grib2/template.3.shape_of_the_earth.def"; -# Nx - number of points along X-axis -unsigned[4] numberOfPointsAlongXAxis : dump ; +constant isGridded = one; -alias Nx = numberOfPointsAlongXAxis; -# Ny - number of points along Y-axis -unsigned[4] numberOfPointsAlongYAxis : dump ; +# Nx - number of points along X-axis +unsigned[4] numberOfPointsAlongXAxis : dump; +alias Nx = numberOfPointsAlongXAxis; +alias numberOfPointsAlongAParallel = Nx; +alias Ni = Nx; -alias Ny = numberOfPointsAlongYAxis; -# La1 - latitude of tangency point -# (centre of grid) -signed[4] latitudeOfTangencyPoint : dump ; +# Ny - number of points along Y-axis +unsigned[4] numberOfPointsAlongYAxis : dump; +alias Ny = numberOfPointsAlongYAxis; +alias numberOfPointsAlongAMeridian = Ny; +alias Nj = Ny; -alias La1 = latitudeOfTangencyPoint; -# Lo1 - longitude of tangency point -unsigned[4] longitudeOfTangencyPoint : dump ; +# La1 - latitude of tangency point (centre of grid) +signed[4] latitudeOfTangencyPoint : dump; -alias Lo1 = longitudeOfTangencyPoint; -# Resolution and component flag -flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump ; +alias La1 = latitudeOfTangencyPoint; +# Lo1 - longitude of tangency point +unsigned[4] longitudeOfTangencyPoint : dump; -# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis -unsigned[4] Dx : dump ; +alias Lo1 = longitudeOfTangencyPoint; -# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis -unsigned[4] Dy : dump ; +# Resolution and component flag +flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump; -# Projection centre flag -unsigned[1] projectionCentreFlag : dump ; +# Dx - X-direction grid length in units of 10 -3 m as measured at the point of the axis +unsigned[4] Dx : dump; + +# Dy - Y-direction grid length in units of 10 -3 m as measured at the point of the axis +unsigned[4] Dy : dump; + +# Projection centre flag +unsigned[1] projectionCentreFlag : dump; include "grib2/template.3.scanning_mode.def"; diff --git a/definitions/grib2/template.3.1100.def b/definitions/grib2/template.3.1100.def index 2996da7db..f9bdbef8b 100644 --- a/definitions/grib2/template.3.1100.def +++ b/definitions/grib2/template.3.1100.def @@ -3,73 +3,63 @@ # TEMPLATE 3.1100, Hovmoller diagram grid with points equally spaced on the horizontal include "grib2/template.3.shape_of_the_earth.def"; -# Number of horizontal points +constant isGridded = one; + +# Number of horizontal points unsigned[5] numberOfHorizontalPoints : dump ; -# Basic angle of the initial production domain +# Basic angle of the initial production domain unsigned[4] basicAngleOfTheInitialProductionDomain = 0 : dump ; -# 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,dump; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific,dump; alias La1 =latitudeOfFirstGridPoint; -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump; alias Lo1 =longitudeOfFirstGridPoint; 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; alias La2 = latitudeOfLastGridPoint; -# Lo2 - longitude of last grid point +# Lo2 - longitude of last grid point unsigned[4] longitudeOfLastGridPoint : edition_specific,dump ; alias Lo2 = longitudeOfLastGridPoint; -# Type of horizontal line +# Type of horizontal line codetable[1] typeOfHorizontalLine ('3.20.table',masterDir,localDir) : dump; -# NT - Number of time steps +# NT - Number of time steps unsigned[4] numberOfTimeSteps : dump; alias NT = numberOfTimeSteps; -# Unit of offset from reference time +# Unit of offset from reference time codetable[1] unitOfOffsetFromReferenceTime ('4.4.table',masterDir,localDir) : dump; -# Offset from reference of first time +# Offset from reference of first time # (negative value when first bit set) unsigned[4] offsetFromReferenceOfFirstTime ; -# Type of time increment +# Type of time increment codetable[1] typeOfTimeIncrement ('4.11.table',masterDir,localDir) : dump; -# Unit of time increment +# Unit of time increment codetable[1] unitOfTimeIncrement ('4.4.table',masterDir,localDir) : dump; -# Time increment +# Time increment # (negative value when first bit set) unsigned[4] timeIncrement : dump ; -# Year unsigned[2] year : dump; - -# Month unsigned[1] month : dump; - -# Day unsigned[1] day : dump; - -# Hour unsigned[1] hour : dump; - -# Minute unsigned[1] minute : dump; - -# Second unsigned[1] second : dump; - diff --git a/definitions/grib2/template.3.12.def b/definitions/grib2/template.3.12.def index d75098148..d317d6ca8 100644 --- a/definitions/grib2/template.3.12.def +++ b/definitions/grib2/template.3.12.def @@ -1,17 +1,20 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 3.12, Transverse Mercator - include "grib2/template.3.shape_of_the_earth.def"; +constant isGridded = one; + unsigned[4] Ni : dump; -alias numberOfPointsAlongAParallel=Ni; +alias numberOfPointsAlongAParallel = Ni; alias Nx = Ni; +alias numberOfPointsAlongXAxis = Ni; alias geography.Ni=Ni; unsigned[4] Nj : dump; -alias numberOfPointsAlongAMeridian=Nj; -alias Ny = Nj ; +alias numberOfPointsAlongAMeridian = Nj; +alias Ny = Nj; +alias numberOfPointsAlongYAxis = Nj; alias geography.Nj=Nj; # LaR - geographic latitude of reference point diff --git a/definitions/grib2/template.3.120.def b/definitions/grib2/template.3.120.def index 49daa9756..19edb2c6b 100644 --- a/definitions/grib2/template.3.120.def +++ b/definitions/grib2/template.3.120.def @@ -1,34 +1,37 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 3.120, Azimuth-range projection -# Nb - number of data bins along radials (A data bin is a data point representing the volume centred on it) -unsigned[4] numberOfDataBinsAlongRadials ; + +constant isGridded = one; + +# Nb - number of data bins along radials (A data bin is a data point representing the volume centred on it) +unsigned[4] numberOfDataBinsAlongRadials; alias Nb = numberOfDataBinsAlongRadials; -# Nr - number of radials -unsigned[4] numberOfRadials ; +# Nr - number of radials +unsigned[4] numberOfRadials; alias Nr = numberOfRadials; -# La1 - latitude of centre point -signed[4] latitudeOfCentrePoint ; +# La1 - latitude of centre point +signed[4] latitudeOfCentrePoint; alias La1 = latitudeOfCentrePoint; meta geography.latitudeOfCentrePointInDegrees scale(latitudeOfCentrePoint,one,grib2divider,truncateDegrees) : dump; alias La1InDegrees=latitudeOfCentrePointInDegrees; -# Lo1 - longitude of centre point -unsigned[4] longitudeOfCentrePoint ; +# Lo1 - longitude of centre point +unsigned[4] longitudeOfCentrePoint; alias Lo1 = longitudeOfCentrePoint; meta geography.longitudeOfCentrePointInDegrees scale(longitudeOfCentrePoint,one,grib2divider,truncateDegrees) : dump; alias Lo1InDegrees=longitudeOfCentrePointInDegrees; -# Dx - spacing of bins along radials -unsigned[4] spacingOfBinsAlongRadials ; +# Dx - spacing of bins along radials +unsigned[4] spacingOfBinsAlongRadials; alias Dx = spacingOfBinsAlongRadials; -# Dstart - offset from origin to inner bound -unsigned[4] offsetFromOriginToInnerBound ; +# Dstart - offset from origin to inner bound +unsigned[4] offsetFromOriginToInnerBound; alias Dstart = offsetFromOriginToInnerBound; include "grib2/template.3.scanning_mode.def"; diff --git a/definitions/grib2/template.3.1200.def b/definitions/grib2/template.3.1200.def index 5429c32f9..93ebe91fb 100644 --- a/definitions/grib2/template.3.1200.def +++ b/definitions/grib2/template.3.1200.def @@ -1,6 +1,8 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 3.1200, Time section grid +constant isGridded = one; + # NT - Number of time steps unsigned[4] numberOfTimeSteps : dump; diff --git a/definitions/grib2/template.3.130.def b/definitions/grib2/template.3.130.def index 3e1d831c7..168080b47 100644 --- a/definitions/grib2/template.3.130.def +++ b/definitions/grib2/template.3.130.def @@ -2,6 +2,10 @@ # TEMPLATE 3.130, Irregular Latitude/longitude grid +constant isGridded = one; + +# Note: This template is deprecated. + include "grib2/template.3.shape_of_the_earth.def"; points list(numberOfDataPoints) { diff --git a/definitions/grib2/template.3.140.def b/definitions/grib2/template.3.140.def index df94e3120..83ece859c 100644 --- a/definitions/grib2/template.3.140.def +++ b/definitions/grib2/template.3.140.def @@ -3,49 +3,52 @@ # TEMPLATE 3.140, Lambert azimuthal equal area projection include "grib2/template.3.shape_of_the_earth.def"; -# Nx - number of points along X-axis -unsigned[4] numberOfPointsAlongXAxis : dump ; -alias Nx = numberOfPointsAlongXAxis; -alias Ni = Nx; +constant isGridded = one; -# Ny - number of points along Y-axis -unsigned[4] numberOfPointsAlongYAxis : dump ; -alias Ny = numberOfPointsAlongYAxis; -alias Nj = Ny; +# Nx - number of points along X-axis +unsigned[4] numberOfPointsAlongXAxis : dump; +alias Nx = numberOfPointsAlongXAxis; +alias Ni = Nx; -# La1 - latitude of first grid point -signed[4] latitudeOfFirstGridPoint: edition_specific ; -alias La1 = latitudeOfFirstGridPoint; -meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint - ,one,grib2divider,truncateDegrees) : dump; +# Ny - number of points along Y-axis +unsigned[4] numberOfPointsAlongYAxis : dump; +alias Ny = numberOfPointsAlongYAxis; +alias numberOfPointsAlongAMeridian = Ny; +alias Nj = Ny; + +# La1 - latitude of first grid point +signed[4] latitudeOfFirstGridPoint: edition_specific; +alias La1 = latitudeOfFirstGridPoint; +meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint, + one,grib2divider,truncateDegrees) : dump; #meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor): no_copy; -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point signed[4] longitudeOfFirstGridPoint: edition_specific ; -alias La1 = longitudeOfFirstGridPoint; -meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint - ,one,grib2divider,truncateDegrees) : dump; +alias La1 = longitudeOfFirstGridPoint; +meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint, + one,grib2divider,truncateDegrees) : dump; #meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy; -signed[4] standardParallelInMicrodegrees : dump; +signed[4] standardParallelInMicrodegrees : dump; alias standardParallel=standardParallelInMicrodegrees; meta geography.standardParallelInDegrees scale(standardParallelInMicrodegrees,one,grib2divider,truncateDegrees) : dump; -signed[4] centralLongitudeInMicrodegrees : dump; +signed[4] centralLongitudeInMicrodegrees : dump; alias centralLongitude=centralLongitudeInMicrodegrees; meta geography.centralLongitudeInDegrees scale(centralLongitudeInMicrodegrees,one,grib2divider,truncateDegrees) : dump; -# Resolution and component flag -flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump ; +# Resolution and component flag +flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump; -# Dx - X-direction grid length in millimetres -unsigned[4] xDirectionGridLengthInMillimetres : dump ; -alias Dx = xDirectionGridLengthInMillimetres ; +# Dx - X-direction grid length in millimetres +unsigned[4] xDirectionGridLengthInMillimetres: dump; +alias Dx = xDirectionGridLengthInMillimetres; meta geography.xDirectionGridLengthInMetres scale(xDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump; alias DxInMetres = xDirectionGridLengthInMetres; -# Dy - Y-direction grid length in millimetres -unsigned[4] yDirectionGridLengthInMillimetres : dump ; +# Dy - Y-direction grid length in millimetres +unsigned[4] yDirectionGridLengthInMillimetres : dump ; alias Dy = yDirectionGridLengthInMillimetres ; meta geography.yDirectionGridLengthInMetres scale(yDirectionGridLengthInMillimetres,one,thousand,truncateDegrees): dump; alias DyInMetres = yDirectionGridLengthInMetres; diff --git a/definitions/grib2/template.3.150.def b/definitions/grib2/template.3.150.def new file mode 100644 index 000000000..ea9f76811 --- /dev/null +++ b/definitions/grib2/template.3.150.def @@ -0,0 +1,7 @@ +# TEMPLATE 3.150 - The HEALPix grid +# See https://healpix.jpl.nasa.gov/pdf/intro.pdf + +include "grib2/template.3.shape_of_the_earth.def"; +include "grib2/template.3.resolution_flags.def"; +include "grib2/template.3.healpix.def"; + diff --git a/definitions/grib2/template.3.20.def b/definitions/grib2/template.3.20.def index fb16d1bfc..fd1e33b7a 100644 --- a/definitions/grib2/template.3.20.def +++ b/definitions/grib2/template.3.20.def @@ -2,59 +2,61 @@ # TEMPLATE 3.20, Polar stereographic projection include "grib2/template.3.shape_of_the_earth.def"; -transient oneThousand=1000; -# Nx - number of points along X-axis -unsigned[4] Nx : dump; -alias Ni = Nx; -alias numberOfPointsAlongXAxis = Nx; +constant isGridded = one; + +# Nx - number of points along X-axis +unsigned[4] Nx : dump; +alias Ni = Nx; +alias numberOfPointsAlongXAxis = Nx; alias geography.Nx=Nx; -# Ny - number of points along Y-axis +# Ny - number of points along Y-axis unsigned[4] Ny : dump; -alias Nj = Ny; -alias numberOfPointsAlongYAxis = Ny; +alias Nj = Ny; +alias numberOfPointsAlongYAxis = Ny; +alias numberOfPointsAlongAMeridian = Nj; alias geography.Ny=Ny; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific ; meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump; alias La1 = latitudeOfFirstGridPoint; -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point unsigned[4] longitudeOfFirstGridPoint : edition_specific; meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump; alias Lo1 = longitudeOfFirstGridPoint; -# Resolution and component flag +# Resolution and component flag flags[1] resolutionAndComponentFlags 'grib2/tables/[tablesVersion]/3.3.table' : dump; -# LaD - Latitude where Dx and Dy are specified +# LaD - Latitude where Dx and Dy are specified signed[4] LaD : edition_specific; alias latitudeWhereDxAndDyAreSpecified=LaD; meta geography.LaDInDegrees scale(LaD,oneConstant,grib2divider,truncateDegrees) : dump; alias latitudeWhereDxAndDyAreSpecifiedInDegrees=LaDInDegrees; -# LoV - orientation of the grid -# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid) -# along which latitude increases as the y-coordinate increases +# LoV - orientation of the grid +# LoV is the longitude value of the meridian which is parallel to the y-axis (or columns of the grid) +# along which latitude increases as the y-coordinate increases signed[4] orientationOfTheGrid : edition_specific; alias LoV = orientationOfTheGrid ; meta geography.orientationOfTheGridInDegrees scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump; -# Dx - X-direction grid length -# Grid length is in units of 10-3 m at the latitude specified by LaD +# Dx - X-direction grid length +# Grid length is in units of 10-3 m at the latitude specified by LaD unsigned[4] Dx : edition_specific; meta geography.DxInMetres scale(Dx,one,thousand,truncateDegrees) : dump; alias xDirectionGridLength=Dx; -# Dy - Y-direction grid length -# Grid length is in units of 10-3 m at the latitude specified by LaD +# Dy - Y-direction grid length +# Grid length is in units of 10-3 m at the latitude specified by LaD unsigned[4] Dy : edition_specific; meta geography.DyInMetres scale(Dy,one,thousand,truncateDegrees) : dump; alias yDirectionGridLength=Dy; -# Projection centre flag +# Projection centre flag flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump; # Note our flagbit numbers go from 7 to 0, while WMO convention is from 1 to 8 # If bit 1 is 0, then the North Pole is on the projection plane diff --git a/definitions/grib2/template.3.30.def b/definitions/grib2/template.3.30.def index 10b0392ca..6e9466426 100644 --- a/definitions/grib2/template.3.30.def +++ b/definitions/grib2/template.3.30.def @@ -3,27 +3,30 @@ # TEMPLATE 3.30, Lambert conformal include "grib2/template.3.shape_of_the_earth.def"; -unsigned[4] Nx : dump; -alias Ni = Nx; -alias numberOfPointsAlongXAxis = Nx; +constant isGridded = one; + +unsigned[4] Nx : dump; +alias Ni = Nx; +alias numberOfPointsAlongXAxis = Nx; alias geography.Nx=Nx; -unsigned[4] Ny : dump; -alias Nj = Ny; -alias numberOfPointsAlongYAxis = Ny; +unsigned[4] Ny : dump; +alias Nj = Ny; +alias numberOfPointsAlongYAxis = Nj; +alias numberOfPointsAlongAMeridian = Nj; alias geography.Ny=Ny; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific; -alias La1 = latitudeOfFirstGridPoint; +alias La1 = latitudeOfFirstGridPoint; meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump; alias La1InDegrees=latitudeOfFirstGridPointInDegrees; #meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPointInDegrees,oneConstant): no_copy; -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point unsigned[4] longitudeOfFirstGridPoint : edition_specific; -alias Lo1 = longitudeOfFirstGridPoint; +alias Lo1 = longitudeOfFirstGridPoint; meta geography.longitudeOfFirstGridPointInDegrees scale(longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump; alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees; @@ -31,48 +34,48 @@ alias Lo1InDegrees = longitudeOfFirstGridPointInDegrees; include "grib2/template.3.resolution_flags.def"; -# LaD - Latitude where Dx and Dy are specified -signed[4] LaD : edition_specific ; +# LaD - Latitude where Dx and Dy are specified +signed[4] LaD : edition_specific; alias latitudeWhereDxAndDyAreSpecified=LaD; meta geography.LaDInDegrees scale(LaD,one,grib2divider,truncateDegrees) : dump; -# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases +# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases unsigned[4] LoV : edition_specific; meta geography.LoVInDegrees scale(LoV,one,grib2divider,truncateDegrees) : dump; -# Dx - X-direction grid length (in units of millimetres) -unsigned[4] Dx : edition_specific ; +# Dx - X-direction grid length (in units of millimetres) +unsigned[4] Dx : edition_specific; alias xDirectionGridLength=Dx; alias Di = Dx; meta geography.DxInMetres scale(Dx,one,thousand) : dump; -# Dy - Y-direction grid length (in units of millimetres) -unsigned[4] Dy : edition_specific ; -alias yDirectionGridLength=Dy ; +# Dy - Y-direction grid length (in units of millimetres) +unsigned[4] Dy : edition_specific; +alias yDirectionGridLength=Dy; alias Dj = Dy; meta geography.DyInMetres scale(Dy,one,thousand) : dump; -# Projection centre flag +# Projection centre flag flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump; 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; alias FirstLatitude=Latin1; meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump; -# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere +# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere signed[4] Latin2 : dump; alias SecondLatitude=Latin2; meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump; -# Latitude of the southern pole of projection +# Latitude of the southern pole of projection signed[4] latitudeOfSouthernPole : edition_specific; alias latitudeOfTheSouthernPoleOfProjection=latitudeOfSouthernPole; meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfSouthernPole,one,grib2divider,truncateDegrees) : dump; -# Longitude of the southern pole of projection +# Longitude of the southern pole of projection unsigned[4] longitudeOfSouthernPole : edition_specific; alias longitudeOfTheSouthernPoleOfProjection=longitudeOfSouthernPole; meta geography.longitudeOfSouthernPoleInDegrees scale(longitudeOfSouthernPole,oneConstant,grib2divider,truncateDegrees) : dump; diff --git a/definitions/grib2/template.3.31.def b/definitions/grib2/template.3.31.def index 1b408693d..0db29f7a4 100644 --- a/definitions/grib2/template.3.31.def +++ b/definitions/grib2/template.3.31.def @@ -3,60 +3,61 @@ # TEMPLATE 3.31, Albers equal area include "grib2/template.3.shape_of_the_earth.def"; -# Nx - number of points along the X-axis +constant isGridded = one; + +# Nx - number of points along the X-axis unsigned[4] Nx : dump; alias numberOfPointsAlongTheXAxis=Nx; alias geography.Nx=Nx; -# Ny - number of points along the Y-axis +# Ny - number of points along the Y-axis unsigned[4] Ny : dump; alias numberOfPointsAlongTheYAxis=Ny; alias geography.Ny=Ny; -# La1 - latitude of first grid point +# La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific,dump; alias La1 = latitudeOfFirstGridPoint; -# Lo1 - longitude of first grid point +# Lo1 - longitude of first grid point unsigned[4] longitudeOfFirstGridPoint : edition_specific,dump; alias Lo1 = longitudeOfFirstGridPoint; 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; alias latitudeWhereDxAndDyAreSpecified=LaD ; -# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases +# LoV - Longitude of meridian parallel to Y-axis along which latitude increases as the Y-coordinate increases unsigned[4] LoV : dump; -# Dx - X-direction grid length +# Dx - X-direction grid length unsigned[4] xDirectionGridLength : dump; alias Dx = xDirectionGridLength; -# Dy - Y-direction grid length +# Dy - Y-direction grid length unsigned[4] yDirectionGridLength : dump; alias Dy = yDirectionGridLength; -# Projection centre flag +# Projection centre flag flags[1] projectionCentreFlag 'grib2/tables/[tablesVersion]/3.5.table' : dump; 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; meta geography.Latin1InDegrees scale(Latin1,one,grib2divider,truncateDegrees) : dump; -# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere +# Latin 2 - second latitude from the pole at which the secant cone cuts the sphere unsigned[4] Latin2 : edition_specific; meta geography.Latin2InDegrees scale(Latin2,one,grib2divider,truncateDegrees) : dump; -# Latitude of the southern pole of projection +# Latitude of the southern pole of projection signed[4] latitudeOfTheSouthernPoleOfProjection : edition_specific ; alias latitudeOfSouthernPole=latitudeOfTheSouthernPoleOfProjection; meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfTheSouthernPoleOfProjection ,one,grib2divider,truncateDegrees) : dump; - -# Longitude of the southern pole of projection +# Longitude of the southern pole of projection unsigned[4] longitudeOfTheSouthernPoleOfProjection :edition_specific; alias longitudeOfSouthernPole=longitudeOfTheSouthernPoleOfProjection; meta geography.longitudeOfSouthernPoleInDegrees scale(longitudeOfTheSouthernPoleOfProjection,oneConstant,grib2divider,truncateDegrees) : dump; diff --git a/definitions/grib2/template.3.62.def b/definitions/grib2/template.3.62.def index 83e2690b5..e1d2407ce 100644 --- a/definitions/grib2/template.3.62.def +++ b/definitions/grib2/template.3.62.def @@ -9,8 +9,6 @@ include "grib2/template.3.bf.def" include "grib2/template.3.shape_of_the_earth.def"; -transient oneThousand=1000; - # La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific ; meta geography.latitudeOfFirstGridPointInDegrees scale(latitudeOfFirstGridPoint,oneConstant,grib2divider,truncateDegrees) : dump; diff --git a/definitions/grib2/template.3.90.def b/definitions/grib2/template.3.90.def index a4f6a092f..00f359383 100644 --- a/definitions/grib2/template.3.90.def +++ b/definitions/grib2/template.3.90.def @@ -3,20 +3,23 @@ # TEMPLATE 3.90, Space view perspective or orthographic include "grib2/template.3.shape_of_the_earth.def"; -unsigned[4] Nx : dump; -alias Ni = Nx; -alias numberOfPointsAlongXAxis = Nx; +constant isGridded = one; + +unsigned[4] Nx : dump; +alias Ni = Nx; +alias numberOfPointsAlongXAxis = Nx; alias geography.Nx=Nx; -unsigned[4] Ny : dump; -alias Nj = Ny; -alias numberOfPointsAlongYAxis = Ny; +unsigned[4] Ny : dump; +alias Nj = Ny; +alias numberOfPointsAlongYAxis = Nj; +alias numberOfPointsAlongAMeridian = Nj; alias geography.Ny=Ny; -# Lap - latitude of sub-satellite point +# Lap - latitude of sub-satellite point signed[4] latitudeOfSubSatellitePoint; -# Lop - longitude of sub-satellite point +# Lop - longitude of sub-satellite point signed[4] longitudeOfSubSatellitePoint; meta geography.latitudeOfSubSatellitePointInDegrees scale(latitudeOfSubSatellitePoint,one,grib2divider,truncateDegrees) : dump; @@ -24,47 +27,47 @@ meta geography.longitudeOfSubSatellitePointInDegrees scale(longitudeOfSubSatel include "grib2/template.3.resolution_flags.def"; -# dx - apparent diameter of Earth in grid lengths, in X-direction -unsigned[4] dx : dump; +# dx - apparent diameter of Earth in grid lengths, in X-direction +unsigned[4] dx : dump; alias geography.dx=dx; -# dy - apparent diameter of Earth in grid lengths, in Y-direction -unsigned[4] dy : dump; +# dy - apparent diameter of Earth in grid lengths, in Y-direction +unsigned[4] dy : dump; alias geography.dy=dy; -# Xp - X-coordinate of sub-satellite point +# Xp - X-coordinate of sub-satellite point # (in units of 10^-3 grid length expressed as an integer) -unsigned[4] Xp : no_copy; +unsigned[4] Xp : no_copy; meta geography.XpInGridLengths scale(Xp,one,thousand) : dump; alias xCoordinateOfSubSatellitePoint=XpInGridLengths; -# Yp - Y-coordinate of sub-satellite point +# Yp - Y-coordinate of sub-satellite point # (in units of 10^-3 grid length expressed as an integer) -unsigned[4] Yp : no_copy; +unsigned[4] Yp : no_copy; meta geography.YpInGridLengths scale(Yp,one,thousand) : dump; alias yCoordinateOfSubSatellitePoint=YpInGridLengths; 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 signed[4] orientationOfTheGrid : edition_specific; meta geography.orientationOfTheGridInDegrees - scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump; + scale(orientationOfTheGrid,oneConstant,grib2divider,truncateDegrees) : dump; -# Nr - altitude of the camera from the Earth's centre, measured in units of the Earth's +# Nr - altitude of the camera from the Earth's centre, measured in units of the Earth's # (equatorial) radius multiplied by a scale factor of 10^6 unsigned[4] Nr : edition_specific,can_be_missing,no_copy; alias altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius = Nr; meta geography.NrInRadiusOfEarth scale(Nr,oneConstant,oneMillionConstant,truncateDegrees) : dump; alias NrInRadiusOfEarthScaled=NrInRadiusOfEarth; -# Xo - X-coordinate of origin of sector image +# Xo - X-coordinate of origin of sector image unsigned[4] Xo : dump; alias xCoordinateOfOriginOfSectorImage=Xo; alias geography.Xo=Xo; -# Yo - Y-coordinate of origin of sector image +# Yo - Y-coordinate of origin of sector image unsigned[4] Yo : dump; alias yCoordinateOfOriginOfSectorImage=Yo; alias geography.Yo=Yo; diff --git a/definitions/grib2/template.3.bf.def b/definitions/grib2/template.3.bf.def index a2c12db0f..7274dedcd 100644 --- a/definitions/grib2/template.3.bf.def +++ b/definitions/grib2/template.3.bf.def @@ -1,5 +1,6 @@ label "BiFourier coefficients"; constant biFourierCoefficients=1; +constant isGridded = one; codetable[1] spectralType ('3.6.table',masterDir,localDir) = 2 : no_copy; alias spectralDataRepresentationType=spectralType; diff --git a/definitions/grib2/template.3.grid.def b/definitions/grib2/template.3.grid.def index f0d586dec..28070d542 100644 --- a/definitions/grib2/template.3.grid.def +++ b/definitions/grib2/template.3.grid.def @@ -1,17 +1,21 @@ # (C) Copyright 2005- ECMWF. +constant isGridded = one; + unsigned[4] Ni : can_be_missing,dump; alias numberOfPointsAlongAParallel=Ni; +alias numberOfPointsAlongXAxis=Ni; alias Nx = Ni; unsigned[4] Nj : dump; alias numberOfPointsAlongAMeridian=Nj; +alias numberOfPointsAlongYAxis= Nj; alias Ny = Nj; alias geography.Ni=Ni; alias geography.Nj=Nj; -# Basic angle of the initial production domain +# Basic angle of the initial production domain unsigned[4] basicAngleOfTheInitialProductionDomain = 0; transient mBasicAngle=basicAngleOfTheInitialProductionDomain*oneMillionConstant; transient angleMultiplier = 1; @@ -24,35 +28,31 @@ when (basicAngleOfTheInitialProductionDomain == 0) { set mAngleMultiplier = mBasicAngle; } -# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments +# Subdivisions of basic angle used to define extreme longitudes and latitudes, and direction increments unsigned[4] subdivisionsOfBasicAngle = missing() : can_be_missing; transient angleDivisor = 1000000; when (missing(subdivisionsOfBasicAngle) || subdivisionsOfBasicAngle == 0) { - set angleDivisor = 1000000; + set angleDivisor = 1000000; } else { - set angleDivisor = subdivisionsOfBasicAngle; + set angleDivisor = subdivisionsOfBasicAngle; } # La1 - latitude of first grid point signed[4] latitudeOfFirstGridPoint : edition_specific ; -alias La1 = latitudeOfFirstGridPoint; +alias La1 = latitudeOfFirstGridPoint; #meta latitudeOfFirstGridPointInMicrodegrees times(latitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy; -# Lo1 - longitude of first grid point - +# Lo1 - longitude of first grid point signed[4] longitudeOfFirstGridPoint ; -alias Lo1 = longitudeOfFirstGridPoint; -#meta longitudeOfFirstGridPointInMicrodegrees times(longitudeOfFirstGridPoint,mAngleMultiplier,angleDivisor) : no_copy; +alias Lo1 = longitudeOfFirstGridPoint; include "grib2/template.3.resolution_flags.def" -# La2 - latitude of last grid point -signed[4] latitudeOfLastGridPoint : edition_specific; -alias La2 = latitudeOfLastGridPoint; -#meta latitudeOfLastGridPointInMicrodegrees times(latitudeOfLastGridPoint,mAngleMultiplier,angleDivisor) : no_copy; +# La2 - latitude of last grid point +signed[4] latitudeOfLastGridPoint : edition_specific; +alias La2 = latitudeOfLastGridPoint; -# Lo2 - longitude of last grid point -signed[4] longitudeOfLastGridPoint : edition_specific ; -alias Lo2 = longitudeOfLastGridPoint; -#meta longitudeOfLastGridPointInMicrodegrees times(longitudeOfLastGridPoint,mAngleMultiplier,angleDivisor) : no_copy; +# Lo2 - longitude of last grid point +signed[4] longitudeOfLastGridPoint : edition_specific ; +alias Lo2 = longitudeOfLastGridPoint; diff --git a/definitions/grib2/template.3.healpix.def b/definitions/grib2/template.3.healpix.def new file mode 100644 index 000000000..47e1a63f8 --- /dev/null +++ b/definitions/grib2/template.3.healpix.def @@ -0,0 +1,48 @@ +# (C) Copyright 2005- ECMWF. + +# See https://healpix.jpl.nasa.gov/pdf/intro.pdf + +constant isGridded = one; + +# Number of grid points along one side of one of the 12 base resolution pixels (>=1) +# The number of data points should be = 12 * Nside * Nside +unsigned[4] Nside : edition_specific,dump; +alias N = Nside; +alias numberOfPointsAlongASide = Nside; +alias geography.Nside = Nside; + +# Longitude of the centre line of the first rhomboid +unsigned[4] longitudeOfFirstGridPoint = 45000000 : edition_specific,dump; +alias Lo = longitudeOfFirstGridPoint; +meta geography.longitudeOfFirstGridPointInDegrees + scale(longitudeOfFirstGridPoint,one,grib2divider,truncateDegrees) : dump; + +# Position of the points. Default = Grid points at centres of shape +codetable[1] gridPointPosition ('3.8.table',masterDir,localDir) = 4 : edition_specific,dump; +alias geography.gridPointPosition = gridPointPosition; + +# Ordering convention of points. Default = ring +codetable[1] ordering ('3.12.table',masterDir,localDir) = 0 : edition_specific,dump; +concept orderingConvention(unknown) { + "ring" = { ordering = 0; } + "nested" = { ordering = 1; } +} : dump; +alias geography.pointsOrdering = orderingConvention; + +flags[1] scanningMode 'grib2/tables/[tablesVersion]/3.13.table'; +flagbit iScansNegatively(scanningMode,7) : dump; # WMO bit 1 +flagbit jScansPositively(scanningMode,6) : dump; # WMO bit 2 +transient iScansPositively = !iScansNegatively : constraint; +transient jScansNegatively = !jScansPositively : constraint; + +iterator healpix(numberOfPoints,missingValue,values,Nside,orderingConvention); +nearest healpix(values,radius,Nx,Ny); + +meta latLonValues latlonvalues(values); +alias latitudeLongitudeValues=latLonValues; +meta latitudes latitudes(values,0); +meta longitudes longitudes(values,0); +meta distinctLatitudes latitudes(values,1); +meta distinctLongitudes longitudes(values,1); + +meta gridName sprintf("H%d", N) : no_copy; diff --git a/definitions/grib2/template.3.latlon.def b/definitions/grib2/template.3.latlon.def index cc3b8cc5f..aa2c945d7 100644 --- a/definitions/grib2/template.3.latlon.def +++ b/definitions/grib2/template.3.latlon.def @@ -2,17 +2,15 @@ include "grib2/template.3.grid.def"; -# Di - i direction increment - +# Di - i direction increment unsigned[4] iDirectionIncrement : can_be_missing,edition_specific; -alias Di = iDirectionIncrement; -alias Dx = iDirectionIncrement; - -# Dj - j direction increment +alias Di = iDirectionIncrement; +alias Dx = iDirectionIncrement; +# Dj - j direction increment unsigned[4] jDirectionIncrement : can_be_missing,edition_specific; -alias Dj = jDirectionIncrement; -alias Dy = jDirectionIncrement; +alias Dj = jDirectionIncrement; +alias Dy = jDirectionIncrement; include "grib2/template.3.scanning_mode.def"; diff --git a/definitions/grib2/template.3.latlon_vares.def b/definitions/grib2/template.3.latlon_vares.def index b3ef76569..3c29438ea 100644 --- a/definitions/grib2/template.3.latlon_vares.def +++ b/definitions/grib2/template.3.latlon_vares.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. - -unsigned[4] Ni : can_be_missing,dump; +# Variable resolution latitude/longitude +unsigned[4] Ni : dump; alias numberOfPointsAlongAParallel=Ni; alias Nx = Ni; @@ -39,9 +39,9 @@ include "grib2/template.3.resolution_flags.def" include "grib2/template.3.scanning_mode.def"; longitudesList list(Ni) { - unsigned[4] longitudes; + unsigned[4] longitude; } latitudesList list(Nj) { - signed[4] latitudes; + signed[4] latitude; } diff --git a/definitions/grib2/template.3.rotation.def b/definitions/grib2/template.3.rotation.def index f797170a5..33c319735 100644 --- a/definitions/grib2/template.3.rotation.def +++ b/definitions/grib2/template.3.rotation.def @@ -1,18 +1,18 @@ # (C) Copyright 2005- ECMWF. -# Latitude of the southern pole of projection +# Latitude of the southern pole of projection signed[4] latitudeOfSouthernPole : no_copy; alias latitudeOfTheSouthernPoleOfProjection=latitudeOfSouthernPole; -# Longitude of the southern pole of projection +# Longitude of the southern pole of projection unsigned[4] longitudeOfSouthernPole : no_copy; alias longitudeOfTheSouthernPoleOfProjection=longitudeOfSouthernPole; -meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfSouthernPole +meta geography.latitudeOfSouthernPoleInDegrees scale(latitudeOfSouthernPole ,one,grib2divider,truncateDegrees) : dump; -meta geography.longitudeOfSouthernPoleInDegrees g2lon(longitudeOfSouthernPole) : dump; +meta geography.longitudeOfSouthernPoleInDegrees g2lon(longitudeOfSouthernPole) : dump; -# Angle of rotation of projection +# Angle of rotation of projection ieeefloat angleOfRotation : dump,edition_specific ; alias geography.angleOfRotationInDegrees=angleOfRotation; diff --git a/definitions/grib2/template.3.shape_of_the_earth.def b/definitions/grib2/template.3.shape_of_the_earth.def index 2ff2dcdf0..6bd4deceb 100644 --- a/definitions/grib2/template.3.shape_of_the_earth.def +++ b/definitions/grib2/template.3.shape_of_the_earth.def @@ -2,25 +2,25 @@ codetable[1] shapeOfTheEarth ('3.2.table',masterDir,localDir) : dump; -# Scale factor of radius of spherical earth +# Scale factor of radius of spherical earth unsigned[1] scaleFactorOfRadiusOfSphericalEarth = missing() : can_be_missing, edition_specific; -# Scaled value of radius of spherical earth (in metres) +# Scaled value of radius of spherical earth (in metres) unsigned[4] scaledValueOfRadiusOfSphericalEarth = missing(): can_be_missing, edition_specific; -# Scale factor of major axis of oblate spheroid earth +# Scale factor of major axis of oblate spheroid earth unsigned[1] scaleFactorOfEarthMajorAxis = missing(): can_be_missing, edition_specific; alias scaleFactorOfMajorAxisOfOblateSpheroidEarth=scaleFactorOfEarthMajorAxis; -# Scaled value of major axis of oblate spheroid earth +# Scaled value of major axis of oblate spheroid earth unsigned[4] scaledValueOfEarthMajorAxis = missing(): can_be_missing, edition_specific; alias scaledValueOfMajorAxisOfOblateSpheroidEarth=scaledValueOfEarthMajorAxis; -# Scale factor of minor axis of oblate spheroid earth +# Scale factor of minor axis of oblate spheroid earth unsigned[1] scaleFactorOfEarthMinorAxis = missing(): can_be_missing, edition_specific; alias scaleFactorOfMinorAxisOfOblateSpheroidEarth=scaleFactorOfEarthMinorAxis ; -# Scaled value of minor axis of oblate spheroid earth +# Scaled value of minor axis of oblate spheroid earth unsigned[4] scaledValueOfEarthMinorAxis = missing(): can_be_missing, edition_specific; alias scaledValueOfMinorAxisOfOblateSpheroidEarth=scaledValueOfEarthMinorAxis; diff --git a/definitions/grib2/template.3.spherical_harmonics.def b/definitions/grib2/template.3.spherical_harmonics.def index 79be41bb4..2adbe405b 100644 --- a/definitions/grib2/template.3.spherical_harmonics.def +++ b/definitions/grib2/template.3.spherical_harmonics.def @@ -1,28 +1,29 @@ # (C) Copyright 2005- ECMWF. constant sphericalHarmonics=1; - # constant dataRepresentationType = 50; -# J - pentagonal resolution parameter +# J - pentagonal resolution parameter unsigned[4] J : dump; alias pentagonalResolutionParameterJ=J ; alias geography.J=J; -# K - pentagonal resolution parameter +# K - pentagonal resolution parameter unsigned[4] K : dump; alias pentagonalResolutionParameterK=K; alias geography.K=K; -# M - pentagonal resolution parameter +# M - pentagonal resolution parameter unsigned[4] M : dump; alias pentagonalResolutionParameterM = M ; alias geography.M=M; -# Representation type indicating the method used to define the norm +# Representation type indicating the method used to define the norm codetable[1] spectralType ('3.6.table',masterDir,localDir) = 1 : no_copy; alias spectralDataRepresentationType=spectralType; -# Representation mode indicating the order of the coefficients +# Representation mode indicating the order of the coefficients codetable[1] spectralMode ('3.7.table',masterDir,localDir) = 1 : no_copy; alias spectralDataRepresentationMode=spectralMode; + +constant isGridded = zero; diff --git a/definitions/grib2/template.3.stretching.def b/definitions/grib2/template.3.stretching.def index 11c0b12c3..38e435802 100644 --- a/definitions/grib2/template.3.stretching.def +++ b/definitions/grib2/template.3.stretching.def @@ -1,19 +1,19 @@ # (C) Copyright 2005- ECMWF. -# Latitude of the pole of stretching -signed[4] latitudeOfThePoleOfStretching : edition_specific,no_copy; +# Latitude of the pole of stretching +signed[4] latitudeOfThePoleOfStretching : edition_specific,no_copy; -# Longitude of the pole of stretching -signed[4] longitudeOfThePoleOfStretching : edition_specific,no_copy; +# Longitude of the pole of stretching +signed[4] longitudeOfThePoleOfStretching : edition_specific,no_copy; meta geography.latitudeOfStretchingPoleInDegrees scale(latitudeOfThePoleOfStretching,oneConstant,grib2divider,truncateDegrees) : dump; meta geography.longitudeOfStretchingPoleInDegrees scale(longitudeOfThePoleOfStretching,oneConstant,grib2divider,truncateDegrees) : dump; -# Stretching factor -unsigned[4] stretchingFactorScaled : edition_specific,no_copy; +# Stretching factor +unsigned[4] stretchingFactorScaled : edition_specific,no_copy; -meta geography.stretchingFactor - scale(stretchingFactorScaled,oneConstant,grib2divider) : dump; +meta geography.stretchingFactor + scale(stretchingFactorScaled,oneConstant,grib2divider) : dump; diff --git a/definitions/grib2/template.4.109.def b/definitions/grib2/template.4.109.def index ba75dadd6..bece80dee 100644 --- a/definitions/grib2/template.4.109.def +++ b/definitions/grib2/template.4.109.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. -# TEMPLATE 4.109, Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical properties +# TEMPLATE 4.109, Individual ensemble forecast, control and perturbed, at a horizontal level or in a horizontal layer at a point in time for generic optical properties include "grib2/template.4.parameter.def" include "grib2/template.4.optical.def" diff --git a/definitions/grib2/template.4.20.def b/definitions/grib2/template.4.20.def index 86cc2e8e7..9ba5668eb 100644 --- a/definitions/grib2/template.4.20.def +++ b/definitions/grib2/template.4.20.def @@ -1,64 +1,64 @@ # (C) Copyright 2005- ECMWF. # TEMPLATE 4.20, Radar product -# Parameter category +# Parameter category codetable[1] parameterCategory ('4.1.[discipline:l].table',masterDir,localDir) : dump; -# Parameter number +# Parameter number codetable[1] parameterNumber ('4.2.[discipline:l].[parameterCategory:l].table',masterDir,localDir) : dump; meta parameterUnits codetable_units(parameterNumber) : dump; meta parameterName codetable_title(parameterNumber) : dump; -# Type of generating process +# Type of generating process codetable[1] typeOfGeneratingProcess ('4.3.table',masterDir,localDir) : dump; -# Number of radar sites used +# Number of radar sites used unsigned[1] numberOfRadarSitesUsed : dump; -# Indicator of unit of time range +# Indicator of unit of time range codetable[1] indicatorOfUnitOfTimeRange ('4.4.table',masterDir,localDir) : dump; 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; -# Site latitude (in 10-6 degree) +# Site latitude (in 10-6 degree) unsigned[4] siteLatitude : dump; -# Site longitude (in 10-6 degree) +# Site longitude (in 10-6 degree) unsigned[4] siteLongitude : dump; -# Site elevation (meters) +# Site elevation (meters) unsigned[2] siteElevation : dump; -# Site ID (alphanumeric) +# Site ID (alphanumeric) unsigned[4] siteId : dump; -# Site ID (numeric) +# Site ID (numeric) unsigned[2] siteId : dump; -# Operating mode +# Operating mode codetable[1] operatingMode ('4.12.table',masterDir,localDir) : dump; -# Reflectivity calibration constant (tenths of dB) +# Reflectivity calibration constant (tenths of dB) unsigned[1] reflectivityCalibrationConstant : dump; -# Quality control indicator +# Quality control indicator codetable[1] qualityControlIndicator ('4.13.table',masterDir,localDir) : dump; -# Clutter filter indicator +# Clutter filter indicator codetable[1] clutterFilterIndicator ('4.14.table',masterDir,localDir) : dump; -# Constant antenna elevation angle (tenths of degree true) +# Constant antenna elevation angle (tenths of degree true) unsigned[1] constantAntennaElevationAngle : dump; -# Accumulation interval (minutes) +# Accumulation interval (minutes) unsigned[2] accumulationInterval : dump; -# Reference reflectivity for echo top (dB) +# Reference reflectivity for echo top (dB) unsigned[1] referenceReflectivityForEchoTop : dump; -# Range bin spacing (meters) +# Range bin spacing (meters) unsigned[3] rangeBinSpacing : dump; -# Radial angular spacing (tenths of degree true) +# Radial angular spacing (tenths of degree true) unsigned[2] radialAngularSpacing : dump; diff --git a/definitions/grib2/template.4.categorical.def b/definitions/grib2/template.4.categorical.def index 561f28b18..102d50e51 100644 --- a/definitions/grib2/template.4.categorical.def +++ b/definitions/grib2/template.4.categorical.def @@ -1,21 +1,14 @@ # (C) Copyright 2005- ECMWF. -# Total number of forecast probabilities -unsigned[1] numberOfCategories : dump; +# Total number of forecast probabilities +unsigned[1] numberOfCategories : dump; -# categories +# Categories categories list(numberOfCategories) { codetable[1] categoryType ('4.91.table',masterDir,localDir): dump; unsigned[1] codeFigure : dump; - # Scale factor of lower limit unsigned[1] scaleFactorOfLowerLimit : can_be_missing,dump ; - - # Scaled value of lower limit unsigned[4] scaledValueOfLowerLimit : can_be_missing,dump ; - - # Scale factor of upper limit unsigned[1] scaleFactorOfUpperLimit : can_be_missing,dump; - - # Scaled value of upper limit unsigned[4] scaledValueOfUpperLimit : can_be_missing,dump; } diff --git a/definitions/grib2/template.4.circular_cluster.def b/definitions/grib2/template.4.circular_cluster.def index f6e2cade4..31c85bb78 100644 --- a/definitions/grib2/template.4.circular_cluster.def +++ b/definitions/grib2/template.4.circular_cluster.def @@ -1,45 +1,45 @@ # (C) Copyright 2005- ECMWF. -# Cluster identifier +# Cluster identifier unsigned[1] clusterIdentifier : dump; alias number=clusterIdentifier; -# Number of cluster to which the high resolution control belongs +# Number of cluster to which the high resolution control belongs unsigned[1] numberOfClusterHighResolution : dump; -# Number of cluster to which the low resolution control belongs +# Number of cluster to which the low resolution control belongs unsigned[1] numberOfClusterLowResolution : dump; -# Total number of clusters +# Total number of clusters unsigned[1] totalNumberOfClusters : dump; alias totalNumber=totalNumberOfClusters; -# Clustering method +# Clustering method codetable[1] clusteringMethod ('4.8.table',masterDir,localDir) : dump; -# Latitude of central point in cluster domain +# Latitude of central point in cluster domain unsigned[4] latitudeOfCentralPointInClusterDomain : dump; -# Longitude of central point in cluster domain +# Longitude of central point in cluster domain unsigned[4] longitudeOfCentralPointInClusterDomain : dump; -# Radius of cluster domain +# Radius of cluster domain unsigned[4] radiusOfClusterDomain : dump ; -# NC - Number of forecasts in the cluster +# NC - Number of forecasts in the cluster unsigned[1] numberOfForecastsInTheCluster : dump; -alias NC = numberOfForecastsInTheCluster; -# Scale factor of standard deviation in the cluster +alias NC = numberOfForecastsInTheCluster; +# Scale factor of standard deviation in the cluster unsigned[1] scaleFactorOfStandardDeviation : edition_specific ; alias scaleFactorOfStandardDeviationInTheCluster=scaleFactorOfStandardDeviation; -# Scaled value of standard deviation in the cluster +# Scaled value of standard deviation in the cluster unsigned[4] scaledValueOfStandardDeviation : dump ; alias scaledValueOfStandardDeviationInTheCluster=scaledValueOfStandardDeviation; -# Scale factor of distance of the cluster from ensemble mean +# Scale factor of distance of the cluster from ensemble mean unsigned[1] scaleFactorOfDistanceFromEnsembleMean : dump; -# Scaled value of distance of the cluster from ensemble mean +# Scaled value of distance of the cluster from ensemble mean unsigned[4] scaledValueOfDistanceFromEnsembleMean : dump; diff --git a/definitions/grib2/template.4.eps.def b/definitions/grib2/template.4.eps.def index bda5c6b25..1f80b38d1 100644 --- a/definitions/grib2/template.4.eps.def +++ b/definitions/grib2/template.4.eps.def @@ -1,17 +1,17 @@ # (C) Copyright 2005- ECMWF. -# Type of ensemble forecast +# Type of ensemble forecast codetable[1] typeOfEnsembleForecast ('4.6.table',masterDir,localDir) = 255 : dump; -# Perturbation number +# Perturbation number unsigned[1] perturbationNumber : dump; alias number=perturbationNumber; -# Number of forecasts in ensemble +# Number of forecasts in ensemble unsigned[1] numberOfForecastsInEnsemble : dump; alias totalNumber=numberOfForecastsInEnsemble; -# Rules for TIGGE, S2S, UERRA and CRRA +# Rules for TIGGE, S2S, UERRA and CRRA if (productionStatusOfProcessedData == 4 || productionStatusOfProcessedData == 5 || productionStatusOfProcessedData == 6 || diff --git a/definitions/grib2/template.4.horizontal.def b/definitions/grib2/template.4.horizontal.def index 3749b84b4..e5a45721a 100644 --- a/definitions/grib2/template.4.horizontal.def +++ b/definitions/grib2/template.4.horizontal.def @@ -1,26 +1,26 @@ # (C) Copyright 2005- ECMWF. -# Type of first fixed surface -codetable[1] typeOfFirstFixedSurface ('4.5.table',masterDir,localDir) : dump,no_copy,edition_specific,string_type; +# Type of first fixed surface +codetable[1] typeOfFirstFixedSurface ('4.5.table',masterDir,localDir) : dump,edition_specific,string_type; meta unitsOfFirstFixedSurface codetable_units(typeOfFirstFixedSurface) : dump; meta nameOfFirstFixedSurface codetable_title(typeOfFirstFixedSurface) : dump; -# Scale factor of first fixed surface -signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +# Scale factor of first fixed surface +signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; -# Scaled value of first fixed surface -unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +# Scaled value of first fixed surface +unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; -# Type of second fixed surface -codetable[1] typeOfSecondFixedSurface ('4.5.table',masterDir,localDir) = 255 : dump,no_copy,edition_specific; +# Type of second fixed surface +codetable[1] typeOfSecondFixedSurface ('4.5.table',masterDir,localDir) = 255 : dump,edition_specific; meta unitsOfSecondFixedSurface codetable_units(typeOfSecondFixedSurface) : dump; meta nameOfSecondFixedSurface codetable_title(typeOfSecondFixedSurface) : dump; -# Scale factor of second fixed surface -signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +# Scale factor of second fixed surface +signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; -# Scaled value of second fixed surface -unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +# Scaled value of second fixed surface +unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; transient pressureUnits="hPa"; diff --git a/definitions/grib2/template.4.localtime.def b/definitions/grib2/template.4.localtime.def index 01491217c..72a00e586 100644 --- a/definitions/grib2/template.4.localtime.def +++ b/definitions/grib2/template.4.localtime.def @@ -16,10 +16,10 @@ unsigned[1] numberOfForecastsUsedInLocalTime : dump; localTimeForecastList list(numberOfForecastsUsedInLocalTime) { - # Year of Forecast used in Local Time + # Year of Forecast used in Local Time unsigned[2] yearOfForecastUsedInLocalTime=0 : dump, edition_specific; - # Month of Forecast used in Local Time + # Month of Forecast used in Local Time unsigned[1] monthOfForecastUsedInLocalTime=0 : dump, edition_specific; # Day of Forecast used in Local Time @@ -34,7 +34,7 @@ localTimeForecastList list(numberOfForecastsUsedInLocalTime) # Second of Forecast used in Local Time unsigned[1] secondOfForecastUsedInLocalTime=0 : dump, edition_specific; - # Indicator of unit of time for ForecastTime + # Indicator of unit of time for ForecastTime codetable[1] indicatorOfUnitForForecastTime ('4.4.table',masterDir,localDir)=1 : dump; # Length of the time range over which statistical processing is done, in units defined by the previous octet @@ -60,7 +60,7 @@ if (numberOfForecastsUsedInLocalTime == 1) { meta dateOfForecastUsedInLocalTime g2date(yearOfForecastUsedInLocalTime, monthOfForecastUsedInLocalTime, dayOfForecastUsedInLocalTime) : dump; meta timeOfForecastUsedInLocalTime time(hourOfForecastUsedInLocalTime, minuteOfForecastUsedInLocalTime, secondOfForecastUsedInLocalTime) : dump; - #transient stepOfForecastUsedInLocalTime = forecastTime : dump; + #transient stepOfForecastUsedInLocalTime = forecastTime : dump; # need something here to compute the diff between date time of *OfForecastUsedInLocalTime and the local time defined in section 1 (dataDate and dataTime) # this would be the offset (step) used to index data in mars as mars.step @@ -103,10 +103,10 @@ if (numberOfForecastsUsedInLocalTime > 1) { meta selectedSecond element(secondOfForecastUsedInLocalTime, selectedFcIndex); meta dateOfForecastUsedInLocalTime g2date(selectedYear, selectedMonth, selectedDay); meta timeOfForecastUsedInLocalTime time(selectedHour, selectedMinute, selectedSecond); - + meta jdLocal julian_day(dataDate, hour,minute,second); #section 1 meta jdSelected julian_day(dateOfForecastUsedInLocalTime, selectedHour, selectedMinute, selectedSecond); - + transient diffInDays = (jdLocal - jdSelected) : hidden; # float transient diffInHours = (diffInDays * 1440 + 0.5)/60 : hidden; meta _endStep round(diffInHours, 10): dump, long_type; diff --git a/definitions/grib2/template.4.point_in_time.def b/definitions/grib2/template.4.point_in_time.def index f2e8606fd..98885540a 100644 --- a/definitions/grib2/template.4.point_in_time.def +++ b/definitions/grib2/template.4.point_in_time.def @@ -28,4 +28,5 @@ alias time.endStep=endStep; meta time.validityDate validity_date(dataDate,dataTime,step,stepUnits) : no_copy; meta time.validityTime validity_time(dataDate,dataTime,step,stepUnits) : no_copy; +meta validityDateTime julian_date(validityDate, validityTime) : no_copy; diff --git a/definitions/grib2/template.4.rectangular_cluster.def b/definitions/grib2/template.4.rectangular_cluster.def index 1d4f359f8..24d2f5138 100644 --- a/definitions/grib2/template.4.rectangular_cluster.def +++ b/definitions/grib2/template.4.rectangular_cluster.def @@ -1,49 +1,49 @@ # (C) Copyright 2005- ECMWF. -# Cluster identifier +# Cluster identifier unsigned[1] clusterIdentifier : dump ; alias number=clusterIdentifier; -# Number of cluster to which the high resolution control belongs +# Number of cluster to which the high resolution control belongs unsigned[1] NH : dump; -# Number of cluster to which the low resolution control belongs +# Number of cluster to which the low resolution control belongs unsigned[1] NL : dump ; -# Total number of clusters +# Total number of clusters unsigned[1] totalNumberOfClusters : dump ; alias totalNumber=totalNumberOfClusters; -# Clustering method +# Clustering method codetable[1] clusteringMethod ('4.8.table',masterDir,localDir) : dump; -# Northern latitude of cluster domain +# Northern latitude of cluster domain unsigned[4] northernLatitudeOfClusterDomain : dump ; -# Southern latitude of cluster domain +# Southern latitude of cluster domain unsigned[4] southernLatitudeOfClusterDomain : dump ; -# Eastern longitude of cluster domain +# Eastern longitude of cluster domain unsigned[4] easternLongitudeOfClusterDomain : dump; -# Western longitude of cluster domain +# Western longitude of cluster domain unsigned[4] westernLongitudeOfClusterDomain : dump ; -# NC - Number of forecasts in the cluster +# NC - Number of forecasts in the cluster unsigned[1] numberOfForecastsInTheCluster : dump ; alias NC = numberOfForecastsInTheCluster; -# Scale factor of standard deviation in the cluster +# Scale factor of standard deviation in the cluster unsigned[1] scaleFactorOfStandardDeviation : edition_specific ; alias scaleFactorOfStandardDeviationInTheCluster=scaleFactorOfStandardDeviation; -# Scaled value of standard deviation in the cluster +# Scaled value of standard deviation in the cluster unsigned[4] scaledValueOfStandardDeviation : dump ; alias scaledValueOfStandardDeviationInTheCluster=scaledValueOfStandardDeviation; -# Scale factor of distance of the cluster from ensemble mean +# Scale factor of distance of the cluster from ensemble mean unsigned[1] scaleFactorOfDistanceFromEnsembleMean : dump ; -# Scaled value of distance of the cluster from ensemble mean +# Scaled value of distance of the cluster from ensemble mean unsigned[4] scaledValueOfDistanceFromEnsembleMean : dump ; diff --git a/definitions/grib2/template.4.statistical.def b/definitions/grib2/template.4.statistical.def index 63545eea0..dfc0e7203 100644 --- a/definitions/grib2/template.4.statistical.def +++ b/definitions/grib2/template.4.statistical.def @@ -1,53 +1,52 @@ # (C) Copyright 2005- ECMWF. -# Year of end of overall time interval +# Year of end of overall time interval unsigned[2] yearOfEndOfOverallTimeInterval =0 : edition_specific; -# Month of end of overall time interval +# Month of end of overall time interval unsigned[1] monthOfEndOfOverallTimeInterval =0 : edition_specific; -# Day of end of overall time interval +# Day of end of overall time interval unsigned[1] dayOfEndOfOverallTimeInterval =0 : edition_specific; -# Hour of end of overall time interval +# Hour of end of overall time interval unsigned[1] hourOfEndOfOverallTimeInterval =0 : edition_specific; -# Minute of end of overall time interval +# Minute of end of overall time interval unsigned[1] minuteOfEndOfOverallTimeInterval =0 : edition_specific; -# Second of end of overall time interval +# Second of end of overall time interval unsigned[1] secondOfEndOfOverallTimeInterval =0 : edition_specific; -# n - number of time range specifications describing the time intervals used to calculate the statistically-processed field +# n - number of time range specifications describing the time intervals used to calculate the statistically-processed field unsigned[1] numberOfTimeRange = 1 : edition_specific; alias n = numberOfTimeRange; -# Total number of data values missing in statistical process +# Total number of data values missing in statistical process unsigned[4] numberOfMissingInStatisticalProcess = 0 : edition_specific; alias totalNumberOfDataValuesMissingInStatisticalProcess=numberOfMissingInStatisticalProcess; statisticalProcessesList list(numberOfTimeRange) { - # Statistical process used to calculate the processed field from the field at each time increment during the time range + # Statistical process used to calculate the processed field from the field at each time increment during the time range codetable[1] typeOfStatisticalProcessing ('4.10.table',masterDir,localDir) : edition_specific; - # Type of time increment between successive fields used in the statistical processing + # Type of time increment between successive fields used in the statistical processing codetable[1] typeOfTimeIncrement ('4.11.table',masterDir,localDir) = 2 : edition_specific; alias typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing=typeOfTimeIncrement; - # Indicator of unit of time for time range over which statistical processing is done + # Indicator of unit of time for time range over which statistical processing is done codetable[1] indicatorOfUnitForTimeRange ('4.4.table',masterDir,localDir) =1 ; - # Length of the time range over which statistical processing is done, in units defined by the previous octet + # Length of the time range over which statistical processing is done, in units defined by the previous octet unsigned[4] lengthOfTimeRange=0 ; - # Indicator of unit of time for the increment between the successive fields used + # Indicator of unit of time for the increment between the successive fields used codetable[1] indicatorOfUnitForTimeIncrement ('4.4.table',masterDir,localDir)=255 ; - # Time increment between successive fields, in units defined by the previous octet + # Time increment between successive fields, in units defined by the previous octet unsigned[4] timeIncrement=0 ; alias timeIncrementBetweenSuccessiveFields=timeIncrement; - } # See GRIB-488. We only support maximum of 2 time ranges @@ -125,3 +124,4 @@ meta time.validityDate validity_date(date,dataTime,step,stepUnits,yearOfEndOfOve monthOfEndOfOverallTimeInterval,dayOfEndOfOverallTimeInterval) : no_copy; meta time.validityTime validity_time(date,dataTime,step,stepUnits,hourOfEndOfOverallTimeInterval, minuteOfEndOfOverallTimeInterval) : no_copy; +meta validityDateTime julian_date(validityDate, validityTime) : no_copy; diff --git a/definitions/grib2/template.5.1.def b/definitions/grib2/template.5.1.def index e01b7f3e4..65e389950 100644 --- a/definitions/grib2/template.5.1.def +++ b/definitions/grib2/template.5.1.def @@ -11,7 +11,7 @@ unsigned[1] matrixBitmapsPresent; alias secondaryBitmapPresent=matrixBitmapsPresent; # Number of data values encoded in Section 7 -unsigned[4] numberOfCodedValues; +unsigned[4] numberOfCodedValues; # NR - first dimension (rows) unsigned[2] firstDimension; diff --git a/definitions/grib2/template.5.2.def b/definitions/grib2/template.5.2.def index 03e74a290..cc3149827 100644 --- a/definitions/grib2/template.5.2.def +++ b/definitions/grib2/template.5.2.def @@ -5,39 +5,39 @@ include "grib2/template.5.packing.def"; include "grib2/template.5.original_values.def"; -# Group splitting method used +# Group splitting method used codetable[1] groupSplittingMethodUsed ('5.4.table',masterDir,localDir); -# Missing value management used +# Missing value management used codetable[1] missingValueManagementUsed ('5.5.table',masterDir,localDir); -# Primary missing value substitute +# Primary missing value substitute unsigned[4] primaryMissingValueSubstitute ; -# Secondary missing value substitute +# Secondary missing value substitute unsigned[4] secondaryMissingValueSubstitute ; -# NG - Number of groups of data values into which field is split +# NG - Number of groups of data values into which field is split unsigned[4] numberOfGroupsOfDataValues ; alias NG = numberOfGroupsOfDataValues; -# Reference for group widths +# Reference for group widths unsigned[1] referenceForGroupWidths ; -# Number of bits used for the group widths +# Number of bits used for the group widths # (after the reference value in octet 36 has been removed) unsigned[1] numberOfBitsUsedForTheGroupWidths ; -# Reference for group lengths +# Reference for group lengths unsigned[4] referenceForGroupLengths ; -# Length increment for the group lengths +# Length increment for the group lengths unsigned[1] lengthIncrementForTheGroupLengths ; -# True length of last group +# True length of last group unsigned[4] trueLengthOfLastGroup ; -# Number of bits used for the scaled group lengths +# Number of bits used for the scaled group lengths # (after subtraction of the reference value given in octets 38-41 and division # by the length increment given in octet 42) unsigned[1] numberOfBitsForScaledGroupLengths ; diff --git a/definitions/grib2/template.5.200.def b/definitions/grib2/template.5.200.def index b5771cfe1..dee6f449c 100644 --- a/definitions/grib2/template.5.200.def +++ b/definitions/grib2/template.5.200.def @@ -1,11 +1,15 @@ # (C) Copyright 2005- ECMWF. -# Grid point data - Run length encoding +# TEMPLATE 5.200, Grid point data - Run length packing with level values -unsigned[1] bitsPerValue : dump; -unsigned[2] maxLevelValue : dump; -unsigned[2] numberOfLevelValues : dump; -unsigned[1] decimalScaleFactor : dump; +# added for conversion from other packing +transient referenceValue=0 : hidden; +transient binaryScaleFactor=0 : hidden; + +unsigned[1] bitsPerValue : dump; +unsigned[2] maxLevelValue : dump; +unsigned[2] numberOfLevelValues : dump; +unsigned[1] decimalScaleFactor : dump; level_value_list list(numberOfLevelValues) { - unsigned[2] levelValues : dump; + unsigned[2] levelValues : dump; } diff --git a/definitions/grib2/template.5.40.def b/definitions/grib2/template.5.40.def index 8340a0b3a..3b2f33ef0 100644 --- a/definitions/grib2/template.5.40.def +++ b/definitions/grib2/template.5.40.def @@ -1,15 +1,12 @@ # (C) Copyright 2005- ECMWF. -#Data Representation 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.original_values.def"; -# Octet 22 : Type of Compression used. (see Code Table 5.40) - -codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ; - -# Octets 23 Target compression ratio, M:1 (with respect to the bit-depth specified in octet 20), -# when octet 22 indicates Lossy Compression. Otherwise, set to missing. (see Note 3) +codetable[1] typeOfCompressionUsed ('5.40.table',masterDir,localDir) ; +# Target compression ratio, M:1 (with respect to the bit-depth specified in octet 20), +# when typeOfCompressionUsed indicates Lossy Compression. Otherwise, set to missing. unsigned[1] targetCompressionRatio = 255; diff --git a/definitions/grib2/template.5.40010.def b/definitions/grib2/template.5.40010.def deleted file mode 100644 index a761bf1d0..000000000 --- a/definitions/grib2/template.5.40010.def +++ /dev/null @@ -1,3 +0,0 @@ -# (C) Copyright 2005- ECMWF. - -include "grib2/template.5.41.def" diff --git a/definitions/grib2/template.5.41.def b/definitions/grib2/template.5.41.def index af95ab4de..bc3c621e8 100644 --- a/definitions/grib2/template.5.41.def +++ b/definitions/grib2/template.5.41.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. -# Grid point data - PNG Code Stream Format SAME AS 5.40010 !!!!!! +# TEMPLATE 5.41, Grid point data - PNG Code Stream Format include "grib2/template.5.packing.def"; include "grib2/template.5.original_values.def"; diff --git a/definitions/grib2/template.5.6.def b/definitions/grib2/template.5.6.def deleted file mode 100644 index 5214f812a..000000000 --- a/definitions/grib2/template.5.6.def +++ /dev/null @@ -1,8 +0,0 @@ -# (C) Copyright 2005- ECMWF. - -# Grid point data - Simple packing with preprocessing - -include "grib2/template.5.packing.def"; - -codetable[1] typeOfPreProcessing ('5.9.table',masterDir,localDir) :edition_specific; -ieeefloat preProcessingParameter : read_only; diff --git a/definitions/grib2/template.5.61.def b/definitions/grib2/template.5.61.def index 9799fd5ad..1077f1f97 100644 --- a/definitions/grib2/template.5.61.def +++ b/definitions/grib2/template.5.61.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. -# Grid point data - Simple packing with logarithmic preprocessing +# TEMPLATE 5.61, Grid point data - Simple packing with logarithmic preprocessing # Note from WMO document: # This template is experimental, was not validated at the time of publication and should be used only for bilateral previously agreed tests diff --git a/definitions/grib2/template.7.2.def b/definitions/grib2/template.7.2.def index bbff89acc..e243e7755 100644 --- a/definitions/grib2/template.7.2.def +++ b/definitions/grib2/template.7.2.def @@ -43,7 +43,7 @@ meta values data_apply_bitmap(codedValues, numberOfDataPoints, numberOfValues) : dump; -alias data.packedValues = codedValues; +alias data.packedValues = codedValues; template statistics "common/statistics_grid.def"; meta numberOfMissing count_missing(bitmap,unusedBitsInBitmap,numberOfDataPoints,missingValueManagementUsed) : dump; diff --git a/definitions/grib2/template.7.200.def b/definitions/grib2/template.7.200.def index c38ae31fc..71459b2cf 100644 --- a/definitions/grib2/template.7.200.def +++ b/definitions/grib2/template.7.200.def @@ -1,6 +1,6 @@ # (C) Copyright 2005- ECMWF. -# Grid point data - Run length encoding +# TEMPLATE 7.200, Grid point data - Run length packing with level values meta codedValues data_run_length_packing( section7Length, diff --git a/definitions/grib2/template.7.40010.def b/definitions/grib2/template.7.40010.def deleted file mode 100644 index 96e332cd6..000000000 --- a/definitions/grib2/template.7.40010.def +++ /dev/null @@ -1,3 +0,0 @@ -# (C) Copyright 2005- ECMWF. - -include "grib2/template.7.41.def" diff --git a/definitions/grib2/template.7.50001.def b/definitions/grib2/template.7.50001.def index 1eb465a32..18bc0ca32 100644 --- a/definitions/grib2/template.7.50001.def +++ b/definitions/grib2/template.7.50001.def @@ -22,7 +22,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, @@ -51,7 +51,7 @@ if(bitmapPresent) { numberOfPoints ): read_only; - alias data.packedValues = codedValues; + alias data.packedValues = codedValues; meta values data_apply_bitmap(codedValues,bitmap,missingValue,binaryScaleFactor) : dump; } else { @@ -64,7 +64,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, diff --git a/definitions/grib2/template.7.50002.def b/definitions/grib2/template.7.50002.def index b68c95816..be47b0604 100644 --- a/definitions/grib2/template.7.50002.def +++ b/definitions/grib2/template.7.50002.def @@ -20,7 +20,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, @@ -49,7 +49,7 @@ if(bitmapPresent) { numberOfPoints ): read_only; - alias data.packedValues = codedValues; + alias data.packedValues = codedValues; if (boustrophedonicOrdering) { meta preBitmapValues data_apply_bitmap(codedValues,bitmap,missingValue,binaryScaleFactor) : read_only; @@ -69,7 +69,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, @@ -111,7 +111,7 @@ if(bitmapPresent) { unitsBias, changingPrecision, numberOfCodedValues, - bitsPerValue, + bitsPerValue, referenceValue, binaryScaleFactor, decimalScaleFactor, diff --git a/definitions/grib2/template.7.6.def b/definitions/grib2/template.7.6.def deleted file mode 100644 index f4308d128..000000000 --- a/definitions/grib2/template.7.6.def +++ /dev/null @@ -1,32 +0,0 @@ -# (C) Copyright 2005- ECMWF. - -# TEMPLATE 7.6, Grid point data - simple packing with preprocessing - -meta codedValues data_g2simple_packing_with_preprocessing( - section7Length, - offsetBeforeData, - offsetSection7, - unitsFactor, - unitsBias, - changingPrecision, - numberOfValues, - bitsPerValue, - referenceValue, - binaryScaleFactor, - decimalScaleFactor, - optimizeScaleFactor, - typeOfPreProcessing, - preProcessingParameter - ): read_only; - -meta values data_apply_bitmap(codedValues, - bitmap, - missingValue, - binaryScaleFactor, - numberOfDataPoints, - numberOfValues) : dump; - -alias data.packedValues = codedValues; - -template statistics "common/statistics_grid.def"; -template missing_values "common/missing_values_grid.def"; diff --git a/definitions/grib2/template.7.second_order.def b/definitions/grib2/template.7.second_order.def index 9bc13b274..2455f80c7 100644 --- a/definitions/grib2/template.7.second_order.def +++ b/definitions/grib2/template.7.second_order.def @@ -51,7 +51,7 @@ meta values data_apply_bitmap(codedValues, numberOfDataPoints, numberOfValues) : dump; -alias data.packedValues = codedValues; +alias data.packedValues = codedValues; template statistics "common/statistics_grid.def"; template missing_values "common/missing_values_grid.def"; diff --git a/definitions/grib2/typeOfLevelConcept.def b/definitions/grib2/typeOfLevelConcept.def index 4e088abd8..30fad4464 100644 --- a/definitions/grib2/typeOfLevelConcept.def +++ b/definitions/grib2/typeOfLevelConcept.def @@ -1,4 +1,4 @@ -# Concept typeOfLevel +# Concept typeOfLevel 'surface' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=255;} 'entireAtmosphere' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=8;} 'entireOcean' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=9;} @@ -13,12 +13,23 @@ 'seaBottom' = {typeOfFirstFixedSurface=9; typeOfSecondFixedSurface=255;} # Note: We already had 'entireAtmosphere' mapped before adding this one so had to choose another name 'atmosphere' = {typeOfFirstFixedSurface=10; typeOfSecondFixedSurface=255;} +'cumulonimbusBase' = {typeOfFirstFixedSurface=11; typeOfSecondFixedSurface=255;} +'cumulonimbusTop' = {typeOfFirstFixedSurface=12; typeOfSecondFixedSurface=255;} +'freeConvection' = {typeOfFirstFixedSurface=14; typeOfSecondFixedSurface=255;} +'convectiveCondensation' = {typeOfFirstFixedSurface=15; typeOfSecondFixedSurface=255;} +'neutralBuoyancy' = {typeOfFirstFixedSurface=16; typeOfSecondFixedSurface=255;} 'mostUnstableParcel' = {typeOfFirstFixedSurface=17; typeOfSecondFixedSurface=255;} 'mixedLayerParcel' = {typeOfFirstFixedSurface=18; typeOfSecondFixedSurface=255;} 'isothermal' = {typeOfFirstFixedSurface=20; typeOfSecondFixedSurface=255;} 'isobaricInPa' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=255; pressureUnits='Pa';} 'isobaricInhPa' = {typeOfFirstFixedSurface=100; pressureUnits='hPa'; typeOfSecondFixedSurface=255;} 'isobaricLayer' = {typeOfFirstFixedSurface=100; typeOfSecondFixedSurface=100;} +'lowCloudLayer' = {typeOfFirstFixedSurface=1; typeOfSecondFixedSurface=100; + scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=80000;} +'mediumCloudLayer' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; scaledValueOfFirstFixedSurface=80000; + typeOfSecondFixedSurface=100; scaleFactorOfSecondFixedSurface=0; scaledValueOfSecondFixedSurface=45000;} +'highCloudLayer' = {typeOfFirstFixedSurface=100; scaleFactorOfFirstFixedSurface=0; + scaledValueOfFirstFixedSurface=45000; typeOfSecondFixedSurface=8;} 'meanSea' = {typeOfFirstFixedSurface=101; typeOfSecondFixedSurface=255;} 'heightAboveSea' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=255;} 'heightAboveSeaLayer' = {typeOfFirstFixedSurface=102; typeOfSecondFixedSurface=102;} diff --git a/definitions/grib2/typeOfUnstructuredGridConcept.def b/definitions/grib2/typeOfUnstructuredGridConcept.def index 4a36af701..6eeae3b3f 100644 --- a/definitions/grib2/typeOfUnstructuredGridConcept.def +++ b/definitions/grib2/typeOfUnstructuredGridConcept.def @@ -1,5 +1,5 @@ 'undefined' = { numberOfGridInReference = 0; } -'T grid' = { numberOfGridInReference = 1; } -'U grid' = { numberOfGridInReference = 2; } -'V grid' = { numberOfGridInReference = 3; } -'W grid' = { numberOfGridInReference = 4; } +'T grid' = { numberOfGridInReference = 1; } +'U grid' = { numberOfGridInReference = 2; } +'V grid' = { numberOfGridInReference = 3; } +'W grid' = { numberOfGridInReference = 4; } diff --git a/definitions/grib2/units.def b/definitions/grib2/units.def index 8d008cb0e..10ddc6c07 100644 --- a/definitions/grib2/units.def +++ b/definitions/grib2/units.def @@ -206,6 +206,16 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Maximum 10 metre wind gust since previous post-processing +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 22 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } #Large-scale precipitation fraction 's' = { discipline = 0 ; @@ -214,6 +224,12 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Montgomery potential +'m**2 s**-2' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 6 ; + } #Downward UV radiation at the surface 'J m**-2' = { discipline = 0 ; @@ -310,6 +326,30 @@ parameterCategory = 3 ; parameterNumber = 18 ; } +#Standard deviation of sub-gridscale orography +'m' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 20 ; + } +#Anisotropy of sub-gridscale orography +'Numeric' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 24 ; + } +#Angle of sub-gridscale orography +'radians' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 21 ; + } +#Slope of sub-gridscale orography +'Numeric' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 22 ; + } #Surface short-wave (solar) radiation downwards 'J m**-2' = { discipline = 0 ; @@ -381,6 +421,26 @@ parameterNumber = 23 ; typeOfStatisticalProcessing = 1 ; } +#Maximum temperature at 2 metres since previous post-processing +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum temperature at 2 metres since previous post-processing +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 0 ; + typeOfFirstFixedSurface = 103 ; + scaledValueOfFirstFixedSurface = 2 ; + scaleFactorOfFirstFixedSurface = 0 ; + typeOfStatisticalProcessing = 3 ; + } #Ozone mass mixing ratio 'kg kg**-1' = { discipline = 0 ; @@ -432,6 +492,8 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; typeOfStatisticalProcessing = 1 ; } #Instantaneous eastward turbulent surface stress @@ -682,6 +744,42 @@ parameterCategory = 0 ; parameterNumber = 92 ; } +#Wave directional width of first swell partition +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 56 ; + } +#Wave frequency width of first swell partition +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 59 ; + } +#Wave directional width of second swell partition +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 57 ; + } +#Wave frequency width of second swell partition +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 60 ; + } +#Wave directional width of third swell partition +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 58 ; + } +#Wave frequency width of third swell partition +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 61 ; + } #Wave energy flux magnitude 'W m**-1' = { discipline = 10 ; @@ -694,6 +792,126 @@ parameterCategory = 0 ; parameterNumber = 79 ; } +#Significant wave height of all waves with periods within the inclusive range from 10 to 12 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 10 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 12 ; + } +#Significant wave height of all waves with periods within the inclusive range from 12 to 14 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 12 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 14 ; + } +#Significant wave height of all waves with periods within the inclusive range from 14 to 17 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 14 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 17 ; + } +#Significant wave height of all waves with periods within the inclusive range from 17 to 21 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 17 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 21 ; + } +#Significant wave height of all waves with periods within the inclusive range from 21 to 25 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 21 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 25 ; + } +#Significant wave height of all waves with periods within the inclusive range from 25 to 30 seconds +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 3 ; + typeOfWavePeriodInterval = 7 ; + scaleFactorOfLowerWavePeriodLimit = 0 ; + scaledValueOfLowerWavePeriodLimit = 25 ; + scaleFactorOfUpperWavePeriodLimit = 0 ; + scaledValueOfUpperWavePeriodLimit = 30 ; + } +#Significant wave height of first swell partition +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 47 ; + } +#Mean wave direction of first swell partition +'degrees' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 53 ; + } +#Mean wave period of first swell partition +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 50 ; + } +#Significant wave height of second swell partition +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 48 ; + } +#Mean wave direction of second swell partition +'degrees' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 54 ; + } +#Mean wave period of second swell partition +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + } +#Significant wave height of third swell partition +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 49 ; + } +#Mean wave direction of third swell partition +'degrees' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 55 ; + } +#Mean wave period of third swell partition +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + } #Wave Spectral Skewness 'Numeric' = { discipline = 10 ; @@ -2212,6 +2430,14 @@ scaledValueOfFirstFixedSurface = 26315 ; scaleFactorOfFirstFixedSurface = 2 ; } +#Total sky direct short-wave (solar) radiation at surface +'J m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Surface direct short-wave radiation, clear sky 'J m**-2' = { discipline = 0 ; @@ -2220,6 +2446,13 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Cloud base height +'m' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 2 ; + } #0 degrees C isothermal level (atm) 'm' = { discipline = 0 ; @@ -2229,7 +2462,7 @@ scaledValueOfFirstFixedSurface = 27315 ; scaleFactorOfFirstFixedSurface = 2 ; } -#10 metre wind gust in the last 3 hours +#Maximum 10 metre wind gust in the last 3 hours 'm s**-1' = { discipline = 0 ; parameterCategory = 2 ; @@ -2311,6 +2544,14 @@ parameterCategory = 3 ; parameterNumber = 23 ; } +#Convective available potential energy shear +'m**2 s**-2' = { + discipline = 0 ; + parameterCategory = 7 ; + parameterNumber = 19 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #Tropopause pressure 'Pa' = { discipline = 0 ; @@ -2534,6 +2775,22 @@ is_chemical_srcsink = 1 ; sourceSinkChemicalPhysicalProcess = 10 ; } +#Surface short-wave (solar) radiation downward clear-sky +'J m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } +#Surface long-wave (thermal) radiation downward clear-sky +'J m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 1 ; + } #Convective precipitation 'kg m**-2' = { discipline = 0 ; @@ -2583,6 +2840,22 @@ parameterNumber = 56 ; typeOfFirstFixedSurface = 1 ; } +#Maximum total precipitation rate since previous post-processing +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 2 ; + } +#Minimum total precipitation rate since previous post-processing +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 3 ; + } #Mixed-layer CAPE in the lowest 50 hPa 'J kg**-1' = { discipline = 0 ; @@ -3305,6 +3578,22 @@ typeOfSecondFixedSurface = 255 ; typeOfStatisticalProcessing = 1 ; } +#Mean surface runoff rate +'kg m**-2 s**-1' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 51 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean sub-surface runoff rate +'kg m**-2 s**-1' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface photosynthetically active radiation flux, clear sky 'W m**-2' = { discipline = 0 ; @@ -3313,6 +3602,157 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean snow evaporation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 148 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowmelt rate +'kg m**-2 s**-1' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean magnitude of turbulent surface stress +'N m**-2' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 58 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation fraction +'Proportion' = { + discipline = 0 ; + parameterCategory = 6 ; + parameterNumber = 36 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward UV radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 12 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface photosynthetically active radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale precipitation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 54 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective precipitation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 37 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean snowfall rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 53 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean boundary layer dissipation +'W m**-2' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface sensible heat flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface latent heat flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 10 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward short-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 3 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 9 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 5 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean evaporation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 79 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Sunshine duration fraction 'Proportion' = { discipline = 0 ; @@ -3320,6 +3760,76 @@ parameterNumber = 51 ; typeOfFirstFixedSurface = 1 ; } +#Mean eastward gravity wave surface stress +'N m**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 16 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean northward gravity wave surface stress +'N m**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 17 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean gravity wave dissipation +'W m**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean runoff rate +'kg m**-2 s**-1' = { + discipline = 2 ; + parameterCategory = 0 ; + parameterNumber = 42 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net short-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top net long-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net short-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 11 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface net long-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 6 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean top downward short-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + typeOfFirstFixedSurface = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Mean vertically integrated moisture divergence 'kg m**-2 s**-1' = { discipline = 0 ; @@ -3327,6 +3837,38 @@ parameterNumber = 165 ; typeOfStatisticalProcessing = 0 ; } +#Mean total precipitation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean convective snowfall rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 55 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean large-scale snowfall rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 56 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface direct short-wave radiation flux +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 13 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Mean surface direct short-wave radiation flux, clear sky 'W m**-2' = { discipline = 0 ; @@ -3335,6 +3877,30 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 0 ; } +#Mean surface downward short-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 4 ; + parameterNumber = 52 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean surface downward long-wave radiation flux, clear sky +'W m**-2' = { + discipline = 0 ; + parameterCategory = 5 ; + parameterNumber = 8 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } +#Mean potential evaporation rate +'kg m**-2 s**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 143 ; + typeOfFirstFixedSurface = 1 ; + typeOfStatisticalProcessing = 0 ; + } #Time integral of surface latent heat sublimation flux 'J m**-2' = { discipline = 0 ; @@ -3565,6 +4131,14 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Total column integrated ozone +'DU' = { + discipline = 0 ; + parameterCategory = 14 ; + parameterNumber = 2 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } #2 metre relative humidity '%' = { discipline = 0 ; @@ -3621,14 +4195,6 @@ parameterCategory = 4 ; parameterNumber = 14 ; } -#Time-integrated surface direct short wave radiation flux -'J m**-2' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 13 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Evaporation in the last 6 hours 'kg m**-2' = { discipline = 0 ; @@ -3787,14 +4353,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Accumulated surface downward short-wave radiation flux, clear sky -'J m**-2' = { - discipline = 0 ; - parameterCategory = 4 ; - parameterNumber = 52 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Accumulated surface upward short-wave radiation flux, clear sky 'J m**-2' = { discipline = 0 ; @@ -3803,14 +4361,6 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } -#Accumulated surface downward long-wave radiation flux, clear sky -'J m**-2' = { - discipline = 0 ; - parameterCategory = 5 ; - parameterNumber = 8 ; - typeOfFirstFixedSurface = 1 ; - typeOfStatisticalProcessing = 1 ; - } #Percolation 'kg m**-2' = { discipline = 1 ; @@ -4425,7 +4975,7 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } -#Sea ice temperature +#Vertically averaged sea ice temperature 'K' = { discipline = 10 ; parameterCategory = 2 ; @@ -4581,6 +5131,12 @@ scaledValueOfSecondFixedSurface = missing() ; scaleFactorOfSecondFixedSurface = missing() ; } +#Sea ice temperature +'K' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + } #Sea surface practical salinity 'g kg**-1' = { discipline = 10 ; @@ -5488,7 +6044,7 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } -#Time-mean sea ice temperature +#Time-mean vertically averaged sea ice temperature 'K' = { discipline = 10 ; parameterCategory = 2 ; @@ -5657,6 +6213,13 @@ scaleFactorOfSecondFixedSurface = missing() ; typeOfStatisticalProcessing = 0 ; } +#Time-mean sea ice temperature +'K' = { + discipline = 10 ; + parameterCategory = 2 ; + parameterNumber = 8 ; + typeOfStatisticalProcessing = 0 ; + } #Time-mean sea surface practical salinity 'g kg**-1' = { discipline = 10 ; @@ -6914,12 +7477,78 @@ typeOfFirstFixedSurface = 1 ; typeOfStatisticalProcessing = 1 ; } +#Period corresponding to maximum individual wave height +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + } +#Maximum individual wave height +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + } +#Model bathymetry +'m' = { + discipline = 10 ; + parameterCategory = 4 ; + parameterNumber = 7 ; + } +#Mean wave period based on first moment +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + } #Mean zero-crossing wave period 's' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 28 ; } +#Wave spectral directional width +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 31 ; + } +#Mean wave period based on first moment for wind waves +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + } +#Mean wave period based on second moment for wind waves +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 29 ; + } +#Wave spectral directional width for wind waves +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 32 ; + } +#Mean wave period based on first moment for swell +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 27 ; + } +#Mean wave period based on second moment for swell +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 30 ; + } +#Wave spectral directional width for swell +'radians' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 33 ; + } #Significant height of combined wind waves and swell 'm' = { discipline = 10 ; @@ -6944,6 +7573,12 @@ parameterCategory = 0 ; parameterNumber = 15 ; } +#Coefficient of drag with waves +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 16 ; + } #Significant height of wind waves 'm' = { discipline = 10 ; @@ -6962,18 +7597,84 @@ parameterCategory = 0 ; parameterNumber = 6 ; } +#Significant height of total swell +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 8 ; + } #Mean direction of total swell 'degrees' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 74 ; } +#Mean period of total swell +'s' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 9 ; + } +#Mean square slope of waves +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + } +#10 metre wind speed +'m s**-1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 40 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } +#Altimeter wave height +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 37 ; + } +#Altimeter corrected wave height +'m' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 38 ; + } +#Altimeter range relative correction +'~' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 39 ; + } +#10 metre wind direction +'degrees' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 41 ; + typeOfFirstFixedSurface = 102 ; + scaledValueOfFirstFixedSurface = 10 ; + scaleFactorOfFirstFixedSurface = 0 ; + } #2D wave spectra (single) 'm**2 s radian**-1' = { discipline = 10 ; parameterCategory = 0 ; parameterNumber = 86 ; } +#Wave spectral kurtosis +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 43 ; + } +#Benjamin-Feir index +'dimensionless' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 44 ; + } #Eastward sea water velocity 'm s**-1' = { discipline = 10 ; @@ -7079,6 +7780,106 @@ discipline = 0 ; parameterCategory = 1 ; parameterNumber = 165 ; + typeOfFirstFixedSurface = 1 ; + typeOfSecondFixedSurface = 8 ; + } +#Time-integrated temperature tendency due to short-wave radiation +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 23 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to short wave radiation, clear sky +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 24 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to long-wave radiation, clear sky +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 25 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught mass flux +'kg m**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 27 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught mass flux +'kg m**-2' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 28 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated updraught detrainment rate +'kg m**-3' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 29 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated downdraught detrainment rate +'kg m**-3' = { + discipline = 0 ; + parameterCategory = 3 ; + parameterNumber = 30 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated total precipitation flux +'kg m**-2' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 52 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated turbulent diffusion coefficient for heat +'m**2' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 20 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated temperature tendency due to parametrisations +'K' = { + discipline = 0 ; + parameterCategory = 0 ; + parameterNumber = 26 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated specific humidity tendency due to parametrisations +'kg kg**-1' = { + discipline = 0 ; + parameterCategory = 1 ; + parameterNumber = 108 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated eastward wind tendency due to parametrisations +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 39 ; + typeOfStatisticalProcessing = 1 ; + } +#Time-integrated northward wind tendency due to parametrisations +'m s**-1' = { + discipline = 0 ; + parameterCategory = 2 ; + parameterNumber = 40 ; + typeOfStatisticalProcessing = 1 ; } #Surface runoff 'kg m**-2' = { @@ -7278,6 +8079,18 @@ scaledValueOfFirstFixedSurface = 10 ; scaleFactorOfFirstFixedSurface = 0 ; } +#U-component surface stokes drift +'m s**-1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 21 ; + } +#V-component surface stokes drift +'m s**-1' = { + discipline = 10 ; + parameterCategory = 0 ; + parameterNumber = 22 ; + } #100 metre U wind component 'm s**-1' = { discipline = 0 ; @@ -8028,12 +8841,6 @@ parameterCategory = 3 ; parameterNumber = 19 ; } -#Standard deviation of sub-grid scale orography -'m' = { - discipline = 0 ; - parameterCategory = 3 ; - parameterNumber = 20 ; - } #Net short-wave radiation flux (top of atmosphere) 'W m**-2' = { discipline = 0 ; @@ -8160,12 +8967,6 @@ parameterCategory = 6 ; parameterNumber = 10 ; } -#Cloud base -'m' = { - discipline = 0 ; - parameterCategory = 6 ; - parameterNumber = 11 ; - } #Cloud top 'm' = { discipline = 0 ; @@ -8304,12 +9105,6 @@ parameterCategory = 14 ; parameterNumber = 0 ; } -#Total column integrated ozone -'DU' = { - discipline = 0 ; - parameterCategory = 14 ; - parameterNumber = 2 ; - } #Base spectrum width 'm s**-1' = { discipline = 0 ; @@ -9012,12 +9807,6 @@ parameterCategory = 0 ; parameterNumber = 2 ; } -#Montgomery stream Function -'m**2 s**-2' = { - discipline = 0 ; - parameterCategory = 2 ; - parameterNumber = 6 ; - } #Sigma coordinate vertical velocity 's**-1' = { discipline = 0 ; @@ -9156,18 +9945,6 @@ parameterCategory = 0 ; parameterNumber = 7 ; } -#Significant height of swell waves -'m' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 8 ; - } -#Mean period of swell waves -'s' = { - discipline = 10 ; - parameterCategory = 0 ; - parameterNumber = 9 ; - } #Secondary wave direction 'Degree true' = { discipline = 10 ; diff --git a/definitions/grib3/meta.def b/definitions/grib3/meta.def deleted file mode 100644 index add27a592..000000000 --- a/definitions/grib3/meta.def +++ /dev/null @@ -1,5 +0,0 @@ -# (C) Copyright 2005- ECMWF. - -label "Empty file"; - -#meta area g1area(latitudeOfFirstGridPoint,longitudeOfFirstGridPoint,latitudeOfLastGridPoint,longitudeOfLastGridPoint,angleMultiplier,angleDivisor); diff --git a/definitions/grib3/template.3.20.def b/definitions/grib3/template.3.20.def index 1495b6005..a18577d1d 100644 --- a/definitions/grib3/template.3.20.def +++ b/definitions/grib3/template.3.20.def @@ -1,10 +1,8 @@ # (C) Copyright 2005- ECMWF. - # START 2/template.3.20 ---------------------------------------------------------------------- # TEMPLATE 3.20, Polar stereographic projection include "grib3/template.3.shape_of_the_earth.def"; -transient oneThousand=1000; # Nx - number of points along X-axis unsigned[4] Nx : dump; diff --git a/definitions/grib3/template.4.horizontal.def b/definitions/grib3/template.4.horizontal.def index 5b1b78233..ed1bc6025 100644 --- a/definitions/grib3/template.4.horizontal.def +++ b/definitions/grib3/template.4.horizontal.def @@ -1,26 +1,26 @@ # (C) Copyright 2005- ECMWF. # Type of first fixed surface -codetable[1] typeOfFirstFixedSurface ('4.5.table',masterDir,localDir) : dump,no_copy,edition_specific,string_type; +codetable[1] typeOfFirstFixedSurface ('4.5.table',masterDir,localDir) : dump,edition_specific,string_type; meta unitsOfFirstFixedSurface codetable_units(typeOfFirstFixedSurface) : dump; meta nameOfFirstFixedSurface codetable_title(typeOfFirstFixedSurface) : dump; # Scale factor of first fixed surface -signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; # Scaled value of first fixed surface -unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; # Type of second fixed surface -codetable[1] typeOfSecondFixedSurface ('4.5.table',masterDir,localDir) = 255 : dump,no_copy,edition_specific; +codetable[1] typeOfSecondFixedSurface ('4.5.table',masterDir,localDir) = 255 : dump,edition_specific; meta unitsOfSecondFixedSurface codetable_units(typeOfSecondFixedSurface) : dump; meta nameOfSecondFixedSurface codetable_title(typeOfSecondFixedSurface) : dump; # Scale factor of second fixed surface -signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; # Scaled value of second fixed surface -unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; transient pressureUnits="hPa"; diff --git a/definitions/grib3/template.component.5.0.def b/definitions/grib3/template.component.5.0.def index 50cbaa55e..0170577a6 100644 --- a/definitions/grib3/template.component.5.0.def +++ b/definitions/grib3/template.component.5.0.def @@ -1,15 +1,15 @@ # Vertical Coordinate Template Component 5.0 - Vertical level # Type of first fixed surface -codetable[1] typeOfFirstFixedSurface ('5.1.table',masterDir,localDir) : dump,no_copy,edition_specific,string_type; +codetable[1] typeOfFirstFixedSurface ('5.1.table',masterDir,localDir) : dump,edition_specific,string_type; meta unitsOfFirstFixedSurface codetable_units(typeOfFirstFixedSurface) : dump; meta nameOfFirstFixedSurface codetable_title(typeOfFirstFixedSurface) : dump; # Scale factor of first fixed surface -signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; # Scaled value of first fixed surface -unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; #### transient pressureUnits="hPa"; diff --git a/definitions/grib3/template.component.5.1.def b/definitions/grib3/template.component.5.1.def index cafaf2c1d..dc3b84ac8 100644 --- a/definitions/grib3/template.component.5.1.def +++ b/definitions/grib3/template.component.5.1.def @@ -1,26 +1,26 @@ # Vertical Coordinate Template Component 5.1 - Vertical layer # Type of first fixed surface -codetable[1] typeOfFirstFixedSurface ('5.1.table',masterDir,localDir) : dump,no_copy,edition_specific,string_type; +codetable[1] typeOfFirstFixedSurface ('5.1.table',masterDir,localDir) : dump,edition_specific,string_type; meta unitsOfFirstFixedSurface codetable_units(typeOfFirstFixedSurface) : dump; meta nameOfFirstFixedSurface codetable_title(typeOfFirstFixedSurface) : dump; # Scale factor of first fixed surface -signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +signed[1] scaleFactorOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; # Scaled value of first fixed surface -unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +unsigned[4] scaledValueOfFirstFixedSurface = missing() : can_be_missing,dump,edition_specific; # Type of second fixed surface -codetable[1] typeOfSecondFixedSurface ('5.1.table',masterDir,localDir) = 255 : dump,no_copy,edition_specific; +codetable[1] typeOfSecondFixedSurface ('5.1.table',masterDir,localDir) = 255 : dump,edition_specific; meta unitsOfSecondFixedSurface codetable_units(typeOfSecondFixedSurface) : dump; meta nameOfSecondFixedSurface codetable_title(typeOfSecondFixedSurface) : dump; # Scale factor of second fixed surface -signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +signed[1] scaleFactorOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; # Scaled value of second fixed surface -unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,no_copy,edition_specific; +unsigned[4] scaledValueOfSecondFixedSurface = missing() : can_be_missing,dump,edition_specific; ####### diff --git a/tigge/CMakeLists.txt b/deprecated/tigge/CMakeLists.txt similarity index 100% rename from tigge/CMakeLists.txt rename to deprecated/tigge/CMakeLists.txt diff --git a/tigge/jma.pl b/deprecated/tigge/jma.pl similarity index 100% rename from tigge/jma.pl rename to deprecated/tigge/jma.pl diff --git a/tigge/kma.pl b/deprecated/tigge/kma.pl similarity index 100% rename from tigge/kma.pl rename to deprecated/tigge/kma.pl diff --git a/tigge/ncep.pl b/deprecated/tigge/ncep.pl similarity index 100% rename from tigge/ncep.pl rename to deprecated/tigge/ncep.pl diff --git a/tigge/ncep.rules b/deprecated/tigge/ncep.rules similarity index 100% rename from tigge/ncep.rules rename to deprecated/tigge/ncep.rules diff --git a/tigge/reprocess_ncep.ksh b/deprecated/tigge/reprocess_ncep.ksh similarity index 100% rename from tigge/reprocess_ncep.ksh rename to deprecated/tigge/reprocess_ncep.ksh diff --git a/tigge/tigge_accumulations.cc b/deprecated/tigge/tigge_accumulations.cc similarity index 100% rename from tigge/tigge_accumulations.cc rename to deprecated/tigge/tigge_accumulations.cc diff --git a/tigge/tigge_check.cc b/deprecated/tigge/tigge_check.cc similarity index 100% rename from tigge/tigge_check.cc rename to deprecated/tigge/tigge_check.cc diff --git a/tigge/tigge_check.h b/deprecated/tigge/tigge_check.h similarity index 100% rename from tigge/tigge_check.h rename to deprecated/tigge/tigge_check.h diff --git a/tigge/tigge_name.cc b/deprecated/tigge/tigge_name.cc similarity index 100% rename from tigge/tigge_name.cc rename to deprecated/tigge/tigge_name.cc diff --git a/tigge/tigge_split.cc b/deprecated/tigge/tigge_split.cc similarity index 100% rename from tigge/tigge_split.cc rename to deprecated/tigge/tigge_split.cc diff --git a/tigge/tigge_tools.cc b/deprecated/tigge/tigge_tools.cc similarity index 100% rename from tigge/tigge_tools.cc rename to deprecated/tigge/tigge_tools.cc diff --git a/tigge/tigge_tools.h b/deprecated/tigge/tigge_tools.h similarity index 100% rename from tigge/tigge_tools.h rename to deprecated/tigge/tigge_tools.h diff --git a/tigge/tools/convert.pm b/deprecated/tigge/tools/convert.pm similarity index 100% rename from tigge/tools/convert.pm rename to deprecated/tigge/tools/convert.pm diff --git a/windows/msvc/bufr_dump/bufr_dump.vcxproj b/deprecated/windows/msvc/bufr_dump/bufr_dump.vcxproj similarity index 100% rename from windows/msvc/bufr_dump/bufr_dump.vcxproj rename to deprecated/windows/msvc/bufr_dump/bufr_dump.vcxproj diff --git a/windows/msvc/bufr_dump/bufr_dump.vcxproj.filters b/deprecated/windows/msvc/bufr_dump/bufr_dump.vcxproj.filters similarity index 100% rename from windows/msvc/bufr_dump/bufr_dump.vcxproj.filters rename to deprecated/windows/msvc/bufr_dump/bufr_dump.vcxproj.filters diff --git a/windows/msvc/bufr_filter/bufr_filter.vcxproj b/deprecated/windows/msvc/bufr_filter/bufr_filter.vcxproj similarity index 100% rename from windows/msvc/bufr_filter/bufr_filter.vcxproj rename to deprecated/windows/msvc/bufr_filter/bufr_filter.vcxproj diff --git a/windows/msvc/bufr_filter/bufr_filter.vcxproj.filters b/deprecated/windows/msvc/bufr_filter/bufr_filter.vcxproj.filters similarity index 100% rename from windows/msvc/bufr_filter/bufr_filter.vcxproj.filters rename to deprecated/windows/msvc/bufr_filter/bufr_filter.vcxproj.filters diff --git a/windows/msvc/grib_api.sln b/deprecated/windows/msvc/grib_api.sln similarity index 100% rename from windows/msvc/grib_api.sln rename to deprecated/windows/msvc/grib_api.sln diff --git a/windows/msvc/grib_api_lib/grib_api_lib.vcxproj b/deprecated/windows/msvc/grib_api_lib/grib_api_lib.vcxproj similarity index 100% rename from windows/msvc/grib_api_lib/grib_api_lib.vcxproj rename to deprecated/windows/msvc/grib_api_lib/grib_api_lib.vcxproj diff --git a/windows/msvc/grib_api_lib/grib_api_lib.vcxproj.filters b/deprecated/windows/msvc/grib_api_lib/grib_api_lib.vcxproj.filters similarity index 100% rename from windows/msvc/grib_api_lib/grib_api_lib.vcxproj.filters rename to deprecated/windows/msvc/grib_api_lib/grib_api_lib.vcxproj.filters diff --git a/windows/msvc/grib_compare/grib_compare.vcxproj b/deprecated/windows/msvc/grib_compare/grib_compare.vcxproj similarity index 100% rename from windows/msvc/grib_compare/grib_compare.vcxproj rename to deprecated/windows/msvc/grib_compare/grib_compare.vcxproj diff --git a/windows/msvc/grib_compare/grib_compare.vcxproj.filters b/deprecated/windows/msvc/grib_compare/grib_compare.vcxproj.filters similarity index 100% rename from windows/msvc/grib_compare/grib_compare.vcxproj.filters rename to deprecated/windows/msvc/grib_compare/grib_compare.vcxproj.filters diff --git a/windows/msvc/grib_copy/grib_copy.vcxproj b/deprecated/windows/msvc/grib_copy/grib_copy.vcxproj similarity index 100% rename from windows/msvc/grib_copy/grib_copy.vcxproj rename to deprecated/windows/msvc/grib_copy/grib_copy.vcxproj diff --git a/windows/msvc/grib_copy/grib_copy.vcxproj.filters b/deprecated/windows/msvc/grib_copy/grib_copy.vcxproj.filters similarity index 100% rename from windows/msvc/grib_copy/grib_copy.vcxproj.filters rename to deprecated/windows/msvc/grib_copy/grib_copy.vcxproj.filters diff --git a/windows/msvc/grib_dump/grib_dump.vcxproj b/deprecated/windows/msvc/grib_dump/grib_dump.vcxproj similarity index 100% rename from windows/msvc/grib_dump/grib_dump.vcxproj rename to deprecated/windows/msvc/grib_dump/grib_dump.vcxproj diff --git a/windows/msvc/grib_dump/grib_dump.vcxproj.filters b/deprecated/windows/msvc/grib_dump/grib_dump.vcxproj.filters similarity index 100% rename from windows/msvc/grib_dump/grib_dump.vcxproj.filters rename to deprecated/windows/msvc/grib_dump/grib_dump.vcxproj.filters diff --git a/windows/msvc/grib_filter/grib_filter.vcxproj b/deprecated/windows/msvc/grib_filter/grib_filter.vcxproj similarity index 100% rename from windows/msvc/grib_filter/grib_filter.vcxproj rename to deprecated/windows/msvc/grib_filter/grib_filter.vcxproj diff --git a/windows/msvc/grib_filter/grib_filter.vcxproj.filters b/deprecated/windows/msvc/grib_filter/grib_filter.vcxproj.filters similarity index 100% rename from windows/msvc/grib_filter/grib_filter.vcxproj.filters rename to deprecated/windows/msvc/grib_filter/grib_filter.vcxproj.filters diff --git a/windows/msvc/grib_get/grib_get.vcxproj b/deprecated/windows/msvc/grib_get/grib_get.vcxproj similarity index 100% rename from windows/msvc/grib_get/grib_get.vcxproj rename to deprecated/windows/msvc/grib_get/grib_get.vcxproj diff --git a/windows/msvc/grib_get/grib_get.vcxproj.filters b/deprecated/windows/msvc/grib_get/grib_get.vcxproj.filters similarity index 100% rename from windows/msvc/grib_get/grib_get.vcxproj.filters rename to deprecated/windows/msvc/grib_get/grib_get.vcxproj.filters diff --git a/windows/msvc/grib_get_data/grib_get_data.vcxproj b/deprecated/windows/msvc/grib_get_data/grib_get_data.vcxproj similarity index 100% rename from windows/msvc/grib_get_data/grib_get_data.vcxproj rename to deprecated/windows/msvc/grib_get_data/grib_get_data.vcxproj diff --git a/windows/msvc/grib_get_data/grib_get_data.vcxproj.filters b/deprecated/windows/msvc/grib_get_data/grib_get_data.vcxproj.filters similarity index 100% rename from windows/msvc/grib_get_data/grib_get_data.vcxproj.filters rename to deprecated/windows/msvc/grib_get_data/grib_get_data.vcxproj.filters diff --git a/windows/msvc/grib_ls/grib_ls.vcxproj b/deprecated/windows/msvc/grib_ls/grib_ls.vcxproj similarity index 100% rename from windows/msvc/grib_ls/grib_ls.vcxproj rename to deprecated/windows/msvc/grib_ls/grib_ls.vcxproj diff --git a/windows/msvc/grib_ls/grib_ls.vcxproj.filters b/deprecated/windows/msvc/grib_ls/grib_ls.vcxproj.filters similarity index 100% rename from windows/msvc/grib_ls/grib_ls.vcxproj.filters rename to deprecated/windows/msvc/grib_ls/grib_ls.vcxproj.filters diff --git a/windows/msvc/grib_set/grib_set.vcxproj b/deprecated/windows/msvc/grib_set/grib_set.vcxproj similarity index 100% rename from windows/msvc/grib_set/grib_set.vcxproj rename to deprecated/windows/msvc/grib_set/grib_set.vcxproj diff --git a/windows/msvc/grib_set/grib_set.vcxproj.filters b/deprecated/windows/msvc/grib_set/grib_set.vcxproj.filters similarity index 100% rename from windows/msvc/grib_set/grib_set.vcxproj.filters rename to deprecated/windows/msvc/grib_set/grib_set.vcxproj.filters diff --git a/examples/C/bufr_set_keys.sh b/examples/C/bufr_set_keys.sh index 96fd48416..3131463cf 100755 --- a/examples/C/bufr_set_keys.sh +++ b/examples/C/bufr_set_keys.sh @@ -10,37 +10,33 @@ . ./include.ctest.sh - -#Define a common label for all the tmp files +# Define a common label for all the tmp files label="bufr_set_keys_test_c" - -#Define tmp file +REDIRECT=/dev/null fBufrTmp=${label}.tmp.bufr rm -f $fBufrTmp -#We check "syno_multi.bufr". The path is -#hardcoded in the example +# We check "syno_multi.bufr". The path is hard coded in the example f=${data_dir}/bufr/syno_multi.bufr -REDIRECT=/dev/null +set +e +${examples_dir}/c_bufr_set_keys +status=$? +set -e +[ $status -ne 0 ] -# +# Run ${examples_dir}/c_bufr_set_keys $fBufrTmp 2> $REDIRECT > $REDIRECT -#Compare modified to the original +# Compare modified to the original set +e ${tools_dir}/bufr_compare $f $fBufrTmp >$REDIRECT 2> $REDIRECT - -#Check if modified is different -if [ $? -eq 0 ]; then - echo "setting keys produced identical files " >&2 - exit 1 -fi - +status=$? set -e +[ $status -ne 0 ] -#Check if modified has the same number of messages +# Check if modified has the same number of messages [ `${tools_dir}/bufr_count $f` -eq `${tools_dir}/bufr_count ${fBufrTmp}` ] -#Clean up +# Clean up rm -f $fBufrTmp diff --git a/examples/C/get_product_kind.sh b/examples/C/get_product_kind.sh index cd6ff1c5b..609274efc 100755 --- a/examples/C/get_product_kind.sh +++ b/examples/C/get_product_kind.sh @@ -15,6 +15,12 @@ fTmp=${label}.tmp fOut=${label}.tmp.out fRef=${label}.tmp.ref +set +e +${examples_dir}/c_get_product_kind +status=$? +set -e +[ $status -eq 1 ] + # Create a file containing one GRIB and three BUFR messages cat ${data_dir}/sample.grib2 ${data_dir}/bufr/syno_multi.bufr >$fTmp diff --git a/examples/C/grib_nearest_multiple.sh b/examples/C/grib_nearest_multiple.sh index d203cfe06..ee43c5881 100755 --- a/examples/C/grib_nearest_multiple.sh +++ b/examples/C/grib_nearest_multiple.sh @@ -15,6 +15,12 @@ temp1=$label.temp1.$$ temp2=$label.temp2.$$ tempRef=$label.ref.$$ +set +e +${examples_dir}/c_grib_nearest_multiple 2>/dev/null +status=$? +set -e +[ $status -eq 1 ] + cat > $temp1 < /dev/null +${examples_dir}/eccodes_f_grib_get_keys diff --git a/examples/F90/grib_keys_iterator.f90 b/examples/F90/grib_keys_iterator.f90 index ca00157b4..dcafe49c3 100644 --- a/examples/F90/grib_keys_iterator.f90 +++ b/examples/F90/grib_keys_iterator.f90 @@ -11,8 +11,6 @@ ! How to use keys_iterator to get all the available ! keys in a GRIB message. ! -! -! program keys_iterator use eccodes implicit none @@ -26,35 +24,32 @@ program keys_iterator call codes_open_file(ifile, & '../../data/regular_latlon_surface.grib1', 'r') - ! Loop on all the messages in a file. - - call codes_grib_new_from_file(ifile, igrib, iret) + ! Loop on all the messages in a file grib_count = 0 - do while (iret /= CODES_END_OF_FILE) + do while (.true.) + call codes_grib_new_from_file(ifile, igrib, iret) + if (iret == CODES_END_OF_FILE) exit grib_count = grib_count + 1 write (*, *) '-- GRIB N. ', grib_count, ' --' - ! valid name_spaces are ls and mars + ! Choose a namespace. E.g. "ls", "time", "parameter", "geography", "statistics" name_space = 'ls' call codes_keys_iterator_new(igrib, kiter, name_space) do call codes_keys_iterator_next(kiter, iret) - if (iret .ne. CODES_SUCCESS) exit !terminate the loop call codes_keys_iterator_get_name(kiter, key) call codes_get(igrib, trim(key), value) all1 = trim(key)//' = '//trim(value) write (*, *) trim(all1) - end do call codes_keys_iterator_delete(kiter) call codes_release(igrib) - call codes_grib_new_from_file(ifile, igrib, iret) end do call codes_close_file(ifile) diff --git a/examples/F90/grib_multi.f90 b/examples/F90/grib_multi.f90 index d486a8eb7..c18b005fe 100644 --- a/examples/F90/grib_multi.f90 +++ b/examples/F90/grib_multi.f90 @@ -10,36 +10,35 @@ ! Description: How to decode GRIB2 multi-field messages. ! Try to turn multi support on and off to ! see the difference. Default is OFF. -! For all the tools default is multi support ON. +! For all the tools (e.g., grib_ls etc) multi support is ON. ! program multi use eccodes implicit none - integer :: iret - integer(kind=4) :: step - integer :: ifile, igrib + integer :: iret, counter + integer(kind=4) :: step + integer :: ifile, igrib call codes_open_file(ifile, '../../data/multi_created.grib2', 'r') - ! turn on support for multi-field messages */ - call codes_grib_multi_support_on() - - ! turn off support for multi-field messages */ - !call codes_grib_multi_support_off() + ! Turn off support for multi-field messages + call codes_grib_multi_support_off() - call codes_grib_new_from_file(ifile, igrib, iret) - ! Loop on all the messages in a file. + ! Turn on support for multi-field messages + call codes_grib_multi_support_on() + ! Loop on all the messages in a file write (*, *) 'step' - do while (iret /= CODES_END_OF_FILE) + do while (.true.) + call codes_grib_new_from_file(ifile, igrib, iret) + if (iret == CODES_END_OF_FILE) exit + counter = counter + 1 call codes_get(igrib, 'step', step) write (*, '(i3)') step - - call codes_grib_new_from_file(ifile, igrib, iret) - end do call codes_close_file(ifile) + !write(*,*) 'Message count =', counter end program multi diff --git a/examples/F90/grib_multi.sh b/examples/F90/grib_multi.sh index b90c94b5a..0ba6ed54b 100755 --- a/examples/F90/grib_multi.sh +++ b/examples/F90/grib_multi.sh @@ -9,6 +9,8 @@ . ./include.ctest.sh -${examples_dir}/eccodes_f_grib_multi > multi.out -diff multi.out ${data_dir}/multi.ok -rm -f multi.out +temp='temp.eccodes_f_grib_multi.txt' + +${examples_dir}/eccodes_f_grib_multi > $temp +diff $temp ${data_dir}/multi.ok +rm -f $temp diff --git a/examples/F90/grib_precision.f90 b/examples/F90/grib_precision.f90 index 93ee42519..165b805fd 100644 --- a/examples/F90/grib_precision.f90 +++ b/examples/F90/grib_precision.f90 @@ -41,7 +41,7 @@ program precision allocate (values1(size1), stat=iret) allocate (values2(size1), stat=iret) - ! get data values before changing the packing parameters*/ + ! get data values before changing the packing parameters call codes_get(igrib, "values", values1) ! setting decimal precision=2 means that 2 decimal digits diff --git a/examples/F90/grib_read_from_file.f90 b/examples/F90/grib_read_from_file.f90 index 7d38c319d..eaa2c1c6e 100644 --- a/examples/F90/grib_read_from_file.f90 +++ b/examples/F90/grib_read_from_file.f90 @@ -42,16 +42,16 @@ subroutine read_using_size_t call codes_open_file(ifile, input_grib_file, 'r') len1 = size - call codes_read_from_file(ifile, buffer, len1, iret) - do while (iret == CODES_SUCCESS) + do while (.true.) + call codes_read_from_file(ifile, buffer, len1, iret) + if (iret /= CODES_SUCCESS) exit count1 = count1 + 1 if (len1 /= message_lengths(count1)) then write (*, '(a,i3,a,i8,a,i8)') 'Error: Message #', count1, ' length=', len1, '. Expected=', message_lengths(count1) stop end if len1 = size - call codes_read_from_file(ifile, buffer, len1, iret) end do if (iret /= CODES_END_OF_FILE) then diff --git a/examples/F90/grib_samples.f90 b/examples/F90/grib_samples.f90 index 0974b8f5c..6a818a080 100644 --- a/examples/F90/grib_samples.f90 +++ b/examples/F90/grib_samples.f90 @@ -9,7 +9,6 @@ ! ! Description: How to create a new GRIB message from a sample. ! -! program sample use eccodes implicit none @@ -29,7 +28,7 @@ program sample indicatorOfParameter = 61 decimalPrecision = 2 - ! a new GRIB message is loaded from an existing sample. + ! A new GRIB message is loaded from an existing sample. ! Samples are searched in a default sample path (use codes_info ! to see where that is). The default sample path can be changed by ! setting the environment variable ECCODES_SAMPLES_PATH diff --git a/examples/F90/grib_set_keys.f90 b/examples/F90/grib_set_keys.f90 index bbcd5eabe..dcc4aceee 100644 --- a/examples/F90/grib_set_keys.f90 +++ b/examples/F90/grib_set_keys.f90 @@ -30,7 +30,7 @@ program set call codes_set(igrib, 'dataDate', date1) call codes_set(igrib, 'type', marsType) - ! set centre as a integer */ + ! set centre as a integer call codes_set(igrib, 'centre', centre) ! check if it is correct in the actual GRIB message diff --git a/examples/F90/iterator_fortran.f90 b/examples/F90/iterator_fortran.f90 index 10aafaba6..0dcc10b5d 100644 --- a/examples/F90/iterator_fortran.f90 +++ b/examples/F90/iterator_fortran.f90 @@ -26,10 +26,11 @@ program iterator call codes_open_file(ifile, & '../../data/regular_latlon_surface_constant.grib1', 'R') - ! Loop on all the messages in a file. - call codes_grib_new_from_file(ifile, igrib, iret) + ! Loop on all the messages in a file + LOOP: DO WHILE (.true.) + call codes_grib_new_from_file(ifile, igrib, iret) + if (iret == CODES_END_OF_FILE) exit LOOP - LOOP: DO WHILE (iret /= CODES_END_OF_FILE) ! get as a real8 call codes_get(igrib, & 'missingValue', missingValue) @@ -61,8 +62,6 @@ program iterator call grib_iterator_delete(iter) call codes_release(igrib) - call codes_grib_new_from_file(ifile, igrib, iret) - end do LOOP call codes_close_file(ifile) diff --git a/examples/F90/multi_fortran.f90 b/examples/F90/multi_fortran.f90 index 41515fec9..423fb1fb1 100644 --- a/examples/F90/multi_fortran.f90 +++ b/examples/F90/multi_fortran.f90 @@ -17,23 +17,25 @@ program multi use eccodes implicit none - integer :: iret + integer :: iret integer(kind=4) :: parameterCategory, parameterNumber, discipline - integer :: ifile, igrib + integer :: ifile, igrib, counter call codes_open_file(ifile, '../../data/multi.grib2', 'r') - ! Turn on support for multi-field messages */ - call codes_grib_multi_support_on() + ! Turn off support for multi-field messages + call codes_grib_multi_support_off() - ! Turn off support for multi-field messages */ - !call codes_grib_multi_support_off() + ! Turn on support for multi-field messages + call codes_grib_multi_support_on() call codes_grib_new_from_file(ifile, igrib) ! Loop on all the messages in a file. do while (igrib .ne. -1) + counter = counter + 1 + ! get as a integer*4 call codes_get(igrib, 'discipline', discipline) write (*, *) 'discipline=', discipline @@ -63,4 +65,6 @@ program multi end do call codes_close_file(ifile) + write(*,*) 'Message count =',counter + end program multi diff --git a/examples/F90/precision_fortran.f90 b/examples/F90/precision_fortran.f90 index 1a66f7cd8..33429c481 100644 --- a/examples/F90/precision_fortran.f90 +++ b/examples/F90/precision_fortran.f90 @@ -40,7 +40,7 @@ program precision allocate (values1(size), stat=iret) allocate (values2(size), stat=iret) - ! get data values before changing the packing parameters*/ + ! get data values before changing the packing parameters call codes_get(igrib, "values", values1) ! setting decimal precision=2 means that 2 decimal digits diff --git a/examples/F90/set_fortran.f90 b/examples/F90/set_fortran.f90 index 7e3f4ad2f..582677b5b 100644 --- a/examples/F90/set_fortran.f90 +++ b/examples/F90/set_fortran.f90 @@ -33,7 +33,7 @@ program set ! igrib is the grib id to be used in subsequent calls call codes_grib_new_from_file(infile, igrib) - ! set centre as a long */ + ! set centre as a long centre = 80 call codes_set(igrib, 'centre', centre) diff --git a/fortran/eccodes_constants.h b/fortran/eccodes_constants.h index a57288446..736e3feab 100644 --- a/fortran/eccodes_constants.h +++ b/fortran/eccodes_constants.h @@ -1,69 +1,81 @@ - integer, parameter,public :: CODES_FUNCTIONALITY_NOT_ENABLED = -67 - integer, parameter,public :: CODES_WRONG_BITMAP_SIZE = -66 - integer, parameter,public :: CODES_OUT_OF_RANGE = -65 - integer, parameter,public :: CODES_UNSUPPORTED_EDITION = -64 - integer, parameter,public :: CODES_ATTRIBUTE_NOT_FOUND = -63 - integer, parameter,public :: CODES_TOO_MANY_ATTRIBUTES = -62 - integer, parameter,public :: CODES_ATTRIBUTE_CLASH = -61 - integer, parameter,public :: CODES_NULL_POINTER = -60 - integer, parameter,public :: CODES_MISSING_BUFR_ENTRY = -59 - integer, parameter,public :: CODES_WRONG_CONVERSION = -58 - integer, parameter,public :: CODES_STRING_TOO_SMALL = -57 - integer, parameter,public :: CODES_INVALID_KEY_VALUE = -56 - integer, parameter,public :: CODES_VALUE_DIFFERENT = -55 - integer, parameter,public :: CODES_DIFFERENT_EDITION = -54 - integer, parameter,public :: CODES_INVALID_BPV = -53 - integer, parameter,public :: CODES_CORRUPTED_INDEX = -52 - integer, parameter,public :: CODES_MESSAGE_MALFORMED = -51 - integer, parameter,public :: CODES_UNDERFLOW = -50 - integer, parameter,public :: CODES_SWITCH_NO_MATCH = -49 - integer, parameter,public :: CODES_CONSTANT_FIELD = -48 - integer, parameter,public :: CODES_MESSAGE_TOO_LARGE = -47 - integer, parameter,public :: CODES_INTERNAL_ARRAY_TOO_SMALL = -46 - integer, parameter,public :: CODES_PREMATURE_END_OF_FILE = -45 - integer, parameter,public :: CODES_NULL_INDEX = -44 - integer, parameter,public :: CODES_END_OF_INDEX = -43 - integer, parameter,public :: CODES_WRONG_GRID = -42 - integer, parameter,public :: CODES_NO_VALUES = -41 - integer, parameter,public :: CODES_END = -40 - integer, parameter,public :: CODES_WRONG_TYPE = -39 - integer, parameter,public :: CODES_NO_DEFINITIONS = -38 - integer, parameter,public :: CODES_HASH_ARRAY_NO_MATCH = -37 - integer, parameter,public :: CODES_CONCEPT_NO_MATCH = -36 - integer, parameter,public :: CODES_OUT_OF_AREA = -35 - integer, parameter,public :: CODES_MISSING_KEY = -34 - integer, parameter,public :: CODES_INVALID_ORDERBY = -33 - integer, parameter,public :: CODES_INVALID_NEAREST = -32 - integer, parameter,public :: CODES_INVALID_KEYS_ITERATOR = -31 - integer, parameter,public :: CODES_INVALID_ITERATOR = -30 - integer, parameter,public :: CODES_INVALID_INDEX = -29 - integer, parameter,public :: CODES_INVALID_GRIB = -28 - integer, parameter,public :: CODES_INVALID_FILE = -27 - integer, parameter,public :: CODES_WRONG_STEP_UNIT = -26 - integer, parameter,public :: CODES_WRONG_STEP = -25 - integer, parameter,public :: CODES_INVALID_TYPE = -24 - integer, parameter,public :: CODES_WRONG_LENGTH = -23 - integer, parameter,public :: CODES_VALUE_CANNOT_BE_MISSING = -22 - integer, parameter,public :: CODES_INVALID_SECTION_NUMBER = -21 - integer, parameter,public :: CODES_NULL_HANDLE = -20 - integer, parameter,public :: CODES_INVALID_ARGUMENT = -19 - integer, parameter,public :: CODES_READ_ONLY = -18 - integer, parameter,public :: CODES_OUT_OF_MEMORY = -17 - integer, parameter,public :: CODES_GEOCALCULUS_PROBLEM = -16 - integer, parameter,public :: CODES_NO_MORE_IN_SET = -15 - integer, parameter,public :: CODES_ENCODING_ERROR = -14 - integer, parameter,public :: CODES_DECODING_ERROR = -13 - integer, parameter,public :: CODES_INVALID_MESSAGE = -12 - integer, parameter,public :: CODES_IO_PROBLEM = -11 - integer, parameter,public :: CODES_NOT_FOUND = -10 - integer, parameter,public :: CODES_WRONG_ARRAY_SIZE = -9 - integer, parameter,public :: CODES_CODE_NOT_FOUND_IN_TABLE = -8 - integer, parameter,public :: CODES_FILE_NOT_FOUND = -7 - integer, parameter,public :: CODES_ARRAY_TOO_SMALL = -6 - integer, parameter,public :: CODES_7777_NOT_FOUND = -5 - integer, parameter,public :: CODES_NOT_IMPLEMENTED = -4 - integer, parameter,public :: CODES_BUFFER_TOO_SMALL = -3 - integer, parameter,public :: CODES_INTERNAL_ERROR = -2 - integer, parameter,public :: CODES_END_OF_FILE = -1 - integer, parameter,public :: CODES_SUCCESS = 0 - integer, parameter,public :: CODES_NULL = -1 + integer, parameter,public :: CODES_ASSERTION_FAILURE = -79 + integer, parameter,public :: CODES_UNABLE_TO_COMPARE_ACCESSORS = -78 + integer, parameter,public :: CODES_TYPE_AND_VALUE_MISMATCH = -77 + integer, parameter,public :: CODES_TYPE_MISMATCH = -76 + integer, parameter,public :: CODES_NAME_MISMATCH = -75 + integer, parameter,public :: CODES_COUNT_MISMATCH = -74 + integer, parameter,public :: CODES_OFFSET_MISMATCH = -73 + integer, parameter,public :: CODES_STRING_VALUE_MISMATCH = -72 + integer, parameter,public :: CODES_BYTE_VALUE_MISMATCH = -71 + integer, parameter,public :: CODES_LONG_VALUE_MISMATCH = -70 + integer, parameter,public :: CODES_DOUBLE_VALUE_MISMATCH = -69 + integer, parameter,public :: CODES_VALUE_MISMATCH = -68 + integer, parameter,public :: CODES_FUNCTIONALITY_NOT_ENABLED = -67 + integer, parameter,public :: CODES_WRONG_BITMAP_SIZE = -66 + integer, parameter,public :: CODES_OUT_OF_RANGE = -65 + integer, parameter,public :: CODES_UNSUPPORTED_EDITION = -64 + integer, parameter,public :: CODES_ATTRIBUTE_NOT_FOUND = -63 + integer, parameter,public :: CODES_TOO_MANY_ATTRIBUTES = -62 + integer, parameter,public :: CODES_ATTRIBUTE_CLASH = -61 + integer, parameter,public :: CODES_NULL_POINTER = -60 + integer, parameter,public :: CODES_MISSING_BUFR_ENTRY = -59 + integer, parameter,public :: CODES_WRONG_CONVERSION = -58 + integer, parameter,public :: CODES_STRING_TOO_SMALL = -57 + integer, parameter,public :: CODES_INVALID_KEY_VALUE = -56 + integer, parameter,public :: CODES_VALUE_DIFFERENT = -55 + integer, parameter,public :: CODES_DIFFERENT_EDITION = -54 + integer, parameter,public :: CODES_INVALID_BPV = -53 + integer, parameter,public :: CODES_CORRUPTED_INDEX = -52 + integer, parameter,public :: CODES_MESSAGE_MALFORMED = -51 + integer, parameter,public :: CODES_UNDERFLOW = -50 + integer, parameter,public :: CODES_SWITCH_NO_MATCH = -49 + integer, parameter,public :: CODES_CONSTANT_FIELD = -48 + integer, parameter,public :: CODES_MESSAGE_TOO_LARGE = -47 + integer, parameter,public :: CODES_INTERNAL_ARRAY_TOO_SMALL = -46 + integer, parameter,public :: CODES_PREMATURE_END_OF_FILE = -45 + integer, parameter,public :: CODES_NULL_INDEX = -44 + integer, parameter,public :: CODES_END_OF_INDEX = -43 + integer, parameter,public :: CODES_WRONG_GRID = -42 + integer, parameter,public :: CODES_NO_VALUES = -41 + integer, parameter,public :: CODES_END = -40 + integer, parameter,public :: CODES_WRONG_TYPE = -39 + integer, parameter,public :: CODES_NO_DEFINITIONS = -38 + integer, parameter,public :: CODES_HASH_ARRAY_NO_MATCH = -37 + integer, parameter,public :: CODES_CONCEPT_NO_MATCH = -36 + integer, parameter,public :: CODES_OUT_OF_AREA = -35 + integer, parameter,public :: CODES_MISSING_KEY = -34 + integer, parameter,public :: CODES_INVALID_ORDERBY = -33 + integer, parameter,public :: CODES_INVALID_NEAREST = -32 + integer, parameter,public :: CODES_INVALID_KEYS_ITERATOR = -31 + integer, parameter,public :: CODES_INVALID_ITERATOR = -30 + integer, parameter,public :: CODES_INVALID_INDEX = -29 + integer, parameter,public :: CODES_INVALID_GRIB = -28 + integer, parameter,public :: CODES_INVALID_FILE = -27 + integer, parameter,public :: CODES_WRONG_STEP_UNIT = -26 + integer, parameter,public :: CODES_WRONG_STEP = -25 + integer, parameter,public :: CODES_INVALID_TYPE = -24 + integer, parameter,public :: CODES_WRONG_LENGTH = -23 + integer, parameter,public :: CODES_VALUE_CANNOT_BE_MISSING = -22 + integer, parameter,public :: CODES_INVALID_SECTION_NUMBER = -21 + integer, parameter,public :: CODES_NULL_HANDLE = -20 + integer, parameter,public :: CODES_INVALID_ARGUMENT = -19 + integer, parameter,public :: CODES_READ_ONLY = -18 + integer, parameter,public :: CODES_OUT_OF_MEMORY = -17 + integer, parameter,public :: CODES_GEOCALCULUS_PROBLEM = -16 + integer, parameter,public :: CODES_NO_MORE_IN_SET = -15 + integer, parameter,public :: CODES_ENCODING_ERROR = -14 + integer, parameter,public :: CODES_DECODING_ERROR = -13 + integer, parameter,public :: CODES_INVALID_MESSAGE = -12 + integer, parameter,public :: CODES_IO_PROBLEM = -11 + integer, parameter,public :: CODES_NOT_FOUND = -10 + integer, parameter,public :: CODES_WRONG_ARRAY_SIZE = -9 + integer, parameter,public :: CODES_CODE_NOT_FOUND_IN_TABLE = -8 + integer, parameter,public :: CODES_FILE_NOT_FOUND = -7 + integer, parameter,public :: CODES_ARRAY_TOO_SMALL = -6 + integer, parameter,public :: CODES_7777_NOT_FOUND = -5 + integer, parameter,public :: CODES_NOT_IMPLEMENTED = -4 + integer, parameter,public :: CODES_BUFFER_TOO_SMALL = -3 + integer, parameter,public :: CODES_INTERNAL_ERROR = -2 + integer, parameter,public :: CODES_END_OF_FILE = -1 + integer, parameter,public :: CODES_SUCCESS = 0 + integer, parameter,public :: CODES_NULL = -1 diff --git a/fortran/eccodes_f90_int.f90 b/fortran/eccodes_f90_int.f90 index 5202aa4f7..83caa7881 100644 --- a/fortran/eccodes_f90_int.f90 +++ b/fortran/eccodes_f90_int.f90 @@ -16,7 +16,7 @@ !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error interface codes_index_get diff --git a/fortran/eccodes_f90_long_int.f90 b/fortran/eccodes_f90_long_int.f90 index 5399b54be..c124bfae9 100644 --- a/fortran/eccodes_f90_long_int.f90 +++ b/fortran/eccodes_f90_long_int.f90 @@ -16,7 +16,7 @@ !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error interface codes_index_get diff --git a/fortran/eccodes_f90_tail.f90 b/fortran/eccodes_f90_tail.f90 index 7dfdd952a..faf4e7e36 100644 --- a/fortran/eccodes_f90_tail.f90 +++ b/fortran/eccodes_f90_tail.f90 @@ -121,7 +121,7 @@ end subroutine codes_index_get_size_int !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error subroutine codes_index_get_int(indexid, key, values, status) @@ -143,7 +143,7 @@ end subroutine codes_index_get_int !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error subroutine codes_index_get_long(indexid, key, values, status) @@ -165,7 +165,7 @@ end subroutine codes_index_get_long !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error subroutine codes_index_get_real8(indexid, key, values, status) @@ -189,7 +189,7 @@ end subroutine codes_index_get_real8 !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status CODES_SUCCESS if OK, integer value on error subroutine codes_index_get_string(indexid, key, values, status) diff --git a/fortran/grib_api_constants.h b/fortran/grib_api_constants.h index 1ad7238ba..f8ea7a226 100644 --- a/fortran/grib_api_constants.h +++ b/fortran/grib_api_constants.h @@ -1,3 +1,15 @@ + integer, parameter,public :: GRIB_ASSERTION_FAILURE = -79 + integer, parameter,public :: GRIB_UNABLE_TO_COMPARE_ACCESSORS = -78 + integer, parameter,public :: GRIB_TYPE_AND_VALUE_MISMATCH = -77 + integer, parameter,public :: GRIB_TYPE_MISMATCH = -76 + integer, parameter,public :: GRIB_NAME_MISMATCH = -75 + integer, parameter,public :: GRIB_COUNT_MISMATCH = -74 + integer, parameter,public :: GRIB_OFFSET_MISMATCH = -73 + integer, parameter,public :: GRIB_STRING_VALUE_MISMATCH = -72 + integer, parameter,public :: GRIB_BYTE_VALUE_MISMATCH = -71 + integer, parameter,public :: GRIB_LONG_VALUE_MISMATCH = -70 + integer, parameter,public :: GRIB_DOUBLE_VALUE_MISMATCH = -69 + integer, parameter,public :: GRIB_VALUE_MISMATCH = -68 integer, parameter,public :: GRIB_FUNCTIONALITY_NOT_ENABLED = -67 integer, parameter,public :: GRIB_WRONG_BITMAP_SIZE = -66 integer, parameter,public :: GRIB_OUT_OF_RANGE = -65 diff --git a/fortran/grib_f90_int.f90 b/fortran/grib_f90_int.f90 index d474cfa8e..d5fdb45f3 100644 --- a/fortran/grib_f90_int.f90 +++ b/fortran/grib_f90_int.f90 @@ -16,7 +16,7 @@ !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error interface grib_index_get diff --git a/fortran/grib_f90_long_int.f90 b/fortran/grib_f90_long_int.f90 index 9cd98a352..1d7e53afb 100644 --- a/fortran/grib_f90_long_int.f90 +++ b/fortran/grib_f90_long_int.f90 @@ -16,7 +16,7 @@ !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error interface grib_index_get diff --git a/fortran/grib_f90_tail.f90 b/fortran/grib_f90_tail.f90 index 0f8b19103..600e621a5 100644 --- a/fortran/grib_f90_tail.f90 +++ b/fortran/grib_f90_tail.f90 @@ -154,7 +154,7 @@ end subroutine grib_index_get_size_int !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid ID of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error subroutine grib_index_get_int(indexid, key, values, status) @@ -184,7 +184,7 @@ end subroutine grib_index_get_int !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid ID of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error subroutine grib_index_get_long(indexid, key, values, status) @@ -214,7 +214,7 @@ end subroutine grib_index_get_long !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error subroutine grib_index_get_real8(indexid, key, values, status) @@ -246,7 +246,7 @@ end subroutine grib_index_get_real8 !> \b Examples: \ref grib_index.f90 "grib_index.f90" !> !> @param indexid id of an index created from a file. The index must have been created with the key in argument. - !> @param key key for wich the values are returned + !> @param key key for which the values are returned !> @param values array of values. The array must be allocated before entering this function and its size must be enough to contain all the values. !> @param status GRIB_SUCCESS if OK, integer value on error subroutine grib_index_get_string(indexid, key, values, status) diff --git a/fortran/grib_fortran.c b/fortran/grib_fortran.c index 26191cc2c..751f28460 100644 --- a/fortran/grib_fortran.c +++ b/fortran/grib_fortran.c @@ -164,7 +164,7 @@ static l_grib_handle* handle_set = NULL; static l_grib_index* index_set = NULL; static l_grib_multi_handle* multi_handle_set = NULL; static l_grib_file* file_set = NULL; -static l_grib_iterator* iterator_set = NULL; +/*static l_grib_iterator* iterator_set = NULL;*/ static l_grib_keys_iterator* keys_iterator_set = NULL; static l_bufr_keys_iterator* bufr_keys_iterator_set = NULL; static grib_oarray* binary_messages = NULL; @@ -474,55 +474,6 @@ static void push_multi_handle(grib_multi_handle *h,int *gid) return; } -static int _push_iterator(grib_iterator *i) -{ - l_grib_iterator* current = iterator_set; - l_grib_iterator* previous = iterator_set; - l_grib_iterator* the_new = NULL; - int myindex = 1; - - if(!iterator_set){ - iterator_set = (l_grib_iterator*)malloc(sizeof(l_grib_iterator)); - Assert(iterator_set); - iterator_set->id = myindex; - iterator_set->i = i; - iterator_set->next = NULL; - return myindex; - } - - while(current){ - if(current->id < 0){ - current->id = -(current->id); - current->i = i; - return current->id; - } - else{ - myindex++; - previous = current; - current = current->next; - } - } - - the_new = (l_grib_iterator*)malloc(sizeof(l_grib_iterator)); - Assert(the_new); - the_new->id = myindex; - the_new->i = i; - the_new->next = current; - previous->next = the_new; - - return myindex; -} - -static int push_iterator(grib_iterator *i) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init); - GRIB_MUTEX_LOCK(&iterator_mutex); - ret=_push_iterator(i); - GRIB_MUTEX_UNLOCK(&iterator_mutex); - return ret; -} - static int _push_keys_iterator(grib_keys_iterator *i) { l_grib_keys_iterator* current = keys_iterator_set; @@ -700,27 +651,6 @@ static FILE* get_file(int file_id) return NULL; } -static grib_iterator* _get_iterator(int iterator_id) -{ - l_grib_iterator* current = iterator_set; - - while(current){ - if(current->id == iterator_id) return current->i; - current = current->next; - } - return NULL; -} - -static grib_iterator* get_iterator(int iterator_id) -{ - grib_iterator* i=NULL; - GRIB_MUTEX_INIT_ONCE(&once,&init); - GRIB_MUTEX_LOCK(&iterator_mutex); - i=_get_iterator(iterator_id); - GRIB_MUTEX_UNLOCK(&iterator_mutex); - return i; -} - static grib_keys_iterator* _get_keys_iterator(int keys_iterator_id) { l_grib_keys_iterator* current = keys_iterator_set; @@ -865,30 +795,6 @@ static int clear_multi_handle(int multi_handle_id) return ret; } -static int _clear_iterator(int iterator_id) -{ - l_grib_iterator* current = iterator_set; - - while(current){ - if(current->id == iterator_id){ - current->id = -(current->id); - return grib_iterator_delete(current->i); - } - current = current->next; - } - return GRIB_INVALID_ITERATOR; -} - -static int clear_iterator(int iterator_id) -{ - int ret=0; - GRIB_MUTEX_INIT_ONCE(&once,&init); - GRIB_MUTEX_LOCK(&iterator_mutex); - ret=_clear_iterator(iterator_id); - GRIB_MUTEX_UNLOCK(&iterator_mutex); - return ret; -} - static int _clear_keys_iterator(int keys_iterator_id) { l_grib_keys_iterator* current = keys_iterator_set; @@ -1143,8 +1049,96 @@ int grib_f_multi_support_off(){ return grib_f_multi_support_off_(); } - /*****************************************************************************/ +#ifdef FORTRAN_GEOITERATOR_SUPPORT +static int _push_iterator(grib_iterator *i) +{ + l_grib_iterator* current = iterator_set; + l_grib_iterator* previous = iterator_set; + l_grib_iterator* the_new = NULL; + int myindex = 1; + + if(!iterator_set){ + iterator_set = (l_grib_iterator*)malloc(sizeof(l_grib_iterator)); + Assert(iterator_set); + iterator_set->id = myindex; + iterator_set->i = i; + iterator_set->next = NULL; + return myindex; + } + + while(current){ + if(current->id < 0){ + current->id = -(current->id); + current->i = i; + return current->id; + } + else{ + myindex++; + previous = current; + current = current->next; + } + } + + the_new = (l_grib_iterator*)malloc(sizeof(l_grib_iterator)); + Assert(the_new); + the_new->id = myindex; + the_new->i = i; + the_new->next = current; + previous->next = the_new; + + return myindex; +} +static int push_iterator(grib_iterator *i) +{ + int ret=0; + GRIB_MUTEX_INIT_ONCE(&once,&init); + GRIB_MUTEX_LOCK(&iterator_mutex); + ret=_push_iterator(i); + GRIB_MUTEX_UNLOCK(&iterator_mutex); + return ret; +} +static grib_iterator* _get_iterator(int iterator_id) +{ + l_grib_iterator* current = iterator_set; + + while(current){ + if(current->id == iterator_id) return current->i; + current = current->next; + } + return NULL; +} +static grib_iterator* get_iterator(int iterator_id) +{ + grib_iterator* i=NULL; + GRIB_MUTEX_INIT_ONCE(&once,&init); + GRIB_MUTEX_LOCK(&iterator_mutex); + i=_get_iterator(iterator_id); + GRIB_MUTEX_UNLOCK(&iterator_mutex); + return i; +} +static int _clear_iterator(int iterator_id) +{ + l_grib_iterator* current = iterator_set; + + while(current){ + if(current->id == iterator_id){ + current->id = -(current->id); + return grib_iterator_delete(current->i); + } + current = current->next; + } + return GRIB_INVALID_ITERATOR; +} +static int clear_iterator(int iterator_id) +{ + int ret=0; + GRIB_MUTEX_INIT_ONCE(&once,&init); + GRIB_MUTEX_LOCK(&iterator_mutex); + ret=_clear_iterator(iterator_id); + GRIB_MUTEX_UNLOCK(&iterator_mutex); + return ret; +} static int _grib_f_iterator_new_(int* gid,int* iterid,int* mode) { int err=0; grib_handle* h; @@ -1176,32 +1170,29 @@ int grib_f_iterator_new__(int* gid,int* iterid,int* mode) { int grib_f_iterator_new(int* gid,int* iterid,int* mode) { return grib_f_iterator_new_(gid,iterid,mode); } - /*****************************************************************************/ int grib_f_iterator_next_(int* iterid,double* lat,double* lon,double* value) { grib_iterator* iter=get_iterator(*iterid); if (!iter) return GRIB_INVALID_ITERATOR; return grib_iterator_next(iter,lat,lon,value); } - int grib_f_iterator_next__(int* iterid,double* lat,double* lon,double* value) { return grib_f_iterator_next_(iterid,lat,lon,value); } int grib_f_iterator_next(int* iterid,double* lat,double* lon,double* value) { return grib_f_iterator_next_(iterid,lat,lon,value); } - /*****************************************************************************/ int grib_f_iterator_delete_(int* iterid) { return clear_iterator(*iterid); } - int grib_f_iterator_delete__(int* iterid) { return grib_f_iterator_delete_(iterid); } int grib_f_iterator_delete(int* iterid) { return grib_f_iterator_delete_(iterid); } +#endif /*FORTRAN_GEOITERATOR_SUPPORT*/ /*****************************************************************************/ static int _grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) { @@ -1230,7 +1221,6 @@ int grib_f_keys_iterator_new_(int* gid,int* iterid,char* name_space,int len) { GRIB_MUTEX_UNLOCK(&keys_iterator_mutex) return ret; } - int grib_f_keys_iterator_new__(int* gid,int* iterid,char* name_space,int len) { return grib_f_keys_iterator_new_(gid,iterid,name_space,len); } @@ -1405,7 +1395,7 @@ int grib_f_keys_iterator_rewind(int* kiter) { return grib_f_keys_iterator_rewind_(kiter); } -/*BUFR keys iterator*/ +/* BUFR keys iterator */ /*****************************************************************************/ static int _codes_f_bufr_keys_iterator_new_(int* gid,int* iterid) { int err=0; @@ -1503,7 +1493,6 @@ int codes_f_bufr_keys_iterator_delete(int* iterid) { return codes_f_bufr_keys_iterator_delete_(iterid); } - /*****************************************************************************/ int grib_f_new_from_message_(int* gid, void* buffer , size_t* bufsize){ grib_handle *h = NULL; @@ -2129,11 +2118,12 @@ static void do_the_dump(grib_handle* h) | GRIB_DUMP_FLAG_READ_ONLY | GRIB_DUMP_FLAG_ALIASES | GRIB_DUMP_FLAG_TYPE; - grib_dump_content(h,stdout,"debug", dump_flags, NULL); + grib_dump_content(h,stdout, "debug", dump_flags, NULL); } else { - grib_dump_content(h,stdout,"wmo",0,NULL); + const int dump_flags = GRIB_DUMP_FLAG_CODED | GRIB_DUMP_FLAG_OCTET | GRIB_DUMP_FLAG_VALUES | GRIB_DUMP_FLAG_READ_ONLY; + grib_dump_content(h,stdout, "wmo", dump_flags, NULL); } } int grib_f_dump_(int* gid){ @@ -2865,35 +2855,43 @@ int grib_f_set_force_real4_array(int* gid, char* key, float*val, int* size, int } /*****************************************************************************/ -int grib_f_set_real4_array_(int* gid, char* key, float*val, int* size, int len) +int grib_f_set_real4_array_(int* gid, char* key, float* val, int* size, int len) { - grib_handle *h = get_handle(*gid); - int err = GRIB_SUCCESS; + grib_handle* h = get_handle(*gid); + int err = GRIB_SUCCESS; char buf[1024]; - size_t lsize = *size; - double* val8 = NULL; + const size_t lsize = *size; + const int single_precision_mode = (h->context->single_precision != 0); - if(!h) return GRIB_INVALID_GRIB; + if (!h) return GRIB_INVALID_GRIB; - if(*size) - val8 = (double*)grib_context_malloc(h->context,lsize*(sizeof(double))); - else - val8 = (double*)grib_context_malloc(h->context,sizeof(double)); + if (single_precision_mode) { + err = grib_set_float_array(h, cast_char(buf, key, len), val, lsize); + } + else { + double* val8 = NULL; + size_t i = 0; + if (*size) + val8 = (double*)grib_context_malloc(h->context, lsize * (sizeof(double))); + else + val8 = (double*)grib_context_malloc(h->context, sizeof(double)); - if(!val8) return GRIB_OUT_OF_MEMORY; + if (!val8) return GRIB_OUT_OF_MEMORY; - for(lsize=0;lsize<*size;lsize++) - val8[lsize] = val[lsize]; + for (i = 0; i < lsize; i++) + val8[i] = val[i]; + + err = grib_set_double_array(h, cast_char(buf, key, len), val8, lsize); + grib_context_free(h->context, val8); + } - err = grib_set_double_array(h, cast_char(buf,key,len), val8, lsize); - grib_context_free(h->context,val8); return err; } -int grib_f_set_real4_array__(int* gid, char* key, float*val, int* size, int len){ - return grib_f_set_real4_array_( gid, key, val, size, len); +int grib_f_set_real4_array__(int* gid, char* key, float* val, int* size, int len) { + return grib_f_set_real4_array_(gid, key, val, size, len); } -int grib_f_set_real4_array(int* gid, char* key, float*val, int* size, int len){ - return grib_f_set_real4_array_( gid, key, val, size, len); +int grib_f_set_real4_array(int* gid, char* key, float* val, int* size, int len) { + return grib_f_set_real4_array_(gid, key, val, size, len); } /*****************************************************************************/ @@ -3201,7 +3199,7 @@ int grib_f_set_real8_array_(int* gid, char* key, double*val, int* size, int len) char buf[1024]; size_t lsize = *size; - if(!h) return GRIB_INVALID_GRIB; + if (!h) return GRIB_INVALID_GRIB; return grib_set_double_array(h, cast_char(buf,key,len), val, lsize); } diff --git a/fortran/grib_fortran_prototypes.h b/fortran/grib_fortran_prototypes.h index 32920c521..f0267cc79 100644 --- a/fortran/grib_fortran_prototypes.h +++ b/fortran/grib_fortran_prototypes.h @@ -40,16 +40,8 @@ int grib_f_multi_support_on(void); int grib_f_multi_support_off_(void); int grib_f_multi_support_off__(void); int grib_f_multi_support_off(void); -int grib_f_iterator_new_(int *gid, int *iterid, int *mode); -int grib_f_iterator_new__(int *gid, int *iterid, int *mode); -int grib_f_iterator_new(int *gid, int *iterid, int *mode); -int grib_f_iterator_next_(int *iterid, double *lat, double *lon, double *value); -int grib_f_iterator_next__(int *iterid, double *lat, double *lon, double *value); -int grib_f_iterator_next(int *iterid, double *lat, double *lon, double *value); -int grib_f_iterator_delete_(int *iterid); -int grib_f_iterator_delete__(int *iterid); -int grib_f_iterator_delete(int *iterid); +/* GRIB keys iterator */ int grib_f_keys_iterator_new_(int *gid, int *iterid, char *name_space, int len); int grib_f_keys_iterator_new__(int *gid, int *iterid, char *name_space, int len); int grib_f_keys_iterator_new(int *gid, int *iterid, char *name_space, int len); @@ -59,8 +51,14 @@ int grib_f_keys_iterator_next(int *iterid); int grib_f_keys_iterator_delete_(int *iterid); int grib_f_keys_iterator_delete__(int *iterid); int grib_f_keys_iterator_delete(int *iterid); +int grib_f_keys_iterator_get_name_(int *iterid, char *name, int len); +int grib_f_keys_iterator_get_name__(int *kiter, char *name, int len); +int grib_f_keys_iterator_get_name(int *kiter, char *name, int len); +int grib_f_keys_iterator_rewind_(int *kiter); +int grib_f_keys_iterator_rewind__(int *kiter); +int grib_f_keys_iterator_rewind(int *kiter); -/*BUFR keys iterator*/ +/* BUFR keys iterator */ int codes_f_bufr_keys_iterator_new_(int *gid, int *iterid); int codes_f_bufr_keys_iterator_new__(int *gid, int *iterid); int codes_f_bufr_keys_iterator_new(int *gid, int *iterid); @@ -101,12 +99,6 @@ int grib_f_skip_read_only(int *iterid); int grib_f_skip_function_(int *iterid); int grib_f_skip_function__(int *iterid); int grib_f_skip_function(int *iterid); -int grib_f_keys_iterator_get_name_(int *iterid, char *name, int len); -int grib_f_keys_iterator_get_name__(int *kiter, char *name, int len); -int grib_f_keys_iterator_get_name(int *kiter, char *name, int len); -int grib_f_keys_iterator_rewind_(int *kiter); -int grib_f_keys_iterator_rewind__(int *kiter); -int grib_f_keys_iterator_rewind(int *kiter); int grib_f_new_from_message_(int *gid, void *buffer, size_t *bufsize); int grib_f_new_from_message__(int *gid, void *buffer, size_t *bufsize); int grib_f_new_from_message(int *gid, void *buffer, size_t *bufsize); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 332118567..8ce7d8f29 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -35,7 +35,6 @@ list( APPEND eccodes_src_files action_class_set.cc action_class_set_sarray.cc action_class_set_darray.cc - action_class_set_iarray.cc action_class_noop.cc action_class_write.cc action_class_print.cc @@ -57,8 +56,6 @@ list( APPEND eccodes_src_files grib_iarray.cc grib_viarray.cc codes_memfs.cc - grib_accessor_class_array.cc - grib_accessor_class_assert.cc grib_accessor_class_ascii.cc grib_accessor_class_bit.cc grib_accessor_class_bitmap.cc @@ -99,7 +96,6 @@ list( APPEND eccodes_src_files grib_accessor_class_double.cc grib_accessor_class_element.cc grib_accessor_class_evaluate.cc - grib_accessor_class_g1area.cc grib_accessor_class_g1date.cc grib_accessor_class_g1monthlydate.cc grib_accessor_class_library_version.cc @@ -132,11 +128,9 @@ list( APPEND eccodes_src_files grib_accessor_class_latlonvalues.cc grib_accessor_class_latitudes.cc grib_accessor_class_longitudes.cc - grib_accessor_class_missing.cc grib_accessor_class_offset_file.cc grib_accessor_class_scale.cc grib_accessor_class_from_scale_factor_scaled_value.cc - grib_accessor_class_times.cc grib_accessor_class_g2bitmap_present.cc grib_accessor_class_ibmfloat.cc grib_accessor_class_ieeefloat.cc @@ -145,7 +139,6 @@ list( APPEND eccodes_src_files grib_accessor_class_message.cc grib_accessor_class_nearest.cc grib_accessor_class_ksec1expver.cc - grib_accessor_class_laplacian.cc grib_accessor_class_label.cc grib_accessor_class_long.cc grib_accessor_class_lookup.cc @@ -158,6 +151,7 @@ list( APPEND eccodes_src_files grib_accessor_class_padtoeven.cc grib_accessor_class_padtomultiple.cc grib_accessor_class_section_padding.cc + grib_accessor_class_packing_type.cc grib_accessor_class_section_pointer.cc grib_accessor_class_position.cc grib_accessor_class_signed.cc @@ -189,14 +183,12 @@ list( APPEND eccodes_src_files grib_accessor_class_data_g1shsimple_packing.cc grib_accessor_class_data_shsimple_packing.cc grib_accessor_class_data_dummy_field.cc - grib_2order_packer_simple.cc grib_accessor_class_variable.cc grib_accessor_class_second_order_bits_per_value.cc grib_accessor_class_data_g2simple_packing.cc grib_accessor_class_data_g2simple_packing_with_preprocessing.cc grib_accessor_class_data_g2shsimple_packing.cc grib_accessor_class_data_g2complex_packing.cc - grib_accessor_class_data_2order_packing.cc grib_accessor_class_data_g1second_order_row_by_row_packing.cc grib_accessor_class_data_g1second_order_constant_width_packing.cc grib_accessor_class_data_g1second_order_general_packing.cc @@ -218,7 +210,6 @@ list( APPEND eccodes_src_files grib_accessor_class_data_complex_packing.cc grib_accessor_class_data_g1complex_packing.cc grib_accessor_class_gds_not_present_bitmap.cc - grib_accessor_class_data_apply_gdsnotpresent.cc grib_accessor_class_gds_is_present.cc grib_accessor_class_select_step_template.cc grib_accessor_class_local_definition.cc @@ -325,10 +316,10 @@ list( APPEND eccodes_src_files grib_nearest.cc grib_nearest_class.cc grib_nearest_class_gen.cc + grib_nearest_class_healpix.cc grib_nearest_class_regular.cc grib_nearest_class_reduced.cc grib_nearest_class_latlon_reduced.cc - grib_nearest_class_sh.cc grib_nearest_class_lambert_conformal.cc grib_nearest_class_lambert_azimuthal_equal_area.cc grib_nearest_class_mercator.cc @@ -347,6 +338,7 @@ list( APPEND eccodes_src_files grib_iterator_class_latlon.cc grib_iterator_class_regular.cc grib_iterator_class_space_view.cc + grib_iterator_class_healpix.cc grib_expression.cc codes_util.cc grib_util.cc @@ -367,15 +359,7 @@ list( APPEND eccodes_src_files grib_yacc.h md5.h md5.cc - grib_accessor_class_int16.cc - grib_accessor_class_int16_little_endian.cc - grib_accessor_class_int32.cc - grib_accessor_class_int32_little_endian.cc - grib_accessor_class_int64.cc - grib_accessor_class_int64_little_endian.cc - grib_accessor_class_int8.cc grib_accessor_class_uint16.cc - grib_accessor_class_uint16_little_endian.cc grib_accessor_class_uint32.cc grib_accessor_class_uint32_little_endian.cc grib_accessor_class_uint64.cc diff --git a/src/accessor_class_hierarchy.txt b/src/accessor_class_hierarchy.txt index c65364598..2fa53b858 100644 --- a/src/accessor_class_hierarchy.txt +++ b/src/accessor_class_hierarchy.txt @@ -7,7 +7,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |-----grib_accessor_class_g1step_range |-------grib_accessor_class_g1fcperiod |-----grib_accessor_class_long_vector - |---grib_accessor_class_array |---grib_accessor_class_ascii |-----grib_accessor_class_bufr_string_values |-----grib_accessor_class_check_internal_version @@ -19,7 +18,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |-----grib_accessor_class_mars_step |-----grib_accessor_class_sprintf |-----grib_accessor_class_trim - |---grib_accessor_class_assert |---grib_accessor_class_bits |---grib_accessor_class_blob |---grib_accessor_class_bufr_data_array @@ -48,7 +46,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |---grib_accessor_class_data_apply_bitmap |---grib_accessor_class_data_apply_boustrophedonic |---grib_accessor_class_data_apply_boustrophedonic_bitmap - |---grib_accessor_class_data_apply_gdsnotpresent |---grib_accessor_class_data_secondary_bitmap |-----grib_accessor_class_data_g1secondary_bitmap |-----grib_accessor_class_data_g2secondary_bitmap @@ -65,7 +62,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |-----grib_accessor_class_closest_date |-----grib_accessor_class_divdouble |-----grib_accessor_class_from_scale_factor_scaled_value - |-----grib_accessor_class_g1area |-----grib_accessor_class_g2grid |-----grib_accessor_class_g2latlon |-----grib_accessor_class_g2lon @@ -73,7 +69,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |-----grib_accessor_class_ieeefloat |-----grib_accessor_class_julian_date |-----grib_accessor_class_julian_day - |-----grib_accessor_class_laplacian |-----grib_accessor_class_latitudes |-----grib_accessor_class_latlon_increment |-----grib_accessor_class_latlonvalues @@ -94,13 +89,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |---grib_accessor_class_hash_array |---grib_accessor_class_headers_only |---grib_accessor_class_ifs_param - |---grib_accessor_class_int16 - |---grib_accessor_class_int16_little_endian - |---grib_accessor_class_int32 - |---grib_accessor_class_int32_little_endian - |---grib_accessor_class_int64 - |---grib_accessor_class_int64_little_endian - |---grib_accessor_class_int8 |---grib_accessor_class_iterator |---grib_accessor_class_label |---grib_accessor_class_long @@ -160,7 +148,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |---------grib_accessor_class_g1_section4_length |-------grib_accessor_class_select_step_template |-------grib_accessor_class_smart_table - |-------grib_accessor_class_times |-----grib_accessor_class_unsigned_bits |-----grib_accessor_class_validity_date |-----grib_accessor_class_validity_time @@ -183,7 +170,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |---grib_accessor_class_to_string |---grib_accessor_class_transient_darray |---grib_accessor_class_uint16 - |---grib_accessor_class_uint16_little_endian |---grib_accessor_class_uint32 |---grib_accessor_class_uint32_little_endian |---grib_accessor_class_uint64 @@ -191,7 +177,6 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |---grib_accessor_class_uint8 |---grib_accessor_class_unpack_bufr_values |---grib_accessor_class_values - |-----grib_accessor_class_data_2order_packing |-----grib_accessor_class_data_ccsds_packing |-----grib_accessor_class_data_g22order_packing |-----grib_accessor_class_data_png_packing @@ -218,5 +203,3 @@ Generated by src/make_accessor_class_hierarchy_dirs.sh |-----grib_accessor_class_constant |-----grib_accessor_class_transient |---grib_accessor_class_when - |-grib_accessor_class_missing - diff --git a/src/action.cc b/src/action.cc index b89cf74cf..847862edc 100644 --- a/src/action.cc +++ b/src/action.cc @@ -83,7 +83,7 @@ static void init(grib_action_class* c) // GRIB_MUTEX_UNLOCK(&mutex1); // } -void grib_dump(grib_action* a, FILE* f, int l) +static void grib_dump(grib_action* a, FILE* f, int l) { grib_action_class* c = a->cclass; init(c); @@ -207,6 +207,10 @@ void grib_dump_action_branch(FILE* out, grib_action* a, int decay) void grib_dump_action_tree(grib_context* ctx, FILE* out) { + Assert(ctx); + Assert(ctx->grib_reader); + Assert(ctx->grib_reader->first); + Assert(out); grib_dump_action_branch(out, ctx->grib_reader->first->root, 0); } diff --git a/src/action_class_hierarchy.txt b/src/action_class_hierarchy.txt index 6c311c70c..2074b2c20 100644 --- a/src/action_class_hierarchy.txt +++ b/src/action_class_hierarchy.txt @@ -21,11 +21,8 @@ Action Class Hierarchy |---action_class_list |---action_class_switch |---action_class_template - |---action_class_trigger - |---action_class_while |-action_class_set |-action_class_set_darray - |-action_class_set_iarray |-action_class_set_missing |-action_class_set_sarray |-action_class_when diff --git a/src/action_class_modify.cc b/src/action_class_modify.cc index 9a56fcf4b..c379d7300 100644 --- a/src/action_class_modify.cc +++ b/src/action_class_modify.cc @@ -77,9 +77,7 @@ static void init_class(grib_action_class* c) } /* END_CLASS_IMP */ -grib_action* grib_action_create_modify(grib_context* context, - const char* name, - long flags) +grib_action* grib_action_create_modify(grib_context* context, const char* name, long flags) { grib_action_modify* a; grib_action_class* c = grib_action_class_modify; @@ -110,11 +108,13 @@ static int create_accessor(grib_section* p, grib_action* act, grib_loader* h) ga = grib_find_accessor(p->h, a->name); - if (ga) + if (ga) { ga->flags = a->flags; - + } else { - grib_context_log(act->context, GRIB_LOG_DEBUG, "action_class_modify: create_accessor_buffer : No accessor named %s to modify.", a->name); + grib_context_log(act->context, GRIB_LOG_ERROR, "action_class_modify: %s: No accessor named %s to modify", + __func__, a->name); + return GRIB_INTERNAL_ERROR; } return GRIB_SUCCESS; } diff --git a/src/action_class_trigger.cc b/src/action_class_trigger.cc index 82e4e9e43..f4a7413dc 100644 --- a/src/action_class_trigger.cc +++ b/src/action_class_trigger.cc @@ -8,160 +8,10 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * Jean Baptiste Filippi - 01.11.2005 * - ***************************************************************************/ - #include "grib_api_internal.h" -/* - This is used by make_class.pl - - START_CLASS_DEF - CLASS = action - SUPER = action_class_section - IMPLEMENTS = create_accessor - IMPLEMENTS = dump - IMPLEMENTS = destroy - IMPLEMENTS = reparse - MEMBERS = grib_arguments* trigger_on - MEMBERS = grib_action *block - END_CLASS_DEF - - */ - -/* START_CLASS_IMP */ - -/* - -Don't edit anything between START_CLASS_IMP and END_CLASS_IMP -Instead edit values between START_CLASS_DEF and END_CLASS_DEF -or edit "action.class" and rerun ./make_class.pl - -*/ - -static void init_class (grib_action_class*); -static void dump (grib_action* d, FILE*,int); -static void destroy (grib_context*,grib_action*); -static int create_accessor(grib_section*,grib_action*,grib_loader*); -static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit); - - -typedef struct grib_action_trigger { - grib_action act; - /* Members defined in section */ - /* Members defined in trigger */ - grib_arguments* trigger_on; - grib_action *block; -} grib_action_trigger; - -extern grib_action_class* grib_action_class_section; - -static grib_action_class _grib_action_class_trigger = { - &grib_action_class_section, /* super */ - "action_class_trigger", /* name */ - sizeof(grib_action_trigger), /* size */ - 0, /* inited */ - &init_class, /* init_class */ - 0, /* init */ - &destroy, /* destroy */ - - &dump, /* dump */ - 0, /* xref */ - - &create_accessor, /* create_accessor*/ - - 0, /* notify_change */ - &reparse, /* reparse */ - 0, /* execute */ -}; - -grib_action_class* grib_action_class_trigger = &_grib_action_class_trigger; - -static void init_class(grib_action_class* c) -{ - c->xref = (*(c->super))->xref; - c->notify_change = (*(c->super))->notify_change; - c->execute = (*(c->super))->execute; -} -/* END_CLASS_IMP */ grib_action* grib_action_create_trigger(grib_context* context, grib_arguments* args, grib_action* block) { - Assert(!"action_class_trigger::grib_action_create_trigger: 'trigger' statement is deprecated"); + grib_context_log(context, GRIB_LOG_FATAL, "The 'trigger' statement is deprecated"); return NULL; - -// char name[1024]; -// const size_t nameLen = sizeof(name); -// grib_action_trigger* a = 0; -// grib_action_class* c = grib_action_class_trigger; -// grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size); -// snprintf(name, nameLen, "_trigger%p", (void*)act); -// act->name = grib_context_strdup_persistent(context, name); -// act->op = grib_context_strdup_persistent(context, "section"); -// act->cclass = c; -// act->next = NULL; -// act->context = context; -// a = (grib_action_trigger*)act; -// a->trigger_on = args; -// a->block = block; -// return act; -} - -static void dump(grib_action* act, FILE* f, int lvl) -{ - Assert(!"action_class_trigger::dump: 'trigger' statement is deprecated"); - - // int i = 0; - // for (i = 0; i < lvl; i++) - // grib_context_print(act->context, f, " "); - // grib_context_print(act->context, f, "Trigger\n"); -} - -static int create_accessor(grib_section* p, grib_action* act, grib_loader* h) -{ - Assert(!"action_class_trigger::create_accessor: 'trigger' statement is deprecated"); - -// int ret = GRIB_SUCCESS; -// grib_action_trigger* a = (grib_action_trigger*)act; -// grib_action* next = NULL; -// grib_accessor* as = NULL; -// grib_section* gs = NULL; -// as = grib_accessor_factory(p, act, 0, NULL); -// if (!as) -// return GRIB_INTERNAL_ERROR; - -// gs = as->sub_section; -// gs->branch = 0; /* Force a reparse each time */ -// grib_push_accessor(as, p->block); -// grib_dependency_observe_arguments(as, a->trigger_on); -// next = a->block; -// while (next) { -// ret = grib_create_accessor(gs, next, h); -// if (ret != GRIB_SUCCESS) -// return ret; -// next = next->next; -// } - return GRIB_SUCCESS; -} - -static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit) -{ - grib_action_trigger* self = (grib_action_trigger*)a; - return self->block; -} - -static void destroy(grib_context* context, grib_action* act) -{ - Assert(!"action_class_trigger::destroy: 'trigger' statement is deprecated"); - -// grib_action_trigger* a = (grib_action_trigger*)act; -// grib_action* b = a->block; -// while (b) { -// grib_action* n = b->next; -// grib_action_delete(context, b); -// b = n; -// } -// grib_arguments_free(context, a->trigger_on); -// grib_context_free_persistent(context, act->name); -// grib_context_free_persistent(context, act->op); } diff --git a/src/action_class_while.cc b/src/action_class_while.cc index 0b5c7ca4c..6ec144d15 100644 --- a/src/action_class_while.cc +++ b/src/action_class_while.cc @@ -9,168 +9,11 @@ */ #include "grib_api_internal.h" -/* - This is used by make_class.pl - - START_CLASS_DEF - CLASS = action - SUPER = action_class_section - IMPLEMENTS = create_accessor - IMPLEMENTS = dump - IMPLEMENTS = destroy - MEMBERS = grib_expression *expression - MEMBERS = grib_action *block_while - END_CLASS_DEF - - */ - -/* START_CLASS_IMP */ - -/* - -Don't edit anything between START_CLASS_IMP and END_CLASS_IMP -Instead edit values between START_CLASS_DEF and END_CLASS_DEF -or edit "action.class" and rerun ./make_class.pl - -*/ - -static void init_class (grib_action_class*); -static void dump (grib_action* d, FILE*,int); -static void destroy (grib_context*,grib_action*); -static int create_accessor(grib_section*,grib_action*,grib_loader*); - - -typedef struct grib_action_while { - grib_action act; - /* Members defined in section */ - /* Members defined in while */ - grib_expression *expression; - grib_action *block_while; -} grib_action_while; - -extern grib_action_class* grib_action_class_section; - -static grib_action_class _grib_action_class_while = { - &grib_action_class_section, /* super */ - "action_class_while", /* name */ - sizeof(grib_action_while), /* size */ - 0, /* inited */ - &init_class, /* init_class */ - 0, /* init */ - &destroy, /* destroy */ - - &dump, /* dump */ - 0, /* xref */ - - &create_accessor, /* create_accessor*/ - - 0, /* notify_change */ - 0, /* reparse */ - 0, /* execute */ -}; - -grib_action_class* grib_action_class_while = &_grib_action_class_while; - -static void init_class(grib_action_class* c) -{ - c->xref = (*(c->super))->xref; - c->notify_change = (*(c->super))->notify_change; - c->reparse = (*(c->super))->reparse; - c->execute = (*(c->super))->execute; -} -/* END_CLASS_IMP */ - -static void dump(grib_action* act, FILE* f, int lvl) -{ - Assert(!"action_class_while::dump: 'while' statement is deprecated"); - -// grib_action_while* a = (grib_action_while*)act; -// int i = 0; -// for (i = 0; i < lvl; i++) -// grib_context_print(act->context, f, " "); -// grib_context_print(act->context, f, "Loop %s\n", act->name); -// grib_dump_action_branch(f, a->block_while, lvl + 1); -} - -static int create_accessor(grib_section* p, grib_action* act, grib_loader* h) -{ - Assert(!"action_class_while::create_accessor: 'while' statement is deprecated"); - -// grib_action_while* a = (grib_action_while*)act; -// grib_accessor* ga = NULL; -// grib_section* gs = NULL; -// grib_action* la = NULL; -// grib_action* next = NULL; -// int ret = 0; -// ga = grib_accessor_factory(p, act, 0, NULL); -// if (!ga) -// return GRIB_BUFFER_TOO_SMALL; -// gs = ga->sub_section; - -// grib_push_accessor(ga, p->block); -// la = a->block_while; - -// for (;;) { -// long val = 0; - -// if ((ret = grib_expression_evaluate_long(p->h, a->expression, &val)) != GRIB_SUCCESS) { -// grib_context_log(p->h->context, GRIB_LOG_DEBUG, " List %s creating %d values unable to evaluate long \n", act->name, val); -// return ret; -// } -// if (!val) -// break; - -// next = la; -// while (next) { -// ret = grib_create_accessor(gs, next, h); -// if (ret != GRIB_SUCCESS) -// return ret; -// next = next->next; -// } -// } - - return GRIB_SUCCESS; -} +// No longer used: For the original intent see +// src/deprecated/action_class_while.cc grib_action* grib_action_create_while(grib_context* context, grib_expression* expression, grib_action* block) { - Assert(!"action_class_while::grib_action_create_while: 'while' statement is deprecated"); + grib_context_log(context, GRIB_LOG_FATAL, "The 'while' statement is deprecated"); return NULL; - -// char name[80]; -// const size_t nameLen = sizeof(name); -// grib_action_while* a; -// grib_action_class* c = grib_action_class_while; -// grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size); -// act->cclass = c; -// act->context = context; -// a = (grib_action_while*)act; -// act->next = NULL; - -// snprintf(name, nameLen, "_while%p", (void*)a); -// act->name = grib_context_strdup_persistent(context, name); -// act->op = grib_context_strdup_persistent(context, "section"); -// a->expression = expression; - -// a->block_while = block; - -// grib_context_log(context, GRIB_LOG_DEBUG, " Action List %s is created \n", act->name); -// return act; -} - -static void destroy(grib_context* context, grib_action* act) -{ - Assert(!"action_class_while::destroy: 'while' statement is deprecated"); - - // grib_action_while* self = (grib_action_while*)act; - // grib_action* a = self->block_while; - - // while (a) { - // grib_action* na = a->next; - // grib_action_delete(context, a); - // a = na; - // } - // grib_context_free_persistent(context, act->name); - // grib_context_free_persistent(context, act->op); - // grib_expression_free(context, self->expression); } diff --git a/src/action_class_write.cc b/src/action_class_write.cc index a8c010ed3..6b18a90d6 100644 --- a/src/action_class_write.cc +++ b/src/action_class_write.cc @@ -8,9 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * Enrico Fucile * - ***************************************************************************/ #include "grib_api_internal.h" /* This is used by make_class.pl @@ -114,7 +111,7 @@ static int execute(grib_action* act, grib_handle* h) grib_file* of = NULL; if ((err = grib_get_message(h, &buffer, &size)) != GRIB_SUCCESS) { - grib_context_log(act->context, GRIB_LOG_ERROR, "unable to get message\n"); + grib_context_log(act->context, GRIB_LOG_ERROR, "unable to get message"); return err; } @@ -141,21 +138,22 @@ static int execute(grib_action* act, grib_handle* h) of = grib_file_open(filename, "w", &err); if (!of || !of->handle) { - grib_context_log(act->context, GRIB_LOG_ERROR, "unable to open file %s\n", filename); + grib_context_log(act->context, GRIB_LOG_ERROR, "Unable to open file '%s' for %s", + filename, (a->append ? "appending":"writing")); return GRIB_IO_PROBLEM; } if (h->gts_header) { if (fwrite(h->gts_header, 1, h->gts_header_len, of->handle) != h->gts_header_len) { grib_context_log(act->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR), - "Error writing GTS header to %s", filename); + "Error writing GTS header to '%s'", filename); return GRIB_IO_PROBLEM; } } if (fwrite(buffer, 1, size, of->handle) != size) { grib_context_log(act->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR), - "Error writing to %s", filename); + "Error writing to '%s'", filename); return GRIB_IO_PROBLEM; } @@ -186,7 +184,7 @@ static int execute(grib_action* act, grib_handle* h) grib_file_close(filename, 0, &err); if (err != GRIB_SUCCESS) { - grib_context_log(act->context, GRIB_LOG_ERROR, "unable to write message\n"); + grib_context_log(act->context, GRIB_LOG_ERROR, "Unable to write message"); return err; } diff --git a/src/action_class_set_iarray.cc b/src/deprecated/action_class_set_iarray.cc similarity index 100% rename from src/action_class_set_iarray.cc rename to src/deprecated/action_class_set_iarray.cc diff --git a/src/deprecated/action_class_trigger.cc b/src/deprecated/action_class_trigger.cc new file mode 100644 index 000000000..82e4e9e43 --- /dev/null +++ b/src/deprecated/action_class_trigger.cc @@ -0,0 +1,167 @@ +/* + * (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. + */ + +/*************************************************************************** + * Jean Baptiste Filippi - 01.11.2005 * + ***************************************************************************/ + +#include "grib_api_internal.h" +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = action + SUPER = action_class_section + IMPLEMENTS = create_accessor + IMPLEMENTS = dump + IMPLEMENTS = destroy + IMPLEMENTS = reparse + MEMBERS = grib_arguments* trigger_on + MEMBERS = grib_action *block + END_CLASS_DEF + + */ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "action.class" and rerun ./make_class.pl + +*/ + +static void init_class (grib_action_class*); +static void dump (grib_action* d, FILE*,int); +static void destroy (grib_context*,grib_action*); +static int create_accessor(grib_section*,grib_action*,grib_loader*); +static grib_action* reparse(grib_action* a,grib_accessor* acc,int *doit); + + +typedef struct grib_action_trigger { + grib_action act; + /* Members defined in section */ + /* Members defined in trigger */ + grib_arguments* trigger_on; + grib_action *block; +} grib_action_trigger; + +extern grib_action_class* grib_action_class_section; + +static grib_action_class _grib_action_class_trigger = { + &grib_action_class_section, /* super */ + "action_class_trigger", /* name */ + sizeof(grib_action_trigger), /* size */ + 0, /* inited */ + &init_class, /* init_class */ + 0, /* init */ + &destroy, /* destroy */ + + &dump, /* dump */ + 0, /* xref */ + + &create_accessor, /* create_accessor*/ + + 0, /* notify_change */ + &reparse, /* reparse */ + 0, /* execute */ +}; + +grib_action_class* grib_action_class_trigger = &_grib_action_class_trigger; + +static void init_class(grib_action_class* c) +{ + c->xref = (*(c->super))->xref; + c->notify_change = (*(c->super))->notify_change; + c->execute = (*(c->super))->execute; +} +/* END_CLASS_IMP */ + +grib_action* grib_action_create_trigger(grib_context* context, grib_arguments* args, grib_action* block) +{ + Assert(!"action_class_trigger::grib_action_create_trigger: 'trigger' statement is deprecated"); + return NULL; + +// char name[1024]; +// const size_t nameLen = sizeof(name); +// grib_action_trigger* a = 0; +// grib_action_class* c = grib_action_class_trigger; +// grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size); +// snprintf(name, nameLen, "_trigger%p", (void*)act); +// act->name = grib_context_strdup_persistent(context, name); +// act->op = grib_context_strdup_persistent(context, "section"); +// act->cclass = c; +// act->next = NULL; +// act->context = context; +// a = (grib_action_trigger*)act; +// a->trigger_on = args; +// a->block = block; +// return act; +} + +static void dump(grib_action* act, FILE* f, int lvl) +{ + Assert(!"action_class_trigger::dump: 'trigger' statement is deprecated"); + + // int i = 0; + // for (i = 0; i < lvl; i++) + // grib_context_print(act->context, f, " "); + // grib_context_print(act->context, f, "Trigger\n"); +} + +static int create_accessor(grib_section* p, grib_action* act, grib_loader* h) +{ + Assert(!"action_class_trigger::create_accessor: 'trigger' statement is deprecated"); + +// int ret = GRIB_SUCCESS; +// grib_action_trigger* a = (grib_action_trigger*)act; +// grib_action* next = NULL; +// grib_accessor* as = NULL; +// grib_section* gs = NULL; +// as = grib_accessor_factory(p, act, 0, NULL); +// if (!as) +// return GRIB_INTERNAL_ERROR; + +// gs = as->sub_section; +// gs->branch = 0; /* Force a reparse each time */ +// grib_push_accessor(as, p->block); +// grib_dependency_observe_arguments(as, a->trigger_on); +// next = a->block; +// while (next) { +// ret = grib_create_accessor(gs, next, h); +// if (ret != GRIB_SUCCESS) +// return ret; +// next = next->next; +// } + return GRIB_SUCCESS; +} + +static grib_action* reparse(grib_action* a, grib_accessor* acc, int* doit) +{ + grib_action_trigger* self = (grib_action_trigger*)a; + return self->block; +} + +static void destroy(grib_context* context, grib_action* act) +{ + Assert(!"action_class_trigger::destroy: 'trigger' statement is deprecated"); + +// grib_action_trigger* a = (grib_action_trigger*)act; +// grib_action* b = a->block; +// while (b) { +// grib_action* n = b->next; +// grib_action_delete(context, b); +// b = n; +// } +// grib_arguments_free(context, a->trigger_on); +// grib_context_free_persistent(context, act->name); +// grib_context_free_persistent(context, act->op); +} diff --git a/src/deprecated/action_class_while.cc b/src/deprecated/action_class_while.cc new file mode 100644 index 000000000..0b5c7ca4c --- /dev/null +++ b/src/deprecated/action_class_while.cc @@ -0,0 +1,176 @@ +/* + * (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 "grib_api_internal.h" +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = action + SUPER = action_class_section + IMPLEMENTS = create_accessor + IMPLEMENTS = dump + IMPLEMENTS = destroy + MEMBERS = grib_expression *expression + MEMBERS = grib_action *block_while + END_CLASS_DEF + + */ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "action.class" and rerun ./make_class.pl + +*/ + +static void init_class (grib_action_class*); +static void dump (grib_action* d, FILE*,int); +static void destroy (grib_context*,grib_action*); +static int create_accessor(grib_section*,grib_action*,grib_loader*); + + +typedef struct grib_action_while { + grib_action act; + /* Members defined in section */ + /* Members defined in while */ + grib_expression *expression; + grib_action *block_while; +} grib_action_while; + +extern grib_action_class* grib_action_class_section; + +static grib_action_class _grib_action_class_while = { + &grib_action_class_section, /* super */ + "action_class_while", /* name */ + sizeof(grib_action_while), /* size */ + 0, /* inited */ + &init_class, /* init_class */ + 0, /* init */ + &destroy, /* destroy */ + + &dump, /* dump */ + 0, /* xref */ + + &create_accessor, /* create_accessor*/ + + 0, /* notify_change */ + 0, /* reparse */ + 0, /* execute */ +}; + +grib_action_class* grib_action_class_while = &_grib_action_class_while; + +static void init_class(grib_action_class* c) +{ + c->xref = (*(c->super))->xref; + c->notify_change = (*(c->super))->notify_change; + c->reparse = (*(c->super))->reparse; + c->execute = (*(c->super))->execute; +} +/* END_CLASS_IMP */ + +static void dump(grib_action* act, FILE* f, int lvl) +{ + Assert(!"action_class_while::dump: 'while' statement is deprecated"); + +// grib_action_while* a = (grib_action_while*)act; +// int i = 0; +// for (i = 0; i < lvl; i++) +// grib_context_print(act->context, f, " "); +// grib_context_print(act->context, f, "Loop %s\n", act->name); +// grib_dump_action_branch(f, a->block_while, lvl + 1); +} + +static int create_accessor(grib_section* p, grib_action* act, grib_loader* h) +{ + Assert(!"action_class_while::create_accessor: 'while' statement is deprecated"); + +// grib_action_while* a = (grib_action_while*)act; +// grib_accessor* ga = NULL; +// grib_section* gs = NULL; +// grib_action* la = NULL; +// grib_action* next = NULL; +// int ret = 0; +// ga = grib_accessor_factory(p, act, 0, NULL); +// if (!ga) +// return GRIB_BUFFER_TOO_SMALL; +// gs = ga->sub_section; + +// grib_push_accessor(ga, p->block); +// la = a->block_while; + +// for (;;) { +// long val = 0; + +// if ((ret = grib_expression_evaluate_long(p->h, a->expression, &val)) != GRIB_SUCCESS) { +// grib_context_log(p->h->context, GRIB_LOG_DEBUG, " List %s creating %d values unable to evaluate long \n", act->name, val); +// return ret; +// } +// if (!val) +// break; + +// next = la; +// while (next) { +// ret = grib_create_accessor(gs, next, h); +// if (ret != GRIB_SUCCESS) +// return ret; +// next = next->next; +// } +// } + + return GRIB_SUCCESS; +} + +grib_action* grib_action_create_while(grib_context* context, grib_expression* expression, grib_action* block) +{ + Assert(!"action_class_while::grib_action_create_while: 'while' statement is deprecated"); + return NULL; + +// char name[80]; +// const size_t nameLen = sizeof(name); +// grib_action_while* a; +// grib_action_class* c = grib_action_class_while; +// grib_action* act = (grib_action*)grib_context_malloc_clear_persistent(context, c->size); +// act->cclass = c; +// act->context = context; +// a = (grib_action_while*)act; +// act->next = NULL; + +// snprintf(name, nameLen, "_while%p", (void*)a); +// act->name = grib_context_strdup_persistent(context, name); +// act->op = grib_context_strdup_persistent(context, "section"); +// a->expression = expression; + +// a->block_while = block; + +// grib_context_log(context, GRIB_LOG_DEBUG, " Action List %s is created \n", act->name); +// return act; +} + +static void destroy(grib_context* context, grib_action* act) +{ + Assert(!"action_class_while::destroy: 'while' statement is deprecated"); + + // grib_action_while* self = (grib_action_while*)act; + // grib_action* a = self->block_while; + + // while (a) { + // grib_action* na = a->next; + // grib_action_delete(context, a); + // a = na; + // } + // grib_context_free_persistent(context, act->name); + // grib_context_free_persistent(context, act->op); + // grib_expression_free(context, self->expression); +} diff --git a/src/grib_2order_packer_simple.cc b/src/deprecated/grib_2order_packer_simple.cc similarity index 100% rename from src/grib_2order_packer_simple.cc rename to src/deprecated/grib_2order_packer_simple.cc diff --git a/src/grib_accessor_class_assert.cc b/src/deprecated/grib_accessor_class_assert.cc similarity index 100% rename from src/grib_accessor_class_assert.cc rename to src/deprecated/grib_accessor_class_assert.cc diff --git a/src/grib_accessor_class_data_2order_packing.cc b/src/deprecated/grib_accessor_class_data_2order_packing.cc similarity index 100% rename from src/grib_accessor_class_data_2order_packing.cc rename to src/deprecated/grib_accessor_class_data_2order_packing.cc diff --git a/src/grib_accessor_class_data_apply_gdsnotpresent.cc b/src/deprecated/grib_accessor_class_data_apply_gdsnotpresent.cc similarity index 100% rename from src/grib_accessor_class_data_apply_gdsnotpresent.cc rename to src/deprecated/grib_accessor_class_data_apply_gdsnotpresent.cc diff --git a/src/grib_accessor_class_g1area.cc b/src/deprecated/grib_accessor_class_g1area.cc similarity index 100% rename from src/grib_accessor_class_g1area.cc rename to src/deprecated/grib_accessor_class_g1area.cc diff --git a/src/grib_accessor_class_int16.cc b/src/deprecated/grib_accessor_class_int16.cc similarity index 100% rename from src/grib_accessor_class_int16.cc rename to src/deprecated/grib_accessor_class_int16.cc diff --git a/src/grib_accessor_class_int16_little_endian.cc b/src/deprecated/grib_accessor_class_int16_little_endian.cc similarity index 100% rename from src/grib_accessor_class_int16_little_endian.cc rename to src/deprecated/grib_accessor_class_int16_little_endian.cc diff --git a/src/grib_accessor_class_int32.cc b/src/deprecated/grib_accessor_class_int32.cc similarity index 94% rename from src/grib_accessor_class_int32.cc rename to src/deprecated/grib_accessor_class_int32.cc index b1d9143d8..c040bb2d5 100644 --- a/src/grib_accessor_class_int32.cc +++ b/src/deprecated/grib_accessor_class_int32.cc @@ -18,6 +18,7 @@ SUPER = grib_accessor_class_gen IMPLEMENTS = unpack_long IMPLEMENTS = pack_long + IMPLEMENTS = get_native_type END_CLASS_DEF */ @@ -32,6 +33,7 @@ or edit "accessor.class" and rerun ./make_class.pl */ +static int get_native_type(grib_accessor*); static int pack_long(grib_accessor*, const long* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); @@ -59,7 +61,7 @@ static grib_accessor_class _grib_accessor_class_int32 = { 0, /* get number of values */ 0, /* get number of bytes */ 0, /* get offset to bytes */ - 0, /* get native type */ + &get_native_type, /* get native type */ 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ @@ -97,6 +99,11 @@ grib_accessor_class* grib_accessor_class_int32 = &_grib_accessor_class_int32; /* END_CLASS_IMP */ +static int get_native_type(grib_accessor* a) +{ + return GRIB_TYPE_LONG; +} + static int unpack_long(grib_accessor* a, long* val, size_t* len) { long value = 0; diff --git a/src/grib_accessor_class_int32_little_endian.cc b/src/deprecated/grib_accessor_class_int32_little_endian.cc similarity index 100% rename from src/grib_accessor_class_int32_little_endian.cc rename to src/deprecated/grib_accessor_class_int32_little_endian.cc diff --git a/src/grib_accessor_class_int64.cc b/src/deprecated/grib_accessor_class_int64.cc similarity index 100% rename from src/grib_accessor_class_int64.cc rename to src/deprecated/grib_accessor_class_int64.cc diff --git a/src/grib_accessor_class_int64_little_endian.cc b/src/deprecated/grib_accessor_class_int64_little_endian.cc similarity index 100% rename from src/grib_accessor_class_int64_little_endian.cc rename to src/deprecated/grib_accessor_class_int64_little_endian.cc diff --git a/src/grib_accessor_class_int8.cc b/src/deprecated/grib_accessor_class_int8.cc similarity index 100% rename from src/grib_accessor_class_int8.cc rename to src/deprecated/grib_accessor_class_int8.cc diff --git a/src/grib_accessor_class_laplacian.cc b/src/deprecated/grib_accessor_class_laplacian.cc similarity index 100% rename from src/grib_accessor_class_laplacian.cc rename to src/deprecated/grib_accessor_class_laplacian.cc diff --git a/src/grib_accessor_class_missing.cc b/src/deprecated/grib_accessor_class_missing.cc similarity index 100% rename from src/grib_accessor_class_missing.cc rename to src/deprecated/grib_accessor_class_missing.cc diff --git a/src/grib_accessor_class_times.cc b/src/deprecated/grib_accessor_class_times.cc similarity index 100% rename from src/grib_accessor_class_times.cc rename to src/deprecated/grib_accessor_class_times.cc diff --git a/src/grib_accessor_class_uint16_little_endian.cc b/src/deprecated/grib_accessor_class_uint16_little_endian.cc similarity index 100% rename from src/grib_accessor_class_uint16_little_endian.cc rename to src/deprecated/grib_accessor_class_uint16_little_endian.cc diff --git a/src/grib_nearest_class_sh.cc b/src/deprecated/grib_nearest_class_sh.cc similarity index 100% rename from src/grib_nearest_class_sh.cc rename to src/deprecated/grib_nearest_class_sh.cc diff --git a/src/eccodes.cc b/src/eccodes.cc index a7984b396..13b23ddc0 100644 --- a/src/eccodes.cc +++ b/src/eccodes.cc @@ -337,6 +337,10 @@ int codes_get_double(const grib_handle* h, const char* key, double* value) { return grib_get_double(h, key, value); } +int codes_get_float(const grib_handle* h, const char* key, float* value) +{ + return grib_get_float(h, key, value); +} int codes_get_double_element(const grib_handle* h, const char* key, int i, double* value) { @@ -443,6 +447,10 @@ void codes_dump_content(const grib_handle* h, FILE* out, const char* mode, unsig { grib_dump_content(h, out, mode, option_flags, arg); } +void codes_dump_action_tree(codes_context* c, FILE* f) +{ + grib_dump_action_tree(c, f); +} /* GTS, GRIBEX */ /******************************************************************************/ void codes_gts_header_off(grib_context* c) diff --git a/src/eccodes.h b/src/eccodes.h index f0e670775..d890438f2 100644 --- a/src/eccodes.h +++ b/src/eccodes.h @@ -18,12 +18,12 @@ #ifndef eccodes_H #define eccodes_H +#include "grib_api.h" + #ifdef __cplusplus extern "C" { #endif -#include "grib_api.h" - #define CODES_VERSION ECCODES_VERSION /* sections */ @@ -433,7 +433,7 @@ codes_handle* codes_handle_new_from_message(codes_context* c, const void* data, /** * Create a handle from a user message in memory. The message will not be freed at the end. * The message will be copied as soon as a modification is needed. - * This function works also with GRIB multi-field messages. + * This function also works with GRIB multi-field messages. * * @param c : the context from which the handle will be created (NULL for default context) * @param data : the actual message @@ -606,9 +606,9 @@ int codes_grib_get_data(const codes_handle* h, double* lats, double* lons, doubl * Get the next value from a geoiterator. * * @param i : the geoiterator - * @param lat : on output latitude in degree - * @param lon : on output longitude in degree - * @param value : on output value of the point + * @param lat : output latitude in degrees + * @param lon : output longitude in degrees + * @param value : output value of the point * @return positive value if successful, 0 if no more data are available */ int codes_grib_iterator_next(codes_iterator* i, double* lat, double* lon, double* value); @@ -617,9 +617,9 @@ int codes_grib_iterator_next(codes_iterator* i, double* lat, double* lon, double * Get the previous value from a geoiterator. * * @param i : the geoiterator - * @param lat : on output latitude in degree - * @param lon : on output longitude in degree - * @param value : on output value of the point* + * @param lat : output latitude in degrees + * @param lon : output longitude in degrees + * @param value : output value of the point* * @return positive value if successful, 0 if no more data are available */ int codes_grib_iterator_previous(codes_iterator* i, double* lat, double* lon, double* value); @@ -628,7 +628,7 @@ int codes_grib_iterator_previous(codes_iterator* i, double* lat, double* lon, do * Test procedure for values in a geoiterator. * * @param i : the geoiterator - * @return boolean, 1 if the iterator still nave next values, 0 otherwise + * @return boolean, 1 if the iterator still has next values, 0 otherwise */ int codes_grib_iterator_has_next(codes_iterator* i); @@ -685,7 +685,7 @@ int codes_grib_nearest_find(codes_nearest* nearest, const codes_handle* h, doubl /** * Frees a nearest object from memory * - * @param nearest : the nearest + * @param nearest : the nearest neighbour object * @return 0 if OK, integer value on error */ int codes_grib_nearest_delete(codes_nearest* nearest); @@ -775,6 +775,7 @@ int codes_get_long(const codes_handle* h, const char* key, long* value); * @return 0 if OK, integer value on error */ int codes_get_double(const codes_handle* h, const char* key, double* value); +int codes_get_float(const codes_handle* h, const char* key, float* value); /** * Get as double the i-th element of the "key" array @@ -1228,7 +1229,7 @@ void codes_grib_multi_support_on(codes_context* c); void codes_grib_multi_support_off(codes_context* c); /** - * Reset file handle in multiple GRIB field support mode + * Reset file handle in GRIB multi-field support mode * * @param c : the context to be modified * @param f : the file pointer @@ -1350,9 +1351,12 @@ int codes_set_values(codes_handle* h, codes_values* codes_values, size_t arg_cou codes_handle* codes_handle_new_from_partial_message_copy(codes_context* c, const void* data, size_t size); codes_handle* codes_handle_new_from_partial_message(codes_context* c, const void* data, size_t buflen); -/* Returns a bool i.e. 0 or 1. The error code is the final argument */ +/* Check whether the given key has the value 'missing'. + Returns a bool i.e. 0 or 1. The error code is an argument */ int codes_is_missing(const codes_handle* h, const char* key, int* err); -/* Returns a bool i.e. 0 or 1 */ + +/* Check whether the given key is defined (exists). + Returns a bool i.e. 0 or 1 */ int codes_is_defined(const codes_handle* h, const char* key); /* Returns 1 if the BUFR key is in the header and 0 if it is in the data section. @@ -1363,8 +1367,10 @@ int codes_bufr_key_is_header(const codes_handle* h, const char* key, int* err); The error code is the final argument */ int codes_bufr_key_is_coordinate(const codes_handle* h, const char* key, int* err); +/* Set the given key to have the value 'missing' */ int codes_set_missing(codes_handle* h, const char* key); -/* The truncation is the Gaussian number (or order) */ + +/* The truncation is the Gaussian number (also called order) */ int codes_get_gaussian_latitudes(long truncation, double* latitudes); int codes_julian_to_datetime(double jd, long* year, long* month, long* day, long* hour, long* minute, long* second); @@ -1385,7 +1391,6 @@ int codes_check_message_footer(const void* bytes, size_t length, ProductKind pro /* --------------------------------------- */ - #define CODES_UTIL_GRID_SPEC_REGULAR_LL GRIB_UTIL_GRID_SPEC_REGULAR_LL #define CODES_UTIL_GRID_SPEC_ROTATED_LL GRIB_UTIL_GRID_SPEC_ROTATED_LL #define CODES_UTIL_GRID_SPEC_REGULAR_GG GRIB_UTIL_GRID_SPEC_REGULAR_GG @@ -1398,6 +1403,7 @@ int codes_check_message_footer(const void* bytes, size_t length, ProductKind pro #define CODES_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA #define CODES_UTIL_GRID_SPEC_LAMBERT_CONFORMAL GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL #define CODES_UTIL_GRID_SPEC_UNSTRUCTURED GRIB_UTIL_GRID_SPEC_UNSTRUCTURED +#define CODES_UTIL_GRID_SPEC_HEALPIX GRIB_UTIL_GRID_SPEC_HEALPIX #define CODES_UTIL_PACKING_TYPE_SAME_AS_INPUT GRIB_UTIL_PACKING_TYPE_SAME_AS_INPUT #define CODES_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX GRIB_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX @@ -1417,7 +1423,6 @@ int codes_check_message_footer(const void* bytes, size_t length, ProductKind pro #define CODES_UTIL_ACCURACY_SAME_DECIMAL_SCALE_FACTOR_AS_INPUT GRIB_UTIL_ACCURACY_SAME_DECIMAL_SCALE_FACTOR_AS_INPUT #define CODES_UTIL_ACCURACY_USE_PROVIDED_DECIMAL_SCALE_FACTOR GRIB_UTIL_ACCURACY_USE_PROVIDED_DECIMAL_SCALE_FACTOR - codes_handle* codes_grib_util_set_spec(codes_handle* h, const codes_util_grid_spec* grid_spec, const codes_util_packing_spec* packing_spec, /* NULL for defaults (same as input) */ @@ -1460,140 +1465,164 @@ Error codes returned by the eccodes functions. */ /*! @{*/ /** No error */ -#define CODES_SUCCESS GRIB_SUCCESS +#define CODES_SUCCESS GRIB_SUCCESS /** End of resource reached */ -#define CODES_END_OF_FILE GRIB_END_OF_FILE +#define CODES_END_OF_FILE GRIB_END_OF_FILE /** Internal error */ -#define CODES_INTERNAL_ERROR GRIB_INTERNAL_ERROR +#define CODES_INTERNAL_ERROR GRIB_INTERNAL_ERROR /** Passed buffer is too small */ -#define CODES_BUFFER_TOO_SMALL GRIB_BUFFER_TOO_SMALL +#define CODES_BUFFER_TOO_SMALL GRIB_BUFFER_TOO_SMALL /** Function not yet implemented */ -#define CODES_NOT_IMPLEMENTED GRIB_NOT_IMPLEMENTED +#define CODES_NOT_IMPLEMENTED GRIB_NOT_IMPLEMENTED /** Missing 7777 at end of message */ -#define CODES_7777_NOT_FOUND GRIB_7777_NOT_FOUND +#define CODES_7777_NOT_FOUND GRIB_7777_NOT_FOUND /** Passed array is too small */ -#define CODES_ARRAY_TOO_SMALL GRIB_ARRAY_TOO_SMALL +#define CODES_ARRAY_TOO_SMALL GRIB_ARRAY_TOO_SMALL /** File not found */ -#define CODES_FILE_NOT_FOUND GRIB_FILE_NOT_FOUND +#define CODES_FILE_NOT_FOUND GRIB_FILE_NOT_FOUND /** Code not found in code table */ -#define CODES_CODE_NOT_FOUND_IN_TABLE GRIB_CODE_NOT_FOUND_IN_TABLE +#define CODES_CODE_NOT_FOUND_IN_TABLE GRIB_CODE_NOT_FOUND_IN_TABLE /** Array size mismatch */ -#define CODES_WRONG_ARRAY_SIZE GRIB_WRONG_ARRAY_SIZE +#define CODES_WRONG_ARRAY_SIZE GRIB_WRONG_ARRAY_SIZE /** Key/value not found */ -#define CODES_NOT_FOUND GRIB_NOT_FOUND +#define CODES_NOT_FOUND GRIB_NOT_FOUND /** Input output problem */ -#define CODES_IO_PROBLEM GRIB_IO_PROBLEM +#define CODES_IO_PROBLEM GRIB_IO_PROBLEM /** Message invalid */ -#define CODES_INVALID_MESSAGE GRIB_INVALID_MESSAGE +#define CODES_INVALID_MESSAGE GRIB_INVALID_MESSAGE /** Decoding invalid */ -#define CODES_DECODING_ERROR GRIB_DECODING_ERROR +#define CODES_DECODING_ERROR GRIB_DECODING_ERROR /** Encoding invalid */ -#define CODES_ENCODING_ERROR GRIB_ENCODING_ERROR +#define CODES_ENCODING_ERROR GRIB_ENCODING_ERROR /** Code cannot unpack because of string too small */ -#define CODES_NO_MORE_IN_SET GRIB_NO_MORE_IN_SET +#define CODES_NO_MORE_IN_SET GRIB_NO_MORE_IN_SET /** Problem with calculation of geographic attributes */ -#define CODES_GEOCALCULUS_PROBLEM GRIB_GEOCALCULUS_PROBLEM +#define CODES_GEOCALCULUS_PROBLEM GRIB_GEOCALCULUS_PROBLEM /** Memory allocation error */ -#define CODES_OUT_OF_MEMORY GRIB_OUT_OF_MEMORY +#define CODES_OUT_OF_MEMORY GRIB_OUT_OF_MEMORY /** Value is read only */ -#define CODES_READ_ONLY GRIB_READ_ONLY +#define CODES_READ_ONLY GRIB_READ_ONLY /** Invalid argument */ -#define CODES_INVALID_ARGUMENT GRIB_INVALID_ARGUMENT +#define CODES_INVALID_ARGUMENT GRIB_INVALID_ARGUMENT /** Null handle */ -#define CODES_NULL_HANDLE GRIB_NULL_HANDLE +#define CODES_NULL_HANDLE GRIB_NULL_HANDLE /** Invalid section number */ -#define CODES_INVALID_SECTION_NUMBER GRIB_INVALID_SECTION_NUMBER +#define CODES_INVALID_SECTION_NUMBER GRIB_INVALID_SECTION_NUMBER /** Value cannot be missing */ -#define CODES_VALUE_CANNOT_BE_MISSING GRIB_VALUE_CANNOT_BE_MISSING +#define CODES_VALUE_CANNOT_BE_MISSING GRIB_VALUE_CANNOT_BE_MISSING /** Wrong message length */ -#define CODES_WRONG_LENGTH GRIB_WRONG_LENGTH +#define CODES_WRONG_LENGTH GRIB_WRONG_LENGTH /** Invalid key type */ -#define CODES_INVALID_TYPE GRIB_INVALID_TYPE +#define CODES_INVALID_TYPE GRIB_INVALID_TYPE /** Unable to set step */ -#define CODES_WRONG_STEP GRIB_WRONG_STEP +#define CODES_WRONG_STEP GRIB_WRONG_STEP /** Wrong units for step (step must be integer) */ -#define CODES_WRONG_STEP_UNIT GRIB_WRONG_STEP_UNIT +#define CODES_WRONG_STEP_UNIT GRIB_WRONG_STEP_UNIT /** Invalid file id */ -#define CODES_INVALID_FILE GRIB_INVALID_FILE +#define CODES_INVALID_FILE GRIB_INVALID_FILE /** Invalid grib id */ -#define CODES_INVALID_GRIB GRIB_INVALID_GRIB +#define CODES_INVALID_GRIB GRIB_INVALID_GRIB /** Invalid index id */ -#define CODES_INVALID_INDEX GRIB_INVALID_INDEX +#define CODES_INVALID_INDEX GRIB_INVALID_INDEX /** Invalid iterator id */ -#define CODES_INVALID_ITERATOR GRIB_INVALID_ITERATOR +#define CODES_INVALID_ITERATOR GRIB_INVALID_ITERATOR /** Invalid keys iterator id */ -#define CODES_INVALID_KEYS_ITERATOR GRIB_INVALID_KEYS_ITERATOR +#define CODES_INVALID_KEYS_ITERATOR GRIB_INVALID_KEYS_ITERATOR /** Invalid nearest id */ -#define CODES_INVALID_NEAREST GRIB_INVALID_NEAREST +#define CODES_INVALID_NEAREST GRIB_INVALID_NEAREST /** Invalid order by */ -#define CODES_INVALID_ORDERBY GRIB_INVALID_ORDERBY +#define CODES_INVALID_ORDERBY GRIB_INVALID_ORDERBY /** Missing a key from the fieldset */ -#define CODES_MISSING_KEY GRIB_MISSING_KEY +#define CODES_MISSING_KEY GRIB_MISSING_KEY /** The point is out of the grid area */ -#define CODES_OUT_OF_AREA GRIB_OUT_OF_AREA +#define CODES_OUT_OF_AREA GRIB_OUT_OF_AREA /** Concept no match */ -#define CODES_CONCEPT_NO_MATCH GRIB_CONCEPT_NO_MATCH +#define CODES_CONCEPT_NO_MATCH GRIB_CONCEPT_NO_MATCH /** Hash array no match */ -#define CODES_HASH_ARRAY_NO_MATCH GRIB_HASH_ARRAY_NO_MATCH +#define CODES_HASH_ARRAY_NO_MATCH GRIB_HASH_ARRAY_NO_MATCH /** Definitions files not found */ -#define CODES_NO_DEFINITIONS GRIB_NO_DEFINITIONS +#define CODES_NO_DEFINITIONS GRIB_NO_DEFINITIONS /** Wrong type while packing */ -#define CODES_WRONG_TYPE GRIB_WRONG_TYPE +#define CODES_WRONG_TYPE GRIB_WRONG_TYPE /** End of resource */ -#define CODES_END GRIB_END +#define CODES_END GRIB_END /** Unable to code a field without values */ -#define CODES_NO_VALUES GRIB_NO_VALUES +#define CODES_NO_VALUES GRIB_NO_VALUES /** Grid description is wrong or inconsistent */ -#define CODES_WRONG_GRID GRIB_WRONG_GRID +#define CODES_WRONG_GRID GRIB_WRONG_GRID /** End of index reached */ -#define CODES_END_OF_INDEX GRIB_END_OF_INDEX +#define CODES_END_OF_INDEX GRIB_END_OF_INDEX /** Null index */ -#define CODES_NULL_INDEX GRIB_NULL_INDEX +#define CODES_NULL_INDEX GRIB_NULL_INDEX /** End of resource reached when reading message */ -#define CODES_PREMATURE_END_OF_FILE GRIB_PREMATURE_END_OF_FILE +#define CODES_PREMATURE_END_OF_FILE GRIB_PREMATURE_END_OF_FILE /** An internal array is too small */ -#define CODES_INTERNAL_ARRAY_TOO_SMALL GRIB_INTERNAL_ARRAY_TOO_SMALL +#define CODES_INTERNAL_ARRAY_TOO_SMALL GRIB_INTERNAL_ARRAY_TOO_SMALL /** Message is too large for the current architecture */ -#define CODES_MESSAGE_TOO_LARGE GRIB_MESSAGE_TOO_LARGE +#define CODES_MESSAGE_TOO_LARGE GRIB_MESSAGE_TOO_LARGE /** Constant field */ -#define CODES_CONSTANT_FIELD GRIB_CONSTANT_FIELD +#define CODES_CONSTANT_FIELD GRIB_CONSTANT_FIELD /** Switch unable to find a matching case */ -#define CODES_SWITCH_NO_MATCH GRIB_SWITCH_NO_MATCH +#define CODES_SWITCH_NO_MATCH GRIB_SWITCH_NO_MATCH /** Underflow */ -#define CODES_UNDERFLOW GRIB_UNDERFLOW +#define CODES_UNDERFLOW GRIB_UNDERFLOW /** Message malformed */ -#define CODES_MESSAGE_MALFORMED GRIB_MESSAGE_MALFORMED +#define CODES_MESSAGE_MALFORMED GRIB_MESSAGE_MALFORMED /** Index is corrupted */ -#define CODES_CORRUPTED_INDEX GRIB_CORRUPTED_INDEX +#define CODES_CORRUPTED_INDEX GRIB_CORRUPTED_INDEX /** Invalid number of bits per value */ -#define CODES_INVALID_BPV GRIB_INVALID_BPV +#define CODES_INVALID_BPV GRIB_INVALID_BPV /** Edition of two messages is different */ -#define CODES_DIFFERENT_EDITION GRIB_DIFFERENT_EDITION +#define CODES_DIFFERENT_EDITION GRIB_DIFFERENT_EDITION /** Value is different */ -#define CODES_VALUE_DIFFERENT GRIB_VALUE_DIFFERENT +#define CODES_VALUE_DIFFERENT GRIB_VALUE_DIFFERENT /** Invalid key value */ -#define CODES_INVALID_KEY_VALUE GRIB_INVALID_KEY_VALUE +#define CODES_INVALID_KEY_VALUE GRIB_INVALID_KEY_VALUE /** String is smaller than requested */ -#define CODES_STRING_TOO_SMALL GRIB_STRING_TOO_SMALL +#define CODES_STRING_TOO_SMALL GRIB_STRING_TOO_SMALL /** Wrong type conversion */ -#define CODES_WRONG_CONVERSION GRIB_WRONG_CONVERSION +#define CODES_WRONG_CONVERSION GRIB_WRONG_CONVERSION /** Missing BUFR table entry for descriptor */ -#define CODES_MISSING_BUFR_ENTRY GRIB_MISSING_BUFR_ENTRY +#define CODES_MISSING_BUFR_ENTRY GRIB_MISSING_BUFR_ENTRY /** Null pointer */ -#define CODES_NULL_POINTER GRIB_NULL_POINTER +#define CODES_NULL_POINTER GRIB_NULL_POINTER /** Attribute is already present, cannot add */ -#define CODES_ATTRIBUTE_CLASH GRIB_ATTRIBUTE_CLASH +#define CODES_ATTRIBUTE_CLASH GRIB_ATTRIBUTE_CLASH /** Too many attributes. Increase MAX_ACCESSOR_ATTRIBUTES */ -#define CODES_TOO_MANY_ATTRIBUTES GRIB_TOO_MANY_ATTRIBUTES +#define CODES_TOO_MANY_ATTRIBUTES GRIB_TOO_MANY_ATTRIBUTES /** Attribute not found. */ -#define CODES_ATTRIBUTE_NOT_FOUND GRIB_ATTRIBUTE_NOT_FOUND +#define CODES_ATTRIBUTE_NOT_FOUND GRIB_ATTRIBUTE_NOT_FOUND /** Edition not supported. */ -#define CODES_UNSUPPORTED_EDITION GRIB_UNSUPPORTED_EDITION +#define CODES_UNSUPPORTED_EDITION GRIB_UNSUPPORTED_EDITION /** Value out of coding range */ -#define CODES_OUT_OF_RANGE GRIB_OUT_OF_RANGE +#define CODES_OUT_OF_RANGE GRIB_OUT_OF_RANGE /** Size of bitmap is incorrect */ -#define CODES_WRONG_BITMAP_SIZE GRIB_WRONG_BITMAP_SIZE +#define CODES_WRONG_BITMAP_SIZE GRIB_WRONG_BITMAP_SIZE /** Functionality not enabled */ -#define CODES_FUNCTIONALITY_NOT_ENABLED GRIB_FUNCTIONALITY_NOT_ENABLED +#define CODES_FUNCTIONALITY_NOT_ENABLED GRIB_FUNCTIONALITY_NOT_ENABLED +/** Value mismatch */ +#define CODES_VALUE_MISMATCH GRIB_VALUE_MISMATCH +/** Double values are different */ +#define CODES_DOUBLE_VALUE_MISMATCH GRIB_DOUBLE_VALUE_MISMATCH +/** Long values are different */ +#define CODES_LONG_VALUE_MISMATCH GRIB_LONG_VALUE_MISMATCH +/** Byte values are different */ +#define CODES_BYTE_VALUE_MISMATCH GRIB_BYTE_VALUE_MISMATCH +/** String values are different */ +#define CODES_STRING_VALUE_MISMATCH GRIB_STRING_VALUE_MISMATCH +/** Offset mismatch */ +#define CODES_OFFSET_MISMATCH GRIB_OFFSET_MISMATCH +/** Count mismatch */ +#define CODES_COUNT_MISMATCH GRIB_COUNT_MISMATCH +/** Name mismatch */ +#define CODES_NAME_MISMATCH GRIB_NAME_MISMATCH +/** Type mismatch */ +#define CODES_TYPE_MISMATCH GRIB_TYPE_MISMATCH +/** Type and value mismatch */ +#define CODES_TYPE_AND_VALUE_MISMATCH GRIB_TYPE_AND_VALUE_MISMATCH +/** Unable to compare accessors */ +#define CODES_UNABLE_TO_COMPARE_ACCESSORS GRIB_UNABLE_TO_COMPARE_ACCESSORS +/** Assertion failure */ +#define CODES_ASSERTION_FAILURE GRIB_ASSERTION_FAILURE /*! @}*/ #endif diff --git a/src/eccodes_prototypes.h b/src/eccodes_prototypes.h index 76960b58e..278fdcf7e 100644 --- a/src/eccodes_prototypes.h +++ b/src/eccodes_prototypes.h @@ -5,7 +5,6 @@ #endif /* action.cc */ -void grib_dump(grib_action* a, FILE* f, int l); void grib_xref(grib_action* a, FILE* f, const char* path); void grib_action_delete(grib_context* context, grib_action* a); int grib_create_accessor(grib_section* p, grib_action* a, grib_loader* h); @@ -84,9 +83,6 @@ grib_action* grib_action_create_set(grib_context* context, const char* name, gri /* action_class_set_darray.cc*/ grib_action* grib_action_create_set_darray(grib_context* context, const char* name, grib_darray* darray); -/* action_class_set_iarray.cc*/ -grib_action* grib_action_create_set_iarray(grib_context* context, const char* name, grib_iarray* iarray); - /* action_class_set_sarray.cc*/ grib_action* grib_action_create_set_sarray(grib_context* context, const char* name, grib_sarray* sarray); @@ -177,31 +173,24 @@ void grib_concept_condition_delete(grib_context* c, grib_concept_condition* v); /* grib_hash_array.cc*/ grib_hash_array_value* grib_integer_hash_array_value_new(grib_context* c, const char* name, grib_iarray* array); -grib_hash_array_value* grib_double_hash_array_value_new(grib_context* c, const char* name, grib_darray* array); void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v); /* grib_bufr_descriptor.cc*/ bufr_descriptor* grib_bufr_descriptor_new(grib_accessor* tables_accessor, int code, int silent, int* err); bufr_descriptor* grib_bufr_descriptor_clone(bufr_descriptor* d); int grib_bufr_descriptor_set_code(grib_accessor* tables_accessor, int code, bufr_descriptor* v); -void grib_bufr_descriptor_set_reference(bufr_descriptor* v, long reference); -void grib_bufr_descriptor_set_width(bufr_descriptor* v, long width); void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale); int grib_bufr_descriptor_can_be_missing(bufr_descriptor* v); void grib_bufr_descriptor_delete(bufr_descriptor* v); /* grib_bufr_descriptors_array.cc*/ bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t size, size_t incsize); -bufr_descriptor* grib_bufr_descriptors_array_pop(bufr_descriptors_array* a); bufr_descriptor* grib_bufr_descriptors_array_pop_front(bufr_descriptors_array* a); bufr_descriptors_array* grib_bufr_descriptors_array_push(bufr_descriptors_array* v, bufr_descriptor* val); bufr_descriptors_array* grib_bufr_descriptors_array_append(bufr_descriptors_array* v, bufr_descriptors_array* ar); -bufr_descriptors_array* grib_bufr_descriptors_array_push_front(bufr_descriptors_array* v, bufr_descriptor* val); bufr_descriptor* grib_bufr_descriptors_array_get(bufr_descriptors_array* a, size_t i); -void grib_bufr_descriptors_array_set(bufr_descriptors_array* a, size_t i, bufr_descriptor* v); void grib_bufr_descriptors_array_delete(bufr_descriptors_array* v); void grib_bufr_descriptors_array_delete_array(bufr_descriptors_array* v); -bufr_descriptor** grib_bufr_descriptors_array_get_array(bufr_descriptors_array* v); size_t grib_bufr_descriptors_array_used_size(bufr_descriptors_array* v); /* grib_darray.cc*/ @@ -209,7 +198,6 @@ void grib_darray_print(const char* title, const grib_darray* darray); grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize); grib_darray* grib_darray_push(grib_context* c, grib_darray* v, double val); void grib_darray_delete(grib_context* c, grib_darray* v); -double* grib_darray_get_array(grib_context* c, grib_darray* v); int grib_darray_is_constant(grib_darray* v, double epsilon); size_t grib_darray_used_size(grib_darray* v); @@ -226,9 +214,7 @@ size_t grib_sarray_used_size(grib_sarray* v); grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize); grib_oarray* grib_oarray_push(grib_context* c, grib_oarray* v, void* val); void grib_oarray_delete(grib_context* c, grib_oarray* v); -void** grib_oarray_get_array(grib_context* c, grib_oarray* v); void* grib_oarray_get(grib_oarray* v, int i); -size_t grib_oarray_used_size(grib_oarray* v); /* grib_iarray.cc*/ void grib_iarray_print(const char* title, const grib_iarray* iarray); @@ -236,8 +222,6 @@ grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize); long grib_iarray_pop(grib_iarray* a); long grib_iarray_pop_front(grib_iarray* a); grib_iarray* grib_iarray_push(grib_iarray* v, long val); -grib_iarray* grib_iarray_push_front(grib_iarray* v, long val); -grib_iarray* grib_iarray_push_array(grib_iarray* v, long* val, size_t size); void grib_iarray_delete(grib_iarray* v); void grib_iarray_delete_array(grib_iarray* v); long* grib_iarray_get_array(grib_iarray* v); @@ -249,7 +233,6 @@ grib_vdarray* grib_vdarray_new(grib_context* c, size_t size, size_t incsize); grib_vdarray* grib_vdarray_push(grib_context* c, grib_vdarray* v, grib_darray* val); void grib_vdarray_delete(grib_context* c, grib_vdarray* v); void grib_vdarray_delete_content(grib_context* c, grib_vdarray* v); -grib_darray** grib_vdarray_get_array(grib_context* c, grib_vdarray* v); size_t grib_vdarray_used_size(grib_vdarray* v); /* grib_vsarray.cc*/ @@ -258,7 +241,6 @@ grib_vsarray* grib_vsarray_new(grib_context* c, size_t size, size_t incsize); grib_vsarray* grib_vsarray_push(grib_context* c, grib_vsarray* v, grib_sarray* val); void grib_vsarray_delete(grib_context* c, grib_vsarray* v); void grib_vsarray_delete_content(grib_context* c, grib_vsarray* v); -grib_sarray** grib_vsarray_get_array(grib_context* c, grib_vsarray* v); size_t grib_vsarray_used_size(grib_vsarray* v); /* grib_viarray.cc*/ @@ -268,10 +250,6 @@ grib_viarray* grib_viarray_push(grib_context* c, grib_viarray* v, grib_iarray* v void grib_viarray_delete(grib_context* c, grib_viarray* v); void grib_viarray_delete_content(grib_context* c, grib_viarray* v); -/* grib_accessor_class_array.cc*/ - -/* grib_accessor_class_assert.cc*/ - /* grib_accessor_class_ascii.cc*/ /* grib_accessor_class_bit.cc*/ @@ -379,8 +357,6 @@ void grib_codetable_delete(grib_context* c); /* grib_accessor_class_evaluate.cc*/ -/* grib_accessor_class_g1area.cc*/ - /* grib_accessor_class_g1date.cc*/ /* grib_accessor_class_g1monthlydate.cc*/ @@ -432,24 +408,8 @@ int grib_g1_step_get_steps(grib_accessor* a, long* start, long* theEnd); /* grib_accessor_class_ifs_param.cc*/ -/* grib_accessor_class_int16.cc*/ - -/* grib_accessor_class_int16_little_endian.cc*/ - -/* grib_accessor_class_int32.cc*/ - -/* grib_accessor_class_int32_little_endian.cc*/ - -/* grib_accessor_class_int64.cc*/ - -/* grib_accessor_class_int64_little_endian.cc*/ - -/* grib_accessor_class_int8.cc*/ - /* grib_accessor_class_uint16.cc*/ -/* grib_accessor_class_uint16_little_endian.cc*/ - /* grib_accessor_class_uint32.cc*/ /* grib_accessor_class_uint32_little_endian.cc*/ @@ -472,8 +432,6 @@ int grib_g1_step_get_steps(grib_accessor* a, long* start, long* theEnd); /* grib_accessor_class_longitudes.cc*/ -/* grib_accessor_class_missing.cc*/ - /* grib_accessor_class_octahedral_gaussian.cc*/ /* grib_accessor_class_offset_file.cc*/ @@ -484,8 +442,6 @@ int grib_g1_step_get_steps(grib_accessor* a, long* start, long* theEnd); /* grib_accessor_class_from_scale_factor_scaled_value.cc*/ -/* grib_accessor_class_times.cc*/ - /* grib_accessor_class_g2bitmap_present.cc*/ /* grib_accessor_class_ibmfloat.cc*/ @@ -504,8 +460,6 @@ grib_nearest* grib_nearest_new(const grib_handle* h, int* error); /* grib_accessor_class_ksec1expver.cc*/ -/* grib_accessor_class_laplacian.cc*/ - /* grib_accessor_class_label.cc*/ /* grib_accessor_class_long.cc*/ @@ -589,10 +543,6 @@ int grib_get_g1_message_size(grib_handle* h, grib_accessor* tl, grib_accessor* s /* grib_accessor_class_data_dummy_field.cc*/ -/* grib_2order_packer_simple.cc*/ -void grib_free_second_order_groups(grib_context* c, second_order_packed* sp); -second_order_packed* grib_get_second_order_groups(grib_context* c, const unsigned long* vals, size_t len); - /* grib_accessor_class_variable.cc*/ void accessor_variable_set_type(grib_accessor* a, int type); @@ -606,8 +556,6 @@ void accessor_variable_set_type(grib_accessor* a, int type); /* grib_accessor_class_data_g2complex_packing.cc*/ -/* grib_accessor_class_data_2order_packing.cc*/ - /* grib_accessor_class_data_g1second_order_row_by_row_packing.cc*/ /* grib_accessor_class_data_g1second_order_constant_width_packing.cc*/ @@ -650,8 +598,6 @@ bufr_descriptors_array* grib_accessor_class_expanded_descriptors_get_expanded(gr /* grib_accessor_class_gds_not_present_bitmap.cc*/ -/* grib_accessor_class_data_apply_gdsnotpresent.cc*/ - /* grib_accessor_class_gds_is_present.cc*/ /* grib_accessor_class_select_step_template.cc*/ @@ -997,15 +943,11 @@ grib_handle* grib_fieldset_retrieve(grib_fieldset* set, int i, int* err); /* grib_filepool.cc*/ void grib_file_pool_clean(void); grib_file* grib_file_pool_get_files(void); -int grib_file_pool_read(grib_context* c, FILE* fh); -int grib_file_pool_write(FILE* fh); grib_file* grib_file_open(const char* filename, const char* mode, int* err); void grib_file_pool_delete_file(grib_file* file); void grib_file_close(const char* filename, int force, int* err); void grib_file_close_all(int* err); grib_file* grib_get_file(const char* filename, int* err); -grib_file* grib_find_file(short id); -grib_file* grib_file_new(grib_context* c, const char* name, int* err); void grib_file_delete(grib_file* file); /* grib_geography.cc*/ @@ -1014,7 +956,6 @@ int is_gaussian_global(double lat1, double lat2, double lon1, double lon2, long void rotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon); void unrotate(const double inlat, const double inlon, const double angleOfRot, const double southPoleLat, const double southPoleLon, double* outlat, double* outlon); double geographic_distance_spherical(double radius, double lon1, double lat1, double lon2, double lat2); -double geographic_distance_ellipsoid(double major, double minor, double lon1, double lat1, double lon2, double lat2); /* grib_handle.cc*/ grib_section* grib_section_create(grib_handle* h, grib_accessor* owner); @@ -1059,10 +1000,8 @@ int codes_check_message_footer(const void* bytes, size_t length, ProductKind pro int grib_get_message_size(const grib_handle* h, size_t* size); int grib_get_message(const grib_handle* h, const void** msg, size_t* size); int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size); -grib_handle* grib_handle_new(grib_context* c); grib_action* grib_action_from_filter(const char* filter); int grib_handle_apply_action(grib_handle* h, grib_action* a); -int grib_handle_prepare_action(grib_handle* h, grib_action* a); void grib_multi_support_reset_file(grib_context* c, FILE* f); void grib_multi_support_reset(grib_context* c); @@ -1166,7 +1105,6 @@ int grib_yyerror(const char* msg); void grib_parser_include(const char* included_fname); grib_concept_value* grib_parse_concept_file(grib_context* gc, const char* filename); grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char* filename); -grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename); grib_action* grib_parse_file(grib_context* gc, const char* filename); int grib_type_to_int(char id); @@ -1179,9 +1117,7 @@ grib_accessor* grib_find_accessor_fast(grib_handle* h, const char* name); /* grib_scaling.cc*/ double grib_power(long s, long n); -long grib_get_binary_scale_fact(double max, double min, long bpval, int* ret); -long grib_get_bits_per_value(double max, double min, long binary_scale_factor); -long grib_get_decimal_scale_fact(double max, double min, long bpval, long binary_scale); +long grib_get_binary_scale_fact(double max, double min, long bpval, int* error); /* grib_templates.cc*/ grib_handle* codes_external_template(grib_context* c, ProductKind product_kind, const char* name); @@ -1199,7 +1135,6 @@ void grib_dependency_observe_arguments(grib_accessor* observer, grib_arguments* /* grib_value.cc*/ int grib_set_expression(grib_handle* h, const char* name, grib_expression* e); -int grib_set_expression_internal(grib_handle* h, const char* name, grib_expression* e); int grib_set_long_internal(grib_handle* h, const char* name, long val); int grib_set_long(grib_handle* h, const char* name, long val); int grib_set_double_internal(grib_handle* h, const char* name, double val); @@ -1210,8 +1145,6 @@ int grib_set_string(grib_handle* h, const char* name, const char* val, size_t* l int grib_set_string_array(grib_handle* h, const char* name, const char** val, size_t length); int grib_set_bytes_internal(grib_handle* h, const char* name, const unsigned char* val, size_t* length); int grib_set_bytes(grib_handle* h, const char* name, const unsigned char* val, size_t* length); -int grib_clear(grib_handle* h, const char* name); -int grib_set_missing_internal(grib_handle* h, const char* name); int grib_set_missing(grib_handle* h, const char* name); int grib_is_missing_long(grib_accessor* a, long x); int grib_is_missing_double(grib_accessor* a, double x); @@ -1250,7 +1183,6 @@ int grib_get_string(const grib_handle* h, const char* name, char* val, size_t* l int grib_get_bytes_internal(const grib_handle* h, const char* name, unsigned char* val, size_t* length); int grib_get_bytes(const grib_handle* h, const char* name, unsigned char* val, size_t* length); int grib_get_native_type(const grib_handle* h, const char* name, int* type); -const char* grib_get_accessor_class_name(grib_handle* h, const char* name); int ecc__grib_get_double_array_internal(const grib_handle* h, grib_accessor* a, double* val, size_t buffer_len, size_t* decoded_length); int grib_get_double_array_internal(const grib_handle* h, const char* name, double* val, size_t* length); @@ -1263,7 +1195,6 @@ int grib_get_string_length(const grib_handle* h, const char* name, size_t* size) int ecc__grib_get_size(const grib_handle* h, grib_accessor* a, size_t* size); int grib_get_size(const grib_handle* h, const char* name, size_t* size); int grib_get_length(const grib_handle* h, const char* name, size_t* length); -int grib_get_count(grib_handle* h, const char* name, size_t* size); int grib_get_offset(const grib_handle* h, const char* key, size_t* val); int ecc__grib_get_string_array_internal(const grib_handle* h, grib_accessor* a, char** val, size_t buffer_len, size_t* decoded_length); int grib_get_string_array(const grib_handle* h, const char* name, char** val, size_t* length); @@ -1280,6 +1211,7 @@ void grib_print_values(const char* title, grib_values* values); int grib_values_check(grib_handle* h, grib_values* values, int count); int grib_key_equal(grib_handle* h1, grib_handle* h2, const char* key, int type, int* err); int codes_copy_key(grib_handle* h1, grib_handle* h2, const char* key, int type); +int codes_compare_key(grib_handle* h1, grib_handle* h2, const char* key, int compare_flags); /* grib_errors.cc*/ const char* grib_get_error_message(int code); @@ -1341,7 +1273,7 @@ int grib_nearest_get_radius(grib_handle* h, double* radiusInKm); void grib_binary_search(const double xx[], const size_t n, double x, size_t* ju, size_t* jl); int grib_nearest_find_multiple(const grib_handle* h, int is_lsm, const double* inlats, const double* inlons, long npoints, double* outlats, double* outlons, double* values, double* distances, int* indexes); int grib_nearest_find_generic(grib_nearest* nearest, grib_handle* h, double inlat, double inlon, unsigned long flags, - const char* values_keyname, const char* Ni_keyname, const char* Nj_keyname, + const char* values_keyname, double** out_lats, int* out_lats_count, double** out_lons, @@ -1350,7 +1282,7 @@ int grib_nearest_find_generic(grib_nearest* nearest, grib_handle* h, double inla double* outlats, double* outlons, double* values, double* distances, int* indexes, size_t* len); /* grib_nearest_class.cc*/ -grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args); +grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args, int* error); /* grib_nearest_class_gen.cc*/ @@ -1360,8 +1292,6 @@ grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args); /* grib_nearest_class_latlon_reduced.cc*/ -/* grib_nearest_class_sh.cc*/ - /* grib_nearest_class_lambert_conformal.cc*/ /* grib_nearest_class_polar_stereographic.cc*/ @@ -1382,7 +1312,7 @@ int grib_iterator_init(grib_iterator* i, grib_handle* h, grib_arguments* args); int grib_iterator_delete(grib_iterator* i); /* grib_iterator_class.cc*/ -grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* ret); +grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* error); /* grib_iterator_class_gaussian.cc*/ @@ -1435,7 +1365,6 @@ grib_handle* grib_util_sections_copy(grib_handle* hfrom, grib_handle* hto, int w grib_string_list* grib_util_get_param_id(const char* mars_param); grib_string_list* grib_util_get_mars_param(const char* param_id); grib_handle* grib_util_set_spec(grib_handle* h, const grib_util_grid_spec* spec, const grib_util_packing_spec* packing_spec, int flags, const double* data_values, size_t data_values_count, int* err); -grib_handle* grib_util_set_spec2(grib_handle* h, const grib_util_grid_spec2* spec, const grib_util_packing_spec* packing_spec, int flags, const double* data_values, size_t data_values_count, int* err); int parse_keyval_string(const char* grib_tool, char* arg, int values_required, int default_type, grib_values values[], int* count); int grib2_is_PDTN_EPS(long productDefinitionTemplateNumber); int grib2_is_PDTN_Chemical(long productDefinitionTemplateNumber); @@ -1465,7 +1394,7 @@ void string_rtrim(char* s); void string_lrtrim(char** x, int do_left, int do_right); const char* extract_filename(const char* filepath); char** string_split(char* inputString, const char* delimiter); -int string_to_long(const char* input, long* output); +int string_to_long(const char* input, long* output, int strict); int string_ends_with(const char* str1, const char* str2); int string_count_char(const char* str, char c); const char* codes_get_product_name(ProductKind product); diff --git a/src/extrules.am b/src/extrules.am index 210121b4e..9412ea9b9 100644 --- a/src/extrules.am +++ b/src/extrules.am @@ -8,8 +8,6 @@ grib_errors.cc : grib_errors.txt errors.pl cmp -s eccodes.h eccodes.h.new || (mv eccodes.h.new eccodes.h) cmp -s ../fortran/grib_api_constants.h grib_api_constants.h.new || (mv grib_api_constants.h.new ../fortran/grib_api_constants.h) cmp -s ../fortran/eccodes_constants.h eccodes_constants.h.new || (mv eccodes_constants.h.new ../fortran/eccodes_constants.h) - cmp -s ../python/grib_errors.h grib_errors.h.new || (mv grib_errors.h.new ../python/grib_errors.h) - cmp -s ../python/gribapi/errors.py errors.py.new || (mv errors.py.new ../python/gribapi/errors.py) proto:;-chmod +w eccodes_prototypes.h; mkptypes -A $(libeccodes_la_prototypes) $(libeccodes_extra_prototypes) > temp && mv temp eccodes_prototypes.h;rm -f temp diff --git a/src/grib_accessor.cc b/src/grib_accessor.cc index 673eb2dcd..58cf51c0e 100644 --- a/src/grib_accessor.cc +++ b/src/grib_accessor.cc @@ -686,16 +686,14 @@ int grib_compare_accessors(grib_accessor* a1, grib_accessor* a2, int compare_fla return ret; } -/* -int grib_accessor_clear_attributes(grib_accessor* a) -{ - int id; - for (id=0;idattributes[id]=NULL; - } - return 0; -} - */ +// int grib_accessor_clear_attributes(grib_accessor* a) +// { +// int id; +// for (id=0;idattributes[id]=NULL; +// } +// return 0; +// } int grib_accessor_add_attribute(grib_accessor* a, grib_accessor* attr, int nest_if_clash) { diff --git a/src/grib_accessor_class.cc b/src/grib_accessor_class.cc index 127f1ec7d..06da7e830 100644 --- a/src/grib_accessor_class.cc +++ b/src/grib_accessor_class.cc @@ -355,11 +355,10 @@ int grib_get_block_length(grib_section* s, size_t* l) *l = s->length; return GRIB_SUCCESS; -// TODO: Because grib_pack_long takes a SIGNED value, we may have problems +// TODO(masn): Because grib_pack_long takes a SIGNED value, we may have problems // if(s->aclength) { // size_t len = 1; // long plen = 0; - // int ret = grib_unpack_long(s->aclength, &plen, &len); // if(ret == GRIB_SUCCESS && plen != 0) // { @@ -367,7 +366,6 @@ int grib_get_block_length(grib_section* s, size_t* l) // return GRIB_SUCCESS; // } // } - // // empty block // if(s->block->first == NULL) { // *l = 0; @@ -380,7 +378,6 @@ int grib_get_block_length(grib_section* s, size_t* l) // if(s->aclength) { // size_t len = 1; // long plen = *l; - // int ret = grib_pack_long(s->aclength, &plen, &len); // if(ret != GRIB_SUCCESS) // ; diff --git a/src/grib_accessor_class.h b/src/grib_accessor_class.h index 6aca52e29..e27597551 100644 --- a/src/grib_accessor_class.h +++ b/src/grib_accessor_class.h @@ -1,9 +1,7 @@ /* This file is automatically generated by ./make_class.pl, do not edit */ extern grib_accessor_class* grib_accessor_class_abstract_long_vector; extern grib_accessor_class* grib_accessor_class_abstract_vector; -extern grib_accessor_class* grib_accessor_class_array; extern grib_accessor_class* grib_accessor_class_ascii; -extern grib_accessor_class* grib_accessor_class_assert; extern grib_accessor_class* grib_accessor_class_bit; extern grib_accessor_class* grib_accessor_class_bitmap; extern grib_accessor_class* grib_accessor_class_bits; @@ -34,11 +32,9 @@ extern grib_accessor_class* grib_accessor_class_constant; extern grib_accessor_class* grib_accessor_class_count_file; extern grib_accessor_class* grib_accessor_class_count_missing; extern grib_accessor_class* grib_accessor_class_count_total; -extern grib_accessor_class* grib_accessor_class_data_2order_packing; extern grib_accessor_class* grib_accessor_class_data_apply_bitmap; extern grib_accessor_class* grib_accessor_class_data_apply_boustrophedonic; extern grib_accessor_class* grib_accessor_class_data_apply_boustrophedonic_bitmap; -extern grib_accessor_class* grib_accessor_class_data_apply_gdsnotpresent; extern grib_accessor_class* grib_accessor_class_data_ccsds_packing; extern grib_accessor_class* grib_accessor_class_data_complex_packing; extern grib_accessor_class* grib_accessor_class_data_dummy_field; @@ -78,7 +74,6 @@ extern grib_accessor_class* grib_accessor_class_from_scale_factor_scaled_value; extern grib_accessor_class* grib_accessor_class_g1_half_byte_codeflag; extern grib_accessor_class* grib_accessor_class_g1_message_length; extern grib_accessor_class* grib_accessor_class_g1_section4_length; -extern grib_accessor_class* grib_accessor_class_g1area; extern grib_accessor_class* grib_accessor_class_g1bitmap; extern grib_accessor_class* grib_accessor_class_g1date; extern grib_accessor_class* grib_accessor_class_g1day_of_the_year_date; @@ -117,19 +112,11 @@ extern grib_accessor_class* grib_accessor_class_headers_only; extern grib_accessor_class* grib_accessor_class_ibmfloat; extern grib_accessor_class* grib_accessor_class_ieeefloat; extern grib_accessor_class* grib_accessor_class_ifs_param; -extern grib_accessor_class* grib_accessor_class_int16; -extern grib_accessor_class* grib_accessor_class_int16_little_endian; -extern grib_accessor_class* grib_accessor_class_int32; -extern grib_accessor_class* grib_accessor_class_int32_little_endian; -extern grib_accessor_class* grib_accessor_class_int64; -extern grib_accessor_class* grib_accessor_class_int64_little_endian; -extern grib_accessor_class* grib_accessor_class_int8; extern grib_accessor_class* grib_accessor_class_iterator; extern grib_accessor_class* grib_accessor_class_julian_date; extern grib_accessor_class* grib_accessor_class_julian_day; extern grib_accessor_class* grib_accessor_class_ksec1expver; extern grib_accessor_class* grib_accessor_class_label; -extern grib_accessor_class* grib_accessor_class_laplacian; extern grib_accessor_class* grib_accessor_class_latitudes; extern grib_accessor_class* grib_accessor_class_latlon_increment; extern grib_accessor_class* grib_accessor_class_latlonvalues; @@ -144,7 +131,6 @@ extern grib_accessor_class* grib_accessor_class_mars_step; extern grib_accessor_class* grib_accessor_class_md5; extern grib_accessor_class* grib_accessor_class_message; extern grib_accessor_class* grib_accessor_class_message_copy; -extern grib_accessor_class* grib_accessor_class_missing; extern grib_accessor_class* grib_accessor_class_nearest; extern grib_accessor_class* grib_accessor_class_non_alpha; extern grib_accessor_class* grib_accessor_class_number_of_coded_values; @@ -157,6 +143,7 @@ extern grib_accessor_class* grib_accessor_class_octet_number; extern grib_accessor_class* grib_accessor_class_offset_file; extern grib_accessor_class* grib_accessor_class_offset_values; extern grib_accessor_class* grib_accessor_class_pack_bufr_values; +extern grib_accessor_class* grib_accessor_class_packing_type; extern grib_accessor_class* grib_accessor_class_pad; extern grib_accessor_class* grib_accessor_class_padding; extern grib_accessor_class* grib_accessor_class_padto; @@ -193,7 +180,6 @@ extern grib_accessor_class* grib_accessor_class_step_in_units; extern grib_accessor_class* grib_accessor_class_sum; extern grib_accessor_class* grib_accessor_class_suppressed; extern grib_accessor_class* grib_accessor_class_time; -extern grib_accessor_class* grib_accessor_class_times; extern grib_accessor_class* grib_accessor_class_to_double; extern grib_accessor_class* grib_accessor_class_to_integer; extern grib_accessor_class* grib_accessor_class_to_string; @@ -201,7 +187,6 @@ extern grib_accessor_class* grib_accessor_class_transient; extern grib_accessor_class* grib_accessor_class_transient_darray; extern grib_accessor_class* grib_accessor_class_trim; extern grib_accessor_class* grib_accessor_class_uint16; -extern grib_accessor_class* grib_accessor_class_uint16_little_endian; extern grib_accessor_class* grib_accessor_class_uint32; extern grib_accessor_class* grib_accessor_class_uint32_little_endian; extern grib_accessor_class* grib_accessor_class_uint64; diff --git a/src/grib_accessor_class_array.cc b/src/grib_accessor_class_array.cc deleted file mode 100644 index a132c8218..000000000 --- a/src/grib_accessor_class_array.cc +++ /dev/null @@ -1,117 +0,0 @@ -/* - * (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. - */ - -/***************************************************************** - * Enrico Fucile - **************************************************************/ -#include "grib_api_internal.h" -/* - This is used by make_class.pl - - START_CLASS_DEF - CLASS = accessor - SUPER = grib_accessor_class_gen - IMPLEMENTS = init;dump - MEMBERS = grib_action* *builder - MEMBERS = grib_block_of_accessors *block; - END_CLASS_DEF - - */ - -/* START_CLASS_IMP */ - -/* - -Don't edit anything between START_CLASS_IMP and END_CLASS_IMP -Instead edit values between START_CLASS_DEF and END_CLASS_DEF -or edit "accessor.class" and rerun ./make_class.pl - -*/ - -static void dump(grib_accessor*, grib_dumper*); -static void init(grib_accessor*, const long, grib_arguments*); - -typedef struct grib_accessor_array -{ - grib_accessor att; - /* Members defined in gen */ - /* Members defined in array */ - grib_action* *builder; - grib_block_of_accessors *block; -} grib_accessor_array; - -extern grib_accessor_class* grib_accessor_class_gen; - -static grib_accessor_class _grib_accessor_class_array = { - &grib_accessor_class_gen, /* super */ - "array", /* name */ - sizeof(grib_accessor_array), /* size */ - 0, /* inited */ - 0, /* init_class */ - &init, /* init */ - 0, /* post_init */ - 0, /* destroy */ - &dump, /* dump */ - 0, /* next_offset */ - 0, /* get length of string */ - 0, /* get number of values */ - 0, /* get number of bytes */ - 0, /* get offset to bytes */ - 0, /* get native type */ - 0, /* get sub_section */ - 0, /* pack_missing */ - 0, /* is_missing */ - 0, /* pack_long */ - 0, /* unpack_long */ - 0, /* pack_double */ - 0, /* pack_float */ - 0, /* unpack_double */ - 0, /* unpack_float */ - 0, /* pack_string */ - 0, /* unpack_string */ - 0, /* pack_string_array */ - 0, /* unpack_string_array */ - 0, /* pack_bytes */ - 0, /* unpack_bytes */ - 0, /* pack_expression */ - 0, /* notify_change */ - 0, /* update_size */ - 0, /* preferred_size */ - 0, /* resize */ - 0, /* nearest_smaller_value */ - 0, /* next accessor */ - 0, /* compare vs. another accessor */ - 0, /* unpack only ith value (double) */ - 0, /* unpack only ith value (float) */ - 0, /* unpack a given set of elements (double) */ - 0, /* unpack a given set of elements (float) */ - 0, /* unpack a subarray */ - 0, /* clear */ - 0, /* clone accessor */ -}; - - -grib_accessor_class* grib_accessor_class_array = &_grib_accessor_class_array; - -/* END_CLASS_IMP */ - - -static void init(grib_accessor* a, const long len, grib_arguments* arg) -{ - grib_accessor_array* self = (grib_accessor_array*)a; - self->block = (grib_block_of_accessors*)grib_context_malloc_clear(a->context, sizeof(grib_block_of_accessors)); - a->length = 0; -} - -static void dump(grib_accessor* a, grib_dumper* dumper) -{ - grib_accessor_array* self = (grib_accessor_array*)a; - grib_dump_section(dumper, a, self->block); -} diff --git a/src/grib_accessor_class_ascii.cc b/src/grib_accessor_class_ascii.cc index e2901d2d7..035b2c9cc 100644 --- a/src/grib_accessor_class_ascii.cc +++ b/src/grib_accessor_class_ascii.cc @@ -185,13 +185,13 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) static int pack_long(grib_accessor* a, const long* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as long (It's a string)", a->name); return GRIB_NOT_IMPLEMENTED; } static int pack_double(grib_accessor* a, const double* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as double (It's a string)", a->name); return GRIB_NOT_IMPLEMENTED; } @@ -229,7 +229,8 @@ static int unpack_double(grib_accessor* a, double* v, size_t* len) size_t l = sizeof(val); char* last = NULL; - grib_unpack_string(a, val, &l); + int err = grib_unpack_string(a, val, &l); + if (err) return err; *v = strtod(val, &last); @@ -250,19 +251,8 @@ static int compare(grib_accessor* a, grib_accessor* b) char* bval = 0; int err = 0; - size_t alen = 0; - size_t blen = 0; - long count = 0; - - err = grib_value_count(a, &count); - if (err) - return err; - alen = count; - - err = grib_value_count(b, &count); - if (err) - return err; - blen = count; + size_t alen = a->length+1; + size_t blen = b->length+1; if (alen != blen) return GRIB_COUNT_MISMATCH; @@ -270,11 +260,13 @@ static int compare(grib_accessor* a, grib_accessor* b) aval = (char*)grib_context_malloc(a->context, alen * sizeof(char)); bval = (char*)grib_context_malloc(b->context, blen * sizeof(char)); - grib_unpack_string(a, aval, &alen); - grib_unpack_string(b, bval, &blen); + err = grib_unpack_string(a, aval, &alen); + if (err) return err; + err = grib_unpack_string(b, bval, &blen); + if (err) return err; retval = GRIB_SUCCESS; - if (strcmp(aval, bval)) + if (!STR_EQUAL(aval, bval)) retval = GRIB_STRING_VALUE_MISMATCH; grib_context_free(a->context, aval); diff --git a/src/grib_accessor_class_bit.cc b/src/grib_accessor_class_bit.cc index f48d8c3ad..17c1d3c8c 100644 --- a/src/grib_accessor_class_bit.cc +++ b/src/grib_accessor_class_bit.cc @@ -106,10 +106,10 @@ grib_accessor_class* grib_accessor_class_bit = &_grib_accessor_class_bit; static void init(grib_accessor* a, const long len, grib_arguments* arg) { - grib_accessor_bit* ac = (grib_accessor_bit*)a; + grib_accessor_bit* self = (grib_accessor_bit*)a; a->length = 0; - ac->owner = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 0); - ac->bit_index = grib_arguments_get_long(grib_handle_of_accessor(a), arg, 1); + self->owner = grib_arguments_get_name(grib_handle_of_accessor(a), arg, 0); + self->bit_index = grib_arguments_get_long(grib_handle_of_accessor(a), arg, 1); } static void dump(grib_accessor* a, grib_dumper* dumper) @@ -119,7 +119,7 @@ static void dump(grib_accessor* a, grib_dumper* dumper) static int unpack_long(grib_accessor* a, long* val, size_t* len) { - grib_accessor_bit* ac = (grib_accessor_bit*)a; + grib_accessor_bit* self = (grib_accessor_bit*)a; int ret = 0; long data = 0; @@ -130,12 +130,12 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) return GRIB_ARRAY_TOO_SMALL; } - if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), ac->owner, &data)) != GRIB_SUCCESS) { + if ((ret = grib_get_long_internal(grib_handle_of_accessor(a), self->owner, &data)) != GRIB_SUCCESS) { *len = 0; return ret; } - if (data & (1 << ac->bit_index)) + if (data & (1 << self->bit_index)) *val = 1; else *val = 0; @@ -146,7 +146,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) static int pack_long(grib_accessor* a, const long* val, size_t* len) { - grib_accessor_bit* ac = (grib_accessor_bit*)a; + grib_accessor_bit* self = (grib_accessor_bit*)a; grib_accessor* owner = NULL; unsigned char* mdata = 0; if (*len < 1) { @@ -155,10 +155,10 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) return GRIB_ARRAY_TOO_SMALL; } - owner = grib_find_accessor(grib_handle_of_accessor(a), ac->owner); + owner = grib_find_accessor(grib_handle_of_accessor(a), self->owner); if (!owner) { - grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit : Cannot get the owner %s for computing the bit value of %s ", ac->owner, a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "grib_accessor_bit : Cannot get the owner %s for computing the bit value of %s ", self->owner, a->name); *len = 0; return GRIB_NOT_FOUND; } @@ -169,9 +169,9 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) /* Note: In the definitions, flagbit numbers go from 7 to 0 (the bit_index), while WMO convention is from 1 to 8 */ if (a->context->debug) { /* Print bit positions from 1 (MSB) */ - fprintf(stderr, "ECCODES DEBUG Setting bit %d in %s to %d\n", 8 - ac->bit_index, owner->name, (*val > 0) ); + fprintf(stderr, "ECCODES DEBUG Setting bit %d in %s to %d\n", 8 - self->bit_index, owner->name, (*val > 0) ); } - grib_set_bit(mdata, 7 - ac->bit_index, *val > 0); + grib_set_bit(mdata, 7 - self->bit_index, *val > 0); *len = 1; return GRIB_SUCCESS; diff --git a/src/grib_accessor_class_bitmap.cc b/src/grib_accessor_class_bitmap.cc index e5a43668c..a25d79a49 100644 --- a/src/grib_accessor_class_bitmap.cc +++ b/src/grib_accessor_class_bitmap.cc @@ -213,7 +213,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) } template -int unpack(grib_accessor* a, T* val, size_t* len) +static int unpack(grib_accessor* a, T* val, size_t* len) { static_assert(std::is_floating_point::value, "Requires floating points numbers"); long pos = a->offset * 8; diff --git a/src/grib_accessor_class_bufr_data_array.cc b/src/grib_accessor_class_bufr_data_array.cc index 6433ffcaf..a48c81737 100644 --- a/src/grib_accessor_class_bufr_data_array.cc +++ b/src/grib_accessor_class_bufr_data_array.cc @@ -2491,7 +2491,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset groupNumber = 1; gaGroup = grib_accessor_factory(self->dataKeys, &creatorGroup, 0, NULL); - gaGroup->bufr_group_number = groupNumber; + //gaGroup->bufr_group_number = groupNumber; gaGroup->sub_section = grib_section_create(hand, gaGroup); section = gaGroup->sub_section; /*rootSection=section;*/ @@ -2557,7 +2557,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset gaGroup = grib_accessor_factory(groupSection, &creatorGroup, 0, NULL); gaGroup->sub_section = grib_section_create(hand, gaGroup); - gaGroup->bufr_group_number = groupNumber; + //gaGroup->bufr_group_number = groupNumber; //accessor_constant_set_type(gaGroup, GRIB_TYPE_LONG); //accessor_constant_set_dval(gaGroup, groupNumber); @@ -2602,7 +2602,7 @@ static int create_keys(const grib_accessor* a, long onlySubset, long startSubset } gaGroup = grib_accessor_factory(groupSection, &creatorGroup, 0, NULL); gaGroup->sub_section = grib_section_create(hand, gaGroup); - gaGroup->bufr_group_number = groupNumber; + // gaGroup->bufr_group_number = groupNumber; //accessor_constant_set_type(gaGroup, GRIB_TYPE_LONG); //accessor_constant_set_dval(gaGroup, groupNumber); grib_push_accessor(gaGroup, groupSection->block); diff --git a/src/grib_accessor_class_bufr_group.cc b/src/grib_accessor_class_bufr_group.cc index 3f7aa745c..9af0a5633 100644 --- a/src/grib_accessor_class_bufr_group.cc +++ b/src/grib_accessor_class_bufr_group.cc @@ -40,6 +40,7 @@ typedef struct grib_accessor_bufr_group /* Members defined in gen */ /* Members defined in variable */ double dval; + float fval; char* cval; char* cname; int type; diff --git a/src/grib_accessor_class_bufrdc_expanded_descriptors.cc b/src/grib_accessor_class_bufrdc_expanded_descriptors.cc index 496666651..8476f4708 100644 --- a/src/grib_accessor_class_bufrdc_expanded_descriptors.cc +++ b/src/grib_accessor_class_bufrdc_expanded_descriptors.cc @@ -142,15 +142,14 @@ static grib_accessor* get_accessor(grib_accessor* a) static int unpack_long(grib_accessor* a, long* val, size_t* len) { grib_accessor* descriptors = 0; - size_t rlen = 0, l; - long lenall = 0; - size_t i; - long* v = 0; + size_t rlen = 0, l; + long lenall = 0; + size_t i = 0; + long* v = 0; grib_context* c = a->context; descriptors = get_accessor(a); - if (!descriptors) - return GRIB_NOT_FOUND; + if (!descriptors) return GRIB_NOT_FOUND; grib_value_count(a, &lenall); v = (long*)grib_context_malloc_clear(c, sizeof(long) * lenall); @@ -170,30 +169,33 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len) { + int err = 0; grib_accessor* descriptors = 0; - grib_context* c = a->context; - long l = 0; - size_t size, i; + size_t l = 0; + long lenall = 0; + size_t i = 0; + long* v = 0; char buf[25] = {0,}; - long* v = 0; + grib_context* c = a->context; descriptors = get_accessor(a); - if (!descriptors) - return GRIB_NOT_FOUND; + if (!descriptors) return GRIB_NOT_FOUND; - value_count(descriptors, &l); - if (l > *len) - return GRIB_ARRAY_TOO_SMALL; + err = grib_value_count(a, &lenall); + if (err) return err; + l = lenall; + if (l > *len) return GRIB_ARRAY_TOO_SMALL; - v = (long*)grib_context_malloc_clear(c, sizeof(long) * l); - size = l; - unpack_long(a, v, &size); + v = (long*)grib_context_malloc_clear(c, sizeof(long) * l); + err = grib_unpack_long(descriptors, v, &l); + if (err) return err; - for (i = 0; i < size; i++) { + for (i = 0; i < l; i++) { snprintf(buf, sizeof(buf), "%06ld", v[i]); buffer[i] = grib_context_strdup(c, buf); } *len = l; + grib_context_free(c,v); return GRIB_SUCCESS; } diff --git a/src/grib_accessor_class_bytes.cc b/src/grib_accessor_class_bytes.cc index 158714998..8ad005033 100644 --- a/src/grib_accessor_class_bytes.cc +++ b/src/grib_accessor_class_bytes.cc @@ -165,8 +165,9 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) size_t i = 0, slen = strlen(val); if (slen != expected_slen || *len != expected_slen) { - grib_context_log(c, GRIB_LOG_ERROR,"pack_string: key %s is %lu bytes. Expected a string with %lu characters", - a->name, expected_blen, expected_slen); + grib_context_log(c, GRIB_LOG_ERROR, + "%s: Key %s is %lu bytes. Expected a string with %lu characters (actual length=%zu)", + __func__, a->name, expected_blen, expected_slen, *len); return GRIB_WRONG_ARRAY_SIZE; } @@ -176,7 +177,7 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) for (i = 0; i < (slen/2); i++) { unsigned int byteVal = 0; if (sscanf(val + 2*i, "%02x", &byteVal) != 1) { - grib_context_log(c, GRIB_LOG_ERROR,"pack_string: Invalid hex byte specfication '%.2s'",val + 2*i); + grib_context_log(c, GRIB_LOG_ERROR,"%s: Invalid hex byte specfication '%.2s'", __func__, val + 2*i); grib_context_free(c, bytearray); return GRIB_INVALID_KEY_VALUE; } diff --git a/src/grib_accessor_class_codetable.cc b/src/grib_accessor_class_codetable.cc index 0f594456c..e8e286623 100644 --- a/src/grib_accessor_class_codetable.cc +++ b/src/grib_accessor_class_codetable.cc @@ -151,8 +151,7 @@ grib_accessor_class* grib_accessor_class_codetable = &_grib_accessor_class_codet /* END_CLASS_IMP */ -static int grib_load_codetable(grib_context* c, const char* filename, - const char* recomposed_name, size_t size, grib_codetable* t); +static int grib_load_codetable(grib_context* c, const char* filename, const char* recomposed_name, size_t size, grib_codetable* t); static void init(grib_accessor* a, const long len, grib_arguments* params) { @@ -269,14 +268,14 @@ static void dump_codetable(grib_codetable* atable) } } #endif -static grib_codetable* load_table(grib_accessor_codetable* self) +static grib_codetable* load_table(grib_accessor* a) { + grib_accessor_codetable* self = (grib_accessor_codetable*)a; size_t size = 0; grib_handle* h = ((grib_accessor*)self)->parent->h; grib_context* c = h->context; grib_codetable* t = NULL; grib_codetable* next = NULL; - grib_accessor* a = (grib_accessor*)self; char* filename = 0; char recomposed[1024] = {0,}; char localRecomposed[1024] = {0,}; @@ -534,7 +533,7 @@ static void dump(grib_accessor* a, grib_dumper* dumper) long value; if (!self->table_loaded) { - self->table = load_table(self); /* may return NULL */ + self->table = load_table(a); /* may return NULL */ self->table_loaded = 1; } table = self->table; @@ -597,7 +596,7 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len) return err; if (!self->table_loaded) { - self->table = load_table(self); /* may return NULL */ + self->table = load_table(a); /* may return NULL */ self->table_loaded = 1; } table = self->table; @@ -628,23 +627,38 @@ static int value_count(grib_accessor* a, long* count) return 0; } +// Return true if the input is an integer (non-negative) +static bool is_number(const char* s) +{ + while (*s) { + if (!isdigit(*s)) + return false; + s++; + } + return true; +} + static int pack_string(grib_accessor* a, const char* buffer, size_t* len) { + long lValue = 0; + Assert(buffer); + if (is_number(buffer) && string_to_long(buffer, &lValue, 1) == GRIB_SUCCESS) { + // ECC-1654: If value is a pure number, just pack as long + size_t l = 1; + return grib_pack_long(a, &lValue, &l); + } + grib_accessor_codetable* self = (grib_accessor_codetable*)a; grib_codetable* table; - long i; size_t size = 1; typedef int (*cmpproc)(const char*, const char*); -#ifndef ECCODES_ON_WINDOWS + cmpproc cmp = (a->flags & GRIB_ACCESSOR_FLAG_LOWERCASE) ? strcmp_nocase : strcmp; -#else - cmpproc cmp = (a->flags & GRIB_ACCESSOR_FLAG_LOWERCASE) ? stricmp : strcmp; -#endif if (!self->table_loaded) { - self->table = load_table(self); /* may return NULL */ + self->table = load_table(a); /* may return NULL */ self->table_loaded = 1; } table = self->table; @@ -668,10 +682,10 @@ static int pack_string(grib_accessor* a, const char* buffer, size_t* len) if (act->default_value != NULL) { const char* p = 0; size_t s_len = 1; - long l; + long l = 0; int ret = 0; - double d; - char tmp[1024]; + double d = 0; + char tmp[1024] = {0,}; grib_expression* expression = grib_arguments_get_expression(grib_handle_of_accessor(a), act->default_value, 0); int type = grib_expression_native_type(grib_handle_of_accessor(a), expression); switch (type) { @@ -689,8 +703,8 @@ static int pack_string(grib_accessor* a, const char* buffer, size_t* len) s_len = sizeof(tmp); p = grib_expression_evaluate_string(grib_handle_of_accessor(a), expression, tmp, &s_len, &ret); if (ret != GRIB_SUCCESS) { - grib_context_log(a->context, GRIB_LOG_FATAL, - "unable to evaluate %s as string", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s: Unable to evaluate default value of %s as string expression", __func__, a->name); return ret; } s_len = strlen(p) + 1; @@ -700,6 +714,19 @@ static int pack_string(grib_accessor* a, const char* buffer, size_t* len) return GRIB_SUCCESS; } } + + // ECC-1652: Failed. Now do a case-insensitive compare to give the user a hint + for (i = 0; i < table->size; i++) { + if (table->entries[i].abbreviation) { + if (strcmp_nocase(table->entries[i].abbreviation, buffer) == 0) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s: No such code table entry: '%s' " + "(Did you mean '%s'?)", + a->name, buffer, table->entries[i].abbreviation); + } + } + } + return GRIB_ENCODING_ERROR; } @@ -767,7 +794,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) rlen = 1; /* ECC-480 Performance: avoid func call overhead of grib_value_count */ if (!self->table_loaded) { - self->table = load_table(self); /* may return NULL */ + self->table = load_table(a); /* may return NULL */ self->table_loaded = 1; } diff --git a/src/grib_accessor_class_concept.cc b/src/grib_accessor_class_concept.cc index a0204b1ad..28c09006d 100644 --- a/src/grib_accessor_class_concept.cc +++ b/src/grib_accessor_class_concept.cc @@ -329,6 +329,9 @@ static bool blacklisted(grib_handle* h, long edition, const char* concept_name, if (edition == 2 && strstr(concept_value, "grid_run_length")) { return true; } + if (strstr(concept_value, "grid_simple_matrix")) { + return true; + } if (edition == 1 && (strstr(concept_value, "ccsds") || strstr(concept_value, "jpeg"))) { return true; } @@ -379,7 +382,7 @@ static int grib_concept_apply(grib_accessor* a, const char* name) grib_context_log(h->context, GRIB_LOG_ERROR, "concept: input handle edition=%ld, centre=%s", editionNumber, centre_s); } if (strcmp(act->name, "paramId") == 0) { - if (string_to_long(name, &dummy) == GRIB_SUCCESS) { + if (string_to_long(name, &dummy, 1) == GRIB_SUCCESS) { // The paramId value is an integer. Show them the param DB grib_context_log(h->context, GRIB_LOG_ERROR, "Please check the Parameter Database 'https://codes.ecmwf.int/grib/param-db/?id=%s'", name); @@ -489,58 +492,12 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) return ret; } -static long guess_paramId(grib_handle* h) -{ - int err = 0; - long discipline, category, number; - err = grib_get_long(h, "discipline", &discipline); - if (err || discipline != 192) - return -1; - err = grib_get_long(h, "parameterCategory", &category); - if (err) - return -1; - err = grib_get_long(h, "parameterNumber", &number); - if (err) - return -1; - - if (category == 128) - return number; - else - return (category * 1000 + number); -} - -/* Return -1 if cannot match */ -static long get_ECMWF_local_paramId(grib_accessor* a, grib_handle* h) -{ - int err = 0; - long edition, centre; - if (h->product_kind != PRODUCT_GRIB) - return -1; - err = grib_get_long(h, "centre", ¢re); - if (err) - return -1; - err = grib_get_long(h, "edition", &edition); - if (err) - return -1; - if (edition == 2 && centre == 98 && strncmp(a->name, "paramId", 7) == 0) { - return guess_paramId(h); - } - return -1; -} - static int unpack_long(grib_accessor* a, long* val, size_t* len) { const char* p = concept_evaluate(a); if (!p) { grib_handle* h = grib_handle_of_accessor(a); - const long pid = get_ECMWF_local_paramId(a, h); - if (pid != -1) { - grib_context_log(h->context, GRIB_LOG_DEBUG, "ECMWF local grib2: paramId guessed to be %ld", pid); - *val = pid; - *len = 1; - return GRIB_SUCCESS; - } if (a->creator->defaultkey) return grib_get_long_internal(h, a->creator->defaultkey, val); @@ -648,23 +605,25 @@ static int compare(grib_accessor* a, grib_accessor* b) long count = 0; err = grib_value_count(a, &count); - if (err) - return err; + if (err) return err; alen = count; err = grib_value_count(b, &count); - if (err) - return err; + if (err) return err; blen = count; if (alen != blen) return GRIB_COUNT_MISMATCH; + alen = MAX_CONCEPT_STRING_LENGTH; + blen = MAX_CONCEPT_STRING_LENGTH; aval = (char*)grib_context_malloc(a->context, alen * sizeof(char)); bval = (char*)grib_context_malloc(b->context, blen * sizeof(char)); - grib_unpack_string(a, aval, &alen); - grib_unpack_string(b, bval, &blen); + err = grib_unpack_string(a, aval, &alen); + if (err) return err; + err = grib_unpack_string(b, bval, &blen); + if (err) return err; retval = GRIB_SUCCESS; if (!aval || !bval || grib_inline_strcmp(aval, bval)) diff --git a/src/grib_accessor_class_constant.cc b/src/grib_accessor_class_constant.cc index 0c98a2d4d..b54de5b88 100644 --- a/src/grib_accessor_class_constant.cc +++ b/src/grib_accessor_class_constant.cc @@ -20,7 +20,7 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_variable - IMPLEMENTS = init;pack_double;pack_long;pack_string;pack_bytes + IMPLEMENTS = init END_CLASS_DEF */ @@ -35,10 +35,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ -static int pack_bytes(grib_accessor*, const unsigned char*, size_t* len); -static int pack_double(grib_accessor*, const double* val, size_t* len); -static int pack_long(grib_accessor*, const long* val, size_t* len); -static int pack_string(grib_accessor*, const char*, size_t* len); static void init(grib_accessor*, const long, grib_arguments*); typedef struct grib_accessor_constant @@ -47,6 +43,7 @@ typedef struct grib_accessor_constant /* Members defined in gen */ /* Members defined in variable */ double dval; + float fval; char* cval; char* cname; int type; @@ -74,17 +71,17 @@ static grib_accessor_class _grib_accessor_class_constant = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ 0, /* unpack_long */ - &pack_double, /* pack_double */ + 0, /* pack_double */ 0, /* pack_float */ 0, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ 0, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ - &pack_bytes, /* pack_bytes */ + 0, /* pack_bytes */ 0, /* unpack_bytes */ 0, /* pack_expression */ 0, /* notify_change */ @@ -112,23 +109,3 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg) { a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; } - -static int pack_bytes(grib_accessor* a, const unsigned char* val, size_t* len) -{ - return GRIB_READ_ONLY; -} - -static int pack_double(grib_accessor* a, const double* val, size_t* len) -{ - return GRIB_READ_ONLY; -} - -static int pack_long(grib_accessor* a, const long* val, size_t* len) -{ - return GRIB_READ_ONLY; -} - -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - return GRIB_READ_ONLY; -} diff --git a/src/grib_accessor_class_data_apply_bitmap.cc b/src/grib_accessor_class_data_apply_bitmap.cc index b8e77e9d0..3f10fa26c 100644 --- a/src/grib_accessor_class_data_apply_bitmap.cc +++ b/src/grib_accessor_class_data_apply_bitmap.cc @@ -22,6 +22,7 @@ IMPLEMENTS = pack_double IMPLEMENTS = value_count IMPLEMENTS = dump;get_native_type + IMPLEMENTS = compare MEMBERS=const char* coded_values MEMBERS=const char* bitmap MEMBERS=const char* missing_value @@ -48,6 +49,7 @@ static int unpack_float(grib_accessor*, float* val, size_t* len); static int value_count(grib_accessor*, long*); static void dump(grib_accessor*, grib_dumper*); static void init(grib_accessor*, const long, grib_arguments*); +static int compare(grib_accessor*, grib_accessor*); static int unpack_double_element(grib_accessor*, size_t i, double* val); static int unpack_double_element_set(grib_accessor*, const size_t* index_array, size_t len, double* val_array); @@ -104,7 +106,7 @@ static grib_accessor_class _grib_accessor_class_data_apply_bitmap = { 0, /* resize */ 0, /* nearest_smaller_value */ 0, /* next accessor */ - 0, /* compare vs. another accessor */ + &compare, /* compare vs. another accessor */ &unpack_double_element, /* unpack only ith value (double) */ 0, /* unpack only ith value (float) */ &unpack_double_element_set, /* unpack a given set of elements (double) */ @@ -441,3 +443,47 @@ static int get_native_type(grib_accessor* a) return GRIB_TYPE_DOUBLE; } + +static int compare(grib_accessor* a, grib_accessor* b) +{ + int retval = 0; + double* aval = 0; + double* bval = 0; + + size_t alen = 0; + size_t blen = 0; + int err = 0; + long count = 0; + + err = grib_value_count(a, &count); + if (err) + return err; + alen = count; + + err = grib_value_count(b, &count); + if (err) + return err; + blen = count; + + if (alen != blen) + return GRIB_COUNT_MISMATCH; + + aval = (double*)grib_context_malloc(a->context, alen * sizeof(double)); + bval = (double*)grib_context_malloc(b->context, blen * sizeof(double)); + + grib_unpack_double(a, aval, &alen); + grib_unpack_double(b, bval, &blen); + + retval = GRIB_SUCCESS; + while (alen != 0) { + if (*bval != *aval) + retval = GRIB_DOUBLE_VALUE_MISMATCH; + alen--; + } + + grib_context_free(a->context, aval); + grib_context_free(b->context, bval); + + return retval; +} + diff --git a/src/grib_accessor_class_data_complex_packing.cc b/src/grib_accessor_class_data_complex_packing.cc index f10640b6e..95612de5a 100644 --- a/src/grib_accessor_class_data_complex_packing.cc +++ b/src/grib_accessor_class_data_complex_packing.cc @@ -168,13 +168,11 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) static int value_count(grib_accessor* a, long* count) { grib_accessor_data_complex_packing* self = (grib_accessor_data_complex_packing*)a; - int ret = 0; - grib_handle* gh = grib_handle_of_accessor(a); - + int ret = 0; + grib_handle* gh = grib_handle_of_accessor(a); long pen_j = 0; long pen_k = 0; long pen_m = 0; - *count = 0; if (a->length == 0) @@ -188,15 +186,16 @@ static int value_count(grib_accessor* a, long* count) return ret; if (pen_j != pen_k || pen_j != pen_m) { - grib_context_log(a->context, GRIB_LOG_ERROR, "pen_j=%ld, pen_k=%ld, pen_m=%ld\n", pen_j, pen_k, pen_m); - Assert((pen_j == pen_k) && (pen_j == pen_m)); + grib_context_log(a->context, GRIB_LOG_ERROR, "Invalid pentagonal resolution parameters"); + grib_context_log(a->context, GRIB_LOG_ERROR, "pen_j=%ld, pen_k=%ld, pen_m=%ld", pen_j, pen_k, pen_m); + return GRIB_DECODING_ERROR; } *count = (pen_j + 1) * (pen_j + 2); return ret; } -static double calculate_pfactor(grib_context* ctx, const double* spectralField, long fieldTruncation, long subsetTruncation) +static double calculate_pfactor(const grib_context* ctx, const double* spectralField, long fieldTruncation, long subsetTruncation) { /*long n_vals = ((fieldTruncation+1)*(fieldTruncation+2));*/ long loop, index, m, n = 0; @@ -416,10 +415,10 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) return GRIB_NOT_IMPLEMENTED; } - Assert(sub_j == sub_k); - Assert(sub_j == sub_m); - Assert(pen_j == pen_k); - Assert(pen_j == pen_m); + if (sub_j != sub_k || sub_j != sub_m || pen_j != pen_k || pen_j != pen_m) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Invalid pentagonal resolution parameters", cclass_name); + return GRIB_ENCODING_ERROR; + } n_vals = (pen_j + 1) * (pen_j + 2); @@ -790,10 +789,10 @@ static int unpack(grib_accessor* a, T* val, size_t* len) return GRIB_NOT_IMPLEMENTED; } - Assert(sub_j == sub_k); - Assert(sub_j == sub_m); - Assert(pen_j == pen_k); - Assert(pen_j == pen_m); + if (sub_j != sub_k || sub_j != sub_m || pen_j != pen_k || pen_j != pen_m) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Invalid pentagonal resolution parameters", cclass_name); + return GRIB_DECODING_ERROR; + } buf = (unsigned char*)gh->buffer->data; diff --git a/src/grib_accessor_class_data_g1complex_packing.cc b/src/grib_accessor_class_data_g1complex_packing.cc index 549a0e1f1..6c8fa5cd6 100644 --- a/src/grib_accessor_class_data_g1complex_packing.cc +++ b/src/grib_accessor_class_data_g1complex_packing.cc @@ -150,8 +150,7 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) static int pack_double(grib_accessor* a, const double* val, size_t* len) { - grib_accessor_data_g1complex_packing* self = - (grib_accessor_data_g1complex_packing*)a; + grib_accessor_data_g1complex_packing* self = (grib_accessor_data_g1complex_packing*)a; int ret = GRIB_SUCCESS; long seclen = 0; long sub_j = 0; diff --git a/src/grib_accessor_class_data_g1second_order_constant_width_packing.cc b/src/grib_accessor_class_data_g1second_order_constant_width_packing.cc index a18ef2d2d..eba3ecc24 100644 --- a/src/grib_accessor_class_data_g1second_order_constant_width_packing.cc +++ b/src/grib_accessor_class_data_g1second_order_constant_width_packing.cc @@ -308,7 +308,8 @@ static int unpack_double(grib_accessor* a, double* values, size_t* len) static int pack_double(grib_accessor* a, const double* cval, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, "constant width packing not implemented"); + const char* cclass_name = a->cclass->name; + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: %s: Not implemented", cclass_name, __func__); return GRIB_NOT_IMPLEMENTED; } diff --git a/src/grib_accessor_class_data_g22order_packing.cc b/src/grib_accessor_class_data_g22order_packing.cc index 84f32b3e3..af462d667 100644 --- a/src/grib_accessor_class_data_g22order_packing.cc +++ b/src/grib_accessor_class_data_g22order_packing.cc @@ -1168,57 +1168,33 @@ static void merge_j(struct section* h, int ref_bits, int width_bits, int has_und static int pack_double(grib_accessor* a, const double* val, size_t* len) { - unsigned char* sec7; grib_accessor_data_g22order_packing* self = reinterpret_cast(a); grib_handle* gh = grib_handle_of_accessor(a); const char* cclass_name = a->cclass->name; int err = 0; - long bits_per_value = 0; - // double reference_value = 0; // long nvals_per_group = 0; // long nbits_per_group_val = 0; - long binary_scale_factor; - long decimal_scale_factor; - long optimize_scale_factor; - long typeOfOriginalFieldValues; + long binary_scale_factor, decimal_scale_factor, optimize_scale_factor, typeOfOriginalFieldValues; // long groupSplittingMethodUsed, numberOfGroupsOfDataValues, referenceForGroupWidths; - long missingValueManagementUsed; - long primaryMissingValueSubstitute; - long secondaryMissingValueSubstitute; - long numberOfBitsUsedForTheGroupWidths; - long numberOfBitsUsedForTheScaledGroupLengths; - long orderOfSpatialDifferencing; - long numberOfOctetsExtraDescriptors; - - int dec_scale; - int bin_scale; - int wanted_bits; - int max_bits; - int use_bitmap; - - int j, j0, k, *v, binary_scale, nbits, has_undef, extra_0, extra_1; - size_t i, ii; - int vmn, vmx, vbits; + long missingValueManagementUsed, primaryMissingValueSubstitute, secondaryMissingValueSubstitute; + long numberOfBitsUsedForTheGroupWidths, numberOfBitsUsedForTheScaledGroupLengths, orderOfSpatialDifferencing; + long numberOfOctetsExtraDescriptors, bits_per_value = 0, bitmap_present = 0; + + int dec_scale, bin_scale, wanted_bits, max_bits, use_bitmap, + j, j0, k, *v, binary_scale, nbits, has_undef, extra_0, extra_1, vmn, vmx, vbits; // Sections - double max_val, min_val, ref, frange, dec_factor, scale; - double mn, mx; + double max_val, min_val, ref, frange, dec_factor, scale, mn, mx; struct section start, *list, *list_backup, *s; // Group - int ngroups, grefmx, glenmn, glenmx, gwidmn, gwidmx, len_last; - int size_sec7; + int ngroups, grefmx, glenmn, glenmx, gwidmn, gwidmx, len_last, size_sec7; int *refs, *lens, *widths, *itmp, *itmp2; - // int est_group_width = 12; int est_group_width = 6; - size_t ndef = 0; - size_t nndata = 0; - size_t nstruct; - - long bitmap_present = 0; + size_t ndef = 0, nndata = 0, nstruct, i, ii; int LEN_SEC_MAX = 127; int LEN_BITS = 7; @@ -1796,7 +1772,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) } size_sec7 += (k >> 3) + ((k & 7) ? 1 : 0); - sec7 = reinterpret_cast(grib_context_malloc(a->context, size_sec7)); + unsigned char* sec7 = reinterpret_cast(grib_context_malloc(a->context, size_sec7)); if (sec7 == NULL) { grib_context_log(a->context, GRIB_LOG_ERROR, "%s packing: unable to allocate %d bytes", cclass_name, size_sec7); return GRIB_OUT_OF_MEMORY; diff --git a/src/grib_accessor_class_data_g2bifourier_packing.cc b/src/grib_accessor_class_data_g2bifourier_packing.cc index bf5f56f61..86275d470 100644 --- a/src/grib_accessor_class_data_g2bifourier_packing.cc +++ b/src/grib_accessor_class_data_g2bifourier_packing.cc @@ -493,9 +493,11 @@ static void free_bif_trunc(bif_trunc_t* bt, grib_accessor* a) grib_context_free(gh->context, bt); } -static bif_trunc_t* new_bif_trunc(grib_accessor* a, grib_accessor_data_g2bifourier_packing* self) +static bif_trunc_t* new_bif_trunc(grib_accessor* a) { int ret; + grib_accessor_data_g2bifourier_packing* self = (grib_accessor_data_g2bifourier_packing*)a; + grib_handle* gh = grib_handle_of_accessor(a); bif_trunc_t* bt = (bif_trunc_t*)grib_context_malloc(gh->context, sizeof(bif_trunc_t)); @@ -634,7 +636,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) if ((ret = grib_value_count(a, &count)) != GRIB_SUCCESS) goto cleanup; - bt = new_bif_trunc(a, self); + bt = new_bif_trunc(a); if (bt == NULL) { ret = GRIB_INTERNAL_ERROR; @@ -735,7 +737,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) goto cleanup; } - bt = new_bif_trunc(a, self); + bt = new_bif_trunc(a); if (bt == NULL) { long makeTemplate = 0; diff --git a/src/grib_accessor_class_data_jpeg2000_packing.cc b/src/grib_accessor_class_data_jpeg2000_packing.cc index 7349def3e..66d6f6767 100644 --- a/src/grib_accessor_class_data_jpeg2000_packing.cc +++ b/src/grib_accessor_class_data_jpeg2000_packing.cc @@ -178,7 +178,7 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) } } - if (a->context->debug == -1) { + if (a->context->debug) { switch (self->jpeg_lib) { case 0: fprintf(stderr, "ECCODES DEBUG jpeg2000_packing: jpeg_lib not set!\n"); @@ -347,6 +347,7 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) double units_factor = 1.0; double units_bias = 0.0; double* val = (double*)cval; + const char* cclass_name = a->cclass->name; self->dirty = 1; @@ -387,8 +388,7 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) case GRIB_SUCCESS: break; default: - grib_context_log(a->context, GRIB_LOG_ERROR, - "grib_accessor_class_data_jpeg2000_packing pack_double: unable to compute packing parameters"); + grib_context_log(a->context, GRIB_LOG_ERROR, "%s %s: Unable to compute packing parameters", cclass_name, __func__); return ret; } @@ -453,9 +453,8 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) if (width * height != *len) { grib_context_log(a->context, GRIB_LOG_ERROR, - "grib_accessor_class_data_jpeg2000_packing pack_double: width=%ld height=%ld len=%ld." - " width*height should equal len!", - (long)width, (long)height, (long)*len); + "%s %s: width=%ld height=%ld len=%zu. width*height should equal len!", + cclass_name, __func__, width, height, *len); /* ECC-802: We cannot bomb out here as the user might have changed Ni/Nj and the packingType * but has not yet submitted the new data values. So len will be out of sync! * So issue a warning but proceed. @@ -466,12 +465,23 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) } switch (type_of_compression_used) { - case 0: - Assert(target_compression_ratio == 255); + case 0: // Lossless + if (target_compression_ratio != 255) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s %s: When %s=0 (Lossless), %s must be set to 255", + cclass_name, __func__, self->type_of_compression_used, self->target_compression_ratio); + return GRIB_ENCODING_ERROR; + } helper.compression = 0; break; - case 1: + case 1: // Lossy + if (target_compression_ratio == 255 || target_compression_ratio == 0) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s %s: When %s=1 (Lossy), %s must be specified", + cclass_name, __func__, self->type_of_compression_used, self->target_compression_ratio); + return GRIB_ENCODING_ERROR; + } Assert(target_compression_ratio != 255); Assert(target_compression_ratio != 0); helper.compression = target_compression_ratio; @@ -490,8 +500,8 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) if (bits_per_value == 0) { const long bits_per_value_adjusted = 1; grib_context_log(a->context, GRIB_LOG_DEBUG, - "grib_accessor_class_data_jpeg2000_packing(%s) : bits per value was zero, changed to %d", - self->jpeg_lib == OPENJPEG_LIB ? "openjpeg" : "jasper", bits_per_value_adjusted); + "%s (%s) : bits per value was zero, changed to %ld", + cclass_name, self->jpeg_lib == OPENJPEG_LIB ? "openjpeg" : "jasper", bits_per_value_adjusted); bits_per_value = bits_per_value_adjusted; } helper.bits_per_value = bits_per_value; @@ -517,8 +527,8 @@ static int pack_double(grib_accessor* a, const double* cval, size_t* len) if (helper.jpeg_length > simple_packing_size) grib_context_log(a->context, GRIB_LOG_WARNING, - "grib_accessor_data_jpeg2000_packing(%s) : jpeg data (%ld) larger than input data (%ld)", - self->jpeg_lib == OPENJPEG_LIB ? "openjpeg" : "jasper", + "%s (%s) : jpeg data (%ld) larger than input data (%ld)", + cclass_name, self->jpeg_lib == OPENJPEG_LIB ? "openjpeg" : "jasper", helper.jpeg_length, simple_packing_size); Assert(helper.jpeg_length <= helper.buffer_size); diff --git a/src/grib_accessor_class_data_run_length_packing.cc b/src/grib_accessor_class_data_run_length_packing.cc index cfe5370e0..61e581185 100644 --- a/src/grib_accessor_class_data_run_length_packing.cc +++ b/src/grib_accessor_class_data_run_length_packing.cc @@ -149,8 +149,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) long seclen, number_of_values, bits_per_value, max_level_value, number_of_level_values, decimal_scale_factor; long* level_values = NULL; size_t level_values_size = 0; - int i = 0; - long number_of_compressed_values = 0, range = 0, offsetBeforeData = 0, pos = 0; + long i = 0, number_of_compressed_values = 0, range = 0, offsetBeforeData = 0, pos = 0; long v, n, factor, k, j; long* compressed_values = NULL; double level_scale_factor = 0; @@ -214,7 +213,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) while (i < number_of_compressed_values) { if (compressed_values[i] > max_level_value) { grib_context_log(a->context, GRIB_LOG_ERROR, - "%s: numberOfValues mismatch: i=%d, " + "%s: numberOfValues mismatch: i=%ld, " "compressed_values[i]=%ld, max_level_value=%ld", cclass_name, i, compressed_values[i], max_level_value); break; @@ -249,7 +248,132 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) static int pack_double(grib_accessor* a, const double* val, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, - "%s: Function '%s' is not implemented", a->cclass->name, __func__); - return GRIB_NOT_IMPLEMENTED; + grib_accessor_data_run_length_packing* self = (grib_accessor_data_run_length_packing*)a; + grib_handle* gh = grib_handle_of_accessor(a); + const char* cclass_name = a->cclass->name; + int err = GRIB_SUCCESS; + long number_of_values, bits_per_value, max_level_value, number_of_level_values, decimal_scale_factor; + long* level_values = NULL; + size_t level_values_size = 0; + long i = 0, range = 0, pos = 0, n = 0, j = 0, k = 0, l = 0, missingValueLong = 0; + double level_scale_factor = 0; + unsigned char* buf = NULL; + double missingValue = 9999.0; + size_t n_vals = *len; + + if ((err = grib_get_long_internal(gh, self->number_of_values, &number_of_values)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(gh, self->bits_per_value, &bits_per_value)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(gh, self->max_level_value, &max_level_value)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(gh, self->number_of_level_values, &number_of_level_values)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_long_internal(gh, self->decimal_scale_factor, &decimal_scale_factor)) != GRIB_SUCCESS) + return err; + if ((err = grib_get_double(gh, "missingValue", &missingValue)) != GRIB_SUCCESS) + return err; + + if (n_vals != number_of_values) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Parameters are invalid: n_vals=%ld(==number_of_values), number_of_values=%ld(==n_vals)", + cclass_name, n_vals, number_of_values); + return GRIB_ENCODING_ERROR; + } + + if (bits_per_value == 0) { + // TODO(masn): What are we meant to do with constant fields? + return GRIB_SUCCESS; + } + + level_values = (long*)grib_context_malloc_clear(a->context, sizeof(long) * number_of_level_values); + level_values_size = number_of_level_values; + if ((err = grib_get_long_array_internal(gh, self->level_values, level_values, &level_values_size)) != GRIB_SUCCESS) + return err; + if (decimal_scale_factor > 127) { + decimal_scale_factor = -(decimal_scale_factor - 128); + } + level_scale_factor = grib_power(-decimal_scale_factor, 10.0); + missingValueLong = (long)(round(missingValue / level_scale_factor)); + for (i = 0; i < number_of_level_values; i++) { + if (missingValueLong == level_values[i]) { + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: Parameters are invalid: level_values[%ld]=%ld, missingValueLong=%ld", + cclass_name, i, level_values[i], missingValueLong); + return GRIB_ENCODING_ERROR; + } + } + range = (1 << bits_per_value) - 1 - max_level_value; + if ((max_level_value <= 0) || (number_of_level_values <= 0) || (max_level_value > number_of_level_values) || (range <= 0)) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s: Parameters are invalid: max_level_value=%ld(>0, <=number_of_level_values), " + "number_of_level_values=%ld(>0, >=max_level_value), range=%ld(>0)", + cclass_name, max_level_value, number_of_level_values, range); + return GRIB_ENCODING_ERROR; + } + buf = (unsigned char*)grib_context_malloc(a->context, 2 * number_of_values); + for (i = 0; i < number_of_values; i++) { + k = (long)(round(val[i] / level_scale_factor)); + err = GRIB_ENCODING_ERROR; + if (missingValueLong == k) { + k = 0; + err = GRIB_SUCCESS; + } else { + for (j = 0; j < max_level_value; j++) { + if (level_values[j] == k) { + k = j + 1; + err = GRIB_SUCCESS; + break; + } + } + } + if (err != GRIB_SUCCESS) { + grib_context_log(a->context, GRIB_LOG_ERROR, + "%s: Values and/or parameters are invalid: val[%ld]=%lf, level_value=%ld, max_level_value=%ld", + cclass_name, i, val[i], k, max_level_value); + return GRIB_ENCODING_ERROR; + } + if (i == 0) { + grib_encode_unsigned_longb(buf, k, &pos, bits_per_value); + } else if (i == number_of_values - 1) { + if (k != l) { + if (n == 0) { + grib_encode_unsigned_longb(buf, k, &pos, bits_per_value); + } else { + while (n >= range) { + grib_encode_unsigned_longb(buf, (n % range) + max_level_value + 1, &pos, bits_per_value); + n = n / range; + } + grib_encode_unsigned_longb(buf, n + max_level_value + 1, &pos, bits_per_value); + grib_encode_unsigned_longb(buf, k, &pos, bits_per_value); + } + } else { + n = n + 1; + while (n >= range) { + grib_encode_unsigned_longb(buf, (n % range) + max_level_value + 1, &pos, bits_per_value); + n = n / range; + } + grib_encode_unsigned_longb(buf, n + max_level_value + 1, &pos, bits_per_value); + } + } else { + if (k != l) { + if ( n == 0 ) { + grib_encode_unsigned_longb(buf, k, &pos, bits_per_value); + } else { + while (n >= range) { + grib_encode_unsigned_longb(buf, (n % range) + max_level_value + 1, &pos, bits_per_value); + n = n / range; + } + grib_encode_unsigned_longb(buf, n + max_level_value + 1, &pos, bits_per_value); + grib_encode_unsigned_longb(buf, k, &pos, bits_per_value); + n = 0; + } + } else { + n = n + 1; + } + } + l = k; + } + grib_context_free(a->context, level_values); + grib_buffer_replace(a, buf, pos/8, 1, 1); + grib_context_buffer_free(a->context, buf); + return err; } diff --git a/src/grib_accessor_class_data_sh_packed.cc b/src/grib_accessor_class_data_sh_packed.cc index 6944c7a0a..a02d60275 100644 --- a/src/grib_accessor_class_data_sh_packed.cc +++ b/src/grib_accessor_class_data_sh_packed.cc @@ -164,8 +164,9 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) static int value_count(grib_accessor* a, long* count) { grib_accessor_data_sh_packed* self = (grib_accessor_data_sh_packed*)a; - grib_handle* hand = grib_handle_of_accessor(a); - int ret = 0; + grib_handle* hand = grib_handle_of_accessor(a); + int ret = 0; + const char* cclass_name = a->cclass->name; long sub_j = 0; long sub_k = 0; @@ -189,8 +190,9 @@ static int value_count(grib_accessor* a, long* count) return ret; if (pen_j != pen_k || pen_j != pen_m) { - grib_context_log(a->context, GRIB_LOG_ERROR, "pen_j=%ld, pen_k=%ld, pen_m=%ld\n", pen_j, pen_k, pen_m); - Assert((pen_j == pen_k) && (pen_j == pen_m)); + grib_context_log(a->context, GRIB_LOG_ERROR, "%s: pen_j=%ld, pen_k=%ld, pen_m=%ld\n", + cclass_name, pen_j, pen_k, pen_m); + return GRIB_DECODING_ERROR; } *count = (pen_j + 1) * (pen_j + 2) - (sub_j + 1) * (sub_j + 2); return ret; @@ -200,20 +202,13 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) { grib_accessor_data_sh_packed* self = (grib_accessor_data_sh_packed*)a; - size_t i = 0; - int ret = GRIB_SUCCESS; - long hcount = 0; - long lcount = 0; - long hpos = 0; - long lup = 0; - long mmax = 0; - long n_vals = 0; + size_t i = 0; + int ret = GRIB_SUCCESS; + long hcount = 0, lcount = 0, hpos = 0, lup = 0, mmax = 0, n_vals = 0; double* scals = NULL; /* double *pscals=NULL; */ - double s = 0; - double d = 0; - double laplacianOperator = 0; + double s = 0, d = 0, laplacianOperator = 0; unsigned char* buf = NULL; unsigned char* hres = NULL; unsigned char* lres = NULL; @@ -223,22 +218,16 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) long maxv = 0; long GRIBEX_sh_bug_present = 0; long ieee_floats = 0; - long offsetdata = 0; long bits_per_value = 0; double reference_value = 0; long binary_scale_factor = 0; long decimal_scale_factor = 0; - long sub_j = 0; - long sub_k = 0; - long sub_m = 0; - long pen_j = 0; - long pen_k = 0; - long pen_m = 0; + long sub_j = 0, sub_k = 0, sub_m = 0, pen_j = 0, pen_k = 0, pen_m = 0; double operat = 0; - int bytes; + int bytes = 0; int err = 0; decode_float_proc decode_float = NULL; @@ -326,7 +315,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) d = codes_power(-decimal_scale_factor, 10); scals = (double*)grib_context_malloc(a->context, maxv * sizeof(double)); - Assert(scals); + if(!scals) return GRIB_OUT_OF_MEMORY; scals[0] = 0; for (i = 1; i < maxv; i++) { diff --git a/src/grib_accessor_class_evaluate.cc b/src/grib_accessor_class_evaluate.cc index 2c9fdf1e3..596b95884 100644 --- a/src/grib_accessor_class_evaluate.cc +++ b/src/grib_accessor_class_evaluate.cc @@ -15,7 +15,7 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_long - IMPLEMENTS = unpack_long;pack_long + IMPLEMENTS = unpack_long IMPLEMENTS = init MEMBERS= grib_arguments* arg END_CLASS_DEF @@ -32,7 +32,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ -static int pack_long(grib_accessor*, const long* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static void init(grib_accessor*, const long, grib_arguments*); @@ -66,7 +65,7 @@ static grib_accessor_class _grib_accessor_class_evaluate = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ &unpack_long, /* unpack_long */ 0, /* pack_double */ 0, /* pack_float */ @@ -107,18 +106,12 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; } -static int pack_long(grib_accessor* a, const long* val, size_t* len) -{ - return GRIB_NOT_IMPLEMENTED; -} - static int unpack_long(grib_accessor* a, long* val, size_t* len) { - int ret = 0; grib_accessor_evaluate* self = (grib_accessor_evaluate*)a; - grib_expression* e = grib_arguments_get_expression(grib_handle_of_accessor(a), self->arg, 0); + grib_expression* e = grib_arguments_get_expression(grib_handle_of_accessor(a), self->arg, 0); - ret = grib_expression_evaluate_long(grib_handle_of_accessor(a), e, val); + int ret = grib_expression_evaluate_long(grib_handle_of_accessor(a), e, val); *len = 1; return ret; diff --git a/src/grib_accessor_class_expanded_descriptors.cc b/src/grib_accessor_class_expanded_descriptors.cc index a339882d0..9d2fe95fc 100644 --- a/src/grib_accessor_class_expanded_descriptors.cc +++ b/src/grib_accessor_class_expanded_descriptors.cc @@ -25,6 +25,7 @@ CLASS = accessor SUPER = grib_accessor_class_long IMPLEMENTS = unpack_long;pack_long IMPLEMENTS = unpack_double +IMPLEMENTS = unpack_string_array IMPLEMENTS = init;dump;destroy IMPLEMENTS = value_count; get_native_type MEMBERS = const char* unexpandedDescriptors @@ -55,6 +56,7 @@ static int get_native_type(grib_accessor*); static int pack_long(grib_accessor*, const long* val, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); +static int unpack_string_array(grib_accessor*, char**, size_t* len); static int value_count(grib_accessor*, long*); static void destroy(grib_context*, grib_accessor*); static void dump(grib_accessor*, grib_dumper*); @@ -107,7 +109,7 @@ static grib_accessor_class _grib_accessor_class_expanded_descriptors = { 0, /* pack_string */ 0, /* unpack_string */ 0, /* pack_string_array */ - 0, /* unpack_string_array */ + &unpack_string_array, /* unpack_string_array */ 0, /* pack_bytes */ 0, /* unpack_bytes */ 0, /* pack_expression */ @@ -209,8 +211,7 @@ static char* descriptor_type_name(int dtype) } #endif -static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_descriptors_array* expanded, - change_coding_params* ccp, int* err) +static void __expand(grib_accessor* a, bufr_descriptors_array* unexpanded, bufr_descriptors_array* expanded, change_coding_params* ccp, int* err) { int k, j, i; grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a; @@ -805,6 +806,33 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) return GRIB_SUCCESS; } +static int unpack_string_array(grib_accessor* a, char** buffer, size_t* len) +{ + int err = 0; + long* v = NULL; + char buf[25] = {0,}; + long llen = 0; + size_t i = 0, size = 0; + grib_context* c = a->context; + + err = grib_value_count(a, &llen); + if (err) return err; + + size = llen; + v = (long*)grib_context_malloc_clear(c, sizeof(long) * size); + err = grib_unpack_long(a, v, &size); + if (err) return err; + + for (i = 0; i < size; i++) { + snprintf(buf, sizeof(buf), "%06ld", v[i]); + buffer[i] = grib_context_strdup(c, buf); + } + *len = size; + grib_context_free(c,v); + + return GRIB_NOT_IMPLEMENTED; +} + static int pack_long(grib_accessor* a, const long* val, size_t* len) { grib_accessor_expanded_descriptors* self = (grib_accessor_expanded_descriptors*)a; diff --git a/src/grib_accessor_class_g2grid.cc b/src/grib_accessor_class_g2grid.cc index 94ddb31e4..40aaca628 100644 --- a/src/grib_accessor_class_g2grid.cc +++ b/src/grib_accessor_class_g2grid.cc @@ -142,6 +142,9 @@ static int value_count(grib_accessor* a, long* count) return 0; } +// GRIB edition 2 uses microdegrees +#define ANGLE_SUBDIVISIONS (1000 * 1000) + static int unpack_double(grib_accessor* a, double* val, size_t* len) { grib_accessor_g2grid* self = (grib_accessor_g2grid*)a; @@ -167,7 +170,7 @@ static int unpack_double(grib_accessor* a, double* val, size_t* len) if (sub_division == GRIB_MISSING_LONG || sub_division == 0) - sub_division = 1000000; + sub_division = ANGLE_SUBDIVISIONS; if (basic_angle == 0) basic_angle = 1; @@ -292,21 +295,21 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) /* printf("pack_double %g %g %g %g %g %g\n",val[0],val[1],val[2],val[3],val[4],val[5]);*/ - if (is_ok(val, v, 1, 1000000)) { + if (is_ok(val, v, 1, ANGLE_SUBDIVISIONS)) { basic_angle = 1; - sub_division = 1000000; + sub_division = ANGLE_SUBDIVISIONS; } else if (trial(val, v, &basic_angle, &sub_division)) { } else { basic_angle = 1; - sub_division = 1000000; + sub_division = ANGLE_SUBDIVISIONS; if (!is_ok(val, v, basic_angle, sub_division)) grib_context_log(a->context, GRIB_LOG_DEBUG, "Grid cannot be coded with any loss of precision"); } - if (basic_angle == 1 && sub_division == 1000000) { + if (basic_angle == 1 && sub_division == ANGLE_SUBDIVISIONS) { basic_angle = 0; sub_division = GRIB_MISSING_LONG; } diff --git a/src/grib_accessor_class_g2level.cc b/src/grib_accessor_class_g2level.cc index 8474f924d..e1d8aaa38 100644 --- a/src/grib_accessor_class_g2level.cc +++ b/src/grib_accessor_class_g2level.cc @@ -121,6 +121,9 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) self->scale_first = grib_arguments_get_name(hand, c, n++); self->value_first = grib_arguments_get_name(hand, c, n++); self->pressure_units = grib_arguments_get_name(hand, c, n++); + + // See ECC-1644 + a->flags |= GRIB_ACCESSOR_FLAG_COPY_IF_CHANGING_EDITION; } static void dump(grib_accessor* a, grib_dumper* dumper) @@ -306,9 +309,9 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) // Not sure if this is necessary // if (value_first == GRIB_MISSING_LONG) { - // if ((ret=grib_set_missing_internal(hand, self->scale_first)) != GRIB_SUCCESS) + // if ((ret=grib_set_missing(hand, self->scale_first)) != GRIB_SUCCESS) // return ret; - // if ((ret=grib_set_missing_internal(hand, self->value_first)) != GRIB_SUCCESS) + // if ((ret=grib_set_missing(hand, self->value_first)) != GRIB_SUCCESS) // return ret; // return GRIB_SUCCESS; // } diff --git a/src/grib_accessor_class_gds_not_present_bitmap.cc b/src/grib_accessor_class_gds_not_present_bitmap.cc index 93431c9db..d8ec8ecd1 100644 --- a/src/grib_accessor_class_gds_not_present_bitmap.cc +++ b/src/grib_accessor_class_gds_not_present_bitmap.cc @@ -24,6 +24,7 @@ IMPLEMENTS = unpack_double IMPLEMENTS = pack_double IMPLEMENTS = value_count + IMPLEMENTS = get_native_type MEMBERS=const char* missing_value MEMBERS=const char* number_of_values MEMBERS=const char* number_of_points @@ -43,6 +44,7 @@ or edit "accessor.class" and rerun ./make_class.pl */ +static int get_native_type(grib_accessor*); static int pack_double(grib_accessor*, const double* val, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int value_count(grib_accessor*, long*); @@ -77,7 +79,7 @@ static grib_accessor_class _grib_accessor_class_gds_not_present_bitmap = { &value_count, /* get number of values */ 0, /* get number of bytes */ 0, /* get offset to bytes */ - 0, /* get native type */ + &get_native_type, /* get native type */ 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ @@ -132,7 +134,7 @@ static void init(grib_accessor* a, const long v, grib_arguments* args) static int value_count(grib_accessor* a, long* number_of_points) { grib_accessor_gds_not_present_bitmap* self = (grib_accessor_gds_not_present_bitmap*)a; - *number_of_points = 0; + *number_of_points = 0; return grib_get_long_internal(grib_handle_of_accessor(a), self->number_of_points, number_of_points); } @@ -207,3 +209,8 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) // a possible implementation return GRIB_NOT_IMPLEMENTED; } + +static int get_native_type(grib_accessor* a) +{ + return GRIB_TYPE_DOUBLE; +} diff --git a/src/grib_accessor_class_gen.cc b/src/grib_accessor_class_gen.cc index 4846fc5d7..75f84bebd 100644 --- a/src/grib_accessor_class_gen.cc +++ b/src/grib_accessor_class_gen.cc @@ -301,7 +301,7 @@ static int unpack_long(grib_accessor* a, long* v, size_t* len) } } - grib_context_log(a->context, GRIB_LOG_ERROR, "Cannot unpack %s as long", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Cannot unpack key '%s' as long", a->name); if (grib_get_native_type(grib_handle_of_accessor(a), a->name, &type) == GRIB_SUCCESS) { grib_context_log(a->context, GRIB_LOG_ERROR, "Hint: Try unpacking as %s", grib_get_type_name(type)); } @@ -336,7 +336,7 @@ static int unpack(grib_accessor* a, T* v, size_t* len) } } - grib_context_log(a->context, GRIB_LOG_ERROR, "Cannot unpack %s as %s", a->name, Tname); + grib_context_log(a->context, GRIB_LOG_ERROR, "Cannot unpack key '%s' as %s", a->name, Tname); if (grib_get_native_type(grib_handle_of_accessor(a), a->name, &type) == GRIB_SUCCESS) { grib_context_log(a->context, GRIB_LOG_ERROR, "Hint: Try unpacking as %s", grib_get_type_name(type)); } @@ -356,10 +356,12 @@ static int unpack_float(grib_accessor* a, float* v, size_t* len) static int unpack_string(grib_accessor* a, char* v, size_t* len) { + int err = 0; if (a->cclass->unpack_double && a->cclass->unpack_double != &unpack_double) { double val = 0.0; size_t l = 1; - grib_unpack_double(a, &val, &l); + err = grib_unpack_double(a, &val, &l); + if (err) return err; snprintf(v, 64, "%g", val); *len = strlen(v); grib_context_log(a->context, GRIB_LOG_DEBUG, "Casting double %s to string", a->name); @@ -369,7 +371,8 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len) if (a->cclass->unpack_long && a->cclass->unpack_long != &unpack_long) { long val = 0; size_t l = 1; - grib_unpack_long(a, &val, &l); + err = grib_unpack_long(a, &val, &l); + if (err) return err; snprintf(v, 64, "%ld", val); *len = strlen(v); grib_context_log(a->context, GRIB_LOG_DEBUG, "Casting long %s to string\n", a->name); @@ -388,7 +391,7 @@ static int unpack_string_array(grib_accessor* a, char** v, size_t* len) if (err) return err; v[0] = (char*)grib_context_malloc_clear(a->context, length); - grib_unpack_string(a, v[0], &length); + grib_unpack_string(a, v[0], &length); // TODO(masn): check return value *len = 1; return GRIB_SUCCESS; @@ -466,7 +469,10 @@ static int pack_long(grib_accessor* a, const long* v, size_t* len) grib_context_free(c, val); return ret; } - grib_context_log(c, GRIB_LOG_ERROR, "Should not grib_pack %s as long", a->name); + grib_context_log(c, GRIB_LOG_ERROR, "Should not pack '%s' as an integer", a->name); + if (a->cclass->pack_string && a->cclass->pack_string != &pack_string) { + grib_context_log(c, GRIB_LOG_ERROR, "Try packing as a string"); + } return GRIB_NOT_IMPLEMENTED; } @@ -504,7 +510,10 @@ static int pack_double(grib_accessor* a, const double* v, size_t* len) if (do_pack_as_long) { return pack_double_array_as_long(a, v, len); } - grib_context_log(c, GRIB_LOG_ERROR, "Should not grib_pack %s as double", a->name); + grib_context_log(c, GRIB_LOG_ERROR, "Should not pack '%s' as a double", a->name); + if (a->cclass->pack_string && a->cclass->pack_string != &pack_string) { + grib_context_log(c, GRIB_LOG_ERROR, "Try packing as a string"); + } return GRIB_NOT_IMPLEMENTED; } diff --git a/src/grib_accessor_class_group.cc b/src/grib_accessor_class_group.cc index 7997f3989..32f337d3b 100644 --- a/src/grib_accessor_class_group.cc +++ b/src/grib_accessor_class_group.cc @@ -7,9 +7,6 @@ * 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. */ -/*********************************************************** - * Enrico Fucile - ***********************************************************/ #include "grib_api_internal.h" /* @@ -18,11 +15,11 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_gen - IMPLEMENTS = unpack_string;pack_string - IMPLEMENTS = unpack_long;pack_long - IMPLEMENTS = unpack_double;pack_double + IMPLEMENTS = unpack_string + IMPLEMENTS = unpack_long + IMPLEMENTS = unpack_double IMPLEMENTS = init;dump;string_length - IMPLEMENTS = post_init;value_count + IMPLEMENTS = value_count IMPLEMENTS = next_offset IMPLEMENTS = get_native_type IMPLEMENTS = compare @@ -42,9 +39,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ static int get_native_type(grib_accessor*); -static int pack_double(grib_accessor*, const double* val, size_t* len); -static int pack_long(grib_accessor*, const long* val, size_t* len); -static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); @@ -53,7 +47,6 @@ static long next_offset(grib_accessor*); static int value_count(grib_accessor*, long*); static void dump(grib_accessor*, grib_dumper*); static void init(grib_accessor*, const long, grib_arguments*); -static void post_init(grib_accessor*); static int compare(grib_accessor*, grib_accessor*); typedef struct grib_accessor_group @@ -73,7 +66,7 @@ static grib_accessor_class _grib_accessor_class_group = { 0, /* inited */ 0, /* init_class */ &init, /* init */ - &post_init, /* post_init */ + 0, /* post_init */ 0, /* destroy */ &dump, /* dump */ &next_offset, /* next_offset */ @@ -85,13 +78,13 @@ static grib_accessor_class _grib_accessor_class_group = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ &unpack_long, /* unpack_long */ - &pack_double, /* pack_double */ + 0, /* pack_double */ 0, /* pack_float */ &unpack_double, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ @@ -156,10 +149,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg) a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; } -static void post_init(grib_accessor* a) -{ -} - static int value_count(grib_accessor* a, long* count) { *count = 1; @@ -199,23 +188,6 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len) return GRIB_SUCCESS; } -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_long(grib_accessor* a, const long* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_double(grib_accessor* a, const double* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); - return GRIB_NOT_IMPLEMENTED; -} - static int unpack_long(grib_accessor* a, long* v, size_t* len) { char val[1024] = {0,}; diff --git a/src/grib_accessor_class_long.cc b/src/grib_accessor_class_long.cc index 6caec017a..c939189a5 100644 --- a/src/grib_accessor_class_long.cc +++ b/src/grib_accessor_class_long.cc @@ -257,7 +257,7 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) // return pack_missing(a); //} - if (string_to_long(val, &v) != GRIB_SUCCESS) { + if (string_to_long(val, &v, 1) != GRIB_SUCCESS) { grib_context_log(a->context, GRIB_LOG_ERROR, "Trying to pack \"%s\" as long. String cannot be converted to an integer", val); return GRIB_WRONG_TYPE; diff --git a/src/grib_accessor_class_lookup.cc b/src/grib_accessor_class_lookup.cc index b7c9ce059..5fc2880a8 100644 --- a/src/grib_accessor_class_lookup.cc +++ b/src/grib_accessor_class_lookup.cc @@ -193,10 +193,10 @@ static int unpack_string(grib_accessor* a, char* v, size_t* len) static int unpack_long(grib_accessor* a, long* val, size_t* len) { - grib_accessor_lookup* al = (grib_accessor_lookup*)a; + grib_accessor_lookup* self = (grib_accessor_lookup*)a; grib_handle* h = grib_handle_of_accessor(a); - long pos = (a->offset + al->loffset) * 8; + long pos = (a->offset + self->loffset) * 8; if (len[0] < 1) { grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1); @@ -210,7 +210,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) return h->loader->lookup_long(h->context, h->loader, a->name, val); } - val[0] = grib_decode_unsigned_long(h->buffer->data, &pos, al->llength * 8); + val[0] = grib_decode_unsigned_long(h->buffer->data, &pos, self->llength * 8); len[0] = 1; /*printf("###########lookup unpack_long: %s %ld %ld\n",a->name, pos/8, val[0]);*/ @@ -225,14 +225,14 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) static long byte_count(grib_accessor* a) { - grib_accessor_lookup* al = (grib_accessor_lookup*)a; - return al->llength; + grib_accessor_lookup* self = (grib_accessor_lookup*)a; + return self->llength; } static long byte_offset(grib_accessor* a) { - grib_accessor_lookup* al = (grib_accessor_lookup*)a; - return al->loffset; + grib_accessor_lookup* self = (grib_accessor_lookup*)a; + return self->loffset; } static int notify_change(grib_accessor* self, grib_accessor* changed) diff --git a/src/grib_accessor_class_message.cc b/src/grib_accessor_class_message.cc index 3a9ecc910..6a87d00e5 100644 --- a/src/grib_accessor_class_message.cc +++ b/src/grib_accessor_class_message.cc @@ -134,7 +134,8 @@ static void resize(grib_accessor* a, size_t new_size) grib_buffer_replace(a, (const unsigned char*)zero, new_size, 1, 0); grib_context_free(a->context, zero); - grib_context_log(a->context, GRIB_LOG_DEBUG, "resize: grib_accessor_class_message.c %ld %ld %s %s\n", (long)new_size, (long)a->length, a->cclass->name, a->name); + grib_context_log(a->context, GRIB_LOG_DEBUG, "resize: grib_accessor_class_message %ld %ld %s %s", + (long)new_size, (long)a->length, a->cclass->name, a->name); Assert(new_size == a->length); } diff --git a/src/grib_accessor_class_nearest.cc b/src/grib_accessor_class_nearest.cc index 0620b5395..b1a3138d3 100644 --- a/src/grib_accessor_class_nearest.cc +++ b/src/grib_accessor_class_nearest.cc @@ -122,7 +122,7 @@ grib_nearest* grib_nearest_new(const grib_handle* ch, int* error) if (!a) return NULL; - n = grib_nearest_factory(h, na->args); + n = grib_nearest_factory(h, na->args, error); if (n) *error = GRIB_SUCCESS; diff --git a/src/grib_accessor_class_non_alpha.cc b/src/grib_accessor_class_non_alpha.cc index 3b5badd23..e0f52f4d9 100644 --- a/src/grib_accessor_class_non_alpha.cc +++ b/src/grib_accessor_class_non_alpha.cc @@ -7,9 +7,6 @@ * 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. */ -/*********************************************************** - * Enrico Fucile - ***********************************************************/ #include "grib_api_internal.h" /* @@ -181,13 +178,13 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) static int pack_long(grib_accessor* a, const long* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as an integer", a->name); return GRIB_NOT_IMPLEMENTED; } static int pack_double(grib_accessor* a, const double* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as a double", a->name); return GRIB_NOT_IMPLEMENTED; } diff --git a/src/grib_accessor_class_number_of_points_gaussian.cc b/src/grib_accessor_class_number_of_points_gaussian.cc index 41d8971cb..5d952b937 100644 --- a/src/grib_accessor_class_number_of_points_gaussian.cc +++ b/src/grib_accessor_class_number_of_points_gaussian.cc @@ -250,7 +250,7 @@ static int unpack_long_new(grib_accessor* a, long* val, size_t* len) long row_count; long ilon_first = 0, ilon_last = 0; double angular_precision = 1.0 / 1000000.0; - long editionNumber = 0; + long angleSubdivisions = 0; grib_handle* h = grib_handle_of_accessor(a); grib_accessor_number_of_points_gaussian* self = (grib_accessor_number_of_points_gaussian*)a; @@ -268,9 +268,9 @@ static int unpack_long_new(grib_accessor* a, long* val, size_t* len) if (nj == 0) return GRIB_GEOCALCULUS_PROBLEM; - if (grib_get_long(h, "editionNumber", &editionNumber) == GRIB_SUCCESS) { - if (editionNumber == 1) - angular_precision = 1.0 / 1000; + if (grib_get_long(h, "angleSubdivisions", &angleSubdivisions) == GRIB_SUCCESS) { + Assert(angleSubdivisions > 0); + angular_precision = 1.0 / angleSubdivisions; } if (plpresent) { @@ -361,7 +361,7 @@ static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* long row_count; long ilon_first = 0, ilon_last = 0; double angular_precision = 1.0 / 1000000.0; - long editionNumber = 0; + long angleSubdivisions = 0; grib_handle* h = grib_handle_of_accessor(a); size_t numDataValues = 0; @@ -380,9 +380,9 @@ static int unpack_long_with_legacy_support(grib_accessor* a, long* val, size_t* if (nj == 0) return GRIB_GEOCALCULUS_PROBLEM; - if (grib_get_long(h, "editionNumber", &editionNumber) == GRIB_SUCCESS) { - if (editionNumber == 1) - angular_precision = 1.0 / 1000; + if (grib_get_long(h, "angleSubdivisions", &angleSubdivisions) == GRIB_SUCCESS) { + Assert(angleSubdivisions > 0); + angular_precision = 1.0 / angleSubdivisions; } if (plpresent) { diff --git a/src/grib_accessor_class_packing_type.cc b/src/grib_accessor_class_packing_type.cc new file mode 100644 index 000000000..a9a4a2deb --- /dev/null +++ b/src/grib_accessor_class_packing_type.cc @@ -0,0 +1,167 @@ +/* + * (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 "grib_api_internal.h" +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = accessor + SUPER = grib_accessor_class_gen + IMPLEMENTS = unpack_string;pack_string + IMPLEMENTS = string_length + IMPLEMENTS = get_native_type + IMPLEMENTS = init + MEMBERS = const char* values + MEMBERS = const char* packing_type + END_CLASS_DEF + */ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "accessor.class" and rerun ./make_class.pl + +*/ + +static int get_native_type(grib_accessor*); +static int pack_string(grib_accessor*, const char*, size_t* len); +static int unpack_string(grib_accessor*, char*, size_t* len); +static size_t string_length(grib_accessor*); +static void init(grib_accessor*, const long, grib_arguments*); + +typedef struct grib_accessor_packing_type +{ + grib_accessor att; + /* Members defined in gen */ + /* Members defined in packing_type */ + const char* values; + const char* packing_type; +} grib_accessor_packing_type; + +extern grib_accessor_class* grib_accessor_class_gen; + +static grib_accessor_class _grib_accessor_class_packing_type = { + &grib_accessor_class_gen, /* super */ + "packing_type", /* name */ + sizeof(grib_accessor_packing_type), /* size */ + 0, /* inited */ + 0, /* init_class */ + &init, /* init */ + 0, /* post_init */ + 0, /* destroy */ + 0, /* dump */ + 0, /* next_offset */ + &string_length, /* get length of string */ + 0, /* get number of values */ + 0, /* get number of bytes */ + 0, /* get offset to bytes */ + &get_native_type, /* get native type */ + 0, /* get sub_section */ + 0, /* pack_missing */ + 0, /* is_missing */ + 0, /* pack_long */ + 0, /* unpack_long */ + 0, /* pack_double */ + 0, /* pack_float */ + 0, /* unpack_double */ + 0, /* unpack_float */ + &pack_string, /* pack_string */ + &unpack_string, /* unpack_string */ + 0, /* pack_string_array */ + 0, /* unpack_string_array */ + 0, /* pack_bytes */ + 0, /* unpack_bytes */ + 0, /* pack_expression */ + 0, /* notify_change */ + 0, /* update_size */ + 0, /* preferred_size */ + 0, /* resize */ + 0, /* nearest_smaller_value */ + 0, /* next accessor */ + 0, /* compare vs. another accessor */ + 0, /* unpack only ith value (double) */ + 0, /* unpack only ith value (float) */ + 0, /* unpack a given set of elements (double) */ + 0, /* unpack a given set of elements (float) */ + 0, /* unpack a subarray */ + 0, /* clear */ + 0, /* clone accessor */ +}; + + +grib_accessor_class* grib_accessor_class_packing_type = &_grib_accessor_class_packing_type; + +/* END_CLASS_IMP */ + +static void init(grib_accessor* a, const long l, grib_arguments* args) +{ + int n = 0; + grib_accessor_packing_type* self = (grib_accessor_packing_type*)a; + self->values = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + self->packing_type = grib_arguments_get_name(grib_handle_of_accessor(a), args, n++); + a->flags |= GRIB_ACCESSOR_FLAG_FUNCTION; + a->length = 0; +} + +static size_t string_length(grib_accessor* a) +{ + return 1024; +} + +static int get_native_type(grib_accessor* a) +{ + return GRIB_TYPE_STRING; +} + +static int pack_string(grib_accessor*a, const char* sval, size_t* len) +{ + grib_accessor_packing_type* self = (grib_accessor_packing_type*)a; + grib_handle* h = grib_handle_of_accessor(a); + double* values = NULL; + grib_context* c = a->context; + size_t size = 0; + int err = 0; + + if ((err = grib_get_size(h, self->values, &size)) != GRIB_SUCCESS) + return err; + + values = (double*)grib_context_malloc(c, size * sizeof(double)); + if (!values) return GRIB_OUT_OF_MEMORY; + + if ((err = grib_get_double_array_internal(h, self->values, values, &size)) != GRIB_SUCCESS) { + grib_context_free(c, values); + return err; + } + + if ((err = grib_set_string_internal(h, self->packing_type, sval, len)) != GRIB_SUCCESS) { + grib_context_free(c, values); + return err; + } + + if ((err = grib_set_double_array_internal(h, self->values, values, size)) != GRIB_SUCCESS) { + grib_context_free(c, values); + return err; + } + + grib_context_free(c, values); + return GRIB_SUCCESS; +} + +static int unpack_string(grib_accessor* a, char* val, size_t* len) +{ + grib_accessor_packing_type* self = (grib_accessor_packing_type*)a; + grib_handle* h = grib_handle_of_accessor(a); + + return grib_get_string(h, self->packing_type, val, len); +} diff --git a/src/grib_accessor_class_smart_table.cc b/src/grib_accessor_class_smart_table.cc index f9fda189d..61b5d49e3 100644 --- a/src/grib_accessor_class_smart_table.cc +++ b/src/grib_accessor_class_smart_table.cc @@ -161,8 +161,7 @@ static void thread_init() } #endif -static int grib_load_smart_table(grib_context* c, const char* filename, - const char* recomposed_name, size_t size, grib_smart_table* t); +static int grib_load_smart_table(grib_context* c, const char* filename, const char* recomposed_name, size_t size, grib_smart_table* t); static void init(grib_accessor* a, const long len, grib_arguments* params) { @@ -185,8 +184,9 @@ static void init(grib_accessor* a, const long len, grib_arguments* params) self->tableCodes = 0; } -static grib_smart_table* load_table(grib_accessor_smart_table* self) +static grib_smart_table* load_table(grib_accessor* a) { + grib_accessor_smart_table* self = (grib_accessor_smart_table*)a; size_t size = 0; grib_handle* h = ((grib_accessor*)self)->parent->h; grib_context* c = h->context; @@ -416,7 +416,7 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len) return err; if (!self->table) - self->table = load_table(self); + self->table = load_table(a); table = self->table; if (table && (value >= 0) && (value < table->numberOfEntries) && table->entries[value].abbreviation) { @@ -457,7 +457,7 @@ static int get_table_codes(grib_accessor* a) table_size = (1 << self->widthOfCode); /* 2 ^ self->widthOfCode */ if (!self->table) - self->table = load_table(self); + self->table = load_table(a); err = grib_get_size(grib_handle_of_accessor(a), self->values, &size); if (err) { diff --git a/src/grib_accessor_class_sprintf.cc b/src/grib_accessor_class_sprintf.cc index fe4a6ccd4..106ce1e4d 100644 --- a/src/grib_accessor_class_sprintf.cc +++ b/src/grib_accessor_class_sprintf.cc @@ -15,7 +15,7 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_ascii - IMPLEMENTS = pack_string;unpack_string;value_count + IMPLEMENTS = unpack_string;value_count IMPLEMENTS = init;string_length MEMBERS= grib_arguments* args END_CLASS_DEF @@ -32,7 +32,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ -static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); static size_t string_length(grib_accessor*); static int value_count(grib_accessor*, long*); @@ -74,7 +73,7 @@ static grib_accessor_class _grib_accessor_class_sprintf = { 0, /* pack_float */ 0, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ @@ -109,11 +108,6 @@ static void init(grib_accessor* a, const long l, grib_arguments* c) a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY; } -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - return GRIB_NOT_IMPLEMENTED; -} - static int unpack_string(grib_accessor* a, char* val, size_t* len) { grib_accessor_sprintf* self = (grib_accessor_sprintf*)a; diff --git a/src/grib_accessor_class_suppressed.cc b/src/grib_accessor_class_suppressed.cc index 13a173f40..a95269c5d 100644 --- a/src/grib_accessor_class_suppressed.cc +++ b/src/grib_accessor_class_suppressed.cc @@ -16,9 +16,9 @@ CLASS = accessor SUPER = grib_accessor_class_long IMPLEMENTS = value_count;get_native_type - IMPLEMENTS = pack_string;unpack_string - IMPLEMENTS = pack_long;unpack_long - IMPLEMENTS = pack_double;unpack_double + IMPLEMENTS = unpack_string + IMPLEMENTS = unpack_long + IMPLEMENTS = unpack_double IMPLEMENTS = init MEMBERS= grib_arguments* args END_CLASS_DEF @@ -36,9 +36,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ static int get_native_type(grib_accessor*); -static int pack_double(grib_accessor*, const double* val, size_t* len); -static int pack_long(grib_accessor*, const long* val, size_t* len); -static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); @@ -75,13 +72,13 @@ static grib_accessor_class _grib_accessor_class_suppressed = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ &unpack_long, /* unpack_long */ - &pack_double, /* pack_double */ + 0, /* pack_double */ 0, /* pack_float */ &unpack_double, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ @@ -135,24 +132,6 @@ static void log_message(grib_accessor* a) } } -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - log_message(a); - return GRIB_NOT_FOUND; -} - -static int pack_long(grib_accessor* a, const long* val, size_t* len) -{ - log_message(a); - return GRIB_NOT_FOUND; -} - -static int pack_double(grib_accessor* a, const double* val, size_t* len) -{ - log_message(a); - return GRIB_NOT_FOUND; -} - static int unpack_string(grib_accessor* a, char* val, size_t* len) { log_message(a); diff --git a/src/grib_accessor_class_to_double.cc b/src/grib_accessor_class_to_double.cc index 3afbf5955..d0d4351c5 100644 --- a/src/grib_accessor_class_to_double.cc +++ b/src/grib_accessor_class_to_double.cc @@ -7,9 +7,6 @@ * 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. */ -/*********************************************************** - * Enrico Fucile - ***********************************************************/ #include "grib_api_internal.h" /* @@ -18,9 +15,9 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_gen - IMPLEMENTS = unpack_string;pack_string - IMPLEMENTS = unpack_long;pack_long - IMPLEMENTS = unpack_double;pack_double + IMPLEMENTS = unpack_string + IMPLEMENTS = unpack_long + IMPLEMENTS = unpack_double IMPLEMENTS = init;dump;string_length IMPLEMENTS = value_count IMPLEMENTS = next_offset @@ -45,9 +42,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ static int get_native_type(grib_accessor*); -static int pack_double(grib_accessor*, const double* val, size_t* len); -static int pack_long(grib_accessor*, const long* val, size_t* len); -static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); @@ -90,13 +84,13 @@ static grib_accessor_class _grib_accessor_class_to_double = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ &unpack_long, /* unpack_long */ - &pack_double, /* pack_double */ + 0, /* pack_double */ 0, /* pack_float */ &unpack_double, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ @@ -204,23 +198,6 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len) return err; } -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_long(grib_accessor* a, const long* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_double(grib_accessor* a, const double* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); - return GRIB_NOT_IMPLEMENTED; -} - static int unpack_long(grib_accessor* a, long* v, size_t* len) { grib_accessor_to_double* self = (grib_accessor_to_double*)a; diff --git a/src/grib_accessor_class_to_integer.cc b/src/grib_accessor_class_to_integer.cc index 7e930bf82..30fa00251 100644 --- a/src/grib_accessor_class_to_integer.cc +++ b/src/grib_accessor_class_to_integer.cc @@ -7,9 +7,6 @@ * 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. */ -/*********************************************************** - * Enrico Fucile - ***********************************************************/ #include "grib_api_internal.h" /* @@ -22,7 +19,7 @@ IMPLEMENTS = unpack_long;pack_long IMPLEMENTS = unpack_double;pack_double IMPLEMENTS = init;dump;string_length - IMPLEMENTS = post_init;value_count + IMPLEMENTS = value_count IMPLEMENTS = next_offset IMPLEMENTS = get_native_type IMPLEMENTS = compare @@ -55,7 +52,6 @@ static long next_offset(grib_accessor*); static int value_count(grib_accessor*, long*); static void dump(grib_accessor*, grib_dumper*); static void init(grib_accessor*, const long, grib_arguments*); -static void post_init(grib_accessor*); static int compare(grib_accessor*, grib_accessor*); typedef struct grib_accessor_to_integer @@ -77,7 +73,7 @@ static grib_accessor_class _grib_accessor_class_to_integer = { 0, /* inited */ 0, /* init_class */ &init, /* init */ - &post_init, /* post_init */ + 0, /* post_init */ 0, /* destroy */ &dump, /* dump */ &next_offset, /* next_offset */ @@ -135,11 +131,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg) a->length = 0; } -static void post_init(grib_accessor* a) -{ - return; -} - static int value_count(grib_accessor* a, long* count) { grib_accessor_to_integer* self = (grib_accessor_to_integer*)a; @@ -212,13 +203,13 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) static int pack_long(grib_accessor* a, const long* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as an integer", a->name); return GRIB_NOT_IMPLEMENTED; } static int pack_double(grib_accessor* a, const double* v, size_t* len) { - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); + grib_context_log(a->context, GRIB_LOG_ERROR, "Should not pack %s as a double", a->name); return GRIB_NOT_IMPLEMENTED; } diff --git a/src/grib_accessor_class_to_string.cc b/src/grib_accessor_class_to_string.cc index 3daf8ca8f..ce8bf4e74 100644 --- a/src/grib_accessor_class_to_string.cc +++ b/src/grib_accessor_class_to_string.cc @@ -7,9 +7,6 @@ * 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. */ -/*********************************************************** - * Enrico Fucile - ***********************************************************/ #include "grib_api_internal.h" /* @@ -18,11 +15,11 @@ START_CLASS_DEF CLASS = accessor SUPER = grib_accessor_class_gen - IMPLEMENTS = unpack_string;pack_string - IMPLEMENTS = unpack_long;pack_long - IMPLEMENTS = unpack_double;pack_double + IMPLEMENTS = unpack_string + IMPLEMENTS = unpack_long + IMPLEMENTS = unpack_double IMPLEMENTS = init;dump;string_length - IMPLEMENTS = post_init;value_count + IMPLEMENTS = value_count IMPLEMENTS = next_offset IMPLEMENTS = get_native_type IMPLEMENTS = compare @@ -44,9 +41,6 @@ or edit "accessor.class" and rerun ./make_class.pl */ static int get_native_type(grib_accessor*); -static int pack_double(grib_accessor*, const double* val, size_t* len); -static int pack_long(grib_accessor*, const long* val, size_t* len); -static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); @@ -55,7 +49,6 @@ static long next_offset(grib_accessor*); static int value_count(grib_accessor*, long*); static void dump(grib_accessor*, grib_dumper*); static void init(grib_accessor*, const long, grib_arguments*); -static void post_init(grib_accessor*); static int compare(grib_accessor*, grib_accessor*); typedef struct grib_accessor_to_string @@ -77,7 +70,7 @@ static grib_accessor_class _grib_accessor_class_to_string = { 0, /* inited */ 0, /* init_class */ &init, /* init */ - &post_init, /* post_init */ + 0, /* post_init */ 0, /* destroy */ &dump, /* dump */ &next_offset, /* next_offset */ @@ -89,13 +82,13 @@ static grib_accessor_class _grib_accessor_class_to_string = { 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ - &pack_long, /* pack_long */ + 0, /* pack_long */ &unpack_long, /* unpack_long */ - &pack_double, /* pack_double */ + 0, /* pack_double */ 0, /* pack_float */ &unpack_double, /* unpack_double */ 0, /* unpack_float */ - &pack_string, /* pack_string */ + 0, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ 0, /* unpack_string_array */ @@ -135,11 +128,6 @@ static void init(grib_accessor* a, const long len, grib_arguments* arg) a->length = 0; } -static void post_init(grib_accessor* a) -{ - return; -} - static int value_count(grib_accessor* a, long* count) { grib_accessor_to_string* self = (grib_accessor_to_string*)a; @@ -154,11 +142,11 @@ static int value_count(grib_accessor* a, long* count) static size_t string_length(grib_accessor* a) { grib_accessor_to_string* self = (grib_accessor_to_string*)a; - size_t size = 0; if (self->length) return self->length; + size_t size = 0; grib_get_string_length(grib_handle_of_accessor(a), self->key, &size); return size; } @@ -175,21 +163,21 @@ static int get_native_type(grib_accessor* a) static int unpack_string(grib_accessor* a, char* val, size_t* len) { - int err = 0; grib_accessor_to_string* self = (grib_accessor_to_string*)a; - char buff[512] = {0,}; - size_t length; - size_t size = 512; - length = string_length(a); + int err = 0; + char buff[512] = {0,}; + + size_t length = string_length(a); if (len[0] < length + 1) { grib_context_log(a->context, GRIB_LOG_ERROR, "unpack_string: Wrong size (%lu) for %s, it contains %ld values", - len[0], a->name, a->length + 1); + len[0], a->name, a->length + 1); len[0] = 0; return GRIB_ARRAY_TOO_SMALL; } + size_t size = sizeof(buff); err = grib_get_string(grib_handle_of_accessor(a), self->key, buff, &size); if (err) return err; @@ -205,23 +193,6 @@ static int unpack_string(grib_accessor* a, char* val, size_t* len) return GRIB_SUCCESS; } -static int pack_string(grib_accessor* a, const char* val, size_t* len) -{ - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_long(grib_accessor* a, const long* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as long", a->name); - return GRIB_NOT_IMPLEMENTED; -} - -static int pack_double(grib_accessor* a, const double* v, size_t* len) -{ - grib_context_log(a->context, GRIB_LOG_ERROR, " Should not pack %s as double", a->name); - return GRIB_NOT_IMPLEMENTED; -} - static int unpack_long(grib_accessor* a, long* v, size_t* len) { char val[1024] = {0,}; diff --git a/src/grib_accessor_class_transient.cc b/src/grib_accessor_class_transient.cc index 3e998adcb..c51886c20 100644 --- a/src/grib_accessor_class_transient.cc +++ b/src/grib_accessor_class_transient.cc @@ -37,6 +37,7 @@ typedef struct grib_accessor_transient /* Members defined in gen */ /* Members defined in variable */ double dval; + float fval; char* cval; char* cname; int type; diff --git a/src/grib_accessor_class_uint16.cc b/src/grib_accessor_class_uint16.cc index 8977e92be..e95105b32 100644 --- a/src/grib_accessor_class_uint16.cc +++ b/src/grib_accessor_class_uint16.cc @@ -18,6 +18,7 @@ SUPER = grib_accessor_class_gen IMPLEMENTS = unpack_long IMPLEMENTS = pack_long + IMPLEMENTS = get_native_type END_CLASS_DEF */ @@ -32,6 +33,7 @@ or edit "accessor.class" and rerun ./make_class.pl */ +static int get_native_type(grib_accessor*); static int pack_long(grib_accessor*, const long* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); @@ -59,7 +61,7 @@ static grib_accessor_class _grib_accessor_class_uint16 = { 0, /* get number of values */ 0, /* get number of bytes */ 0, /* get offset to bytes */ - 0, /* get native type */ + &get_native_type, /* get native type */ 0, /* get sub_section */ 0, /* pack_missing */ 0, /* is_missing */ @@ -104,7 +106,7 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) /*unsigned char* data = grib_handle_of_accessor(a)->buffer->data;*/ if (*len < 1) { - grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1); + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1); *len = 0; return GRIB_ARRAY_TOO_SMALL; } @@ -119,3 +121,8 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) { return GRIB_NOT_IMPLEMENTED; } + +static int get_native_type(grib_accessor* a) +{ + return GRIB_TYPE_LONG; +} diff --git a/src/grib_accessor_class_uint32.cc b/src/grib_accessor_class_uint32.cc index 60e113ae0..01889e79c 100644 --- a/src/grib_accessor_class_uint32.cc +++ b/src/grib_accessor_class_uint32.cc @@ -116,13 +116,11 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) return GRIB_NOT_IMPLEMENTED; } - static int pack_long(grib_accessor* a, const long* val, size_t* len) { return GRIB_NOT_IMPLEMENTED; } - static int get_native_type(grib_accessor* a) { return GRIB_TYPE_LONG; diff --git a/src/grib_accessor_class_uint64.cc b/src/grib_accessor_class_uint64.cc index 2ffe4fc14..1e8ef3a93 100644 --- a/src/grib_accessor_class_uint64.cc +++ b/src/grib_accessor_class_uint64.cc @@ -132,7 +132,6 @@ static int unpack_long(grib_accessor* a, long* val, size_t* len) return GRIB_SUCCESS; } - static int pack_long(grib_accessor* a, const long* val, size_t* len) { return GRIB_NOT_IMPLEMENTED; diff --git a/src/grib_accessor_class_unpack_bufr_values.cc b/src/grib_accessor_class_unpack_bufr_values.cc index 8dfc5e4f7..cac0cdfd7 100644 --- a/src/grib_accessor_class_unpack_bufr_values.cc +++ b/src/grib_accessor_class_unpack_bufr_values.cc @@ -137,6 +137,8 @@ static int unpack_string(grib_accessor* a, char* buffer, size_t* len) { grib_accessor_unpack_bufr_values* self = (grib_accessor_unpack_bufr_values*)a; grib_accessor* data = (grib_accessor*)self->data_accessor; + strcpy(buffer, "0"); + *len=1; return grib_unpack_double(data, 0, 0); } diff --git a/src/grib_accessor_class_variable.cc b/src/grib_accessor_class_variable.cc index 92d6fdd9c..745b12e14 100644 --- a/src/grib_accessor_class_variable.cc +++ b/src/grib_accessor_class_variable.cc @@ -17,11 +17,13 @@ CLASS = accessor SUPER = grib_accessor_class_gen IMPLEMENTS = unpack_double;pack_double + IMPLEMENTS = unpack_float; pack_float IMPLEMENTS = unpack_string;pack_string;string_length IMPLEMENTS = unpack_long;pack_long;destroy;byte_count IMPLEMENTS = init;dump;value_count;get_native_type IMPLEMENTS = compare; make_clone MEMBERS=double dval + MEMBERS=float fval MEMBERS=char* cval MEMBERS=char* cname MEMBERS=int type @@ -41,9 +43,11 @@ or edit "accessor.class" and rerun ./make_class.pl static int get_native_type(grib_accessor*); static int pack_double(grib_accessor*, const double* val, size_t* len); +static int pack_float(grib_accessor*, const float* val, size_t* len); static int pack_long(grib_accessor*, const long* val, size_t* len); static int pack_string(grib_accessor*, const char*, size_t* len); static int unpack_double(grib_accessor*, double* val, size_t* len); +static int unpack_float(grib_accessor*, float* val, size_t* len); static int unpack_long(grib_accessor*, long* val, size_t* len); static int unpack_string(grib_accessor*, char*, size_t* len); static size_t string_length(grib_accessor*); @@ -61,6 +65,7 @@ typedef struct grib_accessor_variable /* Members defined in gen */ /* Members defined in variable */ double dval; + float fval; char* cval; char* cname; int type; @@ -90,9 +95,9 @@ static grib_accessor_class _grib_accessor_class_variable = { &pack_long, /* pack_long */ &unpack_long, /* unpack_long */ &pack_double, /* pack_double */ - 0, /* pack_float */ + &pack_float, /* pack_float */ &unpack_double, /* unpack_double */ - 0, /* unpack_float */ + &unpack_float, /* unpack_float */ &pack_string, /* pack_string */ &unpack_string, /* unpack_string */ 0, /* pack_string_array */ @@ -197,7 +202,7 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) const double dval = *val; if (*len != 1) { - grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1); + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values", a->name, 1); *len = 1; return GRIB_ARRAY_TOO_SMALL; } @@ -211,6 +216,26 @@ static int pack_double(grib_accessor* a, const double* val, size_t* len) return GRIB_SUCCESS; } +static int pack_float(grib_accessor* a, const float* val, size_t* len) +{ + grib_accessor_variable* self = (grib_accessor_variable*)a; + const double fval = *val; + + if (*len != 1) { + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1); + *len = 1; + return GRIB_ARRAY_TOO_SMALL; + } + + self->fval = fval; + if (fval < (float)LONG_MIN || fval > (float)LONG_MAX) + self->type = GRIB_TYPE_DOUBLE; + else + self->type = ((long)fval == fval) ? GRIB_TYPE_LONG : GRIB_TYPE_DOUBLE; + + return GRIB_SUCCESS; +} + static int pack_long(grib_accessor* a, const long* val, size_t* len) { grib_accessor_variable* self = (grib_accessor_variable*)a; @@ -222,6 +247,7 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) } self->dval = *val; + self->fval = *val; self->type = GRIB_TYPE_LONG; return GRIB_SUCCESS; @@ -229,27 +255,42 @@ static int pack_long(grib_accessor* a, const long* val, size_t* len) static int unpack_double(grib_accessor* a, double* val, size_t* len) { - grib_accessor_variable* ac = (grib_accessor_variable*)a; + grib_accessor_variable* self = (grib_accessor_variable*)a; if (*len < 1) { - grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1); + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1); *len = 0; return GRIB_ARRAY_TOO_SMALL; } - *val = ac->dval; + *val = self->dval; *len = 1; return GRIB_SUCCESS; } + +static int unpack_float(grib_accessor* a, float* val, size_t* len) +{ + grib_accessor_variable* self = (grib_accessor_variable*)a; + + if (*len < 1) { + grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s, it contains %d values", a->name, 1); + *len = 0; + return GRIB_ARRAY_TOO_SMALL; + } + *val = self->fval; + *len = 1; + return GRIB_SUCCESS; +} + static int unpack_long(grib_accessor* a, long* val, size_t* len) { - grib_accessor_variable* ac = (grib_accessor_variable*)a; + grib_accessor_variable* self = (grib_accessor_variable*)a; if (*len < 1) { grib_context_log(a->context, GRIB_LOG_ERROR, "Wrong size for %s it contains %d values ", a->name, 1); *len = 0; return GRIB_ARRAY_TOO_SMALL; } - *val = (long)ac->dval; + *val = (long)self->dval; *len = 1; return GRIB_SUCCESS; } @@ -314,6 +355,7 @@ static int pack_string(grib_accessor* a, const char* val, size_t* len) grib_context_free(c, self->cval); self->cval = grib_context_strdup(c, val); self->dval = atof(val); + self->fval = atof(val); self->type = GRIB_TYPE_STRING; self->cname = NULL; return GRIB_SUCCESS; @@ -407,6 +449,7 @@ static grib_accessor* make_clone(grib_accessor* a, grib_section* s, int* err) } else { variableAccessor->dval = self->dval; + variableAccessor->fval = self->fval; } return the_clone; diff --git a/src/grib_accessor_classes_hash.cc b/src/grib_accessor_classes_hash.cc index a27a7a7a0..ef515c9e1 100644 --- a/src/grib_accessor_classes_hash.cc +++ b/src/grib_accessor_classes_hash.cc @@ -37,12 +37,12 @@ #line 6 "accessor_class_list.gperf" struct accessor_class_hash { char *name; grib_accessor_class **cclass;}; -#define TOTAL_KEYWORDS 218 +#define TOTAL_KEYWORDS 203 #define MIN_WORD_LENGTH 1 #define MAX_WORD_LENGTH 44 #define MIN_HASH_VALUE 1 -#define MAX_HASH_VALUE 679 -/* maximum key range = 679, duplicates = 0 */ +#define MAX_HASH_VALUE 506 +/* maximum key range = 506, duplicates = 0 */ #ifdef __GNUC__ @@ -55,32 +55,32 @@ static unsigned int grib_accessor_classes_get_id (const char *str, size_t len) { static const unsigned short asso_values[] = { - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 0, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 0, 162, - 41, 6, 0, 680, 34, 680, 8, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 1, 680, 7, 129, 148, - 0, 0, 118, 14, 202, 23, 2, 5, 88, 254, - 0, 48, 39, 680, 86, 6, 3, 127, 212, 4, - 1, 24, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, - 680, 680, 680, 680, 680, 680 + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 0, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 1, 145, + 23, 6, 2, 507, 4, 507, 1, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 0, 507, 0, 69, 84, + 0, 0, 161, 24, 187, 1, 8, 9, 87, 102, + 13, 51, 6, 507, 118, 1, 40, 59, 171, 0, + 4, 6, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, + 507, 507, 507, 507, 507, 507 }; unsigned int hval = len; @@ -116,577 +116,509 @@ static const struct accessor_class_hash classes[] = {""}, #line 9 "accessor_class_list.gperf" {" "}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 155 "accessor_class_list.gperf" - {"nearest", &grib_accessor_class_nearest}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 117 "accessor_class_list.gperf" - {"gen", &grib_accessor_class_gen}, - {""}, {""}, -#line 118 "accessor_class_list.gperf" - {"getenv", &grib_accessor_class_getenv}, -#line 84 "accessor_class_list.gperf" - {"expanded_descriptors", &grib_accessor_class_expanded_descriptors}, - {""}, {""}, {""}, {""}, {""}, -#line 133 "accessor_class_list.gperf" - {"int8", &grib_accessor_class_int8}, -#line 131 "accessor_class_list.gperf" - {"int64", &grib_accessor_class_int64}, -#line 72 "accessor_class_list.gperf" - {"data_secondary_bitmap", &grib_accessor_class_data_secondary_bitmap}, -#line 202 "accessor_class_list.gperf" - {"time", &grib_accessor_class_time}, -#line 69 "accessor_class_list.gperf" - {"data_png_packing", &grib_accessor_class_data_png_packing}, - {""}, -#line 190 "accessor_class_list.gperf" + {""}, {""}, {""}, {""}, +#line 177 "accessor_class_list.gperf" {"size", &grib_accessor_class_size}, -#line 180 "accessor_class_list.gperf" - {"second_order_bits_per_value", &grib_accessor_class_second_order_bits_per_value}, -#line 187 "accessor_class_list.gperf" +#line 12 "accessor_class_list.gperf" + {"ascii", &grib_accessor_class_ascii}, +#line 174 "accessor_class_list.gperf" {"signed", &grib_accessor_class_signed}, -#line 181 "accessor_class_list.gperf" - {"section", &grib_accessor_class_section}, -#line 203 "accessor_class_list.gperf" - {"times", &grib_accessor_class_times}, -#line 70 "accessor_class_list.gperf" - {"data_raw_packing", &grib_accessor_class_data_raw_packing}, -#line 116 "accessor_class_list.gperf" - {"gds_not_present_bitmap", &grib_accessor_class_gds_not_present_bitmap}, +#line 154 "accessor_class_list.gperf" + {"pad", &grib_accessor_class_pad}, +#line 180 "accessor_class_list.gperf" + {"spd", &grib_accessor_class_spd}, {""}, -#line 13 "accessor_class_list.gperf" - {"ascii", &grib_accessor_class_ascii}, +#line 75 "accessor_class_list.gperf" + {"dirty", &grib_accessor_class_dirty}, {""}, -#line 182 "accessor_class_list.gperf" - {"section_length", &grib_accessor_class_section_length}, -#line 183 "accessor_class_list.gperf" - {"section_padding", &grib_accessor_class_section_padding}, -#line 196 "accessor_class_list.gperf" - {"statistics", &grib_accessor_class_statistics}, -#line 199 "accessor_class_list.gperf" - {"step_in_units", &grib_accessor_class_step_in_units}, -#line 188 "accessor_class_list.gperf" +#line 175 "accessor_class_list.gperf" {"signed_bits", &grib_accessor_class_signed_bits}, -#line 193 "accessor_class_list.gperf" - {"spd", &grib_accessor_class_spd}, -#line 167 "accessor_class_list.gperf" - {"pad", &grib_accessor_class_pad}, -#line 76 "accessor_class_list.gperf" + {""}, +#line 66 "accessor_class_list.gperf" + {"data_raw_packing", &grib_accessor_class_data_raw_packing}, + {""}, {""}, {""}, +#line 72 "accessor_class_list.gperf" {"data_simple_packing", &grib_accessor_class_data_simple_packing}, +#line 68 "accessor_class_list.gperf" + {"data_secondary_bitmap", &grib_accessor_class_data_secondary_bitmap}, +#line 168 "accessor_class_list.gperf" + {"section", &grib_accessor_class_section}, +#line 43 "accessor_class_list.gperf" + {"data_apply_bitmap", &grib_accessor_class_data_apply_bitmap}, {""}, -#line 79 "accessor_class_list.gperf" - {"dirty", &grib_accessor_class_dirty}, - {""}, {""}, -#line 197 "accessor_class_list.gperf" - {"statistics_spectral", &grib_accessor_class_statistics_spectral}, -#line 78 "accessor_class_list.gperf" +#line 74 "accessor_class_list.gperf" {"dictionary", &grib_accessor_class_dictionary}, {""}, -#line 115 "accessor_class_list.gperf" - {"gds_is_present", &grib_accessor_class_gds_is_present}, - {""}, #line 112 "accessor_class_list.gperf" - {"g2lon", &grib_accessor_class_g2lon}, -#line 205 "accessor_class_list.gperf" - {"to_integer", &grib_accessor_class_to_integer}, -#line 127 "accessor_class_list.gperf" - {"int16", &grib_accessor_class_int16}, - {""}, -#line 107 "accessor_class_list.gperf" - {"g2date", &grib_accessor_class_g2date}, -#line 46 "accessor_class_list.gperf" - {"data_apply_bitmap", &grib_accessor_class_data_apply_bitmap}, - {""}, -#line 184 "accessor_class_list.gperf" - {"section_pointer", &grib_accessor_class_section_pointer}, -#line 68 "accessor_class_list.gperf" + {"gen", &grib_accessor_class_gen}, +#line 64 "accessor_class_list.gperf" {"data_jpeg2000_packing", &grib_accessor_class_data_jpeg2000_packing}, -#line 129 "accessor_class_list.gperf" - {"int32", &grib_accessor_class_int32}, -#line 61 "accessor_class_list.gperf" - {"data_g22order_packing", &grib_accessor_class_data_g22order_packing}, -#line 108 "accessor_class_list.gperf" - {"g2end_step", &grib_accessor_class_g2end_step}, -#line 49 "accessor_class_list.gperf" - {"data_apply_gdsnotpresent", &grib_accessor_class_data_apply_gdsnotpresent}, -#line 105 "accessor_class_list.gperf" - {"g2bitmap", &grib_accessor_class_g2bitmap}, -#line 47 "accessor_class_list.gperf" +#line 65 "accessor_class_list.gperf" + {"data_png_packing", &grib_accessor_class_data_png_packing}, +#line 170 "accessor_class_list.gperf" + {"section_padding", &grib_accessor_class_section_padding}, +#line 171 "accessor_class_list.gperf" + {"section_pointer", &grib_accessor_class_section_pointer}, +#line 44 "accessor_class_list.gperf" {"data_apply_boustrophedonic", &grib_accessor_class_data_apply_boustrophedonic}, - {""}, -#line 51 "accessor_class_list.gperf" - {"data_complex_packing", &grib_accessor_class_data_complex_packing}, {""}, {""}, {""}, {""}, -#line 48 "accessor_class_list.gperf" +#line 80 "accessor_class_list.gperf" + {"expanded_descriptors", &grib_accessor_class_expanded_descriptors}, +#line 155 "accessor_class_list.gperf" + {"padding", &grib_accessor_class_padding}, +#line 45 "accessor_class_list.gperf" {"data_apply_boustrophedonic_bitmap", &grib_accessor_class_data_apply_boustrophedonic_bitmap}, +#line 110 "accessor_class_list.gperf" + {"gds_is_present", &grib_accessor_class_gds_is_present}, +#line 167 "accessor_class_list.gperf" + {"second_order_bits_per_value", &grib_accessor_class_second_order_bits_per_value}, +#line 169 "accessor_class_list.gperf" + {"section_length", &grib_accessor_class_section_length}, #line 113 "accessor_class_list.gperf" - {"g2step_range", &grib_accessor_class_g2step_range}, - {""}, -#line 109 "accessor_class_list.gperf" - {"g2grid", &grib_accessor_class_g2grid}, - {""}, -#line 206 "accessor_class_list.gperf" - {"to_string", &grib_accessor_class_to_string}, - {""}, {""}, -#line 134 "accessor_class_list.gperf" - {"iterator", &grib_accessor_class_iterator}, -#line 168 "accessor_class_list.gperf" - {"padding", &grib_accessor_class_padding}, - {""}, {""}, -#line 209 "accessor_class_list.gperf" - {"trim", &grib_accessor_class_trim}, + {"getenv", &grib_accessor_class_getenv}, +#line 57 "accessor_class_list.gperf" + {"data_g22order_packing", &grib_accessor_class_data_g22order_packing}, +#line 189 "accessor_class_list.gperf" + {"time", &grib_accessor_class_time}, {""}, -#line 65 "accessor_class_list.gperf" +#line 61 "accessor_class_list.gperf" {"data_g2shsimple_packing", &grib_accessor_class_data_g2shsimple_packing}, -#line 174 "accessor_class_list.gperf" - {"raw", &grib_accessor_class_raw}, - {""}, -#line 82 "accessor_class_list.gperf" - {"element", &grib_accessor_class_element}, -#line 169 "accessor_class_list.gperf" - {"padto", &grib_accessor_class_padto}, -#line 103 "accessor_class_list.gperf" - {"g2_eps", &grib_accessor_class_g2_eps}, - {""}, {""}, -#line 156 "accessor_class_list.gperf" - {"non_alpha", &grib_accessor_class_non_alpha}, -#line 207 "accessor_class_list.gperf" - {"transient", &grib_accessor_class_transient}, -#line 14 "accessor_class_list.gperf" - {"assert", &grib_accessor_class_assert}, {""}, -#line 140 "accessor_class_list.gperf" - {"latitudes", &grib_accessor_class_latitudes}, - {""}, -#line 66 "accessor_class_list.gperf" +#line 153 "accessor_class_list.gperf" + {"packing_type", &grib_accessor_class_packing_type}, +#line 62 "accessor_class_list.gperf" {"data_g2simple_packing", &grib_accessor_class_data_g2simple_packing}, -#line 63 "accessor_class_list.gperf" +#line 59 "accessor_class_list.gperf" {"data_g2complex_packing", &grib_accessor_class_data_g2complex_packing}, -#line 208 "accessor_class_list.gperf" - {"transient_darray", &grib_accessor_class_transient_darray}, - {""}, -#line 101 "accessor_class_list.gperf" - {"g2_aerosol", &grib_accessor_class_g2_aerosol}, -#line 110 "accessor_class_list.gperf" - {"g2latlon", &grib_accessor_class_g2latlon}, - {""}, {""}, {""}, {""}, {""}, -#line 64 "accessor_class_list.gperf" - {"data_g2secondary_bitmap", &grib_accessor_class_data_g2secondary_bitmap}, -#line 62 "accessor_class_list.gperf" - {"data_g2bifourier_packing", &grib_accessor_class_data_g2bifourier_packing}, -#line 12 "accessor_class_list.gperf" - {"array", &grib_accessor_class_array}, - {""}, {""}, {""}, {""}, -#line 175 "accessor_class_list.gperf" - {"rdbtime_guess_date", &grib_accessor_class_rdbtime_guess_date}, -#line 67 "accessor_class_list.gperf" - {"data_g2simple_packing_with_preprocessing", &grib_accessor_class_data_g2simple_packing_with_preprocessing}, {""}, {""}, -#line 119 "accessor_class_list.gperf" - {"global_gaussian", &grib_accessor_class_global_gaussian}, - {""}, -#line 186 "accessor_class_list.gperf" - {"sexagesimal2decimal", &grib_accessor_class_sexagesimal2decimal}, -#line 139 "accessor_class_list.gperf" - {"laplacian", &grib_accessor_class_laplacian}, +#line 104 "accessor_class_list.gperf" + {"g2grid", &grib_accessor_class_g2grid}, + {""}, {""}, {""}, +#line 103 "accessor_class_list.gperf" + {"g2end_step", &grib_accessor_class_g2end_step}, +#line 98 "accessor_class_list.gperf" + {"g2_eps", &grib_accessor_class_g2_eps}, +#line 141 "accessor_class_list.gperf" + {"nearest", &grib_accessor_class_nearest}, {""}, -#line 200 "accessor_class_list.gperf" +#line 156 "accessor_class_list.gperf" + {"padto", &grib_accessor_class_padto}, +#line 187 "accessor_class_list.gperf" {"sum", &grib_accessor_class_sum}, {""}, -#line 114 "accessor_class_list.gperf" - {"gaussian_grid_name", &grib_accessor_class_gaussian_grid_name}, -#line 177 "accessor_class_list.gperf" - {"round", &grib_accessor_class_round}, -#line 145 "accessor_class_list.gperf" - {"long", &grib_accessor_class_long}, - {""}, -#line 81 "accessor_class_list.gperf" - {"double", &grib_accessor_class_double}, -#line 189 "accessor_class_list.gperf" - {"simple_packing_error", &grib_accessor_class_simple_packing_error}, -#line 120 "accessor_class_list.gperf" - {"group", &grib_accessor_class_group}, +#line 107 "accessor_class_list.gperf" + {"g2lon", &grib_accessor_class_g2lon}, +#line 201 "accessor_class_list.gperf" + {"uint8", &grib_accessor_class_uint8}, {""}, -#line 172 "accessor_class_list.gperf" - {"position", &grib_accessor_class_position}, -#line 136 "accessor_class_list.gperf" +#line 186 "accessor_class_list.gperf" + {"step_in_units", &grib_accessor_class_step_in_units}, +#line 63 "accessor_class_list.gperf" + {"data_g2simple_packing_with_preprocessing", &grib_accessor_class_data_g2simple_packing_with_preprocessing}, +#line 199 "accessor_class_list.gperf" + {"uint64", &grib_accessor_class_uint64}, +#line 47 "accessor_class_list.gperf" + {"data_complex_packing", &grib_accessor_class_data_complex_packing}, +#line 197 "accessor_class_list.gperf" + {"uint32", &grib_accessor_class_uint32}, +#line 13 "accessor_class_list.gperf" + {"bit", &grib_accessor_class_bit}, +#line 15 "accessor_class_list.gperf" + {"bits", &grib_accessor_class_bits}, +#line 48 "accessor_class_list.gperf" + {"data_dummy_field", &grib_accessor_class_data_dummy_field}, +#line 14 "accessor_class_list.gperf" + {"bitmap", &grib_accessor_class_bitmap}, +#line 124 "accessor_class_list.gperf" {"julian_day", &grib_accessor_class_julian_day}, -#line 135 "accessor_class_list.gperf" +#line 123 "accessor_class_list.gperf" {"julian_date", &grib_accessor_class_julian_date}, -#line 219 "accessor_class_list.gperf" - {"unsigned", &grib_accessor_class_unsigned}, - {""}, {""}, -#line 52 "accessor_class_list.gperf" - {"data_dummy_field", &grib_accessor_class_data_dummy_field}, +#line 142 "accessor_class_list.gperf" + {"non_alpha", &grib_accessor_class_non_alpha}, {""}, -#line 173 "accessor_class_list.gperf" - {"proj_string", &grib_accessor_class_proj_string}, -#line 15 "accessor_class_list.gperf" - {"bit", &grib_accessor_class_bit}, -#line 17 "accessor_class_list.gperf" - {"bits", &grib_accessor_class_bits}, -#line 198 "accessor_class_list.gperf" - {"step_human_readable", &grib_accessor_class_step_human_readable}, -#line 71 "accessor_class_list.gperf" - {"data_run_length_packing", &grib_accessor_class_data_run_length_packing}, -#line 178 "accessor_class_list.gperf" - {"scale", &grib_accessor_class_scale}, -#line 194 "accessor_class_list.gperf" - {"spectral_truncation", &grib_accessor_class_spectral_truncation}, -#line 45 "accessor_class_list.gperf" - {"data_2order_packing", &grib_accessor_class_data_2order_packing}, -#line 212 "accessor_class_list.gperf" - {"uint32", &grib_accessor_class_uint32}, -#line 216 "accessor_class_list.gperf" - {"uint8", &grib_accessor_class_uint8}, -#line 31 "accessor_class_list.gperf" +#line 29 "accessor_class_list.gperf" {"bytes", &grib_accessor_class_bytes}, +#line 67 "accessor_class_list.gperf" + {"data_run_length_packing", &grib_accessor_class_data_run_length_packing}, +#line 108 "accessor_class_list.gperf" + {"g2step_range", &grib_accessor_class_g2step_range}, #line 16 "accessor_class_list.gperf" - {"bitmap", &grib_accessor_class_bitmap}, - {""}, -#line 106 "accessor_class_list.gperf" - {"g2bitmap_present", &grib_accessor_class_g2bitmap_present}, - {""}, {""}, -#line 195 "accessor_class_list.gperf" - {"sprintf", &grib_accessor_class_sprintf}, - {""}, {""}, {""}, -#line 18 "accessor_class_list.gperf" {"bits_per_value", &grib_accessor_class_bits_per_value}, -#line 50 "accessor_class_list.gperf" - {"data_ccsds_packing", &grib_accessor_class_data_ccsds_packing}, - {""}, -#line 220 "accessor_class_list.gperf" - {"unsigned_bits", &grib_accessor_class_unsigned_bits}, -#line 164 "accessor_class_list.gperf" - {"offset_file", &grib_accessor_class_offset_file}, - {""}, -#line 213 "accessor_class_list.gperf" - {"uint32_little_endian", &grib_accessor_class_uint32_little_endian}, + {""}, {""}, {""}, {""}, {""}, +#line 165 "accessor_class_list.gperf" + {"scale", &grib_accessor_class_scale}, {""}, -#line 89 "accessor_class_list.gperf" - {"g1area", &grib_accessor_class_g1area}, -#line 158 "accessor_class_list.gperf" +#line 183 "accessor_class_list.gperf" + {"statistics", &grib_accessor_class_statistics}, +#line 102 "accessor_class_list.gperf" + {"g2date", &grib_accessor_class_g2date}, +#line 144 "accessor_class_list.gperf" {"number_of_points", &grib_accessor_class_number_of_points}, +#line 100 "accessor_class_list.gperf" + {"g2bitmap", &grib_accessor_class_g2bitmap}, {""}, -#line 91 "accessor_class_list.gperf" - {"g1date", &grib_accessor_class_g1date}, - {""}, {""}, +#line 60 "accessor_class_list.gperf" + {"data_g2secondary_bitmap", &grib_accessor_class_data_g2secondary_bitmap}, +#line 58 "accessor_class_list.gperf" + {"data_g2bifourier_packing", &grib_accessor_class_data_g2bifourier_packing}, +#line 111 "accessor_class_list.gperf" + {"gds_not_present_bitmap", &grib_accessor_class_gds_not_present_bitmap}, +#line 122 "accessor_class_list.gperf" + {"iterator", &grib_accessor_class_iterator}, +#line 184 "accessor_class_list.gperf" + {"statistics_spectral", &grib_accessor_class_statistics_spectral}, +#line 46 "accessor_class_list.gperf" + {"data_ccsds_packing", &grib_accessor_class_data_ccsds_packing}, +#line 145 "accessor_class_list.gperf" + {"number_of_points_gaussian", &grib_accessor_class_number_of_points_gaussian}, +#line 204 "accessor_class_list.gperf" + {"unsigned", &grib_accessor_class_unsigned}, #line 138 "accessor_class_list.gperf" - {"label", &grib_accessor_class_label}, -#line 217 "accessor_class_list.gperf" + {"md5", &grib_accessor_class_md5}, + {""}, {""}, +#line 96 "accessor_class_list.gperf" + {"g2_aerosol", &grib_accessor_class_g2_aerosol}, +#line 139 "accessor_class_list.gperf" + {"message", &grib_accessor_class_message}, +#line 205 "accessor_class_list.gperf" + {"unsigned_bits", &grib_accessor_class_unsigned_bits}, +#line 172 "accessor_class_list.gperf" + {"select_step_template", &grib_accessor_class_select_step_template}, +#line 136 "accessor_class_list.gperf" + {"mars_param", &grib_accessor_class_mars_param}, +#line 202 "accessor_class_list.gperf" {"unexpanded_descriptors", &grib_accessor_class_unexpanded_descriptors}, -#line 214 "accessor_class_list.gperf" - {"uint64", &grib_accessor_class_uint64}, - {""}, -#line 159 "accessor_class_list.gperf" - {"number_of_points_gaussian", &grib_accessor_class_number_of_points_gaussian}, - {""}, -#line 90 "accessor_class_list.gperf" - {"g1bitmap", &grib_accessor_class_g1bitmap}, +#line 191 "accessor_class_list.gperf" + {"to_integer", &grib_accessor_class_to_integer}, + {""}, {""}, {""}, +#line 176 "accessor_class_list.gperf" + {"simple_packing_error", &grib_accessor_class_simple_packing_error}, +#line 185 "accessor_class_list.gperf" + {"step_human_readable", &grib_accessor_class_step_human_readable}, +#line 140 "accessor_class_list.gperf" + {"message_copy", &grib_accessor_class_message_copy}, +#line 161 "accessor_class_list.gperf" + {"raw", &grib_accessor_class_raw}, {""}, {""}, -#line 88 "accessor_class_list.gperf" - {"g1_section4_length", &grib_accessor_class_g1_section4_length}, -#line 125 "accessor_class_list.gperf" - {"ieeefloat", &grib_accessor_class_ieeefloat}, +#line 200 "accessor_class_list.gperf" + {"uint64_little_endian", &grib_accessor_class_uint64_little_endian}, {""}, -#line 87 "accessor_class_list.gperf" - {"g1_message_length", &grib_accessor_class_g1_message_length}, - {""}, {""}, -#line 99 "accessor_class_list.gperf" - {"g1step_range", &grib_accessor_class_g1step_range}, +#line 198 "accessor_class_list.gperf" + {"uint32_little_endian", &grib_accessor_class_uint32_little_endian}, +#line 114 "accessor_class_list.gperf" + {"global_gaussian", &grib_accessor_class_global_gaussian}, {""}, {""}, -#line 40 "accessor_class_list.gperf" - {"concept", &grib_accessor_class_concept}, -#line 41 "accessor_class_list.gperf" - {"constant", &grib_accessor_class_constant}, -#line 215 "accessor_class_list.gperf" - {"uint64_little_endian", &grib_accessor_class_uint64_little_endian}, -#line 80 "accessor_class_list.gperf" +#line 76 "accessor_class_list.gperf" {"divdouble", &grib_accessor_class_divdouble}, -#line 226 "accessor_class_list.gperf" - {"when", &grib_accessor_class_when}, -#line 163 "accessor_class_list.gperf" - {"octet_number", &grib_accessor_class_octet_number}, {""}, -#line 104 "accessor_class_list.gperf" +#line 173 "accessor_class_list.gperf" + {"sexagesimal2decimal", &grib_accessor_class_sexagesimal2decimal}, +#line 99 "accessor_class_list.gperf" {"g2_mars_labeling", &grib_accessor_class_g2_mars_labeling}, -#line 185 "accessor_class_list.gperf" - {"select_step_template", &grib_accessor_class_select_step_template}, - {""}, -#line 59 "accessor_class_list.gperf" - {"data_g1shsimple_packing", &grib_accessor_class_data_g1shsimple_packing}, - {""}, +#line 78 "accessor_class_list.gperf" + {"element", &grib_accessor_class_element}, +#line 158 "accessor_class_list.gperf" + {"padtomultiple", &grib_accessor_class_padtomultiple}, +#line 127 "accessor_class_list.gperf" + {"latitudes", &grib_accessor_class_latitudes}, +#line 162 "accessor_class_list.gperf" + {"rdbtime_guess_date", &grib_accessor_class_rdbtime_guess_date}, + {""}, {""}, {""}, +#line 192 "accessor_class_list.gperf" + {"to_string", &grib_accessor_class_to_string}, #line 132 "accessor_class_list.gperf" - {"int64_little_endian", &grib_accessor_class_int64_little_endian}, - {""}, {""}, + {"long", &grib_accessor_class_long}, #line 19 "accessor_class_list.gperf" - {"blob", &grib_accessor_class_blob}, + {"bufr_data_array", &grib_accessor_class_bufr_data_array}, +#line 77 "accessor_class_list.gperf" + {"double", &grib_accessor_class_double}, +#line 20 "accessor_class_list.gperf" + {"bufr_data_element", &grib_accessor_class_bufr_data_element}, +#line 105 "accessor_class_list.gperf" + {"g2latlon", &grib_accessor_class_g2latlon}, + {""}, {""}, +#line 26 "accessor_class_list.gperf" + {"bufr_simple_thinning", &grib_accessor_class_bufr_simple_thinning}, + {""}, +#line 137 "accessor_class_list.gperf" + {"mars_step", &grib_accessor_class_mars_step}, + {""}, +#line 115 "accessor_class_list.gperf" + {"group", &grib_accessor_class_group}, + {""}, +#line 28 "accessor_class_list.gperf" + {"bufrdc_expanded_descriptors", &grib_accessor_class_bufrdc_expanded_descriptors}, +#line 159 "accessor_class_list.gperf" + {"position", &grib_accessor_class_position}, {""}, {""}, {""}, -#line 223 "accessor_class_list.gperf" - {"values", &grib_accessor_class_values}, - {""}, {""}, {""}, {""}, -#line 60 "accessor_class_list.gperf" - {"data_g1simple_packing", &grib_accessor_class_data_g1simple_packing}, -#line 53 "accessor_class_list.gperf" - {"data_g1complex_packing", &grib_accessor_class_data_g1complex_packing}, +#line 17 "accessor_class_list.gperf" + {"blob", &grib_accessor_class_blob}, +#line 109 "accessor_class_list.gperf" + {"gaussian_grid_name", &grib_accessor_class_gaussian_grid_name}, +#line 195 "accessor_class_list.gperf" + {"trim", &grib_accessor_class_trim}, {""}, {""}, -#line 146 "accessor_class_list.gperf" - {"long_vector", &grib_accessor_class_long_vector}, -#line 201 "accessor_class_list.gperf" - {"suppressed", &grib_accessor_class_suppressed}, -#line 121 "accessor_class_list.gperf" - {"gts_header", &grib_accessor_class_gts_header}, -#line 204 "accessor_class_list.gperf" - {"to_double", &grib_accessor_class_to_double}, +#line 119 "accessor_class_list.gperf" + {"ibmfloat", &grib_accessor_class_ibmfloat}, {""}, {""}, -#line 144 "accessor_class_list.gperf" - {"local_definition", &grib_accessor_class_local_definition}, -#line 58 "accessor_class_list.gperf" - {"data_g1secondary_bitmap", &grib_accessor_class_data_g1secondary_bitmap}, -#line 221 "accessor_class_list.gperf" - {"validity_date", &grib_accessor_class_validity_date}, +#line 193 "accessor_class_list.gperf" + {"transient", &grib_accessor_class_transient}, +#line 55 "accessor_class_list.gperf" + {"data_g1shsimple_packing", &grib_accessor_class_data_g1shsimple_packing}, + {""}, {""}, +#line 56 "accessor_class_list.gperf" + {"data_g1simple_packing", &grib_accessor_class_data_g1simple_packing}, +#line 49 "accessor_class_list.gperf" + {"data_g1complex_packing", &grib_accessor_class_data_g1complex_packing}, +#line 164 "accessor_class_list.gperf" + {"round", &grib_accessor_class_round}, +#line 194 "accessor_class_list.gperf" + {"transient_darray", &grib_accessor_class_transient_darray}, +#line 18 "accessor_class_list.gperf" + {"budgdate", &grib_accessor_class_budgdate}, +#line 208 "accessor_class_list.gperf" + {"values", &grib_accessor_class_values}, #line 143 "accessor_class_list.gperf" - {"library_version", &grib_accessor_class_library_version}, + {"number_of_coded_values", &grib_accessor_class_number_of_coded_values}, +#line 126 "accessor_class_list.gperf" + {"label", &grib_accessor_class_label}, {""}, {""}, -#line 141 "accessor_class_list.gperf" - {"latlon_increment", &grib_accessor_class_latlon_increment}, +#line 38 "accessor_class_list.gperf" + {"concept", &grib_accessor_class_concept}, + {""}, +#line 181 "accessor_class_list.gperf" + {"spectral_truncation", &grib_accessor_class_spectral_truncation}, {""}, {""}, -#line 93 "accessor_class_list.gperf" - {"g1end_of_interval_monthly", &grib_accessor_class_g1end_of_interval_monthly}, +#line 83 "accessor_class_list.gperf" + {"g1_message_length", &grib_accessor_class_g1_message_length}, +#line 182 "accessor_class_list.gperf" + {"sprintf", &grib_accessor_class_sprintf}, +#line 188 "accessor_class_list.gperf" + {"suppressed", &grib_accessor_class_suppressed}, + {""}, +#line 211 "accessor_class_list.gperf" + {"when", &grib_accessor_class_when}, {""}, {""}, -#line 128 "accessor_class_list.gperf" - {"int16_little_endian", &grib_accessor_class_int16_little_endian}, -#line 56 "accessor_class_list.gperf" - {"data_g1second_order_general_packing", &grib_accessor_class_data_g1second_order_general_packing}, -#line 35 "accessor_class_list.gperf" - {"closest_date", &grib_accessor_class_closest_date}, -#line 124 "accessor_class_list.gperf" - {"ibmfloat", &grib_accessor_class_ibmfloat}, -#line 57 "accessor_class_list.gperf" - {"data_g1second_order_row_by_row_packing", &grib_accessor_class_data_g1second_order_row_by_row_packing}, -#line 151 "accessor_class_list.gperf" - {"md5", &grib_accessor_class_md5}, -#line 222 "accessor_class_list.gperf" - {"validity_time", &grib_accessor_class_validity_time}, -#line 130 "accessor_class_list.gperf" - {"int32_little_endian", &grib_accessor_class_int32_little_endian}, -#line 54 "accessor_class_list.gperf" - {"data_g1second_order_constant_width_packing", &grib_accessor_class_data_g1second_order_constant_width_packing}, +#line 178 "accessor_class_list.gperf" + {"smart_table", &grib_accessor_class_smart_table}, {""}, -#line 55 "accessor_class_list.gperf" - {"data_g1second_order_general_extended_packing", &grib_accessor_class_data_g1second_order_general_extended_packing}, +#line 39 "accessor_class_list.gperf" + {"constant", &grib_accessor_class_constant}, {""}, {""}, -#line 74 "accessor_class_list.gperf" - {"data_sh_unpacked", &grib_accessor_class_data_sh_unpacked}, -#line 225 "accessor_class_list.gperf" - {"vector", &grib_accessor_class_vector}, -#line 20 "accessor_class_list.gperf" - {"budgdate", &grib_accessor_class_budgdate}, -#line 152 "accessor_class_list.gperf" - {"message", &grib_accessor_class_message}, -#line 148 "accessor_class_list.gperf" +#line 160 "accessor_class_list.gperf" + {"proj_string", &grib_accessor_class_proj_string}, +#line 149 "accessor_class_list.gperf" + {"octet_number", &grib_accessor_class_octet_number}, +#line 179 "accessor_class_list.gperf" + {"smart_table_column", &grib_accessor_class_smart_table_column}, + {""}, +#line 135 "accessor_class_list.gperf" {"lookup", &grib_accessor_class_lookup}, -#line 75 "accessor_class_list.gperf" + {""}, +#line 94 "accessor_class_list.gperf" + {"g1step_range", &grib_accessor_class_g1step_range}, +#line 73 "accessor_class_list.gperf" + {"decimal_precision", &grib_accessor_class_decimal_precision}, + {""}, +#line 134 "accessor_class_list.gperf" + {"longitudes", &grib_accessor_class_longitudes}, +#line 70 "accessor_class_list.gperf" + {"data_sh_unpacked", &grib_accessor_class_data_sh_unpacked}, +#line 27 "accessor_class_list.gperf" + {"bufr_string_values", &grib_accessor_class_bufr_string_values}, +#line 196 "accessor_class_list.gperf" + {"uint16", &grib_accessor_class_uint16}, + {""}, {""}, +#line 71 "accessor_class_list.gperf" {"data_shsimple_packing", &grib_accessor_class_data_shsimple_packing}, -#line 137 "accessor_class_list.gperf" - {"ksec1expver", &grib_accessor_class_ksec1expver}, +#line 86 "accessor_class_list.gperf" + {"g1date", &grib_accessor_class_g1date}, {""}, -#line 171 "accessor_class_list.gperf" - {"padtomultiple", &grib_accessor_class_padtomultiple}, +#line 85 "accessor_class_list.gperf" + {"g1bitmap", &grib_accessor_class_g1bitmap}, + {""}, +#line 54 "accessor_class_list.gperf" + {"data_g1secondary_bitmap", &grib_accessor_class_data_g1secondary_bitmap}, +#line 190 "accessor_class_list.gperf" + {"to_double", &grib_accessor_class_to_double}, +#line 101 "accessor_class_list.gperf" + {"g2bitmap_present", &grib_accessor_class_g2bitmap_present}, +#line 120 "accessor_class_list.gperf" + {"ieeefloat", &grib_accessor_class_ieeefloat}, #line 150 "accessor_class_list.gperf" - {"mars_step", &grib_accessor_class_mars_step}, -#line 126 "accessor_class_list.gperf" - {"ifs_param", &grib_accessor_class_ifs_param}, + {"offset_file", &grib_accessor_class_offset_file}, +#line 206 "accessor_class_list.gperf" + {"validity_date", &grib_accessor_class_validity_date}, +#line 207 "accessor_class_list.gperf" + {"validity_time", &grib_accessor_class_validity_time}, + {""}, +#line 130 "accessor_class_list.gperf" + {"library_version", &grib_accessor_class_library_version}, +#line 210 "accessor_class_list.gperf" + {"vector", &grib_accessor_class_vector}, +#line 84 "accessor_class_list.gperf" + {"g1_section4_length", &grib_accessor_class_g1_section4_length}, {""}, -#line 191 "accessor_class_list.gperf" - {"smart_table", &grib_accessor_class_smart_table}, +#line 52 "accessor_class_list.gperf" + {"data_g1second_order_general_packing", &grib_accessor_class_data_g1second_order_general_packing}, + {""}, {""}, +#line 53 "accessor_class_list.gperf" + {"data_g1second_order_row_by_row_packing", &grib_accessor_class_data_g1second_order_row_by_row_packing}, {""}, -#line 149 "accessor_class_list.gperf" - {"mars_param", &grib_accessor_class_mars_param}, +#line 24 "accessor_class_list.gperf" + {"bufr_extract_subsets", &grib_accessor_class_bufr_extract_subsets}, +#line 157 "accessor_class_list.gperf" + {"padtoeven", &grib_accessor_class_padtoeven}, +#line 50 "accessor_class_list.gperf" + {"data_g1second_order_constant_width_packing", &grib_accessor_class_data_g1second_order_constant_width_packing}, {""}, +#line 51 "accessor_class_list.gperf" + {"data_g1second_order_general_extended_packing", &grib_accessor_class_data_g1second_order_general_extended_packing}, #line 22 "accessor_class_list.gperf" - {"bufr_data_element", &grib_accessor_class_bufr_data_element}, - {""}, {""}, -#line 192 "accessor_class_list.gperf" - {"smart_table_column", &grib_accessor_class_smart_table_column}, + {"bufr_extract_area_subsets", &grib_accessor_class_bufr_extract_area_subsets}, + {""}, {""}, {""}, +#line 23 "accessor_class_list.gperf" + {"bufr_extract_datetime_subsets", &grib_accessor_class_bufr_extract_datetime_subsets}, {""}, #line 21 "accessor_class_list.gperf" - {"bufr_data_array", &grib_accessor_class_bufr_data_array}, + {"bufr_elements_table", &grib_accessor_class_bufr_elements_table}, {""}, {""}, {""}, {""}, -#line 30 "accessor_class_list.gperf" - {"bufrdc_expanded_descriptors", &grib_accessor_class_bufrdc_expanded_descriptors}, -#line 29 "accessor_class_list.gperf" - {"bufr_string_values", &grib_accessor_class_bufr_string_values}, +#line 152 "accessor_class_list.gperf" + {"pack_bufr_values", &grib_accessor_class_pack_bufr_values}, +#line 35 "accessor_class_list.gperf" + {"codetable", &grib_accessor_class_codetable}, +#line 131 "accessor_class_list.gperf" + {"local_definition", &grib_accessor_class_local_definition}, + {""}, +#line 25 "accessor_class_list.gperf" + {"bufr_group", &grib_accessor_class_bufr_group}, + {""}, +#line 88 "accessor_class_list.gperf" + {"g1end_of_interval_monthly", &grib_accessor_class_g1end_of_interval_monthly}, +#line 146 "accessor_class_list.gperf" + {"number_of_values", &grib_accessor_class_number_of_values}, + {""}, +#line 116 "accessor_class_list.gperf" + {"gts_header", &grib_accessor_class_gts_header}, + {""}, +#line 33 "accessor_class_list.gperf" + {"closest_date", &grib_accessor_class_closest_date}, + {""}, {""}, +#line 209 "accessor_class_list.gperf" + {"variable", &grib_accessor_class_variable}, +#line 133 "accessor_class_list.gperf" + {"long_vector", &grib_accessor_class_long_vector}, +#line 166 "accessor_class_list.gperf" + {"scale_values", &grib_accessor_class_scale_values}, + {""}, {""}, {""}, +#line 128 "accessor_class_list.gperf" + {"latlon_increment", &grib_accessor_class_latlon_increment}, {""}, {""}, {""}, #line 147 "accessor_class_list.gperf" - {"longitudes", &grib_accessor_class_longitudes}, - {""}, -#line 157 "accessor_class_list.gperf" - {"number_of_coded_values", &grib_accessor_class_number_of_coded_values}, + {"number_of_values_data_raw_packing", &grib_accessor_class_number_of_values_data_raw_packing}, {""}, -#line 28 "accessor_class_list.gperf" - {"bufr_simple_thinning", &grib_accessor_class_bufr_simple_thinning}, -#line 44 "accessor_class_list.gperf" - {"count_total", &grib_accessor_class_count_total}, - {""}, {""}, {""}, {""}, -#line 122 "accessor_class_list.gperf" - {"hash_array", &grib_accessor_class_hash_array}, -#line 165 "accessor_class_list.gperf" +#line 79 "accessor_class_list.gperf" + {"evaluate", &grib_accessor_class_evaluate}, + {""}, {""}, {""}, {""}, {""}, +#line 151 "accessor_class_list.gperf" {"offset_values", &grib_accessor_class_offset_values}, -#line 123 "accessor_class_list.gperf" +#line 69 "accessor_class_list.gperf" + {"data_sh_packed", &grib_accessor_class_data_sh_packed}, +#line 11 "accessor_class_list.gperf" + {"abstract_vector", &grib_accessor_class_abstract_vector}, +#line 118 "accessor_class_list.gperf" {"headers_only", &grib_accessor_class_headers_only}, +#line 125 "accessor_class_list.gperf" + {"ksec1expver", &grib_accessor_class_ksec1expver}, {""}, {""}, -#line 94 "accessor_class_list.gperf" - {"g1fcperiod", &grib_accessor_class_g1fcperiod}, -#line 153 "accessor_class_list.gperf" - {"message_copy", &grib_accessor_class_message_copy}, - {""}, {""}, -#line 170 "accessor_class_list.gperf" - {"padtoeven", &grib_accessor_class_padtoeven}, - {""}, {""}, -#line 210 "accessor_class_list.gperf" - {"uint16", &grib_accessor_class_uint16}, - {""}, {""}, -#line 154 "accessor_class_list.gperf" - {"missing", &grib_accessor_class_missing}, -#line 224 "accessor_class_list.gperf" - {"variable", &grib_accessor_class_variable}, +#line 41 "accessor_class_list.gperf" + {"count_missing", &grib_accessor_class_count_missing}, +#line 203 "accessor_class_list.gperf" + {"unpack_bufr_values", &grib_accessor_class_unpack_bufr_values}, {""}, {""}, -#line 86 "accessor_class_list.gperf" - {"g1_half_byte_codeflag", &grib_accessor_class_g1_half_byte_codeflag}, - {""}, -#line 42 "accessor_class_list.gperf" - {"count_file", &grib_accessor_class_count_file}, - {""}, +#line 121 "accessor_class_list.gperf" + {"ifs_param", &grib_accessor_class_ifs_param}, + {""}, {""}, {""}, #line 36 "accessor_class_list.gperf" - {"codeflag", &grib_accessor_class_codeflag}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 211 "accessor_class_list.gperf" - {"uint16_little_endian", &grib_accessor_class_uint16_little_endian}, -#line 37 "accessor_class_list.gperf" - {"codetable", &grib_accessor_class_codetable}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 38 "accessor_class_list.gperf" {"codetable_title", &grib_accessor_class_codetable_title}, {""}, {""}, {""}, -#line 83 "accessor_class_list.gperf" - {"evaluate", &grib_accessor_class_evaluate}, - {""}, {""}, -#line 27 "accessor_class_list.gperf" - {"bufr_group", &grib_accessor_class_bufr_group}, - {""}, {""}, -#line 160 "accessor_class_list.gperf" - {"number_of_values", &grib_accessor_class_number_of_values}, - {""}, {""}, -#line 77 "accessor_class_list.gperf" - {"decimal_precision", &grib_accessor_class_decimal_precision}, - {""}, {""}, -#line 111 "accessor_class_list.gperf" +#line 89 "accessor_class_list.gperf" + {"g1fcperiod", &grib_accessor_class_g1fcperiod}, +#line 34 "accessor_class_list.gperf" + {"codeflag", &grib_accessor_class_codeflag}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 106 "accessor_class_list.gperf" {"g2level", &grib_accessor_class_g2level}, +#line 42 "accessor_class_list.gperf" + {"count_total", &grib_accessor_class_count_total}, {""}, -#line 23 "accessor_class_list.gperf" - {"bufr_elements_table", &grib_accessor_class_bufr_elements_table}, +#line 117 "accessor_class_list.gperf" + {"hash_array", &grib_accessor_class_hash_array}, {""}, {""}, -#line 142 "accessor_class_list.gperf" +#line 37 "accessor_class_list.gperf" + {"codetable_units", &grib_accessor_class_codetable_units}, + {""}, {""}, +#line 129 "accessor_class_list.gperf" {"latlonvalues", &grib_accessor_class_latlonvalues}, {""}, {""}, {""}, {""}, -#line 73 "accessor_class_list.gperf" - {"data_sh_packed", &grib_accessor_class_data_sh_packed}, -#line 161 "accessor_class_list.gperf" - {"number_of_values_data_raw_packing", &grib_accessor_class_number_of_values_data_raw_packing}, - {""}, {""}, {""}, {""}, -#line 179 "accessor_class_list.gperf" - {"scale_values", &grib_accessor_class_scale_values}, - {""}, -#line 218 "accessor_class_list.gperf" - {"unpack_bufr_values", &grib_accessor_class_unpack_bufr_values}, - {""}, {""}, {""}, -#line 85 "accessor_class_list.gperf" - {"from_scale_factor_scaled_value", &grib_accessor_class_from_scale_factor_scaled_value}, -#line 11 "accessor_class_list.gperf" - {"abstract_vector", &grib_accessor_class_abstract_vector}, - {""}, {""}, {""}, {""}, -#line 33 "accessor_class_list.gperf" - {"change_scanning_direction", &grib_accessor_class_change_scanning_direction}, - {""}, {""}, {""}, {""}, {""}, -#line 32 "accessor_class_list.gperf" +#line 30 "accessor_class_list.gperf" {"change_alternative_row_scanning", &grib_accessor_class_change_alternative_row_scanning}, - {""}, -#line 96 "accessor_class_list.gperf" - {"g1monthlydate", &grib_accessor_class_g1monthlydate}, - {""}, {""}, -#line 100 "accessor_class_list.gperf" - {"g1verificationdate", &grib_accessor_class_g1verificationdate}, -#line 166 "accessor_class_list.gperf" - {"pack_bufr_values", &grib_accessor_class_pack_bufr_values}, - {""}, {""}, -#line 176 "accessor_class_list.gperf" - {"reference_value_error", &grib_accessor_class_reference_value_error}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, -#line 162 "accessor_class_list.gperf" - {"octahedral_gaussian", &grib_accessor_class_octahedral_gaussian}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 31 "accessor_class_list.gperf" + {"change_scanning_direction", &grib_accessor_class_change_scanning_direction}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 26 "accessor_class_list.gperf" - {"bufr_extract_subsets", &grib_accessor_class_bufr_extract_subsets}, - {""}, {""}, {""}, {""}, -#line 24 "accessor_class_list.gperf" - {"bufr_extract_area_subsets", &grib_accessor_class_bufr_extract_area_subsets}, - {""}, {""}, {""}, -#line 25 "accessor_class_list.gperf" - {"bufr_extract_datetime_subsets", &grib_accessor_class_bufr_extract_datetime_subsets}, - {""}, {""}, +#line 148 "accessor_class_list.gperf" + {"octahedral_gaussian", &grib_accessor_class_octahedral_gaussian}, #line 10 "accessor_class_list.gperf" {"abstract_long_vector", &grib_accessor_class_abstract_long_vector}, + {""}, {""}, {""}, +#line 40 "accessor_class_list.gperf" + {"count_file", &grib_accessor_class_count_file}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 39 "accessor_class_list.gperf" - {"codetable_units", &grib_accessor_class_codetable_units}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 91 "accessor_class_list.gperf" + {"g1monthlydate", &grib_accessor_class_g1monthlydate}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 82 "accessor_class_list.gperf" + {"g1_half_byte_codeflag", &grib_accessor_class_g1_half_byte_codeflag}, {""}, -#line 92 "accessor_class_list.gperf" - {"g1day_of_the_year_date", &grib_accessor_class_g1day_of_the_year_date}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 34 "accessor_class_list.gperf" - {"check_internal_version", &grib_accessor_class_check_internal_version}, - {""}, {""}, -#line 43 "accessor_class_list.gperf" - {"count_missing", &grib_accessor_class_count_missing}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 81 "accessor_class_list.gperf" + {"from_scale_factor_scaled_value", &grib_accessor_class_from_scale_factor_scaled_value}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 32 "accessor_class_list.gperf" + {"check_internal_version", &grib_accessor_class_check_internal_version}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, -#line 98 "accessor_class_list.gperf" - {"g1number_of_coded_values_sh_simple", &grib_accessor_class_g1number_of_coded_values_sh_simple}, + {""}, {""}, {""}, #line 97 "accessor_class_list.gperf" - {"g1number_of_coded_values_sh_complex", &grib_accessor_class_g1number_of_coded_values_sh_complex}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 102 "accessor_class_list.gperf" {"g2_chemical", &grib_accessor_class_g2_chemical}, +#line 87 "accessor_class_list.gperf" + {"g1day_of_the_year_date", &grib_accessor_class_g1day_of_the_year_date}, + {""}, {""}, {""}, {""}, {""}, +#line 163 "accessor_class_list.gperf" + {"reference_value_error", &grib_accessor_class_reference_value_error}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 93 "accessor_class_list.gperf" + {"g1number_of_coded_values_sh_simple", &grib_accessor_class_g1number_of_coded_values_sh_simple}, +#line 92 "accessor_class_list.gperf" + {"g1number_of_coded_values_sh_complex", &grib_accessor_class_g1number_of_coded_values_sh_complex}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 90 "accessor_class_list.gperf" + {"g1forecastmonth", &grib_accessor_class_g1forecastmonth}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, #line 95 "accessor_class_list.gperf" - {"g1forecastmonth", &grib_accessor_class_g1forecastmonth} + {"g1verificationdate", &grib_accessor_class_g1verificationdate} }; -static const struct accessor_class_hash* grib_accessor_classes_hash (const char *str, size_t len) +static const struct accessor_class_hash* grib_accessor_classes_hash(const char *str, size_t len) { unsigned int key = grib_accessor_classes_get_id (str, len); diff --git a/src/grib_accessor_factory.h b/src/grib_accessor_factory.h index a706fc95c..96a9bc024 100644 --- a/src/grib_accessor_factory.h +++ b/src/grib_accessor_factory.h @@ -1,9 +1,7 @@ /* This file is automatically generated by ./make_class.pl, do not edit */ { "abstract_long_vector", &grib_accessor_class_abstract_long_vector, }, { "abstract_vector", &grib_accessor_class_abstract_vector, }, -{ "array", &grib_accessor_class_array, }, { "ascii", &grib_accessor_class_ascii, }, -{ "assert", &grib_accessor_class_assert, }, { "bit", &grib_accessor_class_bit, }, { "bitmap", &grib_accessor_class_bitmap, }, { "bits", &grib_accessor_class_bits, }, @@ -34,11 +32,9 @@ { "count_file", &grib_accessor_class_count_file, }, { "count_missing", &grib_accessor_class_count_missing, }, { "count_total", &grib_accessor_class_count_total, }, -{ "data_2order_packing", &grib_accessor_class_data_2order_packing, }, { "data_apply_bitmap", &grib_accessor_class_data_apply_bitmap, }, { "data_apply_boustrophedonic", &grib_accessor_class_data_apply_boustrophedonic, }, { "data_apply_boustrophedonic_bitmap", &grib_accessor_class_data_apply_boustrophedonic_bitmap, }, -{ "data_apply_gdsnotpresent", &grib_accessor_class_data_apply_gdsnotpresent, }, { "data_ccsds_packing", &grib_accessor_class_data_ccsds_packing, }, { "data_complex_packing", &grib_accessor_class_data_complex_packing, }, { "data_dummy_field", &grib_accessor_class_data_dummy_field, }, @@ -78,7 +74,6 @@ { "g1_half_byte_codeflag", &grib_accessor_class_g1_half_byte_codeflag, }, { "g1_message_length", &grib_accessor_class_g1_message_length, }, { "g1_section4_length", &grib_accessor_class_g1_section4_length, }, -{ "g1area", &grib_accessor_class_g1area, }, { "g1bitmap", &grib_accessor_class_g1bitmap, }, { "g1date", &grib_accessor_class_g1date, }, { "g1day_of_the_year_date", &grib_accessor_class_g1day_of_the_year_date, }, @@ -116,19 +111,11 @@ { "ibmfloat", &grib_accessor_class_ibmfloat, }, { "ieeefloat", &grib_accessor_class_ieeefloat, }, { "ifs_param", &grib_accessor_class_ifs_param, }, -{ "int16", &grib_accessor_class_int16, }, -{ "int16_little_endian", &grib_accessor_class_int16_little_endian, }, -{ "int32", &grib_accessor_class_int32, }, -{ "int32_little_endian", &grib_accessor_class_int32_little_endian, }, -{ "int64", &grib_accessor_class_int64, }, -{ "int64_little_endian", &grib_accessor_class_int64_little_endian, }, -{ "int8", &grib_accessor_class_int8, }, { "iterator", &grib_accessor_class_iterator, }, { "julian_date", &grib_accessor_class_julian_date, }, { "julian_day", &grib_accessor_class_julian_day, }, { "ksec1expver", &grib_accessor_class_ksec1expver, }, { "label", &grib_accessor_class_label, }, -{ "laplacian", &grib_accessor_class_laplacian, }, { "latitudes", &grib_accessor_class_latitudes, }, { "latlon_increment", &grib_accessor_class_latlon_increment, }, { "latlonvalues", &grib_accessor_class_latlonvalues, }, @@ -143,7 +130,6 @@ { "md5", &grib_accessor_class_md5, }, { "message", &grib_accessor_class_message, }, { "message_copy", &grib_accessor_class_message_copy, }, -{ "missing", &grib_accessor_class_missing, }, { "nearest", &grib_accessor_class_nearest, }, { "non_alpha", &grib_accessor_class_non_alpha, }, { "number_of_coded_values", &grib_accessor_class_number_of_coded_values, }, @@ -156,6 +142,7 @@ { "offset_file", &grib_accessor_class_offset_file, }, { "offset_values", &grib_accessor_class_offset_values, }, { "pack_bufr_values", &grib_accessor_class_pack_bufr_values, }, +{ "packing_type", &grib_accessor_class_packing_type, }, { "pad", &grib_accessor_class_pad, }, { "padding", &grib_accessor_class_padding, }, { "padto", &grib_accessor_class_padto, }, @@ -192,7 +179,6 @@ { "sum", &grib_accessor_class_sum, }, { "suppressed", &grib_accessor_class_suppressed, }, { "time", &grib_accessor_class_time, }, -{ "times", &grib_accessor_class_times, }, { "to_double", &grib_accessor_class_to_double, }, { "to_integer", &grib_accessor_class_to_integer, }, { "to_string", &grib_accessor_class_to_string, }, @@ -200,7 +186,6 @@ { "transient_darray", &grib_accessor_class_transient_darray, }, { "trim", &grib_accessor_class_trim, }, { "uint16", &grib_accessor_class_uint16, }, -{ "uint16_little_endian", &grib_accessor_class_uint16_little_endian, }, { "uint32", &grib_accessor_class_uint32, }, { "uint32_little_endian", &grib_accessor_class_uint32_little_endian, }, { "uint64", &grib_accessor_class_uint64, }, diff --git a/src/grib_accessor_factory_hash_list b/src/grib_accessor_factory_hash_list index 0abb60a46..4c8a05671 100644 --- a/src/grib_accessor_factory_hash_list +++ b/src/grib_accessor_factory_hash_list @@ -2,9 +2,7 @@ abstract_long_vector, &grib_accessor_class_abstract_long_vector abstract_vector, &grib_accessor_class_abstract_vector -array, &grib_accessor_class_array ascii, &grib_accessor_class_ascii -assert, &grib_accessor_class_assert bit, &grib_accessor_class_bit bitmap, &grib_accessor_class_bitmap bits, &grib_accessor_class_bits @@ -35,11 +33,9 @@ constant, &grib_accessor_class_constant count_file, &grib_accessor_class_count_file count_missing, &grib_accessor_class_count_missing count_total, &grib_accessor_class_count_total -data_2order_packing, &grib_accessor_class_data_2order_packing data_apply_bitmap, &grib_accessor_class_data_apply_bitmap data_apply_boustrophedonic, &grib_accessor_class_data_apply_boustrophedonic data_apply_boustrophedonic_bitmap, &grib_accessor_class_data_apply_boustrophedonic_bitmap -data_apply_gdsnotpresent, &grib_accessor_class_data_apply_gdsnotpresent data_ccsds_packing, &grib_accessor_class_data_ccsds_packing data_complex_packing, &grib_accessor_class_data_complex_packing data_dummy_field, &grib_accessor_class_data_dummy_field @@ -79,7 +75,6 @@ from_scale_factor_scaled_value, &grib_accessor_class_from_scale_factor_scaled_va g1_half_byte_codeflag, &grib_accessor_class_g1_half_byte_codeflag g1_message_length, &grib_accessor_class_g1_message_length g1_section4_length, &grib_accessor_class_g1_section4_length -g1area, &grib_accessor_class_g1area g1bitmap, &grib_accessor_class_g1bitmap g1date, &grib_accessor_class_g1date g1day_of_the_year_date, &grib_accessor_class_g1day_of_the_year_date @@ -117,19 +112,11 @@ headers_only, &grib_accessor_class_headers_only ibmfloat, &grib_accessor_class_ibmfloat ieeefloat, &grib_accessor_class_ieeefloat ifs_param, &grib_accessor_class_ifs_param -int16, &grib_accessor_class_int16 -int16_little_endian, &grib_accessor_class_int16_little_endian -int32, &grib_accessor_class_int32 -int32_little_endian, &grib_accessor_class_int32_little_endian -int64, &grib_accessor_class_int64 -int64_little_endian, &grib_accessor_class_int64_little_endian -int8, &grib_accessor_class_int8 iterator, &grib_accessor_class_iterator julian_date, &grib_accessor_class_julian_date julian_day, &grib_accessor_class_julian_day ksec1expver, &grib_accessor_class_ksec1expver label, &grib_accessor_class_label -laplacian, &grib_accessor_class_laplacian latitudes, &grib_accessor_class_latitudes latlon_increment, &grib_accessor_class_latlon_increment latlonvalues, &grib_accessor_class_latlonvalues @@ -144,7 +131,6 @@ mars_step, &grib_accessor_class_mars_step md5, &grib_accessor_class_md5 message, &grib_accessor_class_message message_copy, &grib_accessor_class_message_copy -missing, &grib_accessor_class_missing nearest, &grib_accessor_class_nearest non_alpha, &grib_accessor_class_non_alpha number_of_coded_values, &grib_accessor_class_number_of_coded_values @@ -157,6 +143,7 @@ octet_number, &grib_accessor_class_octet_number offset_file, &grib_accessor_class_offset_file offset_values, &grib_accessor_class_offset_values pack_bufr_values, &grib_accessor_class_pack_bufr_values +packing_type, &grib_accessor_class_packing_type pad, &grib_accessor_class_pad padding, &grib_accessor_class_padding padto, &grib_accessor_class_padto @@ -193,7 +180,6 @@ step_in_units, &grib_accessor_class_step_in_units sum, &grib_accessor_class_sum suppressed, &grib_accessor_class_suppressed time, &grib_accessor_class_time -times, &grib_accessor_class_times to_double, &grib_accessor_class_to_double to_integer, &grib_accessor_class_to_integer to_string, &grib_accessor_class_to_string @@ -201,7 +187,6 @@ transient, &grib_accessor_class_transient transient_darray, &grib_accessor_class_transient_darray trim, &grib_accessor_class_trim uint16, &grib_accessor_class_uint16 -uint16_little_endian, &grib_accessor_class_uint16_little_endian uint32, &grib_accessor_class_uint32 uint32_little_endian, &grib_accessor_class_uint32_little_endian uint64, &grib_accessor_class_uint64 diff --git a/src/grib_api.h b/src/grib_api.h index 718a1bb57..9a3e46ffc 100644 --- a/src/grib_api.h +++ b/src/grib_api.h @@ -599,7 +599,7 @@ grib_iterator* grib_iterator_new(const grib_handle* h, unsigned long flags, int* /** * Get latitude/longitude and data values. - * The Latitudes, longitudes and values arrays must be properly allocated by the caller. + * The latitudes, longitudes and values arrays must be properly allocated by the caller. * Their required dimension can be obtained by getting the value of the integer key "numberOfPoints". * * @param h : handle from which geography and data values are taken @@ -614,9 +614,9 @@ int grib_get_data(const grib_handle* h, double* lats, double* lons, double* valu * Get the next value from a geoiterator. * * @param i : the geoiterator - * @param lat : on output latitude in degree - * @param lon : on output longitude in degree - * @param value : on output value of the point + * @param lat : output latitude in degrees + * @param lon : output longitude in degrees + * @param value : output value of the point * @return positive value if successful, 0 if no more data are available */ int grib_iterator_next(grib_iterator* i, double* lat, double* lon, double* value); @@ -625,9 +625,9 @@ int grib_iterator_next(grib_iterator* i, double* lat, double* lon, double* value * Get the previous value from a geoiterator. * * @param i : the geoiterator - * @param lat : on output latitude in degree - * @param lon : on output longitude in degree - * @param value : on output value of the point* + * @param lat : output latitude in degrees + * @param lon : output longitude in degrees + * @param value : output value of the point* * @return positive value if successful, 0 if no more data are available */ int grib_iterator_previous(grib_iterator* i, double* lat, double* lon, double* value); @@ -636,7 +636,7 @@ int grib_iterator_previous(grib_iterator* i, double* lat, double* lon, double* v * Test procedure for values in a geoiterator. * * @param i : the geoiterator - * @return boolean, 1 if the geoiterator still nave next values, 0 otherwise + * @return boolean, 1 if the geoiterator still has next values, 0 otherwise */ int grib_iterator_has_next(grib_iterator* i); @@ -783,6 +783,7 @@ int grib_get_long(const grib_handle* h, const char* key, long* value); * @return 0 if OK, integer value on error */ int grib_get_double(const grib_handle* h, const char* key, double* value); +int grib_get_float(const grib_handle* h, const char* key, float* value); /** * Get as double the i-th element of the "key" array @@ -1230,7 +1231,7 @@ void grib_multi_support_on(grib_context* c); void grib_multi_support_off(grib_context* c); /** - * Reset file handle in multi-field support mode + * Reset file handle in GRIB multi-field support mode * * @param c : the context to be modified * @param f : the file pointer @@ -1333,27 +1334,30 @@ void grib_update_sections_lengths(grib_handle* h); * @return the error message */ const char* grib_get_error_message(int code); -const char* grib_get_type_name(int type); +const char* grib_get_type_name(int type); int grib_get_native_type(const grib_handle* h, const char* name, int* type); - void grib_check(const char* call, const char* file, int line, int e, const char* msg); + #define GRIB_CHECK(a, msg) grib_check(#a, __FILE__, __LINE__, a, msg) #define GRIB_CHECK_NOLINE(a, msg) grib_check(#a, 0, 0, a, msg) - int grib_set_values(grib_handle* h, grib_values* grib_values, size_t arg_count); grib_handle* grib_handle_new_from_partial_message_copy(grib_context* c, const void* data, size_t size); grib_handle* grib_handle_new_from_partial_message(grib_context* c, const void* data, size_t buflen); -/* Returns a bool i.e. 0 or 1. The error code is an argument */ +/* Check whether the given key has the value 'missing'. + Returns a bool i.e. 0 or 1. The error code is an argument */ int grib_is_missing(const grib_handle* h, const char* key, int* err); -/* Returns a bool i.e. 0 or 1 */ +/* Check whether the given key is defined (exists). + Returns a bool i.e. 0 or 1 */ int grib_is_defined(const grib_handle* h, const char* key); +/* Set the given key to have the value 'missing' */ int grib_set_missing(grib_handle* h, const char* key); -/* The truncation is the Gaussian number (or order) */ + +/* The truncation is the Gaussian number (also called order) */ int grib_get_gaussian_latitudes(long truncation, double* latitudes); int grib_julian_to_datetime(double jd, long* year, long* month, long* day, long* hour, long* minute, long* second); @@ -1398,56 +1402,9 @@ int grib_get_message_size(const grib_handle* h, size_t* size); #define GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA 10 #define GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL 11 #define GRIB_UTIL_GRID_SPEC_UNSTRUCTURED 12 - +#define GRIB_UTIL_GRID_SPEC_HEALPIX 13 typedef struct grib_util_grid_spec -{ - int grid_type; /* e.g. GRIB_UTIL_GRID_SPEC_REGULAR_LL etc */ - - /* Grid */ - long Ni; - long Nj; - - double iDirectionIncrementInDegrees; - double jDirectionIncrementInDegrees; - - double longitudeOfFirstGridPointInDegrees; - double longitudeOfLastGridPointInDegrees; - - double latitudeOfFirstGridPointInDegrees; - double latitudeOfLastGridPointInDegrees; - - /* Rotation */ - long uvRelativeToGrid; - double latitudeOfSouthernPoleInDegrees; - double longitudeOfSouthernPoleInDegrees; - - /* Scanning mode */ - long iScansNegatively; - long jScansPositively; - - /* Gaussian number */ - long N; - - /* Bitmap */ - long bitmapPresent; - double missingValue; /* 0 means use the default */ - - /* 'pl' array for reduced Gaussian grids */ - const long* pl; - long pl_size; - - /* Spherical harmonics */ - long truncation; - - /* Polar stereographic */ - double orientationOfTheGridInDegrees; - long DyInMetres; - long DxInMetres; - -} grib_util_grid_spec; - -typedef struct grib_util_grid_spec2 { int grid_type; /* e.g. GRIB_UTIL_GRID_SPEC_REGULAR_LL etc */ const char* grid_name; /* e.g. N320 */ @@ -1475,7 +1432,7 @@ typedef struct grib_util_grid_spec2 long iScansNegatively; long jScansPositively; - /* Gaussian number */ + /* Gaussian number or HEALPIX Nside */ long N; /* Bitmap */ @@ -1494,7 +1451,7 @@ typedef struct grib_util_grid_spec2 long DyInMetres; long DxInMetres; -} grib_util_grid_spec2; +} grib_util_grid_spec; #define GRIB_UTIL_PACKING_TYPE_SAME_AS_INPUT 0 #define GRIB_UTIL_PACKING_TYPE_SPECTRAL_COMPLEX 1 @@ -1550,14 +1507,6 @@ grib_handle* grib_util_set_spec(grib_handle* h, size_t data_values_count, int* err); -grib_handle* grib_util_set_spec2(grib_handle* h, - const grib_util_grid_spec2* grid_spec, - const grib_util_packing_spec* packing_spec, /* NULL for defaults (same as input) */ - int flags, - const double* data_values, - size_t data_values_count, - int* err); - int parse_keyval_string(const char* grib_tool, char* arg, int values_required, int default_type, grib_values values[], int* count); grib_handle* grib_new_from_file(grib_context* c, FILE* f, int headers_only, int* error); @@ -1654,140 +1603,164 @@ Error codes returned by the grib_api functions. */ /*! @{*/ /** No error */ -#define GRIB_SUCCESS 0 +#define GRIB_SUCCESS 0 /** End of resource reached */ -#define GRIB_END_OF_FILE -1 +#define GRIB_END_OF_FILE -1 /** Internal error */ -#define GRIB_INTERNAL_ERROR -2 +#define GRIB_INTERNAL_ERROR -2 /** Passed buffer is too small */ -#define GRIB_BUFFER_TOO_SMALL -3 +#define GRIB_BUFFER_TOO_SMALL -3 /** Function not yet implemented */ -#define GRIB_NOT_IMPLEMENTED -4 +#define GRIB_NOT_IMPLEMENTED -4 /** Missing 7777 at end of message */ -#define GRIB_7777_NOT_FOUND -5 +#define GRIB_7777_NOT_FOUND -5 /** Passed array is too small */ -#define GRIB_ARRAY_TOO_SMALL -6 +#define GRIB_ARRAY_TOO_SMALL -6 /** File not found */ -#define GRIB_FILE_NOT_FOUND -7 +#define GRIB_FILE_NOT_FOUND -7 /** Code not found in code table */ -#define GRIB_CODE_NOT_FOUND_IN_TABLE -8 +#define GRIB_CODE_NOT_FOUND_IN_TABLE -8 /** Array size mismatch */ -#define GRIB_WRONG_ARRAY_SIZE -9 +#define GRIB_WRONG_ARRAY_SIZE -9 /** Key/value not found */ -#define GRIB_NOT_FOUND -10 +#define GRIB_NOT_FOUND -10 /** Input output problem */ -#define GRIB_IO_PROBLEM -11 +#define GRIB_IO_PROBLEM -11 /** Message invalid */ -#define GRIB_INVALID_MESSAGE -12 +#define GRIB_INVALID_MESSAGE -12 /** Decoding invalid */ -#define GRIB_DECODING_ERROR -13 +#define GRIB_DECODING_ERROR -13 /** Encoding invalid */ -#define GRIB_ENCODING_ERROR -14 +#define GRIB_ENCODING_ERROR -14 /** Code cannot unpack because of string too small */ -#define GRIB_NO_MORE_IN_SET -15 +#define GRIB_NO_MORE_IN_SET -15 /** Problem with calculation of geographic attributes */ -#define GRIB_GEOCALCULUS_PROBLEM -16 +#define GRIB_GEOCALCULUS_PROBLEM -16 /** Memory allocation error */ -#define GRIB_OUT_OF_MEMORY -17 +#define GRIB_OUT_OF_MEMORY -17 /** Value is read only */ -#define GRIB_READ_ONLY -18 +#define GRIB_READ_ONLY -18 /** Invalid argument */ -#define GRIB_INVALID_ARGUMENT -19 +#define GRIB_INVALID_ARGUMENT -19 /** Null handle */ -#define GRIB_NULL_HANDLE -20 +#define GRIB_NULL_HANDLE -20 /** Invalid section number */ -#define GRIB_INVALID_SECTION_NUMBER -21 +#define GRIB_INVALID_SECTION_NUMBER -21 /** Value cannot be missing */ -#define GRIB_VALUE_CANNOT_BE_MISSING -22 +#define GRIB_VALUE_CANNOT_BE_MISSING -22 /** Wrong message length */ -#define GRIB_WRONG_LENGTH -23 +#define GRIB_WRONG_LENGTH -23 /** Invalid key type */ -#define GRIB_INVALID_TYPE -24 +#define GRIB_INVALID_TYPE -24 /** Unable to set step */ -#define GRIB_WRONG_STEP -25 +#define GRIB_WRONG_STEP -25 /** Wrong units for step (step must be integer) */ -#define GRIB_WRONG_STEP_UNIT -26 +#define GRIB_WRONG_STEP_UNIT -26 /** Invalid file id */ -#define GRIB_INVALID_FILE -27 +#define GRIB_INVALID_FILE -27 /** Invalid grib id */ -#define GRIB_INVALID_GRIB -28 +#define GRIB_INVALID_GRIB -28 /** Invalid index id */ -#define GRIB_INVALID_INDEX -29 +#define GRIB_INVALID_INDEX -29 /** Invalid iterator id */ -#define GRIB_INVALID_ITERATOR -30 +#define GRIB_INVALID_ITERATOR -30 /** Invalid keys iterator id */ -#define GRIB_INVALID_KEYS_ITERATOR -31 +#define GRIB_INVALID_KEYS_ITERATOR -31 /** Invalid nearest id */ -#define GRIB_INVALID_NEAREST -32 +#define GRIB_INVALID_NEAREST -32 /** Invalid order by */ -#define GRIB_INVALID_ORDERBY -33 +#define GRIB_INVALID_ORDERBY -33 /** Missing a key from the fieldset */ -#define GRIB_MISSING_KEY -34 +#define GRIB_MISSING_KEY -34 /** The point is out of the grid area */ -#define GRIB_OUT_OF_AREA -35 +#define GRIB_OUT_OF_AREA -35 /** Concept no match */ -#define GRIB_CONCEPT_NO_MATCH -36 +#define GRIB_CONCEPT_NO_MATCH -36 /** Hash array no match */ -#define GRIB_HASH_ARRAY_NO_MATCH -37 +#define GRIB_HASH_ARRAY_NO_MATCH -37 /** Definitions files not found */ -#define GRIB_NO_DEFINITIONS -38 +#define GRIB_NO_DEFINITIONS -38 /** Wrong type while packing */ -#define GRIB_WRONG_TYPE -39 +#define GRIB_WRONG_TYPE -39 /** End of resource */ -#define GRIB_END -40 +#define GRIB_END -40 /** Unable to code a field without values */ -#define GRIB_NO_VALUES -41 +#define GRIB_NO_VALUES -41 /** Grid description is wrong or inconsistent */ -#define GRIB_WRONG_GRID -42 +#define GRIB_WRONG_GRID -42 /** End of index reached */ -#define GRIB_END_OF_INDEX -43 +#define GRIB_END_OF_INDEX -43 /** Null index */ -#define GRIB_NULL_INDEX -44 +#define GRIB_NULL_INDEX -44 /** End of resource reached when reading message */ -#define GRIB_PREMATURE_END_OF_FILE -45 +#define GRIB_PREMATURE_END_OF_FILE -45 /** An internal array is too small */ -#define GRIB_INTERNAL_ARRAY_TOO_SMALL -46 +#define GRIB_INTERNAL_ARRAY_TOO_SMALL -46 /** Message is too large for the current architecture */ -#define GRIB_MESSAGE_TOO_LARGE -47 +#define GRIB_MESSAGE_TOO_LARGE -47 /** Constant field */ -#define GRIB_CONSTANT_FIELD -48 +#define GRIB_CONSTANT_FIELD -48 /** Switch unable to find a matching case */ -#define GRIB_SWITCH_NO_MATCH -49 +#define GRIB_SWITCH_NO_MATCH -49 /** Underflow */ -#define GRIB_UNDERFLOW -50 +#define GRIB_UNDERFLOW -50 /** Message malformed */ -#define GRIB_MESSAGE_MALFORMED -51 +#define GRIB_MESSAGE_MALFORMED -51 /** Index is corrupted */ -#define GRIB_CORRUPTED_INDEX -52 +#define GRIB_CORRUPTED_INDEX -52 /** Invalid number of bits per value */ -#define GRIB_INVALID_BPV -53 +#define GRIB_INVALID_BPV -53 /** Edition of two messages is different */ -#define GRIB_DIFFERENT_EDITION -54 +#define GRIB_DIFFERENT_EDITION -54 /** Value is different */ -#define GRIB_VALUE_DIFFERENT -55 +#define GRIB_VALUE_DIFFERENT -55 /** Invalid key value */ -#define GRIB_INVALID_KEY_VALUE -56 +#define GRIB_INVALID_KEY_VALUE -56 /** String is smaller than requested */ -#define GRIB_STRING_TOO_SMALL -57 +#define GRIB_STRING_TOO_SMALL -57 /** Wrong type conversion */ -#define GRIB_WRONG_CONVERSION -58 +#define GRIB_WRONG_CONVERSION -58 /** Missing BUFR table entry for descriptor */ -#define GRIB_MISSING_BUFR_ENTRY -59 +#define GRIB_MISSING_BUFR_ENTRY -59 /** Null pointer */ -#define GRIB_NULL_POINTER -60 +#define GRIB_NULL_POINTER -60 /** Attribute is already present, cannot add */ -#define GRIB_ATTRIBUTE_CLASH -61 +#define GRIB_ATTRIBUTE_CLASH -61 /** Too many attributes. Increase MAX_ACCESSOR_ATTRIBUTES */ -#define GRIB_TOO_MANY_ATTRIBUTES -62 +#define GRIB_TOO_MANY_ATTRIBUTES -62 /** Attribute not found. */ -#define GRIB_ATTRIBUTE_NOT_FOUND -63 +#define GRIB_ATTRIBUTE_NOT_FOUND -63 /** Edition not supported. */ -#define GRIB_UNSUPPORTED_EDITION -64 +#define GRIB_UNSUPPORTED_EDITION -64 /** Value out of coding range */ -#define GRIB_OUT_OF_RANGE -65 +#define GRIB_OUT_OF_RANGE -65 /** Size of bitmap is incorrect */ -#define GRIB_WRONG_BITMAP_SIZE -66 +#define GRIB_WRONG_BITMAP_SIZE -66 /** Functionality not enabled */ -#define GRIB_FUNCTIONALITY_NOT_ENABLED -67 +#define GRIB_FUNCTIONALITY_NOT_ENABLED -67 +/** Value mismatch */ +#define GRIB_VALUE_MISMATCH -68 +/** Double values are different */ +#define GRIB_DOUBLE_VALUE_MISMATCH -69 +/** Long values are different */ +#define GRIB_LONG_VALUE_MISMATCH -70 +/** Byte values are different */ +#define GRIB_BYTE_VALUE_MISMATCH -71 +/** String values are different */ +#define GRIB_STRING_VALUE_MISMATCH -72 +/** Offset mismatch */ +#define GRIB_OFFSET_MISMATCH -73 +/** Count mismatch */ +#define GRIB_COUNT_MISMATCH -74 +/** Name mismatch */ +#define GRIB_NAME_MISMATCH -75 +/** Type mismatch */ +#define GRIB_TYPE_MISMATCH -76 +/** Type and value mismatch */ +#define GRIB_TYPE_AND_VALUE_MISMATCH -77 +/** Unable to compare accessors */ +#define GRIB_UNABLE_TO_COMPARE_ACCESSORS -78 +/** Assertion failure */ +#define GRIB_ASSERTION_FAILURE -79 /*! @}*/ #endif diff --git a/src/grib_api_internal.h b/src/grib_api_internal.h index 9f413495b..bf6b3694d 100644 --- a/src/grib_api_internal.h +++ b/src/grib_api_internal.h @@ -204,31 +204,22 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t* attr, int type); #include "grib_api.h" -#define GRIB_UNKNOWN_VALUE -9999.999 -#define GRIB_KEY_UNDEF "undef" - -#define GRIB_HANDLE_BIG_ECMWF_GRIB1 1 - #define MAX_ACCESSOR_ATTRIBUTES 20 #define MAX_FILE_HANDLES_WITH_MULTI 10 #define ACCESSORS_ARRAY_SIZE 5000 #define MAX_NUM_CONCEPTS 2000 #define MAX_NUM_HASH_ARRAY 2000 -#define GRIB_NAMESPACE 10 +#define CODES_NAMESPACE 10 #define MAX_NAMESPACE_LEN 64 -#define GRIB_MY_BUFFER 0 -#define GRIB_USER_BUFFER 1 +#define CODES_MY_BUFFER 0 +#define CODES_USER_BUFFER 1 -#define GRIB_REAL_MODE4 4 -#define GRIB_REAL_MODE8 8 +#define CODES_REAL_MODE8 8 #define MAX_NUM_SECTIONS 12 -#define GRIB_DISPOSABLE_MEMORY 0 -#define GRIB_LONG_LASTING_MEMORY 1 - #define GRIB_LOG_PERROR (1 << 10) #define GRIB_HASH_ARRAY_TYPE_UNKNOWN 0 @@ -236,17 +227,17 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t* attr, int type); #define GRIB_HASH_ARRAY_TYPE_DOUBLE 2 #define GRIB_HASH_ARRAY_TYPE_STRING 3 -#define CODES_GRIB 1 -#define CODES_BUFR 2 +#define CODES_GRIB 1 +#define CODES_BUFR 2 #define CODES_METAR 3 -#define CODES_GTS 4 +#define CODES_GTS 4 #define CODES_BUFR_UNPACK_STRUCTURE 0 -#define CODES_BUFR_UNPACK_FLAT 1 -#define CODES_BUFR_NEW_DATA 2 +#define CODES_BUFR_UNPACK_FLAT 1 +#define CODES_BUFR_NEW_DATA 2 #define MAX_SMART_TABLE_COLUMNS 20 -#define MAX_CODETABLE_ENTRIES 65536 +#define MAX_CODETABLE_ENTRIES 65536 /* ACCESSOR COMPARE FLAGS */ #define GRIB_COMPARE_NAMES (1 << 0) @@ -327,7 +318,6 @@ typedef void (*accessor_resize_proc)(grib_accessor*, size_t); typedef grib_accessor* (*accessor_next_proc)(grib_accessor*, int); typedef grib_section* (*accessor_sub_section_proc)(grib_accessor*); - typedef int (*accessor_pack_missing_proc)(grib_accessor*); typedef int (*accessor_pack_is_missing_proc)(grib_accessor*); typedef int (*accessor_pack_long_proc)(grib_accessor*, const long*, size_t* len); @@ -363,7 +353,6 @@ typedef int (*grib_binop_string_proc)(char*, char*); typedef struct second_order_packed second_order_packed; typedef void grib_expression_visit_proc(void* udata, grib_expression* e); - struct grib_key_value_list { const char* name; @@ -378,7 +367,6 @@ struct grib_key_value_list grib_key_value_list* next; }; - struct second_order_packed { unsigned long nbits_per_widths; @@ -403,9 +391,7 @@ struct grib_packer grib_unpack_proc unpack; /** < unpacking procedure */ }; - /* --------------- */ - typedef struct grib_loader grib_loader; typedef int (*grib_loader_init_accessor_proc)(grib_loader*, grib_accessor*, grib_arguments*); typedef int (*grib_loader_lookup_long_proc)(grib_context*, grib_loader*, const char* name, long* value); @@ -451,7 +437,6 @@ struct grib_accessors_list grib_accessors_list* last; }; - typedef int (*action_create_accessors_handle_proc)(grib_section* p, grib_action* a, grib_loader* h); typedef int (*action_notify_change_proc)(grib_action* a, grib_accessor* observer, grib_accessor* observed); @@ -490,7 +475,6 @@ struct grib_action_class action_execute_proc execute; }; - /** * a buffer * Structure containing the data of a message @@ -548,8 +532,6 @@ struct grib_accessor grib_accessor* same; /** < accessors with the same name */ long loop; /** < used in lists */ - long bufr_subset_number; /** < bufr subset (bufr data accessors belong to different subsets)*/ - long bufr_group_number; /** < used in bufr */ grib_virtual_value* vvalue; /** < virtual value used when transient flag on **/ const char* set; grib_accessor* attributes[MAX_ACCESSOR_ATTRIBUTES]; /** < attributes are accessors */ @@ -574,6 +556,7 @@ struct grib_accessor #define GRIB_ACCESSOR_FLAG_DOUBLE_TYPE (1 << 16) #define GRIB_ACCESSOR_FLAG_LOWERCASE (1 << 17) #define GRIB_ACCESSOR_FLAG_BUFR_COORD (1 << 18) +#define GRIB_ACCESSOR_FLAG_COPY_IF_CHANGING_EDITION (1 << 19) /** * a section accessor @@ -591,7 +574,6 @@ struct grib_section size_t padding; }; - struct grib_iterator_class { grib_iterator_class** super; @@ -626,10 +608,6 @@ struct grib_nearest_class }; /* --------------- */ -/* --------------- */ -typedef void (*search_all_callback_proc)(grib_accessor*, void* data); -/* --------------- */ - typedef int (*dumper_init_proc)(grib_dumper*); typedef void (*dumper_dump_proc)(grib_dumper*, grib_accessor*, const char* comment); typedef void (*dumper_dump_section_proc)(grib_dumper*, grib_accessor*, grib_block_of_accessors* block); @@ -714,7 +692,6 @@ typedef struct grib_trie_with_rank_list grib_trie_with_rank_list; typedef struct grib_trie_with_rank grib_trie_with_rank; typedef struct grib_itrie grib_itrie; - /* Dynamic array of strings */ struct grib_sarray { @@ -851,7 +828,6 @@ struct codes_condition double rightDouble; }; - void codes_assertion_failed(const char* message, const char* file, int line); #define MAX_SET_VALUES 10 @@ -861,9 +837,8 @@ struct grib_handle { grib_context* context; /** < context attached to this handle */ grib_buffer* buffer; /** < buffer attached to the handle */ - grib_section* root; /** the root section*/ - grib_section* asserts; /** the assertion section*/ - grib_section* rules; /** the rules section*/ + grib_section* root; /** the root section*/ + grib_section* rules; /** the rules section*/ grib_dependency* dependencies; /** List of dependencies */ grib_handle* main; /** Used during reparsing */ grib_handle* kid; /** Used during reparsing */ @@ -871,7 +846,6 @@ struct grib_handle int values_stack; const grib_values* values[MAX_SET_VALUES]; /** Used when setting multiple values at once */ size_t values_count[MAX_SET_VALUES]; /** Used when setting multiple values at once */ - int dont_trigger; /** Don't notify triggers */ int partial; /** Not a complete message (just headers) */ int header_mode; /** Header not jet complete */ char* gts_header; @@ -883,11 +857,7 @@ struct grib_handle char* section_length[MAX_NUM_SECTIONS]; int sections_count; off_t offset; - long bufr_subset_number; /* bufr subset number */ - long bufr_group_number; /* used in bufr */ /* grib_accessor* groups[MAX_NUM_GROUPS]; */ - long missingValueLong; - double missingValueDouble; ProductKind product_kind; /* grib_trie* bufr_elements_table; */ }; @@ -1561,33 +1531,3 @@ typedef struct j2k_encode_helper #endif -/* This part is automatically generated by ./errors.pl, do not edit */ -#ifndef grib_errors_internal_H -#define grib_errors_internal_H -/** Value mismatch */ -#define GRIB_VALUE_MISMATCH 1 -/** double values are different */ -#define GRIB_DOUBLE_VALUE_MISMATCH 2 -/** long values are different */ -#define GRIB_LONG_VALUE_MISMATCH 3 -/** byte values are different */ -#define GRIB_BYTE_VALUE_MISMATCH 4 -/** string values are different */ -#define GRIB_STRING_VALUE_MISMATCH 5 -/** Offset mismatch */ -#define GRIB_OFFSET_MISMATCH 6 -/** Count mismatch */ -#define GRIB_COUNT_MISMATCH 7 -/** Name mismatch */ -#define GRIB_NAME_MISMATCH 8 -/** Type mismatch */ -#define GRIB_TYPE_MISMATCH 9 -/** Type and value mismatch */ -#define GRIB_TYPE_AND_VALUE_MISMATCH 10 -/** Unable to compare accessors */ -#define GRIB_UNABLE_TO_COMPARE_ACCESSORS 11 -/** Unable to reset iterator */ -#define GRIB_UNABLE_TO_RESET_ITERATOR 12 -/** Assertion failure */ -#define GRIB_ASSERTION_FAILURE 13 -#endif diff --git a/src/grib_buffer.cc b/src/grib_buffer.cc index 581a66239..370cafc13 100644 --- a/src/grib_buffer.cc +++ b/src/grib_buffer.cc @@ -16,13 +16,13 @@ void grib_get_buffer_ownership(const grib_context* c, grib_buffer* b) { unsigned char* newdata; - if (b->property == GRIB_MY_BUFFER) + if (b->property == CODES_MY_BUFFER) return; newdata = (unsigned char*)grib_context_malloc(c, b->length); memcpy(newdata, b->data, b->length); b->data = newdata; - b->property = GRIB_MY_BUFFER; + b->property = CODES_MY_BUFFER; } grib_buffer* grib_create_growable_buffer(const grib_context* c) @@ -34,7 +34,7 @@ grib_buffer* grib_create_growable_buffer(const grib_context* c) return NULL; } - b->property = GRIB_MY_BUFFER; + b->property = CODES_MY_BUFFER; b->length = 10240; b->ulength = 0; b->data = (unsigned char*)grib_context_malloc_clear(c, b->length); @@ -58,7 +58,7 @@ grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, s return NULL; } - b->property = GRIB_USER_BUFFER; + b->property = CODES_USER_BUFFER; b->length = buflen; b->ulength = buflen; b->ulength_bits = buflen * 8; @@ -69,7 +69,7 @@ grib_buffer* grib_new_buffer(const grib_context* c, const unsigned char* data, s void grib_buffer_delete(const grib_context* c, grib_buffer* b) { - if (b->property == GRIB_MY_BUFFER) + if (b->property == CODES_MY_BUFFER) grib_context_free(c, b->data); b->length = 0; b->ulength = 0; diff --git a/src/grib_bufr_descriptor.cc b/src/grib_bufr_descriptor.cc index 68aa7e290..fa653bc29 100644 --- a/src/grib_bufr_descriptor.cc +++ b/src/grib_bufr_descriptor.cc @@ -89,20 +89,6 @@ int grib_bufr_descriptor_set_code(grib_accessor* tables_accessor, int code, bufr return err; } -void grib_bufr_descriptor_set_reference(bufr_descriptor* v, long reference) -{ - if (!v) - return; - v->reference = reference; -} - -void grib_bufr_descriptor_set_width(bufr_descriptor* v, long width) -{ - if (!v) - return; - v->width = width; -} - void grib_bufr_descriptor_set_scale(bufr_descriptor* v, long scale) { if (!v) diff --git a/src/grib_bufr_descriptors_array.cc b/src/grib_bufr_descriptors_array.cc index a5967f26c..0134048a2 100644 --- a/src/grib_bufr_descriptors_array.cc +++ b/src/grib_bufr_descriptors_array.cc @@ -40,11 +40,11 @@ bufr_descriptors_array* grib_bufr_descriptors_array_new(grib_context* c, size_t return v; } -bufr_descriptor* grib_bufr_descriptors_array_pop(bufr_descriptors_array* a) -{ - a->n -= 1; - return a->v[a->n]; -} +// bufr_descriptor* grib_bufr_descriptors_array_pop(bufr_descriptors_array* a) +// { +// a->n -= 1; +// return a->v[a->n]; +// } bufr_descriptor* grib_bufr_descriptors_array_pop_front(bufr_descriptors_array* a) { @@ -135,40 +135,38 @@ bufr_descriptors_array* grib_bufr_descriptors_array_append(bufr_descriptors_arra return v; } -bufr_descriptors_array* grib_bufr_descriptors_array_push_front(bufr_descriptors_array* v, bufr_descriptor* val) -{ - size_t i = 0; - if (!v) { - size_t start_size = DYN_ARRAY_SIZE_INIT; - size_t start_incsize = DYN_ARRAY_SIZE_INCR; - v = grib_bufr_descriptors_array_new(0, start_size, start_incsize); - } - - if (v->number_of_pop_front) { - v->v--; - v->number_of_pop_front--; - } - else { - if (v->n >= v->size) - v = grib_bufr_descriptors_array_resize(v); - for (i = v->n; i > 0; i--) - v[i] = v[i - 1]; - } - v->v[0] = val; - v->n++; - - return v; -} +// bufr_descriptors_array* grib_bufr_descriptors_array_push_front(bufr_descriptors_array* v, bufr_descriptor* val) +// { +// size_t i = 0; +// if (!v) { +// size_t start_size = DYN_ARRAY_SIZE_INIT; +// size_t start_incsize = DYN_ARRAY_SIZE_INCR; +// v = grib_bufr_descriptors_array_new(0, start_size, start_incsize); +// } +// if (v->number_of_pop_front) { +// v->v--; +// v->number_of_pop_front--; +// } +// else { +// if (v->n >= v->size) +// v = grib_bufr_descriptors_array_resize(v); +// for (i = v->n; i > 0; i--) +// v[i] = v[i - 1]; +// } +// v->v[0] = val; +// v->n++; +// return v; +// } bufr_descriptor* grib_bufr_descriptors_array_get(bufr_descriptors_array* a, size_t i) { return a->v[i]; } -void grib_bufr_descriptors_array_set(bufr_descriptors_array* a, size_t i, bufr_descriptor* v) -{ - a->v[i] = v; -} +// void grib_bufr_descriptors_array_set(bufr_descriptors_array* a, size_t i, bufr_descriptor* v) +// { +// a->v[i] = v; +// } void grib_bufr_descriptors_array_delete(bufr_descriptors_array* v) { @@ -203,18 +201,16 @@ void grib_bufr_descriptors_array_delete_array(bufr_descriptors_array* v) } } -bufr_descriptor** grib_bufr_descriptors_array_get_array(bufr_descriptors_array* v) -{ - bufr_descriptor** vv; - size_t i; - grib_context* c = grib_context_get_default(); - - vv = (bufr_descriptor**)grib_context_malloc_clear(c, sizeof(bufr_descriptor*) * v->n); - for (i = 0; i < v->n; i++) - vv[i] = grib_bufr_descriptor_clone(v->v[i]); - - return vv; -} +// bufr_descriptor** grib_bufr_descriptors_array_get_array(bufr_descriptors_array* v) +// { +// bufr_descriptor** vv; +// size_t i; +// grib_context* c = grib_context_get_default(); +// vv = (bufr_descriptor**)grib_context_malloc_clear(c, sizeof(bufr_descriptor*) * v->n); +// for (i = 0; i < v->n; i++) +// vv[i] = grib_bufr_descriptor_clone(v->v[i]); +// return vv; +// } size_t grib_bufr_descriptors_array_used_size(bufr_descriptors_array* v) { diff --git a/src/grib_context.cc b/src/grib_context.cc index 90b531f6f..8f52633eb 100644 --- a/src/grib_context.cc +++ b/src/grib_context.cc @@ -83,8 +83,7 @@ static void* default_long_lasting_malloc(const grib_context* c, size_t size) void* ret; ret = malloc(size); if (!ret) { - grib_context_log(c, GRIB_LOG_FATAL, "default_long_lasting_malloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return ret; } @@ -99,8 +98,7 @@ static void* default_buffer_malloc(const grib_context* c, size_t size) void* ret; ret = malloc(size); if (!ret) { - grib_context_log(c, GRIB_LOG_FATAL, "default_buffer_malloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return ret; } @@ -110,8 +108,7 @@ static void* default_buffer_realloc(const grib_context* c, void* p, size_t size) void* ret; ret = realloc(p, size); if (!ret) { - grib_context_log(c, GRIB_LOG_FATAL, "default_buffer_realloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return ret; } @@ -126,8 +123,7 @@ static void* default_malloc(const grib_context* c, size_t size) void* ret; ret = malloc(size); if (!ret) { - grib_context_log(c, GRIB_LOG_FATAL, "default_malloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return ret; } @@ -137,8 +133,7 @@ static void* default_realloc(const grib_context* c, void* p, size_t size) void* ret; ret = realloc(p, size); if (!ret) { - grib_context_log(c, GRIB_LOG_FATAL, "default_realloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return ret; } @@ -297,7 +292,7 @@ static grib_context default_grib_context = { 0, /* grib_concept_path */ 0, /* grib_reader */ 0, /* user data */ - GRIB_REAL_MODE8, /* real mode for fortran */ + CODES_REAL_MODE8, /* real mode for fortran */ #if MANAGE_MEM &grib_transient_free, /* free_mem */ @@ -908,9 +903,7 @@ void* grib_context_malloc_persistent(const grib_context* c, size_t size) { void* p = c->alloc_persistent_mem(c, size); if (!p) { - grib_context_log(c, GRIB_LOG_FATAL, - "grib_context_malloc_persistent: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return p; } @@ -941,8 +934,7 @@ void* grib_context_malloc(const grib_context* c, size_t size) else p = c->alloc_mem(c, size); if (!p) { - grib_context_log(c, GRIB_LOG_FATAL, "grib_context_malloc: error allocating %zu bytes", size); - Assert(0); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); } return p; } @@ -954,7 +946,7 @@ void* grib_context_realloc(const grib_context* c, void* p, size_t size) c = grib_context_get_default(); q = c->realloc_mem(c, p, size); if (!q) { - grib_context_log(c, GRIB_LOG_FATAL, "grib_context_realloc: error allocating %zu bytes", size); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); return NULL; } return q; @@ -989,7 +981,7 @@ void* grib_context_buffer_malloc(const grib_context* c, size_t size) else p = c->alloc_buffer_mem(c, size); if (!p) { - grib_context_log(c, GRIB_LOG_FATAL, "grib_context_buffer_malloc: error allocating %zu bytes", size); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); return NULL; } return p; @@ -1007,7 +999,7 @@ void* grib_context_buffer_realloc(const grib_context* c, void* p, size_t size) { void* q = c->realloc_buffer_mem(c, p, size); if (!q) { - grib_context_log(c, GRIB_LOG_FATAL, "grib_context_buffer_realloc: error allocating %zu bytes", size); + grib_context_log(c, GRIB_LOG_FATAL, "%s: error allocating %zu bytes", __func__, size); return NULL; } return q; diff --git a/src/grib_darray.cc b/src/grib_darray.cc index 3646e6937..f2250862d 100644 --- a/src/grib_darray.cc +++ b/src/grib_darray.cc @@ -10,7 +10,7 @@ #include "grib_api_internal.h" -/* For debugging purposes */ +// For debugging purposes void grib_darray_print(const char* title, const grib_darray* darray) { size_t i; @@ -46,7 +46,7 @@ grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize) v = (grib_darray*)grib_context_malloc_clear(c, sizeof(grib_darray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_darray_new unable to allocate %lu bytes\n", sizeof(grib_darray)); + "grib_darray_new unable to allocate %zu bytes", sizeof(grib_darray)); return NULL; } v->size = size; @@ -56,7 +56,7 @@ grib_darray* grib_darray_new(grib_context* c, size_t size, size_t incsize) v->v = (double*)grib_context_malloc_clear(c, sizeof(double) * size); if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_darray_new unable to allocate %lu bytes\n", sizeof(double) * size); + "grib_darray_new unable to allocate %zu bytes", sizeof(double) * size); return NULL; } return v; @@ -73,7 +73,7 @@ static grib_darray* grib_darray_resize(grib_darray* v) v->size = newsize; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_darray_resize unable to allocate %lu bytes\n", sizeof(double) * newsize); + "grib_darray_resize unable to allocate %zu bytes", sizeof(double) * newsize); return NULL; } return v; @@ -104,17 +104,17 @@ void grib_darray_delete(grib_context* c, grib_darray* v) grib_context_free(c, v); } -double* grib_darray_get_array(grib_context* c, grib_darray* v) -{ - double* ret = NULL; - size_t i = 0; - if (!v) - return NULL; - ret = (double*)grib_context_malloc_clear(c, sizeof(double) * v->n); - for (i = 0; i < v->n; i++) - ret[i] = v->v[i]; - return ret; -} +// double* grib_darray_get_array(grib_context* c, grib_darray* v) +// { +// double* ret = NULL; +// size_t i = 0; +// if (!v) +// return NULL; +// ret = (double*)grib_context_malloc_clear(c, sizeof(double) * v->n); +// for (i = 0; i < v->n; i++) +// ret[i] = v->v[i]; +// return ret; +// } int grib_darray_is_constant(grib_darray* v, double epsilon) { diff --git a/src/grib_dumper_class.cc b/src/grib_dumper_class.cc index 2c68e22df..3f204957c 100644 --- a/src/grib_dumper_class.cc +++ b/src/grib_dumper_class.cc @@ -81,6 +81,16 @@ void grib_dump_content(const grib_handle* h, FILE* f, const char* mode, unsigned { grib_dumper* dumper; dumper = grib_dumper_factory(mode ? mode : "serialize", h, f, flags, data); + if (!dumper) { + fprintf(stderr, "Here are some possible values for the dumper mode:\n"); + for (size_t i = 0; i < NUMBER(table); i++) { + const char* t = table[i].type; + if (strstr(t, "bufr") == NULL && strstr(t, "grib") == NULL) { + fprintf(stderr, "\t%s\n", t); + } + } + return; + } grib_dump_header(dumper, h); grib_dump_accessors_block(dumper, h->root->block); grib_dump_footer(dumper, h); @@ -92,6 +102,7 @@ void grib_dump_keys(grib_handle* h, FILE* f, const char* mode, unsigned long fla size_t i; grib_accessor* acc = NULL; grib_dumper* dumper = grib_dumper_factory(mode ? mode : "serialize", h, f, flags, data); + if (!dumper) return; for (i = 0; i < num_keys; ++i) { acc = grib_find_accessor(h, keys[i]); if (acc) @@ -125,6 +136,7 @@ void codes_dump_bufr_flat(grib_accessors_list* al, grib_handle* h, FILE* f, cons grib_dumper* dumper = NULL; Assert(h->product_kind == PRODUCT_BUFR); dumper = grib_dumper_factory(mode ? mode : "serialize", h, f, flags, data); + if (!dumper) return; grib_dump_header(dumper, h); grib_dump_accessors_list(dumper, al); grib_dump_footer(dumper, h); diff --git a/src/grib_dumper_class_wmo.cc b/src/grib_dumper_class_wmo.cc index 7c898543a..a884d2966 100644 --- a/src/grib_dumper_class_wmo.cc +++ b/src/grib_dumper_class_wmo.cc @@ -8,11 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/************************************** - * Enrico Fucile - **************************************/ - - #include "grib_api_internal.h" #include /* @@ -225,7 +220,7 @@ static void dump_bits(grib_dumper* d, grib_accessor* a, const char* comment) err = grib_unpack_long(a, &value, &size); set_begin_end(d, a); - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ + //for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) fprintf(self->dumper.out, "%s (int) ", a->creator->op); @@ -239,7 +234,7 @@ static void dump_bits(grib_dumper* d, grib_accessor* a, const char* comment) } if(comment) { - /* ECC-1186: Whole comment is too big, so pick the part that follows the ':' i.e. flag table file */ + // ECC-1186: Whole comment is too big, so pick the part that follows the ':' i.e. flag table file const char* p = strchr(comment, ':'); if (p) fprintf(self->dumper.out," (%s) ]", p+1); else fprintf(self->dumper.out, "]"); @@ -271,7 +266,7 @@ static void dump_double(grib_dumper* d, grib_accessor* a, const char* comment) err = grib_unpack_double(a, &value, &size); set_begin_end(d, a); - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ + //for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) @@ -281,7 +276,7 @@ static void dump_double(grib_dumper* d, grib_accessor* a, const char* comment) fprintf(self->dumper.out, "%s = MISSING", a->name); else fprintf(self->dumper.out, "%s = %g", a->name, value); - /*if(comment) fprintf(self->dumper.out," [%s]",comment);*/ + // if(comment) fprintf(self->dumper.out," [%s]",comment); if (err == 0) print_hexadecimal(self->dumper.out, d->option_flags, a); @@ -322,7 +317,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment) p++; } - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ + //for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) fprintf(self->dumper.out, "%s (str) ", a->creator->op); @@ -332,7 +327,7 @@ static void dump_string(grib_dumper* d, grib_accessor* a, const char* comment) if (err == 0) print_hexadecimal(self->dumper.out, d->option_flags, a); - /*if(comment) fprintf(self->dumper.out," [%s]",comment);*/ + // if(comment) fprintf(self->dumper.out," [%s]",comment); if (err) fprintf(self->dumper.out, " *** ERR=%d (%s) [grib_dumper_wmo::dump_string]", err, grib_get_error_message(err)); aliases(d, a); @@ -354,7 +349,7 @@ static void dump_bytes(grib_dumper* d, grib_accessor* a, const char* comment) set_begin_end(d, a); - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ + // for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) fprintf(self->dumper.out, "%s ", a->creator->op); @@ -388,7 +383,7 @@ static void dump_bytes(grib_dumper* d, grib_accessor* a, const char* comment) } k = 0; - /* if(size > 100) size = 100; */ + // if(size > 100) size = 100; while (k < size) { int j; for (i = 0; i < d->depth + 3; i++) @@ -438,12 +433,11 @@ static void dump_values(grib_dumper* d, grib_accessor* a) set_begin_end(d, a); - /* For the DIAG pseudo GRIBs. Key charValues uses 1-byte integers to represent a character */ + // For the DIAG pseudo GRIBs. Key charValues uses 1-byte integers to represent a character if (a->flags & GRIB_ACCESSOR_FLAG_STRING_TYPE) { is_char = 1; } - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) { char type_name[32] = ""; @@ -487,7 +481,6 @@ static void dump_values(grib_dumper* d, grib_accessor* a) k = 0; while (k < size) { int j; - /*for(i = 0; i < d->depth + 3 ; i++) fprintf(self->dumper.out," ");*/ for (j = 0; j < 8 && k < size; j++, k++) { if (is_char) fprintf(self->dumper.out, "'%c'", (char)buf[k]); @@ -503,21 +496,19 @@ static void dump_values(grib_dumper* d, grib_accessor* a) // fprintf(self->dumper.out, "%d %g\n", k, buf[k]); } if (more) { - /*for(i = 0; i < d->depth + 3 ; i++) fprintf(self->dumper.out," ");*/ + //for(i = 0; i < d->depth + 3 ; i++) fprintf(self->dumper.out," "); fprintf(self->dumper.out, "... %lu more values\n", (unsigned long)more); } - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ fprintf(self->dumper.out, "} # %s %s \n", a->creator->op, a->name); grib_context_free(d->context, buf); } static void dump_label(grib_dumper* d, grib_accessor* a, const char* comment) { - /*grib_dumper_wmo *self = (grib_dumper_wmo*)d; - - for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); - fprintf(self->dumper.out,"----> %s %s %s\n",a->creator->op, a->name,comment?comment:"");*/ +// grib_dumper_wmo *self = (grib_dumper_wmo*)d; +// for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); +// fprintf(self->dumper.out,"----> %s %s %s\n",a->creator->op, a->name,comment?comment:""); } static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accessors* block) @@ -531,7 +522,6 @@ static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accesso if (!strncmp(a->name, "section", 7)) is_wmo_section = 1; - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ if (is_wmo_section) { upper = (char*)malloc(strlen(a->name) + 1); Assert(upper); @@ -551,13 +541,13 @@ static void dump_section(grib_dumper* d, grib_accessor* a, grib_block_of_accesso else { } - /*printf("------------- section_offset = %ld\n",self->section_offset);*/ + //printf("------------- section_offset = %ld\n",self->section_offset); d->depth += 3; grib_dump_accessors_block(d, block); d->depth -= 3; - /*for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," ");*/ - /*fprintf(self->dumper.out,"<===== %s %s\n",a->creator->op, a->name);*/ + //for(i = 0; i < d->depth ; i++) fprintf(self->dumper.out," "); + //fprintf(self->dumper.out,"<===== %s %s\n",a->creator->op, a->name); } static void set_begin_end(grib_dumper* d, grib_accessor* a) @@ -631,7 +621,7 @@ static void dump_string_array(grib_dumper* d, grib_accessor* a, const char* comm err = grib_unpack_string_array(a, values, &size); - /* print_offset(self->dumper.out,d,a); */ + // print_offset(self->dumper.out,d,a); print_offset(self->dumper.out, self->begin, self->theEnd); if ((d->option_flags & GRIB_DUMP_FLAG_TYPE) != 0) { diff --git a/src/grib_errors.cc b/src/grib_errors.cc index a057694a7..ac61a6154 100644 --- a/src/grib_errors.cc +++ b/src/grib_errors.cc @@ -80,19 +80,18 @@ static const char *errors[] = { "Value out of coding range", /* -65 GRIB_OUT_OF_RANGE */ "Size of bitmap is incorrect", /* -66 GRIB_WRONG_BITMAP_SIZE */ "Functionality not enabled", /* -67 GRIB_FUNCTIONALITY_NOT_ENABLED */ -"Value mismatch", /* 1 GRIB_VALUE_MISMATCH */ -"double values are different", /* 2 GRIB_DOUBLE_VALUE_MISMATCH */ -"long values are different", /* 3 GRIB_LONG_VALUE_MISMATCH */ -"byte values are different", /* 4 GRIB_BYTE_VALUE_MISMATCH */ -"string values are different", /* 5 GRIB_STRING_VALUE_MISMATCH */ -"Offset mismatch", /* 6 GRIB_OFFSET_MISMATCH */ -"Count mismatch", /* 7 GRIB_COUNT_MISMATCH */ -"Name mismatch", /* 8 GRIB_NAME_MISMATCH */ -"Type mismatch", /* 9 GRIB_TYPE_MISMATCH */ -"Type and value mismatch", /* 10 GRIB_TYPE_AND_VALUE_MISMATCH */ -"Unable to compare accessors", /* 11 GRIB_UNABLE_TO_COMPARE_ACCESSORS */ -"Unable to reset iterator", /* 12 GRIB_UNABLE_TO_RESET_ITERATOR */ -"Assertion failure", /* 13 GRIB_ASSERTION_FAILURE */ +"Value mismatch", /* -68 GRIB_VALUE_MISMATCH */ +"Double values are different", /* -69 GRIB_DOUBLE_VALUE_MISMATCH */ +"Long values are different", /* -70 GRIB_LONG_VALUE_MISMATCH */ +"Byte values are different", /* -71 GRIB_BYTE_VALUE_MISMATCH */ +"String values are different", /* -72 GRIB_STRING_VALUE_MISMATCH */ +"Offset mismatch", /* -73 GRIB_OFFSET_MISMATCH */ +"Count mismatch", /* -74 GRIB_COUNT_MISMATCH */ +"Name mismatch", /* -75 GRIB_NAME_MISMATCH */ +"Type mismatch", /* -76 GRIB_TYPE_MISMATCH */ +"Type and value mismatch", /* -77 GRIB_TYPE_AND_VALUE_MISMATCH */ +"Unable to compare accessors", /* -78 GRIB_UNABLE_TO_COMPARE_ACCESSORS */ +"Assertion failure", /* -79 GRIB_ASSERTION_FAILURE */ }; #define NUMBER(a) sizeof(a)/sizeof(a[0]) diff --git a/src/grib_errors.txt b/src/grib_errors.txt index c9e4ccb18..6019f6601 100644 --- a/src/grib_errors.txt +++ b/src/grib_errors.txt @@ -73,3 +73,15 @@ GRIB_UNSUPPORTED_EDITION Edition not supported. GRIB_OUT_OF_RANGE Value out of coding range GRIB_WRONG_BITMAP_SIZE Size of bitmap is incorrect GRIB_FUNCTIONALITY_NOT_ENABLED Functionality not enabled +GRIB_VALUE_MISMATCH Value mismatch +GRIB_DOUBLE_VALUE_MISMATCH Double values are different +GRIB_LONG_VALUE_MISMATCH Long values are different +GRIB_BYTE_VALUE_MISMATCH Byte values are different +GRIB_STRING_VALUE_MISMATCH String values are different +GRIB_OFFSET_MISMATCH Offset mismatch +GRIB_COUNT_MISMATCH Count mismatch +GRIB_NAME_MISMATCH Name mismatch +GRIB_TYPE_MISMATCH Type mismatch +GRIB_TYPE_AND_VALUE_MISMATCH Type and value mismatch +GRIB_UNABLE_TO_COMPARE_ACCESSORS Unable to compare accessors +GRIB_ASSERTION_FAILURE Assertion failure diff --git a/src/grib_errors_internal.txt b/src/grib_errors_internal.txt index eb8fd4da7..e69de29bb 100644 --- a/src/grib_errors_internal.txt +++ b/src/grib_errors_internal.txt @@ -1,14 +0,0 @@ -/* accessors compare */ -GRIB_VALUE_MISMATCH Value mismatch -GRIB_DOUBLE_VALUE_MISMATCH double values are different -GRIB_LONG_VALUE_MISMATCH long values are different -GRIB_BYTE_VALUE_MISMATCH byte values are different -GRIB_STRING_VALUE_MISMATCH string values are different -GRIB_OFFSET_MISMATCH Offset mismatch -GRIB_COUNT_MISMATCH Count mismatch -GRIB_NAME_MISMATCH Name mismatch -GRIB_TYPE_MISMATCH Type mismatch -GRIB_TYPE_AND_VALUE_MISMATCH Type and value mismatch -GRIB_UNABLE_TO_COMPARE_ACCESSORS Unable to compare accessors -GRIB_UNABLE_TO_RESET_ITERATOR Unable to reset iterator -GRIB_ASSERTION_FAILURE Assertion failure diff --git a/src/grib_expression_class_functor.cc b/src/grib_expression_class_functor.cc index 99ab0ad36..c7ffc072e 100644 --- a/src/grib_expression_class_functor.cc +++ b/src/grib_expression_class_functor.cc @@ -144,7 +144,7 @@ static int evaluate_long(grib_expression* g, grib_handle* h, long* lres) char* env = getenv(p); if (env) { long lval = 0; - if (string_to_long(env, &lval) == GRIB_SUCCESS) { + if (string_to_long(env, &lval, 1) == GRIB_SUCCESS) { *lres = lval; return GRIB_SUCCESS; } diff --git a/src/grib_filepool.cc b/src/grib_filepool.cc index 4ba9a2432..2282fe3eb 100644 --- a/src/grib_filepool.cc +++ b/src/grib_filepool.cc @@ -41,6 +41,8 @@ static void init() static short next_id = 0; +static grib_file* grib_file_new(grib_context* c, const char* name, int* err); + /* Note: A fast cut-down version of strcmp which does NOT return -1 */ /* 0 means input strings are equal and 1 means not equal */ GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b) @@ -78,115 +80,95 @@ void grib_file_pool_clean() } } -static void grib_file_pool_change_id() -{ - grib_file* file; - - if (!file_pool.first) - return; - - file = file_pool.first; - while (file) { - file->id += 1000; - file = file->next; - } -} - -static grib_file* grib_read_file(grib_context* c, FILE* fh, int* err) -{ - short marker = 0; - short id = 0; - grib_file* file; - *err = grib_read_short(fh, &marker); - if (!marker) - return NULL; - - file = (grib_file*)grib_context_malloc_clear(c, sizeof(grib_file)); - file->buffer = 0; - file->name = grib_read_string(c, fh, err); - if (*err) - return NULL; - - *err = grib_read_short(fh, &id); - file->id = id; - if (*err) - return NULL; - - file->next = grib_read_file(c, fh, err); - if (*err) - return NULL; - - return file; -} - -static int grib_write_file(FILE* fh, grib_file* file) -{ - int err = 0; - - if (!file) - return grib_write_null_marker(fh); - - err = grib_write_not_null_marker(fh); - if (err) - return err; - - err = grib_write_string(fh, file->name); - if (err) - return err; - - err = grib_write_short(fh, (short)file->id); - if (err) - return err; - - return grib_write_file(fh, file->next); -} +// static void grib_file_pool_change_id() +// { +// grib_file* file; +// if (!file_pool.first) +// return; +// file = file_pool.first; +// while (file) { +// file->id += 1000; +// file = file->next; +// } +// } + +// static grib_file* grib_read_file(grib_context* c, FILE* fh, int* err) +// { +// short marker = 0; +// short id = 0; +// grib_file* file; +// *err = grib_read_short(fh, &marker); +// if (!marker) +// return NULL; +// file = (grib_file*)grib_context_malloc_clear(c, sizeof(grib_file)); +// file->buffer = 0; +// file->name = grib_read_string(c, fh, err); +// if (*err) +// return NULL; +// *err = grib_read_short(fh, &id); +// file->id = id; +// if (*err) +// return NULL; +// file->next = grib_read_file(c, fh, err); +// if (*err) +// return NULL; +// return file; +// } + +// static int grib_write_file(FILE* fh, grib_file* file) +// { +// int err = 0; +// if (!file) +// return grib_write_null_marker(fh); +// err = grib_write_not_null_marker(fh); +// if (err) +// return err; +// err = grib_write_string(fh, file->name); +// if (err) +// return err; +// err = grib_write_short(fh, (short)file->id); +// if (err) +// return err; +// return grib_write_file(fh, file->next); +// } grib_file* grib_file_pool_get_files() { return file_pool.first; } -int grib_file_pool_read(grib_context* c, FILE* fh) -{ - int err = 0; - short marker = 0; - grib_file* file; - - if (!c) - c = grib_context_get_default(); - - err = grib_read_short(fh, &marker); - if (!marker) { - grib_context_log(c, GRIB_LOG_ERROR, - "Unable to find file information in index file\n"); - return GRIB_INVALID_FILE; - } - - grib_file_pool_change_id(); - file = file_pool.first; - - while (file->next) - file = file->next; - - file->next = grib_read_file(c, fh, &err); - if (err) - return err; - - return GRIB_SUCCESS; -} - -int grib_file_pool_write(FILE* fh) -{ - int err = 0; - if (!file_pool.first) - return grib_write_null_marker(fh); - - err = grib_write_not_null_marker(fh); - if (err) - return err; - - return grib_write_file(fh, file_pool.first); -} +// int grib_file_pool_read(grib_context* c, FILE* fh) +// { +// int err = 0; +// short marker = 0; +// grib_file* file; +// if (!c) c = grib_context_get_default(); +// err = grib_read_short(fh, &marker); +// if (!marker) { +// grib_context_log(c, GRIB_LOG_ERROR, +// "Unable to find file information in index file"); +// return GRIB_INVALID_FILE; +// } +// grib_file_pool_change_id(); +// file = file_pool.first; +// while (file->next) +// file = file->next; +// file->next = grib_read_file(c, fh, &err); +// if (err) +// return err; +// return GRIB_SUCCESS; +// } + +// int grib_file_pool_write(FILE* fh) +// { +// int err = 0; +// if (!file_pool.first) +// return grib_write_null_marker(fh); +// err = grib_write_not_null_marker(fh); +// if (err) +// return err; +// return grib_write_file(fh, file_pool.first); +// } grib_file* grib_file_open(const char* filename, const char* mode, int* err) { @@ -244,7 +226,7 @@ grib_file* grib_file_open(const char* filename, const char* mode, int* err) } if (!file->handle) { - grib_context_log(file->context, GRIB_LOG_PERROR, "grib_file_open: cannot open file %s", file->name); + grib_context_log(file->context, GRIB_LOG_PERROR, "%s: Cannot open file '%s'", __func__, file->name); *err = GRIB_IO_PROBLEM; GRIB_MUTEX_UNLOCK(&mutex1); return NULL; @@ -254,7 +236,7 @@ grib_file* grib_file_open(const char* filename, const char* mode, int* err) if (file_pool.context->io_buffer_size) { #ifdef POSIX_MEMALIGN if (posix_memalign((void**)&(file->buffer), sysconf(_SC_PAGESIZE), file_pool.context->io_buffer_size)) { - grib_context_log(file->context, GRIB_LOG_FATAL, "posix_memalign unable to allocate io_buffer\n"); + grib_context_log(file->context, GRIB_LOG_FATAL, "posix_memalign unable to allocate io_buffer"); } #else file->buffer = (char*)malloc(file_pool.context->io_buffer_size); @@ -378,35 +360,28 @@ grib_file* grib_get_file(const char* filename, int* err) return file; } -grib_file* grib_find_file(short id) -{ - grib_file* file = NULL; - - if (file_pool.current->name && id == file_pool.current->id) { - return file_pool.current; - } - - file = file_pool.first; - while (file) { - if (id == file->id) - break; - file = file->next; - } - - return file; -} - -grib_file* grib_file_new(grib_context* c, const char* name, int* err) +// grib_file* grib_find_file(short id) +// { +// grib_file* file = NULL; +// if (file_pool.current->name && id == file_pool.current->id) { +// return file_pool.current; +// } +// file = file_pool.first; +// while (file) { +// if (id == file->id) +// break; +// file = file->next; +// } +// return file; +// } + +static grib_file* grib_file_new(grib_context* c, const char* name, int* err) { - grib_file* file; - - if (!c) - c = grib_context_get_default(); - - file = (grib_file*)grib_context_malloc_clear(c, sizeof(grib_file)); + if (!c) c = grib_context_get_default(); + grib_file* file = (grib_file*)grib_context_malloc_clear(c, sizeof(grib_file)); if (!file) { - grib_context_log(c, GRIB_LOG_ERROR, "grib_file_new: unable to allocate memory"); + grib_context_log(c, GRIB_LOG_ERROR, "%s: Unable to allocate memory", __func__); *err = GRIB_OUT_OF_MEMORY; return NULL; } diff --git a/src/grib_geography.cc b/src/grib_geography.cc index b385ceb10..d70945d32 100644 --- a/src/grib_geography.cc +++ b/src/grib_geography.cc @@ -91,3862 +91,10 @@ static void gauss_first_guess(long trunc, double* vals) } } -/* Performance: return the precomputed latitudes for N=1280 */ -static int get_precomputed_latitudes_N1280(double* lats) -{ - lats[0]=89.946187715665616; - lats[1]=89.876478353332288; - lats[2]=89.806357319542244; - lats[3]=89.736143271609578; - lats[4]=89.6658939412157; - lats[5]=89.595627537554492; - lats[6]=89.525351592371393; - lats[7]=89.45506977912261; - lats[8]=89.3847841013921; - lats[9]=89.314495744374256; - lats[10]=89.24420545380525; - lats[11]=89.173913722284126; - lats[12]=89.103620888238879; - lats[13]=89.033327191845927; - lats[14]=88.96303280826325; - lats[15]=88.892737868230952; - lats[16]=88.822442471310097; - lats[17]=88.752146694650691; - lats[18]=88.681850598961759; - lats[19]=88.611554232668382; - lats[20]=88.541257634868515; - lats[21]=88.470960837474877; - lats[22]=88.40066386679355; - lats[23]=88.330366744702559; - lats[24]=88.26006948954614; - lats[25]=88.189772116820762; - lats[26]=88.119474639706425; - lats[27]=88.049177069484486; - lats[28]=87.978879415867283; - lats[29]=87.908581687261687; - lats[30]=87.838283890981543; - lats[31]=87.767986033419561; - lats[32]=87.697688120188062; - lats[33]=87.627390156234085; - lats[34]=87.557092145935584; - lats[35]=87.486794093180748; - lats[36]=87.416496001434894; - lats[37]=87.346197873795816; - lats[38]=87.275899713041966; - lats[39]=87.205601521672108; - lats[40]=87.135303301939786; - lats[41]=87.065005055882821; - lats[42]=86.994706785348129; - lats[43]=86.924408492014166; - lats[44]=86.854110177408927; - lats[45]=86.783811842927179; - lats[46]=86.713513489844246; - lats[47]=86.643215119328573; - lats[48]=86.572916732453024; - lats[49]=86.502618330203831; - lats[50]=86.432319913489792; - lats[51]=86.362021483149363; - lats[52]=86.291723039957418; - lats[53]=86.221424584631109; - lats[54]=86.151126117835304; - lats[55]=86.080827640187209; - lats[56]=86.010529152260403; - lats[57]=85.940230654588888; - lats[58]=85.869932147670127; - lats[59]=85.799633631968391; - lats[60]=85.729335107917464; - lats[61]=85.659036575922883; - lats[62]=85.588738036364362; - lats[63]=85.518439489597966; - lats[64]=85.448140935957483; - lats[65]=85.377842375756586; - lats[66]=85.307543809290152; - lats[67]=85.237245236835548; - lats[68]=85.16694665865414; - lats[69]=85.09664807499216; - lats[70]=85.026349486081983; - lats[71]=84.95605089214304; - lats[72]=84.885752293382765; - lats[73]=84.81545368999717; - lats[74]=84.745155082171991; - lats[75]=84.674856470082915; - lats[76]=84.604557853896708; - lats[77]=84.534259233771479; - lats[78]=84.463960609857125; - lats[79]=84.393661982296322; - lats[80]=84.323363351224444; - lats[81]=84.253064716770425; - lats[82]=84.18276607905679; - lats[83]=84.112467438200326; - lats[84]=84.042168794312317; - lats[85]=83.971870147498763; - lats[86]=83.901571497860914; - lats[87]=83.831272845495249; - lats[88]=83.760974190494011; - lats[89]=83.690675532945292; - lats[90]=83.620376872933264; - lats[91]=83.550078210538487; - lats[92]=83.479779545838113; - lats[93]=83.409480878905782; - lats[94]=83.339182209812321; - lats[95]=83.268883538625232; - lats[96]=83.198584865409657; - lats[97]=83.128286190227698; - lats[98]=83.057987513139125; - lats[99]=82.987688834201322; - lats[100]=82.917390153469313; - lats[101]=82.84709147099602; - lats[102]=82.77679278683226; - lats[103]=82.706494101026948; - lats[104]=82.63619541362705; - lats[105]=82.56589672467787; - lats[106]=82.495598034222837; - lats[107]=82.425299342304029; - lats[108]=82.355000648961692; - lats[109]=82.284701954234833; - lats[110]=82.214403258160871; - lats[111]=82.144104560776; - lats[112]=82.073805862115165; - lats[113]=82.003507162211946; - lats[114]=81.933208461098829; - lats[115]=81.862909758807191; - lats[116]=81.792611055367345; - lats[117]=81.722312350808508; - lats[118]=81.652013645158945; - lats[119]=81.581714938445955; - lats[120]=81.511416230696042; - lats[121]=81.441117521934686; - lats[122]=81.370818812186627; - lats[123]=81.300520101475826; - lats[124]=81.230221389825374; - lats[125]=81.159922677257711; - lats[126]=81.089623963794551; - lats[127]=81.019325249456955; - lats[128]=80.949026534265244; - lats[129]=80.878727818239184; - lats[130]=80.808429101397948; - lats[131]=80.73813038376008; - lats[132]=80.667831665343556; - lats[133]=80.59753294616587; - lats[134]=80.527234226243991; - lats[135]=80.456935505594302; - lats[136]=80.386636784232863; - lats[137]=80.316338062175078; - lats[138]=80.246039339436052; - lats[139]=80.175740616030438; - lats[140]=80.105441891972376; - lats[141]=80.035143167275749; - lats[142]=79.9648444419539; - lats[143]=79.894545716019948; - lats[144]=79.824246989486554; - lats[145]=79.753948262366038; - lats[146]=79.683649534670437; - lats[147]=79.61335080641139; - lats[148]=79.543052077600308; - lats[149]=79.472753348248219; - lats[150]=79.402454618365894; - lats[151]=79.332155887963822; - lats[152]=79.261857157052191; - lats[153]=79.191558425640977; - lats[154]=79.121259693739859; - lats[155]=79.050960961358285; - lats[156]=78.980662228505423; - lats[157]=78.910363495190211; - lats[158]=78.840064761421445; - lats[159]=78.769766027207638; - lats[160]=78.699467292557102; - lats[161]=78.629168557477882; - lats[162]=78.558869821977908; - lats[163]=78.488571086064923; - lats[164]=78.418272349746417; - lats[165]=78.347973613029708; - lats[166]=78.277674875922045; - lats[167]=78.207376138430348; - lats[168]=78.137077400561424; - lats[169]=78.066778662322022; - lats[170]=77.996479923718596; - lats[171]=77.926181184757539; - lats[172]=77.855882445445019; - lats[173]=77.785583705787161; - lats[174]=77.71528496578982; - lats[175]=77.644986225458879; - lats[176]=77.574687484799924; - lats[177]=77.504388743818524; - lats[178]=77.434090002520122; - lats[179]=77.363791260909963; - lats[180]=77.293492518993247; - lats[181]=77.22319377677502; - lats[182]=77.15289503426024; - lats[183]=77.082596291453768; - lats[184]=77.012297548360323; - lats[185]=76.941998804984564; - lats[186]=76.871700061330955; - lats[187]=76.801401317404; - lats[188]=76.731102573208048; - lats[189]=76.660803828747362; - lats[190]=76.59050508402602; - lats[191]=76.520206339048215; - lats[192]=76.449907593817869; - lats[193]=76.379608848338933; - lats[194]=76.3093101026152; - lats[195]=76.239011356650423; - lats[196]=76.16871261044831; - lats[197]=76.098413864012443; - lats[198]=76.028115117346374; - lats[199]=75.957816370453543; - lats[200]=75.887517623337317; - lats[201]=75.81721887600105; - lats[202]=75.746920128447996; - lats[203]=75.67662138068134; - lats[204]=75.60632263270422; - lats[205]=75.536023884519707; - lats[206]=75.465725136130786; - lats[207]=75.395426387540439; - lats[208]=75.325127638751567; - lats[209]=75.254828889766983; - lats[210]=75.184530140589501; - lats[211]=75.114231391221821; - lats[212]=75.043932641666672; - lats[213]=74.973633891926625; - lats[214]=74.903335142004323; - lats[215]=74.833036391902269; - lats[216]=74.762737641622991; - lats[217]=74.692438891168877; - lats[218]=74.622140140542356; - lats[219]=74.551841389745761; - lats[220]=74.481542638781434; - lats[221]=74.411243887651622; - lats[222]=74.340945136358584; - lats[223]=74.270646384904481; - lats[224]=74.200347633291472; - lats[225]=74.13004888152166; - lats[226]=74.059750129597163; - lats[227]=73.98945137751997; - lats[228]=73.919152625292114; - lats[229]=73.848853872915541; - lats[230]=73.778555120392184; - lats[231]=73.70825636772399; - lats[232]=73.637957614912779; - lats[233]=73.567658861960396; - lats[234]=73.497360108868662; - lats[235]=73.427061355639339; - lats[236]=73.356762602274188; - lats[237]=73.2864638487749; - lats[238]=73.216165095143182; - lats[239]=73.145866341380668; - lats[240]=73.075567587489019; - lats[241]=73.005268833469799; - lats[242]=72.934970079324657; - lats[243]=72.864671325055056; - lats[244]=72.794372570662574; - lats[245]=72.724073816148703; - lats[246]=72.653775061514935; - lats[247]=72.583476306762691; - lats[248]=72.513177551893421; - lats[249]=72.442878796908545; - lats[250]=72.3725800418094; - lats[251]=72.302281286597392; - lats[252]=72.231982531273843; - lats[253]=72.161683775840089; - lats[254]=72.091385020297409; - lats[255]=72.02108626464711; - lats[256]=71.950787508890414; - lats[257]=71.880488753028587; - lats[258]=71.810189997062835; - lats[259]=71.739891240994368; - lats[260]=71.669592484824364; - lats[261]=71.599293728553988; - lats[262]=71.528994972184378; - lats[263]=71.458696215716685; - lats[264]=71.388397459152031; - lats[265]=71.318098702491469; - lats[266]=71.247799945736105; - lats[267]=71.177501188887007; - lats[268]=71.107202431945211; - lats[269]=71.036903674911756; - lats[270]=70.966604917787635; - lats[271]=70.896306160573886; - lats[272]=70.826007403271475; - lats[273]=70.755708645881384; - lats[274]=70.685409888404578; - lats[275]=70.615111130841967; - lats[276]=70.544812373194532; - lats[277]=70.474513615463138; - lats[278]=70.404214857648739; - lats[279]=70.333916099752187; - lats[280]=70.263617341774406; - lats[281]=70.193318583716191; - lats[282]=70.123019825578467; - lats[283]=70.052721067362043; - lats[284]=69.982422309067744; - lats[285]=69.912123550696421; - lats[286]=69.841824792248843; - lats[287]=69.771526033725834; - lats[288]=69.701227275128161; - lats[289]=69.630928516456592; - lats[290]=69.560629757711908; - lats[291]=69.490330998894862; - lats[292]=69.420032240006194; - lats[293]=69.349733481046613; - lats[294]=69.279434722016902; - lats[295]=69.209135962917699; - lats[296]=69.138837203749759; - lats[297]=69.068538444513763; - lats[298]=68.998239685210365; - lats[299]=68.927940925840304; - lats[300]=68.85764216640419; - lats[301]=68.787343406902693; - lats[302]=68.717044647336493; - lats[303]=68.646745887706189; - lats[304]=68.576447128012447; - lats[305]=68.506148368255865; - lats[306]=68.435849608437067; - lats[307]=68.365550848556666; - lats[308]=68.295252088615257; - lats[309]=68.224953328613438; - lats[310]=68.154654568551791; - lats[311]=68.084355808430871; - lats[312]=68.014057048251274; - lats[313]=67.943758288013555; - lats[314]=67.873459527718282; - lats[315]=67.803160767365966; - lats[316]=67.732862006957205; - lats[317]=67.662563246492482; - lats[318]=67.592264485972336; - lats[319]=67.521965725397308; - lats[320]=67.451666964767895; - lats[321]=67.381368204084609; - lats[322]=67.311069443347961; - lats[323]=67.240770682558434; - lats[324]=67.170471921716526; - lats[325]=67.100173160822706; - lats[326]=67.029874399877471; - lats[327]=66.95957563888129; - lats[328]=66.889276877834618; - lats[329]=66.818978116737924; - lats[330]=66.748679355591662; - lats[331]=66.678380594396273; - lats[332]=66.608081833152212; - lats[333]=66.537783071859891; - lats[334]=66.467484310519808; - lats[335]=66.397185549132331; - lats[336]=66.326886787697887; - lats[337]=66.256588026216932; - lats[338]=66.186289264689833; - lats[339]=66.115990503117033; - lats[340]=66.045691741498899; - lats[341]=65.975392979835888; - lats[342]=65.905094218128355; - lats[343]=65.834795456376696; - lats[344]=65.764496694581283; - lats[345]=65.694197932742526; - lats[346]=65.623899170860767; - lats[347]=65.553600408936404; - lats[348]=65.483301646969792; - lats[349]=65.413002884961315; - lats[350]=65.342704122911286; - lats[351]=65.272405360820116; - lats[352]=65.202106598688133; - lats[353]=65.131807836515677; - lats[354]=65.061509074303089; - lats[355]=64.991210312050711; - lats[356]=64.920911549758912; - lats[357]=64.850612787427963; - lats[358]=64.780314025058246; - lats[359]=64.710015262650074; - lats[360]=64.639716500203733; - lats[361]=64.569417737719576; - lats[362]=64.499118975197902; - lats[363]=64.428820212639039; - lats[364]=64.358521450043284; - lats[365]=64.288222687410922; - lats[366]=64.21792392474228; - lats[367]=64.147625162037642; - lats[368]=64.07732639929732; - lats[369]=64.00702763652157; - lats[370]=63.93672887371072; - lats[371]=63.866430110865004; - lats[372]=63.796131347984762; - lats[373]=63.725832585070251; - lats[374]=63.655533822121711; - lats[375]=63.585235059139464; - lats[376]=63.514936296123757; - lats[377]=63.444637533074854; - lats[378]=63.374338769993031; - lats[379]=63.304040006878537; - lats[380]=63.23374124373165; - lats[381]=63.163442480552604; - lats[382]=63.093143717341647; - lats[383]=63.022844954099064; - lats[384]=62.952546190825068; - lats[385]=62.882247427519928; - lats[386]=62.811948664183866; - lats[387]=62.741649900817137; - lats[388]=62.67135113741999; - lats[389]=62.60105237399263; - lats[390]=62.530753610535321; - lats[391]=62.460454847048261; - lats[392]=62.3901560835317; - lats[393]=62.319857319985871; - lats[394]=62.249558556410982; - lats[395]=62.179259792807258; - lats[396]=62.108961029174914; - lats[397]=62.038662265514176; - lats[398]=61.968363501825259; - lats[399]=61.898064738108381; - lats[400]=61.827765974363729; - lats[401]=61.757467210591535; - lats[402]=61.687168446791986; - lats[403]=61.616869682965287; - lats[404]=61.546570919111666; - lats[405]=61.476272155231321; - lats[406]=61.405973391324409; - lats[407]=61.335674627391185; - lats[408]=61.265375863431785; - lats[409]=61.195077099446451; - lats[410]=61.124778335435344; - lats[411]=61.054479571398652; - lats[412]=60.984180807336578; - lats[413]=60.913882043249295; - lats[414]=60.843583279137007; - lats[415]=60.773284514999872; - lats[416]=60.702985750838074; - lats[417]=60.632686986651805; - lats[418]=60.562388222441243; - lats[419]=60.492089458206543; - lats[420]=60.421790693947884; - lats[421]=60.35149192966545; - lats[422]=60.28119316535939; - lats[423]=60.21089440102989; - lats[424]=60.140595636677112; - lats[425]=60.070296872301235; - lats[426]=59.999998107902378; - lats[427]=59.929699343480763; - lats[428]=59.859400579036503; - lats[429]=59.78910181456979; - lats[430]=59.718803050080759; - lats[431]=59.64850428556958; - lats[432]=59.578205521036402; - lats[433]=59.507906756481383; - lats[434]=59.43760799190467; - lats[435]=59.3673092273064; - lats[436]=59.29701046268675; - lats[437]=59.226711698045854; - lats[438]=59.156412933383855; - lats[439]=59.086114168700909; - lats[440]=59.015815403997145; - lats[441]=58.945516639272725; - lats[442]=58.875217874527763; - lats[443]=58.804919109762423; - lats[444]=58.73462034497684; - lats[445]=58.664321580171141; - lats[446]=58.594022815345468; - lats[447]=58.523724050499972; - lats[448]=58.453425285634758; - lats[449]=58.383126520749968; - lats[450]=58.312827755845746; - lats[451]=58.242528990922203; - lats[452]=58.172230225979497; - lats[453]=58.101931461017728; - lats[454]=58.031632696037022; - lats[455]=57.961333931037537; - lats[456]=57.891035166019364; - lats[457]=57.820736400982646; - lats[458]=57.75043763592749; - lats[459]=57.680138870854037; - lats[460]=57.60984010576238; - lats[461]=57.539541340652676; - lats[462]=57.469242575525016; - lats[463]=57.398943810379521; - lats[464]=57.328645045216312; - lats[465]=57.258346280035504; - lats[466]=57.188047514837208; - lats[467]=57.117748749621541; - lats[468]=57.047449984388614; - lats[469]=56.977151219138541; - lats[470]=56.90685245387143; - lats[471]=56.836553688587379; - lats[472]=56.766254923286517; - lats[473]=56.695956157968951; - lats[474]=56.625657392634771; - lats[475]=56.555358627284086; - lats[476]=56.485059861917016; - lats[477]=56.41476109653366; - lats[478]=56.34446233113411; - lats[479]=56.274163565718467; - lats[480]=56.203864800286865; - lats[481]=56.133566034839362; - lats[482]=56.063267269376091; - lats[483]=55.992968503897131; - lats[484]=55.922669738402583; - lats[485]=55.852370972892551; - lats[486]=55.782072207367136; - lats[487]=55.711773441826416; - lats[488]=55.641474676270505; - lats[489]=55.571175910699488; - lats[490]=55.500877145113449; - lats[491]=55.430578379512511; - lats[492]=55.360279613896743; - lats[493]=55.289980848266232; - lats[494]=55.219682082621084; - lats[495]=55.149383316961377; - lats[496]=55.07908455128721; - lats[497]=55.008785785598668; - lats[498]=54.938487019895831; - lats[499]=54.868188254178797; - lats[500]=54.797889488447652; - lats[501]=54.727590722702473; - lats[502]=54.657291956943347; - lats[503]=54.586993191170357; - lats[504]=54.516694425383605; - lats[505]=54.446395659583146; - lats[506]=54.376096893769081; - lats[507]=54.305798127941479; - lats[508]=54.235499362100448; - lats[509]=54.165200596246031; - lats[510]=54.094901830378333; - lats[511]=54.024603064497434; - lats[512]=53.954304298603383; - lats[513]=53.884005532696307; - lats[514]=53.813706766776235; - lats[515]=53.743408000843282; - lats[516]=53.673109234897495; - lats[517]=53.602810468938962; - lats[518]=53.53251170296776; - lats[519]=53.462212936983953; - lats[520]=53.391914170987633; - lats[521]=53.321615404978871; - lats[522]=53.251316638957725; - lats[523]=53.181017872924265; - lats[524]=53.110719106878584; - lats[525]=53.040420340820731; - lats[526]=52.970121574750792; - lats[527]=52.899822808668837; - lats[528]=52.829524042574917; - lats[529]=52.759225276469131; - lats[530]=52.688926510351514; - lats[531]=52.618627744222159; - lats[532]=52.548328978081123; - lats[533]=52.478030211928477; - lats[534]=52.407731445764284; - lats[535]=52.337432679588609; - lats[536]=52.26713391340153; - lats[537]=52.196835147203096; - lats[538]=52.126536380993372; - lats[539]=52.056237614772435; - lats[540]=51.985938848540336; - lats[541]=51.915640082297152; - lats[542]=51.845341316042933; - lats[543]=51.775042549777737; - lats[544]=51.704743783501634; - lats[545]=51.634445017214695; - lats[546]=51.56414625091697; - lats[547]=51.493847484608516; - lats[548]=51.423548718289396; - lats[549]=51.353249951959683; - lats[550]=51.282951185619417; - lats[551]=51.21265241926865; - lats[552]=51.14235365290746; - lats[553]=51.072054886535909; - lats[554]=51.001756120154049; - lats[555]=50.931457353761914; - lats[556]=50.86115858735959; - lats[557]=50.790859820947119; - lats[558]=50.720561054524559; - lats[559]=50.650262288091959; - lats[560]=50.579963521649397; - lats[561]=50.509664755196901; - lats[562]=50.439365988734544; - lats[563]=50.369067222262359; - lats[564]=50.298768455780426; - lats[565]=50.228469689288779; - lats[566]=50.158170922787484; - lats[567]=50.087872156276575; - lats[568]=50.017573389756123; - lats[569]=49.947274623226157; - lats[570]=49.876975856686762; - lats[571]=49.80667709013796; - lats[572]=49.736378323579807; - lats[573]=49.66607955701236; - lats[574]=49.595780790435676; - lats[575]=49.525482023849783; - lats[576]=49.455183257254745; - lats[577]=49.384884490650613; - lats[578]=49.314585724037435; - lats[579]=49.244286957415234; - lats[580]=49.173988190784094; - lats[581]=49.103689424144044; - lats[582]=49.03339065749514; - lats[583]=48.963091890837418; - lats[584]=48.892793124170929; - lats[585]=48.822494357495721; - lats[586]=48.752195590811837; - lats[587]=48.681896824119335; - lats[588]=48.611598057418242; - lats[589]=48.541299290708608; - lats[590]=48.47100052399049; - lats[591]=48.400701757263917; - lats[592]=48.330402990528938; - lats[593]=48.260104223785596; - lats[594]=48.189805457033941; - lats[595]=48.119506690274015; - lats[596]=48.049207923505868; - lats[597]=47.978909156729507; - lats[598]=47.908610389945018; - lats[599]=47.838311623152421; - lats[600]=47.76801285635176; - lats[601]=47.697714089543084; - lats[602]=47.627415322726435; - lats[603]=47.557116555901828; - lats[604]=47.486817789069342; - lats[605]=47.416519022228997; - lats[606]=47.346220255380835; - lats[607]=47.275921488524894; - lats[608]=47.205622721661214; - lats[609]=47.13532395478984; - lats[610]=47.065025187910805; - lats[611]=46.994726421024154; - lats[612]=46.924427654129929; - lats[613]=46.85412888722815; - lats[614]=46.783830120318882; - lats[615]=46.713531353402139; - lats[616]=46.643232586477971; - lats[617]=46.572933819546414; - lats[618]=46.502635052607502; - lats[619]=46.432336285661272; - lats[620]=46.362037518707766; - lats[621]=46.291738751747012; - lats[622]=46.221439984779053; - lats[623]=46.151141217803925; - lats[624]=46.080842450821663; - lats[625]=46.01054368383231; - lats[626]=45.94024491683588; - lats[627]=45.869946149832437; - lats[628]=45.799647382821995; - lats[629]=45.729348615804589; - lats[630]=45.659049848780263; - lats[631]=45.588751081749038; - lats[632]=45.51845231471097; - lats[633]=45.448153547666081; - lats[634]=45.377854780614399; - lats[635]=45.30755601355596; - lats[636]=45.237257246490813; - lats[637]=45.166958479418959; - lats[638]=45.096659712340461; - lats[639]=45.026360945255341; - lats[640]=44.956062178163634; - lats[641]=44.885763411065362; - lats[642]=44.81546464396056; - lats[643]=44.745165876849271; - lats[644]=44.674867109731515; - lats[645]=44.604568342607337; - lats[646]=44.534269575476756; - lats[647]=44.463970808339802; - lats[648]=44.39367204119651; - lats[649]=44.323373274046915; - lats[650]=44.253074506891046; - lats[651]=44.182775739728925; - lats[652]=44.112476972560586; - lats[653]=44.042178205386072; - lats[654]=43.971879438205391; - lats[655]=43.9015806710186; - lats[656]=43.831281903825705; - lats[657]=43.760983136626741; - lats[658]=43.690684369421732; - lats[659]=43.620385602210717; - lats[660]=43.550086834993728; - lats[661]=43.479788067770777; - lats[662]=43.409489300541907; - lats[663]=43.339190533307139; - lats[664]=43.26889176606651; - lats[665]=43.19859299882004; - lats[666]=43.128294231567757; - lats[667]=43.057995464309691; - lats[668]=42.987696697045862; - lats[669]=42.917397929776307; - lats[670]=42.847099162501053; - lats[671]=42.776800395220121; - lats[672]=42.706501627933541; - lats[673]=42.63620286064134; - lats[674]=42.565904093343548; - lats[675]=42.495605326040177; - lats[676]=42.425306558731272; - lats[677]=42.355007791416853; - lats[678]=42.284709024096927; - lats[679]=42.214410256771551; - lats[680]=42.144111489440725; - lats[681]=42.073812722104492; - lats[682]=42.003513954762873; - lats[683]=41.933215187415882; - lats[684]=41.862916420063563; - lats[685]=41.792617652705921; - lats[686]=41.722318885343; - lats[687]=41.6520201179748; - lats[688]=41.581721350601363; - lats[689]=41.511422583222718; - lats[690]=41.441123815838885; - lats[691]=41.370825048449873; - lats[692]=41.300526281055724; - lats[693]=41.230227513656445; - lats[694]=41.159928746252085; - lats[695]=41.089629978842645; - lats[696]=41.01933121142816; - lats[697]=40.949032444008644; - lats[698]=40.878733676584126; - lats[699]=40.808434909154634; - lats[700]=40.738136141720176; - lats[701]=40.667837374280786; - lats[702]=40.597538606836487; - lats[703]=40.527239839387299; - lats[704]=40.456941071933244; - lats[705]=40.386642304474343; - lats[706]=40.316343537010617; - lats[707]=40.246044769542102; - lats[708]=40.175746002068806; - lats[709]=40.105447234590748; - lats[710]=40.035148467107952; - lats[711]=39.964849699620437; - lats[712]=39.894550932128247; - lats[713]=39.824252164631375; - lats[714]=39.753953397129855; - lats[715]=39.683654629623703; - lats[716]=39.613355862112947; - lats[717]=39.543057094597607; - lats[718]=39.472758327077692; - lats[719]=39.402459559553229; - lats[720]=39.332160792024254; - lats[721]=39.261862024490775; - lats[722]=39.191563256952804; - lats[723]=39.121264489410365; - lats[724]=39.050965721863491; - lats[725]=38.980666954312184; - lats[726]=38.910368186756479; - lats[727]=38.840069419196389; - lats[728]=38.769770651631937; - lats[729]=38.699471884063136; - lats[730]=38.629173116490001; - lats[731]=38.558874348912568; - lats[732]=38.488575581330842; - lats[733]=38.418276813744846; - lats[734]=38.347978046154608; - lats[735]=38.277679278560143; - lats[736]=38.20738051096145; - lats[737]=38.137081743358586; - lats[738]=38.066782975751536; - lats[739]=37.99648420814033; - lats[740]=37.926185440524989; - lats[741]=37.855886672905527; - lats[742]=37.785587905281965; - lats[743]=37.715289137654317; - lats[744]=37.644990370022605; - lats[745]=37.574691602386856; - lats[746]=37.504392834747065; - lats[747]=37.434094067103274; - lats[748]=37.363795299455489; - lats[749]=37.293496531803719; - lats[750]=37.223197764147997; - lats[751]=37.152898996488332; - lats[752]=37.082600228824752; - lats[753]=37.012301461157264; - lats[754]=36.942002693485883; - lats[755]=36.871703925810628; - lats[756]=36.801405158131523; - lats[757]=36.731106390448581; - lats[758]=36.660807622761808; - lats[759]=36.590508855071242; - lats[760]=36.520210087376888; - lats[761]=36.449911319678755; - lats[762]=36.379612551976876; - lats[763]=36.309313784271254; - lats[764]=36.239015016561908; - lats[765]=36.16871624884886; - lats[766]=36.098417481132117; - lats[767]=36.028118713411708; - lats[768]=35.957819945687639; - lats[769]=35.887521177959933; - lats[770]=35.817222410228595; - lats[771]=35.746923642493655; - lats[772]=35.676624874755113; - lats[773]=35.606326107012997; - lats[774]=35.536027339267314; - lats[775]=35.465728571518085; - lats[776]=35.395429803765317; - lats[777]=35.325131036009047; - lats[778]=35.254832268249267; - lats[779]=35.184533500486005; - lats[780]=35.114234732719261; - lats[781]=35.043935964949064; - lats[782]=34.973637197175435; - lats[783]=34.903338429398374; - lats[784]=34.833039661617903; - lats[785]=34.762740893834028; - lats[786]=34.692442126046771; - lats[787]=34.622143358256153; - lats[788]=34.551844590462188; - lats[789]=34.481545822664863; - lats[790]=34.411247054864234; - lats[791]=34.340948287060286; - lats[792]=34.270649519253041; - lats[793]=34.200350751442521; - lats[794]=34.130051983628725; - lats[795]=34.059753215811682; - lats[796]=33.989454447991392; - lats[797]=33.919155680167876; - lats[798]=33.848856912341155; - lats[799]=33.778558144511237; - lats[800]=33.708259376678136; - lats[801]=33.637960608841851; - lats[802]=33.567661841002426; - lats[803]=33.497363073159853; - lats[804]=33.42706430531414; - lats[805]=33.356765537465314; - lats[806]=33.286466769613391; - lats[807]=33.216168001758369; - lats[808]=33.145869233900278; - lats[809]=33.075570466039117; - lats[810]=33.005271698174909; - lats[811]=32.934972930307666; - lats[812]=32.864674162437396; - lats[813]=32.794375394564113; - lats[814]=32.724076626687825; - lats[815]=32.653777858808567; - lats[816]=32.583479090926325; - lats[817]=32.513180323041112; - lats[818]=32.442881555152965; - lats[819]=32.372582787261891; - lats[820]=32.302284019367875; - lats[821]=32.231985251470959; - lats[822]=32.161686483571145; - lats[823]=32.091387715668439; - lats[824]=32.021088947762863; - lats[825]=31.950790179854422; - lats[826]=31.880491411943137; - lats[827]=31.810192644029012; - lats[828]=31.739893876112063; - lats[829]=31.669595108192297; - lats[830]=31.599296340269738; - lats[831]=31.528997572344384; - lats[832]=31.458698804416255; - lats[833]=31.388400036485361; - lats[834]=31.318101268551715; - lats[835]=31.247802500615318; - lats[836]=31.177503732676204; - lats[837]=31.107204964734358; - lats[838]=31.036906196789811; - lats[839]=30.966607428842572; - lats[840]=30.896308660892647; - lats[841]=30.826009892940046; - lats[842]=30.755711124984781; - lats[843]=30.685412357026873; - lats[844]=30.615113589066322; - lats[845]=30.544814821103138; - lats[846]=30.47451605313735; - lats[847]=30.404217285168947; - lats[848]=30.333918517197947; - lats[849]=30.263619749224372; - lats[850]=30.19332098124822; - lats[851]=30.123022213269511; - lats[852]=30.052723445288244; - lats[853]=29.98242467730444; - lats[854]=29.91212590931811; - lats[855]=29.841827141329258; - lats[856]=29.771528373337894; - lats[857]=29.701229605344039; - lats[858]=29.630930837347698; - lats[859]=29.560632069348884; - lats[860]=29.490333301347597; - lats[861]=29.420034533343859; - lats[862]=29.349735765337677; - lats[863]=29.279436997329057; - lats[864]=29.209138229318015; - lats[865]=29.138839461304556; - lats[866]=29.068540693288696; - lats[867]=28.998241925270449; - lats[868]=28.927943157249814; - lats[869]=28.857644389226806; - lats[870]=28.787345621201432; - lats[871]=28.717046853173709; - lats[872]=28.646748085143642; - lats[873]=28.576449317111244; - lats[874]=28.506150549076519; - lats[875]=28.435851781039485; - lats[876]=28.365553013000145; - lats[877]=28.29525424495851; - lats[878]=28.224955476914594; - lats[879]=28.154656708868405; - lats[880]=28.084357940819952; - lats[881]=28.014059172769244; - lats[882]=27.94376040471629; - lats[883]=27.873461636661098; - lats[884]=27.803162868603682; - lats[885]=27.732864100544052; - lats[886]=27.662565332482213; - lats[887]=27.592266564418171; - lats[888]=27.521967796351948; - lats[889]=27.451669028283543; - lats[890]=27.381370260212968; - lats[891]=27.311071492140236; - lats[892]=27.240772724065348; - lats[893]=27.170473955988321; - lats[894]=27.100175187909159; - lats[895]=27.029876419827872; - lats[896]=26.959577651744471; - lats[897]=26.889278883658971; - lats[898]=26.818980115571364; - lats[899]=26.748681347481678; - lats[900]=26.678382579389908; - lats[901]=26.608083811296069; - lats[902]=26.53778504320017; - lats[903]=26.467486275102218; - lats[904]=26.397187507002222; - lats[905]=26.326888738900195; - lats[906]=26.256589970796135; - lats[907]=26.186291202690064; - lats[908]=26.115992434581983; - lats[909]=26.045693666471902; - lats[910]=25.975394898359827; - lats[911]=25.90509613024577; - lats[912]=25.834797362129745; - lats[913]=25.764498594011751; - lats[914]=25.694199825891793; - lats[915]=25.623901057769892; - lats[916]=25.553602289646051; - lats[917]=25.483303521520277; - lats[918]=25.413004753392578; - lats[919]=25.342705985262967; - lats[920]=25.272407217131445; - lats[921]=25.202108448998025; - lats[922]=25.13180968086272; - lats[923]=25.061510912725527; - lats[924]=24.991212144586456; - lats[925]=24.920913376445526; - lats[926]=24.850614608302738; - lats[927]=24.780315840158096; - lats[928]=24.710017072011613; - lats[929]=24.639718303863294; - lats[930]=24.569419535713152; - lats[931]=24.499120767561195; - lats[932]=24.428821999407425; - lats[933]=24.358523231251851; - lats[934]=24.288224463094483; - lats[935]=24.217925694935328; - lats[936]=24.1476269267744; - lats[937]=24.077328158611696; - lats[938]=24.007029390447226; - lats[939]=23.936730622281004; - lats[940]=23.866431854113038; - lats[941]=23.796133085943328; - lats[942]=23.725834317771888; - lats[943]=23.655535549598721; - lats[944]=23.585236781423838; - lats[945]=23.514938013247242; - lats[946]=23.444639245068949; - lats[947]=23.374340476888957; - lats[948]=23.304041708707278; - lats[949]=23.233742940523921; - lats[950]=23.163444172338895; - lats[951]=23.0931454041522; - lats[952]=23.022846635963852; - lats[953]=22.952547867773848; - lats[954]=22.882249099582204; - lats[955]=22.811950331388925; - lats[956]=22.741651563194019; - lats[957]=22.671352794997489; - lats[958]=22.60105402679935; - lats[959]=22.530755258599601; - lats[960]=22.460456490398254; - lats[961]=22.390157722195315; - lats[962]=22.319858953990789; - lats[963]=22.249560185784691; - lats[964]=22.179261417577013; - lats[965]=22.108962649367779; - lats[966]=22.038663881156989; - lats[967]=21.968365112944642; - lats[968]=21.898066344730758; - lats[969]=21.827767576515338; - lats[970]=21.757468808298391; - lats[971]=21.687170040079913; - lats[972]=21.616871271859928; - lats[973]=21.546572503638437; - lats[974]=21.47627373541544; - lats[975]=21.40597496719095; - lats[976]=21.335676198964972; - lats[977]=21.265377430737512; - lats[978]=21.195078662508585; - lats[979]=21.124779894278181; - lats[980]=21.054481126046323; - lats[981]=20.984182357813012; - lats[982]=20.913883589578251; - lats[983]=20.843584821342048; - lats[984]=20.773286053104417; - lats[985]=20.702987284865355; - lats[986]=20.632688516624874; - lats[987]=20.562389748382977; - lats[988]=20.492090980139672; - lats[989]=20.421792211894967; - lats[990]=20.35149344364887; - lats[991]=20.28119467540138; - lats[992]=20.210895907152516; - lats[993]=20.140597138902272; - lats[994]=20.070298370650661; - lats[995]=19.999999602397686; - lats[996]=19.929700834143357; - lats[997]=19.859402065887682; - lats[998]=19.789103297630657; - lats[999]=19.718804529372303; - lats[1000]=19.648505761112613; - lats[1001]=19.578206992851602; - lats[1002]=19.507908224589269; - lats[1003]=19.437609456325632; - lats[1004]=19.367310688060684; - lats[1005]=19.297011919794439; - lats[1006]=19.226713151526898; - lats[1007]=19.15641438325807; - lats[1008]=19.086115614987968; - lats[1009]=19.015816846716586; - lats[1010]=18.945518078443939; - lats[1011]=18.875219310170031; - lats[1012]=18.804920541894862; - lats[1013]=18.734621773618446; - lats[1014]=18.664323005340787; - lats[1015]=18.594024237061891; - lats[1016]=18.523725468781763; - lats[1017]=18.453426700500408; - lats[1018]=18.383127932217832; - lats[1019]=18.312829163934047; - lats[1020]=18.242530395649048; - lats[1021]=18.172231627362851; - lats[1022]=18.101932859075458; - lats[1023]=18.031634090786874; - lats[1024]=17.96133532249711; - lats[1025]=17.89103655420616; - lats[1026]=17.820737785914044; - lats[1027]=17.75043901762076; - lats[1028]=17.680140249326314; - lats[1029]=17.60984148103071; - lats[1030]=17.539542712733962; - lats[1031]=17.469243944436066; - lats[1032]=17.39894517613704; - lats[1033]=17.328646407836878; - lats[1034]=17.258347639535586; - lats[1035]=17.188048871233182; - lats[1036]=17.117750102929655; - lats[1037]=17.04745133462502; - lats[1038]=16.977152566319283; - lats[1039]=16.906853798012452; - lats[1040]=16.836555029704527; - lats[1041]=16.766256261395515; - lats[1042]=16.69595749308542; - lats[1043]=16.625658724774254; - lats[1044]=16.555359956462013; - lats[1045]=16.485061188148713; - lats[1046]=16.41476241983435; - lats[1047]=16.344463651518936; - lats[1048]=16.274164883202477; - lats[1049]=16.203866114884974; - lats[1050]=16.133567346566434; - lats[1051]=16.063268578246863; - lats[1052]=15.992969809926265; - lats[1053]=15.922671041604652; - lats[1054]=15.852372273282016; - lats[1055]=15.78207350495838; - lats[1056]=15.711774736633735; - lats[1057]=15.641475968308091; - lats[1058]=15.571177199981456; - lats[1059]=15.500878431653829; - lats[1060]=15.430579663325226; - lats[1061]=15.360280894995643; - lats[1062]=15.289982126665089; - lats[1063]=15.219683358333569; - lats[1064]=15.149384590001089; - lats[1065]=15.07908582166765; - lats[1066]=15.008787053333259; - lats[1067]=14.938488284997929; - lats[1068]=14.868189516661655; - lats[1069]=14.797890748324447; - lats[1070]=14.727591979986309; - lats[1071]=14.657293211647247; - lats[1072]=14.586994443307265; - lats[1073]=14.516695674966371; - lats[1074]=14.446396906624567; - lats[1075]=14.376098138281863; - lats[1076]=14.305799369938256; - lats[1077]=14.23550060159376; - lats[1078]=14.165201833248371; - lats[1079]=14.0949030649021; - lats[1080]=14.024604296554955; - lats[1081]=13.954305528206934; - lats[1082]=13.884006759858046; - lats[1083]=13.813707991508297; - lats[1084]=13.743409223157688; - lats[1085]=13.673110454806226; - lats[1086]=13.602811686453919; - lats[1087]=13.532512918100766; - lats[1088]=13.46221414974678; - lats[1089]=13.391915381391959; - lats[1090]=13.32161661303631; - lats[1091]=13.251317844679837; - lats[1092]=13.181019076322551; - lats[1093]=13.110720307964451; - lats[1094]=13.040421539605545; - lats[1095]=12.970122771245832; - lats[1096]=12.899824002885323; - lats[1097]=12.829525234524022; - lats[1098]=12.759226466161934; - lats[1099]=12.688927697799061; - lats[1100]=12.618628929435411; - lats[1101]=12.548330161070988; - lats[1102]=12.478031392705796; - lats[1103]=12.407732624339841; - lats[1104]=12.337433855973126; - lats[1105]=12.267135087605659; - lats[1106]=12.196836319237443; - lats[1107]=12.126537550868482; - lats[1108]=12.056238782498781; - lats[1109]=11.985940014128348; - lats[1110]=11.915641245757183; - lats[1111]=11.845342477385294; - lats[1112]=11.775043709012685; - lats[1113]=11.704744940639358; - lats[1114]=11.634446172265324; - lats[1115]=11.564147403890583; - lats[1116]=11.493848635515141; - lats[1117]=11.423549867139002; - lats[1118]=11.35325109876217; - lats[1119]=11.282952330384653; - lats[1120]=11.212653562006453; - lats[1121]=11.142354793627575; - lats[1122]=11.072056025248026; - lats[1123]=11.001757256867807; - lats[1124]=10.931458488486923; - lats[1125]=10.861159720105382; - lats[1126]=10.790860951723188; - lats[1127]=10.720562183340341; - lats[1128]=10.65026341495685; - lats[1129]=10.579964646572719; - lats[1130]=10.509665878187954; - lats[1131]=10.439367109802557; - lats[1132]=10.369068341416533; - lats[1133]=10.298769573029887; - lats[1134]=10.228470804642624; - lats[1135]=10.158172036254747; - lats[1136]=10.087873267866264; - lats[1137]=10.017574499477174; - lats[1138]=9.9472757310874869; - lats[1139]=9.8769769626972046; - lats[1140]=9.8066781943063344; - lats[1141]=9.7363794259148779; - lats[1142]=9.6660806575228388; - lats[1143]=9.5957818891302242; - lats[1144]=9.5254831207370376; - lats[1145]=9.4551843523432826; - lats[1146]=9.3848855839489662; - lats[1147]=9.3145868155540921; - lats[1148]=9.2442880471586619; - lats[1149]=9.1739892787626829; - lats[1150]=9.1036905103661585; - lats[1151]=9.0333917419690941; - lats[1152]=8.963092973571495; - lats[1153]=8.8927942051733631; - lats[1154]=8.8224954367747017; - lats[1155]=8.7521966683755217; - lats[1156]=8.6818978999758194; - lats[1157]=8.6115991315756055; - lats[1158]=8.5413003631748801; - lats[1159]=8.4710015947736537; - lats[1160]=8.4007028263719228; - lats[1161]=8.3304040579696963; - lats[1162]=8.2601052895669778; - lats[1163]=8.1898065211637725; - lats[1164]=8.1195077527600841; - lats[1165]=8.049208984355916; - lats[1166]=7.9789102159512737; - lats[1167]=7.9086114475461606; - lats[1168]=7.8383126791405831; - lats[1169]=7.7680139107345463; - lats[1170]=7.6977151423280494; - lats[1171]=7.6274163739210996; - lats[1172]=7.557117605513703; - lats[1173]=7.4868188371058624; - lats[1174]=7.4165200686975803; - lats[1175]=7.3462213002888648; - lats[1176]=7.2759225318797176; - lats[1177]=7.2056237634701441; - lats[1178]=7.1353249950601469; - lats[1179]=7.0650262266497315; - lats[1180]=6.994727458238903; - lats[1181]=6.924428689827665; - lats[1182]=6.8541299214160212; - lats[1183]=6.7838311530039768; - lats[1184]=6.7135323845915353; - lats[1185]=6.6432336161787013; - lats[1186]=6.5729348477654792; - lats[1187]=6.5026360793518734; - lats[1188]=6.4323373109378874; - lats[1189]=6.3620385425235257; - lats[1190]=6.2917397741087928; - lats[1191]=6.2214410056936931; - lats[1192]=6.151142237278231; - lats[1193]=6.0808434688624091; - lats[1194]=6.0105447004462347; - lats[1195]=5.9402459320297085; - lats[1196]=5.869947163612836; - lats[1197]=5.7996483951956233; - lats[1198]=5.729349626778073; - lats[1199]=5.6590508583601888; - lats[1200]=5.5887520899419751; - lats[1201]=5.5184533215234373; - lats[1202]=5.4481545531045787; - lats[1203]=5.3778557846854023; - lats[1204]=5.3075570162659149; - lats[1205]=5.2372582478461194; - lats[1206]=5.1669594794260192; - lats[1207]=5.0966607110056197; - lats[1208]=5.0263619425849244; - lats[1209]=4.9560631741639369; - lats[1210]=4.8857644057426626; - lats[1211]=4.8154656373211049; - lats[1212]=4.7451668688992683; - lats[1213]=4.6748681004771564; - lats[1214]=4.6045693320547736; - lats[1215]=4.5342705636321252; - lats[1216]=4.4639717952092139; - lats[1217]=4.3936730267860451; - lats[1218]=4.3233742583626205; - lats[1219]=4.2530754899389471; - lats[1220]=4.1827767215150269; - lats[1221]=4.1124779530908659; - lats[1222]=4.0421791846664661; - lats[1223]=3.9718804162418326; - lats[1224]=3.90158164781697; - lats[1225]=3.8312828793918823; - lats[1226]=3.7609841109665734; - lats[1227]=3.6906853425410477; - lats[1228]=3.6203865741153085; - lats[1229]=3.5500878056893601; - lats[1230]=3.4797890372632065; - lats[1231]=3.4094902688368531; - lats[1232]=3.339191500410303; - lats[1233]=3.2688927319835597; - lats[1234]=3.1985939635566285; - lats[1235]=3.1282951951295126; - lats[1236]=3.0579964267022164; - lats[1237]=2.9876976582747439; - lats[1238]=2.9173988898470999; - lats[1239]=2.8471001214192873; - lats[1240]=2.7768013529913107; - lats[1241]=2.7065025845631743; - lats[1242]=2.6362038161348824; - lats[1243]=2.5659050477064382; - lats[1244]=2.4956062792778466; - lats[1245]=2.4253075108491116; - lats[1246]=2.3550087424202366; - lats[1247]=2.2847099739912267; - lats[1248]=2.2144112055620848; - lats[1249]=2.1441124371328155; - lats[1250]=2.0738136687034232; - lats[1251]=2.0035149002739114; - lats[1252]=1.9332161318442849; - lats[1253]=1.8629173634145471; - lats[1254]=1.792618594984702; - lats[1255]=1.7223198265547539; - lats[1256]=1.6520210581247066; - lats[1257]=1.5817222896945646; - lats[1258]=1.5114235212643317; - lats[1259]=1.4411247528340119; - lats[1260]=1.3708259844036093; - lats[1261]=1.300527215973128; - lats[1262]=1.2302284475425722; - lats[1263]=1.1599296791119456; - lats[1264]=1.0896309106812523; - lats[1265]=1.0193321422504964; - lats[1266]=0.949033373819682; - lats[1267]=0.87873460538881287; - lats[1268]=0.80843583695789356; - lats[1269]=0.73813706852692773; - lats[1270]=0.66783830009591949; - lats[1271]=0.59753953166487306; - lats[1272]=0.52724076323379232; - lats[1273]=0.45694199480268116; - lats[1274]=0.3866432263715438; - lats[1275]=0.31634445794038429; - lats[1276]=0.24604568950920663; - lats[1277]=0.17574692107801482; - lats[1278]=0.10544815264681295; - lats[1279]=0.035149384215604956; - lats[1280]=-0.035149384215604956; - lats[1281]=-0.10544815264681295; - lats[1282]=-0.17574692107801482; - lats[1283]=-0.24604568950920663; - lats[1284]=-0.31634445794038429; - lats[1285]=-0.3866432263715438; - lats[1286]=-0.45694199480268116; - lats[1287]=-0.52724076323379232; - lats[1288]=-0.59753953166487306; - lats[1289]=-0.66783830009591949; - lats[1290]=-0.73813706852692773; - lats[1291]=-0.80843583695789356; - lats[1292]=-0.87873460538881287; - lats[1293]=-0.949033373819682; - lats[1294]=-1.0193321422504964; - lats[1295]=-1.0896309106812523; - lats[1296]=-1.1599296791119456; - lats[1297]=-1.2302284475425722; - lats[1298]=-1.300527215973128; - lats[1299]=-1.3708259844036093; - lats[1300]=-1.4411247528340119; - lats[1301]=-1.5114235212643317; - lats[1302]=-1.5817222896945646; - lats[1303]=-1.6520210581247066; - lats[1304]=-1.7223198265547539; - lats[1305]=-1.792618594984702; - lats[1306]=-1.8629173634145471; - lats[1307]=-1.9332161318442849; - lats[1308]=-2.0035149002739114; - lats[1309]=-2.0738136687034232; - lats[1310]=-2.1441124371328155; - lats[1311]=-2.2144112055620848; - lats[1312]=-2.2847099739912267; - lats[1313]=-2.3550087424202366; - lats[1314]=-2.4253075108491116; - lats[1315]=-2.4956062792778466; - lats[1316]=-2.5659050477064382; - lats[1317]=-2.6362038161348824; - lats[1318]=-2.7065025845631743; - lats[1319]=-2.7768013529913107; - lats[1320]=-2.8471001214192873; - lats[1321]=-2.9173988898470999; - lats[1322]=-2.9876976582747439; - lats[1323]=-3.0579964267022164; - lats[1324]=-3.1282951951295126; - lats[1325]=-3.1985939635566285; - lats[1326]=-3.2688927319835597; - lats[1327]=-3.339191500410303; - lats[1328]=-3.4094902688368531; - lats[1329]=-3.4797890372632065; - lats[1330]=-3.5500878056893601; - lats[1331]=-3.6203865741153085; - lats[1332]=-3.6906853425410477; - lats[1333]=-3.7609841109665734; - lats[1334]=-3.8312828793918823; - lats[1335]=-3.90158164781697; - lats[1336]=-3.9718804162418326; - lats[1337]=-4.0421791846664661; - lats[1338]=-4.1124779530908659; - lats[1339]=-4.1827767215150269; - lats[1340]=-4.2530754899389471; - lats[1341]=-4.3233742583626205; - lats[1342]=-4.3936730267860451; - lats[1343]=-4.4639717952092139; - lats[1344]=-4.5342705636321252; - lats[1345]=-4.6045693320547736; - lats[1346]=-4.6748681004771564; - lats[1347]=-4.7451668688992683; - lats[1348]=-4.8154656373211049; - lats[1349]=-4.8857644057426626; - lats[1350]=-4.9560631741639369; - lats[1351]=-5.0263619425849244; - lats[1352]=-5.0966607110056197; - lats[1353]=-5.1669594794260192; - lats[1354]=-5.2372582478461194; - lats[1355]=-5.3075570162659149; - lats[1356]=-5.3778557846854023; - lats[1357]=-5.4481545531045787; - lats[1358]=-5.5184533215234373; - lats[1359]=-5.5887520899419751; - lats[1360]=-5.6590508583601888; - lats[1361]=-5.729349626778073; - lats[1362]=-5.7996483951956233; - lats[1363]=-5.869947163612836; - lats[1364]=-5.9402459320297085; - lats[1365]=-6.0105447004462347; - lats[1366]=-6.0808434688624091; - lats[1367]=-6.151142237278231; - lats[1368]=-6.2214410056936931; - lats[1369]=-6.2917397741087928; - lats[1370]=-6.3620385425235257; - lats[1371]=-6.4323373109378874; - lats[1372]=-6.5026360793518734; - lats[1373]=-6.5729348477654792; - lats[1374]=-6.6432336161787013; - lats[1375]=-6.7135323845915353; - lats[1376]=-6.7838311530039768; - lats[1377]=-6.8541299214160212; - lats[1378]=-6.924428689827665; - lats[1379]=-6.994727458238903; - lats[1380]=-7.0650262266497315; - lats[1381]=-7.1353249950601469; - lats[1382]=-7.2056237634701441; - lats[1383]=-7.2759225318797176; - lats[1384]=-7.3462213002888648; - lats[1385]=-7.4165200686975803; - lats[1386]=-7.4868188371058624; - lats[1387]=-7.557117605513703; - lats[1388]=-7.6274163739210996; - lats[1389]=-7.6977151423280494; - lats[1390]=-7.7680139107345463; - lats[1391]=-7.8383126791405831; - lats[1392]=-7.9086114475461606; - lats[1393]=-7.9789102159512737; - lats[1394]=-8.049208984355916; - lats[1395]=-8.1195077527600841; - lats[1396]=-8.1898065211637725; - lats[1397]=-8.2601052895669778; - lats[1398]=-8.3304040579696963; - lats[1399]=-8.4007028263719228; - lats[1400]=-8.4710015947736537; - lats[1401]=-8.5413003631748801; - lats[1402]=-8.6115991315756055; - lats[1403]=-8.6818978999758194; - lats[1404]=-8.7521966683755217; - lats[1405]=-8.8224954367747017; - lats[1406]=-8.8927942051733631; - lats[1407]=-8.963092973571495; - lats[1408]=-9.0333917419690941; - lats[1409]=-9.1036905103661585; - lats[1410]=-9.1739892787626829; - lats[1411]=-9.2442880471586619; - lats[1412]=-9.3145868155540921; - lats[1413]=-9.3848855839489662; - lats[1414]=-9.4551843523432826; - lats[1415]=-9.5254831207370376; - lats[1416]=-9.5957818891302242; - lats[1417]=-9.6660806575228388; - lats[1418]=-9.7363794259148779; - lats[1419]=-9.8066781943063344; - lats[1420]=-9.8769769626972046; - lats[1421]=-9.9472757310874869; - lats[1422]=-10.017574499477174; - lats[1423]=-10.087873267866264; - lats[1424]=-10.158172036254747; - lats[1425]=-10.228470804642624; - lats[1426]=-10.298769573029887; - lats[1427]=-10.369068341416533; - lats[1428]=-10.439367109802557; - lats[1429]=-10.509665878187954; - lats[1430]=-10.579964646572719; - lats[1431]=-10.65026341495685; - lats[1432]=-10.720562183340341; - lats[1433]=-10.790860951723188; - lats[1434]=-10.861159720105382; - lats[1435]=-10.931458488486923; - lats[1436]=-11.001757256867807; - lats[1437]=-11.072056025248026; - lats[1438]=-11.142354793627575; - lats[1439]=-11.212653562006453; - lats[1440]=-11.282952330384653; - lats[1441]=-11.35325109876217; - lats[1442]=-11.423549867139002; - lats[1443]=-11.493848635515141; - lats[1444]=-11.564147403890583; - lats[1445]=-11.634446172265324; - lats[1446]=-11.704744940639358; - lats[1447]=-11.775043709012685; - lats[1448]=-11.845342477385294; - lats[1449]=-11.915641245757183; - lats[1450]=-11.985940014128348; - lats[1451]=-12.056238782498781; - lats[1452]=-12.126537550868482; - lats[1453]=-12.196836319237443; - lats[1454]=-12.267135087605659; - lats[1455]=-12.337433855973126; - lats[1456]=-12.407732624339841; - lats[1457]=-12.478031392705796; - lats[1458]=-12.548330161070988; - lats[1459]=-12.618628929435411; - lats[1460]=-12.688927697799061; - lats[1461]=-12.759226466161934; - lats[1462]=-12.829525234524022; - lats[1463]=-12.899824002885323; - lats[1464]=-12.970122771245832; - lats[1465]=-13.040421539605545; - lats[1466]=-13.110720307964451; - lats[1467]=-13.181019076322551; - lats[1468]=-13.251317844679837; - lats[1469]=-13.32161661303631; - lats[1470]=-13.391915381391959; - lats[1471]=-13.46221414974678; - lats[1472]=-13.532512918100766; - lats[1473]=-13.602811686453919; - lats[1474]=-13.673110454806226; - lats[1475]=-13.743409223157688; - lats[1476]=-13.813707991508297; - lats[1477]=-13.884006759858046; - lats[1478]=-13.954305528206934; - lats[1479]=-14.024604296554955; - lats[1480]=-14.0949030649021; - lats[1481]=-14.165201833248371; - lats[1482]=-14.23550060159376; - lats[1483]=-14.305799369938256; - lats[1484]=-14.376098138281863; - lats[1485]=-14.446396906624567; - lats[1486]=-14.516695674966371; - lats[1487]=-14.586994443307265; - lats[1488]=-14.657293211647247; - lats[1489]=-14.727591979986309; - lats[1490]=-14.797890748324447; - lats[1491]=-14.868189516661655; - lats[1492]=-14.938488284997929; - lats[1493]=-15.008787053333259; - lats[1494]=-15.07908582166765; - lats[1495]=-15.149384590001089; - lats[1496]=-15.219683358333569; - lats[1497]=-15.289982126665089; - lats[1498]=-15.360280894995643; - lats[1499]=-15.430579663325226; - lats[1500]=-15.500878431653829; - lats[1501]=-15.571177199981456; - lats[1502]=-15.641475968308091; - lats[1503]=-15.711774736633735; - lats[1504]=-15.78207350495838; - lats[1505]=-15.852372273282016; - lats[1506]=-15.922671041604652; - lats[1507]=-15.992969809926265; - lats[1508]=-16.063268578246863; - lats[1509]=-16.133567346566434; - lats[1510]=-16.203866114884974; - lats[1511]=-16.274164883202477; - lats[1512]=-16.344463651518936; - lats[1513]=-16.41476241983435; - lats[1514]=-16.485061188148713; - lats[1515]=-16.555359956462013; - lats[1516]=-16.625658724774254; - lats[1517]=-16.69595749308542; - lats[1518]=-16.766256261395515; - lats[1519]=-16.836555029704527; - lats[1520]=-16.906853798012452; - lats[1521]=-16.977152566319283; - lats[1522]=-17.04745133462502; - lats[1523]=-17.117750102929655; - lats[1524]=-17.188048871233182; - lats[1525]=-17.258347639535586; - lats[1526]=-17.328646407836878; - lats[1527]=-17.39894517613704; - lats[1528]=-17.469243944436066; - lats[1529]=-17.539542712733962; - lats[1530]=-17.60984148103071; - lats[1531]=-17.680140249326314; - lats[1532]=-17.75043901762076; - lats[1533]=-17.820737785914044; - lats[1534]=-17.89103655420616; - lats[1535]=-17.96133532249711; - lats[1536]=-18.031634090786874; - lats[1537]=-18.101932859075458; - lats[1538]=-18.172231627362851; - lats[1539]=-18.242530395649048; - lats[1540]=-18.312829163934047; - lats[1541]=-18.383127932217832; - lats[1542]=-18.453426700500408; - lats[1543]=-18.523725468781763; - lats[1544]=-18.594024237061891; - lats[1545]=-18.664323005340787; - lats[1546]=-18.734621773618446; - lats[1547]=-18.804920541894862; - lats[1548]=-18.875219310170031; - lats[1549]=-18.945518078443939; - lats[1550]=-19.015816846716586; - lats[1551]=-19.086115614987968; - lats[1552]=-19.15641438325807; - lats[1553]=-19.226713151526898; - lats[1554]=-19.297011919794439; - lats[1555]=-19.367310688060684; - lats[1556]=-19.437609456325632; - lats[1557]=-19.507908224589269; - lats[1558]=-19.578206992851602; - lats[1559]=-19.648505761112613; - lats[1560]=-19.718804529372303; - lats[1561]=-19.789103297630657; - lats[1562]=-19.859402065887682; - lats[1563]=-19.929700834143357; - lats[1564]=-19.999999602397686; - lats[1565]=-20.070298370650661; - lats[1566]=-20.140597138902272; - lats[1567]=-20.210895907152516; - lats[1568]=-20.28119467540138; - lats[1569]=-20.35149344364887; - lats[1570]=-20.421792211894967; - lats[1571]=-20.492090980139672; - lats[1572]=-20.562389748382977; - lats[1573]=-20.632688516624874; - lats[1574]=-20.702987284865355; - lats[1575]=-20.773286053104417; - lats[1576]=-20.843584821342048; - lats[1577]=-20.913883589578251; - lats[1578]=-20.984182357813012; - lats[1579]=-21.054481126046323; - lats[1580]=-21.124779894278181; - lats[1581]=-21.195078662508585; - lats[1582]=-21.265377430737512; - lats[1583]=-21.335676198964972; - lats[1584]=-21.40597496719095; - lats[1585]=-21.47627373541544; - lats[1586]=-21.546572503638437; - lats[1587]=-21.616871271859928; - lats[1588]=-21.687170040079913; - lats[1589]=-21.757468808298391; - lats[1590]=-21.827767576515338; - lats[1591]=-21.898066344730758; - lats[1592]=-21.968365112944642; - lats[1593]=-22.038663881156989; - lats[1594]=-22.108962649367779; - lats[1595]=-22.179261417577013; - lats[1596]=-22.249560185784691; - lats[1597]=-22.319858953990789; - lats[1598]=-22.390157722195315; - lats[1599]=-22.460456490398254; - lats[1600]=-22.530755258599601; - lats[1601]=-22.60105402679935; - lats[1602]=-22.671352794997489; - lats[1603]=-22.741651563194019; - lats[1604]=-22.811950331388925; - lats[1605]=-22.882249099582204; - lats[1606]=-22.952547867773848; - lats[1607]=-23.022846635963852; - lats[1608]=-23.0931454041522; - lats[1609]=-23.163444172338895; - lats[1610]=-23.233742940523921; - lats[1611]=-23.304041708707278; - lats[1612]=-23.374340476888957; - lats[1613]=-23.444639245068949; - lats[1614]=-23.514938013247242; - lats[1615]=-23.585236781423838; - lats[1616]=-23.655535549598721; - lats[1617]=-23.725834317771888; - lats[1618]=-23.796133085943328; - lats[1619]=-23.866431854113038; - lats[1620]=-23.936730622281004; - lats[1621]=-24.007029390447226; - lats[1622]=-24.077328158611696; - lats[1623]=-24.1476269267744; - lats[1624]=-24.217925694935328; - lats[1625]=-24.288224463094483; - lats[1626]=-24.358523231251851; - lats[1627]=-24.428821999407425; - lats[1628]=-24.499120767561195; - lats[1629]=-24.569419535713152; - lats[1630]=-24.639718303863294; - lats[1631]=-24.710017072011613; - lats[1632]=-24.780315840158096; - lats[1633]=-24.850614608302738; - lats[1634]=-24.920913376445526; - lats[1635]=-24.991212144586456; - lats[1636]=-25.061510912725527; - lats[1637]=-25.13180968086272; - lats[1638]=-25.202108448998025; - lats[1639]=-25.272407217131445; - lats[1640]=-25.342705985262967; - lats[1641]=-25.413004753392578; - lats[1642]=-25.483303521520277; - lats[1643]=-25.553602289646051; - lats[1644]=-25.623901057769892; - lats[1645]=-25.694199825891793; - lats[1646]=-25.764498594011751; - lats[1647]=-25.834797362129745; - lats[1648]=-25.90509613024577; - lats[1649]=-25.975394898359827; - lats[1650]=-26.045693666471902; - lats[1651]=-26.115992434581983; - lats[1652]=-26.186291202690064; - lats[1653]=-26.256589970796135; - lats[1654]=-26.326888738900195; - lats[1655]=-26.397187507002222; - lats[1656]=-26.467486275102218; - lats[1657]=-26.53778504320017; - lats[1658]=-26.608083811296069; - lats[1659]=-26.678382579389908; - lats[1660]=-26.748681347481678; - lats[1661]=-26.818980115571364; - lats[1662]=-26.889278883658971; - lats[1663]=-26.959577651744471; - lats[1664]=-27.029876419827872; - lats[1665]=-27.100175187909159; - lats[1666]=-27.170473955988321; - lats[1667]=-27.240772724065348; - lats[1668]=-27.311071492140236; - lats[1669]=-27.381370260212968; - lats[1670]=-27.451669028283543; - lats[1671]=-27.521967796351948; - lats[1672]=-27.592266564418171; - lats[1673]=-27.662565332482213; - lats[1674]=-27.732864100544052; - lats[1675]=-27.803162868603682; - lats[1676]=-27.873461636661098; - lats[1677]=-27.94376040471629; - lats[1678]=-28.014059172769244; - lats[1679]=-28.084357940819952; - lats[1680]=-28.154656708868405; - lats[1681]=-28.224955476914594; - lats[1682]=-28.29525424495851; - lats[1683]=-28.365553013000145; - lats[1684]=-28.435851781039485; - lats[1685]=-28.506150549076519; - lats[1686]=-28.576449317111244; - lats[1687]=-28.646748085143642; - lats[1688]=-28.717046853173709; - lats[1689]=-28.787345621201432; - lats[1690]=-28.857644389226806; - lats[1691]=-28.927943157249814; - lats[1692]=-28.998241925270449; - lats[1693]=-29.068540693288696; - lats[1694]=-29.138839461304556; - lats[1695]=-29.209138229318015; - lats[1696]=-29.279436997329057; - lats[1697]=-29.349735765337677; - lats[1698]=-29.420034533343859; - lats[1699]=-29.490333301347597; - lats[1700]=-29.560632069348884; - lats[1701]=-29.630930837347698; - lats[1702]=-29.701229605344039; - lats[1703]=-29.771528373337894; - lats[1704]=-29.841827141329258; - lats[1705]=-29.91212590931811; - lats[1706]=-29.98242467730444; - lats[1707]=-30.052723445288244; - lats[1708]=-30.123022213269511; - lats[1709]=-30.19332098124822; - lats[1710]=-30.263619749224372; - lats[1711]=-30.333918517197947; - lats[1712]=-30.404217285168947; - lats[1713]=-30.47451605313735; - lats[1714]=-30.544814821103138; - lats[1715]=-30.615113589066322; - lats[1716]=-30.685412357026873; - lats[1717]=-30.755711124984781; - lats[1718]=-30.826009892940046; - lats[1719]=-30.896308660892647; - lats[1720]=-30.966607428842572; - lats[1721]=-31.036906196789811; - lats[1722]=-31.107204964734358; - lats[1723]=-31.177503732676204; - lats[1724]=-31.247802500615318; - lats[1725]=-31.318101268551715; - lats[1726]=-31.388400036485361; - lats[1727]=-31.458698804416255; - lats[1728]=-31.528997572344384; - lats[1729]=-31.599296340269738; - lats[1730]=-31.669595108192297; - lats[1731]=-31.739893876112063; - lats[1732]=-31.810192644029012; - lats[1733]=-31.880491411943137; - lats[1734]=-31.950790179854422; - lats[1735]=-32.021088947762863; - lats[1736]=-32.091387715668439; - lats[1737]=-32.161686483571145; - lats[1738]=-32.231985251470959; - lats[1739]=-32.302284019367875; - lats[1740]=-32.372582787261891; - lats[1741]=-32.442881555152965; - lats[1742]=-32.513180323041112; - lats[1743]=-32.583479090926325; - lats[1744]=-32.653777858808567; - lats[1745]=-32.724076626687825; - lats[1746]=-32.794375394564113; - lats[1747]=-32.864674162437396; - lats[1748]=-32.934972930307666; - lats[1749]=-33.005271698174909; - lats[1750]=-33.075570466039117; - lats[1751]=-33.145869233900278; - lats[1752]=-33.216168001758369; - lats[1753]=-33.286466769613391; - lats[1754]=-33.356765537465314; - lats[1755]=-33.42706430531414; - lats[1756]=-33.497363073159853; - lats[1757]=-33.567661841002426; - lats[1758]=-33.637960608841851; - lats[1759]=-33.708259376678136; - lats[1760]=-33.778558144511237; - lats[1761]=-33.848856912341155; - lats[1762]=-33.919155680167876; - lats[1763]=-33.989454447991392; - lats[1764]=-34.059753215811682; - lats[1765]=-34.130051983628725; - lats[1766]=-34.200350751442521; - lats[1767]=-34.270649519253041; - lats[1768]=-34.340948287060286; - lats[1769]=-34.411247054864234; - lats[1770]=-34.481545822664863; - lats[1771]=-34.551844590462188; - lats[1772]=-34.622143358256153; - lats[1773]=-34.692442126046771; - lats[1774]=-34.762740893834028; - lats[1775]=-34.833039661617903; - lats[1776]=-34.903338429398374; - lats[1777]=-34.973637197175435; - lats[1778]=-35.043935964949064; - lats[1779]=-35.114234732719261; - lats[1780]=-35.184533500486005; - lats[1781]=-35.254832268249267; - lats[1782]=-35.325131036009047; - lats[1783]=-35.395429803765317; - lats[1784]=-35.465728571518085; - lats[1785]=-35.536027339267314; - lats[1786]=-35.606326107012997; - lats[1787]=-35.676624874755113; - lats[1788]=-35.746923642493655; - lats[1789]=-35.817222410228595; - lats[1790]=-35.887521177959933; - lats[1791]=-35.957819945687639; - lats[1792]=-36.028118713411708; - lats[1793]=-36.098417481132117; - lats[1794]=-36.16871624884886; - lats[1795]=-36.239015016561908; - lats[1796]=-36.309313784271254; - lats[1797]=-36.379612551976876; - lats[1798]=-36.449911319678755; - lats[1799]=-36.520210087376888; - lats[1800]=-36.590508855071242; - lats[1801]=-36.660807622761808; - lats[1802]=-36.731106390448581; - lats[1803]=-36.801405158131523; - lats[1804]=-36.871703925810628; - lats[1805]=-36.942002693485883; - lats[1806]=-37.012301461157264; - lats[1807]=-37.082600228824752; - lats[1808]=-37.152898996488332; - lats[1809]=-37.223197764147997; - lats[1810]=-37.293496531803719; - lats[1811]=-37.363795299455489; - lats[1812]=-37.434094067103274; - lats[1813]=-37.504392834747065; - lats[1814]=-37.574691602386856; - lats[1815]=-37.644990370022605; - lats[1816]=-37.715289137654317; - lats[1817]=-37.785587905281965; - lats[1818]=-37.855886672905527; - lats[1819]=-37.926185440524989; - lats[1820]=-37.99648420814033; - lats[1821]=-38.066782975751536; - lats[1822]=-38.137081743358586; - lats[1823]=-38.20738051096145; - lats[1824]=-38.277679278560143; - lats[1825]=-38.347978046154608; - lats[1826]=-38.418276813744846; - lats[1827]=-38.488575581330842; - lats[1828]=-38.558874348912568; - lats[1829]=-38.629173116490001; - lats[1830]=-38.699471884063136; - lats[1831]=-38.769770651631937; - lats[1832]=-38.840069419196389; - lats[1833]=-38.910368186756479; - lats[1834]=-38.980666954312184; - lats[1835]=-39.050965721863491; - lats[1836]=-39.121264489410365; - lats[1837]=-39.191563256952804; - lats[1838]=-39.261862024490775; - lats[1839]=-39.332160792024254; - lats[1840]=-39.402459559553229; - lats[1841]=-39.472758327077692; - lats[1842]=-39.543057094597607; - lats[1843]=-39.613355862112947; - lats[1844]=-39.683654629623703; - lats[1845]=-39.753953397129855; - lats[1846]=-39.824252164631375; - lats[1847]=-39.894550932128247; - lats[1848]=-39.964849699620437; - lats[1849]=-40.035148467107952; - lats[1850]=-40.105447234590748; - lats[1851]=-40.175746002068806; - lats[1852]=-40.246044769542102; - lats[1853]=-40.316343537010617; - lats[1854]=-40.386642304474343; - lats[1855]=-40.456941071933244; - lats[1856]=-40.527239839387299; - lats[1857]=-40.597538606836487; - lats[1858]=-40.667837374280786; - lats[1859]=-40.738136141720176; - lats[1860]=-40.808434909154634; - lats[1861]=-40.878733676584126; - lats[1862]=-40.949032444008644; - lats[1863]=-41.01933121142816; - lats[1864]=-41.089629978842645; - lats[1865]=-41.159928746252085; - lats[1866]=-41.230227513656445; - lats[1867]=-41.300526281055724; - lats[1868]=-41.370825048449873; - lats[1869]=-41.441123815838885; - lats[1870]=-41.511422583222718; - lats[1871]=-41.581721350601363; - lats[1872]=-41.6520201179748; - lats[1873]=-41.722318885343; - lats[1874]=-41.792617652705921; - lats[1875]=-41.862916420063563; - lats[1876]=-41.933215187415882; - lats[1877]=-42.003513954762873; - lats[1878]=-42.073812722104492; - lats[1879]=-42.144111489440725; - lats[1880]=-42.214410256771551; - lats[1881]=-42.284709024096927; - lats[1882]=-42.355007791416853; - lats[1883]=-42.425306558731272; - lats[1884]=-42.495605326040177; - lats[1885]=-42.565904093343548; - lats[1886]=-42.63620286064134; - lats[1887]=-42.706501627933541; - lats[1888]=-42.776800395220121; - lats[1889]=-42.847099162501053; - lats[1890]=-42.917397929776307; - lats[1891]=-42.987696697045862; - lats[1892]=-43.057995464309691; - lats[1893]=-43.128294231567757; - lats[1894]=-43.19859299882004; - lats[1895]=-43.26889176606651; - lats[1896]=-43.339190533307139; - lats[1897]=-43.409489300541907; - lats[1898]=-43.479788067770777; - lats[1899]=-43.550086834993728; - lats[1900]=-43.620385602210717; - lats[1901]=-43.690684369421732; - lats[1902]=-43.760983136626741; - lats[1903]=-43.831281903825705; - lats[1904]=-43.9015806710186; - lats[1905]=-43.971879438205391; - lats[1906]=-44.042178205386072; - lats[1907]=-44.112476972560586; - lats[1908]=-44.182775739728925; - lats[1909]=-44.253074506891046; - lats[1910]=-44.323373274046915; - lats[1911]=-44.39367204119651; - lats[1912]=-44.463970808339802; - lats[1913]=-44.534269575476756; - lats[1914]=-44.604568342607337; - lats[1915]=-44.674867109731515; - lats[1916]=-44.745165876849271; - lats[1917]=-44.81546464396056; - lats[1918]=-44.885763411065362; - lats[1919]=-44.956062178163634; - lats[1920]=-45.026360945255341; - lats[1921]=-45.096659712340461; - lats[1922]=-45.166958479418959; - lats[1923]=-45.237257246490813; - lats[1924]=-45.30755601355596; - lats[1925]=-45.377854780614399; - lats[1926]=-45.448153547666081; - lats[1927]=-45.51845231471097; - lats[1928]=-45.588751081749038; - lats[1929]=-45.659049848780263; - lats[1930]=-45.729348615804589; - lats[1931]=-45.799647382821995; - lats[1932]=-45.869946149832437; - lats[1933]=-45.94024491683588; - lats[1934]=-46.01054368383231; - lats[1935]=-46.080842450821663; - lats[1936]=-46.151141217803925; - lats[1937]=-46.221439984779053; - lats[1938]=-46.291738751747012; - lats[1939]=-46.362037518707766; - lats[1940]=-46.432336285661272; - lats[1941]=-46.502635052607502; - lats[1942]=-46.572933819546414; - lats[1943]=-46.643232586477971; - lats[1944]=-46.713531353402139; - lats[1945]=-46.783830120318882; - lats[1946]=-46.85412888722815; - lats[1947]=-46.924427654129929; - lats[1948]=-46.994726421024154; - lats[1949]=-47.065025187910805; - lats[1950]=-47.13532395478984; - lats[1951]=-47.205622721661214; - lats[1952]=-47.275921488524894; - lats[1953]=-47.346220255380835; - lats[1954]=-47.416519022228997; - lats[1955]=-47.486817789069342; - lats[1956]=-47.557116555901828; - lats[1957]=-47.627415322726435; - lats[1958]=-47.697714089543084; - lats[1959]=-47.76801285635176; - lats[1960]=-47.838311623152421; - lats[1961]=-47.908610389945018; - lats[1962]=-47.978909156729507; - lats[1963]=-48.049207923505868; - lats[1964]=-48.119506690274015; - lats[1965]=-48.189805457033941; - lats[1966]=-48.260104223785596; - lats[1967]=-48.330402990528938; - lats[1968]=-48.400701757263917; - lats[1969]=-48.47100052399049; - lats[1970]=-48.541299290708608; - lats[1971]=-48.611598057418242; - lats[1972]=-48.681896824119335; - lats[1973]=-48.752195590811837; - lats[1974]=-48.822494357495721; - lats[1975]=-48.892793124170929; - lats[1976]=-48.963091890837418; - lats[1977]=-49.03339065749514; - lats[1978]=-49.103689424144044; - lats[1979]=-49.173988190784094; - lats[1980]=-49.244286957415234; - lats[1981]=-49.314585724037435; - lats[1982]=-49.384884490650613; - lats[1983]=-49.455183257254745; - lats[1984]=-49.525482023849783; - lats[1985]=-49.595780790435676; - lats[1986]=-49.66607955701236; - lats[1987]=-49.736378323579807; - lats[1988]=-49.80667709013796; - lats[1989]=-49.876975856686762; - lats[1990]=-49.947274623226157; - lats[1991]=-50.017573389756123; - lats[1992]=-50.087872156276575; - lats[1993]=-50.158170922787484; - lats[1994]=-50.228469689288779; - lats[1995]=-50.298768455780426; - lats[1996]=-50.369067222262359; - lats[1997]=-50.439365988734544; - lats[1998]=-50.509664755196901; - lats[1999]=-50.579963521649397; - lats[2000]=-50.650262288091959; - lats[2001]=-50.720561054524559; - lats[2002]=-50.790859820947119; - lats[2003]=-50.86115858735959; - lats[2004]=-50.931457353761914; - lats[2005]=-51.001756120154049; - lats[2006]=-51.072054886535909; - lats[2007]=-51.14235365290746; - lats[2008]=-51.21265241926865; - lats[2009]=-51.282951185619417; - lats[2010]=-51.353249951959683; - lats[2011]=-51.423548718289396; - lats[2012]=-51.493847484608516; - lats[2013]=-51.56414625091697; - lats[2014]=-51.634445017214695; - lats[2015]=-51.704743783501634; - lats[2016]=-51.775042549777737; - lats[2017]=-51.845341316042933; - lats[2018]=-51.915640082297152; - lats[2019]=-51.985938848540336; - lats[2020]=-52.056237614772435; - lats[2021]=-52.126536380993372; - lats[2022]=-52.196835147203096; - lats[2023]=-52.26713391340153; - lats[2024]=-52.337432679588609; - lats[2025]=-52.407731445764284; - lats[2026]=-52.478030211928477; - lats[2027]=-52.548328978081123; - lats[2028]=-52.618627744222159; - lats[2029]=-52.688926510351514; - lats[2030]=-52.759225276469131; - lats[2031]=-52.829524042574917; - lats[2032]=-52.899822808668837; - lats[2033]=-52.970121574750792; - lats[2034]=-53.040420340820731; - lats[2035]=-53.110719106878584; - lats[2036]=-53.181017872924265; - lats[2037]=-53.251316638957725; - lats[2038]=-53.321615404978871; - lats[2039]=-53.391914170987633; - lats[2040]=-53.462212936983953; - lats[2041]=-53.53251170296776; - lats[2042]=-53.602810468938962; - lats[2043]=-53.673109234897495; - lats[2044]=-53.743408000843282; - lats[2045]=-53.813706766776235; - lats[2046]=-53.884005532696307; - lats[2047]=-53.954304298603383; - lats[2048]=-54.024603064497434; - lats[2049]=-54.094901830378333; - lats[2050]=-54.165200596246031; - lats[2051]=-54.235499362100448; - lats[2052]=-54.305798127941479; - lats[2053]=-54.376096893769081; - lats[2054]=-54.446395659583146; - lats[2055]=-54.516694425383605; - lats[2056]=-54.586993191170357; - lats[2057]=-54.657291956943347; - lats[2058]=-54.727590722702473; - lats[2059]=-54.797889488447652; - lats[2060]=-54.868188254178797; - lats[2061]=-54.938487019895831; - lats[2062]=-55.008785785598668; - lats[2063]=-55.07908455128721; - lats[2064]=-55.149383316961377; - lats[2065]=-55.219682082621084; - lats[2066]=-55.289980848266232; - lats[2067]=-55.360279613896743; - lats[2068]=-55.430578379512511; - lats[2069]=-55.500877145113449; - lats[2070]=-55.571175910699488; - lats[2071]=-55.641474676270505; - lats[2072]=-55.711773441826416; - lats[2073]=-55.782072207367136; - lats[2074]=-55.852370972892551; - lats[2075]=-55.922669738402583; - lats[2076]=-55.992968503897131; - lats[2077]=-56.063267269376091; - lats[2078]=-56.133566034839362; - lats[2079]=-56.203864800286865; - lats[2080]=-56.274163565718467; - lats[2081]=-56.34446233113411; - lats[2082]=-56.41476109653366; - lats[2083]=-56.485059861917016; - lats[2084]=-56.555358627284086; - lats[2085]=-56.625657392634771; - lats[2086]=-56.695956157968951; - lats[2087]=-56.766254923286517; - lats[2088]=-56.836553688587379; - lats[2089]=-56.90685245387143; - lats[2090]=-56.977151219138541; - lats[2091]=-57.047449984388614; - lats[2092]=-57.117748749621541; - lats[2093]=-57.188047514837208; - lats[2094]=-57.258346280035504; - lats[2095]=-57.328645045216312; - lats[2096]=-57.398943810379521; - lats[2097]=-57.469242575525016; - lats[2098]=-57.539541340652676; - lats[2099]=-57.60984010576238; - lats[2100]=-57.680138870854037; - lats[2101]=-57.75043763592749; - lats[2102]=-57.820736400982646; - lats[2103]=-57.891035166019364; - lats[2104]=-57.961333931037537; - lats[2105]=-58.031632696037022; - lats[2106]=-58.101931461017728; - lats[2107]=-58.172230225979497; - lats[2108]=-58.242528990922203; - lats[2109]=-58.312827755845746; - lats[2110]=-58.383126520749968; - lats[2111]=-58.453425285634758; - lats[2112]=-58.523724050499972; - lats[2113]=-58.594022815345468; - lats[2114]=-58.664321580171141; - lats[2115]=-58.73462034497684; - lats[2116]=-58.804919109762423; - lats[2117]=-58.875217874527763; - lats[2118]=-58.945516639272725; - lats[2119]=-59.015815403997145; - lats[2120]=-59.086114168700909; - lats[2121]=-59.156412933383855; - lats[2122]=-59.226711698045854; - lats[2123]=-59.29701046268675; - lats[2124]=-59.3673092273064; - lats[2125]=-59.43760799190467; - lats[2126]=-59.507906756481383; - lats[2127]=-59.578205521036402; - lats[2128]=-59.64850428556958; - lats[2129]=-59.718803050080759; - lats[2130]=-59.78910181456979; - lats[2131]=-59.859400579036503; - lats[2132]=-59.929699343480763; - lats[2133]=-59.999998107902378; - lats[2134]=-60.070296872301235; - lats[2135]=-60.140595636677112; - lats[2136]=-60.21089440102989; - lats[2137]=-60.28119316535939; - lats[2138]=-60.35149192966545; - lats[2139]=-60.421790693947884; - lats[2140]=-60.492089458206543; - lats[2141]=-60.562388222441243; - lats[2142]=-60.632686986651805; - lats[2143]=-60.702985750838074; - lats[2144]=-60.773284514999872; - lats[2145]=-60.843583279137007; - lats[2146]=-60.913882043249295; - lats[2147]=-60.984180807336578; - lats[2148]=-61.054479571398652; - lats[2149]=-61.124778335435344; - lats[2150]=-61.195077099446451; - lats[2151]=-61.265375863431785; - lats[2152]=-61.335674627391185; - lats[2153]=-61.405973391324409; - lats[2154]=-61.476272155231321; - lats[2155]=-61.546570919111666; - lats[2156]=-61.616869682965287; - lats[2157]=-61.687168446791986; - lats[2158]=-61.757467210591535; - lats[2159]=-61.827765974363729; - lats[2160]=-61.898064738108381; - lats[2161]=-61.968363501825259; - lats[2162]=-62.038662265514176; - lats[2163]=-62.108961029174914; - lats[2164]=-62.179259792807258; - lats[2165]=-62.249558556410982; - lats[2166]=-62.319857319985871; - lats[2167]=-62.3901560835317; - lats[2168]=-62.460454847048261; - lats[2169]=-62.530753610535321; - lats[2170]=-62.60105237399263; - lats[2171]=-62.67135113741999; - lats[2172]=-62.741649900817137; - lats[2173]=-62.811948664183866; - lats[2174]=-62.882247427519928; - lats[2175]=-62.952546190825068; - lats[2176]=-63.022844954099064; - lats[2177]=-63.093143717341647; - lats[2178]=-63.163442480552604; - lats[2179]=-63.23374124373165; - lats[2180]=-63.304040006878537; - lats[2181]=-63.374338769993031; - lats[2182]=-63.444637533074854; - lats[2183]=-63.514936296123757; - lats[2184]=-63.585235059139464; - lats[2185]=-63.655533822121711; - lats[2186]=-63.725832585070251; - lats[2187]=-63.796131347984762; - lats[2188]=-63.866430110865004; - lats[2189]=-63.93672887371072; - lats[2190]=-64.00702763652157; - lats[2191]=-64.07732639929732; - lats[2192]=-64.147625162037642; - lats[2193]=-64.21792392474228; - lats[2194]=-64.288222687410922; - lats[2195]=-64.358521450043284; - lats[2196]=-64.428820212639039; - lats[2197]=-64.499118975197902; - lats[2198]=-64.569417737719576; - lats[2199]=-64.639716500203733; - lats[2200]=-64.710015262650074; - lats[2201]=-64.780314025058246; - lats[2202]=-64.850612787427963; - lats[2203]=-64.920911549758912; - lats[2204]=-64.991210312050711; - lats[2205]=-65.061509074303089; - lats[2206]=-65.131807836515677; - lats[2207]=-65.202106598688133; - lats[2208]=-65.272405360820116; - lats[2209]=-65.342704122911286; - lats[2210]=-65.413002884961315; - lats[2211]=-65.483301646969792; - lats[2212]=-65.553600408936404; - lats[2213]=-65.623899170860767; - lats[2214]=-65.694197932742526; - lats[2215]=-65.764496694581283; - lats[2216]=-65.834795456376696; - lats[2217]=-65.905094218128355; - lats[2218]=-65.975392979835888; - lats[2219]=-66.045691741498899; - lats[2220]=-66.115990503117033; - lats[2221]=-66.186289264689833; - lats[2222]=-66.256588026216932; - lats[2223]=-66.326886787697887; - lats[2224]=-66.397185549132331; - lats[2225]=-66.467484310519808; - lats[2226]=-66.537783071859891; - lats[2227]=-66.608081833152212; - lats[2228]=-66.678380594396273; - lats[2229]=-66.748679355591662; - lats[2230]=-66.818978116737924; - lats[2231]=-66.889276877834618; - lats[2232]=-66.95957563888129; - lats[2233]=-67.029874399877471; - lats[2234]=-67.100173160822706; - lats[2235]=-67.170471921716526; - lats[2236]=-67.240770682558434; - lats[2237]=-67.311069443347961; - lats[2238]=-67.381368204084609; - lats[2239]=-67.451666964767895; - lats[2240]=-67.521965725397308; - lats[2241]=-67.592264485972336; - lats[2242]=-67.662563246492482; - lats[2243]=-67.732862006957205; - lats[2244]=-67.803160767365966; - lats[2245]=-67.873459527718282; - lats[2246]=-67.943758288013555; - lats[2247]=-68.014057048251274; - lats[2248]=-68.084355808430871; - lats[2249]=-68.154654568551791; - lats[2250]=-68.224953328613438; - lats[2251]=-68.295252088615257; - lats[2252]=-68.365550848556666; - lats[2253]=-68.435849608437067; - lats[2254]=-68.506148368255865; - lats[2255]=-68.576447128012447; - lats[2256]=-68.646745887706189; - lats[2257]=-68.717044647336493; - lats[2258]=-68.787343406902693; - lats[2259]=-68.85764216640419; - lats[2260]=-68.927940925840304; - lats[2261]=-68.998239685210365; - lats[2262]=-69.068538444513763; - lats[2263]=-69.138837203749759; - lats[2264]=-69.209135962917699; - lats[2265]=-69.279434722016902; - lats[2266]=-69.349733481046613; - lats[2267]=-69.420032240006194; - lats[2268]=-69.490330998894862; - lats[2269]=-69.560629757711908; - lats[2270]=-69.630928516456592; - lats[2271]=-69.701227275128161; - lats[2272]=-69.771526033725834; - lats[2273]=-69.841824792248843; - lats[2274]=-69.912123550696421; - lats[2275]=-69.982422309067744; - lats[2276]=-70.052721067362043; - lats[2277]=-70.123019825578467; - lats[2278]=-70.193318583716191; - lats[2279]=-70.263617341774406; - lats[2280]=-70.333916099752187; - lats[2281]=-70.404214857648739; - lats[2282]=-70.474513615463138; - lats[2283]=-70.544812373194532; - lats[2284]=-70.615111130841967; - lats[2285]=-70.685409888404578; - lats[2286]=-70.755708645881384; - lats[2287]=-70.826007403271475; - lats[2288]=-70.896306160573886; - lats[2289]=-70.966604917787635; - lats[2290]=-71.036903674911756; - lats[2291]=-71.107202431945211; - lats[2292]=-71.177501188887007; - lats[2293]=-71.247799945736105; - lats[2294]=-71.318098702491469; - lats[2295]=-71.388397459152031; - lats[2296]=-71.458696215716685; - lats[2297]=-71.528994972184378; - lats[2298]=-71.599293728553988; - lats[2299]=-71.669592484824364; - lats[2300]=-71.739891240994368; - lats[2301]=-71.810189997062835; - lats[2302]=-71.880488753028587; - lats[2303]=-71.950787508890414; - lats[2304]=-72.02108626464711; - lats[2305]=-72.091385020297409; - lats[2306]=-72.161683775840089; - lats[2307]=-72.231982531273843; - lats[2308]=-72.302281286597392; - lats[2309]=-72.3725800418094; - lats[2310]=-72.442878796908545; - lats[2311]=-72.513177551893421; - lats[2312]=-72.583476306762691; - lats[2313]=-72.653775061514935; - lats[2314]=-72.724073816148703; - lats[2315]=-72.794372570662574; - lats[2316]=-72.864671325055056; - lats[2317]=-72.934970079324657; - lats[2318]=-73.005268833469799; - lats[2319]=-73.075567587489019; - lats[2320]=-73.145866341380668; - lats[2321]=-73.216165095143182; - lats[2322]=-73.2864638487749; - lats[2323]=-73.356762602274188; - lats[2324]=-73.427061355639339; - lats[2325]=-73.497360108868662; - lats[2326]=-73.567658861960396; - lats[2327]=-73.637957614912779; - lats[2328]=-73.70825636772399; - lats[2329]=-73.778555120392184; - lats[2330]=-73.848853872915541; - lats[2331]=-73.919152625292114; - lats[2332]=-73.98945137751997; - lats[2333]=-74.059750129597163; - lats[2334]=-74.13004888152166; - lats[2335]=-74.200347633291472; - lats[2336]=-74.270646384904481; - lats[2337]=-74.340945136358584; - lats[2338]=-74.411243887651622; - lats[2339]=-74.481542638781434; - lats[2340]=-74.551841389745761; - lats[2341]=-74.622140140542356; - lats[2342]=-74.692438891168877; - lats[2343]=-74.762737641622991; - lats[2344]=-74.833036391902269; - lats[2345]=-74.903335142004323; - lats[2346]=-74.973633891926625; - lats[2347]=-75.043932641666672; - lats[2348]=-75.114231391221821; - lats[2349]=-75.184530140589501; - lats[2350]=-75.254828889766983; - lats[2351]=-75.325127638751567; - lats[2352]=-75.395426387540439; - lats[2353]=-75.465725136130786; - lats[2354]=-75.536023884519707; - lats[2355]=-75.60632263270422; - lats[2356]=-75.67662138068134; - lats[2357]=-75.746920128447996; - lats[2358]=-75.81721887600105; - lats[2359]=-75.887517623337317; - lats[2360]=-75.957816370453543; - lats[2361]=-76.028115117346374; - lats[2362]=-76.098413864012443; - lats[2363]=-76.16871261044831; - lats[2364]=-76.239011356650423; - lats[2365]=-76.3093101026152; - lats[2366]=-76.379608848338933; - lats[2367]=-76.449907593817869; - lats[2368]=-76.520206339048215; - lats[2369]=-76.59050508402602; - lats[2370]=-76.660803828747362; - lats[2371]=-76.731102573208048; - lats[2372]=-76.801401317404; - lats[2373]=-76.871700061330955; - lats[2374]=-76.941998804984564; - lats[2375]=-77.012297548360323; - lats[2376]=-77.082596291453768; - lats[2377]=-77.15289503426024; - lats[2378]=-77.22319377677502; - lats[2379]=-77.293492518993247; - lats[2380]=-77.363791260909963; - lats[2381]=-77.434090002520122; - lats[2382]=-77.504388743818524; - lats[2383]=-77.574687484799924; - lats[2384]=-77.644986225458879; - lats[2385]=-77.71528496578982; - lats[2386]=-77.785583705787161; - lats[2387]=-77.855882445445019; - lats[2388]=-77.926181184757539; - lats[2389]=-77.996479923718596; - lats[2390]=-78.066778662322022; - lats[2391]=-78.137077400561424; - lats[2392]=-78.207376138430348; - lats[2393]=-78.277674875922045; - lats[2394]=-78.347973613029708; - lats[2395]=-78.418272349746417; - lats[2396]=-78.488571086064923; - lats[2397]=-78.558869821977908; - lats[2398]=-78.629168557477882; - lats[2399]=-78.699467292557102; - lats[2400]=-78.769766027207638; - lats[2401]=-78.840064761421445; - lats[2402]=-78.910363495190211; - lats[2403]=-78.980662228505423; - lats[2404]=-79.050960961358285; - lats[2405]=-79.121259693739859; - lats[2406]=-79.191558425640977; - lats[2407]=-79.261857157052191; - lats[2408]=-79.332155887963822; - lats[2409]=-79.402454618365894; - lats[2410]=-79.472753348248219; - lats[2411]=-79.543052077600308; - lats[2412]=-79.61335080641139; - lats[2413]=-79.683649534670437; - lats[2414]=-79.753948262366038; - lats[2415]=-79.824246989486554; - lats[2416]=-79.894545716019948; - lats[2417]=-79.9648444419539; - lats[2418]=-80.035143167275749; - lats[2419]=-80.105441891972376; - lats[2420]=-80.175740616030438; - lats[2421]=-80.246039339436052; - lats[2422]=-80.316338062175078; - lats[2423]=-80.386636784232863; - lats[2424]=-80.456935505594302; - lats[2425]=-80.527234226243991; - lats[2426]=-80.59753294616587; - lats[2427]=-80.667831665343556; - lats[2428]=-80.73813038376008; - lats[2429]=-80.808429101397948; - lats[2430]=-80.878727818239184; - lats[2431]=-80.949026534265244; - lats[2432]=-81.019325249456955; - lats[2433]=-81.089623963794551; - lats[2434]=-81.159922677257711; - lats[2435]=-81.230221389825374; - lats[2436]=-81.300520101475826; - lats[2437]=-81.370818812186627; - lats[2438]=-81.441117521934686; - lats[2439]=-81.511416230696042; - lats[2440]=-81.581714938445955; - lats[2441]=-81.652013645158945; - lats[2442]=-81.722312350808508; - lats[2443]=-81.792611055367345; - lats[2444]=-81.862909758807191; - lats[2445]=-81.933208461098829; - lats[2446]=-82.003507162211946; - lats[2447]=-82.073805862115165; - lats[2448]=-82.144104560776; - lats[2449]=-82.214403258160871; - lats[2450]=-82.284701954234833; - lats[2451]=-82.355000648961692; - lats[2452]=-82.425299342304029; - lats[2453]=-82.495598034222837; - lats[2454]=-82.56589672467787; - lats[2455]=-82.63619541362705; - lats[2456]=-82.706494101026948; - lats[2457]=-82.77679278683226; - lats[2458]=-82.84709147099602; - lats[2459]=-82.917390153469313; - lats[2460]=-82.987688834201322; - lats[2461]=-83.057987513139125; - lats[2462]=-83.128286190227698; - lats[2463]=-83.198584865409657; - lats[2464]=-83.268883538625232; - lats[2465]=-83.339182209812321; - lats[2466]=-83.409480878905782; - lats[2467]=-83.479779545838113; - lats[2468]=-83.550078210538487; - lats[2469]=-83.620376872933264; - lats[2470]=-83.690675532945292; - lats[2471]=-83.760974190494011; - lats[2472]=-83.831272845495249; - lats[2473]=-83.901571497860914; - lats[2474]=-83.971870147498763; - lats[2475]=-84.042168794312317; - lats[2476]=-84.112467438200326; - lats[2477]=-84.18276607905679; - lats[2478]=-84.253064716770425; - lats[2479]=-84.323363351224444; - lats[2480]=-84.393661982296322; - lats[2481]=-84.463960609857125; - lats[2482]=-84.534259233771479; - lats[2483]=-84.604557853896708; - lats[2484]=-84.674856470082915; - lats[2485]=-84.745155082171991; - lats[2486]=-84.81545368999717; - lats[2487]=-84.885752293382765; - lats[2488]=-84.95605089214304; - lats[2489]=-85.026349486081983; - lats[2490]=-85.09664807499216; - lats[2491]=-85.16694665865414; - lats[2492]=-85.237245236835548; - lats[2493]=-85.307543809290152; - lats[2494]=-85.377842375756586; - lats[2495]=-85.448140935957483; - lats[2496]=-85.518439489597966; - lats[2497]=-85.588738036364362; - lats[2498]=-85.659036575922883; - lats[2499]=-85.729335107917464; - lats[2500]=-85.799633631968391; - lats[2501]=-85.869932147670127; - lats[2502]=-85.940230654588888; - lats[2503]=-86.010529152260403; - lats[2504]=-86.080827640187209; - lats[2505]=-86.151126117835304; - lats[2506]=-86.221424584631109; - lats[2507]=-86.291723039957418; - lats[2508]=-86.362021483149363; - lats[2509]=-86.432319913489792; - lats[2510]=-86.502618330203831; - lats[2511]=-86.572916732453024; - lats[2512]=-86.643215119328573; - lats[2513]=-86.713513489844246; - lats[2514]=-86.783811842927179; - lats[2515]=-86.854110177408927; - lats[2516]=-86.924408492014166; - lats[2517]=-86.994706785348129; - lats[2518]=-87.065005055882821; - lats[2519]=-87.135303301939786; - lats[2520]=-87.205601521672108; - lats[2521]=-87.275899713041966; - lats[2522]=-87.346197873795816; - lats[2523]=-87.416496001434894; - lats[2524]=-87.486794093180748; - lats[2525]=-87.557092145935584; - lats[2526]=-87.627390156234085; - lats[2527]=-87.697688120188062; - lats[2528]=-87.767986033419561; - lats[2529]=-87.838283890981543; - lats[2530]=-87.908581687261687; - lats[2531]=-87.978879415867283; - lats[2532]=-88.049177069484486; - lats[2533]=-88.119474639706425; - lats[2534]=-88.189772116820762; - lats[2535]=-88.26006948954614; - lats[2536]=-88.330366744702559; - lats[2537]=-88.40066386679355; - lats[2538]=-88.470960837474877; - lats[2539]=-88.541257634868515; - lats[2540]=-88.611554232668382; - lats[2541]=-88.681850598961759; - lats[2542]=-88.752146694650691; - lats[2543]=-88.822442471310097; - lats[2544]=-88.892737868230952; - lats[2545]=-88.96303280826325; - lats[2546]=-89.033327191845927; - lats[2547]=-89.103620888238879; - lats[2548]=-89.173913722284126; - lats[2549]=-89.24420545380525; - lats[2550]=-89.314495744374256; - lats[2551]=-89.3847841013921; - lats[2552]=-89.45506977912261; - lats[2553]=-89.525351592371393; - lats[2554]=-89.595627537554492; - lats[2555]=-89.6658939412157; - lats[2556]=-89.736143271609578; - lats[2557]=-89.806357319542244; - lats[2558]=-89.876478353332288; - lats[2559]=-89.946187715665616; - return GRIB_SUCCESS; -} - -/* Performance: return the precomputed latitudes for N=640 */ -static int get_precomputed_latitudes_N640(double* lats) -{ - lats[0] = 89.892396445590066; - lats[1] = 89.753004943174034; - lats[2] = 89.612790258599077; - lats[3] = 89.472389582061126; - lats[4] = 89.331918354381827; - lats[5] = 89.191412986832432; - lats[6] = 89.050888539966436; - lats[7] = 88.91035235926023; - lats[8] = 88.76980845110036; - lats[9] = 88.629259185411627; - lats[10] = 88.488706053376362; - lats[11] = 88.348150039999084; - lats[12] = 88.207591822004105; - lats[13] = 88.067031879650926; - lats[14] = 87.926470563186442; - lats[15] = 87.785908134040668; - lats[16] = 87.645344791295628; - lats[17] = 87.504780689222315; - lats[18] = 87.364215949214667; - lats[19] = 87.223650668104085; - lats[20] = 87.083084924070917; - lats[21] = 86.942518780928566; - lats[22] = 86.801952291278369; - lats[23] = 86.661385498868242; - lats[24] = 86.520818440379529; - lats[25] = 86.380251146798656; - lats[26] = 86.239683644481104; - lats[27] = 86.0991159559849; - lats[28] = 85.958548100730781; - lats[29] = 85.817980095529578; - lats[30] = 85.677411955006008; - lats[31] = 85.536843691942948; - lats[32] = 85.396275317562669; - lats[33] = 85.255706841757572; - lats[34] = 85.115138273281829; - lats[35] = 84.974569619910426; - lats[36] = 84.834000888572191; - lats[37] = 84.693432085462035; - lats[38] = 84.552863216135577; - lats[39] = 84.412294285589354; - lats[40] = 84.271725298329656; - lats[41] = 84.131156258431133; - lats[42] = 83.990587169587158; - lats[43] = 83.850018035153667; - lats[44] = 83.709448858186462; - lats[45] = 83.568879641474325; - lats[46] = 83.428310387567549; - lats[47] = 83.287741098802584; - lats[48] = 83.147171777324388; - lats[49] = 83.006602425105484; - lats[50] = 82.866033043962815; - lats[51] = 82.725463635573107; - lats[52] = 82.584894201485696; - lats[53] = 82.444324743134914; - lats[54] = 82.303755261850071; - lats[55] = 82.163185758865239; - lats[56] = 82.022616235327504; - lats[57] = 81.882046692304485; - lats[58] = 81.741477130791196; - lats[59] = 81.600907551715878; - lats[60] = 81.460337955945846; - lats[61] = 81.319768344292086; - lats[62] = 81.179198717514012; - lats[63] = 81.038629076323318; - lats[64] = 80.898059421387785; - lats[65] = 80.757489753334553; - lats[66] = 80.616920072753146; - lats[67] = 80.47635038019834; - lats[68] = 80.335780676192584; - lats[69] = 80.195210961228469; - lats[70] = 80.054641235770603; - lats[71] = 79.914071500257819; - lats[72] = 79.773501755104689; - lats[73] = 79.632932000703448; - lats[74] = 79.492362237425226; - lats[75] = 79.351792465621628; - lats[76] = 79.211222685625927; - lats[77] = 79.070652897754229; - lats[78] = 78.930083102306568; - lats[79] = 78.789513299567957; - lats[80] = 78.648943489809355; - lats[81] = 78.508373673288318; - lats[82] = 78.367803850250056; - lats[83] = 78.227234020928066; - lats[84] = 78.086664185544819; - lats[85] = 77.946094344312371; - lats[86] = 77.805524497433041; - lats[87] = 77.664954645099883; - lats[88] = 77.524384787497311; - lats[89] = 77.383814924801513; - lats[90] = 77.243245057180829; - lats[91] = 77.102675184796354; - lats[92] = 76.962105307802219; - lats[93] = 76.821535426345932; - lats[94] = 76.680965540568806; - lats[95] = 76.540395650606285; - lats[96] = 76.399825756588143; - lats[97] = 76.259255858638895; - lats[98] = 76.118685956877997; - lats[99] = 75.978116051420102; - lats[100] = 75.837546142375359; - lats[101] = 75.69697622984954; - lats[102] = 75.556406313944308; - lats[103] = 75.41583639475742; - lats[104] = 75.275266472382896; - lats[105] = 75.134696546911186; - lats[106] = 74.994126618429377; - lats[107] = 74.853556687021296; - lats[108] = 74.712986752767719; - lats[109] = 74.57241681574645; - lats[110] = 74.431846876032495; - lats[111] = 74.291276933698185; - lats[112] = 74.150706988813226; - lats[113] = 74.010137041445006; - lats[114] = 73.869567091658411; - lats[115] = 73.728997139516167; - lats[116] = 73.588427185078871; - lats[117] = 73.447857228405013; - lats[118] = 73.307287269551111; - lats[119] = 73.166717308571819; - lats[120] = 73.026147345520002; - lats[121] = 72.885577380446747; - lats[122] = 72.745007413401481; - lats[123] = 72.604437444432065; - lats[124] = 72.463867473584784; - lats[125] = 72.323297500904502; - lats[126] = 72.182727526434604; - lats[127] = 72.042157550217183; - lats[128] = 71.901587572292982; - lats[129] = 71.761017592701492; - lats[130] = 71.620447611481026; - lats[131] = 71.47987762866866; - lats[132] = 71.339307644300462; - lats[133] = 71.198737658411332; - lats[134] = 71.058167671035164; - lats[135] = 70.917597682204899; - lats[136] = 70.777027691952398; - lats[137] = 70.636457700308753; - lats[138] = 70.495887707304007; - lats[139] = 70.355317712967462; - lats[140] = 70.214747717327526; - lats[141] = 70.074177720411782; - lats[142] = 69.933607722247146; - lats[143] = 69.793037722859665; - lats[144] = 69.65246772227475; - lats[145] = 69.511897720517084; - lats[146] = 69.37132771761064; - lats[147] = 69.230757713578825; - lats[148] = 69.090187708444333; - lats[149] = 68.949617702229318; - lats[150] = 68.809047694955296; - lats[151] = 68.668477686643286; - lats[152] = 68.52790767731365; - lats[153] = 68.387337666986312; - lats[154] = 68.246767655680657; - lats[155] = 68.106197643415527; - lats[156] = 67.965627630209354; - lats[157] = 67.825057616080073; - lats[158] = 67.684487601045149; - lats[159] = 67.543917585121662; - lats[160] = 67.403347568326168; - lats[161] = 67.262777550674912; - lats[162] = 67.122207532183722; - lats[163] = 66.981637512867991; - lats[164] = 66.841067492742795; - lats[165] = 66.700497471822814; - lats[166] = 66.559927450122359; - lats[167] = 66.41935742765547; - lats[168] = 66.278787404435761; - lats[169] = 66.138217380476604; - lats[170] = 65.997647355791017; - lats[171] = 65.85707733039176; - lats[172] = 65.716507304291198; - lats[173] = 65.575937277501538; - lats[174] = 65.435367250034616; - lats[175] = 65.294797221902016; - lats[176] = 65.154227193115119; - lats[177] = 65.013657163684968; - lats[178] = 64.873087133622406; - lats[179] = 64.732517102938033; - lats[180] = 64.591947071642196; - lats[181] = 64.451377039745026; - lats[182] = 64.310807007256443; - lats[183] = 64.170236974186125; - lats[184] = 64.029666940543564; - lats[185] = 63.889096906338061; - lats[186] = 63.748526871578648; - lats[187] = 63.607956836274255; - lats[188] = 63.467386800433559; - lats[189] = 63.326816764065093; - lats[190] = 63.186246727177178; - lats[191] = 63.045676689778013; - lats[192] = 62.905106651875542; - lats[193] = 62.764536613477638; - lats[194] = 62.62396657459194; - lats[195] = 62.483396535225978; - lats[196] = 62.342826495387122; - lats[197] = 62.202256455082583; - lats[198] = 62.061686414319418; - lats[199] = 61.921116373104539; - lats[200] = 61.780546331444761; - lats[201] = 61.639976289346727; - lats[202] = 61.499406246816953; - lats[203] = 61.358836203861841; - lats[204] = 61.21826616048768; - lats[205] = 61.077696116700601; - lats[206] = 60.937126072506608; - lats[207] = 60.796556027911663; - lats[208] = 60.655985982921543; - lats[209] = 60.515415937541938; - lats[210] = 60.374845891778421; - lats[211] = 60.234275845636503; - lats[212] = 60.093705799121537; - lats[213] = 59.953135752238794; - lats[214] = 59.812565704993467; - lats[215] = 59.671995657390596; - lats[216] = 59.531425609435225; - lats[217] = 59.390855561132213; - lats[218] = 59.250285512486386; - lats[219] = 59.10971546350244; - lats[220] = 58.96914541418505; - lats[221] = 58.828575364538722; - lats[222] = 58.688005314567938; - lats[223] = 58.547435264277105; - lats[224] = 58.406865213670514; - lats[225] = 58.266295162752428; - lats[226] = 58.125725111526968; - lats[227] = 57.985155059998249; - lats[228] = 57.844585008170284; - lats[229] = 57.704014956047033; - lats[230] = 57.563444903632337; - lats[231] = 57.422874850930043; - lats[232] = 57.282304797943887; - lats[233] = 57.141734744677549; - lats[234] = 57.001164691134662; - lats[235] = 56.860594637318769; - lats[236] = 56.720024583233375; - lats[237] = 56.579454528881925; - lats[238] = 56.438884474267795; - lats[239] = 56.29831441939433; - lats[240] = 56.157744364264779; - lats[241] = 56.017174308882367; - lats[242] = 55.876604253250278; - lats[243] = 55.736034197371588; - lats[244] = 55.595464141249401; - lats[245] = 55.45489408488671; - lats[246] = 55.314324028286471; - lats[247] = 55.173753971451625; - lats[248] = 55.033183914385013; - lats[249] = 54.892613857089486; - lats[250] = 54.752043799567822; - lats[251] = 54.611473741822735; - lats[252] = 54.470903683856939; - lats[253] = 54.330333625673063; - lats[254] = 54.189763567273758; - lats[255] = 54.049193508661538; - lats[256] = 53.90862344983897; - lats[257] = 53.768053390808532; - lats[258] = 53.627483331572677; - lats[259] = 53.486913272133812; - lats[260] = 53.346343212494332; - lats[261] = 53.205773152656562; - lats[262] = 53.065203092622802; - lats[263] = 52.924633032395342; - lats[264] = 52.784062971976404; - lats[265] = 52.643492911368206; - lats[266] = 52.502922850572908; - lats[267] = 52.362352789592649; - lats[268] = 52.221782728429538; - lats[269] = 52.081212667085637; - lats[270] = 51.940642605563028; - lats[271] = 51.800072543863692; - lats[272] = 51.659502481989627; - lats[273] = 51.518932419942786; - lats[274] = 51.378362357725095; - lats[275] = 51.237792295338465; - lats[276] = 51.097222232784773; - lats[277] = 50.956652170065858; - lats[278] = 50.81608210718354; - lats[279] = 50.675512044139623; - lats[280] = 50.534941980935862; - lats[281] = 50.39437191757402; - lats[282] = 50.253801854055808; - lats[283] = 50.113231790382912; - lats[284] = 49.972661726557028; - lats[285] = 49.832091662579785; - lats[286] = 49.691521598452823; - lats[287] = 49.550951534177734; - lats[288] = 49.410381469756118; - lats[289] = 49.269811405189529; - lats[290] = 49.129241340479489; - lats[291] = 48.988671275627539; - lats[292] = 48.848101210635171; - lats[293] = 48.707531145503857; - lats[294] = 48.56696108023506; - lats[295] = 48.42639101483023; - lats[296] = 48.285820949290759; - lats[297] = 48.145250883618075; - lats[298] = 48.004680817813544; - lats[299] = 47.864110751878535; - lats[300] = 47.723540685814392; - lats[301] = 47.582970619622444; - lats[302] = 47.442400553303997; - lats[303] = 47.301830486860368; - lats[304] = 47.161260420292813; - lats[305] = 47.020690353602596; - lats[306] = 46.880120286790955; - lats[307] = 46.73955021985914; - lats[308] = 46.598980152808338; - lats[309] = 46.458410085639763; - lats[310] = 46.317840018354602; - lats[311] = 46.177269950954006; - lats[312] = 46.036699883439134; - lats[313] = 45.896129815811136; - lats[314] = 45.755559748071114; - lats[315] = 45.614989680220205; - lats[316] = 45.474419612259481; - lats[317] = 45.333849544190024; - lats[318] = 45.193279476012933; - lats[319] = 45.052709407729239; - lats[320] = 44.912139339339987; - lats[321] = 44.771569270846214; - lats[322] = 44.630999202248923; - lats[323] = 44.490429133549149; - lats[324] = 44.349859064747854; - lats[325] = 44.209288995846045; - lats[326] = 44.068718926844674; - lats[327] = 43.928148857744716; - lats[328] = 43.787578788547094; - lats[329] = 43.64700871925276; - lats[330] = 43.506438649862638; - lats[331] = 43.365868580377636; - lats[332] = 43.225298510798666; - lats[333] = 43.0847284411266; - lats[334] = 42.944158371362349; - lats[335] = 42.803588301506764; - lats[336] = 42.663018231560706; - lats[337] = 42.522448161525034; - lats[338] = 42.381878091400594; - lats[339] = 42.241308021188203; - lats[340] = 42.100737950888686; - lats[341] = 41.960167880502873; - lats[342] = 41.819597810031553; - lats[343] = 41.679027739475522; - lats[344] = 41.538457668835562; - lats[345] = 41.397887598112455; - lats[346] = 41.257317527306981; - lats[347] = 41.116747456419873; - lats[348] = 40.976177385451912; - lats[349] = 40.835607314403816; - lats[350] = 40.695037243276325; - lats[351] = 40.554467172070169; - lats[352] = 40.41389710078608; - lats[353] = 40.273327029424742; - lats[354] = 40.132756957986885; - lats[355] = 39.992186886473185; - lats[356] = 39.851616814884331; - lats[357] = 39.711046743220997; - lats[358] = 39.570476671483874; - lats[359] = 39.429906599673615; - lats[360] = 39.289336527790894; - lats[361] = 39.148766455836338; - lats[362] = 39.008196383810613; - lats[363] = 38.867626311714339; - lats[364] = 38.727056239548169; - lats[365] = 38.5864861673127; - lats[366] = 38.44591609500857; - lats[367] = 38.305346022636385; - lats[368] = 38.164775950196741; - lats[369] = 38.02420587769025; - lats[370] = 37.883635805117493; - lats[371] = 37.743065732479067; - lats[372] = 37.602495659775542; - lats[373] = 37.461925587007492; - lats[374] = 37.321355514175501; - lats[375] = 37.180785441280122; - lats[376] = 37.040215368321896; - lats[377] = 36.899645295301404; - lats[378] = 36.759075222219167; - lats[379] = 36.618505149075737; - lats[380] = 36.477935075871656; - lats[381] = 36.33736500260742; - lats[382] = 36.196794929283605; - lats[383] = 36.056224855900687; - lats[384] = 35.9156547824592; - lats[385] = 35.775084708959632; - lats[386] = 35.634514635402525; - lats[387] = 35.493944561788332; - lats[388] = 35.353374488117588; - lats[389] = 35.21280441439076; - lats[390] = 35.072234340608333; - lats[391] = 34.931664266770788; - lats[392] = 34.79109419287861; - lats[393] = 34.650524118932253; - lats[394] = 34.509954044932208; - lats[395] = 34.369383970878907; - lats[396] = 34.228813896772813; - lats[397] = 34.088243822614395; - lats[398] = 33.9476737484041; - lats[399] = 33.807103674142361; - lats[400] = 33.66653359982962; - lats[401] = 33.525963525466317; - lats[402] = 33.385393451052892; - lats[403] = 33.244823376589757; - lats[404] = 33.104253302077339; - lats[405] = 32.963683227516071; - lats[406] = 32.823113152906366; - lats[407] = 32.682543078248621; - lats[408] = 32.541973003543255; - lats[409] = 32.401402928790681; - lats[410] = 32.260832853991289; - lats[411] = 32.120262779145477; - lats[412] = 31.979692704253651; - lats[413] = 31.839122629316183; - lats[414] = 31.698552554333489; - lats[415] = 31.55798247930592; - lats[416] = 31.417412404233875; - lats[417] = 31.276842329117731; - lats[418] = 31.136272253957859; - lats[419] = 30.99570217875463; - lats[420] = 30.855132103508407; - lats[421] = 30.71456202821955; - lats[422] = 30.573991952888438; - lats[423] = 30.433421877515418; - lats[424] = 30.292851802100841; - lats[425] = 30.152281726645064; - lats[426] = 30.011711651148435; - lats[427] = 29.87114157561129; - lats[428] = 29.730571500033992; - lats[429] = 29.590001424416862; - lats[430] = 29.449431348760253; - lats[431] = 29.308861273064483; - lats[432] = 29.168291197329893; - lats[433] = 29.027721121556816; - lats[434] = 28.887151045745565; - lats[435] = 28.746580969896474; - lats[436] = 28.606010894009859; - lats[437] = 28.465440818086037; - lats[438] = 28.324870742125327; - lats[439] = 28.184300666128038; - lats[440] = 28.043730590094491; - lats[441] = 27.903160514024975; - lats[442] = 27.762590437919812; - lats[443] = 27.622020361779295; - lats[444] = 27.481450285603731; - lats[445] = 27.340880209393415; - lats[446] = 27.200310133148644; - lats[447] = 27.05974005686971; - lats[448] = 26.919169980556905; - lats[449] = 26.778599904210516; - lats[450] = 26.638029827830831; - lats[451] = 26.497459751418134; - lats[452] = 26.356889674972713; - lats[453] = 26.216319598494842; - lats[454] = 26.075749521984797; - lats[455] = 25.935179445442859; - lats[456] = 25.794609368869299; - lats[457] = 25.654039292264386; - lats[458] = 25.513469215628398; - lats[459] = 25.3728991389616; - lats[460] = 25.232329062264245; - lats[461] = 25.091758985536615; - lats[462] = 24.951188908778963; - lats[463] = 24.810618831991551; - lats[464] = 24.670048755174633; - lats[465] = 24.529478678328466; - lats[466] = 24.388908601453309; - lats[467] = 24.248338524549407; - lats[468] = 24.107768447617016; - lats[469] = 23.96719837065638; - lats[470] = 23.826628293667756; - lats[471] = 23.686058216651375; - lats[472] = 23.545488139607492; - lats[473] = 23.404918062536346; - lats[474] = 23.264347985438178; - lats[475] = 23.123777908313219; - lats[476] = 22.98320783116171; - lats[477] = 22.84263775398389; - lats[478] = 22.70206767677999; - lats[479] = 22.561497599550243; - lats[480] = 22.420927522294875; - lats[481] = 22.280357445014126; - lats[482] = 22.139787367708202; - lats[483] = 21.999217290377352; - lats[484] = 21.858647213021786; - lats[485] = 21.718077135641735; - lats[486] = 21.577507058237412; - lats[487] = 21.436936980809044; - lats[488] = 21.296366903356844; - lats[489] = 21.155796825881037; - lats[490] = 21.015226748381831; - lats[491] = 20.874656670859444; - lats[492] = 20.734086593314085; - lats[493] = 20.593516515745968; - lats[494] = 20.452946438155308; - lats[495] = 20.312376360542309; - lats[496] = 20.171806282907177; - lats[497] = 20.031236205250121; - lats[498] = 19.890666127571347; - lats[499] = 19.750096049871054; - lats[500] = 19.609525972149449; - lats[501] = 19.468955894406733; - lats[502] = 19.328385816643106; - lats[503] = 19.187815738858767; - lats[504] = 19.04724566105391; - lats[505] = 18.906675583228736; - lats[506] = 18.766105505383443; - lats[507] = 18.625535427518219; - lats[508] = 18.484965349633256; - lats[509] = 18.344395271728757; - lats[510] = 18.203825193804899; - lats[511] = 18.063255115861882; - lats[512] = 17.922685037899889; - lats[513] = 17.782114959919113; - lats[514] = 17.641544881919739; - lats[515] = 17.500974803901951; - lats[516] = 17.360404725865926; - lats[517] = 17.219834647811862; - lats[518] = 17.079264569739937; - lats[519] = 16.938694491650331; - lats[520] = 16.798124413543224; - lats[521] = 16.657554335418794; - lats[522] = 16.516984257277226; - lats[523] = 16.376414179118694; - lats[524] = 16.235844100943371; - lats[525] = 16.09527402275144; - lats[526] = 15.954703944543072; - lats[527] = 15.814133866318445; - lats[528] = 15.673563788077727; - lats[529] = 15.532993709821094; - lats[530] = 15.392423631548718; - lats[531] = 15.251853553260768; - lats[532] = 15.111283474957411; - lats[533] = 14.970713396638821; - lats[534] = 14.830143318305167; - lats[535] = 14.689573239956617; - lats[536] = 14.549003161593328; - lats[537] = 14.408433083215476; - lats[538] = 14.267863004823225; - lats[539] = 14.127292926416734; - lats[540] = 13.986722847996173; - lats[541] = 13.8461527695617; - lats[542] = 13.705582691113481; - lats[543] = 13.565012612651675; - lats[544] = 13.424442534176441; - lats[545] = 13.283872455687943; - lats[546] = 13.143302377186339; - lats[547] = 13.002732298671786; - lats[548] = 12.862162220144443; - lats[549] = 12.72159214160447; - lats[550] = 12.58102206305202; - lats[551] = 12.440451984487247; - lats[552] = 12.299881905910311; - lats[553] = 12.159311827321366; - lats[554] = 12.018741748720567; - lats[555] = 11.878171670108063; - lats[556] = 11.73760159148401; - lats[557] = 11.597031512848561; - lats[558] = 11.456461434201868; - lats[559] = 11.315891355544077; - lats[560] = 11.175321276875344; - lats[561] = 11.034751198195819; - lats[562] = 10.894181119505649; - lats[563] = 10.753611040804984; - lats[564] = 10.613040962093971; - lats[565] = 10.472470883372759; - lats[566] = 10.331900804641496; - lats[567] = 10.191330725900327; - lats[568] = 10.050760647149401; - lats[569] = 9.9101905683888614; - lats[570] = 9.7696204896188554; - lats[571] = 9.6290504108395272; - lats[572] = 9.4884803320510205; - lats[573] = 9.3479102532534792; - lats[574] = 9.2073401744470491; - lats[575] = 9.0667700956318686; - lats[576] = 8.9262000168080871; - lats[577] = 8.7856299379758411; - lats[578] = 8.645059859135273; - lats[579] = 8.5044897802865282; - lats[580] = 8.3639197014297419; - lats[581] = 8.223349622565058; - lats[582] = 8.0827795436926184; - lats[583] = 7.9422094648125583; - lats[584] = 7.8016393859250206; - lats[585] = 7.661069307030143; - lats[586] = 7.5204992281280649; - lats[587] = 7.3799291492189223; - lats[588] = 7.2393590703028563; - lats[589] = 7.098788991380002; - lats[590] = 6.9582189124504987; - lats[591] = 6.8176488335144816; - lats[592] = 6.6770787545720891; - lats[593] = 6.5365086756234554; - lats[594] = 6.3959385966687181; - lats[595] = 6.2553685177080123; - lats[596] = 6.1147984387414738; - lats[597] = 5.9742283597692367; - lats[598] = 5.833658280791437; - lats[599] = 5.6930882018082087; - lats[600] = 5.5525181228196869; - lats[601] = 5.4119480438260039; - lats[602] = 5.2713779648272956; - lats[603] = 5.1308078858236934; - lats[604] = 4.9902378068153324; - lats[605] = 4.8496677278023448; - lats[606] = 4.7090976487848639; - lats[607] = 4.5685275697630221; - lats[608] = 4.4279574907369508; - lats[609] = 4.2873874117067841; - lats[610] = 4.1468173326726534; - lats[611] = 4.0062472536346903; - lats[612] = 3.8656771745930261; - lats[613] = 3.7251070955477918; - lats[614] = 3.5845370164991213; - lats[615] = 3.4439669374471427; - lats[616] = 3.3033968583919884; - lats[617] = 3.1628267793337885; - lats[618] = 3.0222567002726746; - lats[619] = 2.8816866212087762; - lats[620] = 2.7411165421422243; - lats[621] = 2.6005464630731496; - lats[622] = 2.4599763840016813; - lats[623] = 2.3194063049279499; - lats[624] = 2.1788362258520855; - lats[625] = 2.0382661467742174; - lats[626] = 1.8976960676944756; - lats[627] = 1.7571259886129893; - lats[628] = 1.6165559095298885; - lats[629] = 1.4759858304453026; - lats[630] = 1.3354157513593612; - lats[631] = 1.194845672272193; - lats[632] = 1.0542755931839276; - lats[633] = 0.91370551409469447; - lats[634] = 0.77313543500462234; - lats[635] = 0.63256535591384055; - lats[636] = 0.49199527682247807; - lats[637] = 0.351425197730664; - lats[638] = 0.21085511863852741; - lats[639] = 0.070285039546197275; - lats[640] = -0.070285039546197275; - lats[641] = -0.21085511863852741; - lats[642] = -0.351425197730664; - lats[643] = -0.49199527682247807; - lats[644] = -0.63256535591384055; - lats[645] = -0.77313543500462234; - lats[646] = -0.91370551409469447; - lats[647] = -1.0542755931839276; - lats[648] = -1.194845672272193; - lats[649] = -1.3354157513593612; - lats[650] = -1.4759858304453026; - lats[651] = -1.6165559095298885; - lats[652] = -1.7571259886129893; - lats[653] = -1.8976960676944756; - lats[654] = -2.0382661467742174; - lats[655] = -2.1788362258520855; - lats[656] = -2.3194063049279499; - lats[657] = -2.4599763840016813; - lats[658] = -2.6005464630731496; - lats[659] = -2.7411165421422243; - lats[660] = -2.8816866212087762; - lats[661] = -3.0222567002726746; - lats[662] = -3.1628267793337885; - lats[663] = -3.3033968583919884; - lats[664] = -3.4439669374471427; - lats[665] = -3.5845370164991213; - lats[666] = -3.7251070955477918; - lats[667] = -3.8656771745930261; - lats[668] = -4.0062472536346903; - lats[669] = -4.1468173326726534; - lats[670] = -4.2873874117067841; - lats[671] = -4.4279574907369508; - lats[672] = -4.5685275697630221; - lats[673] = -4.7090976487848639; - lats[674] = -4.8496677278023448; - lats[675] = -4.9902378068153324; - lats[676] = -5.1308078858236934; - lats[677] = -5.2713779648272956; - lats[678] = -5.4119480438260039; - lats[679] = -5.5525181228196869; - lats[680] = -5.6930882018082087; - lats[681] = -5.833658280791437; - lats[682] = -5.9742283597692367; - lats[683] = -6.1147984387414738; - lats[684] = -6.2553685177080123; - lats[685] = -6.3959385966687181; - lats[686] = -6.5365086756234554; - lats[687] = -6.6770787545720891; - lats[688] = -6.8176488335144816; - lats[689] = -6.9582189124504987; - lats[690] = -7.098788991380002; - lats[691] = -7.2393590703028563; - lats[692] = -7.3799291492189223; - lats[693] = -7.5204992281280649; - lats[694] = -7.661069307030143; - lats[695] = -7.8016393859250206; - lats[696] = -7.9422094648125583; - lats[697] = -8.0827795436926184; - lats[698] = -8.223349622565058; - lats[699] = -8.3639197014297419; - lats[700] = -8.5044897802865282; - lats[701] = -8.645059859135273; - lats[702] = -8.7856299379758411; - lats[703] = -8.9262000168080871; - lats[704] = -9.0667700956318686; - lats[705] = -9.2073401744470491; - lats[706] = -9.3479102532534792; - lats[707] = -9.4884803320510205; - lats[708] = -9.6290504108395272; - lats[709] = -9.7696204896188554; - lats[710] = -9.9101905683888614; - lats[711] = -10.050760647149401; - lats[712] = -10.191330725900327; - lats[713] = -10.331900804641496; - lats[714] = -10.472470883372759; - lats[715] = -10.613040962093971; - lats[716] = -10.753611040804984; - lats[717] = -10.894181119505649; - lats[718] = -11.034751198195819; - lats[719] = -11.175321276875344; - lats[720] = -11.315891355544077; - lats[721] = -11.456461434201868; - lats[722] = -11.597031512848561; - lats[723] = -11.73760159148401; - lats[724] = -11.878171670108063; - lats[725] = -12.018741748720567; - lats[726] = -12.159311827321366; - lats[727] = -12.299881905910311; - lats[728] = -12.440451984487247; - lats[729] = -12.58102206305202; - lats[730] = -12.72159214160447; - lats[731] = -12.862162220144443; - lats[732] = -13.002732298671786; - lats[733] = -13.143302377186339; - lats[734] = -13.283872455687943; - lats[735] = -13.424442534176441; - lats[736] = -13.565012612651675; - lats[737] = -13.705582691113481; - lats[738] = -13.8461527695617; - lats[739] = -13.986722847996173; - lats[740] = -14.127292926416734; - lats[741] = -14.267863004823225; - lats[742] = -14.408433083215476; - lats[743] = -14.549003161593328; - lats[744] = -14.689573239956617; - lats[745] = -14.830143318305167; - lats[746] = -14.970713396638821; - lats[747] = -15.111283474957411; - lats[748] = -15.251853553260768; - lats[749] = -15.392423631548718; - lats[750] = -15.532993709821094; - lats[751] = -15.673563788077727; - lats[752] = -15.814133866318445; - lats[753] = -15.954703944543072; - lats[754] = -16.09527402275144; - lats[755] = -16.235844100943371; - lats[756] = -16.376414179118694; - lats[757] = -16.516984257277226; - lats[758] = -16.657554335418794; - lats[759] = -16.798124413543224; - lats[760] = -16.938694491650331; - lats[761] = -17.079264569739937; - lats[762] = -17.219834647811862; - lats[763] = -17.360404725865926; - lats[764] = -17.500974803901951; - lats[765] = -17.641544881919739; - lats[766] = -17.782114959919113; - lats[767] = -17.922685037899889; - lats[768] = -18.063255115861882; - lats[769] = -18.203825193804899; - lats[770] = -18.344395271728757; - lats[771] = -18.484965349633256; - lats[772] = -18.625535427518219; - lats[773] = -18.766105505383443; - lats[774] = -18.906675583228736; - lats[775] = -19.04724566105391; - lats[776] = -19.187815738858767; - lats[777] = -19.328385816643106; - lats[778] = -19.468955894406733; - lats[779] = -19.609525972149449; - lats[780] = -19.750096049871054; - lats[781] = -19.890666127571347; - lats[782] = -20.031236205250121; - lats[783] = -20.171806282907177; - lats[784] = -20.312376360542309; - lats[785] = -20.452946438155308; - lats[786] = -20.593516515745968; - lats[787] = -20.734086593314085; - lats[788] = -20.874656670859444; - lats[789] = -21.015226748381831; - lats[790] = -21.155796825881037; - lats[791] = -21.296366903356844; - lats[792] = -21.436936980809044; - lats[793] = -21.577507058237412; - lats[794] = -21.718077135641735; - lats[795] = -21.858647213021786; - lats[796] = -21.999217290377352; - lats[797] = -22.139787367708202; - lats[798] = -22.280357445014126; - lats[799] = -22.420927522294875; - lats[800] = -22.561497599550243; - lats[801] = -22.70206767677999; - lats[802] = -22.84263775398389; - lats[803] = -22.98320783116171; - lats[804] = -23.123777908313219; - lats[805] = -23.264347985438178; - lats[806] = -23.404918062536346; - lats[807] = -23.545488139607492; - lats[808] = -23.686058216651375; - lats[809] = -23.826628293667756; - lats[810] = -23.96719837065638; - lats[811] = -24.107768447617016; - lats[812] = -24.248338524549407; - lats[813] = -24.388908601453309; - lats[814] = -24.529478678328466; - lats[815] = -24.670048755174633; - lats[816] = -24.810618831991551; - lats[817] = -24.951188908778963; - lats[818] = -25.091758985536615; - lats[819] = -25.232329062264245; - lats[820] = -25.3728991389616; - lats[821] = -25.513469215628398; - lats[822] = -25.654039292264386; - lats[823] = -25.794609368869299; - lats[824] = -25.935179445442859; - lats[825] = -26.075749521984797; - lats[826] = -26.216319598494842; - lats[827] = -26.356889674972713; - lats[828] = -26.497459751418134; - lats[829] = -26.638029827830831; - lats[830] = -26.778599904210516; - lats[831] = -26.919169980556905; - lats[832] = -27.05974005686971; - lats[833] = -27.200310133148644; - lats[834] = -27.340880209393415; - lats[835] = -27.481450285603731; - lats[836] = -27.622020361779295; - lats[837] = -27.762590437919812; - lats[838] = -27.903160514024975; - lats[839] = -28.043730590094491; - lats[840] = -28.184300666128038; - lats[841] = -28.324870742125327; - lats[842] = -28.465440818086037; - lats[843] = -28.606010894009859; - lats[844] = -28.746580969896474; - lats[845] = -28.887151045745565; - lats[846] = -29.027721121556816; - lats[847] = -29.168291197329893; - lats[848] = -29.308861273064483; - lats[849] = -29.449431348760253; - lats[850] = -29.590001424416862; - lats[851] = -29.730571500033992; - lats[852] = -29.87114157561129; - lats[853] = -30.011711651148435; - lats[854] = -30.152281726645064; - lats[855] = -30.292851802100841; - lats[856] = -30.433421877515418; - lats[857] = -30.573991952888438; - lats[858] = -30.71456202821955; - lats[859] = -30.855132103508407; - lats[860] = -30.99570217875463; - lats[861] = -31.136272253957859; - lats[862] = -31.276842329117731; - lats[863] = -31.417412404233875; - lats[864] = -31.55798247930592; - lats[865] = -31.698552554333489; - lats[866] = -31.839122629316183; - lats[867] = -31.979692704253651; - lats[868] = -32.120262779145477; - lats[869] = -32.260832853991289; - lats[870] = -32.401402928790681; - lats[871] = -32.541973003543255; - lats[872] = -32.682543078248621; - lats[873] = -32.823113152906366; - lats[874] = -32.963683227516071; - lats[875] = -33.104253302077339; - lats[876] = -33.244823376589757; - lats[877] = -33.385393451052892; - lats[878] = -33.525963525466317; - lats[879] = -33.66653359982962; - lats[880] = -33.807103674142361; - lats[881] = -33.9476737484041; - lats[882] = -34.088243822614395; - lats[883] = -34.228813896772813; - lats[884] = -34.369383970878907; - lats[885] = -34.509954044932208; - lats[886] = -34.650524118932253; - lats[887] = -34.79109419287861; - lats[888] = -34.931664266770788; - lats[889] = -35.072234340608333; - lats[890] = -35.21280441439076; - lats[891] = -35.353374488117588; - lats[892] = -35.493944561788332; - lats[893] = -35.634514635402525; - lats[894] = -35.775084708959632; - lats[895] = -35.9156547824592; - lats[896] = -36.056224855900687; - lats[897] = -36.196794929283605; - lats[898] = -36.33736500260742; - lats[899] = -36.477935075871656; - lats[900] = -36.618505149075737; - lats[901] = -36.759075222219167; - lats[902] = -36.899645295301404; - lats[903] = -37.040215368321896; - lats[904] = -37.180785441280122; - lats[905] = -37.321355514175501; - lats[906] = -37.461925587007492; - lats[907] = -37.602495659775542; - lats[908] = -37.743065732479067; - lats[909] = -37.883635805117493; - lats[910] = -38.02420587769025; - lats[911] = -38.164775950196741; - lats[912] = -38.305346022636385; - lats[913] = -38.44591609500857; - lats[914] = -38.5864861673127; - lats[915] = -38.727056239548169; - lats[916] = -38.867626311714339; - lats[917] = -39.008196383810613; - lats[918] = -39.148766455836338; - lats[919] = -39.289336527790894; - lats[920] = -39.429906599673615; - lats[921] = -39.570476671483874; - lats[922] = -39.711046743220997; - lats[923] = -39.851616814884331; - lats[924] = -39.992186886473185; - lats[925] = -40.132756957986885; - lats[926] = -40.273327029424742; - lats[927] = -40.41389710078608; - lats[928] = -40.554467172070169; - lats[929] = -40.695037243276325; - lats[930] = -40.835607314403816; - lats[931] = -40.976177385451912; - lats[932] = -41.116747456419873; - lats[933] = -41.257317527306981; - lats[934] = -41.397887598112455; - lats[935] = -41.538457668835562; - lats[936] = -41.679027739475522; - lats[937] = -41.819597810031553; - lats[938] = -41.960167880502873; - lats[939] = -42.100737950888686; - lats[940] = -42.241308021188203; - lats[941] = -42.381878091400594; - lats[942] = -42.522448161525034; - lats[943] = -42.663018231560706; - lats[944] = -42.803588301506764; - lats[945] = -42.944158371362349; - lats[946] = -43.0847284411266; - lats[947] = -43.225298510798666; - lats[948] = -43.365868580377636; - lats[949] = -43.506438649862638; - lats[950] = -43.64700871925276; - lats[951] = -43.787578788547094; - lats[952] = -43.928148857744716; - lats[953] = -44.068718926844674; - lats[954] = -44.209288995846045; - lats[955] = -44.349859064747854; - lats[956] = -44.490429133549149; - lats[957] = -44.630999202248923; - lats[958] = -44.771569270846214; - lats[959] = -44.912139339339987; - lats[960] = -45.052709407729239; - lats[961] = -45.193279476012933; - lats[962] = -45.333849544190024; - lats[963] = -45.474419612259481; - lats[964] = -45.614989680220205; - lats[965] = -45.755559748071114; - lats[966] = -45.896129815811136; - lats[967] = -46.036699883439134; - lats[968] = -46.177269950954006; - lats[969] = -46.317840018354602; - lats[970] = -46.458410085639763; - lats[971] = -46.598980152808338; - lats[972] = -46.73955021985914; - lats[973] = -46.880120286790955; - lats[974] = -47.020690353602596; - lats[975] = -47.161260420292813; - lats[976] = -47.301830486860368; - lats[977] = -47.442400553303997; - lats[978] = -47.582970619622444; - lats[979] = -47.723540685814392; - lats[980] = -47.864110751878535; - lats[981] = -48.004680817813544; - lats[982] = -48.145250883618075; - lats[983] = -48.285820949290759; - lats[984] = -48.42639101483023; - lats[985] = -48.56696108023506; - lats[986] = -48.707531145503857; - lats[987] = -48.848101210635171; - lats[988] = -48.988671275627539; - lats[989] = -49.129241340479489; - lats[990] = -49.269811405189529; - lats[991] = -49.410381469756118; - lats[992] = -49.550951534177734; - lats[993] = -49.691521598452823; - lats[994] = -49.832091662579785; - lats[995] = -49.972661726557028; - lats[996] = -50.113231790382912; - lats[997] = -50.253801854055808; - lats[998] = -50.39437191757402; - lats[999] = -50.534941980935862; - lats[1000] = -50.675512044139623; - lats[1001] = -50.81608210718354; - lats[1002] = -50.956652170065858; - lats[1003] = -51.097222232784773; - lats[1004] = -51.237792295338465; - lats[1005] = -51.378362357725095; - lats[1006] = -51.518932419942786; - lats[1007] = -51.659502481989627; - lats[1008] = -51.800072543863692; - lats[1009] = -51.940642605563028; - lats[1010] = -52.081212667085637; - lats[1011] = -52.221782728429538; - lats[1012] = -52.362352789592649; - lats[1013] = -52.502922850572908; - lats[1014] = -52.643492911368206; - lats[1015] = -52.784062971976404; - lats[1016] = -52.924633032395342; - lats[1017] = -53.065203092622802; - lats[1018] = -53.205773152656562; - lats[1019] = -53.346343212494332; - lats[1020] = -53.486913272133812; - lats[1021] = -53.627483331572677; - lats[1022] = -53.768053390808532; - lats[1023] = -53.90862344983897; - lats[1024] = -54.049193508661538; - lats[1025] = -54.189763567273758; - lats[1026] = -54.330333625673063; - lats[1027] = -54.470903683856939; - lats[1028] = -54.611473741822735; - lats[1029] = -54.752043799567822; - lats[1030] = -54.892613857089486; - lats[1031] = -55.033183914385013; - lats[1032] = -55.173753971451625; - lats[1033] = -55.314324028286471; - lats[1034] = -55.45489408488671; - lats[1035] = -55.595464141249401; - lats[1036] = -55.736034197371588; - lats[1037] = -55.876604253250278; - lats[1038] = -56.017174308882367; - lats[1039] = -56.157744364264779; - lats[1040] = -56.29831441939433; - lats[1041] = -56.438884474267795; - lats[1042] = -56.579454528881925; - lats[1043] = -56.720024583233375; - lats[1044] = -56.860594637318769; - lats[1045] = -57.001164691134662; - lats[1046] = -57.141734744677549; - lats[1047] = -57.282304797943887; - lats[1048] = -57.422874850930043; - lats[1049] = -57.563444903632337; - lats[1050] = -57.704014956047033; - lats[1051] = -57.844585008170284; - lats[1052] = -57.985155059998249; - lats[1053] = -58.125725111526968; - lats[1054] = -58.266295162752428; - lats[1055] = -58.406865213670514; - lats[1056] = -58.547435264277105; - lats[1057] = -58.688005314567938; - lats[1058] = -58.828575364538722; - lats[1059] = -58.96914541418505; - lats[1060] = -59.10971546350244; - lats[1061] = -59.250285512486386; - lats[1062] = -59.390855561132213; - lats[1063] = -59.531425609435225; - lats[1064] = -59.671995657390596; - lats[1065] = -59.812565704993467; - lats[1066] = -59.953135752238794; - lats[1067] = -60.093705799121537; - lats[1068] = -60.234275845636503; - lats[1069] = -60.374845891778421; - lats[1070] = -60.515415937541938; - lats[1071] = -60.655985982921543; - lats[1072] = -60.796556027911663; - lats[1073] = -60.937126072506608; - lats[1074] = -61.077696116700601; - lats[1075] = -61.21826616048768; - lats[1076] = -61.358836203861841; - lats[1077] = -61.499406246816953; - lats[1078] = -61.639976289346727; - lats[1079] = -61.780546331444761; - lats[1080] = -61.921116373104539; - lats[1081] = -62.061686414319418; - lats[1082] = -62.202256455082583; - lats[1083] = -62.342826495387122; - lats[1084] = -62.483396535225978; - lats[1085] = -62.62396657459194; - lats[1086] = -62.764536613477638; - lats[1087] = -62.905106651875542; - lats[1088] = -63.045676689778013; - lats[1089] = -63.186246727177178; - lats[1090] = -63.326816764065093; - lats[1091] = -63.467386800433559; - lats[1092] = -63.607956836274255; - lats[1093] = -63.748526871578648; - lats[1094] = -63.889096906338061; - lats[1095] = -64.029666940543564; - lats[1096] = -64.170236974186125; - lats[1097] = -64.310807007256443; - lats[1098] = -64.451377039745026; - lats[1099] = -64.591947071642196; - lats[1100] = -64.732517102938033; - lats[1101] = -64.873087133622406; - lats[1102] = -65.013657163684968; - lats[1103] = -65.154227193115119; - lats[1104] = -65.294797221902016; - lats[1105] = -65.435367250034616; - lats[1106] = -65.575937277501538; - lats[1107] = -65.716507304291198; - lats[1108] = -65.85707733039176; - lats[1109] = -65.997647355791017; - lats[1110] = -66.138217380476604; - lats[1111] = -66.278787404435761; - lats[1112] = -66.41935742765547; - lats[1113] = -66.559927450122359; - lats[1114] = -66.700497471822814; - lats[1115] = -66.841067492742795; - lats[1116] = -66.981637512867991; - lats[1117] = -67.122207532183722; - lats[1118] = -67.262777550674912; - lats[1119] = -67.403347568326168; - lats[1120] = -67.543917585121662; - lats[1121] = -67.684487601045149; - lats[1122] = -67.825057616080073; - lats[1123] = -67.965627630209354; - lats[1124] = -68.106197643415527; - lats[1125] = -68.246767655680657; - lats[1126] = -68.387337666986312; - lats[1127] = -68.52790767731365; - lats[1128] = -68.668477686643286; - lats[1129] = -68.809047694955296; - lats[1130] = -68.949617702229318; - lats[1131] = -69.090187708444333; - lats[1132] = -69.230757713578825; - lats[1133] = -69.37132771761064; - lats[1134] = -69.511897720517084; - lats[1135] = -69.65246772227475; - lats[1136] = -69.793037722859665; - lats[1137] = -69.933607722247146; - lats[1138] = -70.074177720411782; - lats[1139] = -70.214747717327526; - lats[1140] = -70.355317712967462; - lats[1141] = -70.495887707304007; - lats[1142] = -70.636457700308753; - lats[1143] = -70.777027691952398; - lats[1144] = -70.917597682204899; - lats[1145] = -71.058167671035164; - lats[1146] = -71.198737658411332; - lats[1147] = -71.339307644300462; - lats[1148] = -71.47987762866866; - lats[1149] = -71.620447611481026; - lats[1150] = -71.761017592701492; - lats[1151] = -71.901587572292982; - lats[1152] = -72.042157550217183; - lats[1153] = -72.182727526434604; - lats[1154] = -72.323297500904502; - lats[1155] = -72.463867473584784; - lats[1156] = -72.604437444432065; - lats[1157] = -72.745007413401481; - lats[1158] = -72.885577380446747; - lats[1159] = -73.026147345520002; - lats[1160] = -73.166717308571819; - lats[1161] = -73.307287269551111; - lats[1162] = -73.447857228405013; - lats[1163] = -73.588427185078871; - lats[1164] = -73.728997139516167; - lats[1165] = -73.869567091658411; - lats[1166] = -74.010137041445006; - lats[1167] = -74.150706988813226; - lats[1168] = -74.291276933698185; - lats[1169] = -74.431846876032495; - lats[1170] = -74.57241681574645; - lats[1171] = -74.712986752767719; - lats[1172] = -74.853556687021296; - lats[1173] = -74.994126618429377; - lats[1174] = -75.134696546911186; - lats[1175] = -75.275266472382896; - lats[1176] = -75.41583639475742; - lats[1177] = -75.556406313944308; - lats[1178] = -75.69697622984954; - lats[1179] = -75.837546142375359; - lats[1180] = -75.978116051420102; - lats[1181] = -76.118685956877997; - lats[1182] = -76.259255858638895; - lats[1183] = -76.399825756588143; - lats[1184] = -76.540395650606285; - lats[1185] = -76.680965540568806; - lats[1186] = -76.821535426345932; - lats[1187] = -76.962105307802219; - lats[1188] = -77.102675184796354; - lats[1189] = -77.243245057180829; - lats[1190] = -77.383814924801513; - lats[1191] = -77.524384787497311; - lats[1192] = -77.664954645099883; - lats[1193] = -77.805524497433041; - lats[1194] = -77.946094344312371; - lats[1195] = -78.086664185544819; - lats[1196] = -78.227234020928066; - lats[1197] = -78.367803850250056; - lats[1198] = -78.508373673288318; - lats[1199] = -78.648943489809355; - lats[1200] = -78.789513299567957; - lats[1201] = -78.930083102306568; - lats[1202] = -79.070652897754229; - lats[1203] = -79.211222685625927; - lats[1204] = -79.351792465621628; - lats[1205] = -79.492362237425226; - lats[1206] = -79.632932000703448; - lats[1207] = -79.773501755104689; - lats[1208] = -79.914071500257819; - lats[1209] = -80.054641235770603; - lats[1210] = -80.195210961228469; - lats[1211] = -80.335780676192584; - lats[1212] = -80.47635038019834; - lats[1213] = -80.616920072753146; - lats[1214] = -80.757489753334553; - lats[1215] = -80.898059421387785; - lats[1216] = -81.038629076323318; - lats[1217] = -81.179198717514012; - lats[1218] = -81.319768344292086; - lats[1219] = -81.460337955945846; - lats[1220] = -81.600907551715878; - lats[1221] = -81.741477130791196; - lats[1222] = -81.882046692304485; - lats[1223] = -82.022616235327504; - lats[1224] = -82.163185758865239; - lats[1225] = -82.303755261850071; - lats[1226] = -82.444324743134914; - lats[1227] = -82.584894201485696; - lats[1228] = -82.725463635573107; - lats[1229] = -82.866033043962815; - lats[1230] = -83.006602425105484; - lats[1231] = -83.147171777324388; - lats[1232] = -83.287741098802584; - lats[1233] = -83.428310387567549; - lats[1234] = -83.568879641474325; - lats[1235] = -83.709448858186462; - lats[1236] = -83.850018035153667; - lats[1237] = -83.990587169587158; - lats[1238] = -84.131156258431133; - lats[1239] = -84.271725298329656; - lats[1240] = -84.412294285589354; - lats[1241] = -84.552863216135577; - lats[1242] = -84.693432085462035; - lats[1243] = -84.834000888572191; - lats[1244] = -84.974569619910426; - lats[1245] = -85.115138273281829; - lats[1246] = -85.255706841757572; - lats[1247] = -85.396275317562669; - lats[1248] = -85.536843691942948; - lats[1249] = -85.677411955006008; - lats[1250] = -85.817980095529578; - lats[1251] = -85.958548100730781; - lats[1252] = -86.0991159559849; - lats[1253] = -86.239683644481104; - lats[1254] = -86.380251146798656; - lats[1255] = -86.520818440379529; - lats[1256] = -86.661385498868242; - lats[1257] = -86.801952291278369; - lats[1258] = -86.942518780928566; - lats[1259] = -87.083084924070917; - lats[1260] = -87.223650668104085; - lats[1261] = -87.364215949214667; - lats[1262] = -87.504780689222315; - lats[1263] = -87.645344791295628; - lats[1264] = -87.785908134040668; - lats[1265] = -87.926470563186442; - lats[1266] = -88.067031879650926; - lats[1267] = -88.207591822004105; - lats[1268] = -88.348150039999084; - lats[1269] = -88.488706053376362; - lats[1270] = -88.629259185411627; - lats[1271] = -88.76980845110036; - lats[1272] = -88.91035235926023; - lats[1273] = -89.050888539966436; - lats[1274] = -89.191412986832432; - lats[1275] = -89.331918354381827; - lats[1276] = -89.472389582061126; - lats[1277] = -89.612790258599077; - lats[1278] = -89.753004943174034; - lats[1279] = -89.892396445590066; - return GRIB_SUCCESS; -} - /* 'trunc' is the Gaussian number (or order) */ /* i.e. Number of parallels between a pole and the equator. */ /* The provided 'lats' array should have allocated 2*trunc elements */ -static int ecc_grib_get_gaussian_latitudes(long trunc, double* lats) +static int compute_gaussian_latitudes(long trunc, double* lats) { long jlat, iter, legi; double rad2deg, convval, root, legfonc = 0; @@ -4003,12 +151,9 @@ static int ecc_grib_get_gaussian_latitudes(long trunc, double* lats) int grib_get_gaussian_latitudes(long trunc, double* lats) { - if (trunc == 1280) - return get_precomputed_latitudes_N1280(lats); - if (trunc == 640) - return get_precomputed_latitudes_N640(lats); - else - return ecc_grib_get_gaussian_latitudes(trunc, lats); + if (trunc <= 0) + return GRIB_GEOCALCULUS_PROBLEM; + return compute_gaussian_latitudes(trunc, lats); } /* Boolean return type: 1 if the reduced gaussian field is global, 0 for sub area */ @@ -4162,45 +307,45 @@ double geographic_distance_spherical(double radius, double lon1, double lat1, do return radius * acos(a); } -/* major and minor axes in km, angles in degrees */ -double geographic_distance_ellipsoid(double major, double minor, double lon1, double lat1, double lon2, double lat2) -{ - /* Lambert's formula */ - double rlat1 = RADIAN(lat1); - double rlat2 = RADIAN(lat2); - double rlon1 = RADIAN(lon1); - double rlon2 = RADIAN(lon2); - double deltaLat = rlat2 - rlat1; - double deltaLon = rlon2 - rlon1; - double sinDlat = sin(deltaLat/2.0); - double sinDlon = sin(deltaLon/2.0); - double sin2Dlat = sinDlat*sinDlat; - double sin2Dlon = sinDlon*sinDlon; - - double a = sin2Dlat + cos(rlat1) * cos(rlat2) * sin2Dlon; - double c = 2 * atan2(sqrt(a), sqrt(1.0-a)); - double f = (major - minor)/major; /*flattening*/ - - double latr1 = atan( (1.0-f)*tan(rlat1) ); /*Reduced latitude1*/ - double latr2 = atan( (1.0-f)*tan(rlat2) ); /*Reduced latitude2*/ - double P = (latr1+latr2)/2; - double Q = (latr2-latr1)/2; - double sinP = sin(P); - double sin2P = sinP*sinP; - double cosQ = cos(Q); - double cos2Q = cosQ*cosQ; - double cosc2 = cos(c/2); - double cos2c2 = cosc2*cosc2; - - double sinQ = sin(Q); - double sin2Q = sinQ*sinQ; - double cosP = cos(P); - double cos2P = cosP*cosP; - double sinc2 = sin(c/2); - double sin2c2 = sinc2*sinc2; - - double X = (c - sin(c))* sin2P * cos2Q / cos2c2; - double Y = (c + sin(c))*sin2Q*cos2P/sin2c2; - double dist = major * (c - f*(X+Y)/2); - return dist; -} +// major and minor axes in km, angles in degrees +// double geographic_distance_ellipsoid(double major, double minor, double lon1, double lat1, double lon2, double lat2) +// { +// /* Lambert's formula */ +// double rlat1 = RADIAN(lat1); +// double rlat2 = RADIAN(lat2); +// double rlon1 = RADIAN(lon1); +// double rlon2 = RADIAN(lon2); +// double deltaLat = rlat2 - rlat1; +// double deltaLon = rlon2 - rlon1; +// double sinDlat = sin(deltaLat/2.0); +// double sinDlon = sin(deltaLon/2.0); +// double sin2Dlat = sinDlat*sinDlat; +// double sin2Dlon = sinDlon*sinDlon; + +// double a = sin2Dlat + cos(rlat1) * cos(rlat2) * sin2Dlon; +// double c = 2 * atan2(sqrt(a), sqrt(1.0-a)); +// double f = (major - minor)/major; /*flattening*/ + +// double latr1 = atan( (1.0-f)*tan(rlat1) ); /*Reduced latitude1*/ +// double latr2 = atan( (1.0-f)*tan(rlat2) ); /*Reduced latitude2*/ +// double P = (latr1+latr2)/2; +// double Q = (latr2-latr1)/2; +// double sinP = sin(P); +// double sin2P = sinP*sinP; +// double cosQ = cos(Q); +// double cos2Q = cosQ*cosQ; +// double cosc2 = cos(c/2); +// double cos2c2 = cosc2*cosc2; + +// double sinQ = sin(Q); +// double sin2Q = sinQ*sinQ; +// double cosP = cos(P); +// double cos2P = cosP*cosP; +// double sinc2 = sin(c/2); +// double sin2c2 = sinc2*sinc2; + +// double X = (c - sin(c))* sin2P * cos2Q / cos2c2; +// double Y = (c + sin(c))*sin2Q*cos2P/sin2c2; +// double dist = major * (c - f*(X+Y)/2); +// return dist; +// } diff --git a/src/grib_handle.cc b/src/grib_handle.cc index 8b14a7161..be5cdecda 100644 --- a/src/grib_handle.cc +++ b/src/grib_handle.cc @@ -196,7 +196,7 @@ static grib_handle* grib_handle_create(grib_handle* gl, grib_context* c, const v return NULL; } - gl->buffer->property = GRIB_USER_BUFFER; + gl->buffer->property = CODES_USER_BUFFER; next = gl->context->grib_reader->first->root; while (next) { @@ -401,7 +401,7 @@ grib_handle* grib_handle_new_from_message_copy(grib_context* c, const void* data memcpy(copy, data, size); g = grib_handle_new_from_message(c, copy, size); - g->buffer->property = GRIB_MY_BUFFER; + g->buffer->property = CODES_MY_BUFFER; return g; } @@ -421,7 +421,7 @@ grib_handle* grib_handle_new_from_partial_message_copy(grib_context* c, const vo memcpy(copy, data, size); g = grib_handle_new_from_partial_message(c, copy, size); - g->buffer->property = GRIB_MY_BUFFER; + g->buffer->property = CODES_MY_BUFFER; return g; } @@ -448,6 +448,7 @@ grib_handle* grib_handle_new_from_message(grib_context* c, const void* data, siz gl = grib_new_handle(c); gl->product_kind = PRODUCT_GRIB; /* See ECC-480 */ h = grib_handle_create(gl, c, data, buflen); + if (!h) return NULL; /* See ECC-448 */ if (determine_product_kind(h, &product_kind) == GRIB_SUCCESS) { @@ -606,7 +607,7 @@ static grib_handle* grib_handle_new_multi(grib_context* c, unsigned char** data, return NULL; } - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -763,7 +764,7 @@ static grib_handle* grib_handle_new_from_file_multi(grib_context* c, FILE* f, in } gl->offset = gm->offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -843,7 +844,7 @@ grib_handle* gts_new_from_file(grib_context* c, FILE* f, int* error) } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; gl->product_kind = PRODUCT_GTS; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -884,7 +885,7 @@ grib_handle* taf_new_from_file(grib_context* c, FILE* f, int* error) } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; gl->product_kind = PRODUCT_TAF; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -925,7 +926,7 @@ grib_handle* metar_new_from_file(grib_context* c, FILE* f, int* error) } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; gl->product_kind = PRODUCT_METAR; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -993,7 +994,7 @@ grib_handle* bufr_new_from_file(grib_context* c, FILE* f, int* error) } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; gl->product_kind = PRODUCT_BUFR; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -1045,7 +1046,7 @@ grib_handle* any_new_from_file(grib_context* c, FILE* f, int* error) } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; gl->product_kind = PRODUCT_ANY; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -1118,7 +1119,7 @@ static grib_handle* grib_handle_new_from_file_no_multi(grib_context* c, FILE* f, } gl->offset = offset; - gl->buffer->property = GRIB_MY_BUFFER; + gl->buffer->property = CODES_MY_BUFFER; grib_context_increment_handle_file_count(c); grib_context_increment_handle_total_count(c); @@ -1392,38 +1393,32 @@ int grib_get_message_headers(grib_handle* h, const void** msg, size_t* size) return err; } -grib_handle* grib_handle_new(grib_context* c) -{ - grib_handle* h; - - if (!c) - c = grib_context_get_default(); - h = grib_new_handle(c); - h->buffer = grib_create_growable_buffer(c); - if (h->buffer == NULL) { - grib_handle_delete(h); - return NULL; - } - h->root = grib_create_root_section(h->context, h); - - if (!h->root) { - grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new: cannot create root section"); - grib_handle_delete(h); - return NULL; - } - - if (!h->context->grib_reader || !h->context->grib_reader->first) { - grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new: cannot create handle, no definitions found"); - grib_handle_delete(h); - return NULL; - } - - h->buffer->property = GRIB_USER_BUFFER; - - h->header_mode = 1; - - return h; -} +// grib_handle* grib_handle_new(grib_context* c) +// { +// grib_handle* h; +// if (!c) +// c = grib_context_get_default(); +// h = grib_new_handle(c); +// h->buffer = grib_create_growable_buffer(c); +// if (h->buffer == NULL) { +// grib_handle_delete(h); +// return NULL; +// } +// h->root = grib_create_root_section(h->context, h); +// if (!h->root) { +// grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new: cannot create root section"); +// grib_handle_delete(h); +// return NULL; +// } +// if (!h->context->grib_reader || !h->context->grib_reader->first) { +// grib_context_log(c, GRIB_LOG_ERROR, "grib_handle_new: cannot create handle, no definitions found"); +// grib_handle_delete(h); +// return NULL; +// } +// h->buffer->property = CODES_USER_BUFFER; +// h->header_mode = 1; +// return h; +// } grib_action* grib_action_from_filter(const char* filter) { @@ -1458,22 +1453,22 @@ int grib_handle_apply_action(grib_handle* h, grib_action* a) return GRIB_SUCCESS; } -int grib_handle_prepare_action(grib_handle* h, grib_action* a) -{ - int err; +// int grib_handle_prepare_action(grib_handle* h, grib_action* a) +// { +// int err; - if (!a) - return GRIB_SUCCESS; /* TODO: return error */ +// if (!a) +// return GRIB_SUCCESS; /* TODO: return error */ - while (a) { - err = grib_action_execute(a, h); - if (err != GRIB_SUCCESS) - return err; - a = a->next; - } +// while (a) { +// err = grib_action_execute(a, h); +// if (err != GRIB_SUCCESS) +// return err; +// a = a->next; +// } - return GRIB_SUCCESS; -} +// return GRIB_SUCCESS; +// } static int grib2_get_next_section(unsigned char* msgbegin, size_t msglen, unsigned char** secbegin, size_t* seclen, int* secnum, int* err) { diff --git a/src/grib_hash_array.cc b/src/grib_hash_array.cc index 3e0446b32..54ba4294f 100644 --- a/src/grib_hash_array.cc +++ b/src/grib_hash_array.cc @@ -21,15 +21,14 @@ grib_hash_array_value* grib_integer_hash_array_value_new(grib_context* c, const return v; } -grib_hash_array_value* grib_double_hash_array_value_new(grib_context* c, const char* name, grib_darray* array) -{ - grib_hash_array_value* v = (grib_hash_array_value*)grib_context_malloc_clear_persistent(c, sizeof(grib_hash_array_value)); - - v->name = grib_context_strdup_persistent(c, name); - v->type = GRIB_HASH_ARRAY_TYPE_DOUBLE; - v->darray = array; - return v; -} +// grib_hash_array_value* grib_double_hash_array_value_new(grib_context* c, const char* name, grib_darray* array) +// { +// grib_hash_array_value* v = (grib_hash_array_value*)grib_context_malloc_clear_persistent(c, sizeof(grib_hash_array_value)); +// v->name = grib_context_strdup_persistent(c, name); +// v->type = GRIB_HASH_ARRAY_TYPE_DOUBLE; +// v->darray = array; +// return v; +// } void grib_hash_array_value_delete(grib_context* c, grib_hash_array_value* v) { diff --git a/src/grib_hash_keys.cc b/src/grib_hash_keys.cc index 550481324..c5407cab7 100644 --- a/src/grib_hash_keys.cc +++ b/src/grib_hash_keys.cc @@ -34,12 +34,12 @@ struct grib_keys_hash { char* name; int id;}; #include -#define TOTAL_KEYWORDS 2487 +#define TOTAL_KEYWORDS 2486 #define MIN_WORD_LENGTH 1 #define MAX_WORD_LENGTH 74 #define MIN_HASH_VALUE 3 -#define MAX_HASH_VALUE 34316 -/* maximum key range = 34314, duplicates = 0 */ +#define MAX_HASH_VALUE 30696 +/* maximum key range = 30694, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -53,32 +53,32 @@ hash_keys (const char *str, size_t len) { static const unsigned short asso_values[] = { - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 2, 34317, 34317, 1, 34317, 34317, 320, 2507, - 2365, 2344, 2145, 2487, 2277, 2572, 64, 43, 3, 2, - 1, 34317, 34317, 34317, 34317, 2043, 3384, 2134, 276, 2123, - 145, 4454, 3774, 926, 575, 173, 102, 1646, 779, 158, - 966, 21, 629, 68, 50, 5392, 1844, 3354, 605, 3874, - 1, 1, 3, 34317, 34317, 2581, 34317, 5, 494, 54, - 1, 2, 53, 83, 173, 10, 3062, 3321, 71, 7, - 1, 20, 29, 1231, 1, 8, 4, 65, 291, 211, - 1560, 203, 1838, 4, 581, 1, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, - 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317, 34317 + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 2, 30697, 30697, 1, 30697, 30697, 60, 2144, + 1488, 1414, 1282, 1945, 2131, 2782, 4, 83, 2, 1, + 1, 30697, 30697, 30697, 30697, 1406, 5347, 2917, 173, 2354, + 207, 4643, 3405, 1479, 445, 31, 308, 2021, 789, 247, + 924, 212, 542, 140, 85, 4819, 1866, 4035, 699, 5481, + 1, 1, 2, 30697, 30697, 1590, 30697, 5, 697, 54, + 1, 2, 123, 254, 109, 10, 2434, 3862, 71, 7, + 1, 20, 29, 975, 1, 8, 4, 65, 270, 177, + 1423, 7, 2285, 260, 1415, 2, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, + 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697, 30697 }; unsigned int hval = len; @@ -165,1030 +165,1039 @@ hash_keys (const char *str, size_t len) static const unsigned char lengthtable[] = { 0, 0, 0, 1, 0, 2, 2, 3, 2, 1, 0, 2, 2, 2, - 0, 1, 0, 0, 4, 0, 0, 4, 3, 0, 4, 0, 0, 5, + 0, 1, 0, 2, 4, 0, 4, 4, 3, 3, 4, 0, 0, 5, 3, 4, 0, 0, 0, 4, 0, 0, 5, 0, 0, 0, 6, 4, - 0, 5, 0, 0, 8, 0, 0, 0, 3, 6, 5, 0, 0, 0, - 7, 4, 7, 5, 0, 0, 0, 0, 0, 0, 9, 9, 0, 9, - 9, 0, 6, 0, 0, 0, 4, 7, 4, 0, 0, 0, 10, 4, - 10, 7, 6, 0, 0, 7, 0, 8, 0, 6, 8, 8, 5, 6, - 10, 5, 4, 5, 0, 0, 6, 10, 0, 7, 6, 0, 10, 6, - 8, 9, 4, 0, 7, 10, 0, 10, 0, 7, 0, 0, 0, 10, - 0, 0, 5, 9, 0, 0, 6, 10, 0, 0, 0, 7, 3, 0, - 0, 0, 4, 7, 0, 9, 5, 0, 0, 0, 6, 0, 2, 5, - 0, 0, 10, 0, 8, 5, 0, 8, 3, 9, 10, 0, 0, 1, - 3, 0, 0, 0, 8, 2, 0, 10, 0, 5, 10, 8, 5, 0, - 6, 3, 9, 7, 0, 9, 2, 5, 9, 13, 5, 0, 0, 11, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 8, 0, 10, 10, 11, - 0, 0, 6, 6, 6, 0, 4, 0, 0, 0, 7, 0, 0, 0, - 5, 0, 14, 0, 0, 0, 0, 0, 0, 5, 0, 8, 0, 8, - 4, 0, 0, 0, 0, 0, 4, 6, 0, 0, 0, 0, 0, 2, - 7, 0, 0, 0, 0, 0, 3, 0, 10, 0, 0, 0, 4, 0, - 0, 0, 9, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 10, 0, 14, 8, 10, 0, 10, 0, 0, 0, 6, - 0, 0, 0, 5, 2, 4, 0, 9, 0, 13, 13, 0, 11, 0, - 6, 8, 0, 2, 8, 0, 0, 8, 7, 8, 0, 10, 0, 0, - 0, 0, 9, 0, 8, 0, 0, 0, 0, 5, 0, 0, 12, 9, - 0, 8, 0, 0, 0, 7, 0, 5, 0, 0, 0, 1, 0, 9, - 14, 10, 0, 10, 0, 0, 0, 0, 0, 17, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 10, 0, 0, 10, 6, 11, - 0, 0, 0, 6, 0, 5, 0, 7, 0, 0, 0, 8, 20, 0, - 10, 11, 0, 10, 0, 6, 7, 0, 0, 0, 0, 0, 19, 0, - 20, 0, 0, 2, 8, 0, 0, 0, 0, 3, 9, 8, 0, 0, - 0, 0, 0, 12, 0, 12, 0, 0, 0, 13, 0, 6, 0, 0, - 0, 0, 0, 0, 0, 11, 11, 14, 0, 8, 0, 0, 8, 0, - 0, 0, 0, 0, 10, 0, 0, 10, 6, 0, 0, 6, 0, 11, - 10, 9, 0, 3, 0, 0, 14, 0, 0, 8, 0, 0, 18, 14, - 0, 0, 0, 0, 0, 12, 0, 14, 12, 0, 14, 0, 0, 0, - 0, 5, 7, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 2, 0, 0, 5, 0, 0, 0, 8, - 0, 9, 12, 0, 13, 0, 14, 0, 15, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 19, 10, 0, 3, 0, 0, 0, 9, 15, 0, 0, 0, - 0, 0, 3, 6, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 23, 0, 0, 0, 0, 16, 0, 11, 0, 11, 0, 0, 8, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 2, 13, 0, - 17, 9, 0, 17, 0, 0, 12, 13, 0, 0, 13, 14, 12, 11, - 0, 0, 0, 0, 15, 0, 0, 15, 0, 0, 17, 13, 11, 0, - 0, 0, 0, 2, 0, 0, 0, 0, 8, 0, 0, 13, 0, 13, - 3, 27, 4, 0, 3, 0, 0, 2, 0, 0, 0, 0, 12, 0, - 0, 0, 14, 13, 0, 0, 13, 0, 0, 0, 0, 18, 2, 0, - 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 15, 0, 0, 0, 0, 2, - 0, 0, 13, 19, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, - 0, 17, 18, 18, 9, 0, 0, 0, 15, 0, 0, 25, 0, 12, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 13, 9, 11, 0, 0, - 0, 0, 0, 17, 22, 0, 0, 0, 0, 14, 0, 18, 0, 7, - 14, 12, 11, 0, 9, 0, 0, 10, 0, 0, 0, 39, 40, 2, - 0, 0, 0, 0, 17, 7, 8, 0, 0, 0, 0, 0, 0, 0, - 27, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 23, 0, 0, 0, - 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 12, 0, 0, 10, - 0, 0, 0, 14, 15, 0, 0, 11, 0, 24, 0, 0, 0, 12, - 0, 0, 0, 18, 10, 0, 15, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 12, 0, 0, 0, 0, 14, 0, 0, 0, 0, 2, - 13, 0, 0, 0, 0, 2, 0, 0, 0, 0, 15, 9, 0, 10, - 21, 0, 8, 0, 0, 0, 0, 0, 18, 9, 21, 9, 6, 0, - 0, 0, 0, 0, 15, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 0, 19, 0, - 0, 17, 0, 13, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 0, 0, 2, 0, 0, 0, 0, 11, 0, 0, 0, - 7, 14, 0, 0, 16, 0, 0, 16, 0, 0, 23, 0, 0, 0, - 13, 18, 9, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 9, - 10, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 14, 15, 0, - 11, 10, 0, 0, 16, 30, 0, 21, 0, 0, 0, 0, 11, 0, - 20, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 8, 0, 0, 10, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 10, - 0, 0, 0, 0, 31, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 10, 0, 0, 27, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 15, 0, 0, - 0, 0, 17, 1, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 17, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 10, 11, - 16, 0, 11, 15, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, - 15, 0, 0, 0, 0, 0, 24, 21, 0, 0, 3, 0, 15, 31, - 13, 0, 31, 0, 0, 0, 0, 3, 0, 13, 0, 0, 0, 0, - 19, 0, 0, 0, 11, 0, 0, 25, 0, 0, 0, 0, 0, 0, - 12, 15, 0, 0, 0, 0, 0, 0, 0, 30, 0, 15, 0, 14, - 0, 0, 0, 3, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 12, - 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 18, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 24, - 11, 10, 0, 0, 0, 0, 20, 0, 0, 0, 0, 3, 44, 0, - 0, 0, 0, 10, 9, 0, 0, 0, 0, 0, 16, 0, 0, 8, - 18, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 0, 0, 0, 0, 15, 0, 15, 0, 0, 0, 0, 16, - 0, 11, 0, 14, 0, 0, 16, 48, 0, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, - 0, 12, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 11, 0, 0, 0, 18, 13, 22, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 18, - 0, 0, 11, 0, 31, 0, 0, 0, 0, 0, 0, 21, 19, 0, - 23, 0, 0, 30, 0, 0, 19, 0, 12, 0, 25, 0, 0, 0, - 10, 42, 0, 0, 9, 1, 0, 0, 0, 0, 0, 12, 0, 0, - 0, 22, 0, 13, 0, 0, 0, 27, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 14, 16, 15, 0, 3, 0, 0, 0, 0, 31, 0, - 15, 16, 17, 0, 0, 0, 0, 0, 12, 0, 31, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 17, 0, - 0, 0, 0, 14, 0, 0, 35, 26, 0, 0, 30, 0, 0, 30, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 15, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 24, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 0, 0, 18, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 0, 23, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 18, 16, - 0, 0, 6, 0, 0, 0, 0, 0, 9, 21, 0, 13, 0, 0, - 0, 0, 16, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 23, 0, 9, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 26, 0, 0, 0, 12, 0, 0, - 19, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, - 0, 0, 0, 19, 9, 0, 0, 0, 12, 0, 0, 0, 10, 0, - 19, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 23, 11, 17, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 13, - 0, 18, 0, 2, 0, 0, 0, 32, 0, 0, 0, 0, 26, 0, - 0, 20, 0, 0, 8, 0, 5, 16, 0, 4, 0, 25, 0, 11, - 13, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, - 0, 20, 0, 0, 0, 0, 10, 0, 0, 0, 27, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 32, 0, 0, 0, 22, 8, 12, 10, - 0, 0, 0, 0, 15, 0, 0, 13, 0, 0, 0, 0, 28, 0, - 0, 0, 13, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 8, 0, 4, 6, 3, 6, 5, 0, 0, 0, + 7, 4, 7, 5, 0, 0, 0, 1, 0, 0, 9, 9, 0, 9, + 9, 0, 6, 0, 0, 0, 4, 0, 4, 8, 0, 0, 10, 4, + 10, 7, 6, 0, 0, 7, 0, 0, 0, 6, 0, 8, 5, 6, + 10, 5, 0, 5, 0, 0, 6, 0, 0, 7, 6, 0, 10, 0, + 8, 9, 0, 8, 7, 10, 0, 0, 0, 7, 0, 0, 0, 5, + 8, 0, 5, 8, 8, 0, 0, 10, 0, 0, 0, 7, 3, 0, + 0, 0, 0, 0, 0, 9, 0, 7, 8, 0, 6, 0, 0, 5, + 8, 0, 0, 0, 0, 5, 5, 0, 3, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 8, 2, 4, 10, 8, 5, 10, 0, 5, 0, + 6, 6, 9, 7, 0, 9, 7, 2, 0, 10, 10, 0, 0, 2, + 0, 10, 7, 9, 4, 6, 0, 0, 0, 6, 0, 0, 10, 8, + 8, 0, 4, 7, 0, 7, 5, 0, 0, 0, 0, 9, 8, 0, + 3, 0, 13, 0, 10, 0, 0, 0, 0, 8, 0, 9, 0, 0, + 0, 0, 0, 0, 11, 0, 0, 0, 0, 6, 10, 8, 0, 0, + 0, 0, 4, 5, 0, 2, 0, 0, 8, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 4, 0, 0, 0, 8, 0, 0, 0, 0, + 0, 11, 10, 0, 0, 0, 0, 0, 0, 10, 6, 0, 0, 0, + 0, 0, 8, 5, 8, 0, 0, 0, 11, 6, 10, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 10, 0, 17, 0, 0, 7, 7, + 5, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 9, + 9, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 10, + 8, 0, 0, 0, 0, 6, 0, 9, 0, 10, 0, 9, 0, 0, + 0, 0, 0, 2, 0, 0, 11, 0, 0, 9, 3, 13, 0, 0, + 10, 3, 0, 0, 10, 0, 0, 0, 0, 0, 5, 3, 3, 0, + 0, 0, 7, 9, 8, 12, 0, 8, 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 10, 13, 19, 0, 8, 0, 9, 11, 6, 0, + 14, 8, 0, 0, 0, 0, 0, 14, 0, 0, 0, 10, 0, 6, + 7, 6, 0, 0, 6, 9, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 0, 8, 10, 0, 0, 10, 11, 0, 0, 0, 0, 0, 12, + 0, 0, 12, 11, 0, 0, 0, 6, 0, 0, 0, 0, 5, 0, + 0, 0, 0, 10, 0, 0, 18, 0, 11, 0, 0, 0, 0, 6, + 14, 13, 5, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 24, 13, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 11, + 0, 12, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 7, 10, 9, 0, 0, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 7, 0, 0, 17, 10, 20, 0, 6, 12, 2, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 18, 0, 14, 0, 0, 11, 0, - 0, 10, 0, 9, 13, 0, 0, 25, 0, 9, 0, 0, 0, 15, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 10, 0, - 0, 20, 0, 0, 18, 27, 25, 0, 0, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 14, - 0, 0, 0, 29, 0, 0, 13, 9, 14, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 12, 18, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 30, 12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, 0, 0, - 27, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 20, 0, 14, 6, 0, 0, 0, 0, - 9, 0, 0, 0, 0, 0, 16, 0, 0, 0, 8, 0, 0, 0, - 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 24, 6, 0, 14, 0, 21, 0, 0, 14, - 0, 0, 0, 0, 0, 0, 0, 5, 0, 18, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 10, 0, 0, - 0, 0, 27, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, - 13, 14, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 0, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 9, 0, 0, 30, - 11, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 13, 0, 0, - 14, 0, 10, 0, 0, 0, 21, 19, 0, 13, 0, 0, 0, 23, - 0, 0, 0, 35, 0, 0, 0, 12, 0, 0, 0, 11, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 26, 0, - 0, 25, 0, 18, 0, 0, 15, 0, 0, 12, 0, 0, 0, 0, - 22, 0, 33, 0, 0, 0, 0, 0, 22, 0, 16, 0, 11, 0, - 0, 12, 17, 0, 0, 0, 0, 18, 0, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 27, 3, 0, 0, 0, 0, 0, 20, 33, - 0, 0, 22, 17, 0, 0, 0, 0, 0, 10, 0, 0, 32, 0, - 0, 15, 0, 0, 0, 0, 0, 13, 42, 0, 20, 0, 0, 0, - 11, 0, 28, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 19, 0, 0, 0, 28, - 11, 22, 0, 15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 17, 35, 0, 0, 0, 0, 0, 0, 0, 20, 15, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, - 0, 0, 0, 19, 11, 21, 0, 0, 0, 0, 0, 0, 0, 0, - 48, 0, 0, 0, 0, 9, 13, 0, 0, 16, 15, 0, 0, 0, - 19, 0, 0, 3, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, - 0, 30, 6, 23, 0, 0, 18, 30, 0, 18, 0, 12, 27, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 12, 0, 0, 0, 0, 0, 11, 14, 0, 0, 0, 0, 0, 0, - 0, 0, 20, 0, 0, 18, 16, 13, 0, 0, 0, 0, 23, 0, - 0, 22, 0, 13, 0, 18, 0, 0, 0, 0, 24, 0, 13, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 31, 24, 12, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 8, 0, - 0, 0, 0, 18, 0, 17, 0, 0, 0, 0, 0, 0, 14, 0, - 17, 3, 0, 0, 0, 0, 0, 11, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 18, 0, 0, 9, 0, 9, 8, 20, 0, 0, 21, - 15, 11, 0, 0, 11, 0, 0, 24, 0, 14, 9, 0, 13, 0, - 9, 9, 0, 0, 39, 0, 0, 15, 0, 36, 13, 0, 0, 0, - 0, 0, 0, 9, 0, 0, 0, 23, 15, 0, 0, 0, 3, 0, - 23, 0, 0, 11, 29, 0, 0, 0, 2, 29, 0, 0, 0, 0, - 0, 0, 15, 45, 10, 0, 17, 0, 0, 0, 0, 7, 29, 0, - 0, 0, 0, 0, 14, 0, 29, 10, 0, 17, 0, 0, 0, 0, - 10, 0, 20, 9, 17, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 23, 10, 33, 0, 0, 0, 15, 9, 17, 16, 17, 19, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 16, 19, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 28, - 0, 10, 0, 0, 0, 11, 0, 0, 19, 0, 0, 0, 15, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 24, 0, 10, 31, 0, 0, - 0, 0, 0, 16, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 3, - 0, 0, 4, 9, 0, 0, 0, 0, 0, 0, 21, 15, 15, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, - 18, 28, 0, 0, 24, 0, 0, 0, 0, 0, 0, 15, 0, 0, - 19, 0, 0, 0, 0, 14, 0, 0, 0, 0, 16, 0, 0, 0, - 30, 0, 15, 0, 0, 22, 0, 0, 19, 23, 18, 24, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 11, 0, 12, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 30, 14, 0, 20, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 15, 0, 15, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, - 28, 0, 10, 0, 32, 0, 0, 15, 0, 14, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 33, 0, 31, 0, 0, - 0, 2, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 3, - 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 27, 0, 0, 0, 0, 0, 0, 25, 0, - 0, 28, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 25, 0, 27, 0, 23, 0, - 0, 15, 0, 30, 2, 0, 0, 14, 0, 0, 0, 0, 0, 0, - 20, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 0, 0, 11, 0, 0, 0, 14, 0, 0, 0, 21, 0, 0, - 11, 23, 0, 0, 14, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 10, 3, 0, 0, 18, 0, 0, 0, 0, 21, 0, 0, - 3, 0, 0, 1, 0, 0, 0, 0, 28, 26, 0, 0, 0, 22, - 0, 0, 0, 0, 0, 15, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 17, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, - 22, 0, 0, 0, 0, 0, 0, 28, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 2, 4, 0, 21, - 0, 0, 0, 0, 18, 10, 0, 30, 0, 0, 0, 0, 35, 0, - 18, 0, 10, 24, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 11, 0, 0, 0, 17, - 0, 0, 15, 0, 0, 0, 22, 0, 0, 8, 14, 31, 16, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, 0, 14, 11, 0, 0, 0, - 23, 32, 0, 12, 0, 0, 0, 0, 16, 0, 12, 0, 0, 0, - 0, 0, 14, 15, 0, 18, 0, 0, 18, 0, 0, 0, 9, 0, - 0, 0, 17, 12, 0, 0, 0, 18, 0, 0, 0, 13, 23, 18, - 30, 0, 33, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 22, - 0, 0, 0, 0, 0, 0, 0, 19, 31, 26, 0, 21, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 29, 16, 0, 0, 0, - 0, 0, 0, 15, 0, 0, 15, 8, 15, 12, 0, 0, 0, 0, - 0, 0, 0, 21, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 6, 13, 33, 25, 0, 0, 0, 10, 0, 35, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 0, 0, 0, 22, 0, 0, 0, 0, 17, 0, 0, 0, 27, 0, - 0, 16, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 17, 12, 0, 0, 0, 15, 29, 0, 0, 0, 0, 16, - 0, 0, 0, 13, 0, 4, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 33, 33, 14, 0, 38, 15, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 42, 0, 20, 13, 0, 0, 15, 0, 0, 0, 6, 15, - 12, 0, 0, 0, 0, 0, 0, 11, 37, 0, 0, 0, 0, 9, - 11, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 13, - 13, 29, 0, 0, 0, 0, 7, 19, 15, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 10, 34, 0, 0, 26, 0, 0, 0, - 0, 0, 13, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 11, 0, 0, 0, 15, 16, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 10, 37, 20, - 0, 0, 0, 0, 14, 0, 0, 32, 33, 2, 0, 0, 3, 8, - 37, 32, 0, 0, 9, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 15, 0, 10, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 15, 0, 0, 0, 0, 7, 0, 0, 24, 37, 17, 24, 0, - 14, 30, 14, 0, 0, 24, 0, 0, 3, 0, 17, 0, 25, 0, - 0, 0, 13, 0, 0, 3, 0, 0, 0, 11, 24, 26, 0, 0, - 0, 14, 0, 0, 22, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 10, 0, 14, 18, 0, 18, 0, 0, 29, 0, - 20, 0, 0, 23, 16, 0, 0, 0, 19, 0, 0, 0, 11, 0, - 13, 0, 0, 0, 12, 25, 0, 0, 11, 0, 0, 0, 0, 15, - 0, 0, 0, 0, 0, 0, 10, 0, 13, 0, 0, 0, 0, 0, - 15, 0, 40, 0, 11, 26, 15, 16, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 28, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 14, 37, 35, - 0, 0, 25, 9, 0, 0, 0, 0, 0, 0, 0, 12, 12, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 23, 20, 9, 0, 0, - 0, 12, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 0, 35, 0, 0, 0, 22, 13, 0, 0, 0, 0, 0, 0, - 16, 0, 9, 0, 0, 17, 0, 20, 13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 27, 0, 14, 0, 0, 17, 0, 14, 0, 0, 0, - 0, 0, 0, 26, 20, 0, 15, 0, 0, 0, 0, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 19, 27, 0, 16, 0, 23, 0, 0, - 14, 20, 0, 0, 20, 12, 25, 0, 0, 0, 18, 0, 0, 0, - 0, 0, 0, 19, 0, 23, 12, 0, 41, 0, 0, 0, 0, 0, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 42, 21, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 14, 0, 20, 13, 13, 0, 24, 0, 0, 0, 20, - 11, 0, 0, 0, 0, 16, 18, 13, 0, 0, 0, 0, 0, 17, - 0, 0, 0, 0, 22, 35, 0, 0, 11, 0, 19, 0, 0, 0, - 0, 6, 29, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 22, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 29, 50, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 21, 0, 0, 0, 0, 12, 0, 12, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 31, 30, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 19, 0, 16, - 0, 15, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 2, 0, 0, 0, 0, 0, 21, 0, 11, 0, 0, - 0, 16, 47, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 15, - 0, 0, 8, 0, 17, 0, 0, 0, 6, 0, 0, 0, 50, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 17, 0, 0, - 0, 17, 0, 0, 0, 15, 0, 0, 20, 0, 0, 21, 0, 0, - 13, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 35, 24, 0, - 0, 0, 25, 0, 15, 15, 0, 0, 0, 21, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 11, 0, 0, 0, 26, 14, 0, 14, 14, 0, 0, 11, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 3, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 0, 0, 21, 0, 0, 0, 8, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 11, 15, 0, 0, - 16, 2, 0, 0, 0, 18, 0, 12, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 24, 22, 0, 0, 0, 23, 0, 0, 0, 0, - 0, 0, 0, 32, 0, 0, 0, 0, 13, 0, 3, 0, 0, 0, - 0, 2, 0, 0, 0, 0, 28, 6, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 21, 0, 0, 15, 0, 0, 0, 27, 17, - 0, 0, 23, 0, 0, 0, 8, 0, 22, 43, 3, 11, 0, 0, - 0, 15, 0, 0, 0, 0, 18, 6, 0, 29, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 15, 0, 0, 38, 0, 11, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 11, 0, 38, 34, 0, 13, 0, 0, 0, 0, 3, 0, 4, 0, - 0, 25, 0, 0, 0, 24, 0, 0, 0, 31, 23, 3, 0, 4, - 6, 0, 0, 39, 0, 27, 31, 0, 0, 0, 0, 29, 0, 0, - 0, 0, 0, 29, 0, 22, 0, 0, 15, 0, 0, 13, 0, 0, - 19, 33, 0, 0, 0, 0, 0, 0, 0, 11, 0, 15, 0, 0, - 0, 0, 0, 14, 0, 0, 16, 0, 0, 14, 0, 0, 0, 16, - 0, 0, 0, 15, 0, 0, 15, 28, 0, 0, 14, 0, 10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 0, 0, 0, 0, 26, 12, 0, 0, 0, 0, 0, 31, 34, 0, - 0, 20, 0, 22, 13, 21, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 11, 0, 12, 25, 0, 0, 15, 0, 0, 0, 27, 15, 0, - 23, 11, 43, 0, 0, 0, 0, 32, 0, 0, 32, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 0, 14, 0, 0, 30, 0, - 0, 0, 0, 0, 11, 0, 0, 0, 0, 22, 22, 0, 0, 0, - 0, 0, 0, 14, 9, 0, 28, 9, 0, 2, 0, 0, 7, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 6, 28, 0, - 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 0, 26, 23, 14, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 15, 0, 0, 0, 22, 0, 0, 0, 18, - 0, 0, 0, 0, 42, 0, 0, 0, 0, 0, 0, 8, 0, 26, - 3, 20, 4, 0, 0, 0, 0, 35, 0, 12, 2, 0, 0, 0, - 30, 3, 11, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 0, 0, 0, 0, 0, 16, 12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 19, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 13, 11, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, - 0, 17, 0, 14, 11, 0, 0, 24, 0, 0, 0, 0, 0, 0, - 0, 8, 0, 0, 0, 0, 12, 0, 12, 14, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 26, 0, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 46, 15, 0, 13, 12, 0, 0, - 15, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, - 0, 20, 0, 0, 16, 0, 0, 0, 0, 0, 30, 0, 15, 3, - 0, 0, 0, 0, 15, 15, 0, 24, 9, 14, 0, 9, 0, 0, - 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 38, 0, 19, 0, 0, 12, 0, 0, 34, 0, 0, 15, 0, - 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 35, 0, 73, 74, 12, 23, 0, - 0, 12, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, 0, 30, 0, 0, 27, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 23, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 9, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 13, 0, - 23, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 16, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 21, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 0, 0, 28, 0, 24, 0, 0, 0, 0, 0, - 28, 0, 19, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 11, 16, 0, 0, 17, 0, 0, 23, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 19, 0, 0, 0, 0, 2, 19, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 27, - 0, 0, 15, 0, 0, 15, 16, 0, 0, 0, 31, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 27, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 16, 0, 0, 13, - 15, 15, 0, 12, 0, 0, 15, 15, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 20, 0, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 15, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 15, 0, 0, 0, 24, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 20, 0, 15, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 12, 72, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 32, 35, 31, 16, 24, 30, 0, 0, 0, - 23, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 10, 0, 0, 0, 0, 19, 18, 0, 27, 0, 0, 0, 11, 0, - 37, 0, 0, 28, 0, 31, 0, 0, 17, 0, 13, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 27, 0, 0, 11, 0, 0, 27, 0, 0, 13, 0, - 11, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 11, 0, 25, - 0, 12, 24, 0, 0, 20, 0, 18, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 18, 0, 19, 0, 0, 12, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 28, - 0, 22, 0, 0, 0, 0, 0, 0, 37, 0, 23, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 16, 0, 24, 0, - 11, 0, 0, 0, 0, 0, 15, 0, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 0, 0, 21, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 3, 0, 4, 0, 0, 0, 0, 13, 10, 12, 0, 0, 10, 0, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 18, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 12, 10, 0, 0, 0, 13, + 0, 14, 10, 0, 11, 0, 0, 0, 0, 0, 0, 13, 0, 0, + 0, 12, 0, 8, 11, 0, 19, 0, 0, 4, 0, 4, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 2, + 17, 0, 0, 7, 0, 14, 0, 0, 12, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 9, 0, + 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 14, 20, 0, 14, + 0, 0, 0, 0, 0, 0, 7, 14, 0, 0, 6, 0, 0, 15, + 14, 8, 3, 6, 0, 0, 0, 23, 0, 2, 12, 0, 17, 12, + 0, 0, 22, 0, 15, 12, 0, 2, 0, 0, 0, 0, 14, 2, + 10, 0, 8, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 15, + 0, 0, 0, 0, 0, 7, 0, 18, 0, 0, 9, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 17, 9, 13, 3, 0, 0, 0, 0, 0, 0, 0, + 0, 14, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 14, 0, 0, 0, 0, 22, 1, 13, 0, 0, 13, + 0, 0, 19, 0, 0, 0, 17, 9, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 18, 0, 10, 0, 0, 22, 11, 0, 0, 14, 0, 0, + 16, 0, 0, 0, 9, 17, 0, 13, 0, 2, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 15, 0, 0, 9, + 15, 0, 0, 0, 0, 7, 0, 0, 6, 0, 0, 19, 0, 0, + 0, 10, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 8, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 9, + 0, 0, 0, 8, 11, 0, 0, 0, 0, 0, 0, 0, 27, 13, + 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 10, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 12, 0, + 18, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 13, 10, 9, 0, 0, 0, + 0, 0, 0, 0, 11, 0, 8, 0, 0, 10, 0, 0, 19, 3, + 0, 11, 24, 0, 0, 0, 0, 0, 10, 0, 0, 21, 0, 0, + 0, 16, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 9, 0, 10, 0, 0, 0, 0, 0, 0, 8, 48, 0, 0, 12, + 0, 0, 0, 0, 18, 0, 14, 21, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 10, 0, 13, 0, 11, 6, 0, 3, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 30, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 27, 0, 0, 0, 0, 0, 13, 17, 0, 0, 0, 16, 12, + 0, 0, 0, 11, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57, 0, 0, 0, 39, 40, 0, 0, 0, 0, 0, 15, 0, 0, + 15, 0, 27, 0, 0, 0, 0, 0, 15, 0, 16, 0, 0, 14, + 21, 0, 0, 11, 0, 16, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, + 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 0, 11, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, + 3, 0, 0, 0, 23, 25, 0, 2, 0, 0, 13, 0, 0, 3, + 0, 3, 0, 0, 0, 0, 12, 0, 16, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 11, 0, 0, 0, 0, 0, + 21, 0, 30, 0, 30, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 14, 14, 0, 0, 0, 20, 0, 0, 0, 0, 0, 20, 0, + 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 16, 0, 7, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 9, 0, 17, 0, 0, 0, 0, 0, 0, + 0, 24, 15, 0, 18, 0, 0, 10, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 13, 23, 0, 0, 0, 0, 19, 0, 23, 0, 18, + 0, 18, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 12, 31, + 0, 0, 31, 9, 0, 0, 22, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 20, 0, 24, + 0, 30, 8, 0, 13, 0, 25, 0, 0, 0, 0, 0, 0, 42, + 0, 0, 0, 10, 0, 15, 0, 0, 0, 0, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 19, 0, 0, 0, 0, + 0, 19, 0, 0, 0, 29, 0, 0, 0, 0, 19, 9, 0, 0, + 0, 8, 0, 0, 15, 0, 0, 12, 13, 0, 11, 0, 9, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 6, 9, 0, 0, + 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 21, + 0, 0, 0, 26, 0, 11, 21, 0, 0, 0, 0, 9, 0, 0, + 0, 0, 18, 0, 0, 11, 0, 5, 0, 10, 0, 0, 2, 0, + 0, 9, 0, 10, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, + 11, 0, 0, 12, 32, 0, 0, 2, 18, 0, 0, 0, 18, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 8, 39, 0, 23, 0, 0, 0, 7, 0, 10, 10, 0, 0, 0, + 0, 18, 0, 0, 0, 0, 13, 0, 15, 0, 0, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 22, 0, 0, 0, 18, 0, 9, 0, + 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 27, 0, 0, 0, 16, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 11, 0, 0, 22, 0, 0, 14, 0, 12, 9, + 0, 0, 17, 0, 0, 0, 0, 9, 9, 0, 0, 23, 0, 30, + 0, 0, 24, 16, 3, 13, 10, 0, 19, 0, 26, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 10, 26, 0, 0, 14, 0, 0, + 0, 31, 14, 21, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 10, 12, 19, 11, 0, 0, 34, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 0, 19, 0, 35, 0, 27, 0, 0, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 12, 0, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 6, + 0, 0, 20, 13, 0, 23, 0, 0, 13, 0, 0, 0, 0, 14, + 0, 0, 14, 12, 32, 0, 0, 0, 0, 0, 0, 10, 0, 0, + 0, 0, 16, 0, 0, 0, 10, 0, 20, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 18, 0, 29, 0, 20, 13, 15, - 0, 0, 30, 0, 0, 25, 32, 0, 0, 0, 0, 0, 0, 18, - 0, 31, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 19, 0, - 13, 0, 0, 0, 23, 0, 26, 0, 0, 21, 18, 0, 0, 0, - 0, 22, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 34, 0, 0, 0, 13, 0, 0, - 0, 18, 0, 0, 0, 0, 39, 0, 0, 0, 31, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 24, 0, + 0, 16, 20, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 25, 0, 0, 15, 26, 0, 18, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, + 0, 19, 16, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 22, 27, 14, 0, 0, 0, 0, 9, 14, 18, 0, 0, 0, 22, + 0, 13, 15, 0, 0, 14, 0, 18, 23, 0, 12, 0, 0, 0, + 0, 2, 0, 9, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 25, 0, 11, 0, 0, 0, 10, 0, 16, 0, 0, 14, 0, 0, + 0, 0, 0, 27, 9, 0, 0, 27, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 8, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 33, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 11, 11, 15, + 0, 0, 19, 0, 32, 0, 0, 0, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 2, 0, 0, 0, 0, 0, 23, + 0, 0, 13, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 5, 0, 0, 4, 0, 0, 0, 0, 16, + 0, 0, 10, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 23, + 24, 0, 0, 0, 0, 0, 0, 0, 0, 32, 17, 0, 21, 18, + 18, 0, 3, 14, 18, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 12, 11, 0, 0, 11, 0, 0, 12, 0, 31, 0, 0, + 0, 0, 0, 0, 12, 0, 0, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 11, 0, 0, 0, 11, 9, + 5, 0, 0, 13, 0, 10, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 8, 17, + 0, 0, 0, 15, 0, 39, 0, 18, 0, 0, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 10, 0, 0, 0, 0, 29, 0, 0, 0, 27, 16, + 0, 0, 25, 28, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 11, 0, 0, 0, 0, 0, 14, 23, 0, 9, 0, 0, 0, + 0, 10, 0, 0, 0, 0, 20, 0, 22, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 15, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 18, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 12, 0, 9, 12, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 23, 0, + 0, 13, 14, 0, 33, 0, 0, 0, 0, 0, 21, 0, 0, 19, + 0, 0, 0, 0, 0, 20, 0, 2, 0, 0, 30, 0, 0, 0, + 0, 14, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 17, 38, 0, 0, 0, 0, 0, 0, 0, 0, 8, 13, 0, + 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 18, 31, 0, 0, 0, 0, 0, 23, 0, 0, 23, 13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 11, 19, + 26, 21, 0, 0, 10, 0, 10, 0, 0, 20, 0, 0, 0, 20, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 13, 12, 0, 0, 0, 24, 22, + 0, 13, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 18, 0, 22, 0, 0, + 0, 9, 0, 0, 16, 19, 13, 0, 0, 13, 0, 12, 0, 0, + 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 22, 0, 0, 2, 15, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 20, 0, 15, 18, 0, 27, 2, 0, 0, 0, 0, 19, 12, + 0, 0, 0, 0, 0, 3, 0, 9, 0, 15, 25, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 6, 0, 11, 0, 16, + 0, 0, 0, 0, 15, 0, 16, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 0, 28, 0, 21, 0, 29, 0, 22, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, + 4, 0, 19, 0, 0, 0, 0, 10, 23, 0, 22, 0, 14, 0, + 0, 0, 0, 7, 10, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 10, 0, 15, 0, + 0, 0, 0, 0, 30, 24, 0, 0, 0, 0, 20, 21, 0, 0, + 0, 0, 0, 15, 15, 0, 3, 15, 30, 0, 24, 2, 0, 0, + 0, 0, 0, 6, 17, 18, 0, 0, 0, 0, 0, 0, 10, 0, + 14, 0, 0, 15, 0, 0, 0, 0, 0, 9, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 22, 24, 15, 0, 16, 0, 0, 0, + 0, 0, 17, 6, 0, 0, 0, 0, 0, 0, 20, 20, 17, 22, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 12, 36, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 22, 0, 0, 0, 0, 0, 15, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 0, 9, 0, 14, 0, 0, 15, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 3, 0, 0, 19, 0, + 17, 0, 0, 0, 0, 0, 2, 0, 10, 0, 0, 0, 0, 0, + 0, 0, 11, 14, 0, 16, 0, 11, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 21, 0, 0, 0, 19, 0, + 0, 16, 0, 0, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 16, 0, 3, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, + 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 21, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 24, 16, 0, 0, 0, 0, 0, 9, 16, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 3, 32, 4, 0, 0, 16, 18, 0, 0, 0, 0, 0, + 0, 24, 0, 3, 0, 4, 6, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 15, + 0, 0, 0, 16, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 0, 12, 0, 0, 0, 0, 15, 0, 0, 23, 0, 0, 34, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 22, 0, + 0, 0, 0, 0, 22, 0, 30, 0, 0, 22, 0, 0, 0, 17, + 16, 0, 0, 0, 0, 0, 15, 14, 0, 25, 20, 25, 0, 30, + 0, 0, 13, 28, 0, 15, 0, 0, 0, 0, 15, 42, 13, 0, + 0, 0, 0, 22, 32, 0, 0, 0, 0, 0, 0, 0, 0, 37, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 13, 28, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 21, 0, 0, + 24, 0, 16, 0, 0, 0, 0, 0, 0, 15, 0, 31, 0, 0, + 0, 16, 34, 0, 0, 0, 15, 0, 0, 0, 27, 0, 15, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 22, 20, 12, 24, 0, + 0, 0, 0, 0, 0, 0, 0, 3, 18, 16, 0, 0, 0, 0, + 0, 0, 17, 0, 0, 0, 10, 0, 0, 20, 0, 0, 15, 0, + 0, 25, 0, 23, 0, 30, 0, 0, 0, 0, 0, 20, 0, 0, + 0, 14, 0, 0, 0, 0, 19, 0, 0, 0, 0, 19, 33, 0, + 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 19, 29, 13, 0, + 15, 11, 15, 26, 0, 0, 15, 0, 0, 29, 0, 5, 29, 0, + 0, 12, 0, 0, 0, 16, 14, 0, 12, 14, 0, 19, 0, 0, + 0, 0, 15, 14, 0, 0, 11, 0, 0, 0, 0, 0, 0, 11, + 0, 0, 0, 15, 0, 11, 21, 0, 14, 11, 0, 0, 11, 0, + 0, 48, 0, 0, 0, 0, 20, 0, 0, 0, 0, 2, 14, 0, + 0, 13, 18, 13, 0, 0, 0, 11, 14, 0, 0, 0, 15, 0, + 22, 27, 0, 0, 0, 0, 0, 0, 0, 28, 0, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 3, 0, 0, 45, 0, 9, 0, + 0, 0, 16, 0, 3, 19, 10, 0, 0, 10, 0, 0, 9, 11, + 0, 0, 0, 24, 0, 13, 9, 0, 14, 11, 0, 0, 0, 0, + 0, 25, 0, 0, 15, 18, 0, 9, 31, 11, 0, 0, 0, 0, + 40, 0, 24, 0, 0, 0, 0, 31, 21, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 14, 0, 0, 0, 13, 0, 28, + 0, 0, 0, 0, 0, 0, 12, 20, 0, 26, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 18, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 17, 26, 0, 0, 17, 0, 29, 19, 0, 15, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 13, 0, 30, 0, 0, 15, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 10, 27, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 12, 0, 14, 14, 26, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 35, 0, + 20, 0, 21, 0, 50, 14, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 35, 0, 23, 0, 0, 0, 0, + 0, 20, 12, 0, 0, 0, 4, 13, 0, 12, 0, 0, 0, 16, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 13, 0, 0, + 0, 10, 0, 19, 0, 21, 0, 0, 12, 0, 0, 24, 13, 0, + 0, 12, 0, 0, 24, 0, 15, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 8, 0, 0, 8, 0, 10, 0, 0, 0, 27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 12, 41, + 0, 0, 0, 16, 0, 0, 13, 0, 0, 0, 30, 29, 6, 0, + 0, 0, 23, 0, 0, 0, 0, 23, 0, 38, 0, 1, 0, 17, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 15, 14, 0, + 25, 0, 25, 3, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 8, 22, 31, 0, + 0, 12, 0, 22, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, + 0, 0, 20, 19, 0, 23, 25, 0, 0, 10, 12, 0, 14, 0, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 23, 7, 16, 14, 0, 0, 0, 15, 0, 18, + 11, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 0, 23, 0, 0, 0, 0, 0, 15, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 22, 11, 0, 0, 0, 0, 15, 0, + 15, 15, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 31, 0, 0, 13, 0, 0, 0, 16, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 2, 0, 0, 0, 26, 21, 0, 0, + 31, 0, 4, 13, 0, 14, 26, 18, 16, 0, 0, 0, 0, 21, + 11, 15, 0, 0, 25, 0, 15, 0, 0, 0, 0, 0, 0, 13, + 15, 0, 0, 0, 0, 0, 9, 22, 13, 35, 0, 0, 0, 0, + 20, 0, 0, 0, 0, 18, 0, 0, 0, 0, 12, 14, 0, 12, + 0, 21, 0, 0, 22, 11, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 25, 25, 0, 17, 35, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 24, 0, 0, 14, 35, 0, 0, 0, 16, 25, 10, 0, 0, + 0, 15, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, + 0, 0, 0, 0, 0, 0, 0, 23, 17, 18, 0, 0, 0, 13, + 31, 32, 11, 0, 0, 22, 0, 0, 17, 15, 42, 0, 0, 0, + 0, 8, 0, 13, 0, 0, 0, 0, 0, 17, 0, 22, 15, 6, + 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 8, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 11, + 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 9, 14, 0, 0, 0, 0, 0, 0, 18, 0, 0, 15, 0, + 0, 2, 0, 9, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 14, 11, 0, 0, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 32, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 14, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 15, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2, 15, 0, 9, 0, 0, 0, 0, 14, 13, 34, 0, 0, + 0, 0, 0, 27, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 33, 0, 0, 0, 0, 0, 32, 0, + 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, + 0, 0, 47, 0, 19, 0, 9, 19, 0, 10, 28, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 37, 0, 0, 3, 0, + 4, 0, 12, 0, 0, 0, 0, 0, 0, 13, 0, 38, 0, 3, + 0, 4, 6, 0, 20, 0, 15, 0, 0, 0, 13, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 19, 11, 0, 14, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 27, 31, 0, 9, 15, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 8, 30, 0, 0, 27, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, + 15, 0, 0, 0, 18, 18, 0, 12, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 10, 0, 24, 0, 0, 0, 0, 23, 0, 0, 27, + 8, 0, 26, 0, 0, 16, 0, 0, 26, 42, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 29, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 29, 0, 0, 0, 0, 13, 0, + 0, 0, 14, 0, 18, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 11, 0, 0, 0, 28, 14, 0, 13, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 19, 20, + 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 14, 0, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 23, 15, 0, 0, 0, 0, + 0, 0, 0, 21, 0, 0, 10, 0, 0, 22, 0, 46, 34, 0, + 0, 0, 6, 0, 18, 0, 27, 28, 15, 0, 15, 25, 14, 0, + 0, 0, 9, 0, 0, 0, 20, 0, 0, 20, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 25, 17, 8, 0, 0, 0, 14, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 50, 0, + 0, 0, 0, 0, 0, 15, 0, 27, 0, 0, 12, 0, 0, 0, + 0, 30, 0, 0, 0, 32, 0, 0, 0, 7, 0, 29, 0, 0, + 33, 0, 14, 0, 0, 12, 0, 0, 15, 11, 0, 0, 0, 0, + 0, 13, 0, 0, 24, 2, 29, 0, 18, 33, 25, 0, 0, 34, + 0, 25, 0, 0, 0, 0, 0, 18, 0, 0, 19, 0, 0, 3, + 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 0, 0, 28, 0, 17, 0, 0, 0, 0, 20, 0, 0, 20, 0, + 0, 0, 0, 2, 0, 0, 11, 0, 9, 23, 0, 0, 0, 21, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 12, 0, 0, 21, 0, 14, 0, 0, 10, 2, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 33, 14, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, + 16, 0, 0, 0, 15, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 18, 0, 0, 0, 28, 0, 0, 12, 0, 0, + 0, 0, 0, 15, 0, 13, 2, 0, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 11, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 20, 0, 32, + 13, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 22, 0, 10, 0, 0, 0, 0, 26, 0, 0, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 26, 20, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 11, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 31, 0, 13, 17, 0, 0, 0, + 43, 28, 0, 0, 0, 31, 0, 0, 0, 33, 33, 0, 0, 0, + 0, 0, 14, 14, 0, 0, 0, 0, 0, 22, 42, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 0, 0, 0, 10, 0, 22, 0, 37, 28, 27, 0, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 28, 0, 31, + 0, 0, 0, 27, 18, 0, 0, 0, 13, 21, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 13, 0, 22, 16, 0, + 31, 9, 0, 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 11, 28, 31, 0, 0, 13, 2, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 35, 17, 8, 0, 0, 0, 2, 14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 21, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 9, 26, 0, 28, 20, 0, 0, 11, 0, 28, 0, 0, + 14, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 0, 0, 21, 11, 0, 0, 0, 0, 34, 0, + 11, 0, 0, 0, 0, 16, 22, 0, 0, 0, 0, 0, 0, 0, + 13, 18, 0, 0, 0, 0, 15, 10, 0, 0, 22, 16, 0, 0, + 0, 0, 6, 2, 0, 0, 0, 0, 0, 13, 0, 0, 18, 0, + 0, 8, 50, 0, 0, 0, 0, 0, 8, 29, 0, 13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 14, 26, 30, 0, + 0, 34, 0, 0, 0, 0, 43, 0, 9, 16, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 16, + 11, 0, 0, 0, 0, 11, 0, 0, 31, 0, 0, 7, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 6, 0, 0, 18, 0, 0, 6, 18, 0, 0, 0, 15, 0, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 0, 18, 0, 0, 0, 37, 0, 0, 31, 0, 14, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, + 0, 12, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 0, 0, 0, 0, 20, 0, 35, 0, 0, 0, 0, 27, + 14, 0, 0, 22, 10, 11, 0, 0, 0, 0, 13, 0, 32, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 30, 0, 0, 8, + 0, 0, 0, 0, 0, 14, 0, 0, 8, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 44, 0, 0, 0, 0, + 30, 11, 22, 13, 0, 0, 24, 14, 21, 0, 0, 0, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 10, 0, 0, 0, + 0, 10, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, + 0, 12, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 17, 10, + 22, 0, 0, 0, 0, 24, 0, 0, 28, 0, 0, 0, 0, 0, + 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 23, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, + 0, 0, 32, 0, 0, 32, 21, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 34, 17, 32, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 22, 16, 0, 0, 14, + 0, 0, 0, 0, 21, 0, 0, 0, 0, 25, 0, 10, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 35, 0, 19, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 14, 0, + 7, 31, 0, 0, 0, 15, 0, 0, 0, 0, 0, 14, 0, 0, + 0, 0, 0, 11, 0, 0, 0, 25, 0, 0, 14, 0, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 27, 0, + 30, 0, 0, 0, 0, 19, 35, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 31, + 0, 0, 0, 0, 0, 0, 0, 14, 0, 16, 0, 0, 17, 0, + 0, 11, 0, 0, 38, 0, 0, 12, 0, 23, 0, 0, 15, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 11, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 19, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 16, 0, + 18, 0, 0, 0, 0, 0, 14, 0, 0, 0, 32, 0, 0, 0, + 0, 24, 16, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 26, 18, 15, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 44, - 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 0, 0, 0, 30, 0, 0, 0, 25, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 16, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 18, 0, 0, 0, 31, 0, 26, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 21, 0, 3, 0, 13, 0, 0, 0, 26, 0, 0, 0, 0, 19, - 12, 13, 0, 0, 9, 0, 0, 24, 0, 0, 0, 19, 0, 0, - 25, 0, 0, 0, 0, 0, 10, 17, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 0, 0, 30, 14, 0, 0, 0, 0, 0, 18, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 34, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 14, 0, 0, 14, 0, - 0, 0, 14, 0, 2, 0, 0, 0, 0, 39, 0, 40, 0, 0, - 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 23, - 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 19, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 18, 15, 29, 0, 0, 0, 0, - 0, 0, 11, 18, 0, 0, 0, 0, 0, 0, 21, 0, 35, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 19, 0, 0, 17, 0, 0, 24, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 18, 0, 0, 0, 18, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 20, 0, 18, 0, 28, 0, 0, 29, 0, 0, - 24, 0, 0, 0, 25, 0, 0, 23, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 14, 0, 0, 0, - 0, 0, 27, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 43, - 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, - 0, 21, 13, 0, 0, 0, 0, 18, 0, 0, 18, 0, 0, 19, - 32, 0, 4, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 12, - 0, 0, 41, 18, 0, 0, 0, 0, 0, 23, 0, 0, 0, 36, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 24, 0, 0, 0, 0, 0, - 4, 14, 0, 0, 14, 0, 0, 29, 0, 0, 0, 18, 0, 0, - 0, 24, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 15, 28, 0, 27, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 28, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 23, 0, 15, 0, 0, 18, 0, 0, 0, 6, 17, - 0, 0, 0, 0, 0, 27, 0, 0, 0, 7, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 29, 27, 0, - 0, 19, 14, 0, 8, 0, 30, 0, 38, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 43, 0, 15, 0, 14, 21, 0, 26, + 0, 0, 26, 12, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, + 19, 0, 0, 30, 0, 0, 0, 17, 0, 0, 15, 0, 12, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 38, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 15, 16, 0, 19, + 29, 0, 0, 0, 0, 23, 0, 0, 15, 4, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, + 0, 0, 0, 0, 0, 19, 0, 23, 0, 0, 0, 0, 0, 30, + 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 18, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 28, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 3, 0, 28, 0, 15, 73, 74, 0, 13, 0, 0, 0, 0, + 40, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 23, 0, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 29, 17, 0, 23, 0, 0, 21, 0, 0, 0, 0, 19, 0, + 14, 14, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 34, 32, 0, 14, + 12, 30, 0, 0, 24, 0, 0, 0, 0, 0, 0, 15, 0, 41, + 0, 0, 0, 0, 0, 0, 36, 15, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 3, 14, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 19, 0, 7, 24, 0, 0, 0, 0, 0, + 14, 0, 17, 0, 0, 0, 0, 39, 0, 11, 0, 0, 0, 0, + 15, 0, 0, 29, 0, 0, 26, 0, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 25, 0, 30, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 13, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 22, 0, 0, 30, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 0, 14, 21, 0, 0, 24, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 30, 24, 0, + 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, + 22, 26, 23, 0, 29, 26, 0, 0, 24, 0, 0, 30, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 23, 0, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 0, 0, 24, 0, 0, 0, 20, 12, 0, 0, 0, 7, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, + 0, 0, 0, 19, 0, 7, 0, 0, 0, 12, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 13, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 19, 15, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 43, 0, + 0, 38, 0, 0, 14, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 23, 0, 0, 0, + 29, 0, 25, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 25, + 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 11, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 16, 0, 0, 0, 29, 0, 0, 0, 0, 8, 9, 0, 0, 0, + 0, 19, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 8, 0, 0, 26, + 0, 15, 0, 11, 0, 0, 0, 0, 29, 0, 0, 0, 29, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 34, 0, 0, 0, 0, + 0, 10, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 22, + 32, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 15, 20, 0, 0, 0, 0, 13, 25, 0, + 0, 0, 0, 0, 0, 0, 0, 36, 12, 0, 0, 0, 0, 21, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, + 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 25, 28, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 10, 0, 0, 2, 0, 0, 18, 0, 0, 36, 0, 24, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 0, 0, 13, 14, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 11, - 27, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 27, - 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 0, 0, 0, 14, 0, 0, 11, 0, 0, 0, 0, 7, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 13, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 36, 0, 0, - 21, 0, 0, 36, 0, 0, 0, 0, 14, 0, 0, 15, 0, 0, - 0, 0, 13, 0, 0, 0, 28, 21, 0, 0, 15, 0, 0, 21, - 0, 0, 0, 24, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 10, 11, 0, 0, 0, 0, 0, 30, 10, - 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 14, 0, 22, 0, 0, 0, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 32, - 29, 11, 15, 0, 13, 9, 0, 8, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 10, 26, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 11, 25, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 10, 0, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 18, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 0, 22, 0, 14, 0, 6, - 0, 0, 0, 24, 30, 0, 0, 0, 0, 0, 29, 0, 0, 0, - 0, 0, 0, 14, 18, 0, 26, 0, 0, 0, 0, 31, 0, 9, - 0, 32, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, - 0, 29, 0, 22, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, - 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 29, 0, 43, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 12, - 0, 0, 0, 0, 0, 0, 24, 0, 29, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 11, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 0, 0, 3, 13, 0, 0, 0, 0, 0, 0, 0, 22, 29, - 0, 0, 0, 2, 34, 0, 0, 30, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 10, 22, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 16, 0, 14, 0, 37, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 21, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, - 0, 0, 0, 9, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, - 16, 0, 30, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 23, 35, 10, 0, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 16, 0, 3, 0, 0, 0, 22, 0, 0, - 29, 0, 0, 0, 0, 16, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, - 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, - 0, 8, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, 0, 15, 0, 0, 24, 35, - 27, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, + 20, 0, 0, 43, 0, 0, 0, 0, 0, 19, 14, 0, 0, 36, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 16, 37, 0, 0, 0, 0, 15, + 0, 19, 0, 0, 0, 21, 0, 0, 0, 7, 22, 0, 0, 0, + 0, 24, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 29, + 0, 0, 0, 0, 0, 29, 25, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 25, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 27, 21, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, + 0, 0, 14, 6, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 0, 0, 13, 25, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 26, 0, 35, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 15, 0, 36, 0, 0, 0, 28, + 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 25, 8, 28, 0, 0, 20, 0, 0, 0, 0, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 24, 29, 0, 0, + 0, 35, 0, 0, 0, 35, 7, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 21, 11, 0, 25, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 10, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 0, 22, 0, 0, 30, 0, 30, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 33, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, - 0, 0, 23, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 26, 0, 33, 0, 15, 21, 0, 24, 0, + 0, 0, 0, 13, 25, 9, 0, 0, 0, 0, 0, 72, 0, 30, + 0, 23, 0, 0, 4, 0, 28, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 4, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 0, 0, 0, 0, 28, 0, 30, 0, 0, 23, 0, + 0, 14, 0, 0, 21, 0, 0, 0, 0, 23, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, + 0, 0, 0, 3, 14, 14, 0, 14, 0, 28, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 18, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 14, 0, 0, 0, 39, 25, 0, 0, 0, + 0, 15, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 17, 23, 0, 0, 0, 10, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 26, 0, 0, 0, 0, 0, 24, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 18, 22, 0, 0, 0, 0, 19, + 22, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 0, 0, 24, 0, 0, 18, 0, 0, 0, 0, 24, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 23, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 22, 0, 20, 13, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 22, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, - 0, 22, 0, 7, 19, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 19, 0, 0, 0, 0, 0, 0, 18, 0, 0, + 0, 0, 25, 2, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 0, 27, 0, 0, 0, 31, 27, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 0, 20, 35, 0, 36, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 16, 0, 0, 0, 0, 0, 0, 16, 32, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 37, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 29, + 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 16, 24, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 0, 24, 0, 0, 0, 13, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 0, 0, 33, 17, 0, 0, 0, - 22, 0, 0, 0, 0, 15, 0, 0, 0, 0, 19, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 22, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 11, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 14, 0, 16, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 28, 0, 15, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 15, 0, 17, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 23, + 0, 0, 11, 15, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 0, 9, 0, 31, 0, 0, 0, 0, 0, 25, 0, 0, 0, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 14, 0, + 0, 0, 0, 0, 29, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, + 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 24, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 22, 12, 29, 0, 0, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 22, 0, 0, 15, 16, 0, 0, 0, 0, + 31, 0, 16, 0, 22, 0, 0, 0, 0, 0, 15, 22, 0, 0, + 0, 43, 0, 0, 0, 0, 0, 0, 18, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 25, 0, 0, 0, 0, 0, 0, 16, + 0, 36, 15, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 13, 27, 22, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 27, 0, - 0, 0, 0, 27, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, - 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 0, 13, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 0, 11, 0, 0, 43, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 22, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 25, 0, - 0, 0, 0, 15, 0, 0, 0, 29, 22, 0, 0, 0, 0, 0, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 6, 0, 14, 0, 0, 0, 0, 0, 0, 0, 11, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 15, 0, 0, 0, - 0, 0, 27, 0, 28, 18, 0, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 35, 20, 0, 0, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 29, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 6, 0, 28, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 21, 15, 0, 10, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 0, 0, 0, 0, 0, 15, 0, 30, 0, 0, 0, 0, 0, 0, + 0, 0, 16, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 0, 0, 24, 0, 0, 0, 0, 22, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, - 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 0, 0, 13, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, - 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 24, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 25, 2, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 15, 0, 0, 17, 0, 30, 0, 0, 0, 22, 0, 0, 0, 13, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 18, 0, 0, 24, 0, 0, 0, 0, 30, 0, 0, 0, 0, 16, + 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 16, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 0, 43, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 17, + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 14, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 0, 0, 5, 24, 22, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 6, 0, 16, 0, 0, 0, 0, 0, + 0, 15, 0, 0, 0, 0, 0, 15, 0, 0, 7, 0, 0, 0, + 24, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 36, 0, 15, 0, 0, 0, 0, 0, 0, 17, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 6, 33, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, + 24, 17, 17, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 17, 0, 0, + 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 17, 0, 35, 0, 0, 0, 0, 27, + 6, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 6, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 7, 0, - 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 21, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, - 13, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, + 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 38, 0, 0, 0, + 0, 0, 19, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 16, 26, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 17, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, + 0, 0, 15, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 14, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 22, 0, 0, - 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 25, 0, 0, 0, 15, - 0, 0, 0, 0, 26, 0, 0, 0, 24, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 13, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 22, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 24, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 15, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 33, 40, 0, 0, 0, 0, 14, 17, 14, 0, 0, 0, 0, - 0, 0, 27, 0, 17, 0, 0, 27, 33, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 14, 0, 0, 0, 0, 24, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 17, 0, 0, 0, 43, - 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 16, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 35, 0, 15, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 31, 0, 0, 0, 0, 17, 0, 0, 0, 33, 0, 0, 0, - 0, 25, 0, 0, 0, 15, 15, 6, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 25, 0, 0, 0, 15, 4, 0, 0, 0, 0, 0, 24, 0, - 24, 0, 15, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 17, 0, + 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 28, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 17, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 15, - 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 25, 0, 0, - 16, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 14, 17, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 25, 14, 0, 7, 15, 0, 17, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 24, 0, 13, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, + 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, + 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 15, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 25, 0, 0, 32, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 0, 0, 6, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 17, 0, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 7, 0, + 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 22, - 0, 0, 0, 0, 0, 0, 6, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 70, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 36, + 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 16, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, - 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, + 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 16, 6, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 34, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 36, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 38, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, + 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 14, 0, 15, - 0, 0, 0, 36, 15, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, - 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 4, - 15, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 15, 17, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 4, 0, - 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 23, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 15, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 6, - 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 15, 0, 6, 0, 0, 0, 0, 0, 0, 0, + 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 24, - 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 17, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, + 0, 2, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 28, 15, + 0, 0, 0, 0, 0, 23, 0, 17, 0, 0, 0, 0, 17, 0, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 28, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1196,53 +1205,39 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, + 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 0, 0, 17, 0, 0, 19, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1250,81 +1245,79 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, + 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 15, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1332,12 +1325,12 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1345,83 +1338,77 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 17, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1431,11 +1418,11 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1443,16 +1430,11 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1460,7 +1442,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1509,6 +1490,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1531,7 +1513,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1539,7 +1520,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1557,12 +1537,13 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1585,6 +1566,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1612,23 +1594,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1675,6 +1640,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1692,6 +1658,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1724,12 +1691,12 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1760,6 +1727,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1803,7 +1771,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1871,6 +1838,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1907,12 +1875,12 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, + 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1921,13 +1889,13 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1954,237 +1922,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2329,6 +2067,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2355,6 +2094,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2374,7 +2114,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2402,6 +2141,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2464,6 +2204,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2474,7 +2215,6 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2596,6 +2336,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2615,7 +2356,7 @@ static const unsigned char lengthtable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31 + 0, 0, 0, 0, 0, 0, 0, 0, 14 }; static const struct grib_keys_hash wordlist[] = @@ -2626,47 +2367,53 @@ static const struct grib_keys_hash wordlist[] = {"nd",1359}, {"ed",729}, {"nnn",1363}, - {"td",2215}, - {"t",2204}, + {"td",2214}, + {"t",2203}, {""}, {"nt",1378}, - {"sd",1985}, + {"sd",1984}, {"na",1352}, {""}, {"m",1225}, - {""}, {""}, - {"date",649}, - {""}, {""}, + {""}, + {"dy",719}, + {"date",649}, + {""}, + {"year",2476}, {"name",1353}, {"min",1308}, - {""}, + {"day",661}, {"data",630}, {""}, {""}, {"ident",966}, {"one",1558}, - {"time",2241}, + {"time",2240}, {""}, {""}, {""}, {"mars",1228}, {""}, {""}, {"names",1358}, {""}, {""}, {""}, - {"stream",2176}, - {"sort",2120}, + {"stream",2175}, + {"sort",2119}, {""}, {"enorm",771}, {""}, {""}, {"metadata",1304}, - {""}, {""}, {""}, + {""}, + {"type",2288}, + {"system",2201}, {"eps",776}, {"domain",712}, - {"spare",2137}, + {"spare",2136}, {""}, {""}, {""}, {"edition",730}, - {"oper",1570}, - {"present",1721}, - {"param",1669}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"parameter",1675}, + {"oper",1569}, + {"present",1720}, + {"param",1668}, + {""}, {""}, {""}, + {"K",95}, + {""}, {""}, + {"parameter",1674}, {"iteration",1041}, {""}, {"assertion",320}, @@ -2674,4948 +2421,4281 @@ static const struct grib_keys_hash wordlist[] = {""}, {"centre",404}, {""}, {""}, {""}, - {"step",2165}, - {"refdate",1814}, - {"true",2278}, - {""}, {""}, {""}, - {"parameters",1683}, + {"step",2164}, + {""}, + {"true",2277}, + {"dataKeys",635}, + {""}, {""}, + {"parameters",1682}, {"core",605}, - {"timerepres",2255}, - {"opttime",1577}, - {"points",1709}, + {"timerepres",2254}, + {"opttime",1576}, + {"points",1708}, {""}, {""}, - {"rectime",1808}, - {""}, - {"dateTime",659}, + {"rectime",1807}, + {""}, {""}, {""}, + {"second",1985}, {""}, - {"second",1986}, - {"dataTime",645}, - {"stepZero",2175}, + {"stepZero",2174}, {"const",578}, {"minute",1310}, - {"restricted",1850}, - {"range",1788}, - {"grid",915}, - {"units",2346}, + {"restricted",1849}, + {"dummy",714}, + {""}, + {"units",2345}, {""}, {""}, - {"radius",1783}, - {"identifier",970}, + {"radius",1782}, + {""}, {""}, + {"section",2010}, + {"status",2163}, {""}, - {"section",2011}, - {"status",2164}, + {"partitions",1687}, {""}, - {"partitions",1688}, - {"isSens",1027}, {"leadtime",1106}, {"direction",698}, - {"nref",1377}, {""}, - {"radials",1782}, + {"section8",2049}, + {"radials",1781}, {"instrument",998}, - {""}, - {"dataStream",643}, - {""}, + {""}, {""}, {""}, {"minimum",1309}, {""}, {""}, {""}, - {"marsStream",1253}, - {""}, {""}, - {"Latin",113}, - {"reference",1815}, + {"three",2227}, + {"dateTime",659}, + {""}, + {"hdate",937}, + {"dataTime",645}, + {"landtype",1063}, {""}, {""}, - {"origin",1582}, - {"statistics",2163}, + {"statistics",2162}, {""}, {""}, {""}, - {"process",1751}, - {"ucs",2337}, - {""}, {""}, {""}, - {"file",855}, - {"endStep",763}, + {"process",1750}, + {"ucs",2336}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"precision",1715}, {""}, - {"precision",1716}, - {"false",848}, - {""}, {""}, {""}, - {"offset",1521}, + {"refdate",1813}, + {"dataType",646}, {""}, - {"TT",239}, - {"count",619}, + {"method",1305}, {""}, {""}, - {"operStream",1571}, - {""}, - {"anoffset",315}, + {"count",619}, + {"marsType",1256}, + {""}, {""}, {""}, {""}, {"class",432}, + {"phase",1701}, {""}, - {"marsStep",1252}, - {"uco",2336}, - {"startStep",2157}, - {"offsetdate",1555}, - {""}, {""}, - {"g",892}, - {"Lap",108}, + {"uco",2335}, {""}, {""}, {""}, + {"country",623}, + {""}, {""}, {""}, {""}, {""}, {"latitude",1071}, - {"pl",1706}, - {""}, - {"offsettime",1556}, - {""}, + {"pl",1705}, + {"char",429}, + {"identifier",970}, + {"stepType",2170}, {"model",1329}, {"correction",610}, - {"fcperiod",852}, - {"total",2257}, + {""}, + {"total",2256}, {""}, {"normal",1366}, - {"Lop",142}, + {"isSens",1027}, {"consensus",576}, - {"product",1753}, + {"product",1752}, {""}, {"latitudes",1102}, - {"TS",237}, - {"three",2228}, - {"signature",2103}, - {"elementsTable",735}, - {"hdate",937}, - {""}, {""}, - {"endTimeStep",765}, - {""}, {""}, - {"million",1307}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"platform",1707}, + {"hundred",958}, + {"Dy",42}, {""}, - {"categories",387}, - {"discipline",704}, - {"oceanStream",1519}, + {"dataStream",643}, + {"reportType",1828}, {""}, {""}, - {"daLoop",629}, - {"fgTime",854}, - {"method",1305}, + {"Di",30}, {""}, - {"year",2477}, - {""}, {""}, {""}, - {"padding",1598}, + {"marsStream",1253}, + {"million",1307}, + {"reference",1814}, + {"hour",948}, + {"dummyc",717}, {""}, {""}, {""}, - {"phase",1702}, + {"Dstart",38}, + {""}, {""}, + {"discipline",704}, + {"dataDate",633}, + {"codeType",556}, {""}, - {"partitionTable",1687}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"flags",872}, + {"file",855}, + {"marsDir",1232}, {""}, - {"section8",2050}, + {"endStep",763}, + {"false",848}, + {""}, {""}, {""}, {""}, + {"masterDir",1261}, + {"thousand",2226}, {""}, - {"efiOrder",733}, - {"char",429}, - {""}, {""}, {""}, {""}, {""}, - {"type",2289}, - {"system",2202}, - {""}, {""}, {""}, {""}, {""}, - {"gg",904}, - {"hundred",958}, - {""}, {""}, {""}, {""}, {""}, - {"two",2287}, + {"two",2286}, {""}, - {"diagnostic",691}, - {""}, {""}, {""}, - {"hour",948}, - {""}, {""}, {""}, - {"longitude",1184}, - {""}, {""}, {""}, {""}, - {"upperLimit",2368}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"eight",734}, + {"elementsTable",735}, {""}, - {"longitudes",1215}, + {"operStream",1570}, + {""}, {""}, {""}, {""}, + {"marsStep",1252}, {""}, - {"selectedSecond",2087}, - {"thousand",2227}, - {"ieeeFloats",971}, + {"startStep",2156}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"temperature",2216}, + {""}, {""}, {""}, {""}, + {"yFirst",2474}, + {"marsDomain",1233}, + {"fcperiod",852}, + {""}, {""}, {""}, {""}, + {"nref",1377}, + {"month",1336}, {""}, - {"dataOrigin",637}, - {""}, {""}, {""}, - {"crcrlf",624}, + {"TT",239}, + {""}, {""}, + {"accuracy",295}, + {"partitionTable",1686}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"range",1787}, + {"grid",915}, {""}, {""}, {""}, + {"platform",1706}, + {""}, {""}, {""}, {""}, {""}, + {"oceanStream",1519}, + {"rectimeDay",1808}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"notDecoded",1376}, + {"offset",1521}, + {""}, {""}, {""}, {""}, {""}, + {"reserved",1832}, {"local",1148}, - {"Di",30}, - {"flag",867}, - {""}, - {"localTime",1176}, - {""}, - {"dataSelection",642}, - {"userTimeStart",2377}, - {""}, - {"temperature",2217}, + {"anoffset",315}, + {""}, {""}, {""}, + {"endTimeStep",765}, + {"origin",1581}, + {"offsetdate",1555}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"KS",96}, {""}, - {"Dstart",38}, - {"dataType",646}, + {"offsettime",1556}, {""}, - {"KS",96}, - {"dataDate",633}, + {"standardDeviation",2148}, {""}, {""}, - {"marsType",1256}, - {"marsDir",1232}, - {"reserved",1833}, + {"version",2399}, + {"channel",427}, + {"varno",2394}, {""}, - {"coefsFirst",560}, + {"Ly",153}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Latin",113}, + {"threshold",2228}, + {"localTime",1176}, {""}, {""}, {""}, {""}, - {"masterDir",1261}, - {""}, - {"landtype",1063}, + {"yLast",2475}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ieeeFloats",971}, + {"hideThis",942}, {""}, {""}, {""}, {""}, - {"yLast",2476}, - {""}, {""}, - {"marsQuantile",1249}, - {"windSpeed",2447}, - {""}, - {"stepType",2171}, - {""}, {""}, {""}, - {"version",2400}, - {""}, - {"varno",2395}, - {""}, {""}, {""}, - {"K",95}, + {"eleven",737}, {""}, {"matchSort",1268}, - {"forecastperiod",884}, - {"marsDomain",1233}, {""}, - {"reportType",1829}, + {"conceptDir",568}, + {""}, + {"signature",2102}, {""}, {""}, {""}, {""}, {""}, - {"truncateLaplacian",2281}, + {"TS",237}, {""}, {""}, - {"TScalc",238}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"codeType",556}, - {"unitOfTime",2343}, + {"aerosolType",302}, {""}, {""}, - {"countTotal",622}, - {"eleven",737}, - {"coefsSecond",561}, + {"windSpeed",2446}, + {"Lap",108}, + {"dataSelection",642}, + {""}, {""}, + {"categories",387}, + {"Lcy",120}, + {""}, {""}, + {"typicalDay",2326}, + {""}, {""}, {""}, {""}, {""}, + {"eight",734}, + {"Lop",142}, + {"Luy",149}, {""}, {""}, {""}, - {"yFirst",2475}, - {""}, - {"month",1336}, + {"levtype",1130}, + {"elevation",736}, + {"efiOrder",733}, + {"spectralType",2146}, {""}, - {"channel",427}, - {""}, {""}, {""}, {"gridType",924}, - {"instrumentIdentifier",999}, - {""}, - {"notDecoded",1376}, - {"unitsFactor",2352}, - {""}, - {"codeFigure",555}, - {""}, - {"dummyc",717}, - {"average",324}, + {""}, {""}, {""}, {""}, + {"typicalTime",2331}, {""}, {""}, {""}, {""}, {""}, + {"countTotal",622}, + {"userTimeStart",2376}, {"additionalParameter",300}, {""}, - {"indicatorOfParameter",984}, - {""}, {""}, - {"dy",719}, - {"dataFlag",634}, - {""}, {""}, {""}, {""}, - {"day",661}, - {"elevation",736}, - {"dataKeys",635}, - {""}, {""}, {""}, {""}, {""}, - {"forecastTime",883}, + {"localDir",1157}, {""}, - {"logTransform",1183}, + {"localDate",1149}, + {"productType",1757}, + {"daLoop",629}, + {""}, + {"forecastperiod",884}, + {"localDay",1151}, + {""}, {""}, {""}, {""}, {""}, + {"selectedSecond",2086}, {""}, {""}, {""}, - {"forecastSteps",882}, + {"diagnostic",691}, {""}, - {"fgDate",853}, + {"crcrlf",624}, + {"fcmonth",851}, + {"values",2382}, + {""}, {""}, + {"levels",1129}, + {"longitude",1184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"isSatellite",1025}, - {"oneThousand",1569}, - {"offsetSection9",1552}, - {""}, - {"hideThis",942}, {""}, {""}, - {"isFillup",1021}, + {"levelist",1128}, + {"coefsFirst",560}, + {""}, {""}, + {"longitudes",1215}, + {"unitsFactor",2351}, {""}, {""}, {""}, {""}, {""}, - {"lowerLimit",1218}, + {"marsQuantile",1249}, {""}, {""}, - {"ccsdsFlags",393}, - {"values",2383}, + {"forecastTime",883}, + {"recDateTime",1804}, + {""}, {""}, {""}, + {"TScalc",238}, + {""}, {""}, {""}, {""}, + {"flags",872}, + {""}, {""}, {""}, {""}, + {"upperLimit",2367}, {""}, {""}, - {"levels",1129}, + {"statisticalProcess",2160}, {""}, - {"localSecond",1171}, - {"conceptDir",568}, - {"threshold",2229}, + {"typicalDate",2324}, + {""}, {""}, {""}, {""}, + {"fgTime",854}, + {"endDescriptors",742}, + {"userDateStart",2372}, + {"level",1123}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"centreDescription",405}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"statisticalProcessesList",2161}, + {"forecastSteps",882}, + {"isFillup",1021}, + {"g",892}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"avg",328}, - {""}, {""}, - {"aerosolpacking",305}, - {""}, {""}, - {"levelist",1128}, - {""}, {""}, - {"statisticalProcess",2161}, - {"dateOfForecast",651}, + {"windDirection",2435}, {""}, {""}, {""}, {""}, {""}, - {"marsLatitude",1243}, + {"overlayTemplate",1591}, + {""}, {""}, {""}, {""}, + {"runwayState",1908}, {""}, - {"offsetSection8",1551}, - {"siteLatitude",2111}, + {"optionalData",1575}, + {"satelliteSeries",1914}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"timeOfForecast",2248}, - {""}, {""}, {""}, {""}, - {"dummy",714}, - {"fcmonth",851}, + {"isOctahedral",1023}, + {""}, {""}, + {"average",324}, + {"dataOrigin",637}, + {"levelType",1125}, {""}, {""}, {""}, {""}, {""}, - {"statisticalProcessesList",2162}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"band",332}, - {""}, {""}, {""}, - {"Ly",153}, + {"referenceDate",1815}, + {""}, {""}, {""}, {""}, {""}, + {"padding",1597}, {""}, {""}, - {"level",1123}, - {""}, {""}, {""}, - {"localDir",1157}, - {""}, - {"localDate",1149}, - {"isOctahedral",1023}, - {""}, - {"userDateStart",2373}, - {""}, - {"longitudesList",1216}, - {""}, - {"satelliteSeries",1915}, + {"truncateLaplacian",2280}, + {"unitOfTime",2342}, + {"indicatorOfParameter",984}, {""}, - {"rdbtime",1794}, + {"fgDate",853}, + {"categoryType",388}, + {"pv",1766}, + {""}, {""}, {""}, + {"offsetSection8",1551}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"centreForLocal",406}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"aerosolTypeName",303}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"localDateTime",1150}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"lev",1121}, + {""}, + {"nlev",1362}, + {""}, {""}, {""}, {""}, + {"startTimeStep",2158}, + {"lowerLimit",1218}, + {"validityTime",2381}, {""}, {""}, - {"periodOfTime",1698}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"country",623}, + {"codeFigure",555}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"fireTemplate",857}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"laplacianOperator",1064}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"unitsDecimalScaleFactor",2349}, {""}, {""}, {""}, - {"latitudeSexagesimal",1099}, - {"dataLength",636}, + {"LaD",105}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"coordinatesPresent",604}, {""}, - {"Lcy",120}, + {"marsStartStep",1251}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"periodOfTime",1697}, + {"waveDomain",2423}, {""}, {""}, {""}, - {"marsLevel",1244}, - {"datasetForLocal",648}, - {""}, {""}, {""}, {""}, {""}, - {"Luy",149}, - {"number",1379}, + {"referenceStep",1823}, + {""}, + {"offsetSection0",1541}, + {"ccsdsFlags",393}, + {""}, + {"coefsSecond",561}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bitmap",370}, + {"pressureLevel",1740}, {""}, {""}, {""}, - {"referenceSampleInterval",1823}, - {""}, {""}, {""}, {""}, - {"forecastLeadTime",875}, + {"logTransform",1183}, {""}, - {"aerosolType",302}, + {"ccsdsRsi",394}, + {"localSecond",1171}, {""}, - {"recDateTime",1805}, + {"parameterDiscipline",1677}, {""}, {""}, - {"topLevel",2256}, - {""}, - {"centreDescription",405}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"levtype",1130}, - {""}, - {"pv",1767}, - {"startTimeStep",2159}, - {""}, - {"standardDeviation",2149}, - {"localFlag",1159}, + {"band",332}, {""}, - {"laplacianOperator",1064}, - {""}, {""}, - {"spectralType",2147}, - {"referenceDate",1816}, - {""}, {""}, - {"marsStartStep",1251}, - {"endDescriptors",742}, - {"fireTemplate",857}, - {"typicalTime",2332}, + {"flag",867}, {""}, {""}, {""}, {""}, - {"aerosolTypeName",303}, + {"firstDimension",858}, + {""}, {""}, {""}, {""}, + {"datasetForLocal",648}, + {""}, {""}, {""}, {""}, {""}, + {"JS",94}, + {"userDateTimeStart",2374}, {""}, {""}, - {"centreLongitude",410}, + {"rdbtime",1793}, + {""}, + {"offsetSection9",1552}, {""}, {""}, - {"computeStatistics",567}, - {"referenceStep",1824}, - {"productType",1758}, + {"freeFormData",887}, {""}, {""}, {""}, {""}, {"Xo",272}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"computeStatistics",567}, + {""}, {""}, {""}, {""}, {""}, + {"marsLevel",1244}, {""}, {""}, {""}, {""}, - {"accuracy",295}, - {""}, {""}, - {"latitudesList",1103}, + {"Xp",273}, + {""}, {""}, {""}, {""}, + {"gg",904}, {""}, - {"windDirection",2436}, - {"lev",1121}, - {"originalSubCentreIdentifier",1586}, - {"nlev",1362}, + {"dateOfForecast",651}, + {"instrumentIdentifier",999}, {""}, - {"LaD",105}, + {"yearOfForecast",2480}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"obstype",1516}, + {"timeOfForecast",2247}, {""}, {""}, - {"Xp",273}, - {""}, {""}, {""}, {""}, - {"optionalData",1576}, + {"number",1379}, + {""}, {""}, + {"derivedForecast",689}, + {"longitudesList",1216}, + {"topLevel",2255}, + {"avg",328}, + {"bitmap",370}, {""}, {""}, {""}, - {"yearOfForecast",2481}, - {"localDateTime",1150}, + {"localDecimalScaleFactor",1152}, + {""}, + {"Nr",200}, + {"marsLatitude",1243}, + {""}, + {"offsetDescriptors",1535}, + {"siteLatitude",2110}, {""}, {""}, - {"anoffsetFirst",316}, - {""}, {""}, {""}, {""}, - {"coordinatesPresent",604}, - {"Dy",42}, - {""}, {""}, {""}, {""}, - {"unitsDecimalScaleFactor",2350}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfCentrePoint",1188}, - {""}, {""}, {""}, {""}, {"laplacianOperatorIsSet",1065}, + {""}, + {"analysisOffsets",308}, + {"marsKeywords",1240}, + {""}, + {"Ny",207}, {""}, {""}, {""}, {""}, - {"overlayTemplate",1592}, - {""}, {""}, {""}, {""}, - {"JS",94}, - {""}, {""}, - {"dimensionType",697}, - {"preferLocalConcepts",1720}, - {""}, {""}, {""}, {""}, - {"hourOfForecast",951}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"templatesLocalDir",2219}, - {"setLocalDefinition",2094}, - {"incrementOfLengths",975}, - {"levelType",1125}, - {""}, {""}, {""}, - {"derivedForecast",689}, - {""}, {""}, - {"generatingProcessTemplate",901}, + {"aerosolpacking",305}, + {"Ni",198}, + {"dataLength",636}, {""}, - {"freeFormData",887}, + {"dataFlag",634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"distinctLatitudes",706}, + {"anoffsetFrequency",317}, + {""}, {""}, + {"localDefinition",1155}, + {""}, {""}, {""}, {""}, {""}, + {"rdbType",1791}, {""}, - {"pressureLevel",1741}, + {"setLocalDefinition",2093}, + {""}, {""}, {"marsRange",1250}, - {"runwayState",1909}, - {""}, {""}, {""}, {""}, {""}, - {"offsetDescriptors",1535}, - {"controlForecastCluster",583}, - {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"latitudesList",1103}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"validityDate",2380}, + {"distinctLatitudes",706}, + {"stepRange",2168}, + {"anoffsetFirst",316}, + {"Ncy",196}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"gridDefinition",917}, {""}, - {"referenceOfLengths",1819}, - {""}, - {"obstype",1516}, - {"firstDimension",858}, - {"anoffsetLast",318}, - {"rdbtimeTime",1801}, + {"Nuy",205}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"angleDivisor",309}, {""}, - {"stepRange",2169}, + {"centreForLocal",406}, + {""}, {""}, {""}, {""}, + {"controlForecastCluster",583}, + {"J",93}, + {"parameterName",1679}, {""}, {""}, - {"rectimeDay",1809}, + {"reservedOctet",1837}, + {""}, {""}, + {"setDecimalPrecision",2092}, {""}, {""}, {""}, - {"integerScalingFactorAppliedToDirections",1003}, - {"integerScalingFactorAppliedToFrequencies",1004}, - {"Nr",200}, - {""}, {""}, {""}, {""}, - {"userDateTimeStart",2375}, - {"rdbType",1792}, - {"ccsdsRsi",394}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"generatingProcessIdentifier",900}, + {"templatesLocalDir",2218}, + {"suiteName",2194}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Ni",198}, + {"modelName",1332}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"anoffsetFrequency",317}, + {"rdbtimeDay",1795}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"categoryType",388}, - {"global",905}, - {"localDecimalScaleFactor",1152}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"parameterDiscipline",1678}, - {""}, {""}, {""}, {""}, {""}, - {"angleDivisor",309}, {""}, {""}, - {"waveDomain",2424}, + {"referenceSampleInterval",1822}, {""}, {""}, {""}, - {"groupSplitting",928}, - {"monthOfForecast",1339}, - {""}, {""}, - {"typicalDate",2325}, + {"decimalScaleFactor",671}, {""}, - {"centreLongitudeInDegrees",411}, - {""}, {""}, {""}, - {"ensembleSize",774}, + {"upperRange",2368}, + {""}, {""}, + {"verticalDomainTemplate",2409}, + {"rdbtimeTime",1800}, + {""}, {""}, + {"hourOfForecast",951}, + {""}, {""}, + {"scaledDirections",1945}, {""}, {""}, {""}, - {"integerScaleFactor",1002}, - {"upperRange",2369}, + {"shortName",2098}, + {"lengthDescriptors",1111}, + {""}, + {"dayOfForecast",664}, {""}, - {"analysisOffsets",308}, - {""}, {""}, {""}, - {"generatingProcessIdentificationNumber",899}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"validityTime",2382}, - {""}, {""}, {""}, {""}, - {"lcwfvSuiteName",1105}, - {""}, {""}, {""}, {""}, {"NT",190}, - {"parameterName",1680}, - {""}, {""}, {""}, {""}, - {"Nf",197}, - {""}, {""}, {""}, {""}, - {"localDefinition",1155}, - {"suiteName",2195}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"tubeDomain",2285}, {"localTimeForecastList",1177}, - {""}, - {"gridName",922}, - {""}, {""}, {""}, {""}, {""}, - {"decimalScaleFactor",671}, - {"modelName",1332}, - {"latitudeOfCentrePoint",1076}, - {"Nassigned",193}, + {""}, {""}, {""}, + {"matchTimeRepres",1269}, + {""}, {""}, + {"marsParam",1248}, + {"centreLongitude",410}, + {""}, {""}, {""}, {""}, + {"subSetK",2190}, + {""}, {""}, {"cfName",415}, - {""}, {""}, {""}, {""}, {""}, - {"heightLevelName",939}, - {""}, - {"localDay",1151}, + {""}, {""}, + {"preferLocalConcepts",1719}, + {""}, {""}, {""}, + {"tubeDomain",2284}, + {""}, {""}, {""}, + {"latitudeOfCentrePoint",1076}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"monthOfForecast",1339}, + {""}, {""}, + {"epsPoint",778}, + {"forecastLeadTime",875}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"reservedOctet",1838}, - {""}, {""}, {""}, {""}, {""}, - {"conceptsLocalDirAll",571}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"endOfRange",762}, - {"typeOfLevel",2303}, + {"longitudeOfCentrePoint",1188}, + {"localFlag",1159}, + {""}, {""}, {""}, + {"realPart",1802}, + {"rdbtimeDate",1794}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"originalSubCentreIdentifier",1585}, + {"editionNumber",731}, {""}, - {"setDecimalPrecision",2093}, - {""}, {""}, - {"lengthDescriptors",1111}, + {"Nf",197}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"incrementOfLengths",975}, {""}, - {"dayOfForecast",664}, - {""}, {""}, - {"siteId",2110}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"marsIdent",1239}, {"oldSubtype",1557}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"paramId",1670}, - {""}, {""}, - {"NL",186}, + {"latitudeSexagesimal",1099}, + {"anoffsetLast",318}, + {""}, + {"integerScaleFactor",1002}, + {"ensembleSize",774}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"rdbtimeDate",1795}, - {""}, {""}, {""}, - {"subSetK",2191}, - {"offsetSection0",1541}, + {"gridName",922}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"sectionNumber",2058}, + {"lowerRange",1219}, + {"Nassigned",193}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfLevel",2302}, + {""}, + {"ifsParam",972}, {""}, {""}, - {"secondOfForecast",1993}, + {"energyNorm",770}, {""}, {""}, - {"minuteOfForecast",1313}, + {"conceptsLocalDirAll",571}, + {"qfe",1768}, + {""}, + {"rdbDateTime",1789}, + {"northernLatitudeOfDomain",1374}, + {""}, {""}, {""}, {""}, {""}, + {"visibility",2413}, {""}, {""}, - {"listOfScaledFrequencies",1145}, - {""}, {""}, {""}, - {"matchLandType",1267}, - {"representationType",1831}, - {"shortName",2099}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"marsLevelist",1245}, + {"stepTypeForConversion",2171}, {""}, {""}, {""}, - {"marsParam",1248}, - {"iIncrement",963}, + {"secondOfForecast",1992}, {""}, {""}, - {"marsKeywords",1240}, + {"minuteOfForecast",1313}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfFloats",1427}, - {"boustrophedonic",377}, + {"generatingProcessTemplate",901}, {""}, - {"rdbDateTime",1790}, - {"lowerRange",1219}, - {""}, {""}, - {"scaledDirections",1946}, - {"multiplicationFactorForLatLong",1348}, + {"sequences",2089}, {""}, - {"gridDefinitionSection",919}, + {"newSubtype",1361}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"quantile",1778}, + {"typeOfStatisticalPostProcessingOfEnsembleMembers",2314}, + {""}, {""}, + {"marsLevelist",1245}, {""}, {""}, {""}, {""}, - {"bottomLevel",376}, - {""}, - {"longitudeSexagesimal",1214}, + {"referenceOfLengths",1818}, {""}, - {"epsPoint",778}, + {"lcwfvSuiteName",1105}, + {"gridDefinitionSection",919}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"realPart",1803}, - {""}, {""}, - {"ifsParam",972}, - {""}, {""}, - {"typicalDay",2327}, + {"southernLatitudeOfDomain",2130}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"editionNumber",731}, {""}, - {"newSubtype",1361}, - {""}, {""}, {""}, {""}, - {"longitudinalDirectionGridLength",1217}, + {"endOfRange",762}, {""}, - {"verticalDomainTemplate",2410}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfGridPoints",1195}, + {"clusterNumber",548}, {""}, - {"energyNorm",770}, - {""}, {""}, - {"typeOfStatisticalProcessing",2316}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"defaultName",675}, + {"global",905}, {""}, - {"typeOfStatisticalPostProcessingOfEnsembleMembers",2315}, + {"qnh",1771}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"gridDefinitionDescription",918}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"atmosphericChemicalOrPhysicalConstituentType",321}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"channelNumber",428}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"sectionNumber",2059}, - {""}, {""}, {""}, {""}, - {"modelIdentifier",1331}, - {""}, {""}, {""}, {""}, - {"numberOfTimeSteps",1492}, - {"J",93}, - {""}, {""}, {""}, {""}, - {"matchTimeRepres",1269}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfSection",1483}, - {""}, {""}, {""}, {""}, - {"northernLatitudeOfDomain",1374}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bufrTemplate",382}, {""}, {""}, - {"defaultName",675}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Ny",207}, + {"longitudinalDirectionGridLength",1217}, {""}, {""}, + {"spectralDataRepresentationType",2144}, + {"frequency",888}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"spectralDataRepresentationMode",2143}, + {""}, {""}, + {"generatingProcessIdentifier",900}, + {""}, {""}, {""}, {""}, {""}, + {"rectimeSecond",1811}, {"minuteOfReference",1316}, {""}, {""}, {""}, - {"numberingOrderOfDiamonds",1508}, + {"standardParallel",2149}, + {"uerraSection",2338}, + {""}, {""}, {""}, + {"waveLevType",2425}, + {"crraSection",627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfStatisticalProcessingForTimeRangeForReferencePeriod",2317}, + {"typeOfStatisticalProcessingForTimeRangeForReferencePeriod",2316}, {""}, {""}, {""}, - {"rdbtimeDay",1796}, - {"headersOnly",938}, - {"defaultStepUnits",679}, - {""}, - {"selectedDay",2082}, - {"dateOfReference",656}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"overlayTemplateNumber",1593}, - {""}, - {"timeOfReference",2251}, + {"integerScalingFactorAppliedToDirections",1003}, + {"integerScalingFactorAppliedToFrequencies",1004}, {""}, {""}, {""}, {""}, {""}, - {"southernLatitudeOfDomain",2131}, - {"stepTypeForConversion",2172}, + {"dateOfReference",656}, {""}, {""}, - {"Ncy",196}, + {"yearOfReference",2483}, {""}, - {"numberOfSubsets",1488}, - {"secondOfForecastUsedInLocalTime",1994}, - {"clusterNumber",548}, - {""}, - {"minuteOfForecastUsedInLocalTime",1314}, - {""}, {""}, {""}, {""}, - {"Nuy",205}, + {"typeOfStatisticalProcessing",2315}, + {""}, {""}, {""}, {""}, {""}, + {"timeOfReference",2250}, {""}, - {"perturbedType",1701}, - {""}, {""}, {""}, {""}, - {"numberOfFrequencies",1434}, - {""}, {""}, {""}, - {"faFieldName",845}, + {"optimisationTime",1573}, {""}, {""}, - {"gridDefinitionDescription",918}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"validityDate",2381}, - {"ccccIdentifiers",390}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"latitudeOfCentrePointInDegrees",1077}, - {""}, - {"angleOfRotation",311}, - {""}, {"forecastPeriod",878}, - {""}, {""}, {""}, - {"qfe",1769}, + {"longitudeOfGridPoints",1195}, + {""}, {""}, + {"windPresent",2445}, {""}, {"defaultParameter",676}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"orderOfSpatialDifferencing",1579}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"generatingProcessIdentificationNumber",899}, + {""}, {""}, {""}, {""}, {""}, + {"heightLevelName",939}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"faFieldName",845}, + {""}, + {"boustrophedonic",377}, {""}, - {"standardParallel",2150}, + {"sectionPosition",2059}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"visibility",2414}, - {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"typicalSecond",2330}, + {""}, {""}, {""}, {""}, {""}, {""}, {"observedData",1515}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"bufrTemplate",382}, + {""}, {""}, {""}, + {"levTypeName",1122}, {""}, {""}, {""}, {""}, - {"scaleFactorOfSecondSize",1935}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"unitOfOffsetFromReferenceTime",2342}, - {""}, {""}, {""}, {""}, {""}, - {"channelNumber",428}, - {""}, {""}, {""}, {""}, - {"epsStatisticsPoint",780}, + {"groupSplitting",928}, {""}, {""}, {""}, {""}, {""}, - {"forecastPeriodTo",880}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"LaR",107}, + {""}, {""}, {""}, + {"listOfScaledFrequencies",1145}, + {"standardParallelInDegrees",2150}, + {""}, + {"NL",186}, {""}, {""}, - {"numberOfLocalDefinitions",1444}, - {"waveLevType",2426}, - {"rdbSubtype",1791}, - {""}, {""}, {""}, {""}, - {"climatologicalRegime",436}, - {""}, {""}, {""}, {""}, - {"LoR",127}, - {"atmosphericChemicalOrPhysicalConstituentType",321}, - {""}, {""}, {""}, {""}, - {"modeNumber",1328}, - {"sequences",2090}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfForcasts",1428}, + {"createNewData",625}, {""}, {""}, - {"quantile",1779}, - {"numberOfDirections",1417}, - {""}, {""}, {""}, {""}, - {"satelliteIdentifier",1913}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"localDefinitionNumber",1156}, - {""}, {""}, {""}, {""}, - {"yearOfReference",2484}, + {"SPD",227}, {""}, - {"sectionPosition",2060}, + {"LoR",127}, {""}, {""}, {""}, {""}, - {"stretchingFactor",2178}, + {"localSection",1172}, {""}, - {"windPresent",2446}, + {"forecastPeriodTo",880}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"partitionItems",1685}, + {"defaultStepUnits",679}, {""}, {""}, - {"numberOfDiamonds",1416}, - {"numberOfStatisticallyProcessedFieldsForLocalTime",1486}, - {""}, - {"scaleFactorOfFirstSize",1924}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"rectimeSecond",1812}, - {""}, {""}, {""}, {""}, {""}, - {"uerraSection",2339}, - {""}, {""}, {""}, {""}, - {"crraSection",627}, + {"bottomLevel",376}, {""}, {""}, {""}, {""}, {""}, - {"hourOfReference",954}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"oceanLevName",1518}, - {""}, {""}, {""}, {""}, - {"spectralDataRepresentationMode",2144}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"overlayTemplateNumber",1592}, + {""}, + {"latitudeOfCentrePointInDegrees",1077}, + {""}, + {"multiplicationFactorForLatLong",1348}, {""}, {""}, {""}, {""}, {""}, {""}, - {"angleOfRotationInDegrees",312}, - {""}, {""}, {""}, {""}, - {"faLevelName",846}, + {"epsStatisticsPoint",780}, {""}, {""}, {""}, - {"forecastPeriodFrom",879}, - {"endOfInterval",759}, - {"stretchingFactorScaled",2179}, - {""}, {""}, {""}, {""}, - {"legNumber",1109}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"originalParameterNumber",1584}, + {"numberOfFloats",1427}, + {"neitherPresent",1360}, {""}, {""}, {""}, - {"offsetFreeFormData",1537}, - {""}, {""}, - {"totalNumber",2261}, - {""}, - {"generatingProcessTemplateNumber",902}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"trueLengthOfLastGroup",2279}, - {"referencePeriodList",1821}, - {""}, - {"numberOfForecastsInTube",1432}, - {""}, {""}, - {"scaleFactorOfStandardDeviation",1937}, + {"yDirectionGridLength",2471}, + {""}, {""}, {""}, {""}, {""}, + {"climatologicalRegime",436}, {""}, {""}, {"dewPointTemperature",690}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endOfProduct",761}, - {""}, - {"standardParallelInDegrees",2151}, - {""}, {""}, {""}, - {"diffInDays",693}, - {"scaleFactorOfStandardDeviationInTheCluster",1938}, + {"hourOfReference",954}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"probPoint",1747}, - {"N",171}, + {"angleOfRotation",311}, {""}, {""}, {""}, {""}, {""}, - {"tiggeSection",2235}, - {""}, {""}, {""}, - {"treatmentOfMissingData",2277}, + {"Adelta",13}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"createNewData",625}, - {""}, {""}, {""}, - {"significanceOfReferenceTime",2105}, - {""}, {""}, {""}, {""}, {""}, - {"qnh",1772}, - {""}, {""}, {""}, - {"groupLeafNodeK",926}, - {"monthOfReference",1342}, - {"climateDateFrom",434}, + {"siteId",2109}, {""}, - {"SPD",227}, + {"treatmentOfMissingData",2276}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"marsIdent",1239}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfOperationalForecastTube",1455}, - {""}, - {"missingDataFlag",1320}, - {"optimisationTime",1574}, - {"masterTableNumber",1262}, - {""}, {""}, {""}, {""}, {""}, - {"localSection",1172}, + {"paramId",1669}, + {"monthOfReference",1342}, {""}, - {"scaleFactorOfSecondFixedSurface",1934}, - {""}, {""}, {""}, {""}, {""}, - {"defaultFaFieldName",672}, + {"maximum",1274}, + {"isAuto",1011}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfTimeSteps",1492}, {""}, {""}, {""}, - {"levTypeName",1122}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"corr4Data",609}, {""}, - {"longitudeOfFirstGridPoint",1193}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"productDefinition",1753}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"centreLongitudeInDegrees",411}, + {"secondDimension",1986}, + {""}, + {"defaultTypeOfLevel",680}, + {""}, {""}, + {"iIncrement",963}, {""}, {""}, {""}, - {"neitherPresent",1360}, - {"changingPrecision",426}, + {"N",171}, + {""}, {""}, {""}, {""}, {""}, + {"dimensionType",697}, + {"originalParameterNumber",1583}, {""}, {""}, {""}, {""}, - {"postProcessing",1712}, - {""}, {""}, - {"listOfDistributionFunctionParameter",1141}, - {"indicatorOfUnitOfTimeRange",990}, - {""}, {""}, - {"scaleFactorOfFirstFixedSurface",1923}, - {""}, {""}, - {"spectralDataRepresentationType",2145}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"maximum",1274}, - {"numberOfRadials",1475}, - {"levelIndicator",1124}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"powerOfTenUsedToScaleClimateWeight",1713}, - {"computeLaplacianOperator",566}, - {"xLast",2469}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"referencePeriodList",1820}, {""}, - {"longitudeOfIcosahedronPole",1196}, - {""}, {""}, - {"defaultFaLevelName",673}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"scaleFactorOfSecondSize",1934}, + {""}, + {"numberOfDirections",1417}, {""}, - {"secondOrderFlags",1997}, + {"forecastPeriodFrom",879}, + {""}, {""}, {""}, {""}, + {"modeNumber",1328}, + {""}, {""}, {""}, {""}, {""}, + {"oceanLevName",1518}, + {"secondOfForecastUsedInLocalTime",1993}, {""}, {""}, - {"widthOfFirstOrderValues",2432}, - {""}, {""}, {""}, - {"defaultShortName",678}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"minuteOfForecastUsedInLocalTime",1314}, + {"auxiliary",323}, {""}, {""}, - {"averagingPeriod",327}, + {"scaleFactorOfFirstSize",1923}, {""}, - {"defaultTypeOfLevel",680}, - {"clusteringMethod",551}, + {"correction1Part",612}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"numberOfSection",1483}, {""}, {""}, - {"xFirst",2468}, - {""}, {""}, {""}, {""}, {""}, - {"expoffset",799}, - {"periodOfTimeIntervals",1699}, + {"longitudeSexagesimal",1214}, {""}, - {"typicalSecond",2331}, - {""}, {""}, {""}, {""}, - {"stepTypeInternal",2173}, + {"computeLaplacianOperator",566}, {""}, - {"numberOfForecastsUsedInLocalTime",1433}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"subcentreOfAnalysis",2193}, - {"Nb",194}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"MS",158}, + {"scaleFactorOfStandardDeviation",1936}, + {"extraDim",802}, {""}, - {"boustrophedonicOrdering",378}, + {"dataAccessors",631}, {""}, - {"molarMass",1335}, - {"typeOfDistributionFunction",2294}, + {"inputDataPresentIndicator",991}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"scaleFactorOfStandardDeviationInTheCluster",1937}, + {""}, {""}, {""}, + {"rdbSubtype",1790}, + {""}, + {"numberOfSubsets",1488}, + {""}, {""}, {""}, {""}, {""}, + {"xFirst",2467}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"subSetJ",2190}, - {"observablePropertyTemplate",1510}, + {"numberOfDiamonds",1416}, + {""}, {""}, + {"waveDirectionNumber",2422}, + {""}, {""}, {""}, {""}, {""}, + {"iDirectionIncrement",959}, {""}, {""}, {""}, - {"methodNumber",1306}, + {"temperatureAndDewpointPresent",2217}, + {""}, {""}, {""}, {""}, + {"numberOfFrequencies",1434}, + {"corr3Data",608}, + {""}, {""}, {""}, + {"is_uerra",1036}, + {""}, {""}, + {"modelIdentifier",1331}, {""}, {""}, - {"unitOfTimeIncrement",2344}, + {"endOfProduct",761}, + {"expandedTypes",793}, {""}, - {"ensembleForecastNumbers",772}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"faLevelName",846}, {""}, - {"applicationIdentifier",319}, - {""}, {""}, {""}, - {"waveDirectionNumber",2423}, - {"frequency",888}, + {"section_8",2078}, {""}, {""}, {""}, - {"systemNumber",2203}, + {"defaultShortName",678}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"TAFstr",235}, + {"probPoint",1746}, {""}, {""}, {""}, - {"orderOfSPD",1578}, + {"tiggeSection",2234}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"iDirectionIncrement",959}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"marsModel",1247}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"iteratorDisableUnrotate",1043}, - {"pvlLocation",1768}, - {"productDefinition",1754}, + {"expver",800}, + {"applicationIdentifier",319}, {""}, {""}, {""}, - {"clutterFilterIndicator",552}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"firstLatitude",861}, + {"orderOfSpatialDifferencing",1578}, {""}, - {"simpleThinningSkip",2107}, - {""}, - {"XR",270}, - {""}, {""}, {""}, - {"observablePropertyTemplateNumber",1511}, + {"totalNumber",2260}, + {"localDefinitionNumber",1156}, {""}, {""}, {""}, {""}, - {"addressOfFileFreeSpaceInfo",301}, - {""}, {""}, - {"yDirectionGridLength",2472}, + {"expoffset",799}, + {""}, {""}, {""}, {""}, + {"defaultFaFieldName",672}, {""}, {""}, - {"extraDim",802}, - {""}, - {"zeros",2487}, - {"unsignedIntegers",2361}, + {"selectedDay",2081}, {""}, - {"zero",2486}, - {""}, - {"inputDataPresentIndicator",991}, + {"xLast",2468}, {""}, - {"DiInDegrees",32}, - {"rdbtimeSecond",1800}, + {"short_name",2101}, + {""}, {""}, + {"_T",288}, + {""}, {""}, + {"corr2Data",607}, {""}, - {"expver",800}, + {"section_08",2067}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"verificationDate",2395}, + {""}, {""}, {""}, + {"pvlLocation",1767}, + {""}, {""}, + {"systemNumber",2202}, + {"typeOfRelationToReferenceDataset",2310}, + {""}, {""}, + {"XR",270}, + {"dataRepresentation",638}, + {""}, {""}, {""}, + {"defaultFaLevelName",673}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"marsLongitude",1246}, - {"operatingMode",1572}, + {"unitOfOffsetFromReferenceTime",2341}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"_endStep",291}, + {"inputDelayedDescriptorReplicationFactor",992}, {""}, - {"siteLongitude",2112}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"widthOfFirstOrderValues",2431}, {""}, {""}, {""}, - {"longitudeOfCentrePointInDegrees",1189}, + {"subSetJ",2189}, {""}, - {"bitmapSectionPresent",372}, + {"orderOfSPD",1577}, + {"is_aerosol",1028}, {""}, {""}, {""}, {""}, - {"tubeNumber",2286}, - {""}, {""}, {""}, - {"ensembleForecastNumbersList",773}, + {"simpleThinningSkip",2106}, {""}, {""}, {""}, {""}, - {"P",211}, + {"indexTemplate",976}, + {""}, + {"ccccIdentifiers",390}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfStatisticallyProcessedFieldsForLocalTime",1486}, {""}, {""}, {""}, {""}, - {"typeOfRelationToReferenceDataset",2311}, - {""}, {""}, {""}, {"changeDecimalPrecision",421}, - {"meanSize",1296}, - {"indexingTime",980}, - {"theMessage",2222}, - {""}, {""}, {""}, {""}, - {"secondDimension",1987}, - {""}, {""}, - {"FirstLatitude",67}, - {""}, {""}, {""}, {""}, - {"lengthOfProjectLocalTemplate",1118}, {""}, {""}, {""}, - {"indexTemplate",976}, - {""}, - {"typeOfTimeIncrement",2318}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"representationType",1830}, {""}, - {"centreLatitude",408}, + {"cnmc_isac",554}, + {""}, {""}, + {"P",211}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"numberOfDistinctSection9s",1424}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfIterations",1442}, - {""}, - {"secondLatitude",1990}, + {"significanceOfReferenceTime",2104}, + {""}, {""}, {""}, + {"numberOfForcasts",1428}, + {""}, {""}, {""}, {""}, {""}, + {"NR",188}, + {""}, {""}, {""}, {""}, + {"headersOnly",938}, {""}, {""}, - {"tableNumber",2207}, + {"dataRepresentationType",641}, {""}, {""}, - {"tiggeModel",2234}, + {"partitionItems",1684}, {""}, - {"firstSize",866}, - {"localLatitude",1162}, + {"methodNumber",1306}, + {"_anoffset",290}, {""}, {""}, - {"numberOfDistinctSection8s",1423}, + {"changingPrecision",426}, + {""}, {""}, {""}, {""}, + {"local_use",1182}, + {"legNumber",1109}, + {""}, {""}, + {"numberOfForecastsInTube",1432}, {""}, - {"datumSize",660}, + {"scaleFactorOfFirstFixedSurface",1922}, + {""}, {""}, + {"numberOfLocalDefinitions",1444}, + {"clusteringMethod",551}, + {"TAF",234}, + {"rdbtimeSecond",1799}, + {"efas_model",732}, + {""}, + {"typeOfTimeIncrement",2317}, + {""}, + {"typeOfDistributionFunction",2293}, + {""}, {""}, + {"numberingOrderOfDiamonds",1508}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"section_09",2068}, + {"indicatorOfUnitOfTimeRange",990}, + {""}, {""}, + {"groupLeafNodeK",926}, {""}, {""}, {""}, - {"angleMultiplier",310}, - {"secondSize",2000}, + {"generatingProcessTemplateNumber",902}, + {"postProcessing",1711}, + {"trueLengthOfLastGroup",2278}, + {""}, {""}, + {"cnmc_cmcc",553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"representationMode",1830}, + {"averagingPeriod",327}, + {"diffInDays",693}, + {"indexingTime",980}, + {"unitOfTimeIncrement",2343}, + {"is_chemical",1030}, {""}, {""}, - {"dataValues",647}, + {"powerOfTenUsedToScaleClimateWeight",1712}, + {""}, {""}, {""}, + {"_TS",289}, + {""}, {""}, {""}, {""}, {""}, + {"dataRepresentationTemplate",639}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"climateDateFrom",434}, + {""}, {""}, {""}, + {"simpleThinningStart",2107}, + {""}, + {"listOfDistributionFunctionParameter",1141}, + {""}, + {"dayOfStartOfReferencePeriod",668}, + {""}, {""}, {""}, {""}, {""}, + {"gts_header",935}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"is_localtime",1033}, + {""}, + {"scaleFactorOfSecondFixedSurface",1933}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"centreLatitude",408}, + {""}, {""}, {""}, {""}, + {"g2grid",895}, {""}, {""}, {"latitudeOfGridPoints",1080}, + {"matchLandType",1267}, + {""}, + {"iteratorDisableUnrotate",1043}, {""}, {""}, - {"oneMillionConstant",1560}, - {"angleOfRotationOfProjection",313}, - {"unitsOfSecondFixedSurface",2355}, + {"endOfInterval",759}, + {""}, {""}, {""}, {""}, + {"isAccumulation",1010}, {""}, {""}, - {"NR",188}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"secondLatitude",1989}, + {"scanPosition",1976}, + {"dataRepresentationTemplateNumber",640}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"qnhPresent",1773}, {""}, {""}, {""}, {""}, - {"simpleThinningStart",2108}, + {"stepTypeInternal",2172}, {""}, {""}, {""}, - {"SecondLatitude",228}, + {"dataValues",647}, + {""}, + {"orientationOfTheGrid",1579}, + {""}, {""}, {""}, + {"qfePresent",1769}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"satelliteIdentifier",1912}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"temperatureAndDewpointPresent",2218}, + {"numberOfOperationalForecastTube",1455}, + {""}, {""}, {""}, {""}, {""}, + {"angleOfRotationInDegrees",312}, {""}, {""}, - {"expandedTypes",793}, - {"PLPresent",214}, - {"referenceValue",1825}, - {""}, {""}, {""}, {""}, - {"earthIsOblate",720}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"marsLamModel",1242}, - {"numberOfPartitions",1459}, + {"stretchingFactor",2177}, + {"bitmapSectionPresent",372}, {""}, {""}, - {"DyInDegrees",43}, + {"widthOfSPD",2433}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"binaryScaleFactor",368}, - {""}, {""}, {""}, {""}, - {"indicatorOfUnitForForecastTime",986}, - {"scanningMode",1978}, + {"masterTableNumber",1262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"memberNumber",1302}, - {"spectralMode",2146}, - {""}, {""}, {""}, - {"dayOfStartOfReferencePeriod",668}, {""}, {""}, {""}, {""}, - {"inputDelayedDescriptorReplicationFactor",992}, + {"section8Pointer",2051}, + {""}, {""}, + {"numberOfDistinctSection8s",1423}, + {""}, {""}, + {"numberOfRadials",1475}, + {"longitudeOfIcosahedronPole",1196}, + {""}, + {"secondsOfReference",2009}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"localMinute",1168}, - {"typeOfPostProcessing",2307}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"tigge_name",2236}, {""}, - {"clusterMember9",547}, - {"Adelta",13}, + {"sensitiveAreaDomain",2088}, + {"streamOfAnalysis",2176}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"md5Data",1275}, + {""}, {""}, {""}, + {"minutesAfterDataCutoff",1318}, + {"angleOfRotationOfProjection",313}, + {"referenceValue",1824}, {""}, {""}, {""}, {""}, - {"auxiliary",323}, - {""}, {""}, {""}, {""}, {""}, - {"verificationDate",2396}, + {"molarMass",1335}, + {"SecondLatitude",228}, + {"centuryOfReference",413}, {""}, {""}, {""}, - {"floatVal",873}, - {""}, {""}, {""}, {""}, {""}, - {"LaDInDegrees",106}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"stretchingFactorScaled",2178}, + {""}, + {"firstLatitude",861}, + {"section0Pointer",2012}, + {""}, {""}, + {"levelIndicator",1124}, + {""}, + {"offsetFreeFormData",1537}, + {"ensembleForecastNumbers",772}, + {""}, + {"indexingDate",979}, + {""}, {""}, {""}, {""}, + {"Nb",194}, + {""}, + {"PLPresent",214}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfLastGridPoint",1197}, - {"isAuto",1011}, + {"section9Pointer",2054}, + {""}, {""}, + {"numberOfDistinctSection9s",1424}, {""}, - {"clusterMember8",546}, + {"md5Section8",1288}, + {""}, {""}, {""}, + {"charValues",430}, {""}, - {"latitudeLastInDegrees",1073}, + {"minuteOfAnalysis",1311}, {""}, {""}, - {"earthMinorAxis",723}, + {"dayOfReference",667}, + {""}, {""}, {""}, {""}, {""}, + {"scaleFactorAtReferencePoint",1915}, + {"marsModel",1247}, + {""}, {""}, + {"scalingFactorForFrequencies",1975}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"secondDimensionPhysicalSignificance",1988}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"dayOfAnalysis",662}, + {"floatVal",873}, + {""}, + {"localLatitude",1162}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isEps",1020}, + {"versionNumOfFilesFreeSpaceStorage",2400}, + {"FirstLatitude",67}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dataRepresentation",638}, + {"gts_ddhh00",934}, {""}, {""}, {""}, {""}, - {"thisMarsStream",2225}, + {"lengthOfProjectLocalTemplate",1118}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"widthOfSPD",2434}, + {"md5Section9",1289}, + {"sfc_levtype",2095}, + {"correction2Part",614}, {""}, {""}, - {"isConstant",1017}, - {""}, {""}, {""}, {""}, - {"scalingFactorForFrequencies",1976}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"additionalFlagPresent",299}, + {"expandedDescriptors",787}, + {""}, + {"numberOfForecastsUsedInLocalTime",1433}, {""}, {""}, {""}, {""}, - {"scanningMode8",1983}, - {"localLongitude",1165}, - {""}, {""}, - {"numberOfInts",1441}, + {"observablePropertyTemplate",1510}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"charValues",430}, + {"decimalPrecision",670}, {""}, - {"localMonth",1169}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"TAFstr",235}, + {"MS",158}, {""}, {""}, {""}, {""}, {""}, - {"marsClass",1229}, + {"offsetAfterLocalSection",1525}, {""}, {""}, - {"interpretationOfNumberOfPoints",1008}, - {"marsEndStep",1234}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"eastLongitudeOfCluster",725}, - {""}, {""}, {""}, - {"dataAccessors",631}, + {"marsLongitude",1246}, {""}, {""}, - {"startOfMessage",2155}, - {""}, - {"qfePresent",1770}, - {""}, {""}, {""}, - {"numberOfReservedBytes",1480}, - {"optimizeScaleFactor",1575}, - {""}, - {"parameterCode",1677}, - {""}, {""}, {""}, - {"totalNumberOfdimensions",2276}, - {""}, {""}, {""}, - {"secondDimensionPhysicalSignificance",1989}, - {""}, {""}, {""}, - {"thisMarsType",2226}, - {""}, {""}, {""}, - {"clusterSize",549}, - {""}, {""}, {""}, - {"conceptsLocalMarsDirAll",573}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"siteLongitude",2111}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"scanPosition",1977}, - {""}, {""}, {""}, {""}, - {"dataRepresentationTemplate",639}, {""}, {""}, - {"ensembleStandardDeviation",775}, + {"perturbedType",1700}, {""}, - {"totalNumberOfTubes",2272}, + {"zeros",2486}, {""}, {""}, - {"internalVersion",1006}, + {"zero",2485}, + {""}, {""}, {""}, {""}, + {"dirty_statistics",702}, {""}, {""}, - {"indexingDate",979}, + {"tubeNumber",2285}, {""}, {""}, {""}, {""}, - {"listOfModelIdentifiers",1143}, - {""}, - {"versionNumOfFilesFreeSpaceStorage",2401}, + {"internalVersion",1006}, {""}, {""}, {""}, {""}, {""}, - {"northLatitudeOfCluster",1367}, - {""}, - {"diagnosticNumber",692}, - {""}, - {"userTimeEnd",2376}, - {""}, {""}, - {"globalDomain",906}, + {"boustrophedonicOrdering",378}, + {"longitudeOfLastGridPoint",1197}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"observablePropertyTemplateNumber",1511}, {"angleSubdivisions",314}, - {""}, {""}, {""}, {""}, - {"secondsOfReference",2010}, {""}, - {"codedValues",559}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaleFactorAtReferencePoint",1916}, - {"TAF",234}, + {"periodOfTimeIntervals",1698}, + {"numberOfPartitions",1459}, + {"representationMode",1829}, + {""}, + {"NAT",174}, + {"clusterMember8",546}, + {"offsetAfterPadding",1526}, {""}, {""}, {""}, {""}, {""}, - {"roundedMarsLongitude",1856}, - {"numberOfReferencePeriodTimeRanges",1476}, - {""}, {""}, - {"totalNumberOfQuantiles",2269}, - {"gridPointPosition",923}, + {"codedValues",559}, {""}, {""}, {""}, {""}, {""}, - {"qnhPresent",1774}, + {"globalDomain",906}, + {"DyInDegrees",43}, {""}, {""}, - {"dataRepresentationTemplateNumber",640}, + {"DiInDegrees",32}, {""}, {""}, - {"correction1Part",612}, - {""}, {""}, {""}, {""}, {""}, - {"setCalendarId",2092}, - {"scaleFactorOfDistributionFunctionParameter",1920}, + {"thisMarsType",2225}, {""}, - {"orientationOfTheGrid",1580}, + {"productDefinitionTemplateNumber",1754}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"nosigPresent",1375}, + {""}, {""}, + {"unitsOfSecondFixedSurface",2354}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"longitudeOfFirstGridPoint",1193}, + {"tableNumber",2206}, {""}, {""}, {""}, - {"oneConstant",1559}, + {"baseAddress",333}, + {"corr1Data",606}, + {"isEps",1020}, + {""}, {""}, + {"expandedNames",788}, {""}, - {"gridDefinitionTemplateNumber",920}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"southLatitudeOfCluster",2127}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"timeIncrement",2245}, + {"theMessage",2221}, {""}, {""}, {""}, {""}, {""}, - {"roundedMarsLatitude",1854}, - {""}, {""}, {""}, - {"verticalDomainTemplateNumber",2411}, - {"floatValues",874}, - {"dataRepresentationType",641}, + {"localLongitude",1165}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section9Pointer",2055}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"iScansNegatively",964}, - {""}, {""}, - {"calendarIdPresent",384}, - {"scaleFactorOfRadiusOfSphericalEarth",1933}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"representativeMember",1832}, - {"section8Pointer",2052}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"westLongitudeOfCluster",2428}, + {"localMinute",1168}, + {""}, {""}, {""}, + {"typeOfPostProcessing",2306}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"memberNumber",1302}, + {"meanSize",1296}, + {"gridPointPosition",923}, + {""}, {""}, {""}, + {"correction3Part",616}, + {""}, + {"productDefinitionTemplateNumberInternal",1755}, + {""}, + {"oneMillionConstant",1560}, {""}, {""}, - {"numberOfIntegers",1440}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"horizontalCoordinateDefinition",943}, - {""}, {""}, {""}, {""}, {""}, - {"expandedDescriptors",787}, - {"tiggeCentre",2231}, - {"biFourierMakeTemplate",360}, + {"md5Structure",1290}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfTimeIncrementsOfForecastsUsedInLocalTime",1490}, + {"offsetAfterCentreLocalSection",1523}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"totalNumberOfdimensions",2275}, + {""}, {""}, {""}, + {"localMonth",1169}, {""}, {""}, {""}, {""}, - {"corr4Data",609}, - {"tablesVersion",2211}, - {""}, {""}, - {"decimalPrecision",670}, - {"localTimeMethod",1178}, + {"orientationOfTheGridInDegrees",1580}, {""}, {""}, {""}, - {"roundedMarsLevelist",1855}, + {"ensembleForecastNumbersList",773}, + {"secondOrderFlags",1996}, {""}, {""}, - {"ITN",92}, - {""}, {""}, {""}, - {"correction3Part",616}, + {"ensembleStandardDeviation",775}, + {"verticalDomainTemplateNumber",2410}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"monthOfForecastUsedInLocalTime",1340}, - {"g2grid",895}, - {"heightOrPressureOfLevel",940}, - {""}, {""}, - {"offsetAfterPadding",1526}, - {"horizontalCoordinateSupplement",944}, - {""}, - {"tileClassification",2239}, - {""}, - {"nosigPresent",1375}, - {"meaningOfVerticalCoordinate",1301}, - {""}, - {"totalNumberOfFrequencies",2266}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"thisMarsStream",2224}, {""}, {""}, {""}, - {"CDFstr",22}, - {"stringValues",2180}, + {"floatValues",874}, {""}, {""}, {""}, {""}, {""}, - {"userDateEnd",2372}, - {"dayOfReference",667}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"radialAngularSpacing",1781}, - {""}, {""}, - {"parameterIndicator",1679}, - {"iScansPositively",965}, - {"falseNorthing",850}, + {"clusterMember9",547}, + {"monthlyVerificationTime",1346}, + {""}, + {"datumSize",660}, {""}, {""}, {""}, {""}, - {"totalNumberOfDirections",2264}, - {""}, {""}, - {"targetCompressionRatio",2214}, + {"secondSize",1999}, + {""}, {""}, {""}, {""}, + {"radialAngularSpacing",1780}, {""}, - {"siteElevation",2109}, + {"clutterFilterIndicator",552}, {""}, - {"centuryOfReference",413}, - {""}, {""}, {""}, {""}, - {"groupSplittingMethodUsed",929}, + {"internationalDataSubCategory",1007}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"expandedNames",788}, + {"scaleFactorOfRadiusOfSphericalEarth",1932}, + {""}, {""}, {""}, + {"missingDataFlag",1320}, {""}, - {"longitudeOfStretchingPole",1205}, + {"angleMultiplier",310}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"marsEndStep",1234}, + {"totalNumberOfTubes",2271}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"indicatorOfUnitForTimeRange",988}, - {""}, {""}, {""}, {""}, - {"functionCode",891}, + {"spatialProcessing",2141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"calendarIdentification",385}, - {"offsetAfterLocalSection",1525}, + {""}, + {"spectralMode",2145}, + {""}, + {"firstSize",866}, + {"marsLamModel",1242}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"scaleFactorOfDistributionFunctionParameter",1919}, + {""}, {""}, + {"tableReference",2207}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dateOfForecastRun",652}, + {"spare4",2140}, + {"monthlyVerificationDate",1344}, + {""}, {""}, + {"operatingMode",1571}, + {"md5DataSection",1276}, + {""}, + {"numberOfReferencePeriodTimeRanges",1476}, {""}, {""}, {""}, {""}, {""}, - {"productDefinitionTemplateNumber",1755}, - {"latitudeOfStretchingPole",1090}, - {"latLonValues",1070}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfReservedBytes",1480}, + {""}, {""}, + {"localSectionPresent",1173}, + {""}, {""}, {""}, {""}, {""}, + {"md5TimeDomainSection",1291}, {""}, - {"_T",288}, + {"NP",187}, {""}, {""}, - {"is_uerra",1036}, + {"interpretationOfNumberOfPoints",1008}, {""}, {""}, {""}, {""}, - {"verticalCoordinate",2408}, + {"earthMinorAxis",723}, + {"localDefNumberOne",1153}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"conceptsMasterDir",574}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"isAccumulation",1010}, + {"unsignedIntegers",2360}, {""}, - {"spatialProcessing",2142}, - {"CDF",21}, - {""}, {""}, {""}, {""}, {""}, - {"md5Section9",1289}, + {"binaryScaleFactor",368}, + {"observationGeneratingProcessIdentifier",1513}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"section4",2032}, + {"timeIncrement",2244}, {""}, {""}, {""}, - {"NP",187}, + {"perturbationNumber",1699}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"stringValues",2179}, + {""}, {""}, {""}, + {"is_aerosol_optical",1029}, + {"longitudeOfCentrePointInDegrees",1189}, {""}, {""}, {""}, {""}, {""}, - {"perturbationNumber",1700}, + {"totalNumberOfDirections",2263}, {""}, {""}, - {"subCentre",2181}, + {"heightOrPressureOfLevel",940}, + {"falseNorthing",850}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"gridDefinitionTemplateNumber",920}, {""}, - {"corr3Data",608}, - {"_endStep",291}, - {"conceptsLocalDirECMF",572}, - {""}, {""}, - {"numberOfRemaininChars",1478}, - {"section0Pointer",2013}, - {"md5Section8",1288}, - {""}, {""}, {"levelValues",1126}, + {"indexTemplateNumber",977}, + {"addressOfFileFreeSpaceInfo",301}, + {"latitudeLastInDegrees",1073}, {""}, {""}, - {"numberOfMembersInCluster",1446}, + {"tiggeModel",2233}, {""}, - {"tableReference",2208}, - {"_anoffset",290}, + {"jdSelected",1053}, + {""}, {""}, + {"identificationNumber",967}, + {""}, {""}, {""}, + {"representativeMember",1831}, {""}, - {"extractSubset",833}, + {"dateOfForecastRun",652}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfRemaininChars",1478}, + {""}, {""}, + {"tablesVersion",2210}, + {"scanningMode",1977}, + {""}, {""}, {""}, + {"totalNumberOfFrequencies",2265}, + {"northLatitudeOfCluster",1367}, {""}, - {"tableCode",2206}, - {"corr2Data",607}, + {"scanningMode8",1982}, {""}, {""}, - {"productDefinitionTemplateNumberInternal",1756}, + {"clusterSize",549}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"localTimeMethod",1178}, {""}, {""}, - {"correction2Part",614}, + {"is_chemical_distfn",1031}, {""}, - {"calendarIdentificationTemplateNumber",386}, - {"sizeOfOffsets",2114}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cfVarName",418}, + {"totalNumberOfQuantiles",2268}, {""}, {""}, {""}, - {"monthlyVerificationTime",1346}, - {"userDateTimeEnd",2374}, + {"julianDay",1054}, + {""}, {""}, + {"diagnosticNumber",692}, + {"subcentreOfAnalysis",2192}, + {"bitmapPresent",371}, + {""}, {""}, + {"extractSubset",833}, + {""}, + {"LaDInDegrees",106}, {""}, {""}, {""}, - {"_TS",289}, + {"userTimeEnd",2375}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"latLonValues",1070}, {""}, - {"biFourierTruncationType",367}, + {"siteElevation",2108}, + {"earthIsOblate",720}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"centuryOfReferenceTimeOfData",414}, + {""}, + {"southLatitudeOfCluster",2126}, {""}, {""}, - {"faModelName",847}, - {"offsetAfterCentreLocalSection",1523}, - {""}, {""}, {""}, - {"II",88}, - {"numberInTheGridCoordinateList",1383}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"tablesMasterDir",2210}, - {"indicatorOfUnitForTimeRangeForReferencePeriod",989}, - {"tigge_name",2237}, + {"n3",1351}, + {"offsetSection10",1543}, + {"calendarIdPresent",384}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"plusOneinOrdersOfSPD",1707}, {""}, - {"parameterCategory",1676}, + {"truncateDegrees",2279}, + {"numberOfIterations",1442}, + {""}, + {"meaningOfVerticalCoordinate",1301}, + {"dx",718}, {""}, {""}, {""}, {""}, - {"md5Data",1275}, - {"orientationOfTheGridInDegrees",1581}, + {"roundedMarsLatitude",1853}, + {"grib3divider",911}, {""}, {""}, {""}, {""}, {""}, - {"numberOfModels",1452}, + {"max",1272}, {""}, - {"monthOfStartOfReferencePeriod",1343}, - {"is_aerosol",1028}, + {"cfVarName",418}, {""}, - {"productIdentifier",1757}, - {""}, {""}, {""}, {""}, - {"short_name",2102}, + {"userDateTimeEnd",2373}, + {"longitudeOfStretchingPole",1205}, {""}, - {"identificationNumber",967}, - {"section_8",2079}, - {"marsForecastMonth",1237}, + {"sp3",2133}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"xDirectionGridLength",2464}, + {"spare3",2139}, {""}, - {"minutesAfterDataCutoff",1318}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"plusOneinOrdersOfSPD",1708}, - {"longitudeFirstInDegrees",1185}, - {"efas_model",732}, - {"lengthIncrementForTheGroupLengths",1112}, - {""}, {""}, {""}, - {"correction4Part",618}, - {"cnmc_isac",554}, - {"localDefNumberOne",1153}, - {"streamOfAnalysis",2177}, - {"clusterIdentifier",537}, - {"indexTemplateNumber",977}, + {"userDateEnd",2371}, {""}, - {"accumulationInterval",294}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfFirstGridPointInDegrees",1194}, + {"endOfFileAddress",757}, {""}, {""}, {""}, {""}, - {"startStepInHours",2158}, - {"tablesVersionLatest",2212}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"observationGeneratingProcessIdentifier",1513}, - {""}, {""}, - {"iDirectionIncrementInDegrees",962}, + {"param_value_min",1673}, {""}, - {"gts_header",935}, - {""}, {""}, {""}, - {"baseAddress",333}, - {""}, {""}, - {"localSectionPresent",1173}, - {""}, {""}, {""}, - {"lengthOfMessage",1116}, + {"numberOfAnalysis",1387}, + {""}, {""}, {""}, {""}, {""}, + {"indicatorOfUnitForForecastTime",986}, {""}, {""}, {""}, {""}, - {"corr1Data",606}, - {"local_use",1182}, - {""}, {""}, {""}, - {"totalNumberOfRepetitions",2270}, + {"yearOfStartOfReferencePeriod",2484}, {""}, - {"DiInMetres",33}, - {"totalNumberOfTileAttributePairs",2271}, - {""}, {""}, {""}, {""}, {""}, - {"minuteOfAnalysis",1311}, + {"additionalFlagPresent",299}, + {""}, + {"monthOfStartOfReferencePeriod",1343}, + {""}, + {"eastLongitudeOfCluster",725}, {""}, {""}, - {"indicatorOfUnitForTimeIncrement",987}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"LyInMetres",154}, - {""}, {""}, {""}, {""}, - {"typeOfEnsembleForecast",2295}, + {"conceptsMasterDir",574}, {""}, {""}, {""}, {""}, {""}, {""}, - {"NAT",174}, + {"section2Present",2025}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"NFSP",181}, - {"cnmc_cmcc",553}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfCompressionUsed",2293}, - {"parameterNumber",1681}, - {"iterationNumber",1042}, - {""}, {""}, - {"dimensionNumber",696}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bitmapPresent",371}, - {""}, {""}, - {"defaultFaModelName",674}, - {"internationalDataSubCategory",1007}, - {""}, {""}, - {"latitudeOfFirstGridPoint",1078}, + {"grib2divider",910}, {""}, {""}, {""}, {""}, {""}, {""}, - {"partitionNumber",1686}, - {""}, {""}, - {"sensitiveAreaDomain",2089}, + {"biFourierTruncationType",367}, + {""}, {""}, {""}, + {"optimizeScaleFactor",1574}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"calendarIdentification",385}, {""}, {""}, {""}, {""}, - {"radiusInMetres",1784}, + {"NDSP",179}, + {""}, + {"roundedMarsLevelist",1854}, {""}, {""}, {""}, {""}, - {"endOfFileAddress",757}, + {"lsdate_bug",1223}, + {"conceptsLocalMarsDirAll",573}, + {""}, + {"directionScalingFactor",701}, + {""}, + {"startOfMessage",2154}, + {""}, {""}, {""}, {""}, + {"jdLocal",1052}, + {"lstime_bug",1224}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"n2",1350}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"NFSP",181}, {""}, {""}, {""}, - {"versionNumberOfGribLocalTables",2405}, + {"isConstant",1017}, {""}, - {"directionNumber",699}, - {""}, {""}, - {"originOfPostProcessing",1583}, - {""}, {""}, - {"typeOfPreProcessing",2308}, - {"monthlyVerificationDate",1344}, - {"thresholdIndicator",2230}, - {"unitsOfFirstFixedSurface",2354}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"defaultSequence",677}, + {""}, {""}, {""}, {""}, {""}, + {"horizontalCoordinateSupplement",944}, + {"totalNumberOfRepetitions",2269}, + {""}, {""}, {""}, {""}, + {"roundedMarsLongitude",1855}, + {"extraDimensionPresent",803}, + {""}, {""}, {""}, {""}, {""}, + {"parameterNumber",1680}, + {"iterationNumber",1042}, {""}, - {"verticalCoordinateDefinition",2409}, + {"sp2",2132}, + {"dimensionNumber",696}, + {"horizontalCoordinateDefinition",943}, {""}, - {"is_chemical",1030}, + {"unitsOfFirstFixedSurface",2353}, + {"Dx",39}, + {""}, {""}, {""}, {""}, {""}, + {"spare2",2138}, + {"secondsOfAnalysis",2008}, + {"parameterIndicator",1678}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"md5Product",1279}, {""}, - {"md5Structure",1290}, - {""}, {""}, {""}, {""}, - {"totalNumberOfForecastProbabilities",2265}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"complexPacking",563}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"standardParallelInMicrodegrees",2152}, {"libraryVersion",1131}, + {""}, {""}, + {"partitionNumber",1685}, + {""}, {""}, {""}, {""}, {""}, + {"marsClass",1229}, + {"originatingCentre",1586}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"scaledFrequencies",1946}, + {"listOfModelIdentifiers",1143}, + {"latitudeOfStretchingPole",1090}, + {"directionNumber",699}, {""}, - {"numberOfDataMatrices",1411}, - {"numberOfVerticalPoints",1503}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"yearOfStartOfReferencePeriod",2485}, - {""}, {""}, {""}, - {"is_localtime",1033}, + {"startStepInHours",2157}, {""}, {""}, {""}, {""}, {""}, - {"classOfAnalysis",433}, + {"centuryOfAnalysis",412}, + {"dummy2",716}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"accumulationInterval",294}, + {"projectLocalTemplate",1762}, + {"productIdentifier",1756}, + {"westLongitudeOfCluster",2427}, {""}, - {"satelliteNumber",1914}, - {"NDSP",179}, + {"hourOfStartOfReferencePeriod",955}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfInts",1441}, + {"calendarIdentificationTemplateNumber",386}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfVerticalCoordinateValues",1501}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"DyInMetres",44}, + {"marsForecastMonth",1237}, {""}, {""}, {""}, {""}, {""}, {""}, - {"hourOfStartOfReferencePeriod",955}, - {""}, - {"section_09",2069}, + {"clusterIdentifier",537}, + {""}, {""}, + {"laplacianScalingFactor",1066}, + {""}, {""}, {""}, {""}, {""}, + {"correction4Part",618}, + {""}, {""}, {""}, {""}, {""}, + {"reserved3",1835}, + {""}, {""}, {""}, {""}, + {"marsType2",1258}, {""}, - {"extractedDateTimeNumberOfSubsets",838}, + {"offsetSection4",1547}, {""}, {""}, - {"bufrDataEncoded",379}, + {"satelliteNumber",1913}, + {""}, {""}, {""}, {""}, + {"postAuxiliary",1709}, + {""}, {""}, {""}, {""}, {""}, + {"ITN",92}, + {""}, {""}, + {"matchAerosolPacking",1266}, {""}, - {"numberOfPoints",1460}, + {"julianForecastDay",1055}, + {""}, {""}, {""}, {""}, {""}, + {"Lx",151}, {""}, - {"md5TimeDomainSection",1291}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"monthOfAnalysis",1337}, + {"projString",1760}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"faModelName",847}, + {"numberOfPoints",1460}, {""}, - {"longitudeOfLastGridPointInDegrees",1198}, + {"centralLongitude",401}, {""}, - {"numberOfVerticalGridDescriptors",1502}, - {""}, {""}, {""}, - {"dx",718}, - {"dataCategory",632}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dayOfAnalysis",662}, - {"max",1272}, + {"oneConstant",1559}, {""}, {""}, - {"section_08",2068}, + {"typeOfEnsembleForecast",2294}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"complexPacking",563}, {""}, - {"extractSubsetList",836}, - {""}, - {"forecastProbabilityNumber",881}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"listMembersUsed",1136}, - {"tablesVersionLatestOfficial",2213}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfMembersInEnsemble",1447}, + {"biFourierMakeTemplate",360}, + {""}, {""}, {""}, + {"typeOfPreProcessing",2307}, {""}, {""}, - {"centuryOfReferenceTimeOfData",414}, + {"modelVersionTime",1334}, + {""}, {""}, {""}, {""}, {""}, + {"tablesMasterDir",2209}, {""}, {""}, {""}, - {"numberOfChars",1398}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfSecondSize",1966}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"windSpeedTrend4",2450}, + {""}, {""}, {""}, {""}, {""}, + {"iScansPositively",965}, {""}, - {"numberOfMissing",1448}, + {"Lcx",118}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"normAtInitialTime",1365}, + {""}, {""}, + {"Lux",147}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"identificationOfProject",969}, {""}, {""}, - {"scanningModeForOneDiamond",1984}, + {"minutesAfterReferenceTimeOfDataCutoff",1319}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isotopeIdentificationNumber",1040}, + {"parameterCode",1676}, {""}, - {"scaleFactorOfLowerLimit",1928}, + {"windVariableDirection",2456}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"tablesVersionLatest",2211}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"default_max_val",681}, {""}, {""}, - {"bitMapIndicator",369}, + {"easternLongitudeOfDomain",728}, + {"tigge_short_name",2237}, + {""}, {""}, {""}, {""}, {""}, + {"reserved2",1834}, + {"modelVersionDate",1333}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"implementationDateOfModelCycle",974}, - {"Lx",151}, + {"windDirectionTrend4",2439}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"La2",103}, + {"extractedDateTimeNumberOfSubsets",838}, + {"Lar2",111}, {""}, {""}, - {"md5DataSection",1276}, + {"iScansNegatively",964}, + {"thresholdIndicator",2229}, {""}, {""}, {""}, {""}, {""}, {""}, - {"xDirectionGridLength",2465}, + {"groupSplittingMethodUsed",929}, {""}, - {"numberOfLevelValues",1443}, + {"Lo2",125}, + {""}, + {"Lor2",145}, + {"Latin2",116}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"CDFstr",22}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isEPS",1019}, - {""}, {""}, - {"LcyInMetres",121}, - {""}, {""}, {""}, - {"dateOfAnalysis",650}, + {"totalNumberOfTileAttributePairs",2270}, + {""}, + {"predefined_grid",1717}, {""}, {""}, {""}, - {"biFourierCoefficients",359}, + {"originatingClass",1588}, + {""}, {""}, {""}, {""}, + {"tileClassification",2238}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"boot_edition",375}, + {""}, {""}, {""}, {""}, + {"section4Padding",2034}, {""}, {""}, - {"LuyInMetres",150}, - {"nameOfFirstFixedSurface",1356}, + {"scaledValueOfSecondSize",1965}, {""}, {""}, - {"timeOfAnalysis",2247}, - {""}, - {"normAtInitialTime",1365}, + {"significanceOfReferenceDateAndTime",2103}, + {"monthOfForecastUsedInLocalTime",1340}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"jdSelected",1053}, - {"Lcx",118}, - {""}, {""}, - {"timeRangeIndicator",2252}, - {""}, {""}, {""}, {""}, - {"windVariableDirection",2457}, {""}, {""}, - {"Lux",147}, + {"centralLongitudeInDegrees",402}, + {"preProcessingParameter",1714}, + {""}, {""}, {""}, {""}, {""}, + {"scaledValueOfFirstSize",1954}, + {""}, + {"versionNumberOfGribLocalTables",2404}, {""}, {""}, - {"M",155}, - {""}, {""}, {""}, {""}, - {"originalParameterTableNumber",1585}, - {"operationalForecastCluster",1573}, + {"numberOfVerticalPoints",1503}, {""}, {""}, {""}, - {"scaledValueOfFirstSize",1955}, - {""}, {""}, {""}, {""}, {""}, - {"defaultSequence",677}, - {"extraDimensionPresent",803}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractSubsetList",836}, + {"section10Pointer",2015}, {""}, {""}, {""}, {""}, {""}, - {"numberOfModeOfDistribution",1451}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"totalNumberOfIterations",2268}, - {"localDefNumberTwo",1154}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"northernLatitudeOfClusterDomain",1373}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"projString",1761}, + {"section4Pointer",2035}, + {"offsetSection3",1546}, {""}, - {"totalInitialConditions",2259}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"yDirectionGridLengthInMetres",2473}, - {"numberOfAnalysis",1387}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfDistinctSection4s",1419}, + {"conceptsLocalDirECMF",572}, + {"forecastProbabilityNumber",881}, {""}, - {"jdLocal",1052}, - {""}, {""}, {""}, {""}, - {"Dx",39}, - {"kurt",1060}, + {"scaledValueOfStandardDeviation",1967}, + {""}, {""}, + {"setCalendarId",2091}, + {"yDirectionGridLengthInMetres",2472}, {""}, - {"lengthOfIndexTemplate",1115}, + {"monthOfAnalysis",1337}, {""}, {""}, {""}, {""}, - {"is_aerosol_optical",1029}, - {"lsdate_bug",1223}, - {""}, - {"scaledValueOfStandardDeviation",1968}, + {"classOfAnalysis",433}, + {"scaledValueOfStandardDeviationInTheCluster",1968}, + {"local_padding",1181}, {""}, {""}, {""}, {""}, - {"numberOfMissingInStatisticalProcess",1449}, + {"originOfPostProcessing",1582}, + {"numberOfVerticalCoordinateValues",1501}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"versionNumOfRootGroupSymbolTableEntry",2401}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"westernLongitudeOfDomain",2430}, {""}, - {"numberOfCharacters",1397}, + {"messageLength",1303}, + {"iDirectionIncrementInDegrees",962}, + {""}, {""}, {""}, + {"centreForTable2",407}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"verticalCoordinate",2407}, + {"numberOfDataPoints",1412}, + {"paleontologicalOffset",1667}, + {""}, {""}, + {"extractAreaWestLongitude",812}, {""}, - {"lstime_bug",1224}, - {"centralClusterDefinition",400}, + {"numberOfIntegers",1440}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"windSpeedTrend3",2449}, {""}, - {"scaledValueOfStandardDeviationInTheCluster",1969}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"southernLatitudeOfClusterDomain",2130}, - {""}, {""}, {""}, {""}, {""}, - {"DxInDegrees",40}, + {"numberOfVerticalGridDescriptors",1502}, + {""}, {""}, {""}, + {"coordinate1Start",591}, + {"totalNumberOfForecastProbabilities",2264}, {""}, {""}, {""}, - {"originatingCentre",1587}, - {""}, {""}, {"coordinate1Flag",590}, {""}, {""}, {""}, - {"directionScalingFactor",701}, - {""}, {""}, - {"kurtosis",1061}, - {"yearOfAnalysis",2478}, - {"listOfContributingSpectralBands",1140}, - {"modelVersionTime",1334}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"projectLocalTemplate",1763}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfSecondFixedSurface",1965}, + {"indicatorOfUnitForTimeRange",988}, + {""}, + {"section3Padding",2029}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"sizeOfOffsets",2113}, + {""}, {""}, {""}, + {"targetCompressionRatio",2213}, + {"projectionCenterFlag",1764}, + {"startOfRange",2155}, + {"latitudeOfFirstGridPoint",1078}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfAnalysis",2290}, - {"sfc_levtype",2096}, + {"CDF",21}, + {"verticalVisibility",2411}, + {"level_value_list",1127}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"parameterCategory",1675}, {""}, {""}, {""}, - {"typeOfFirstFixedSurface",2297}, - {"numberOfOctectsForNumberOfPoints",1453}, + {"isHindcast",1022}, + {""}, {""}, + {"runwaySideCodeState4",1907}, + {""}, {""}, + {"section3Pointer",2030}, + {""}, {""}, + {"numberOfDistinctSection3s",1418}, {""}, - {"isCorrection",1018}, - {""}, {""}, {""}, {""}, - {"stepRangeInHours",2170}, + {"longitudeFirstInDegrees",1185}, {""}, - {"grib3divider",911}, + {"standardParallelInMicrodegrees",2151}, {""}, {""}, {""}, {""}, {""}, - {"hourOfAnalysis",949}, - {"offsetSection10",1543}, - {""}, - {"numberOfCategories",1396}, - {""}, {""}, - {"groupInternalNodeK",925}, - {""}, {""}, {""}, - {"unitsBias",2347}, + {"projectionCentreFlag",1765}, {""}, {""}, {""}, - {"scaledFrequencies",1947}, - {"grib2divider",910}, - {""}, {""}, {""}, - {"verticalVisibility",2412}, - {""}, {""}, {""}, - {"rectimeMinute",1811}, - {"numberOfEffectiveValues",1426}, - {"numberOfDataPoints",1412}, - {"scaledValueOfFirstFixedSurface",1954}, - {""}, - {"yDirectionGridLengthInMillimetres",2474}, + {"offsetSection2",1545}, {""}, {""}, {""}, {""}, - {"gridCoordinate",916}, - {""}, {""}, {""}, {""}, {""}, - {"preProcessingParameter",1715}, + {"windDirectionTrend3",2438}, + {""}, {""}, {""}, {""}, + {"runwayDepositState4",1867}, + {"yDirectionGridLengthInMillimetres",2473}, + {""}, {""}, {""}, + {"section2Padding",2023}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"matchAerosolPacking",1266}, - {"timeRangeIndicatorFromStepRange",2253}, - {"coordinate3OfLastGridPoint",597}, + {"numberOfLevelValues",1443}, + {"driverInformationBlockAddress",713}, + {"selectedMonth",2085}, {""}, - {"coordinateIndexNumber",603}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"referenceReflectivityForEchoTop",1822}, - {""}, {""}, {""}, {""}, + {"tsectionNumber4",2282}, + {"tiggeCentre",2230}, + {"bufrDataEncoded",379}, + {"coordinate3OfLastGridPoint",597}, + {""}, {""}, + {"isectionNumber4",1039}, + {""}, {""}, {"gridDescriptionSectionPresent",921}, - {"dirty_statistics",702}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"section4Padding",2035}, + {""}, + {"isEPS",1019}, + {"numberInTheGridCoordinateList",1383}, {""}, {""}, - {"truncateDegrees",2280}, - {"skewness",2118}, - {"coordinate3Flag",595}, - {"numberOfRows",1481}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"unitsConversionOffset",2348}, - {""}, {""}, {""}, - {"simpleThinningMissingRadius",2106}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"laplacianScalingFactor",1066}, + {"grib1divider",907}, {""}, {""}, {""}, - {"driverInformationBlockAddress",713}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"selectedMonth",2086}, + {"crraLocalVersion",626}, + {"dateOfAnalysis",650}, {""}, - {"keySat",1058}, - {"forecastMonth",876}, - {"latitudeOfStretchingPoleInDegrees",1091}, - {"localNumberOfObservations",1170}, + {"functionCode",891}, + {"yearOfAnalysis",2477}, + {""}, + {"g1conceptsMasterDir",894}, + {""}, {""}, {""}, {""}, + {"section2Pointer",2024}, + {"timeOfAnalysis",2246}, + {""}, {""}, + {"correction1",611}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"correction2",613}, {""}, {""}, {""}, - {"md5Product",1279}, + {"windSpeedTrend2",2448}, {""}, - {"codedNumberOfFirstOrderPackedValues",557}, - {""}, {""}, {""}, {""}, {""}, - {"unknown",2356}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"marsStream1",1254}, + {"typeOfCompressionUsed",2292}, {""}, - {"numberOfForecastsInCluster",1429}, - {""}, {""}, {""}, - {"latitudeOfSouthernPole",1088}, + {"typeOfAnalysis",2289}, + {"qnhAPresent",1772}, + {""}, {""}, + {"marsStream2",1255}, + {""}, {""}, + {"numberOfTimeIncrementsOfForecastsUsedInLocalTime",1490}, {""}, {""}, {""}, {""}, - {"referenceOfWidths",1820}, - {""}, {""}, {""}, - {"sampleSizeOfReferencePeriod",1911}, + {"numberOfDataMatrices",1411}, + {""}, {""}, {""}, {""}, + {"Nx",206}, + {"missing_values",1325}, {""}, {""}, - {"centralLongitude",401}, + {"forecastMonth",876}, + {"defaultFaModelName",674}, + {"numericValues",1509}, {""}, {""}, {""}, - {"grib1divider",907}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"is_chemical_distfn",1031}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"modelVersionDate",1333}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"crraLocalVersion",626}, - {""}, {""}, {""}, {""}, - {"predefined_grid",1718}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfPackedValues",1456}, + {"rectimeHour",1809}, + {"numberOfModels",1452}, + {""}, {""}, {""}, + {"lengthOfMessage",1116}, + {""}, + {"latitudeOfSouthernPole",1088}, + {"tablesVersionLatestOfficial",2212}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"listMembersMissing",1132}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"epsStatisticsContinous",779}, + {"verticalCoordinateDefinition",2408}, + {""}, + {"scaledValueOfFirstFixedSurface",1953}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"nameOfSecondFixedSurface",1357}, + {""}, + {"referenceReflectivityForEchoTop",1821}, + {"X2",268}, + {""}, {""}, + {"numberOfMembersInCluster",1446}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"identificationOfProject",969}, - {""}, {""}, {""}, {""}, {""}, - {"verificationMonth",2397}, - {"LoVInDegrees",129}, - {""}, {""}, {""}, - {"default_max_val",681}, - {"dayOfEndOfOverallTimeInterval",663}, - {""}, {""}, {""}, {""}, - {"originatingClass",1589}, + {""}, {""}, + {"Ncx",195}, {""}, {""}, {""}, - {"primaryBitmap",1743}, + {"windDirectionTrend2",2437}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Nux",204}, + {""}, {""}, + {"indicatorOfUnitForTimeRangeForReferencePeriod",989}, {""}, - {"skew",2117}, + {"subCentre",2180}, {""}, {""}, {""}, - {"param_value_min",1674}, - {""}, {""}, {""}, {""}, {""}, - {"longitudeOfFirstDiamondCentreLine",1191}, - {"longitudeOfFirstDiamondCenterLine",1190}, - {"upperThreshold",2370}, + {"stepRangeInHours",2169}, {""}, - {"numberOfDistributionFunctionParameters",1425}, - {"section3Padding",2030}, + {"Azi",15}, + {"waveFrequencyNumber",2424}, + {"DyInMetres",44}, + {""}, {""}, + {"DiInMetres",33}, + {""}, {""}, + {"localHour",1161}, + {"correction3",615}, + {""}, {""}, {""}, + {"nameOfSecondFixedSurface",1357}, {""}, - {"distanceFromTubeToEnsembleMean",705}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfFirstDiamondCentreLineInDegrees",1192}, + {"rectimeMinute",1810}, + {"tableCode",2205}, {""}, - {"projectionCenterFlag",1765}, - {"integerValues",1005}, + {"widthOfLengths",2432}, + {"extraValues",806}, + {""}, {""}, {""}, {""}, {""}, + {"scanningModeForOneDiamond",1983}, {""}, {""}, - {"coordinate2Flag",593}, - {""}, {""}, {""}, - {"LIMITS",98}, - {"section2Padding",2024}, - {"missingValue",1321}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"totalLength",2260}, - {"versionNumOfRootGroupSymbolTableEntry",2402}, - {""}, {""}, {""}, {""}, + {"patch_precip_fp",1692}, + {"default_step_units",683}, + {""}, {"PVPresent",216}, - {"legBaseTime",1108}, - {""}, {""}, {""}, {""}, - {"LoV",128}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typicalMinute",2329}, - {"numericValues",1509}, - {"numberOfForecastsInTheCluster",1431}, + {"productionStatusOfProcessedData",1758}, + {"typicalHour",2327}, {""}, {""}, {""}, {""}, - {"keyData",1056}, - {"g1conceptsMasterDir",894}, - {"rangeBinSpacing",1789}, + {"secondDimensionCoordinateValueDefinition",1987}, + {""}, + {"typeOfSecondFixedSurface",2312}, {""}, {""}, {""}, {""}, - {"longitudeOfStretchingPoleInDegrees",1206}, + {"scaledValueOfSecondFixedSurface",1964}, + {"coordinateIndexNumber",603}, {""}, {""}, {""}, {""}, {""}, {""}, - {"XRInMetres",271}, - {"significanceOfReferenceDateAndTime",2104}, - {""}, {""}, - {"coordinate4OfLastGridPoint",600}, + {"N2",173}, {""}, {""}, {""}, {""}, {""}, - {"messageLength",1303}, + {"hourOfAnalysis",949}, + {""}, {""}, {""}, + {"integerValues",1005}, {""}, - {"easternLongitudeOfDomain",728}, + {"originalParameterTableNumber",1584}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"missingValue",1321}, + {"runwaySideCodeState3",1906}, + {""}, + {"projectLocalTemplateNumber",1763}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"extraValues",806}, - {""}, {""}, {""}, - {"coordinate4Flag",598}, - {"tigge_short_name",2238}, + {"DxInDegrees",40}, + {"timeRangeIndicator",2251}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"consensusCount",577}, - {""}, {""}, {""}, - {"isHindcast",1022}, - {"minutesAfterReferenceTimeOfDataCutoff",1319}, - {"projectionCentreFlag",1766}, - {""}, {""}, {""}, {""}, - {"verifyingMonth",2399}, + {"verificationMonth",2396}, + {"typeOfAuxiliaryInformation",2290}, {""}, {""}, - {"longitudeOfNorthWestCornerOfArea",1199}, - {"latitudeOfFirstGridPointInDegrees",1079}, - {"Nx",206}, + {"localDefNumberTwo",1154}, + {""}, + {"dayOfEndOfOverallTimeInterval",663}, + {"runwayDepositState3",1866}, + {""}, + {"listMembersUsed",1136}, {""}, {""}, - {"Azi",15}, - {"halfByte",936}, - {"latitudeOfCentralPointInClusterDomain",1075}, - {"scaleFactorOfPrimeMeridianOffset",1932}, + {"isotopeIdentificationNumber",1040}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"typicalMinute",2328}, + {""}, + {"sectionLengthLimitForEnsembles",2056}, {""}, {""}, - {"julianDay",1054}, + {"tsectionNumber3",2281}, {""}, {""}, {""}, {""}, {""}, - {"Yo",283}, - {""}, {""}, {""}, {""}, - {"section2Present",2026}, + {"isectionNumber3",1038}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"longitudeOfLastGridPointInDegrees",1198}, + {""}, {""}, {""}, + {"LyInMetres",154}, + {"simpleThinningMissingRadius",2105}, + {""}, {""}, {""}, {""}, {""}, + {"conceptsDir1",569}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"conceptsDir2",570}, {""}, - {"groupWidth",930}, - {"productionStatusOfProcessedData",1759}, - {"originatorLocalTemplate",1590}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Yp",284}, - {"section1Padding",2021}, - {""}, {""}, {""}, {""}, - {"subSetM",2192}, + {"radiusInMetres",1783}, + {"twoOrdersOfSPD",2287}, + {"biFourierSubTruncationType",366}, + {""}, {""}, {""}, + {"is_ocean3d_param",1035}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfSecondFixedSurface",2313}, - {"scaleFactorOfDistanceFromEnsembleMean",1919}, - {"julianForecastDay",1055}, - {"extraLocalSectionPresent",805}, + {"sphericalHarmonics",2147}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"P2",213}, {""}, - {"lowerThreshold",1220}, - {"numberOfOctetsExtraDescriptors",1454}, - {"twoOrdersOfSPD",2288}, - {""}, {""}, - {"timeCoordinateDefinition",2242}, - {""}, {""}, - {"Ncx",195}, + {"typeOfIntervalForFirstAndSecondSize",2300}, {""}, - {"secondsOfAnalysis",2009}, + {"typeOfHorizontalLine",2299}, {""}, - {"centralLongitudeInDegrees",402}, - {""}, {""}, {""}, - {"rdbtimeMinute",1798}, - {""}, {""}, - {"Nux",204}, + {"constantFieldHalfByte",580}, + {""}, + {"scaleFactorOfAdditionalParameterForReferencePeriod",1916}, + {"verifyingMonth",2398}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"codedNumberOfFirstOrderPackedValues",557}, + {""}, + {"numberOfEffectiveValues",1426}, + {""}, {""}, {""}, {""}, {""}, + {"runwaySideCodeState2",1905}, + {"cloudsTitle1",517}, {""}, {""}, {""}, - {"packingType",1597}, - {"extractAreaWestLongitude",812}, - {"projectLocalTemplateNumber",1764}, + {"kurt",1060}, + {"presentTrend4",1724}, + {""}, + {"cloudsTitle2",522}, {""}, {""}, {""}, - {"averaging2Flag",326}, - {""}, {""}, - {"inputProcessIdentifier",996}, + {"is_ocean2d_param",1034}, {""}, {""}, {""}, {""}, - {"constituentType",581}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"gts_ddhh00",934}, + {"lengthIncrementForTheGroupLengths",1112}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Lar2InDegrees",112}, + {""}, {""}, {""}, + {"section_10",2070}, {""}, - {"typeOfCalendar",2292}, - {"timeDomainTemplate",2243}, + {"runwayDepositState2",1865}, {""}, - {"typeOfSizeInterval",2314}, + {"expandedAbbreviations",782}, {""}, {""}, - {"biFourierResolutionParameterN",363}, + {"endDayTrend1",738}, + {""}, {""}, + {"extraLocalSectionPresent",805}, + {"Lor2InDegrees",146}, + {""}, {""}, + {"endDayTrend2",739}, + {""}, {""}, + {"centralClusterDefinition",400}, {""}, - {"fileConsistencyFlags",856}, + {"default_min_val",682}, + {""}, {""}, {""}, {""}, {""}, + {"isectionNumber2",1037}, + {""}, {""}, {""}, {""}, {""}, + {"kurtosis",1061}, {""}, {""}, - {"extraLocalSectionNumber",804}, - {"aerosolbinnumber",304}, - {""}, {""}, {""}, - {"constituentTypeName",582}, - {""}, {""}, {""}, - {"rectimeHour",1810}, + {"section5",2037}, {""}, - {"climateDateTo",435}, + {"jIncrement",1048}, {""}, {""}, {""}, - {"groupLengths",927}, - {"latitudeOfIcosahedronPole",1081}, + {"sampleSizeOfReferencePeriod",1910}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"legBaseDate",1107}, + {"groupInternalNodeK",925}, + {"isCorrection",1018}, + {"typeOfIntervalForFirstAndSecondWavelength",2301}, + {""}, {""}, {""}, + {"aerosolbinnumber",304}, + {""}, {""}, + {"mars_labeling",1259}, + {""}, {""}, {""}, + {"implementationDateOfModelCycle",974}, + {"biFourierResolutionParameterN",363}, + {"keySat",1058}, + {""}, {""}, {""}, + {"extraLocalSectionNumber",804}, {""}, {""}, {""}, {""}, - {"isSatelliteType",1026}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"marsExpver",1236}, + {"totalNumberOfIterations",2267}, {""}, - {"expandedCodes",783}, - {""}, {""}, {""}, {""}, {""}, - {"secondaryBitmap",2002}, + {"numberOfDistributionFunctionParameters",1425}, {""}, - {"secondDimensionCoordinateValueDefinition",1988}, + {"M",155}, {""}, - {"groupWidths",931}, - {"biFourierSubTruncationType",366}, - {"offsetBSection9",1530}, - {"section10Pointer",2016}, + {"lengthOfTimeRange",1119}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsTitle3",527}, + {""}, + {"section5Pointer",2039}, + {"section8Length",2050}, + {""}, + {"numberOfDistinctSection5s",1420}, + {""}, + {"localNumberOfObservations",1170}, + {"LoV",128}, {""}, {""}, {""}, {""}, {""}, {""}, - {"westernLongitudeOfDomain",2431}, + {"keyData",1056}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"longitudeOfFirstGridPointInDegrees",1194}, + {""}, {""}, {""}, + {"skewness",2117}, + {"inputOriginatingCentre",994}, + {"northernLatitudeOfClusterDomain",1373}, + {""}, {""}, + {"endDayTrend3",740}, + {""}, + {"frequencyScalingFactor",890}, {""}, {""}, {""}, {""}, - {"BufrTemplate",19}, + {"scaleFactorOfDistanceFromEnsembleMean",1918}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfSubSatellitePoint",1207}, - {"jIncrement",1048}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"sectionLengthLimitForEnsembles",2057}, + {"numberOfPackedValues",1456}, + {"jDirectionIncrement",1044}, {""}, - {"instrumentType",1000}, - {"longitudeOfSubSatellitePointInDegrees",1208}, - {"typeOfIntervalForFirstAndSecondSize",2301}, + {"nameOfFirstFixedSurface",1356}, + {"spatialSmoothingOfProduct",2142}, {""}, {""}, - {"numberOfDistinctSection4s",1419}, - {"localHour",1161}, + {"marsExpver",1236}, + {"La2InDegrees",104}, + {""}, + {"section0Length",2011}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"selectedYear",2088}, - {"epsContinous",777}, - {""}, {""}, {""}, {""}, {""}, - {"secondaryBitmapPresent",2003}, + {"scaleFactorOfLowerLimit",1927}, {""}, {""}, {""}, {""}, - {"deleteExtraLocalSection",686}, - {"addExtraLocalSection",298}, - {"localYear",1180}, + {"Lo2InDegrees",126}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfFirstFixedSurface",2296}, + {"unknown",2355}, + {"coordinate2Start",594}, + {"section9Length",2053}, {""}, {""}, {""}, - {"startOfRange",2156}, + {"coordinate2Flag",593}, {""}, - {"averaging1Flag",325}, + {"cloudsTitle1Trend4",521}, + {"md5Section5",1285}, + {""}, + {"mAngleMultiplier",1226}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"listOfEnsembleForecastNumbers",1142}, + {"southernLatitudeOfClusterDomain",2129}, {""}, - {"biFourierResolutionSubSetParameterN",365}, - {""}, {""}, {""}, - {"radiusOfCentralCluster",1785}, - {"Lar2InDegrees",112}, + {"shapeOfVerificationArea",2097}, + {""}, {""}, {""}, {""}, {""}, + {"subDefinitions2",2182}, + {""}, {""}, + {"LcyInMetres",121}, {""}, {""}, {""}, {""}, {""}, {""}, - {"offsetBeforeData",1532}, - {""}, - {"tileIndex",2240}, + {"swapScanningLat",2197}, {""}, {""}, - {"parametersVersion",1684}, - {""}, - {"marsExperimentOffset",1235}, - {"Lor2InDegrees",146}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"paleontologicalOffset",1668}, + {"predefined_grid_values",1718}, + {"LuyInMetres",150}, {""}, {""}, {""}, {""}, - {"listOfParametersUsedForClustering",1144}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"swapScanningLon",2198}, {""}, - {"extractSubsetIntervalEnd",834}, + {"section10Length",2014}, + {"frequencyNumber",889}, + {"distinctLongitudes",707}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"startOfHeaders",2153}, + {""}, {""}, {""}, + {"timeRangeIndicatorFromStepRange",2252}, {""}, {""}, - {"numberOfForecastsInEnsemble",1430}, - {""}, - {"widthOfLengths",2433}, + {"presentTrend3",1723}, + {""}, {""}, {""}, + {"reservedSection2",1838}, + {""}, {""}, {""}, {""}, + {"section1Padding",2020}, + {""}, {""}, {""}, {""}, {""}, + {"AA",6}, + {""}, {""}, {""}, + {"coordinate4OfLastGridPoint",600}, + {"lengthOfIndexTemplate",1115}, {""}, {""}, - {"centuryOfAnalysis",412}, + {"indicatorOfUnitForTimeIncrement",987}, {""}, - {"qualityControl",1776}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"extractSubsetIntervalStart",835}, - {"directionOfVariation",700}, + {"skew",2116}, + {"table2Version",2204}, {""}, - {"percentileValue",1697}, + {"gridCoordinate",916}, + {"numberOfModeOfDistribution",1451}, + {"typeOfSizeInterval",2313}, + {"doSimpleThinning",711}, {""}, {""}, {""}, {""}, - {"attributeOfTile",322}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, + {"unitsConversionOffset",2347}, + {"correction4",617}, + {"section6Pointer",2043}, + {""}, {""}, {"numberOfDistinctSection6s",1421}, {""}, - {"typicalDateTime",2326}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"primaryMissingValue",1744}, - {"resolutionAndComponentFlags",1842}, - {""}, - {"mAngleMultiplier",1226}, - {""}, - {"centreLatitudeInDegrees",409}, - {""}, {""}, - {"numberOfValues",1500}, - {"secondOfModelVersion",1995}, - {""}, {""}, - {"minuteOfModelVersion",1315}, - {"La2InDegrees",104}, - {"typeOfOriginalFieldValues",2305}, - {""}, {""}, {""}, - {"numberOfComponents",1406}, + {"numberOfMissing",1448}, {""}, {""}, {""}, {""}, {""}, {""}, - {"referenceValueError",1826}, - {""}, - {"secondLatitudeInDegrees",1991}, - {"Lo2InDegrees",126}, - {""}, - {"typeOfIntervalForFirstAndSecondWavelength",2302}, - {""}, {""}, {""}, {""}, {""}, - {"LxInMetres",152}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Lar1InDegrees",110}, - {""}, {""}, - {"scaledValueOfDistributionFunctionParameter",1951}, - {"conceptsMasterMarsDir",575}, + {"section3Flags",2027}, + {"section1Pointer",2021}, {""}, {""}, {""}, {""}, {""}, - {"numberOfDistinctSection3s",1418}, + {"section_4",2074}, + {"inputProcessIdentifier",996}, + {"numberOfChars",1398}, + {"lengthOfTimeRangeForReferencePeriod",1120}, {""}, {""}, {""}, {""}, - {"Lor1InDegrees",144}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"startOfHeaders",2154}, - {""}, - {"SecondOfModelVersion",229}, - {"probContinous",1746}, - {"postAuxiliary",1710}, - {""}, - {"reservedNeedNotBePresent",1837}, - {""}, {""}, {""}, - {"typeOfHorizontalLine",2300}, - {"typicalHour",2328}, + {"marsExperimentOffset",1235}, {""}, {""}, {""}, {""}, - {"secondaryBitmaps",2004}, - {"sphericalHarmonics",2148}, - {"local_padding",1181}, - {""}, {""}, {""}, {""}, {""}, - {"stepForClustering",2166}, + {"cloudsTitle1Trend3",520}, {""}, {""}, {""}, {""}, - {"predefined_grid_values",1719}, - {"scaledValueOfRadiusOfSphericalEarth",1964}, - {""}, {""}, - {"typicalYear",2333}, + {"numberOfRows",1481}, + {"upperThreshold",2369}, + {""}, + {"realPartOf00",1803}, {""}, - {"waveFrequencyNumber",2425}, + {"expandedOriginalCodes",789}, + {""}, {""}, + {"expandedOriginalWidths",792}, + {"rdbtimeHour",1796}, {""}, {""}, {""}, {""}, - {"spare4",2141}, - {"primaryMissingValueSubstitute",1745}, - {""}, {""}, {""}, {""}, {""}, - {"coordinate1Start",591}, + {"deleteExtraLocalSection",686}, {""}, {""}, {""}, {""}, - {"earthMinorAxisInMetres",724}, + {"typeOfOriginalFieldValues",2304}, + {"numberInTheAuxiliaryArray",1382}, + {""}, + {"offsetAfterBitmap",1522}, + {"biFourierResolutionSubSetParameterN",365}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"timeCoordinateDefinition",2241}, {""}, {""}, - {"resolutionAndComponentFlags8",1849}, + {"averaging2Flag",326}, + {"scaledValueOfRadiusOfSphericalEarth",1963}, + {""}, {""}, {""}, + {"reservedSection3",1839}, + {"numberOfMembersInEnsemble",1447}, + {"section_04",2063}, + {""}, {""}, {""}, + {"coordinate3Flag",595}, + {"sp1",2131}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"doExtractDateTime",709}, {""}, - {"extremeClockwiseWindDirection",839}, - {"scaleFactorOfAdditionalParameterForReferencePeriod",1917}, + {"spare1",2137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"thisMarsClass",2224}, + {"latitudeLongitudeValues",1074}, + {"referenceOfWidths",1819}, + {"cloudsTitle1Trend2",519}, + {""}, {""}, {""}, + {"presentTrend2",1722}, + {"lengthOfOriginatorLocalTemplate",1117}, + {"scaleFactorOfPrimeMeridianOffset",1931}, + {"_leg_number",292}, + {""}, {""}, + {"expandedOriginalScales",791}, {""}, {""}, - {"secondaryBitmapsCount",2005}, + {"doExtractDateTime",709}, + {"shapeOfTheEarth",2096}, + {"scaledValueOfDistributionFunctionParameter",1950}, {""}, {""}, {""}, {""}, - {"La1InDegrees",102}, + {"section6",2041}, {""}, - {"boot_edition",375}, + {"rdbtimeMinute",1797}, {""}, {""}, {""}, {""}, {""}, - {"section4",2033}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"Lo1InDegrees",124}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"uerraLocalVersion",2338}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"lengthOfOriginatorLocalTemplate",1117}, - {"yCoordinateOfSubSatellitePoint",2471}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"numberOfDistinctSection5s",1420}, - {""}, {""}, - {"monthOfModelVersion",1341}, - {""}, - {"level_value_list",1127}, + {"numberOfTimeRange",1491}, {""}, - {"lengthOfHeaders",1114}, + {"epsStatisticsContinous",779}, + {"startingAzimuth",2159}, + {"dummy1",715}, + {""}, {""}, {""}, {""}, + {"listMembersMissing",1132}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"section1",2013}, {""}, {""}, {""}, {""}, - {"DxInMetres",41}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"rdbtimeHour",1797}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberInTheAuxiliaryArray",1382}, - {""}, {""}, {""}, - {"NV",192}, - {""}, {""}, {""}, {""}, {""}, - {"constantFieldHalfByte",580}, - {""}, - {"rdbtimeYear",1802}, - {""}, {""}, {""}, {"numberOfLogicals",1445}, - {"inputExtendedDelayedDescriptorReplicationFactor",993}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"md5Section6",1286}, + {""}, {""}, {""}, {""}, {""}, + {"extendedFlag",801}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfLengthOfSemiMinorAxis",1927}, - {""}, {""}, {""}, - {"frequencyNumber",889}, + {"bitMapIndicator",369}, {""}, {""}, - {"marsGrid",1238}, + {"tileIndex",2239}, + {"lowerThreshold",1220}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfCharacters",1397}, + {""}, {""}, + {"constituentType",581}, + {""}, {""}, + {"II",88}, {""}, - {"offsetAfterBitmap",1522}, + {"marsType1",1257}, + {""}, {""}, + {"distanceFromTubeToEnsembleMean",705}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"biFourierCoefficients",359}, {""}, {""}, {""}, - {"LLCOSP",99}, + {"offsetSection5",1548}, + {"packingType",1596}, + {""}, {""}, {""}, {""}, {""}, + {"quantileValue",1779}, + {""}, {""}, {""}, {""}, {""}, + {"ijDirectionIncrementGiven",973}, + {""}, {""}, {""}, {""}, {""}, + {"sectionLengthLimitForProbability",2057}, + {"expandedOriginalReferences",790}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfMissingInStatisticalProcess",1449}, + {""}, {""}, + {"numberOfValues",1500}, {""}, {""}, {""}, - {"totalNumberOfDataValuesMissingInStatisticalProcess",2263}, + {"qualityControl",1775}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"LoVInDegrees",129}, {""}, - {"numberOfDistinctSection7s",1422}, - {""}, - {"tiggeLocalVersion",2233}, - {""}, {""}, {""}, - {"lengthOfTimeRange",1119}, + {"lengthOfHeaders",1114}, {""}, {""}, {""}, - {"startingAzimuth",2160}, - {""}, {""}, - {"typeOfEnsembleMember",2296}, - {""}, {""}, - {"versionOfModelClimate",2407}, + {"timeDomainTemplate",2242}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"shortNameECMF",2100}, + {"NV",192}, + {"isSatelliteType",1026}, + {""}, + {"section_3",2073}, {""}, {""}, {""}, {""}, - {"variationOfVisibilityDirection",2385}, + {"consensusCount",577}, + {"climateDateTo",435}, + {"longitudeOfStretchingPoleInDegrees",1206}, {""}, {""}, {""}, {""}, {""}, - {"variationOfVisibilityDirectionAngle",2386}, - {"formatVersionMajorNumber",885}, - {""}, {""}, {""}, - {"masterTablesVersionNumber",1263}, - {""}, - {"numberOfColumns",1405}, - {"section4Pointer",2036}, - {""}, {""}, {""}, - {"expandedAbbreviations",782}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"firstOrderValues",865}, + {"windVariableDirectionTrend4",2460}, {""}, {""}, - {"backgroundProcess",331}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"Experiment_Identifier",55}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"GTSstr",79}, + {"typicalDateTime",2325}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"yearOfCentury",2479}, - {"LcxInMetres",119}, + {"selectedFcIndex",2082}, {""}, {""}, {""}, - {"typeOfAuxiliaryInformation",2291}, - {"selectedMinute",2085}, - {""}, - {"compressedData",565}, - {"missing_values",1325}, - {""}, {""}, - {"LuxInMetres",148}, + {"latitudeOfStretchingPoleInDegrees",1091}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfOctectsForNumberOfPoints",1453}, {""}, {""}, - {"secondOrderValuesDifferentWidths",1999}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"sampleSizeOfModelClimate",1910}, - {"typeOfWavePeriodInterval",2322}, + {"subLocalDefinition2",2184}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsTitle4",532}, + {""}, {""}, {""}, {""}, {""}, + {"inputExtendedDelayedDescriptorReplicationFactor",993}, + {""}, + {"referenceValueError",1825}, + {""}, + {"reserved1",1833}, + {"primaryMissingValue",1743}, + {""}, + {"section_03",2062}, + {"longitudeOfSubSatellitePoint",1207}, {""}, {""}, {""}, {""}, {""}, {""}, - {"deleteCalendarId",685}, + {"selectedMinute",2084}, + {""}, {""}, {""}, {""}, {""}, + {"longitudeOfSubSatellitePointInDegrees",1208}, {""}, {""}, - {"GTS",78}, + {"La1",101}, {""}, - {"offsetSection4",1547}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"qnhAPresent",1773}, - {""}, {""}, - {"variationOfVisibility",2384}, + {"Lar1",109}, + {""}, + {"endDayTrend4",741}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Lar1InDegrees",110}, + {""}, + {"basicAngleOfTheInitialProductionDomain",338}, + {""}, + {"Lo1",123}, + {""}, + {"Lor1",143}, + {"Latin1",114}, + {""}, + {"addExtraLocalSection",298}, + {""}, + {"clusterMember10",539}, {""}, {""}, {""}, - {"section6",2042}, - {""}, {""}, {""}, {""}, {""}, - {"masterTablesVersionNumberLatest",1264}, - {""}, {""}, {""}, {""}, {""}, - {"lengthOfTimeRangeForReferencePeriod",1120}, + {"Lor1InDegrees",144}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"yCoordinateOfOriginOfSectorImage",2470}, - {""}, {""}, - {"reducedGrid",1813}, - {"section6Pointer",2044}, + {""}, {""}, {""}, {""}, + {"reservedNeedNotBePresent",1836}, {""}, {""}, - {"coordinate2Start",594}, - {"n3",1351}, - {""}, {""}, {""}, - {"distinctLongitudes",707}, + {"groupWidth",930}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"constituentTypeName",582}, + {"totalLength",2259}, {""}, - {"numberOfBits",1388}, + {"typeOfCalendar",2291}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"updateSequenceNumber",2366}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"windVariableDirectionTrend3",2459}, + {"listOfContributingSpectralBands",1140}, + {""}, + {"section_2",2072}, + {"coordAveraging0",584}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typicalCentury",2324}, - {""}, {""}, {"monthlyVerificationMonth",1345}, - {"inputOriginatingCentre",994}, - {""}, {""}, {""}, - {"shapeOfVerificationArea",2098}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"sectionLengthLimitForProbability",2058}, - {""}, {""}, {""}, {""}, - {"mars_labeling",1259}, {""}, - {"sp3",2134}, - {""}, {""}, {""}, {""}, - {"n2",1350}, - {""}, {""}, {""}, {""}, - {"xDirectionGridLengthInMetres",2466}, - {"spare3",2140}, - {""}, {""}, {""}, {""}, - {"deletePV",688}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"gribDataQualityChecks",912}, - {""}, {""}, - {"section3Pointer",2031}, - {""}, {""}, {""}, - {"scaleFactorOfWaveDirections",1942}, - {"numberOfTimeRange",1491}, + {"marsGrid",1238}, + {"numberOfOctetsExtraDescriptors",1454}, {""}, {""}, - {"numberOfWaveFrequencies",1506}, + {"originatingCentreOfAnalysis",1587}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"operationalForecastCluster",1572}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"dataCategory",632}, + {""}, + {"_numberOfValues",293}, {""}, {""}, {""}, - {"windGust",2441}, + {"coordAveragingTims",588}, + {"numberOfCategories",1396}, {""}, - {"localFlagLatestVersion",1160}, - {"scaleFactorOfWaveDirectionSequenceParameter",1941}, - {"sp2",2133}, - {"marsStream1",1254}, + {"epsContinous",777}, {""}, {""}, {""}, - {"section2Pointer",2025}, + {"typicalCentury",2323}, + {""}, {""}, {""}, {""}, {""}, + {"section_02",2061}, + {""}, + {"extractSubsetIntervalEnd",834}, {""}, {""}, {""}, {""}, - {"numberOfDataValues",1414}, - {"spare2",2139}, + {"centreLatitudeInDegrees",409}, + {""}, {""}, + {"windVariableDirectionTrend2",2458}, + {"deletePV",688}, {""}, - {"originatorLocalTemplateNumber",1591}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfWaveFrequencies",1943}, + {"numberOfForecastsInCluster",1429}, {""}, {""}, - {"shapeOfTheEarth",2097}, + {"bufrHeaderCentre",380}, {""}, {""}, - {"longitudeOfCentralPointInClusterDomain",1187}, - {""}, - {"correction3",615}, - {""}, {""}, {""}, {""}, - {"spatialSmoothingOfProduct",2143}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"selectedFcIndex",2083}, - {"swapScanningLat",2198}, + {"extractSubsetIntervalStart",835}, + {"numberOfParallelsBetweenAPoleAndTheEquator",1457}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"secondLatitudeInDegrees",1990}, + {"primaryMissingValueSubstitute",1744}, + {""}, {""}, + {"La1InDegrees",102}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"swapScanningLon",2199}, + {"XRInMetres",271}, {""}, {""}, {""}, {""}, {""}, - {"correction1",611}, - {""}, - {"basicAngleOfTheInitialProductionDomain",338}, - {"flagForIrregularGridCoordinateList",869}, + {"Lo1InDegrees",124}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"expandedCodes",783}, {""}, - {"quantileValue",1780}, + {"listOfEnsembleForecastNumbers",1142}, {""}, {""}, {""}, {""}, - {"La2",103}, + {"scaleValuesBy",1944}, + {""}, {""}, {""}, + {"compressedData",565}, {""}, - {"Lar2",111}, - {""}, {""}, - {"selectStepTemplateInstant",2080}, + {"cloudsTitle2Trend4",526}, {""}, {""}, {""}, - {"timeDomainTemplateNumber",2244}, + {"DjInDegrees",36}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"groupWidths",931}, {""}, {""}, {""}, - {"monthOfEndOfOverallTimeInterval",1338}, - {"latitudeLongitudeValues",1074}, - {"Lo2",125}, + {"xDirectionGridLengthInMetres",2465}, + {"coordinate1End",589}, {""}, - {"Lor2",145}, - {"Latin2",116}, - {""}, {""}, - {"firstDimensionCoordinateValueDefinition",859}, + {"yearOfCentury",2478}, + {""}, {""}, {""}, {""}, + {"offsetSection6",1549}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"secondOrderOfDifferentWidth",1998}, - {"latitudeOfSouthernPoleInDegrees",1089}, + {"reservedSection4",1840}, + {""}, + {"monthOfModelVersion",1341}, + {"missingValuesPresent",1324}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"radiusOfCentralCluster",1784}, {""}, {""}, {""}, {""}, - {"biFourierResolutionParameterM",362}, - {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfSecondWavelength",1936}, + {"offsetSection1",1542}, {""}, - {"indicatorOfTypeOfLevel",985}, - {""}, {""}, - {"section10Length",2015}, - {""}, {""}, - {"table2Version",2205}, - {""}, {""}, - {"jDirectionIncrement",1044}, - {"xDirectionGridLengthInMillimetres",2467}, + {"shortNameECMF",2099}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"originatorLocalTemplate",1589}, + {"coordinateFlag2",602}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"correction4",617}, - {""}, - {"section5Pointer",2040}, - {""}, {""}, {""}, {""}, {""}, - {"section9Length",2054}, + {"conceptsMasterMarsDir",575}, {""}, {""}, - {"doSimpleThinning",711}, + {"gts_TTAAii",933}, {""}, {""}, - {"offsetSection6",1549}, + {"totalInitialConditions",2258}, + {""}, + {"numberOfAdditionalParametersForReferencePeriod",1386}, + {"scaleFactorOfLengthOfSemiMinorAxis",1926}, {""}, {""}, {""}, - {"bufrHeaderCentre",380}, + {"GTSstr",79}, + {""}, + {"numberOfDataValues",1414}, + {""}, + {"resolutionAndComponentFlags",1841}, + {"resolutionAndComponentFlags8",1848}, + {"section7Pointer",2047}, + {""}, + {"tsectionNumber5",2283}, + {"numberOfDistinctSection7s",1422}, + {"beginDayTrend4",342}, {""}, {""}, {""}, - {"section1Pointer",2022}, - {""}, {""}, - {"windSpeedTrend4",2451}, - {"numberOfRepresentativeMember",1479}, + {"stepUnits",2173}, + {""}, {""}, {""}, + {"secondOfModelVersion",1994}, {""}, {""}, - {"section8Length",2051}, - {""}, - {"typeOfGrid",2299}, + {"minuteOfModelVersion",1315}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"DjInDegrees",36}, + {"masterTablesVersionNumber",1263}, + {"stepHumanReadable",2166}, + {"windGust",2440}, + {""}, {""}, {""}, + {"clusterMember4",542}, + {""}, + {"windSpeedTrend1",2447}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cloudsTitle2Trend3",525}, + {""}, + {"totalNumberOfDataValuesMissingInStatisticalProcess",2262}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"endMinuteTrend4",752}, + {""}, + {"numberOfForecastsInEnsemble",1430}, + {""}, {""}, + {"md5Section10",1281}, {""}, {""}, {""}, {""}, - {"unitsConversionScaleFactor",2349}, - {"extendedFlag",801}, + {"yCoordinateOfSubSatellitePoint",2470}, + {""}, {""}, {""}, + {"longitudeOfNorthWestCornerOfArea",1199}, + {""}, {""}, {""}, + {"subSetM",2191}, + {""}, + {"numberOfForecastsInTheCluster",1431}, + {""}, {""}, + {"xDirectionGridLengthInMillimetres",2466}, + {""}, + {"averaging1Flag",325}, + {""}, {""}, + {"endOfMessage",760}, + {""}, {""}, + {"coordinate4Flag",598}, + {"md5Section7",1287}, {""}, {""}, {""}, {""}, {""}, - {"latitudeOfNorthWestCornerOfArea",1084}, - {"southEastLatitudeOfVerficationArea",2124}, + {"section1Flags",2018}, {""}, {""}, - {"missingValuesPresent",1324}, + {"grib2LocalSectionPresent",909}, + {"X1",266}, + {"extremeClockwiseWindDirection",839}, {""}, - {"frequencyScalingFactor",890}, - {"scaleValuesBy",1945}, - {"expandedOriginalCodes",789}, + {"cloudsTitle3Trend4",531}, + {"latitudeOfFirstGridPointInDegrees",1079}, + {"subLocalDefinitionLength2",2186}, {""}, {""}, - {"expandedOriginalWidths",792}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"marsStream2",1255}, + {"flagForIrregularGridCoordinateList",869}, {""}, - {"tiggeLAMName",2232}, - {"numberOfCoordinatesValues",1409}, + {"latitudeOfIcosahedronPole",1081}, + {""}, {""}, {""}, {""}, {""}, + {"cloudsTitle1Trend1",518}, {""}, {""}, - {"default_min_val",682}, + {"windDirectionTrend1",2436}, + {""}, {""}, + {"GTS",78}, + {"cloudsTitle2Trend2",524}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"indexedStorageInternalNodeK",978}, - {"section7Pointer",2048}, + {"formatVersionMajorNumber",885}, + {""}, {""}, + {"extractedAreaNumberOfSubsets",837}, {""}, - {"unpackedSubsetPrecision",2359}, - {"md5Section6",1286}, - {"scaleFactorOfWaveFrequencySequenceParameter",1944}, + {"stepForClustering",2165}, {""}, {""}, {""}, {""}, - {"secondOfEndOfOverallTimeInterval",1992}, + {"typeOfEnsembleMember",2295}, {""}, {""}, - {"minuteOfEndOfOverallTimeInterval",1312}, + {"SecondOfModelVersion",229}, {""}, {""}, {""}, {""}, - {"biFourierResolutionSubSetParameterM",364}, - {""}, {""}, {""}, {""}, {""}, - {"reserved3",1836}, + {"Dj",34}, + {""}, {""}, + {"reducedGrid",1812}, + {""}, + {"windUnits",2451}, + {"grib2LocalSectionNumber",908}, + {""}, {""}, {""}, + {"Experiment_Identifier",55}, + {""}, {""}, {""}, + {"firstMonthUsedToBuildClimateMonth2",864}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"dummy2",716}, + {""}, {""}, + {"wrongPadding",2461}, + {"selectedHour",2083}, + {""}, {""}, + {"secondaryMissingValue",2006}, {""}, - {"offsetBeforePL",1533}, + {"earthMajorAxis",721}, {""}, {""}, - {"yearOfEndOfOverallTimeInterval",2480}, - {""}, {""}, {""}, {""}, {""}, - {"correction2",613}, + {"typeOfGrid",2298}, + {"N1",172}, {""}, {""}, {""}, {""}, - {"expandedOriginalScales",791}, - {"numberOfWaveDirections",1505}, + {"marsKeywords1",1241}, + {""}, {""}, {""}, {""}, {""}, + {"groupLengths",927}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"P_INST",217}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"offsetSection3",1546}, - {"marsType2",1258}, - {""}, - {"numberOfDataBinsAlongRadials",1410}, - {"reserved2",1835}, - {""}, - {"NC",176}, + {"earthMinorAxisInMetres",724}, {""}, {""}, {"DiGiven",31}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsTitle3Trend3",530}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"DxInMetres",41}, {""}, - {"sp1",2132}, + {"bitsPerValue",373}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfComponents",1406}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"probContinous",1745}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"listOfParametersUsedForClustering",1144}, + {"beginDayTrend3",341}, + {""}, {""}, {""}, + {"matrixOfValues",1271}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"visibilityInKilometresTrend4",2417}, + {"padding_sec1_loc",1661}, + {""}, {""}, {""}, + {"attributeOfTile",322}, + {""}, {""}, {""}, {""}, + {"clusterMember3",541}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dayOfTheYearDate",669}, - {""}, - {"spare1",2138}, - {"rootGroupObjectHeaderAddress",1851}, + {"cloudsTitle3Trend2",529}, + {""}, {""}, {""}, + {"rootGroupObjectHeaderAddress",1850}, + {""}, {""}, + {"tiggeLAMName",2231}, {""}, {""}, {""}, {""}, {""}, - {"hourOfEndOfOverallTimeInterval",950}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section5",2038}, + {"endMinuteTrend3",751}, {""}, - {"expandedOriginalReferences",790}, - {"scaledValueOfLowerLimit",1959}, - {"offsetSection2",1545}, - {""}, {""}, {""}, - {"unstructuredGrid",2362}, + {"pressureUnits",1741}, + {"P1",212}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfCodedValues",1402}, - {""}, {""}, {""}, {""}, - {"centreForTable2",407}, - {""}, {""}, {""}, - {"definitionFilesVersion",684}, + {"localLatitude2",1164}, {""}, {""}, {""}, - {"localTablesVersion",1174}, + {"ls_labeling",1222}, + {"flagShowingPostAuxiliaryArrayInUse",871}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfParallelsBetweenAPoleAndTheEquator",1457}, + {"masterTablesVersionNumberLatest",1264}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section1",2014}, + {"runwaySideCodeState1",1904}, {""}, - {"southEastLatitudeOfLPOArea",2123}, - {"La1",101}, - {"unstructuredGridType",2364}, - {"Lar1",109}, - {""}, {""}, {""}, {""}, - {"totalNumberOfValuesInUnpackedSubset",2273}, + {"versionNumberOfExperimentalSuite",2403}, + {"swapScanningX",2199}, {""}, - {"endOfMessage",760}, - {"YR",279}, + {"indexedStorageInternalNodeK",978}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"biFourierResolutionParameterM",362}, {""}, {""}, {""}, - {"latitudinalDirectionGridLength",1104}, - {"Lo1",123}, - {"stepInHours",2168}, - {"Lor1",143}, - {"Latin1",114}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bitsPerValue",373}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfClusters",1401}, - {"cloudsTitle3",527}, + {"runwayDesignatorState4",1883}, + {""}, + {"LxInMetres",152}, + {""}, {""}, {""}, {""}, + {"southEastLatitudeOfLPOArea",2122}, + {""}, {""}, {""}, {""}, + {"runwayDepositState1",1864}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"southPoleOnProjectionPlane",2128}, + {"fileConsistencyFlags",856}, + {"scaleFactorOfWaveDirections",1941}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"tiggeSuiteID",2236}, - {"windDirectionTrend4",2440}, - {""}, {""}, {""}, - {"section0Length",2012}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"conceptsDir1",569}, + {""}, + {"scaleFactorOfWaveDirectionSequenceParameter",1940}, {""}, {""}, {""}, - {"cloudsTitle1",517}, + {"stepInHours",2167}, {""}, {""}, {""}, {""}, {""}, {""}, - {"clusterMember10",539}, - {""}, {""}, {""}, {""}, {""}, - {"keyMore",1057}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"diffInHours",694}, - {"rootTablesDir",1853}, - {"md5Section5",1285}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfFirstWavelength",1925}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"identificationOfOriginatingGeneratingCentre",968}, - {""}, {""}, {""}, - {"stepHumanReadable",2167}, - {""}, - {"earthMajorAxis",721}, - {"md5Section7",1287}, + {"beginDayTrend2",340}, {""}, {""}, - {"longitudeOfTangencyPoint",1209}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section7",2046}, - {""}, {""}, {""}, {""}, - {"cloudsTitle4",532}, + {"runwayFrictionCoefficientState4",1903}, {""}, - {"endDayTrend3",740}, - {"matrixOfValues",1271}, + {"scanningMode4",1978}, + {"offsetEndSection4",1536}, + {""}, {""}, {""}, + {"scaleFactorOfWaveFrequencySequenceParameter",1943}, + {"scaleFactorOfWaveFrequencies",1942}, + {""}, {""}, {""}, + {"latitudeOfSouthernPoleInDegrees",1089}, + {""}, {""}, {""}, + {"longitudeOfFirstDiamondCentreLine",1191}, + {"longitudeOfFirstDiamondCenterLine",1190}, + {""}, {""}, {""}, {""}, {""}, + {"section4Length",2033}, + {"clusterMember2",540}, {""}, {""}, {""}, {""}, {""}, - {"tablesLocalDir",2209}, + {"indicatorOfTypeOfLevel",985}, + {"longitudeOfFirstDiamondCentreLineInDegrees",1192}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"selectStepTemplateInterval",2081}, - {""}, - {"numberOfPointsInDomain",1471}, + {"endMinuteTrend2",750}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"numberOfAdditionalParametersForReferencePeriod",1386}, - {"tsectionNumber4",2283}, + {""}, {""}, {""}, {""}, + {"timeDomainTemplateNumber",2243}, {""}, - {"isRotatedGrid",1024}, - {"endDayTrend1",738}, - {""}, {""}, - {"isectionNumber4",1039}, - {""}, {""}, - {"updateSequenceNumber",2367}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dummy1",715}, - {""}, {""}, {""}, - {"runwaySideCodeState4",1908}, - {""}, {""}, - {"reservedSection3",1840}, + {"sampleSizeOfModelClimate",1909}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfThePoleOfStretching",1210}, - {""}, - {"windSpeedTrend3",2450}, - {"WMO",263}, + {"isRotatedGrid",1024}, {""}, {""}, {""}, {""}, - {"probabilityType",1749}, - {"_numberOfValues",293}, + {"md5Headers",1278}, {""}, - {"grib2LocalSectionPresent",909}, - {"marsType1",1257}, - {"offsetSection5",1548}, + {"runwayDesignatorState3",1882}, {""}, - {"reserved1",1834}, - {""}, {""}, {""}, {""}, - {"ijDirectionIncrementGiven",973}, - {"X2",268}, + {"latitudeOfCentralPointInClusterDomain",1075}, + {"flagForAnyFurtherInformation",868}, + {"windVariableDirectionTrend1",2457}, {""}, {""}, {""}, {""}, {""}, {""}, - {"gribTablesVersionNo",914}, - {""}, {""}, {""}, {""}, - {"longitudeOfTheSouthernPoleOfProjection",1213}, + {"localLongitude2",1167}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"probabilityTypeName",1750}, - {""}, {""}, - {"endDayTrend4",741}, - {""}, {""}, - {"firstDimensionPhysicalSignificance",860}, - {""}, {""}, - {"windSpeedTrend2",2449}, + {"maxLevelValue",1273}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"offsetSection1",1542}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"localExtensionPadding",1158}, + {"subLocalDefinitionNumber2",2188}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfDaysInClimateSamplingWindow",1415}, + {"typeOfWavePeriodInterval",2321}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"visibilityInKilometresTrend3",2416}, {""}, - {"numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction",1403}, - {"numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction",1404}, - {"conceptsDir2",570}, - {"grib2LocalSectionNumber",908}, - {""}, {""}, - {"cloudsTitle2",522}, - {""}, {""}, {""}, {""}, - {"expandBy",781}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"reservedSection4",1841}, - {""}, {""}, - {"sourceOfGridDefinition",2121}, + {"runwayFrictionCoefficientState3",1902}, + {""}, {""}, {""}, + {"secondOrderOfDifferentWidth",1997}, + {"Product_Identifier",220}, + {""}, {""}, {""}, + {"thisMarsClass",2223}, + {"jPointsAreConsecutive",1049}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"P_INST",217}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"preBitmapValues",1714}, - {""}, {""}, {""}, {""}, - {"centralLongitudeInMicrodegrees",403}, - {""}, {""}, - {"windVariableDirectionTrend4",2461}, - {""}, {""}, - {"firstMonthUsedToBuildClimateMonth2",864}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayFrictionCoefficientState4",1904}, - {""}, - {"numberIncludedInAverage",1384}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"versionNumberOfExperimentalSuite",2404}, - {""}, {""}, {""}, {""}, {""}, - {"missingValueManagement",1322}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"stepUnits",2174}, {""}, {""}, {""}, - {"verticalVisibilityCoded",2413}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"maxLevelValue",1273}, + {"section3Length",2028}, + {"doExtractArea",708}, {""}, - {"NrInRadiusOfEarthScaled",202}, - {"endDayTrend2",739}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"offsetSection7",1550}, - {""}, {""}, - {"TIDE",236}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"N2",173}, + {"runwayDesignatorState2",1881}, + {"section11Pointer",2017}, {""}, - {"jScansNegatively",1050}, - {"componentIndex",564}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"reservedSection2",1839}, + {"latitudeOfNorthWestCornerOfArea",1084}, + {"unitsBias",2346}, {""}, - {"secondaryMissingValue",2007}, + {"subDefinitions1",2181}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"coordinate2End",592}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"centralLongitudeInMicrodegrees",403}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepositState4",1868}, + {"diffInHours",694}, + {"numberOfRepresentativeMember",1479}, + {"runwayFrictionCoefficientState2",1901}, {""}, {""}, - {"extractedAreaNumberOfSubsets",837}, - {""}, - {"extractDateTimeYearStart",832}, - {""}, {""}, {""}, {""}, {""}, - {"flagForAnyFurtherInformation",868}, - {""}, - {"windDirectionTrend3",2439}, - {""}, - {"selectedHour",2084}, + {"primaryBitmap",1742}, + {"Yo",283}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"firstMonthUsedToBuildClimateMonth1",863}, - {""}, {""}, - {"baseTimeEPS",336}, - {"is_ocean3d_param",1035}, - {""}, {""}, - {"NrInRadiusOfEarth",201}, - {""}, {""}, - {"unstructuredGridSubtype",2363}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"is_ocean2d_param",1034}, + {"unpackedSubsetPrecision",2358}, + {"biFourierResolutionSubSetParameterM",364}, + {"backgroundProcess",331}, + {"meanRVR4",1295}, {""}, {""}, {""}, - {"windDirectionTrend2",2438}, - {""}, {""}, {""}, {""}, - {"X1",266}, - {"upperThresholdValue",2371}, + {"Yp",284}, + {"section2Length",2022}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"postAuxiliaryArrayPresent",1710}, {""}, {""}, {""}, - {"forecastOrSingularVectorNumber",877}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"verificationYear",2398}, + {"unstructuredGrid",2361}, {""}, {""}, {""}, {""}, {""}, - {"windVariableDirectionTrend3",2460}, - {""}, {""}, - {"windSpeedTrend1",2448}, + {"numberOfColumns",1405}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"normAtFinalTime",1364}, - {"jScansPositively",1051}, + {"numberOfPointsAlongXAxis",1467}, {""}, {""}, {""}, - {"runwayFrictionCoefficientState3",1903}, - {""}, {""}, - {"windUnits",2452}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"windVariableDirectionTrend2",2459}, + {"localExtensionPadding",1158}, + {""}, {""}, {""}, {""}, {""}, + {"LcxInMetres",119}, + {""}, {""}, {""}, + {"section_5",2075}, + {"startDateOfReferencePeriod",2152}, {""}, - {"latitudeOfSubSatellitePoint",1092}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayFrictionCoefficientState2",1902}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"Model_Identifier",168}, + {"visibilityInKilometresTrend2",2415}, + {"unstructuredGridType",2363}, {""}, {""}, - {"unpackedError",2358}, - {"tsectionNumber3",2282}, - {"secondaryBitMap",2001}, + {"LuxInMetres",148}, {""}, - {"wrongPadding",2462}, + {"Model_Additional_Information",167}, {""}, {""}, - {"isectionNumber3",1038}, - {"observationType",1514}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"P2",213}, + {"instrumentType",1000}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwaySideCodeState3",1907}, + {"numberOfWaveFrequencies",1506}, + {""}, {""}, {""}, {""}, + {"firstDimensionCoordinateValueDefinition",859}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"gribDataQualityChecks",912}, + {"md5Section1",1280}, + {""}, {""}, {""}, {""}, + {"southEastLatitudeOfVerficationArea",2123}, {""}, - {"packingError",1596}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"presentTrend4",1725}, - {"patch_precip_fp",1693}, - {"default_step_units",683}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"md5Section2",1282}, + {""}, {""}, {""}, {""}, + {"jScansPositively",1051}, + {"numberOfPointsInDomain",1471}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"rootTablesDir",1852}, + {"cloudsTitle4Trend4",536}, + {""}, {""}, {""}, {""}, + {"unitOfTimeRange",2344}, + {"section_05",2064}, {""}, {""}, - {"doExtractSubsets",710}, - {"isectionNumber2",1037}, - {""}, {""}, {""}, - {"extractDateTimeHourStart",819}, + {"numberOfWaveDirections",1505}, + {"Model_Identifier",168}, + {""}, {""}, {""}, {""}, + {"LIMITS",98}, + {"Nj",199}, + {""}, {""}, {""}, {""}, {""}, + {"presentTrend1",1721}, {""}, {""}, - {"remarkPresent",1828}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwaySideCodeState2",1906}, + {"cloudsTitle2Trend1",523}, + {""}, {""}, + {"section7",2045}, + {"scaledValueOfAdditionalParameterForReferencePeriod",1947}, + {""}, {""}, {""}, {""}, {""}, + {"halfByte",936}, + {"scaleFactorOfSecondWavelength",1935}, {""}, - {"subDefinitions2",2183}, + {"spaceUnitFlag",2134}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section3Flags",2028}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typicalMonth",2330}, - {"typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing",2319}, + {"parametersVersion",1683}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"selectedYear",2087}, + {""}, + {"componentIndex",564}, + {"unitsConversionScaleFactor",2348}, + {"latitudinalDirectionGridLength",1104}, {""}, {""}, - {"scaledValueOfPrimeMeridianOffset",1963}, - {"southEastLongitudeOfVerficationArea",2126}, - {"reflectivityCalibrationConstant",1827}, - {"gaussianGridName",896}, - {"formatVersionMinorNumber",886}, - {"xCoordinateOfSubSatellitePoint",2464}, - {""}, {""}, {""}, - {"experimentVersionNumber",795}, - {""}, {""}, {""}, - {"longitudeOfSouthEastCornerOfArea",1202}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"N1",172}, - {"GDSPresent",68}, + {"firstMonthUsedToBuildClimateMonth1",863}, {""}, {""}, {""}, {""}, - {"lowerThresholdValue",1221}, - {"coordAveragingTims",588}, + {"identificationOfOriginatingGeneratingCentre",968}, + {""}, + {"localYear",1180}, + {"jScansNegatively",1050}, + {""}, {""}, {""}, {""}, {""}, + {"param_value_max",1672}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"originatorLocalTemplateNumber",1590}, + {""}, {""}, {""}, {""}, + {"doExtractSubsets",710}, + {"md5Section3",1283}, + {""}, {""}, {""}, {""}, + {"typicalYear",2332}, + {""}, {""}, + {"monthOfEndOfOverallTimeInterval",1338}, + {""}, {""}, + {"HDF5str",81}, {""}, - {"windVariableDirectionTrend1",2458}, + {"normAtFinalTime",1364}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"baseDateEPS",334}, + {"yearOfEndOfOverallTimeInterval",2479}, {""}, - {"scaledValueOfDistanceFromEnsembleMean",1950}, + {"PUnset",215}, {""}, {""}, - {"numberOfClusterLowResolution",1400}, - {""}, - {"runwayFrictionCoefficientState1",1901}, + {"integerPointValues",1001}, {""}, {""}, - {"getNumberOfValues",903}, + {"LLCOSP",99}, + {"cloudsTitle4Trend3",535}, + {""}, {""}, {""}, + {"secondaryBitmap",2001}, {""}, - {"pressureUnits",1742}, + {"NUT",191}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"longitudeOfReferencePoint",1200}, + {""}, {""}, {""}, {""}, + {"meanRVR3",1294}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation4",452}, {""}, {""}, {""}, - {"numberOfBytesPerInteger",1395}, + {"percentileValue",1696}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section_10",2071}, + {"missingValueManagement",1322}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"cloudsTitle4Trend2",534}, + {""}, {""}, {""}, {""}, + {"cloudsTitle3Trend1",528}, {""}, {""}, {""}, - {"totalNumberOfWaveDirections",2274}, + {"scaledValueOfDistanceFromEnsembleMean",1949}, {""}, {""}, - {"satelliteID",1912}, - {""}, {""}, - {"originatingCentreOfAnalysis",1588}, - {""}, {""}, - {"spaceUnitFlag",2135}, + {"secondaryMissingValueSubstitute",2007}, {""}, - {"mBasicAngle",1227}, + {"tablesLocalDir",2208}, + {"jDirectionIncrementInDegrees",1047}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"unitOfTimeRange",2345}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberInMixedCoordinateDefinition",1381}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"totalNumberOfWaveFrequencies",2275}, + {"subLocalDefinition1",2183}, + {""}, {""}, {""}, + {"tiggeSuiteID",2235}, {""}, {""}, - {"crraSuiteID",628}, + {"scaledValueOfLowerLimit",1958}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"heightPressureEtcOfLevels",941}, + {"sourceOfGridDefinition",2120}, + {""}, {""}, {""}, {""}, + {"directionOfVariation",700}, {""}, - {"packedValues",1595}, - {"numberOfPointsAlongXAxis",1467}, + {"totalNumberOfValuesInUnpackedSubset",2272}, + {""}, {""}, {""}, {""}, + {"latitudeOfSubSatellitePoint",1092}, + {"endMonthTrend4",756}, {""}, {""}, - {"MinuteOfModelVersion",159}, + {"secondaryBitmapPresent",2002}, + {"GDSPresent",68}, + {"legBaseTime",1108}, + {""}, {""}, {""}, {""}, + {"remarkPresent",1827}, {""}, - {"dateOfModelVersion",655}, + {"yCoordinateOfOriginOfSectorImage",2469}, + {""}, {""}, {""}, + {"keyMore",1057}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"coordinateFlag2",602}, - {"timeOfModelVersion",2250}, - {""}, - {"windDirectionTrend1",2437}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"qnhUnits",1774}, {""}, {""}, - {"rdbtimeMonth",1799}, - {""}, {""}, {""}, {""}, - {"swapScanningX",2200}, + {"hourOfEndOfOverallTimeInterval",950}, + {""}, {""}, + {"meanRVR2",1293}, {""}, {""}, {""}, {""}, {""}, - {"section1Flags",2019}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"jDirectionIncrementInDegrees",1047}, - {""}, - {"typeOfReferenceDataset",2310}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"backgroundGeneratingProcessIdentifier",330}, + {"parameterUnits",1681}, + {""}, {""}, + {"qfeUnits",1770}, {""}, - {"oceanAtmosphereCoupling",1517}, - {""}, {""}, {""}, {""}, {""}, - {"longitudeOfThePolePoint",1211}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"DjInMetres",37}, + {"section_6",2076}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"runwayDepositState3",1867}, {"dateSSTFieldUsed",658}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"section_1",2069}, + {"inputShortDelayedDescriptorReplicationFactor",997}, + {""}, {""}, {""}, {""}, + {"offsetFromReferenceOfFirstTime",1539}, + {"legBaseDate",1107}, + {"typeOfReferenceDataset",2309}, + {"physicalFlag2",1703}, + {""}, {""}, + {"formatVersionMinorNumber",886}, + {"section5Length",2038}, + {"versionOfModelClimate",2406}, + {""}, {""}, {""}, {""}, + {"Latin2InDegrees",117}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeYearStart",832}, {""}, - {"localTablesVersionNumber",1175}, - {""}, - {"_leg_number",292}, + {"marsClass2",1231}, + {""}, {""}, {""}, {""}, + {"section_06",2065}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"secondaryBitmaps",2003}, {""}, {""}, {""}, {""}, {""}, - {"tsectionNumber5",2284}, - {""}, {""}, {""}, - {"sizeOfLength",2113}, + {"BufrTemplate",19}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"P1",212}, - {""}, {""}, {""}, - {"offsetEndSection4",1536}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"totalNumberOfClusters",2262}, + {"extractDateTimeHourStart",819}, + {""}, {""}, + {"endGridDefinition",743}, + {"section_01",2060}, + {"alternativeRowScanning",306}, + {""}, {""}, {""}, {""}, + {"longitudeOfTangencyPoint",1209}, + {""}, {""}, + {"scaleFactorOfFirstWavelength",1924}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepositState2",1866}, + {"deleteCalendarId",685}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"subLocalDefinition2",2185}, + {""}, + {"cloudsAbbreviation3",447}, + {"NrInRadiusOfEarthScaled",202}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"selectStepTemplateInstant",2079}, + {""}, {""}, {""}, {""}, + {"secondOfEndOfOverallTimeInterval",1991}, + {""}, {""}, + {"minuteOfEndOfOverallTimeInterval",1312}, + {"secondaryBitmapsCount",2004}, + {""}, {""}, {""}, {""}, {""}, + {"observationType",1514}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"baseTimeEPS",336}, + {""}, {""}, {""}, + {"firstDimensionPhysicalSignificance",860}, + {"NrInRadiusOfEarth",201}, + {"scaledValueOfPrimeMeridianOffset",1962}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfClusters",1401}, {""}, + {"runwayDesignatorState1",1880}, {"clusteringDomain",550}, {""}, {""}, - {"endOfHeadersMarker",758}, - {""}, - {"numberOfClusterHighResolution",1399}, + {"offsetSection7",1550}, + {""}, {""}, {""}, {""}, + {"variationOfVisibility",2383}, + {""}, {""}, {""}, {""}, + {"numberOfCoordinatesValues",1409}, {""}, - {"runwaySideCodeState1",1905}, - {"marsKeywords1",1241}, - {"subDefinitions1",2182}, - {""}, {""}, - {"numberOfBytesInLocalDefinition",1393}, - {""}, {""}, - {"longitudeOfReferencePoint",1200}, - {"xCoordinateOfOriginOfSectorImage",2463}, + {"DjInMetres",37}, {""}, {""}, {""}, {""}, {""}, {""}, - {"integerPointValues",1001}, - {""}, - {"easternLongitudeOfClusterDomain",727}, - {"azimuthalWidth",329}, + {"offsetBeforeData",1532}, {""}, {""}, {""}, - {"coordinate1End",589}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"latitudeOfTangencyPoint",1094}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeLastInDegrees",1186}, - {""}, {""}, {""}, {""}, - {"MonthOfModelVersion",170}, + {"southEastLongitudeOfVerficationArea",2125}, {""}, - {"doExtractArea",708}, + {"upperThresholdValue",2370}, {""}, {""}, {""}, - {"latitudeOfLastGridPoint",1082}, + {"uerraLocalVersion",2337}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"produceLargeConstantFields",1752}, - {""}, {""}, - {"deleteLocalDefinition",687}, - {"yearOfModelVersion",2483}, - {""}, {""}, {""}, {""}, - {"latitudeFirstInDegrees",1072}, + {"endOfHeadersMarker",758}, + {"endMonthTrend3",755}, {""}, - {"numberOfControlForecastTube",1408}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"rdb_key",1792}, + {"runwayFrictionCoefficientState1",1900}, {""}, {""}, {""}, - {"startDateOfReferencePeriod",2153}, - {""}, {""}, {""}, {""}, - {"northWestLatitudeOfVerficationArea",1370}, + {"coordinateFlag1",601}, + {""}, {""}, {""}, {""}, {""}, + {"section6Length",2042}, + {""}, {""}, {""}, {""}, {""}, + {"baseDateEPS",334}, {""}, {""}, {""}, - {"presentTrend3",1724}, + {"heightPressureEtcOfLevels",941}, + {""}, {""}, + {"section1Length",2019}, {""}, {""}, {""}, - {"cloudsTitle1Trend4",521}, + {"NRj",189}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"forecastOrSingularVectorNumber",877}, + {"swapScanningAlternativeRows",2196}, + {""}, + {"variationOfVisibilityDirection",2384}, {""}, {""}, {""}, {""}, - {"numberOfWaveFrequencySequenceParameters",1507}, - {""}, {""}, {""}, - {"secondaryMissingValueSubstitute",2008}, + {"cloudsAbbreviation2",442}, + {"variationOfVisibilityDirectionAngle",2385}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"oceanAtmosphereCoupling",1517}, {""}, {""}, - {"AA",6}, + {"easternLongitudeOfClusterDomain",727}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"clusterMember5",543}, + {""}, + {"gaussianGridName",896}, {""}, {""}, - {"hourOfModelVersion",953}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"tempPressureUnits",2215}, {""}, {""}, - {"endGridDefinition",743}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"secondaryBitmapsSize",2006}, + {"md5Section4",1284}, + {""}, {""}, + {"longitudeOfTheSouthernPoleOfProjection",1213}, + {""}, {""}, + {"falseEasting",849}, {""}, - {"presentTrend2",1723}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"kindOfProduct",1059}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"unstructuredGridSubtype",2362}, {""}, {""}, - {"matrixBitmapsPresent",1270}, - {"southPoleOnProjectionPlane",2129}, - {"Product_Identifier",220}, - {"coordinateFlag1",601}, + {"section11Length",2016}, + {""}, {""}, + {"offsetBSection9",1530}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfPointsAlongAMeridian",1461}, {""}, {""}, {""}, - {"timeIncrementBetweenSuccessiveFields",2246}, + {"rdbtimeYear",1801}, {""}, {""}, {""}, {""}, {""}, {""}, - {"inputShortDelayedDescriptorReplicationFactor",997}, + {"deleteLocalDefinition",687}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"lowerThresholdValue",1221}, + {""}, {""}, {""}, {""}, + {"subLocalDefinitionLength1",2185}, {""}, {""}, {""}, {""}, {""}, - {"INBITS",89}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"nameECMF",1354}, - {""}, {""}, {""}, - {"scaleFactorOfCentralWaveNumber",1918}, + {"firstOrderValues",865}, + {""}, + {"dateOfSSTFieldUsed",657}, + {""}, {""}, {""}, {""}, {""}, + {"endMonthTrend2",754}, {""}, {""}, {""}, + {"secondOrderValuesDifferentWidths",1998}, + {""}, {""}, {""}, {""}, + {"iDirectionIncrementGiven",960}, + {"addEmptySection2",297}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"bufrdcExpandedDescriptors",383}, {""}, {""}, {""}, {""}, - {"modelErrorType",1330}, + {"typeOfSSTFieldUsed",2311}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfAdditionalParameterForReferencePeriod",1948}, - {"section11Pointer",2018}, {""}, {""}, {""}, {""}, - {"dayOfModelVersion",666}, + {"produceLargeConstantFields",1751}, + {"packedValues",1594}, {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle3Trend4",531}, + {"scaleFactorOfUpperLimit",1938}, + {""}, {""}, {""}, {""}, + {"numberOfCodedValues",1402}, + {""}, {""}, + {"xCoordinateOfSubSatellitePoint",2463}, {""}, {""}, {""}, - {"westernLongitudeOfClusterDomain",2430}, + {"padding_local40_1",1658}, + {""}, {""}, + {"localUsePresent",1179}, {""}, - {"accuracyMultipliedByFactor",296}, - {""}, {""}, {""}, {""}, - {"mixedCoordinateFieldFlag",1327}, + {"typicalMonth",2329}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"dayOfForecastUsedInLocalTime",665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"matchAerosolBinNumber",1265}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"longitudeOfCentralPointInClusterDomain",1187}, {""}, - {"NUT",191}, + {"westernLongitudeOfClusterDomain",2429}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"METARstr",157}, + {""}, {""}, {""}, {""}, {""}, + {"dataSubCategory",644}, + {"dayOfTheYearDate",669}, {""}, - {"typeOfPacking",2306}, - {""}, {""}, {""}, - {"northWestLatitudeOfLPOArea",1369}, + {"expandedCrex_scales",784}, + {"numberOfPointsAlongSecondAxis",1464}, {""}, {""}, {""}, {""}, - {"runwayDepositState1",1865}, - {"realPartOf00",1804}, - {"cfVarNameECMF",419}, + {"verticalVisibilityCoded",2412}, {""}, {""}, - {"unitsECMF",2351}, - {""}, {""}, - {"iDirectionIncrementGiven",960}, - {""}, {""}, {""}, - {"subLocalDefinition1",2184}, - {""}, {""}, - {"subLocalDefinitionLength2",2187}, + {"rangeBinSpacing",1788}, + {"TIDE",236}, {""}, {""}, {""}, {""}, {""}, - {"md5Headers",1278}, - {"cavokOrVisibility",389}, - {""}, {""}, - {"coordAveraging0",584}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle1Trend3",520}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endMinuteTrend4",752}, - {""}, {""}, {""}, {""}, - {"offsetFromReferenceOfFirstTime",1539}, - {"nameLegacyECMF",1355}, + {"unpackedError",2357}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"unexpandedDescriptors",2339}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfProcessedData",2308}, + {""}, + {"latitudeOfLastGridPoint",1082}, {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle1Trend2",519}, - {"clusterMember4",542}, + {"longitudeOfThePoleOfStretching",1210}, + {""}, + {"satelliteID",1911}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"selectStepTemplateInterval",2080}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"qualityControlIndicator",1777}, - {""}, {""}, - {"scaledValueOfLengthOfSemiMinorAxis",1958}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"expandedCrex_units",785}, + {"cloudsTitle4Trend1",533}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfBytesOfFreeFormatData",1394}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"PUnset",215}, - {""}, {""}, {""}, {""}, - {"scanningMode4",1979}, {""}, {""}, {""}, {""}, - {"offsetValuesBy",1554}, - {""}, {""}, - {"coordinate2End",592}, - {""}, {""}, {""}, {"endStepInHours",764}, + {""}, {""}, + {"totalNumberOfWaveDirections",2273}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Dj",34}, - {""}, {""}, {""}, {""}, - {"numberOfWaveDirectionSequenceParameters",1504}, - {""}, - {"numberMissingFromAveragesOrAccumulations",1385}, - {""}, {""}, {""}, {""}, - {"referenceForGroupWidths",1818}, + {"localLatitude1",1163}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberIncludedInAverage",1384}, + {"unexpandedDescriptorsEncoded",2340}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfPointsAlongAParallel",1462}, {""}, {""}, {""}, - {"offsetICEFieldsUsed",1540}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"totalAerosolBinsNumbers",2258}, - {""}, - {"alternativeRowScanning",306}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"presentTrend1",1722}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfProcessedData",2309}, + {"WMO",263}, {""}, - {"cloudsTitle3Trend3",530}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"totalNumberOfWaveFrequencies",2274}, {""}, - {"cloudsTitle2Trend4",526}, - {"dataSubCategory",644}, - {"scaledValuesOfWaveFrequencies",1975}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"ls_labeling",1222}, - {"cloudsTitle3Trend2",529}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"unexpandedDescriptors",2340}, + {"offsetAfterData",1524}, + {"numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction",1403}, + {"numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction",1404}, {""}, - {"physicalMeaningOfVerticalCoordinate",1705}, - {"cloudsTitle1Trend1",518}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"expandedUnits",794}, + {""}, {""}, {""}, {""}, + {"numberMissingFromAveragesOrAccumulations",1385}, + {"YR",279}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"flagShowingPostAuxiliaryArrayInUse",871}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"METARstr",157}, - {""}, {""}, {""}, - {"Ensemble_Identifier",51}, - {""}, {""}, - {"DayOfModelVersion",29}, {""}, {""}, - {"extractDateTimeMinuteEnd",820}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"crraSuiteID",628}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeMinuteStart",822}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle4Trend4",536}, - {""}, {""}, {""}, - {"templatesMasterDir",2220}, + {"cloudsCode1",497}, + {""}, + {"referenceForGroupWidths",1817}, {""}, {""}, {""}, {""}, - {"unexpandedDescriptorsEncoded",2341}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode2",502}, {""}, {""}, {""}, {""}, {""}, - {"unstructuredGridUUID",2365}, - {""}, - {"dateOfSSTFieldUsed",657}, + {"Original_Parameter_Identifier",210}, + {"tiggeLocalVersion",2232}, {""}, - {"scaledValuesOfWaveDirections",1974}, - {""}, {""}, - {"iDirectionIncrementGridLength",961}, - {""}, {""}, - {"referenceForGroupLengths",1817}, - {""}, {""}, {""}, - {"subLocalDefinitionLength1",2186}, + {"runwayDepositCodeState4",1863}, {""}, {""}, - {"monthlyVerificationYear",1347}, + {"theHindcastMarsStream",2220}, {""}, {""}, {""}, {""}, - {"expandedCrex_scales",784}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Identifier",51}, {""}, - {"latitudeOfSubSatellitePointInDegrees",1093}, + {"beginDayTrend1",339}, {"clusterMember6",544}, - {""}, {""}, {""}, {""}, {""}, - {"variationOfVisibilityTrend4",2394}, - {""}, {""}, - {"cloudsTitle3Trend1",528}, + {""}, + {"NC",176}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeMonthEnd",823}, - {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfWaveDirectionSequenceParameter",1972}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeMonthStart",825}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"jPointsAreConsecutive",1049}, - {"scanningMode6",1981}, + {"scanningMode5",1979}, {""}, {""}, {""}, {""}, - {"expandedCrex_units",785}, - {""}, {""}, - {"cloudsTitle2Trend3",525}, - {""}, {""}, - {"codedNumberOfGroups",558}, + {"scaledValueOfLengthOfSemiMinorAxis",1957}, {"latitudeWhereDxAndDyAreSpecified",1100}, {""}, - {"mask",1260}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfSouthernPole",1203}, - {""}, {""}, {""}, - {"falseEasting",849}, + {"clusterMember1",538}, + {"packingError",1595}, + {"runwayDepthOfDepositCodeState4",1871}, {""}, {""}, + {"latitudeOfReferencePoint",1085}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Latin1InDegrees",115}, + {""}, {"latitudeWhereDxAndDyAreSpecifiedInDegrees",1101}, - {"cloudsTitle2Trend2",524}, - {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfUpperLimit",1939}, - {""}, {""}, {""}, - {"variationOfVisibilityDirectionTrend4",2390}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfContributingSpectralBands",1407}, - {""}, {""}, {""}, - {"HDF5str",81}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"qfeUnits",1771}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"************_PRODUCT_***************",3}, + {"endMinuteTrend1",749}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endMinuteTrend3",751}, - {""}, {""}, - {"section9UniqueIdentifier",2056}, + {"longitudeOfSouthEastCornerOfArea",1202}, {""}, {""}, {""}, {""}, {""}, - {"pack",1594}, - {"localLatitude2",1164}, - {""}, {""}, - {"clusterMember3",541}, - {""}, {""}, - {"scaledValueOfSecondWavelength",1967}, - {""}, {""}, {""}, - {"cloudsTitle4Trend3",535}, - {""}, {""}, {""}, - {"section8UniqueIdentifier",2053}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"uuidOfVGrid",2379}, + {"NC2",178}, + {"padding_loc9_2",1654}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle4Trend2",534}, - {"endMinuteTrend2",750}, - {"offsetFromOriginToInnerBound",1538}, {""}, - {"thisExperimentVersionNumber",2223}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"clusterMember2",540}, + {"listMembersMissing4",1135}, {""}, - {"dayOfForecastUsedInLocalTime",665}, + {"Date_E4",28}, + {"referenceForGroupLengths",1816}, + {""}, {""}, {""}, {""}, {""}, + {"nameLegacyECMF",1355}, {""}, - {"parameterUnits",1682}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"totalNumberOfGridPoints",2267}, + {"cavokOrVisibility",389}, + {""}, {""}, {""}, {""}, + {"numberOfWaveFrequencySequenceParameters",1507}, {""}, - {"offsetAfterData",1524}, + {"cloudsCode3",507}, + {""}, {""}, {""}, {""}, + {"localLongitude1",1166}, {""}, {""}, - {"typeOfSSTFieldUsed",2312}, - {""}, {""}, {""}, - {"unpack",2357}, - {"paramIdLegacyECMF",1672}, - {""}, {""}, {""}, {""}, {""}, - {"variationOfVisibilityTrend3",2393}, - {""}, {""}, {""}, - {"rdb_key",1793}, - {"Model_Additional_Information",167}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsTitle2Trend1",523}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfUnexpandedDescriptors",1493}, - {"variationOfVisibilityTrend2",2392}, + {"numberOfClusterHighResolution",1399}, {""}, {""}, - {"expandedCrex_widths",786}, - {"beginDayTrend4",342}, - {""}, - {"qnhUnits",1775}, + {"numberOfUsedTileAttributes",1496}, + {""}, {""}, {""}, {""}, + {"longitudeOfThePolePoint",1211}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"subLocalDefinitionNumber1",2187}, {""}, {"numberOfStepsUsedForClustering",1487}, - {""}, - {"numberOfPointsAlongXAxisInCouplingArea",1468}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"scaledValueOfWaveFrequencySequenceParameter",1973}, - {""}, - {"Latin2InDegrees",117}, - {""}, - {"numberOfGroups",1437}, - {"changeIndicatorTrend4",425}, + {""}, {""}, {""}, + {"iDirectionIncrementGridLength",961}, {""}, - {"numberOfUsedTileAttributes",1496}, + {"kindOfProduct",1059}, {""}, {""}, {""}, {""}, {""}, {""}, - {"subLocalDefinitionNumber2",2189}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"param_value_max",1673}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"indexingTimeMM",983}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"variationOfVisibilityDirectionTrend3",2389}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"gts_TTAAii",933}, - {""}, {""}, - {"Nj",199}, - {""}, {""}, - {"cloudsTitle4Trend1",533}, + {"cfVarNameECMF",419}, {""}, {""}, - {"variationOfVisibilityDirectionTrend2",2388}, - {""}, - {"numberOfUsedSpatialTiles",1495}, + {"numberOfWaveDirectionSequenceParameters",1504}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfTangencyPoint",1094}, {""}, {""}, {""}, {""}, - {"numberOfBitsForScaledGroupLengths",1390}, - {""}, {""}, {""}, {""}, {""}, - {"countOfICEFieldsUsed",621}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"northWestLongitudeOfVerficationArea",1372}, + {"localFlagLatestVersion",1160}, + {""}, {""}, + {"runwayDepthOfDepositCodeState3",1870}, {""}, {""}, {""}, {""}, {""}, {""}, - {"recentWeather",1806}, - {"unpackedValues",2360}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"localLongitude2",1167}, + {"section2Used",2026}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"tempPressureUnits",2216}, - {""}, - {"commonBlock",562}, - {"variationOfVisibilityTrend1",2391}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"section_4",2075}, - {""}, {""}, {""}, {""}, {""}, - {"typeOfWaveFrequencySequence",2321}, - {""}, - {"marsClass2",1231}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Latin1InDegrees",115}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section4Length",2034}, {""}, {""}, - {"cloudsCode3",507}, + {"numberOfClusterLowResolution",1400}, {""}, {""}, {""}, {""}, - {"WRAPstr",265}, - {""}, {""}, {""}, {""}, {""}, - {"localLatitude1",1163}, - {""}, {""}, {""}, - {"offsetBBitmap",1527}, - {"clusterMember5",543}, + {"Sub-Experiment_Identifier",233}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"expandedCrex_widths",786}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfPacking",2305}, {""}, {""}, {""}, {""}, {""}, - {"cloudsCode1",497}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"endMinuteTrend1",749}, - {""}, - {"variationOfVisibilityDirectionTrend1",2387}, - {""}, {""}, - {"changeIndicatorTrend3",424}, - {""}, {""}, - {"************_PRODUCT_***************",3}, - {""}, {""}, {""}, {""}, - {"clusterMember1",538}, - {""}, {""}, - {"section11Length",2017}, - {""}, {""}, {""}, {""}, - {"scanningMode5",1980}, - {""}, {""}, {""}, - {"visibilityInKilometresTrend4",2418}, - {"changeIndicatorTrend2",423}, - {""}, {""}, - {"localUsePresent",1179}, + {"expandBy",781}, + {""}, {""}, {""}, {""}, {""}, + {"section7Length",2046}, + {"totalNumberOfClusters",2261}, {""}, {""}, - {"numberOfMissingValues",1450}, - {""}, {""}, {""}, - {"extractAreaNorthLatitude",810}, - {""}, {""}, {""}, - {"scaledValueOfFirstWavelength",1956}, + {"section8UniqueIdentifier",2052}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"MonthOfModelVersion",170}, + {"runwayDepthOfDepositCodeState2",1869}, + {"extractDateTimeMinuteEnd",820}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"extractAreaEastLongitude",807}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeFirstInDegrees",1072}, + {"extractDateTimeMinuteStart",822}, + {"runwayDepositCodeState3",1862}, {""}, - {"theHindcastMarsStream",2221}, - {"cfNameECMF",416}, - {"cloudsCode4",512}, - {""}, {""}, {""}, {""}, {""}, - {"secondOfStartOfReferencePeriod",1996}, - {"YRInMetres",280}, - {""}, - {"minuteOfStartOfReferencePeriod",1317}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfUnexpandedDescriptors",1493}, + {"northWestLatitudeOfLPOArea",1369}, {""}, {""}, - {"METAR",156}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfUsedSpatialTiles",1495}, {""}, {""}, - {"section6Length",2043}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"secondOfStartOfReferencePeriod",1995}, {""}, {""}, - {"numberOfGridInReference",1435}, - {"subLocalDefinitionNumber1",2188}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"minuteOfStartOfReferencePeriod",1317}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"latitudeOfReferencePoint",1085}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"numberOfGroupsOfDataValues",1438}, + {"thisExperimentVersionNumber",2222}, {""}, {""}, - {"clusterMember7",545}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"postAuxiliaryArrayPresent",1711}, + {"extractDateTimeMonthEnd",823}, {""}, {""}, - {"section3Length",2029}, - {""}, - {"ceilingAndVisibilityOK",395}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfRadarSitesUsed",1474}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"changeIndicatorTrend1",422}, - {""}, {""}, {""}, {""}, {""}, - {"section2Length",2023}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"beginDayTrend3",341}, - {""}, {""}, {""}, {""}, - {"longitudeOfThePolePointInDegrees",1212}, - {"runwayFrictionCodeValueState4",1896}, - {"cloudsCode2",502}, - {"localLongitude1",1166}, - {""}, - {"scanningMode7",1982}, - {"section_6",2077}, - {""}, - {"ITERATOR",91}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"longitudeOfReferencePointInDegrees",1201}, - {""}, {""}, {""}, {""}, {""}, - {"firstLatitudeInDegrees",862}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"marsClass1",1230}, - {"numberOfDataPointsExpected",1413}, - {""}, - {"beginDayTrend2",340}, + {"visibilityInKilometresTrend1",2414}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"dateOfForecastUsedInLocalTime",653}, - {"md5Section3",1283}, - {"Sub-Experiment_Identifier",233}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"timeOfForecastUsedInLocalTime",2249}, - {""}, {""}, {""}, - {"section_04",2064}, + {"extractDateTimeMonthStart",825}, {""}, {""}, {""}, {""}, - {"expandedUnits",794}, - {""}, {""}, {""}, {""}, {""}, - {"offsetBeforeBitmap",1531}, - {""}, {""}, {""}, {""}, {""}, - {"md5Section1",1280}, + {"section9UniqueIdentifier",2055}, + {""}, {""}, {""}, + {"MinuteOfModelVersion",159}, + {"rdbtimeMonth",1798}, + {""}, {""}, {""}, + {"WRAPstr",265}, {""}, {""}, {""}, {""}, - {"numberOfPointsAlongAMeridian",1461}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"extractDateTimeStart",829}, + {"localTablesVersion",1174}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"pentagonalResolutionParameterK",1694}, {""}, {""}, {""}, {""}, - {"eastLongitudeOfDomainOfTubing",726}, + {"qualityControlIndicator",1776}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"METAR",156}, {""}, {""}, {""}, {""}, {""}, - {"runwayDesignatorState4",1884}, - {""}, - {"section5Length",2039}, + {"listMembersMissing3",1134}, {""}, - {"ZLMULT",287}, + {"Date_E3",27}, {""}, {""}, {""}, - {"extractDateTimeSecondEnd",826}, - {"runwayDepthOfDepositCodeState4",1872}, - {""}, {""}, {""}, {""}, {""}, - {"gribMasterTablesVersionNumber",913}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"section1Length",2020}, - {"dateOfIceFieldUsed",654}, - {""}, - {"extractDateTimeSecondStart",828}, - {""}, {""}, {""}, {""}, - {"numberOfSecondOrderPackedValues",1482}, - {""}, - {"section_3",2074}, - {""}, - {"latitudeOfLastGridPointInDegrees",1083}, - {""}, {""}, - {"md5Section4",1284}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"md5GridSection",1277}, - {""}, {""}, {""}, - {"numberOfPointsAlongSecondAxis",1464}, - {""}, - {"earthMajorAxisInMetres",722}, - {""}, {""}, {""}, {""}, {""}, - {"meanRVR4",1295}, - {""}, {""}, {""}, - {"section_2",2073}, - {""}, {""}, {""}, {""}, - {"northLatitudeOfDomainOfTubing",1368}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section7Length",2047}, - {""}, {""}, {""}, {""}, - {"runwayFrictionCodeValueState3",1895}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"scaleFactorOfLowerWavePeriodLimit",1929}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayFrictionCodeValueState2",1894}, - {""}, - {"scaleFactorOfMajorAxisOfOblateSpheroidEarth",1930}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"visibilityInKilometresTrend3",2417}, - {"md5Section10",1281}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"disableGrib1LocalSection",703}, - {""}, - {"yearOfForecastUsedInLocalTime",2482}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"southLatitudeOfDomainOfTubing",2128}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"visibilityInKilometresTrend2",2416}, - {"md5Section2",1282}, - {""}, - {"runwayFrictionCoefficientCodeState4",1900}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"hourOfForecastUsedInLocalTime",952}, - {""}, {""}, - {"NRj",189}, - {"widthOfWidths",2435}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDesignatorState3",1883}, - {"westLongitudeOfDomainOfTubing",2429}, - {""}, {""}, {""}, - {"NB",175}, - {"scaleFactorOfLengthOfSemiMajorAxis",1926}, - {""}, {""}, - {"runwayDepthOfDepositCodeState3",1871}, - {""}, {""}, {""}, {""}, - {"beginDayTrend1",339}, - {""}, {""}, {""}, {""}, {""}, - {"section_06",2066}, - {"runwayDesignatorState2",1882}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepthOfDepositCodeState2",1870}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"numberOfPointsAlongAParallel",1462}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"runwayFrictionCodeValueState1",1893}, - {""}, {""}, {""}, {""}, {""}, - {"addEmptySection2",297}, - {""}, - {"endMonthTrend4",756}, - {""}, - {"versionNumOfSharedHeaderMessageFormat",2403}, - {"extractDateTimeYearEnd",830}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"NC2",178}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section_5",2076}, - {"probProductDefinition",1748}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfSingularVectorsComputed",1484}, - {""}, {""}, {""}, - {"pentagonalResolutionParameterK",1695}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"section_03",2063}, - {""}, {""}, {""}, {""}, - {"section_1",2070}, - {""}, {""}, {""}, - {"runwayDesignatorState1",1881}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_sec1_loc",1662}, - {""}, - {"runwayDepthOfDepositCodeState1",1869}, - {""}, - {"runwayFrictionCoefficientCodeState3",1899}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"legacyGaussSubarea",1110}, - {"runwayDepositCodeState4",1864}, - {"runwayFrictionCoefficientCodeState2",1898}, - {"section_02",2062}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractAreaEastLongitude",807}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"generalExtended2ordr",898}, - {""}, {""}, {""}, {""}, - {"recentWeatherTry",1807}, - {""}, - {"SOH",226}, - {""}, {""}, {""}, - {"extractDateTimeHourEnd",817}, - {""}, {""}, - {"Original_Parameter_Identifier",210}, - {""}, {""}, {""}, {""}, - {"listMembersUsed3",1138}, - {""}, {""}, {""}, {""}, - {"checkInternalVersion",431}, - {""}, {""}, {""}, {""}, {""}, - {"visibilityInKilometresTrend1",2415}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"numberOfHorizontalPoints",1439}, - {""}, - {"meanRVR3",1294}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"listOfWaveFrequencySequenceParameters",1147}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"section_7",2078}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"southEastLongitudeOfLPOArea",2125}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"meanRVR2",1293}, - {""}, - {"baseTimeOfThisLeg",337}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"NEAREST",180}, - {""}, {""}, {""}, {""}, - {"offsetSection11",1544}, - {""}, {""}, - {"typeOfWavelengthInterval",2323}, - {"runwayFrictionCoefficientCodeState1",1897}, - {"swapScanningAlternativeRows",2197}, - {""}, {""}, - {"listMembersUsed4",1139}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"listMembersMissing4",1135}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"horizontalDomainTemplate",946}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"NC1",177}, - {""}, {""}, {""}, {""}, {""}, - {"flagForNormalOrStaggeredGrid",870}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"observationDiagnostic",1512}, - {"paramIdECMF",1671}, - {""}, - {"spacingOfBinsAlongRadials",2136}, - {"WRAP",264}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"longitudeOfSouthernPoleInDegrees",1204}, - {""}, {""}, {""}, - {"numberOfReforecastYearsInModelClimate",1477}, - {""}, {""}, {""}, {""}, {""}, - {"section_05",2065}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"radiusOfTheEarth",1787}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"endMonthTrend3",755}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"listMembersUsed2",1137}, - {""}, {""}, {""}, - {"section_01",2061}, - {""}, - {"cloudsAbbreviation4",452}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"horizontalDimensionProcessed",945}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endMonthTrend2",754}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"experimentVersionNumberOfAnalysis",798}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"baseDateOfThisLeg",335}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded1Trend4",481}, - {""}, {""}, - {"scaledValueOfCentralWaveNumber",1949}, - {""}, - {"pentagonalResolutionParameterJ",1694}, - {""}, {""}, {""}, - {"beginMinuteTrend4",350}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"DjGiven",35}, - {""}, {""}, {""}, {""}, {""}, - {"latitudeOfReferencePointInDegrees",1086}, - {""}, - {"latitudeOfThePolePoint",1096}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"inputOverriddenReferenceValues",995}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section2Used",2027}, - {""}, {""}, - {"runwayDepositCodeState3",1863}, - {""}, {""}, - {"meanRVR1",1292}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"section_07",2067}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfGeneratingProcess",2298}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"runwayDepositCodeState2",1862}, - {""}, - {"numberOfSingularVectorsEvolved",1485}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"lengthOf4DvarWindow",1113}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded3Trend4",491}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"subdivisionsOfBasicAngle",2194}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase3",467}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"cloudsBase1",457}, - {"cloudsBaseCoded1Trend3",480}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"beginMinuteTrend3",349}, - {""}, {""}, {""}, {""}, {""}, - {"numberOfPressureLevelsUsedForClustering",1473}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded1Trend2",479}, - {""}, - {"endMark",748}, - {"listMembersMissing3",1134}, - {""}, {""}, {""}, {""}, {""}, - {"beginMinuteTrend2",348}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"NH",183}, - {""}, {""}, - {"endMonthTrend1",753}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"cloudsBase4",472}, - {""}, - {"listMembersMissing2",1133}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"unusedBitsInBitmap",2366}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"cloudsBaseCoded3",487}, - {""}, {""}, {""}, - {"sourceSinkChemicalPhysicalProcess",2122}, - {"padding_local40_1",1659}, - {""}, {""}, {""}, - {"cloudsBaseCoded3Trend3",490}, - {""}, {""}, {""}, {""}, - {"setBitsPerValue",2091}, - {""}, {""}, {""}, {""}, - {"cloudsAbbreviation3",447}, - {"cloudsBaseCoded2Trend4",486}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded3Trend2",489}, - {"cloudsBaseCoded1",477}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded1Trend1",478}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"beginMinuteTrend1",347}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepositCodeState1",1861}, - {""}, {""}, {""}, - {"cloudsAbbreviation2",442}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"pastTendencyRVR3",1691}, - {""}, {""}, {""}, {""}, - {"cloudsBase2",462}, - {""}, {""}, {""}, - {"projTargetString",1762}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded4",492}, - {""}, {""}, {""}, - {"offsetBeforePV",1534}, - {""}, - {"pastTendencyRVR1",1689}, - {""}, {""}, - {"cloudsBaseCoded4Trend4",496}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"resolutionAndComponentFlags4",1846}, - {""}, - {"offsetBSection6",1529}, - {""}, {""}, - {"latitudeOfThePoleOfStretching",1095}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"projSourceString",1760}, - {""}, {""}, - {"scaledValueOfUpperLimit",1970}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"pastTendencyRVR4",1692}, - {""}, {""}, - {"physicalFlag2",1704}, - {"Ensemble_Combination_Number",50}, - {"cloudsBaseCoded3Trend1",488}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"Y2",277}, - {""}, - {"scaleFactorOfEarthMajorAxis",1921}, - {""}, {""}, {""}, {""}, - {"scaleFactorOfEarthMinorAxis",1922}, - {""}, {""}, {""}, {""}, - {"Total_Number_Members_Used",258}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded2Trend3",485}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"cloudsBaseCoded2",482}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBaseCoded2Trend2",484}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"shortNameLegacyECMF",2101}, - {""}, {""}, {""}, {""}, - {"uuidOfHGrid",2378}, - {""}, {""}, - {"scaleFactorOfMinorAxisOfOblateSpheroidEarth",1931}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"pastTendencyRVR2",1690}, - {""}, - {"cloudsBaseCoded4Trend3",495}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cfNameLegacyECMF",417}, - {""}, {""}, {""}, - {"Local_Number_Members_Used",138}, - {""}, {""}, {""}, {""}, - {"typeOfLevelECMF",2304}, - {""}, {""}, {""}, - {"Total_Number_Members_Possible",257}, - {"cloudsBaseCoded4Trend2",494}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"cloudsAbbreviation1",437}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"constantAntennaElevationAngle",579}, - {""}, {""}, {""}, {""}, - {"unitsLegacyECMF",2353}, - {""}, {""}, {""}, {""}, {""}, - {"coordinate3OfFirstGridPoint",596}, - {""}, - {"resolutionAndComponentFlags6",1847}, - {"numberOfPointsUsed",1472}, - {""}, {""}, {""}, - {"cloudsBaseCoded2Trend1",483}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"hoursAfterReferenceTimeOfDataCutoff",957}, - {"typicalYearOfCentury",2335}, - {""}, {""}, {""}, {""}, {""}, - {"timeUnitFlag",2254}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"Total_Number_Members_Missing",256}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section4UniqueIdentifier",2037}, - {"Local_Number_Members_Possible",134}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"radiusOfClusterDomain",1786}, - {""}, {""}, {""}, - {"physicalFlag1",1703}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"cloudsBaseCoded4Trend1",493}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Y1",275}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"CLNOMA",23}, - {""}, - {"Local_Number_Members_Missing",130}, - {""}, {""}, - {"resolutionAndComponentFlags3",1845}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"DELETE",24}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"offsetBSection5",1528}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"resolutionAndComponentFlags2",1844}, - {""}, {""}, {""}, - {"section6UniqueIdentifier",2045}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"extractAreaSouthLatitude",811}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"northWestLongitudeOfLPOArea",1371}, - {""}, {""}, {""}, - {"laplacianScalingFactorUnset",1067}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"section3UniqueIdentifier",2032}, - {""}, - {"numberOfPointsAlongFirstAxis",1463}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"beginHourTrend4",346}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"beginYearTrend4",358}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"coordinate4OfFirstGridPoint",599}, - {""}, {""}, - {"ccsdsCompressionOptionsMask",392}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"typeOfWaveDirectionSequence",2320}, - {""}, {""}, - {"isCavok",1012}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfPointsAlongYAxis",1469}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"pentagonalResolutionParameterM",1696}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"visibilityTrend3",2421}, - {"section5UniqueIdentifier",2041}, - {"HDF5",80}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"typicalYear2",2334}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"visibilityTrend1",2419}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"intervalBetweenTimes",1009}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"resolutionAndComponentFlags1",1843}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"extractDateTimeEnd",816}, - {""}, {""}, - {"section7UniqueIdentifier",2049}, - {""}, {""}, {""}, {""}, - {"horizontalDomainTemplateNumber",947}, - {""}, {""}, {""}, {""}, - {"visibilityTrend4",2422}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Date_E4",28}, - {""}, - {"uvRelativeToGrid",2380}, - {""}, {""}, {""}, {""}, {""}, - {"sizeOfPostAuxiliaryArray",2115}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"scaledValueOfLowerWavePeriodLimit",1960}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfMajorAxisOfOblateSpheroidEarth",1961}, - {""}, {""}, {""}, {""}, - {"latitudeOfThePolePointInDegrees",1097}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"jDirectionIncrementGiven",1045}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"resolutionAndComponentFlags7",1848}, - {""}, {""}, {""}, {""}, - {"ICPLSIZE",87}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"presentWeather3Present",1736}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"visibilityTrend2",2420}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"presentWeather2Present",1731}, - {""}, {""}, {""}, - {"scaledValueOfLengthOfSemiMajorAxis",1957}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"runwayDepthOfDepositState4",1876}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"beginHourTrend3",345}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfBitsContainingEachPackedValue",1389}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"beginYearTrend3",357}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"beginHourTrend2",344}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"beginYearTrend2",356}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"numberOfPointsAlongTheXAxis",1465}, - {""}, {""}, {""}, - {"endHourTrend4",747}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"setToMissingIfOutOfRange",2095}, - {""}, {""}, - {"ECMWF",45}, - {"offsetToEndOf4DvarWindow",1553}, - {"presentWeather1Present",1726}, - {""}, - {"endYearTrend4",769}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"mixedCoordinateDefinition",1326}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"countOfGroupLengths",620}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"jDirectionIncrementGridLength",1046}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius",307}, - {""}, {""}, - {"Date_E3",27}, - {""}, {""}, - {"NG",182}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberInHorizontalCoordinates",1380}, - {""}, {""}, {""}, - {"g1conceptsLocalDirAll",893}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Date_E2",26}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"HourOfModelVersion",82}, - {""}, {""}, {""}, {""}, - {"rootGroupSymbolTableEntry",1852}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"YearOfModelVersion",282}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"beginHourTrend1",343}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfUsefulPointsAlongXAxis",1497}, - {""}, {""}, {""}, {""}, - {"beginYearTrend1",355}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepthOfDepositState3",1875}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"weightAppliedToClimateMonth1",2427}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ZLBASE",286}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDepthOfDepositState2",1874}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"numberOfParametersUsedForClustering",1458}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endHourTrend3",746}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"listOfWaveDirectionSequenceParameters",1146}, - {""}, {""}, - {"endYearTrend3",768}, - {""}, - {"latitudeOfTheSouthernPoleOfProjection",1098}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"endHourTrend2",745}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"endYearTrend2",767}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"extractDateTimeDayStart",815}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"TYPE_FF",243}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"TYPE_OF",245}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Threshold_Or_Distribution_Units",249}, - {""}, - {"numberOfTensOfThousandsOfYearsOfOffset",1489}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayDesignatorRVR4",1880}, - {"numberOfPointsAlongYAxisInCouplingArea",1470}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsCode1Trend4",501}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"sizeOfPostAuxiliaryArrayPlusOne",2116}, - {""}, {""}, {""}, - {"runwayDepthOfDepositState1",1873}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"versionNumberOfSuperblock",2406}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"padding_loc9_2",1655}, - {""}, - {"BUFR",18}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Original_CodeTable_2_Version_Number",208}, - {""}, - {"skipExtraKeyAttributes",2119}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"section_11",2072}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"lBB",1062}, - {""}, {""}, - {"cloudsAbbreviation4Trend4",456}, - {""}, {""}, {""}, - {"windUnitsTrend4",2456}, - {""}, {""}, {""}, {""}, - {"superblockExtensionAddress",2196}, - {""}, {""}, {""}, - {"oneMinuteMeanMaximumRVR4",1564}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"cloudsCode3Trend4",511}, - {""}, - {"endHourTrend1",744}, - {""}, - {"runwayExtentOfContaminationState4",1892}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"endYearTrend1",766}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsCode1Trend3",500}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"cloudsCode1Trend2",499}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"coordAveraging3",587}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"coordAveraging2",586}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_local_35",1660}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation3Trend4",451}, - {""}, {""}, {""}, - {"cfVarNameLegacyECMF",420}, - {"is_chemical_srcsink",1032}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation2Trend4",446}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsCode3Trend3",510}, - {""}, {""}, {""}, - {"runwayExtentOfContaminationState3",1891}, - {"numberOfBitsUsedForTheScaledGroupLengths",1392}, - {""}, {""}, {""}, {""}, - {"padding_loc9_1",1654}, - {"cloudsCode2Trend4",506}, - {"padding_loc7_1",1653}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"scaledValueOfEarthMajorAxis",1952}, - {""}, - {"cloudsCode3Trend2",509}, - {""}, {""}, - {"scaledValueOfEarthMinorAxis",1953}, - {"runwayExtentOfContaminationState2",1890}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsCode1Trend1",498}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"beginMonthTrend3",353}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"runwayDesignatorRVR3",1879}, - {"padding_loc6_1",1652}, - {""}, {""}, {""}, {""}, - {"experimentVersionNumber2",797}, - {""}, - {"windGustTrend4",2445}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"beginMonthTrend1",351}, - {""}, {""}, - {"padding_loc5_1",1651}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"runwayDesignatorRVR2",1878}, - {""}, {""}, - {"cloudsCode4Trend4",516}, - {""}, {""}, {""}, - {"scaledValueOfMinorAxisOfOblateSpheroidEarth",1962}, - {""}, {""}, {""}, {""}, {""}, - {"padding_grid90_1",1605}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"beginMonthTrend4",354}, - {"cloudsAbbreviation1Trend4",441}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"latitudeOfSouthEastCornerOfArea",1087}, - {""}, {""}, {""}, {""}, - {"cloudsCode3Trend1",508}, - {""}, {""}, {""}, - {"runwayExtentOfContaminationState1",1889}, - {""}, {""}, {""}, {""}, - {"cloudsAbbreviation4Trend3",455}, - {""}, {""}, {""}, - {"windUnitsTrend3",2455}, - {"XpInGridLengths",274}, - {"FMULTM",66}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"oneMinuteMeanMaximumRVR3",1563}, - {""}, {""}, {""}, {""}, {""}, - {"************_EXPERIMENT_************",2}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsCode2Trend3",505}, - {""}, {""}, {""}, - {"cloudsAbbreviation4Trend2",454}, - {""}, {""}, {""}, - {"windUnitsTrend2",2454}, - {"CCCC",20}, - {""}, {""}, {""}, {""}, {""}, - {"extractAreaLongitudeRank",809}, - {""}, - {"oneMinuteMeanMaximumRVR2",1562}, - {""}, - {"coordAveraging1",585}, - {""}, - {"cloudsCode2Trend2",504}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"hoursAfterDataCutoff",956}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"beginMonthTrend2",352}, - {""}, {""}, {""}, {""}, {""}, - {"Minute_E4",162}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"ccsdsBlockSize",391}, - {""}, {""}, {""}, - {"cloudsCode4Trend3",515}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"cloudsCode4Trend2",514}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"experimentVersionNumber1",796}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"cloudsAbbreviation3Trend3",450}, - {""}, - {"cloudsCode2Trend1",503}, - {""}, {""}, {""}, - {"runwayDesignatorRVR1",1877}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation2Trend3",445}, - {""}, - {"padding_loc50_1",1650}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"TYPE_PF",247}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"cloudsAbbreviation3Trend2",449}, - {""}, {""}, {""}, - {"missingValueManagementUsed",1323}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"************_ENSEMBLE_**************",1}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation2Trend2",444}, - {""}, {""}, - {"numberOfGridUsed",1436}, - {"qualityValueAssociatedWithParameter",1778}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"windGustTrend3",2444}, - {"cloudsCode4Trend1",513}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"scaleFactorOfUpperWavePeriodLimit",1940}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation4Trend1",453}, - {"windGustTrend2",2443}, - {""}, - {"TYPE_FX",244}, - {"windUnitsTrend1",2453}, - {""}, - {"padding_local11_1",1656}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"oneMinuteMeanMaximumRVR1",1561}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"Local_Number_Members_Possible_E4",137}, - {"Local_Number_Members_Missing_E4",133}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"cloudsAbbreviation1Trend3",440}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"TYPE_OR",246}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"cloudsAbbreviation1Trend2",439}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"LSTCUM",100}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_local_7_1",1661}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"Minute_E3",161}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"cloudsAbbreviation3Trend1",448}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Minute_E2",160}, - {""}, - {"cloudsAbbreviation2Trend1",443}, - {""}, {""}, - {"Local_Number_Members_Possible_E3",136}, - {"Local_Number_Members_Missing_E3",132}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"Local_Number_Members_Possible_E2",135}, - {"Local_Number_Members_Missing_E2",131}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"windGustTrend1",2442}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"Ensemble_Identifier_E4",54}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ICEFieldsUsed",86}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsAbbreviation1Trend1",438}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractAreaLatitudeRank",808}, - {""}, {""}, {""}, {""}, - {"cloudsBase1Trend4",461}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ceilingAndVisibilityOKTrend4",399}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"Ensemble_Identifier_E3",53}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"isCavokTrend4",1016}, - {""}, {""}, {""}, {""}, {""}, - {"Ensemble_Identifier_E2",52}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"RENAME",221}, - {""}, - {"oneMinuteMeanMinimumRVR4",1568}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"cloudsBase3Trend4",471}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"cloudsBase1Trend3",460}, - {""}, - {"Number_Combination_Ensembles_1_none",203}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase1Trend2",459}, - {"FMULTE",65}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"YY",281}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfBits",1388}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"scaleFactorOfCentralWaveNumber",1917}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"offsetSection11",1544}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"constantAntennaElevationAngle",579}, + {""}, {""}, {""}, {""}, {""}, + {"scanningMode6",1980}, + {"Threshold_Or_Distribution_Units",249}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bufrHeaderSubCentre",381}, + {"runwayDepositCodeState2",1861}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase3Trend3",470}, + {"verificationYear",2397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"cloudsBase2Trend4",466}, + {"extractAreaNorthLatitude",810}, + {""}, {""}, + {"codedNumberOfGroups",558}, + {"probabilityType",1748}, + {"runwayFrictionCodeValueState4",1895}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase3Trend2",469}, + {""}, + {"scaledValueOfWaveDirectionSequenceParameter",1971}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase1Trend1",458}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayDesignatorRVR4",1879}, + {""}, {""}, {""}, + {"scaledValueOfWaveFrequencySequenceParameter",1972}, {""}, {""}, - {"*********_EXTRA_DATA_***************",4}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfPointsAlongXAxisInCouplingArea",1468}, + {""}, {""}, + {"md5GridSection",1277}, + {""}, {""}, {""}, {""}, + {"templatesMasterDir",2219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"listMembersMissing2",1133}, + {""}, + {"Date_E2",26}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"numberOfRadarSitesUsed",1474}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ceilingAndVisibilityOKTrend3",398}, + {"padding_local_35",1659}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"cloudsBase4Trend4",476}, + {""}, + {"azimuthalWidth",329}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"longitudeLastInDegrees",1186}, + {""}, {""}, {""}, {""}, {""}, + {"generalExtended2ordr",898}, + {""}, {""}, {""}, {""}, + {"totalNumberOfGridPoints",2266}, {""}, {""}, {""}, - {"biFourierPackingModeForAxes",361}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ceilingAndVisibilityOKTrend2",397}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayFrictionCodeValueState3",1894}, + {""}, + {"cloudsAbbreviation4Trend4",456}, + {""}, {""}, {""}, + {"experimentVersionNumber",795}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isCavokTrend3",1015}, - {""}, {""}, - {"cloudsBase3Trend1",468}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"oneMinuteMeanMinimumRVR3",1567}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Extra_Data_FreeFormat_0_none",56}, + {"Total_Number_Members_Used",258}, + {""}, {""}, {""}, {""}, + {"SOH",226}, + {""}, {""}, {""}, {""}, {""}, + {"physicalMeaningOfVerticalCoordinate",1704}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfDataBinsAlongRadials",1410}, + {""}, {""}, {""}, + {"disableGrib1LocalSection",703}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isCavokTrend2",1014}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase2Trend3",465}, {""}, {""}, {""}, {""}, {""}, {""}, - {"oneMinuteMeanMinimumRVR2",1566}, + {"northWestLatitudeOfVerficationArea",1370}, + {"cloudsCode4",512}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase2Trend2",464}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"scaledValuesOfWaveDirections",1973}, + {""}, {""}, {""}, + {"listMembersUsed2",1137}, + {""}, {""}, {""}, + {"runwayFrictionCodeValueState2",1893}, {""}, {""}, {""}, {""}, - {"LBC_Initial_Conditions",97}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"meanRVR1",1292}, + {"section_7",2077}, {""}, {""}, {""}, {""}, - {"cloudsBase4Trend3",475}, + {"probabilityTypeName",1749}, + {""}, {""}, + {"numberOfGroups",1437}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"mBasicAngle",1227}, {""}, {""}, {""}, {""}, - {"ECMWF_s",46}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase4Trend2",474}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ITERATOR",91}, {""}, {""}, - {"TYPE_CF",241}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfDataPointsExpected",1413}, + {""}, + {"beginHourTrend4",346}, + {""}, + {"uuidOfVGrid",2378}, {""}, {""}, {""}, {""}, - {"P_TACC",218}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"scaledValuesOfWaveFrequencies",1974}, {""}, {""}, {""}, - {"extractDateTimeDayEnd",813}, + {"Total_Number_Members_Possible",257}, + {"physicalFlag1",1702}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"cloudsBase2Trend1",463}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ceilingAndVisibilityOKTrend1",396}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation3Trend4",451}, + {"scaleFactorOfLengthOfSemiMajorAxis",1925}, + {""}, {""}, {""}, {""}, {""}, + {"section_07",2066}, + {""}, {""}, {""}, {""}, + {"marsClass1",1230}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"definitionFilesVersion",684}, + {"xCoordinateOfOriginOfSectorImage",2462}, + {""}, {""}, {""}, {""}, {""}, + {"runwayDesignatorRVR3",1878}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"pentagonalResolutionParameterJ",1693}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"listMembersUsed3",1138}, + {"unpackedValues",2359}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"backgroundGeneratingProcessIdentifier",330}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"coordAveraging3",587}, + {"unstructuredGridUUID",2364}, + {""}, {""}, {""}, {""}, + {"endHourTrend4",747}, + {"cloudsAbbreviation2Trend4",446}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfSubSatellitePointInDegrees",1093}, + {"sizeOfLength",2112}, + {""}, {""}, {""}, {""}, + {"changeIndicatorTrend4",425}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"preBitmapValues",1713}, {""}, {""}, - {"cloudsBase4Trend1",473}, - {""}, - {"DIAG",25}, + {"variationOfVisibilityTrend4",2393}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"isCavokTrend1",1013}, + {"scaledValueOfSecondWavelength",1966}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation4Trend3",455}, + {"resolutionAndComponentFlags4",1845}, + {""}, {""}, {""}, {""}, + {"longitudeOfSouthernPole",1203}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"longitudeOfReferencePointInDegrees",1201}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Used",138}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"dateOfIceFieldUsed",654}, {""}, {""}, {""}, {""}, {""}, - {"oneMinuteMeanMinimumRVR1",1565}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayDesignatorRVR2",1877}, + {""}, {""}, + {"scaleFactorOfMajorAxisOfOblateSpheroidEarth",1929}, {""}, {""}, {""}, {""}, {""}, - {"runwayExtentOfContaminationCodeState4",1888}, - {""}, - {"Less_Than_Or_To_Overall_Distribution",122}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc19_2",1625}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"gribTablesVersionNo",914}, + {"offsetBeforePL",1533}, {""}, {""}, - {"padding_loc18_2",1619}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"variationOfVisibilityDirectionTrend4",2389}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayDepthOfDepositCodeState1",1868}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"projSourceString",1759}, + {"versionNumOfSharedHeaderMessageFormat",2402}, + {""}, {""}, {""}, {""}, + {"coordAveraging2",586}, {""}, - {"swapScanningY",2201}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation1",437}, + {""}, {""}, {""}, + {"changeIndicatorTrend3",424}, + {""}, {""}, {""}, + {"DjGiven",35}, + {"earthMajorAxisInMetres",722}, + {""}, {""}, {""}, {""}, + {"mixedCoordinateFieldFlag",1327}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"variationOfVisibilityTrend3",2392}, + {""}, {""}, {""}, {""}, + {"beginHourTrend3",345}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayExtentOfContaminationCodeState3",1887}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"padding_sec2_3",1665}, + {"dateOfForecastUsedInLocalTime",653}, + {""}, {""}, + {"yearOfForecastUsedInLocalTime",2481}, {""}, {""}, {""}, {""}, {""}, - {"runwayExtentOfContaminationCodeState2",1886}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Possible",134}, + {"cloudsAbbreviation3Trend3",450}, + {"timeOfForecastUsedInLocalTime",2248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"projTargetString",1761}, + {""}, + {"cloudsAbbreviation4Trend2",454}, + {""}, {""}, {""}, {""}, + {"NH",183}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_sec2_2",1664}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"southEastLongitudeOfLPOArea",2124}, + {"changeIndicatorTrend2",423}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc190_1",1620}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"octetAtWichPackedDataBegins",1520}, + {"variationOfVisibilityTrend2",2391}, + {""}, {""}, {""}, + {"endMonthTrend1",753}, + {"ZLMULT",287}, + {""}, + {"variationOfVisibilityDirectionTrend3",2388}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"padding_grid90_1",1604}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"endHourTrend3",746}, + {"cloudsAbbreviation2Trend3",445}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"lengthOf4DvarWindow",1113}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_sec3_1",1666}, + {"HDF5",80}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfGeneratingProcess",2297}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfGroupsOfDataValues",1438}, + {""}, + {"hoursAfterReferenceTimeOfDataCutoff",957}, + {""}, {""}, {""}, + {"shortNameLegacyECMF",2100}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc2_2",1642}, + {"beginHourTrend2",344}, {""}, - {"padding_loc29_3",1640}, + {"variationOfVisibilityDirectionTrend2",2387}, {""}, {""}, {""}, - {"Threshold_Or_Distribution_0_no_1_yes",248}, - {"padding_loc18_1",1618}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_local1_1",1657}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"runwayExtentOfContaminationCodeState1",1885}, + {"resolutionAndComponentFlags3",1844}, + {""}, {""}, {""}, + {"typeOfWaveFrequencySequence",2320}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cloudsAbbreviation3Trend2",449}, + {"nameECMF",1354}, + {"Total_Number_Members_Missing",256}, {""}, {""}, - {"padding_grid4_1",1602}, + {"extractDateTimeStart",829}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfControlForecastTube",1408}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"mask",1260}, + {""}, {""}, {""}, + {"extractDateTimeSecondEnd",826}, + {"hourOfForecastUsedInLocalTime",952}, + {""}, {""}, {""}, + {"numberOfDaysInClimateSamplingWindow",1415}, + {""}, {""}, {""}, + {"northWestLongitudeOfVerficationArea",1372}, + {"NEAREST",180}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc29_2",1639}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeSecondStart",828}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"runwayDepthOfDepositState4",1875}, + {""}, + {"numberOfContributingSpectralBands",1407}, + {""}, + {"secondaryBitMap",2000}, + {"probProductDefinition",1747}, + {""}, + {"localTablesVersionNumber",1175}, + {""}, {""}, {""}, {""}, + {"endHourTrend2",745}, + {"cloudsAbbreviation2Trend2",444}, + {"unitsECMF",2350}, + {""}, {""}, {""}, {""}, {""}, + {"typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing",2318}, + {""}, + {"inputOverriddenReferenceValues",995}, + {""}, + {"numberOfBytesPerInteger",1395}, {""}, {""}, - {"padding_loc3_1",1648}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"pack",1593}, {""}, - {"padding_loc4_2",1649}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeYearRank",831}, + {"scaledValueOfFirstWavelength",1955}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"getNumberOfValues",903}, + {"WRAP",264}, + {"timeUnitFlag",2253}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc30_2",1644}, - {""}, {""}, - {"GRIB",70}, - {"padding_grid1_2",1600}, - {""}, {""}, {""}, - {"scaledValueOfUpperWavePeriodLimit",1971}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"numberOfPointsAlongTheYAxis",1466}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc38_1",1647}, - {"numberOfVGridUsed",1499}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_local1_31",1658}, + {"resolutionAndComponentFlags2",1843}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"windUnitsTrend4",2455}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"listMembersUsed4",1139}, + {"unpack",2356}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"RVR4_1",225}, + {"matrixBitmapsPresent",1270}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"Hour_E4",85}, + {""}, {""}, {""}, {""}, + {"runwayFrictionCodeValueState1",1892}, + {""}, {""}, {""}, {""}, + {"numberOfPointsAlongFirstAxis",1463}, + {""}, + {"numberOfSingularVectorsEvolved",1485}, {""}, {""}, - {"7777",5}, - {""}, {""}, {""}, {""}, {""}, - {"padding_sec2_1",1663}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"padding_grid3_1",1601}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"monthlyVerificationYear",1347}, + {""}, {""}, + {"clusterMember7",545}, + {""}, {""}, + {"matchAerosolBinNumber",1265}, + {""}, {""}, {""}, {""}, + {"totalAerosolBinsNumbers",2257}, + {""}, {""}, {""}, {""}, + {"numberInMixedCoordinateDefinition",1381}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeHourRank",818}, - {"padding_loc10_1",1606}, + {""}, {""}, + {"laplacianScalingFactorUnset",1067}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"padding_loc2_1",1641}, {""}, {""}, {""}, - {"padding_sec4_1",1667}, + {"padding_loc18_2",1618}, + {""}, {""}, + {"modelErrorType",1330}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"X2InGridLengths",269}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"observationDiagnostic",1512}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc29_1",1638}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_grid50_1",1603}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Time_Range_One_E4",252}, + {"NC1",177}, + {"padding_loc9_1",1653}, + {"padding_loc7_1",1652}, + {""}, + {"padding_loc5_1",1650}, + {""}, + {"Local_Number_Members_Missing",130}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"indexingTimeMM",983}, {""}, {""}, - {"padding_loc28_1",1637}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfSingularVectorsComputed",1484}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"dateOfModelVersion",655}, {""}, {""}, - {"padding_grid5_1",1604}, - {"RVR3_1",224}, + {"yearOfModelVersion",2482}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfUsefulPointsAlongYAxis",1498}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc30_1",1643}, + {"timeOfModelVersion",2249}, + {""}, + {"offsetValuesBy",1554}, {""}, {""}, {""}, - {"padding_grid1_1",1599}, + {"numberOfPressureLevelsUsedForClustering",1473}, + {"cloudsAbbreviation1Trend4",441}, + {""}, {""}, {""}, {""}, + {"padding_loc19_2",1624}, {""}, - {"RVR2_1",223}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayDepthOfDepositState3",1874}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc50_1",1649}, {""}, {""}, {""}, {""}, {""}, - {"X1InGridLengths",267}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"pastTendencyRVR1",1688}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"pastTendencyRVR2",1689}, {""}, {""}, {""}, {""}, - {"extractDateTimeMinuteRank",821}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc6_1",1651}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayFrictionCoefficientCodeState4",1899}, {""}, {""}, {""}, {""}, {""}, - {"TYPE_AN",240}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"RVR1_1",222}, - {""}, - {"Time_Range_One_E3",251}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Time_Range_One_E2",250}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"recentWeather",1805}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"legacyGaussSubarea",1110}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"section4UniqueIdentifier",2036}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Hour_E3",84}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"indexingTimeHH",981}, - {""}, {""}, {""}, {""}, - {"extractDateTimeMonthRank",824}, - {"padding_loc20_1",1626}, + {"dayOfModelVersion",666}, + {"scaledValueOfUpperLimit",1969}, + {""}, {""}, {""}, + {"section_11",2071}, + {""}, {""}, {""}, + {"windUnitsTrend3",2454}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"latitudeOfReferencePointInDegrees",1086}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Missing_Model_LBC",163}, + {"radiusOfTheEarth",1786}, {""}, {""}, {""}, - {"Hour_E2",83}, + {"accuracyMultipliedByFactor",296}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfHorizontalPoints",1439}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"pastTendencyRVR3",1690}, + {""}, {""}, + {"reflectivityCalibrationConstant",1826}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"runwayDepthOfDepositState2",1873}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"hourOfModelVersion",953}, + {"ceilingAndVisibilityOK",395}, + {""}, {""}, {""}, {""}, + {"offsetICEFieldsUsed",1540}, + {"extractDateTimeYearEnd",830}, + {""}, {""}, {""}, + {"runwayFrictionCoefficientCodeState3",1898}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"horizontalDomainTemplate",946}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"gts_CCCC",932}, + {""}, {""}, + {"extractDateTimeHourEnd",817}, + {""}, {""}, + {"section3UniqueIdentifier",2031}, + {""}, {""}, + {"numberOfPointsUsed",1472}, + {""}, {""}, {""}, {""}, + {"sizeOfPostAuxiliaryArray",2114}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"changeIndicatorTrend1",422}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfGridInReference",1435}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"GG",69}, + {"windUnitsTrend2",2453}, + {"variationOfVisibilityTrend1",2390}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"runwayFrictionCoefficientCodeState2",1897}, + {""}, + {"DayOfModelVersion",29}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"cloudsAbbreviation1Trend3",440}, + {""}, + {"firstLatitudeInDegrees",862}, + {""}, + {"secondaryBitmapsSize",2005}, + {"scanningMode7",1981}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"runwayDepositCodeState1",1860}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"timeIncrementBetweenSuccessiveFields",2245}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"variationOfVisibilityDirectionTrend1",2386}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBaseCoded1Trend4",481}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"latitudeOfLastGridPointInDegrees",1083}, + {""}, {""}, {""}, {""}, {""}, + {"padding_sec2_3",1664}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"northLatitudeOfDomainOfTubing",1368}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"cloudsAbbreviation1Trend2",439}, + {"Y2",277}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"scaleFactorOfMinorAxisOfOblateSpheroidEarth",1930}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfPointsAlongTheXAxis",1465}, + {""}, + {"scaleFactorOfEarthMajorAxis",1920}, + {""}, {""}, {""}, + {"numberOfSecondOrderPackedValues",1482}, + {"scaleFactorOfEarthMinorAxis",1921}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"southLatitudeOfDomainOfTubing",2127}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBaseCoded1Trend3",480}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"horizontalDimensionProcessed",945}, + {""}, + {"padding_sec2_2",1663}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"BBB",16}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc190_1",1619}, {""}, {""}, {""}, - {"GRIBEditionNumber",74}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc29_3",1639}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"eastLongitudeOfDomainOfTubing",726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cloudsBaseCoded1Trend2",479}, + {""}, + {"checkInternalVersion",431}, + {"Original_CodeTable_2_Version_Number",208}, + {""}, + {"Less_Than_Or_To_Overall_Distribution",122}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"Threshold_Or_Distribution_0_no_1_yes",248}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"Minute_E4",162}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc2_2",1641}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"paramIdLegacyECMF",1671}, + {""}, + {"visibilityTrend1",2418}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"visibilityTrend2",2419}, + {"longitudeOfThePolePointInDegrees",1212}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"windGustTrend4",2444}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cfNameECMF",416}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"pastTendencyRVR4",1691}, + {""}, + {"listOfWaveFrequencySequenceParameters",1147}, + {""}, {""}, {""}, {""}, {""}, + {"padding_loc29_2",1638}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"presentWeather3PresentTrend4",1740}, + {"scaledValueOfCentralWaveNumber",1948}, + {""}, {""}, + {"westLongitudeOfDomainOfTubing",2428}, + {""}, {""}, {""}, + {"jDirectionIncrementGiven",1045}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"visibilityTrend3",2420}, + {"extractAreaSouthLatitude",811}, + {""}, {""}, + {"beginMinuteTrend4",350}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"indexingTimeHHMM",982}, - {""}, {""}, {""}, {""}, {""}, - {"presentWeather2PresentTrend4",1735}, + {""}, {""}, {""}, + {"numberOfBytesInLocalDefinition",1393}, + {""}, + {"section5UniqueIdentifier",2040}, + {""}, {""}, {""}, + {"widthOfWidths",2434}, + {""}, {""}, + {"scaleFactorOfLowerWavePeriodLimit",1928}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"runwayDesignatorRVR1",1876}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"coordinate3OfFirstGridPoint",596}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"uuidOfHGrid",2377}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"coordAveraging1",585}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Possible_E4",137}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"padding_loc30_2",1643}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Minute_E3",161}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"flagForNormalOrStaggeredGrid",870}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"beginMinuteTrend3",349}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation4Trend1",453}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"windGustTrend3",2443}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"pentagonalResolutionParameterM",1695}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"runwayFrictionCoefficientCodeState1",1896}, + {""}, {""}, {""}, {""}, {""}, + {"weightAppliedToClimateMonth1",2426}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"section6UniqueIdentifier",2044}, + {""}, {""}, + {"padding_loc13_4",1610}, + {""}, + {"beginMinuteTrend2",348}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"gribMasterTablesVersionNumber",913}, + {""}, {""}, {""}, + {"experimentVersionNumberOfAnalysis",798}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Possible_E3",136}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Ensemble_Combinat_Number_0_none_E4",49}, + {""}, {""}, {""}, {""}, {""}, + {"cloudsBase1",457}, + {"beginHourTrend1",343}, + {""}, {""}, {""}, {""}, {""}, + {"cloudsBase2",462}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Minute_E2",160}, + {""}, + {"Local_Number_Members_Missing_E4",133}, + {""}, {""}, {""}, {""}, {""}, + {"cloudsAbbreviation3Trend1",448}, {""}, {""}, {""}, {""}, - {"extractDateTimeDayRank",814}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"presentWeather1PresentTrend4",1730}, - {"YpInGridLengths",285}, + {"cloudsBaseCoded2Trend4",486}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"Local_Number_Members_Possible_E2",135}, + {""}, + {"windGustTrend2",2442}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfBytesOfFreeFormatData",1394}, + {""}, {""}, + {"scaledValueOfLengthOfSemiMajorAxis",1956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"CLNOMA",23}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"endHourTrend1",744}, + {"cloudsAbbreviation2Trend1",443}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"cloudsBase3",467}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"resolutionAndComponentFlags6",1846}, + {""}, {""}, {""}, + {"typeOfWavelengthInterval",2322}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"g1conceptsLocalDirAll",893}, + {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Missing_E3",132}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"resolutionAndComponentFlags1",1842}, + {""}, {""}, {""}, + {"cloudsBaseCoded2Trend3",485}, + {"typicalYear2",2333}, + {"jDirectionIncrementGridLength",1046}, + {""}, {""}, + {"countOfICEFieldsUsed",621}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"padding_grid1_2",1599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extractDateTimeSecondRank",827}, + {""}, {""}, + {"Ensemble_Combination_Number",50}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"northWestLongitudeOfLPOArea",1371}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"cloudsBaseCoded3Trend4",491}, + {""}, {""}, + {"padding_loc13_3",1609}, + {"cloudsBaseCoded1",477}, + {""}, {""}, {""}, {""}, + {"Local_Number_Members_Missing_E2",131}, + {""}, + {"cloudsBaseCoded2",482}, + {""}, + {"cloudsBaseCoded1Trend1",478}, {""}, {""}, {""}, {""}, {""}, - {"TYPE_FC",242}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc14_2",1613}, + {"cloudsBaseCoded2Trend2",484}, + {""}, {""}, {""}, + {"scaledValueOfMajorAxisOfOblateSpheroidEarth",1960}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeEnd",816}, + {"sizeOfPostAuxiliaryArrayPlusOne",2115}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfBitsForScaledGroupLengths",1390}, + {""}, + {"spacingOfBinsAlongRadials",2135}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"visibilityTrend4",2421}, + {""}, + {"*********_EXTRA_DATA_***************",4}, + {"padding_loc18_1",1617}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"beginYearTrend4",358}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"offsetFromOriginToInnerBound",1538}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_local11_1",1655}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc10_1",1605}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"padding_local1_1",1656}, + {"cloudsBaseCoded3",487}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBaseCoded3Trend3",490}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"longitudeOfSouthernPoleInDegrees",1204}, + {""}, {""}, {""}, {""}, {""}, + {"padding_loc13_2",1608}, + {""}, {""}, {""}, {""}, + {"endYearTrend4",769}, + {""}, + {"countOfGroupLengths",620}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Ensemble_Combinat_Number_0_none_E3",48}, + {"padding_local_7_1",1660}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Ensemble_Combinat_Number_0_none_E2",47}, + {"cloudsBaseCoded3Trend2",489}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"lastMonthUsedToBuildClimateMonth2",1069}, + {""}, {""}, {""}, {""}, + {"latitudeOfThePolePoint",1096}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"INBITS",89}, + {""}, + {"padding_loc4_2",1648}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"commonBlock",562}, {""}, - {"presentWeather3PresentTrend3",1739}, + {"coordinate4OfFirstGridPoint",599}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Identifier_E4",54}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"presentWeather2PresentTrend3",1734}, + {""}, {""}, {""}, {""}, + {"padding_grid50_1",1602}, + {""}, {""}, {""}, {""}, + {"runwayDepthOfDepositState1",1872}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"presentWeather3PresentTrend2",1738}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"presentWeather2PresentTrend2",1733}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfMissingValues",1450}, + {"beginYearTrend3",357}, + {""}, + {"YRInMetres",280}, + {""}, {""}, {""}, {""}, + {"offsetToEndOf4DvarWindow",1553}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"sourceSinkChemicalPhysicalProcess",2121}, + {""}, {""}, {""}, {""}, {""}, + {"windUnitsTrend1",2452}, + {""}, + {"numberOfUsefulPointsAlongXAxis",1497}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"recentWeatherTry",1806}, + {"cfVarNameLegacyECMF",420}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"section7UniqueIdentifier",2048}, + {""}, {""}, + {"subdivisionsOfBasicAngle",2193}, {""}, {""}, {""}, {""}, - {"padding_loc13_4",1611}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Identifier_E3",53}, + {""}, + {"beginMinuteTrend1",347}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"lastMonthUsedToBuildClimateMonth1",1068}, + {"padding_grid4_1",1601}, + {""}, {""}, {""}, {""}, + {"endYearTrend3",768}, + {""}, {""}, {""}, {""}, + {"cloudsBase4",472}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Identifier_E2",52}, {""}, {""}, {""}, {""}, - {"presentWeather1PresentTrend3",1729}, - {""}, - {"genVertHeightCoords",897}, + {"beginYearTrend2",356}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather3Present",1735}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"oneMinuteMeanMaximumRVR4",1564}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"endMark",748}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Model_LBC_Member_Identifier",169}, + {"cloudsAbbreviation1Trend1",438}, + {"Y1",275}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_grid3_1",1600}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfLevelECMF",2303}, + {""}, {""}, + {"baseTimeOfThisLeg",337}, + {""}, + {"horizontalDomainTemplateNumber",947}, + {""}, {""}, {""}, + {"presentWeather2Present",1730}, + {""}, {""}, {""}, + {"endYearTrend2",767}, {""}, {""}, {""}, {""}, - {"presentWeather1PresentTrend2",1728}, + {"setToMissingIfOutOfRange",2094}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"radiusOfClusterDomain",1785}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"padding_sec2_1",1662}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"baseDateOfThisLeg",335}, + {""}, {""}, {""}, + {"cloudsBaseCoded4",492}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBaseCoded4Trend4",496}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBaseCoded2Trend1",483}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc2_1",1640}, + {""}, {""}, {""}, {""}, + {"padding_loc28_1",1636}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"typeOfWaveDirectionSequence",2319}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"runwayExtentOfContaminationState4",1891}, + {""}, {""}, + {"DELETE",24}, + {""}, + {"padding_loc192_1",1623}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"offsetBSection5",1528}, + {""}, {""}, {""}, {""}, {""}, + {"padding_loc20_1",1625}, + {""}, {""}, + {"Hour_E4",85}, {""}, {""}, {""}, - {"presentWeather3PresentTrend1",1737}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc14_2",1614}, + {"oneMinuteMeanMaximumRVR3",1563}, + {""}, {""}, {""}, + {"cloudsBaseCoded4Trend3",495}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"************_EXPERIMENT_************",2}, {""}, - {"presentWeather2PresentTrend1",1732}, - {""}, {""}, {""}, {""}, {""}, - {"INGRIB",90}, + {"padding_loc29_1",1637}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode1Trend4",501}, + {"Time_Range_One_E4",252}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"precisionOfTheUnpackedSubset",1717}, + {"padding_sec3_1",1665}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"NG",182}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cloudsBaseCoded4Trend2",494}, + {""}, {""}, {""}, {""}, + {"cloudsBaseCoded3Trend1",488}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfThePoleOfStretching",1095}, + {""}, {""}, {""}, {""}, + {"RVR4_1",225}, + {"runwayExtentOfContaminationState3",1890}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"padding_loc3_1",1647}, + {""}, {""}, {""}, {""}, + {"padding_loc38_1",1646}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"oneMinuteMeanMaximumRVR2",1562}, + {""}, {""}, {""}, {""}, {""}, + {"experimentVersionNumber2",797}, + {"cloudsCode1Trend3",500}, + {"Time_Range_One_E3",251}, + {""}, {""}, {""}, + {"mixedCoordinateDefinition",1326}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc30_1",1642}, + {""}, + {"runwayExtentOfContaminationState2",1889}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"uvRelativeToGrid",2379}, + {"padding_local1_31",1657}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"superblockExtensionAddress",2195}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extremeCounterClockwiseWindDirection",840}, + {"scaledValueOfMinorAxisOfOblateSpheroidEarth",1961}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"presentWeather1PresentTrend1",1727}, + {""}, + {"cloudsCode1Trend2",499}, + {"Time_Range_One_E2",250}, + {""}, + {"qualityValueAssociatedWithParameter",1777}, + {""}, {""}, {""}, {""}, + {"scaledValueOfEarthMajorAxis",1951}, + {"RVR3_1",224}, {""}, {""}, {""}, - {"padding_loc13_3",1610}, + {"scaledValueOfEarthMinorAxis",1952}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Hour_E3",84}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc13_5",1611}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"padding_loc192_1",1624}, + {""}, {""}, {""}, + {"padding_grid5_1",1603}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc13_2",1609}, + {"RVR2_1",223}, + {""}, {""}, {""}, {""}, + {"typicalYearOfCentury",2334}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"numberOfPointsAlongYAxis",1469}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"offsetBSection6",1529}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"windGustTrend1",2441}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Hour_E2",83}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ccsdsCompressionOptionsMask",392}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc14_1",1613}, + {"resolutionAndComponentFlags7",1847}, + {""}, + {"presentWeather1Present",1725}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"padding_loc191_3",1623}, + {""}, {""}, {""}, {""}, {""}, + {"oneMinuteMeanMinimumRVR4",1568}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"padding_loc191_1",1621}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"padding_grid1_1",1598}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"paramIdECMF",1670}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"Original_Parameter_Iden_CodeTable2",209}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"scaledValueOfLowerWavePeriodLimit",1959}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"padding_loc14_1",1612}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfParametersUsedForClustering",1458}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfSouthEastCornerOfArea",1087}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"padding_loc16_1",1616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc17_2",1617}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc13_5",1612}, + {"offsetBeforePV",1534}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"is_chemical_srcsink",1032}, + {""}, {""}, {""}, + {"padding_loc191_1",1620}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc191_2",1621}, + {""}, {""}, + {"extractDateTimeDayStart",815}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"beginMonthTrend1",351}, + {"missingValueManagementUsed",1323}, + {""}, {""}, {""}, {""}, {""}, + {"beginMonthTrend2",352}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc13_1",1608}, + {"padding_loc13_1",1607}, + {""}, + {"cloudsCode2Trend4",506}, + {""}, + {"padding_sec4_1",1666}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"padding_loc12_1",1607}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"XpInGridLengths",274}, + {""}, {""}, {""}, + {"oneMinuteMeanMinimumRVR3",1567}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"cloudsBaseCoded4Trend1",493}, + {""}, {""}, {""}, {""}, {""}, + {"padding_loc17_2",1616}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc191_2",1622}, + {"padding_loc191_3",1622}, + {""}, {""}, + {"padding_loc12_1",1606}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"beginMonthTrend3",353}, + {""}, {""}, {""}, + {"numberOfReforecastYearsInModelClimate",1477}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"NINT_RITZ_EXP",185}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc37_2",1646}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"cloudsCode2Trend3",505}, + {"skipExtraKeyAttributes",2118}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"ceilingAndVisibilityOKTrend4",399}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayExtentOfContaminationState1",1888}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc15_1",1615}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"oneMinuteMeanMinimumRVR2",1566}, + {""}, {""}, {""}, + {"cloudsCode3Trend4",511}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"cloudsCode1Trend1",498}, + {""}, {""}, + {"unitsLegacyECMF",2352}, + {""}, {""}, {""}, + {"cloudsCode2Trend2",504}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Extra_Data_FreeFormat_0_none",56}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"listOfWaveDirectionSequenceParameters",1146}, + {""}, {""}, {""}, {""}, {""}, + {"isCavok",1012}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"RVR1_1",222}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"isCavokTrend4",1016}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode3Trend3",510}, + {"Number_Combination_Ensembles_1_none",203}, + {""}, + {"beginYearTrend1",355}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"scaleFactorOfUpperWavePeriodLimit",1939}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"padding_loc26_1",1634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"padding_loc27_2",1636}, + {""}, {""}, {""}, + {"TYPE_FF",243}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extremeValuesRVR4",844}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"runwayBrakingActionState4",1860}, + {"cloudsCode3Trend2",509}, + {"offsetBBitmap",1527}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"TYPE_OF",245}, + {""}, + {"ceilingAndVisibilityOKTrend3",398}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc23_1",1628}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"endYearTrend1",766}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc37_1",1645}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfThePolePointInDegrees",1097}, + {"hoursAfterDataCutoff",956}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7626,58 +6706,97 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfGridUsed",1436}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"padding_loc15_1",1614}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"biFourierPackingModeForAxes",361}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractAreaLongitudeRank",809}, + {""}, + {"isCavokTrend3",1015}, + {""}, + {"ceilingAndVisibilityOKTrend2",397}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc21_1",1627}, - {""}, {""}, {""}, {""}, {""}, - {"extremeValuesRVR3",843}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"extremeValuesRVR2",842}, + {""}, + {"numberInHorizontalCoordinates",1380}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"beginMonthTrend4",354}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"latitudeOfTheSouthernPoleOfProjection",1098}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"rootGroupSymbolTableEntry",1851}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc27_1",1635}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"versionNumberOfSuperblock",2405}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc23_1",1627}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"offsetBeforeBitmap",1531}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Local_Number_Members_Used_E4",141}, + {"isCavokTrend2",1014}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"padding_loc16_1",1615}, + {""}, + {"padding_loc27_2",1635}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"extremeValuesRVR1",841}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"BUFR",18}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"oneMinuteMeanMaximumRVR1",1561}, + {""}, {""}, {""}, {""}, {""}, + {"experimentVersionNumber1",796}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"NB",175}, + {""}, {""}, + {"FMULTM",66}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"HourOfModelVersion",82}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"runwayBrakingActionState3",1859}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode4Trend4",516}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode2Trend1",503}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"runwayBrakingActionState2",1858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"padding_loc37_2",1645}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Used_E4",141}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"extractAreaLatitudeRank",808}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc244_1",1628}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc244_2",1629}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"cloudsCode4Trend3",515}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7686,37 +6805,49 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"cloudsCode4Trend2",514}, + {""}, {""}, {""}, {""}, + {"cloudsCode3Trend1",508}, + {""}, + {"ECMWF",45}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc244_3",1630}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"TYPE_OR",246}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"TYPE_PF",247}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"RENAME",221}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"GRIBEXSection1Problem",71}, {""}, {""}, {""}, {""}, - {"Time_Range_Two_E4",255}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"bitsPerValueAndRepack",374}, + {"numberOfPointsAlongYAxisInCouplingArea",1470}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"altitudeOfTheCameraFromTheEarthsCentreMeasuredInUnitsOfTheEarthsRadius",307}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {"Local_Number_Members_Used_E3",140}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"runwayBrakingActionState1",1857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ZLBASE",286}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"Local_Number_Members_Used_E2",139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"setBitsPerValue",2090}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ICPLSIZE",87}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7724,57 +6855,92 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Local_Number_Members_Used_E2",139}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"TYPE_FX",244}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc26_1",1633}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cfNameLegacyECMF",417}, {""}, {""}, {""}, {""}, {""}, - {"Time_Range_Two_E3",254}, + {"padding_loc21_1",1626}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Time_Range_Two_E2",253}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"meanValueRVR4",1300}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Y2InGridLengths",278}, {""}, {""}, {""}, - {"numberOfUnusedBitsAtEndOfSection3",1494}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"FMULTE",65}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"indexingTimeHH",981}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"X2InGridLengths",269}, + {""}, {""}, {""}, {""}, + {"oneMinuteMeanMinimumRVR1",1565}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"bufrHeaderSubCentre",381}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Combinat_Number_0_none_E4",49}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"unusedBitsInBitmap",2365}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"intervalBetweenTimes",1009}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ICEFieldsUsed",86}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"padding_loc245_1",1631}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"padding_loc245_2",1632}, + {"LSTCUM",100}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"************_ENSEMBLE_**************",1}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"At_least__Or_Distribut_Proportion_Of",14}, {""}, {""}, - {"Y1InGridLengths",276}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Ensemble_Combinat_Number_0_none_E3",48}, + {""}, {""}, {""}, + {"DIAG",25}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"P_TAVG",219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather3PresentTrend4",1739}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsCode4Trend1",513}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"Ensemble_Combinat_Number_0_none_E2",47}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfBitsUsedForTheScaledGroupLengths",1392}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"presentWeather2PresentTrend4",1734}, + {""}, {""}, {""}, {""}, + {"cloudsBase1Trend4",461}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Original_Parameter_Iden_CodeTable2",209}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7783,56 +6949,78 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ceilingAndVisibilityOKTrend1",396}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"cloudsBase1Trend3",460}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"meanValueRVR3",1299}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"meanValueRVR2",1298}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfBitsContainingEachPackedValue",1389}, + {"presentWeather3PresentTrend3",1738}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"cloudsBase1Trend2",459}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"ExtremeValuesInMaximumRVR4",60}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"isCavokTrend1",1013}, + {"numberOfTensOfThousandsOfYearsOfOffset",1489}, + {""}, {""}, + {"presentWeather2PresentTrend3",1733}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"padding_loc27_1",1634}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"numberOfVGridUsed",1499}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"P_TACC",218}, + {""}, {""}, {""}, + {"runwayExtentOfContaminationCodeState4",1887}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"presentWeather3PresentTrend2",1737}, + {""}, {""}, {""}, {""}, + {"scaledValueOfUpperWavePeriodLimit",1970}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"X1InGridLengths",267}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeDayEnd",813}, + {""}, {""}, {""}, + {"presentWeather2PresentTrend2",1732}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc244_3",1631}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayExtentOfContaminationCodeState3",1886}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"padding_loc244_1",1629}, + {"padding_loc37_1",1644}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"meanValueRVR1",1297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayExtentOfContaminationCodeState2",1885}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7847,17 +7035,17 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather1PresentTrend4",1729}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, - {"padding_loc244_2",1630}, - {""}, {""}, {""}, {""}, - {"ExtremeValuesInMaximumRVR3",59}, + {""}, {""}, + {"cloudsBase2Trend4",466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"ECMWF_s",46}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"ExtremeValuesInMaximumRVR2",58}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7868,68 +7056,95 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"padding_loc245_1",1632}, + {""}, {""}, {""}, + {"cloudsBase2Trend3",465}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfPointsAlongTheYAxis",1466}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"cloudsBase3Trend4",471}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"cloudsBase1Trend1",458}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBase2Trend2",464}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather1PresentTrend3",1728}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"TYPE_AN",240}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"ExtremeValuesRVR4",64}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBase3Trend3",470}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"ExtremeValuesInMaximumRVR1",57}, + {""}, {""}, {""}, + {"extremeValuesRVR4",844}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"padding_loc245_2",1633}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"YearOfModelVersion",282}, + {""}, {""}, {""}, {""}, + {"cloudsBase3Trend2",469}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather1PresentTrend2",1727}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"lastMonthUsedToBuildClimateMonth2",1069}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"Missing_Model_LBC",163}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extremeValuesRVR3",843}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"runwayExtentOfContaminationCodeState1",1884}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Missing_Model_LBC_E4",166}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"ExtremeValuesRVR3",63}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extremeValuesRVR2",842}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"ExtremeValuesRVR2",62}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"NINT_RITZ_EXP",185}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"ccsdsBlockSize",391}, + {""}, + {"Time_Range_Two_E4",255}, + {""}, {""}, {""}, {""}, {""}, + {"indexingTimeHHMM",982}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"TYPE_CF",241}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7937,50 +7152,67 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"ExtremeValuesRVR1",61}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Time_Range_Two_E3",254}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"7777",5}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"Time_Range_Two_E2",253}, + {""}, {""}, {""}, + {"GG",69}, + {""}, {""}, {""}, {""}, + {"octetAtWichPackedDataBegins",1520}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBase4Trend4",476}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBase2Trend1",463}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, - {"At_least__Or_Distribut_Proportion_Of",14}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"BUDG",17}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"cloudsBase4Trend3",475}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Missing_Model_LBC_E3",165}, + {"presentWeather3PresentTrend1",1736}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"extractDateTimeYearRank",831}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"Missing_Model_LBC_E2",164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"extractDateTimeHourRank",818}, + {""}, + {"cloudsBase4Trend2",474}, {""}, {""}, {""}, {""}, - {"Used_Model_LBC",259}, + {"cloudsBase3Trend1",468}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather2PresentTrend1",1731}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"lastMonthUsedToBuildClimateMonth1",1068}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -7990,11 +7222,11 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"numberOfBitsUsedForTheGroupWidths",1391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"extremeValuesRVR1",841}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8002,6 +7234,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"numberOfUsefulPointsAlongYAxis",1498}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8024,9 +7258,15 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeMinuteRank",821}, + {""}, {""}, + {"CCCC",20}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeMonthRank",824}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8048,7 +7288,13 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"swapScanningY",2200}, + {""}, {""}, + {"cloudsBase4Trend1",473}, + {""}, {""}, + {"genVertHeightCoords",897}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"presentWeather1PresentTrend1",1726}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8058,6 +7304,7 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeDayRank",814}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8083,27 +7330,34 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayBrakingActionState4",1859}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"P_TAVG",219}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"precisionOfTheUnpackedSubset",1716}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"ExtremeValuesInMaximumRVR4",60}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"bitsPerValueAndRepack",374}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"GRIBEXShBugPresent",72}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8112,22 +7366,34 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"runwayBrakingActionState3",1858}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"GRIBEX_boustrophedonic",73}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"meanValueRVR4",1300}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"extractDateTimeSecondRank",827}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"ExtremeValuesInMaximumRVR3",59}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"YpInGridLengths",285}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"runwayBrakingActionState2",1857}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"Missing_Model_LBC_E4",166}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8136,28 +7402,39 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"LBC_Initial_Conditions",97}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ExtremeValuesInMaximumRVR2",58}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"meanValueRVR3",1299}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, - {"NINT_LOG10_RITZ",184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"ExtremeValuesRVR4",64}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"Missing_Model_LBC_E3",165}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Model_LBC_Member_Identifier",169}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"meanValueRVR2",1298}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8166,14 +7443,18 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"ExtremeValuesRVR3",63}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Missing_Model_LBC_E2",164}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"ExtremeValuesRVR2",62}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8185,7 +7466,11 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"lBB",1062}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Show_Combination_Ensem_E4_0_no_1_yes",232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8200,6 +7485,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"Show_Combination_Ensem_E3_0_no_1_yes",231}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8208,6 +7495,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"Show_Combination_Ensem_E2_0_no_1_yes",230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8219,10 +7508,20 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"YY",281}, + {""}, {""}, {""}, + {"gts_CCCC",932}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"TYPE_FC",242}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"GRIBEditionNumber",74}, + {""}, {""}, {""}, {""}, {""}, + {"numberOfUnusedBitsAtEndOfSection3",1494}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8232,8 +7531,6 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"Show_Combination_Ensem_E4_0_no_1_yes",232}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8243,6 +7540,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"ExtremeValuesRVR1",61}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8256,17 +7555,18 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"Show_Combination_Ensem_E3_0_no_1_yes",231}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Show_Combination_Ensem_E2_0_no_1_yes",230}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"extremeCounterClockwiseWindDirection",840}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"runwayBrakingActionState1",1856}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8277,6 +7577,10 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"ExtremeValuesInMaximumRVR1",57}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Y2InGridLengths",278}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8299,6 +7603,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"meanValueRVR1",1297}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8320,6 +7626,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"GRIB",70}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8348,6 +7656,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Y1InGridLengths",276}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8417,8 +7727,6 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"AEC_PAD_RSI_OPTION_MASK",11}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8455,6 +7763,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"GRIBEXSection1Problem",71}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8528,16 +7838,18 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"NINT_LOG10_RITZ",184}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"GRIB_DEPTH",75}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"AEC_PAD_RSI_OPTION_MASK",11}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8573,6 +7885,10 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"BUDG",17}, + {""}, {""}, + {"INGRIB",90}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8688,6 +8004,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"Used_Model_LBC",259}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8697,15 +8015,11 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, - {"Used_Model_LBC_E4",262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"GRIB_LATITUDE",76}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8719,15 +8033,13 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, + {"numberOfBitsUsedForTheGroupWidths",1391}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Used_Model_LBC_E3",261}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"Used_Model_LBC_E2",260}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8775,6 +8087,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"BBB",16}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8830,6 +8144,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"GRIBEX_boustrophedonic",73}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -8978,8 +8294,6 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"GRIB_LONGITUDE",77}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9004,6 +8318,7 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"GRIBEXShBugPresent",72}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9061,8 +8376,9 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"GRIB_DEPTH",75}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"AEC_RESTRICTED_OPTION_MASK",12}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9070,6 +8386,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"Used_Model_LBC_E4",262}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9082,10 +8400,10 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, - {"AEC_DATA_SIGNED_OPTION_MASK",10}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"Used_Model_LBC_E3",261}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9094,6 +8412,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, + {"Used_Model_LBC_E2",260}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9134,6 +8454,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"AEC_DATA_SIGNED_OPTION_MASK",10}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9360,6 +8682,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"AEC_DATA_3BYTE_OPTION_MASK",7}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9401,6 +8725,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"GRIB_LATITUDE",76}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9432,8 +8758,6 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, - {"AEC_DATA_3BYTE_OPTION_MASK",7}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9476,6 +8800,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"AEC_RESTRICTED_OPTION_MASK",12}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9573,6 +8899,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, + {"AEC_DATA_MSB_OPTION_MASK",8}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9589,8 +8917,6 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"AEC_DATA_MSB_OPTION_MASK",8}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9779,6 +9105,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, + {"AEC_DATA_PREPROCESS_OPTION_MASK",9}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -9810,7 +9138,8 @@ static const struct grib_keys_hash wordlist[] = {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"AEC_DATA_PREPROCESS_OPTION_MASK",9} + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"GRIB_LONGITUDE",77} }; const struct grib_keys_hash * diff --git a/src/grib_iarray.cc b/src/grib_iarray.cc index 93621dd83..50d16bcaa 100644 --- a/src/grib_iarray.cc +++ b/src/grib_iarray.cc @@ -8,13 +8,9 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * Enrico Fucile - ***************************************************************************/ - #include "grib_api_internal.h" -/* For debugging purposes */ +// For debugging purposes void grib_iarray_print(const char* title, const grib_iarray* iarray) { size_t i; @@ -51,7 +47,7 @@ grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize) v = (grib_iarray*)grib_context_malloc(c, sizeof(grib_iarray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_iarray_new unable to allocate %lu bytes\n", sizeof(grib_iarray)); + "grib_iarray_new unable to allocate %zu bytes", sizeof(grib_iarray)); return NULL; } v->context = c; @@ -62,7 +58,7 @@ grib_iarray* grib_iarray_new(grib_context* c, size_t size, size_t incsize) v->number_of_pop_front = 0; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_iarray_new unable to allocate %lu bytes\n", sizeof(long) * size); + "grib_iarray_new unable to allocate %zu bytes", sizeof(long) * size); return NULL; } return v; @@ -103,7 +99,7 @@ static grib_iarray* grib_iarray_resize_to(grib_iarray* v, size_t newsize) newv = (long*)grib_context_malloc_clear(c, newsize * sizeof(long)); if (!newv) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_iarray_resize unable to allocate %lu bytes\n", sizeof(long) * newsize); + "grib_iarray_resize unable to allocate %zu bytes", sizeof(long) * newsize); return NULL; } @@ -142,48 +138,45 @@ grib_iarray* grib_iarray_push(grib_iarray* v, long val) return v; } -grib_iarray* grib_iarray_push_front(grib_iarray* v, long val) -{ - size_t start_size = 100; - size_t start_incsize = 100; - size_t i; - if (!v) - v = grib_iarray_new(0, start_size, start_incsize); - - if (v->number_of_pop_front) { - v->v--; - v->number_of_pop_front--; - } - else { - if (v->n >= v->size) - v = grib_iarray_resize(v); - for (i = v->n; i > 0; i--) - v[i] = v[i - 1]; - } - v->v[0] = val; - v->n++; - - return v; -} - -grib_iarray* grib_iarray_push_array(grib_iarray* v, long* val, size_t size) -{ - size_t start_size = size; - size_t start_incsize = 100; - long* vp = 0; - long* valp = val; - if (!v) - v = grib_iarray_new(0, start_size, start_incsize); +// grib_iarray* grib_iarray_push_front(grib_iarray* v, long val) +// { +// size_t start_size = 100; +// size_t start_incsize = 100; +// size_t i; +// if (!v) +// v = grib_iarray_new(0, start_size, start_incsize); +// if (v->number_of_pop_front) { +// v->v--; +// v->number_of_pop_front--; +// } +// else { +// if (v->n >= v->size) +// v = grib_iarray_resize(v); +// for (i = v->n; i > 0; i--) +// v[i] = v[i - 1]; +// } +// v->v[0] = val; +// v->n++; +// return v; +// } - v = grib_iarray_resize_to(v, size + v->n); - vp = v->v + v->n + v->number_of_pop_front; - v->n += size; - while (size) { - *(vp++) = *(valp++); - size--; - } - return v; -} +// grib_iarray* grib_iarray_push_array(grib_iarray* v, long* val, size_t size) +// { +// size_t start_size = size; +// size_t start_incsize = 100; +// long* vp = 0; +// long* valp = val; +// if (!v) +// v = grib_iarray_new(0, start_size, start_incsize); +// v = grib_iarray_resize_to(v, size + v->n); +// vp = v->v + v->n + v->number_of_pop_front; +// v->n += size; +// while (size) { +// *(vp++) = *(valp++); +// size--; +// } +// return v; +// } void grib_iarray_delete(grib_iarray* v) { diff --git a/src/grib_index.cc b/src/grib_index.cc index 57efa359e..ca6e0defc 100644 --- a/src/grib_index.cc +++ b/src/grib_index.cc @@ -16,6 +16,8 @@ #define NULL_MARKER 0 #define NOT_NULL_MARKER 255 +#define GRIB_KEY_UNDEF "undef" + /* #if GRIB_PTHREADS */ // static pthread_once_t once = PTHREAD_ONCE_INIT; // static pthread_mutex_t mutex1 = PTHREAD_MUTEX_INITIALIZER; diff --git a/src/grib_io.cc b/src/grib_io.cc index d92f3565e..ce8d2aa65 100644 --- a/src/grib_io.cc +++ b/src/grib_io.cc @@ -180,7 +180,7 @@ static int read_GRIB(reader* r, int no_alloc) if (!tmp) return GRIB_OUT_OF_MEMORY; buf = grib_new_buffer(c, tmp, buflen); - buf->property = GRIB_MY_BUFFER; + buf->property = CODES_MY_BUFFER; tmp[i++] = 'G'; tmp[i++] = 'R'; @@ -721,7 +721,7 @@ static int read_BUFR(reader* r, int no_alloc) if (!tmp) return GRIB_OUT_OF_MEMORY; buf = grib_new_buffer(c, tmp, buflen); - buf->property = GRIB_MY_BUFFER; + buf->property = CODES_MY_BUFFER; r->offset = r->tell(r->read_data) - 4; tmp[i++] = 'B'; @@ -1008,7 +1008,7 @@ static int read_any_taf(reader* r) int err = 0; unsigned char* buffer = NULL; unsigned long magic = 0; - unsigned long start = 0x54414620; + unsigned long start = 0x54414620; // 4 chars: TAF plus a space unsigned char tmp[1000] = {0,}; /* Should be enough */ size_t message_size = 0; size_t already_read = 0; @@ -1020,10 +1020,10 @@ static int read_any_taf(reader* r) magic &= 0xffffffff; if (magic == start) { - tmp[i++] = 0x54; - tmp[i++] = 0x41; - tmp[i++] = 0x46; - tmp[i++] = 0x20; + tmp[i++] = 0x54; //T + tmp[i++] = 0x41; //A + tmp[i++] = 0x46; //F + tmp[i++] = 0x20; //space r->offset = r->tell(r->read_data) - 4; @@ -1056,7 +1056,7 @@ static int read_any_metar(reader* r) int err = 0; unsigned char* buffer = NULL; unsigned long magic = 0; - unsigned long start = 0x4d455441; + unsigned long start = 0x4d455441; // 4 chars: META unsigned char tmp[32] = {0,}; /* Should be enough */ size_t message_size = 0; size_t already_read = 0; @@ -1071,10 +1071,10 @@ static int read_any_metar(reader* r) if (r->read(r->read_data, &c, 1, &err) != 1 || err != 0) break; if (c == 'R') { - tmp[i++] = 0x4d; - tmp[i++] = 0x45; - tmp[i++] = 0x54; - tmp[i++] = 0x41; + tmp[i++] = 0x4d; // M + tmp[i++] = 0x45; // E + tmp[i++] = 0x54; // T + tmp[i++] = 0x41; // A tmp[i++] = 'R'; r->offset = r->tell(r->read_data) - 4; diff --git a/src/grib_iterator.cc b/src/grib_iterator.cc index 0844a1fed..9f4fadd95 100644 --- a/src/grib_iterator.cc +++ b/src/grib_iterator.cc @@ -11,7 +11,6 @@ /*************************************************************************** * Enrico Fucile * * Jean Baptiste Filippi - 01.11.2005 * - * * ***************************************************************************/ #include "grib_api_internal.h" @@ -43,7 +42,6 @@ static void init_mutex() } #endif - int grib_get_data(const grib_handle* h, double* lats, double* lons, double* values) { int err = 0; diff --git a/src/grib_iterator_class.cc b/src/grib_iterator_class.cc index 0197a09a4..571221836 100644 --- a/src/grib_iterator_class.cc +++ b/src/grib_iterator_class.cc @@ -31,28 +31,29 @@ static const struct table_entry table[] = { #include "grib_iterator_factory.h" }; -grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* ret) +grib_iterator* grib_iterator_factory(grib_handle* h, grib_arguments* args, unsigned long flags, int* error) { size_t i = 0; const char* type = (char*)grib_arguments_get_name(h, args, 0); + *error = GRIB_NOT_IMPLEMENTED; - for (i = 0; i < NUMBER(table); i++) + for (i = 0; i < NUMBER(table); i++) { if (strcmp(type, table[i].type) == 0) { grib_iterator_class* c = *(table[i].cclass); grib_iterator* it = (grib_iterator*)grib_context_malloc_clear(h->context, c->size); it->cclass = c; it->flags = flags; - *ret = GRIB_SUCCESS; - *ret = grib_iterator_init(it, h, args); - if (*ret == GRIB_SUCCESS) + *error = grib_iterator_init(it, h, args); + if (*error == GRIB_SUCCESS) return it; grib_context_log(h->context, GRIB_LOG_ERROR, "Geoiterator factory: Error instantiating iterator %s (%s)", - table[i].type, grib_get_error_message(*ret)); + table[i].type, grib_get_error_message(*error)); grib_iterator_delete(it); return NULL; } + } - grib_context_log(h->context, GRIB_LOG_ERROR, "Geoiterator factory: Unknown type: %s for iterator", type); + grib_context_log(h->context, GRIB_LOG_ERROR, "Geoiterator factory: Unknown type: %s", type); return NULL; } diff --git a/src/grib_iterator_class.h b/src/grib_iterator_class.h index 62d3fd5c6..e9f95f5ec 100644 --- a/src/grib_iterator_class.h +++ b/src/grib_iterator_class.h @@ -2,6 +2,7 @@ extern grib_iterator_class* grib_iterator_class_gaussian; extern grib_iterator_class* grib_iterator_class_gaussian_reduced; extern grib_iterator_class* grib_iterator_class_gen; +extern grib_iterator_class* grib_iterator_class_healpix; extern grib_iterator_class* grib_iterator_class_lambert_azimuthal_equal_area; extern grib_iterator_class* grib_iterator_class_lambert_conformal; extern grib_iterator_class* grib_iterator_class_latlon; diff --git a/src/grib_iterator_class_gaussian.cc b/src/grib_iterator_class_gaussian.cc index 7042b6233..20807be96 100644 --- a/src/grib_iterator_class_gaussian.cc +++ b/src/grib_iterator_class_gaussian.cc @@ -129,7 +129,7 @@ static int init(grib_iterator* i, grib_handle* h, grib_arguments* args) ret = grib_get_gaussian_latitudes(trunc, lats); if (ret != GRIB_SUCCESS) { - grib_context_log(h->context, GRIB_LOG_ERROR, "error %d calculating gaussian points", ret); + grib_context_log(h->context, GRIB_LOG_ERROR, "Error calculating gaussian points: %s", grib_get_error_message(ret)); return ret; } /* diff --git a/src/grib_iterator_class_gaussian_reduced.cc b/src/grib_iterator_class_gaussian_reduced.cc index e48db0a68..cde71f746 100644 --- a/src/grib_iterator_class_gaussian_reduced.cc +++ b/src/grib_iterator_class_gaussian_reduced.cc @@ -8,11 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/************************************** - * Enrico Fucile - **************************************/ - - #include "grib_api_internal.h" #include @@ -87,6 +82,8 @@ static void init_class(grib_iterator_class* c) } /* END_CLASS_IMP */ +#define ITER "Reduced Gaussian grid Geoiterator" + static int next(grib_iterator* iter, double* lat, double* lon, double* val) { grib_iterator_gaussian_reduced* self = (grib_iterator_gaussian_reduced*)iter; @@ -190,7 +187,7 @@ static int iterate_reduced_gaussian_subarea_legacy(grib_iterator* iter, grib_han if (iter->e >= iter->nv) { size_t np = count_subarea_points(h, get_reduced_row, pl, plsize, lon_first, lon_last); grib_context_log(h->context, GRIB_LOG_ERROR, - "Reduced Gaussian Geoiterator (sub-area legacy). Num points=%ld, size(values)=%ld", np, iter->nv); + "%s (sub-area legacy). Num points=%zu, size(values)=%zu", ITER, np, iter->nv); return GRIB_WRONG_GRID; } @@ -207,8 +204,15 @@ static int iterate_reduced_gaussian_subarea_legacy(grib_iterator* iter, grib_han return err; } -/* ECC-747 */ -static int iterate_reduced_gaussian_subarea_algorithm2(grib_iterator* iter, grib_handle* h, +// ECC-747 +// Try legacy approach, if that fails try the next algorithm +// int err = iterate_reduced_gaussian_subarea(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, 0); +// if (err == GRIB_WRONG_GRID) { +// /* ECC-445: First attempt failed. Try again with a different algorithm */ +// err = iterate_reduced_gaussian_subarea_algorithm2(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize); +// } +// return err; +static int iterate_reduced_gaussian_subarea(grib_iterator* iter, grib_handle* h, double lat_first, double lon_first, double lat_last, double lon_last, double* lats, long* pl, size_t plsize, size_t numlats) @@ -249,7 +253,7 @@ static int iterate_reduced_gaussian_subarea_algorithm2(grib_iterator* iter, grib /* Only print error message on the second pass */ size_t np = count_subarea_points(h, get_reduced_row, pl, plsize, lon_first, lon_last); grib_context_log(h->context, GRIB_LOG_ERROR, - "Reduced Gaussian Geoiterator (sub-area). Num points=%ld, size(values)=%ld", np, iter->nv); + "%s (sub-area). Num points=%zu, size(values)=%zu", ITER, np, iter->nv); return GRIB_WRONG_GRID; } self->los[iter->e] = lon2; @@ -273,22 +277,6 @@ static int iterate_reduced_gaussian_subarea_algorithm2(grib_iterator* iter, grib return err; } -static int iterate_reduced_gaussian_subarea_wrapper(grib_iterator* iter, grib_handle* h, - double lat_first, double lon_first, - double lat_last, double lon_last, - double* lats, long* pl, size_t plsize, size_t numlats) -{ - return iterate_reduced_gaussian_subarea_algorithm2(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, numlats); - - // Try legacy approach, if that fails try the next algorithm - // int err = iterate_reduced_gaussian_subarea(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, 0); - // if (err == GRIB_WRONG_GRID) { - // /* ECC-445: First attempt failed. Try again with a different algorithm */ - // err = iterate_reduced_gaussian_subarea_algorithm2(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize); - // } - // return err; -} - static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) { int ret = GRIB_SUCCESS, j, is_global = 0; @@ -301,7 +289,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) long max_pl = 0; long nj = 0, order = 0, i; long row_count = 0; - long editionNumber = 0; + long angleSubdivisions = 0; grib_context* c = h->context; grib_iterator_gaussian_reduced* self = (grib_iterator_gaussian_reduced*)iter; const char* slat_first = grib_arguments_get_name(h, args, self->carg++); @@ -323,12 +311,16 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) if ((ret = grib_get_long_internal(h, sorder, &order)) != GRIB_SUCCESS) return ret; + if (order == 0) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Invalid grid: N cannot be 0!", ITER); + return GRIB_WRONG_GRID; + } if ((ret = grib_get_long_internal(h, snj, &nj)) != GRIB_SUCCESS) return ret; - if (grib_get_long(h, "editionNumber", &editionNumber) == GRIB_SUCCESS) { - if (editionNumber == 1) - angular_precision = 1.0 / 1000; + if (grib_get_long(h, "angleSubdivisions", &angleSubdivisions) == GRIB_SUCCESS) { + Assert(angleSubdivisions > 0); + angular_precision = 1.0 / angleSubdivisions; } numlats = order * 2; @@ -371,7 +363,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) is_global = is_gaussian_global(lat_first, lat_last, lon_first, lon_last, max_pl, lats, angular_precision); if (!is_global) { /*sub area*/ - ret = iterate_reduced_gaussian_subarea_wrapper(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, numlats); + ret = iterate_reduced_gaussian_subarea(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, numlats); } else { /*global*/ @@ -388,9 +380,9 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) /*grib_context_log(h->context,GRIB_LOG_ERROR, "Failed to initialise reduced Gaussian iterator (global)");*/ /*return GRIB_WRONG_GRID;*/ /*Try now as NON-global*/ - ret = iterate_reduced_gaussian_subarea_wrapper(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, numlats); + ret = iterate_reduced_gaussian_subarea(iter, h, lat_first, lon_first, lat_last, lon_last, lats, pl, plsize, numlats); if (ret != GRIB_SUCCESS) - grib_context_log(h->context, GRIB_LOG_ERROR, "Failed to initialise reduced Gaussian iterator (global)"); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Failed to initialise iterator (global)", ITER); goto finalise; } diff --git a/src/grib_iterator_class_healpix.cc b/src/grib_iterator_class_healpix.cc new file mode 100644 index 000000000..f2e9c0766 --- /dev/null +++ b/src/grib_iterator_class_healpix.cc @@ -0,0 +1,253 @@ +/* + * (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 "grib_api_internal.h" +#include +#include +#include + +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = iterator + SUPER = grib_iterator_class_gen + IMPLEMENTS = destroy + IMPLEMENTS = init;next + MEMBERS = double *lats + MEMBERS = double *lons + MEMBERS = long Nsides + END_CLASS_DEF +*/ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "iterator.class" and rerun ./make_class.pl + +*/ + + +static void init_class (grib_iterator_class*); + +static int init (grib_iterator* i,grib_handle*,grib_arguments*); +static int next (grib_iterator* i, double *lat, double *lon, double *val); +static int destroy (grib_iterator* i); + + +typedef struct grib_iterator_healpix{ + grib_iterator it; + /* Members defined in gen */ + int carg; + const char* missingValue; + /* Members defined in healpix */ + double *lats; + double *lons; + long Nsides; +} grib_iterator_healpix; + +extern grib_iterator_class* grib_iterator_class_gen; + +static grib_iterator_class _grib_iterator_class_healpix = { + &grib_iterator_class_gen, /* super */ + "healpix", /* name */ + sizeof(grib_iterator_healpix),/* size of instance */ + 0, /* inited */ + &init_class, /* init_class */ + &init, /* constructor */ + &destroy, /* destructor */ + &next, /* Next Value */ + 0, /* Previous Value */ + 0, /* Reset the counter */ + 0, /* has next values */ +}; + +grib_iterator_class* grib_iterator_class_healpix = &_grib_iterator_class_healpix; + + +static void init_class(grib_iterator_class* c) +{ + c->previous = (*(c->super))->previous; + c->reset = (*(c->super))->reset; + c->has_next = (*(c->super))->has_next; +} +/* END_CLASS_IMP */ + +#define ITER "HEALPix Geoiterator" +#define RAD2DEG 57.29577951308232087684 // 180 over pi + +size_t HEALPix_nj(size_t N, size_t i) +{ + Assert(0 < N); + size_t ni = 4 * N - 1; + Assert(i < ni); + return i < N ? 4 * (i + 1) : i < 3 * N ? 4 * N + : HEALPix_nj(N, ni - 1 - i); +} + +// Thanks to Willem Deconinck and Pedro Maciel +// +// y[] = { y0, y1, y2, y3, ... }; // the latitude values +// PL[] = { 4, ... } ; // the number of values on each latitude +// xstart[] = { 45, ... }; // the value of first longitude on each latitude +// assume that you have 360 degrees to cover on each latitude +// +// std::vector xstart(4 * N - 1); +// std::vector pl(4 * N - 1); +// // Polar caps +// for (int r = 1; r < N; r++) { +// xstart[r-1] = 45./r; +// pl[r-1] = 4*r; +// xstart[4*N-r-1] = xstart[r-1]; +// pl[4*N-r-1] = pl[r-1]; +// } +// // Equatorial belt +// const double start = 45. / N; +// for (int r = N; r < 2 * N; r++) { +// xstart[r-1] = start * (2. - (r - N + 1) % 2); +// pl[r-1] = 4*N; +// xstart[4*N-r-1] = xstart[r-1]; +// pl[4*N-r-1] = pl[r-1]; +// } +// // Equator +// xstart[2*N-1] = start * (1 - (N % 2 ? 1 : 0)); +// pl[2*N-1] = 4*N; +// +static std::vector HEALPix_longitudes(size_t N, size_t i) +{ + const auto Nj = HEALPix_nj(N, i); + const auto step = 360. / static_cast(Nj); + const auto start = i < N || 3 * N - 1 < i || static_cast((i + N) % 2) ? step / 2. : 0.; + + std::vector longitudes(Nj); + std::generate_n(longitudes.begin(), Nj, [start, step, n = 0ULL]() mutable { return start + static_cast(n++) * step; }); + + return longitudes; +} + +static int iterate_healpix(grib_iterator_healpix* self, long N) +{ + size_t ny, nx; + ny = nx = 4*N - 1; + std::vector latitudes(ny); + + for (long r = 1; r < N; r++) { + latitudes[r - 1] = 90.0 - RAD2DEG * std::acos(1.0 - r * r / (3.0 * N * N)); + latitudes[4 * N - 1 - r] = -latitudes[r - 1]; + } + // Polar caps + for (long r = 1; r < N; r++) { + latitudes[r - 1] = 90.0 - RAD2DEG * std::acos(1.0 - r * r / (3.0 * N * N)); + latitudes[4 * N - 1 - r] = -latitudes[r - 1]; + } + // Equatorial belt + for (long r = N; r < 2 * N; r++) { + latitudes[r - 1] = 90.0 - RAD2DEG * std::acos((4.0 * N - 2.0 * r) / (3.0 * N)); + latitudes[4 * N - 1 - r] = -latitudes[r - 1]; + } + + // Equator + latitudes[2 * N - 1] = 0.0; + + size_t k = 0; + for (size_t i = 0; i < ny; i++) { + // Compute the longitudes at a given latitude + std::vector longitudes = HEALPix_longitudes(N, i); + for (size_t j = 0; j < longitudes.size(); j++) { + self->lons[k] = longitudes[j]; + self->lats[k] = latitudes[i]; + ++k; + } + } + + return GRIB_SUCCESS; +} + +static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) +{ + int err = 0; + grib_iterator_healpix* self = (grib_iterator_healpix*)iter; + + const char* snside = grib_arguments_get_name(h, args, self->carg++); + const char* sorder = grib_arguments_get_name(h, args, self->carg++); + + long N = 0; + if ((err = grib_get_long_internal(h, snside, &N)) != GRIB_SUCCESS) return err; + if (N <= 0) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Key %s must be greater than zero", ITER, snside); + return GRIB_WRONG_GRID; + } + + char ordering[32] = {0,}; + size_t slen = sizeof(ordering); + if ((err = grib_get_string_internal(h, sorder, ordering, &slen)) != GRIB_SUCCESS) + return err; + + if (!STR_EQUAL(ordering, "ring")) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Only ring ordering is supported", ITER); + return GRIB_WRONG_GRID; + } + + if (grib_is_earth_oblate(h)) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Only spherical earth is supported", ITER); + return GRIB_WRONG_GRID; + } + + if (iter->nv != 12 * N * N) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=12x%ldx%ld)", + ITER, iter->nv, N, N); + return GRIB_WRONG_GRID; + } + + self->lats = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); + if (self->lats == NULL) return GRIB_OUT_OF_MEMORY; + self->lons = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); + if (self->lons == NULL) return GRIB_OUT_OF_MEMORY; + + try { + err = iterate_healpix(self, N); + } + catch (...) { + return GRIB_INTERNAL_ERROR; + } + + iter->e = -1; + + return err; +} + +static int next(grib_iterator* iter, double* lat, double* lon, double* val) +{ + grib_iterator_healpix* self = (grib_iterator_healpix*)iter; + + if ((long)iter->e >= (long)(iter->nv - 1)) + return 0; + iter->e++; + + *lat = self->lats[iter->e]; + *lon = self->lons[iter->e]; + if (val && iter->data) { + *val = iter->data[iter->e]; + } + return 1; +} + +static int destroy(grib_iterator* i) +{ + grib_iterator_healpix* self = (grib_iterator_healpix*)i; + const grib_context* c = i->h->context; + + grib_context_free(c, self->lats); + grib_context_free(c, self->lons); + return GRIB_SUCCESS; +} diff --git a/src/grib_iterator_class_lambert_azimuthal_equal_area.cc b/src/grib_iterator_class_lambert_azimuthal_equal_area.cc index f9b76d702..a945ee1d2 100644 --- a/src/grib_iterator_class_lambert_azimuthal_equal_area.cc +++ b/src/grib_iterator_class_lambert_azimuthal_equal_area.cc @@ -81,6 +81,8 @@ static void init_class(grib_iterator_class* c) } /* END_CLASS_IMP */ +#define ITER "Lambert azimuthal equal area Geoiterator" + static int next(grib_iterator* iter, double* lat, double* lon, double* val) { grib_iterator_lambert_azimuthal_equal_area* self = (grib_iterator_lambert_azimuthal_equal_area*)iter; @@ -227,12 +229,12 @@ static int init_oblate(grib_handle* h, /* Allocate latitude and longitude arrays */ self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } lats = self->lats; @@ -308,14 +310,12 @@ static int init_sphere(grib_handle* h, Dy = jScansPositively == 1 ? Dy / 1000 : -Dy / 1000; self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, - "Error allocating %ld bytes", nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, - "Error allocating %ld bytes", nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } lats = self->lats; @@ -435,9 +435,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) return err; if (iter->nv != nx * ny) { - grib_context_log(h->context, GRIB_LOG_ERROR, - "Wrong number of points (%ld!=%ldx%ld)", - iter->nv, nx, ny); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=%ldx%ld)", ITER, iter->nv, nx, ny); return GRIB_WRONG_GRID; } if ((err = grib_get_double_internal(h, slatFirstInDegrees, &latFirstInDegrees)) != GRIB_SUCCESS) diff --git a/src/grib_iterator_class_lambert_conformal.cc b/src/grib_iterator_class_lambert_conformal.cc index cf0000953..3e9d51055 100644 --- a/src/grib_iterator_class_lambert_conformal.cc +++ b/src/grib_iterator_class_lambert_conformal.cc @@ -204,12 +204,12 @@ static int init_sphere(grib_handle* h, /* Allocate latitude and longitude arrays */ self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } @@ -315,12 +315,12 @@ static int init_oblate(grib_handle* h, /* Allocate latitude and longitude arrays */ self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } @@ -414,7 +414,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) } if (iter->nv != nx * ny) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%ld!=%ldx%ld)", ITER, iter->nv, nx, ny); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=%ldx%ld)", ITER, iter->nv, nx, ny); return GRIB_WRONG_GRID; } diff --git a/src/grib_iterator_class_mercator.cc b/src/grib_iterator_class_mercator.cc index 1f19af9a8..19d7195ff 100644 --- a/src/grib_iterator_class_mercator.cc +++ b/src/grib_iterator_class_mercator.cc @@ -186,12 +186,12 @@ static int init_mercator(grib_handle* h, /* Allocate latitude and longitude arrays */ self->lats = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } @@ -270,7 +270,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) } if (iter->nv != ni * nj) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%ld!=%ldx%ld)", ITER, iter->nv, ni, nj); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=%ldx%ld)", ITER, iter->nv, ni, nj); return GRIB_WRONG_GRID; } diff --git a/src/grib_iterator_class_polar_stereographic.cc b/src/grib_iterator_class_polar_stereographic.cc index 753649141..b9c0314a3 100644 --- a/src/grib_iterator_class_polar_stereographic.cc +++ b/src/grib_iterator_class_polar_stereographic.cc @@ -164,7 +164,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) return ret; if (iter->nv != nx * ny) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%ld!=%ldx%ld)", ITER, iter->nv, nx, ny); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=%ldx%ld)", ITER, iter->nv, nx, ny); return GRIB_WRONG_GRID; } if ((ret = grib_get_double_internal(h, s_latFirstInDegrees, &latFirstInDegrees)) != GRIB_SUCCESS) @@ -244,12 +244,12 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) } self->lats = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, iter->nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, iter->nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, iter->nv * sizeof(double)); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %ld bytes", ITER, iter->nv * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, iter->nv * sizeof(double)); return GRIB_OUT_OF_MEMORY; } lats = self->lats; diff --git a/src/grib_iterator_class_regular.cc b/src/grib_iterator_class_regular.cc index cc870e70a..857112261 100644 --- a/src/grib_iterator_class_regular.cc +++ b/src/grib_iterator_class_regular.cc @@ -98,6 +98,7 @@ static void init_class(grib_iterator_class* c) } /* END_CLASS_IMP */ +#define ITER "Regular grid Geoiterator" static int next(grib_iterator* iter, double* lat, double* lon, double* val) { @@ -148,7 +149,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) long Ni; /* Number of points along a parallel = Nx */ long Nj; /* Number of points along a meridian = Ny */ - double idir, lon1, lon2; + double idir, idir_coded, lon1, lon2; long loi; const char* s_lon1 = grib_arguments_get_name(h, args, self->carg++); @@ -163,17 +164,23 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) return ret; if ((ret = grib_get_double_internal(h, s_idir, &idir))) // can be GRIB_MISSING_DOUBLE return ret; + idir_coded = idir; if ((ret = grib_get_long_internal(h, s_Ni, &Ni))) return ret; if (grib_is_missing(h, s_Ni, &ret) && ret == GRIB_SUCCESS) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Key %s cannot be 'missing' for a regular grid!", s_Ni); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Key %s cannot be 'missing' for a regular grid!", ITER, s_Ni); return GRIB_WRONG_GRID; } if ((ret = grib_get_long_internal(h, s_Nj, &Nj))) return ret; if (grib_is_missing(h, s_Nj, &ret) && ret == GRIB_SUCCESS) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Key %s cannot be 'missing' for a regular grid!", s_Nj); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Key %s cannot be 'missing' for a regular grid!", ITER, s_Nj); + return GRIB_WRONG_GRID; + } + + if (Ni*Nj != iter->nv) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Ni*Nj!=numberOfDataPoints (%ld*%ld!=%zu)", ITER, Ni, Nj, iter->nv); return GRIB_WRONG_GRID; } @@ -218,6 +225,10 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) self->las = (double*)grib_context_malloc(h->context, Nj * sizeof(double)); self->los = (double*)grib_context_malloc(h->context, Ni * sizeof(double)); + if (idir != idir_coded) { + grib_context_log(h->context, GRIB_LOG_DEBUG, "%s: Using idir=%g (coded value=%g)", ITER, idir, idir_coded); + } + for (loi = 0; loi < Ni; loi++) { self->los[loi] = lon1; lon1 += idir; @@ -225,7 +236,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) /* ECC-1406: Due to rounding, errors can accumulate. * So we ensure the last longitude is longitudeOfLastGridPointInDegrees */ - self->los[Ni-1] = lon2; + self->los[Ni-1] = normalise_longitude_in_degrees(lon2); // Also see ECC-1671 return ret; } diff --git a/src/grib_iterator_class_space_view.cc b/src/grib_iterator_class_space_view.cc index c2e402e59..1622f94a5 100644 --- a/src/grib_iterator_class_space_view.cc +++ b/src/grib_iterator_class_space_view.cc @@ -81,6 +81,8 @@ static void init_class(grib_iterator_class* c) } /* END_CLASS_IMP */ +#define ITER "Space view Geoiterator" + static int next(grib_iterator* iter, double* lat, double* lon, double* val) { grib_iterator_space_view* self = (grib_iterator_space_view*)iter; @@ -178,7 +180,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) const char* sXpInGridLengths = grib_arguments_get_name(h, args, self->carg++); const char* sYpInGridLengths = grib_arguments_get_name(h, args, self->carg++); const char* sOrientationInDegrees = grib_arguments_get_name(h, args, self->carg++); - const char* sNrInRadiusOfEarth = grib_arguments_get_name(h, args, self->carg++); + const char* sNrInRadiusOfEarthScaled = grib_arguments_get_name(h, args, self->carg++); const char* sXo = grib_arguments_get_name(h, args, self->carg++); const char* sYo = grib_arguments_get_name(h, args, self->carg++); @@ -206,7 +208,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) } if (iter->nv != nx * ny) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Wrong number of points (%ld!=%ldx%ld)", iter->nv, nx, ny); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Wrong number of points (%zu!=%ldx%ld)", ITER, iter->nv, nx, ny); return GRIB_WRONG_GRID; } if ((ret = grib_get_double_internal(h, sLatOfSubSatellitePointInDegrees, &latOfSubSatellitePointInDegrees)) != GRIB_SUCCESS) @@ -225,11 +227,11 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) return ret; /* Orthographic not supported. This happens when Nr (camera altitude) is missing */ - if (grib_is_missing(h, sNrInRadiusOfEarth, &ret)) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Space View: Orthographic view (Nr missing) not supported"); - return GRIB_NOT_IMPLEMENTED; + if (grib_is_missing(h, "Nr", &ret)) { + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Orthographic view (Nr missing) not supported", ITER); + return GRIB_GEOCALCULUS_PROBLEM; } - if ((ret = grib_get_double_internal(h, sNrInRadiusOfEarth, &nrInRadiusOfEarth)) != GRIB_SUCCESS) + if ((ret = grib_get_double_internal(h, sNrInRadiusOfEarthScaled, &nrInRadiusOfEarth)) != GRIB_SUCCESS) return ret; if ((ret = grib_get_long_internal(h, sXo, &Xo)) != GRIB_SUCCESS) @@ -254,7 +256,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) } if (nrInRadiusOfEarth == 0) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Space View: Key %s must be greater than zero", sNrInRadiusOfEarth); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Key %s must be greater than zero", ITER, sNrInRadiusOfEarthScaled); return GRIB_GEOCALCULUS_PROBLEM; } @@ -265,8 +267,8 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) lop = lonOfSubSatellitePointInDegrees; if (lap != 0.0) { grib_context_log(h->context, GRIB_LOG_ERROR, - "Space View: Key '%s' must be 0 (satellite must be located in the equator plane)", - sLatOfSubSatellitePointInDegrees); + "%s: Key %s must be 0 (satellite must be located in the equator plane)", + ITER, sLatOfSubSatellitePointInDegrees); return GRIB_GEOCALCULUS_PROBLEM; } @@ -280,7 +282,7 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) /* adjustBadlyEncodedEcmwfGribs(h, &nx, &ny, &dx, &dy, &xp, &yp); */ if (dx == 0 || dy == 0) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Space View: Keys %s and %s must be greater than zero", sDx, sDy); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Keys %s and %s must be greater than zero", ITER, sDx, sDy); return GRIB_GEOCALCULUS_PROBLEM; } rx = angular_size / dx; @@ -288,12 +290,12 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) self->lats = (double*)grib_context_malloc(h->context, array_size); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", array_size); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, array_size); return GRIB_OUT_OF_MEMORY; } self->lons = (double*)grib_context_malloc(h->context, array_size); if (!self->lats) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", array_size); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, array_size); return GRIB_OUT_OF_MEMORY; } lats = self->lats; @@ -318,12 +320,12 @@ static int init(grib_iterator* iter, grib_handle* h, grib_arguments* args) /* Store array of sin and cosine values to avoid recalculation */ s_x = (double*)grib_context_malloc(h->context, nx * sizeof(double)); if (!s_x) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nx * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nx * sizeof(double)); return GRIB_OUT_OF_MEMORY; } c_x = (double*)grib_context_malloc(h->context, nx * sizeof(double)); if (!c_x) { - grib_context_log(h->context, GRIB_LOG_ERROR, "Error allocating %ld bytes", nx * sizeof(double)); + grib_context_log(h->context, GRIB_LOG_ERROR, "%s: Error allocating %zu bytes", ITER, nx * sizeof(double)); return GRIB_OUT_OF_MEMORY; } diff --git a/src/grib_iterator_factory.h b/src/grib_iterator_factory.h index ad46ced1e..206a6d140 100644 --- a/src/grib_iterator_factory.h +++ b/src/grib_iterator_factory.h @@ -2,6 +2,7 @@ { "gaussian", &grib_iterator_class_gaussian, }, { "gaussian_reduced", &grib_iterator_class_gaussian_reduced, }, { "gen", &grib_iterator_class_gen, }, +{ "healpix", &grib_iterator_class_healpix, }, { "lambert_azimuthal_equal_area", &grib_iterator_class_lambert_azimuthal_equal_area, }, { "lambert_conformal", &grib_iterator_class_lambert_conformal, }, { "latlon", &grib_iterator_class_latlon, }, diff --git a/src/grib_loader_from_handle.cc b/src/grib_loader_from_handle.cc index e47f9fa92..db2721598 100644 --- a/src/grib_loader_from_handle.cc +++ b/src/grib_loader_from_handle.cc @@ -156,9 +156,12 @@ int grib_init_accessor_from_handle(grib_loader* loader, grib_accessor* ga, grib_ pack_missing = 1; } - long ga_type = grib_accessor_get_native_type(ga); - if (STR_EQUAL(name,"level")) { // See ECC-1560 - ga_type = GRIB_TYPE_DOUBLE; + const long ga_type = grib_accessor_get_native_type(ga); + + if ((ga->flags & GRIB_ACCESSOR_FLAG_COPY_IF_CHANGING_EDITION) && !loader->changing_edition) { + // See ECC-1560 and ECC-1644 + grib_context_log(h->context, GRIB_LOG_DEBUG, "Skipping %s (only copied if changing edition)", ga->name); + return GRIB_SUCCESS; } switch (ga_type) { diff --git a/src/grib_nearest.cc b/src/grib_nearest.cc index 1bacbe767..1367daaf3 100644 --- a/src/grib_nearest.cc +++ b/src/grib_nearest.cc @@ -295,8 +295,6 @@ int grib_nearest_find_generic( double inlat, double inlon, unsigned long flags, const char* values_keyname, - const char* Ni_keyname, - const char* Nj_keyname, double** out_lats, int* out_lats_count, double** out_lons, @@ -343,13 +341,6 @@ int grib_nearest_find_generic( double lat1 = 0, lat2 = 0; /* inlat will be between these */ const double LAT_DELTA = 10.0; /* in degrees */ - /* Note: If this is being called for a REDUCED grid, its Ni will be missing */ - - if (grib_is_missing(h, Nj_keyname, &ret)) { - grib_context_log(h->context, GRIB_LOG_DEBUG, "Key '%s' is missing", Nj_keyname); - return ret ? ret : GRIB_GEOCALCULUS_PROBLEM; - } - *out_lons_count = nvalues; /* Maybe overestimate but safe */ *out_lats_count = nvalues; @@ -366,8 +357,10 @@ int grib_nearest_find_generic( return GRIB_OUT_OF_MEMORY; iter = grib_iterator_new(h, 0, &ret); - if (ret) + if (ret) { + free(neighbours); return ret; + } /* First pass: collect all latitudes and longitudes */ while (grib_iterator_next(iter, &lat, &lon, &the_value)) { ++the_index; diff --git a/src/grib_nearest_class.cc b/src/grib_nearest_class.cc index edb4c74cc..42e618ff8 100644 --- a/src/grib_nearest_class.cc +++ b/src/grib_nearest_class.cc @@ -8,11 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/* - * - */ - - #include "grib_api_internal.h" #define NUMBER(x) (sizeof(x) / sizeof(x[0])) @@ -31,26 +26,28 @@ static const struct table_entry table[] = { #include "grib_nearest_factory.h" }; -grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args) +grib_nearest* grib_nearest_factory(grib_handle* h, grib_arguments* args, int* error) { size_t i = 0; - int ret = GRIB_SUCCESS; + *error = GRIB_NOT_IMPLEMENTED; char* type = (char*)grib_arguments_get_name(h, args, 0); - for (i = 0; i < NUMBER(table); i++) + for (i = 0; i < NUMBER(table); i++) { if (strcmp(type, table[i].type) == 0) { grib_nearest_class* c = *(table[i].cclass); grib_nearest* it = (grib_nearest*)grib_context_malloc_clear(h->context, c->size); it->cclass = c; - ret = grib_nearest_init(it, h, args); - if (ret == GRIB_SUCCESS) + *error = grib_nearest_init(it, h, args); + if (*error == GRIB_SUCCESS) return it; - grib_context_log(h->context, GRIB_LOG_ERROR, "grib_nearest_factory: error %d instantiating nearest %s", ret, table[i].type); + grib_context_log(h->context, GRIB_LOG_ERROR, "grib_nearest_factory: Error instantiating nearest %s (%s)", + table[i].type, grib_get_error_message(*error)); grib_nearest_delete(it); return NULL; } + } - grib_context_log(h->context, GRIB_LOG_ERROR, "grib_nearest_factory : Unknown type : %s for nearest", type); + grib_context_log(h->context, GRIB_LOG_ERROR, "grib_nearest_factory: Unknown type: %s", type); return NULL; } diff --git a/src/grib_nearest_class.h b/src/grib_nearest_class.h index e6e58ed80..a1341806a 100644 --- a/src/grib_nearest_class.h +++ b/src/grib_nearest_class.h @@ -1,5 +1,6 @@ /* This file is automatically generated by ./make_class.pl, do not edit */ extern grib_nearest_class* grib_nearest_class_gen; +extern grib_nearest_class* grib_nearest_class_healpix; extern grib_nearest_class* grib_nearest_class_lambert_azimuthal_equal_area; extern grib_nearest_class* grib_nearest_class_lambert_conformal; extern grib_nearest_class* grib_nearest_class_latlon_reduced; @@ -7,5 +8,4 @@ extern grib_nearest_class* grib_nearest_class_mercator; extern grib_nearest_class* grib_nearest_class_polar_stereographic; extern grib_nearest_class* grib_nearest_class_reduced; extern grib_nearest_class* grib_nearest_class_regular; -extern grib_nearest_class* grib_nearest_class_sh; extern grib_nearest_class* grib_nearest_class_space_view; diff --git a/src/grib_nearest_class_healpix.cc b/src/grib_nearest_class_healpix.cc new file mode 100644 index 000000000..915556a76 --- /dev/null +++ b/src/grib_nearest_class_healpix.cc @@ -0,0 +1,134 @@ +/* + * (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 "grib_api_internal.h" + +/* + This is used by make_class.pl + + START_CLASS_DEF + CLASS = nearest + SUPER = grib_nearest_class_gen + IMPLEMENTS = init + IMPLEMENTS = find;destroy + MEMBERS = double* lats + MEMBERS = int lats_count + MEMBERS = double* lons + MEMBERS = int lons_count + MEMBERS = double* distances + MEMBERS = int* k + MEMBERS = int* i + MEMBERS = int* j + MEMBERS = const char* Ni + MEMBERS = const char* Nj + END_CLASS_DEF + + */ + +/* START_CLASS_IMP */ + +/* + +Don't edit anything between START_CLASS_IMP and END_CLASS_IMP +Instead edit values between START_CLASS_DEF and END_CLASS_DEF +or edit "nearest.class" and rerun ./make_class.pl + +*/ + + +static void init_class (grib_nearest_class*); + +static int init (grib_nearest* nearest,grib_handle* h,grib_arguments* args); +static int find(grib_nearest* nearest, grib_handle* h,double inlat, double inlon, unsigned long flags, double* outlats,double* outlons, double *values,double *distances, int *indexes,size_t *len); +static int destroy (grib_nearest* nearest); + +typedef struct grib_nearest_healpix{ + grib_nearest nearest; + /* Members defined in gen */ + const char* values_key; + const char* radius; + int cargs; + /* Members defined in healpix */ + double* lats; + int lats_count; + double* lons; + int lons_count; + double* distances; + int* k; + int* i; + int* j; + const char* Ni; + const char* Nj; +} grib_nearest_healpix; + +extern grib_nearest_class* grib_nearest_class_gen; + +static grib_nearest_class _grib_nearest_class_healpix = { + &grib_nearest_class_gen, /* super */ + "healpix", /* name */ + sizeof(grib_nearest_healpix), /* size of instance */ + 0, /* inited */ + &init_class, /* init_class */ + &init, /* constructor */ + &destroy, /* destructor */ + &find, /* find nearest */ +}; + +grib_nearest_class* grib_nearest_class_healpix = &_grib_nearest_class_healpix; + + +static void init_class(grib_nearest_class* c) +{ +} +/* END_CLASS_IMP */ + +static int init(grib_nearest* nearest, grib_handle* h, grib_arguments* args) +{ + grib_nearest_healpix* self = (grib_nearest_healpix*)nearest; + self->Ni = grib_arguments_get_name(h, args, self->cargs++); + self->Nj = grib_arguments_get_name(h, args, self->cargs++); + self->lats = self->lons = self->distances = NULL; + self->lats_count = self->lons_count = 0; + self->i = (int*)grib_context_malloc(h->context, 2 * sizeof(int)); + self->j = (int*)grib_context_malloc(h->context, 2 * sizeof(int)); + return GRIB_SUCCESS; +} + +static int find(grib_nearest* nearest, grib_handle* h, + double inlat, double inlon, unsigned long flags, + double* outlats, double* outlons, + double* values, double* distances, int* indexes, size_t* len) +{ + grib_nearest_healpix* self = (grib_nearest_healpix*)nearest; + return grib_nearest_find_generic( + nearest, h, inlat, inlon, flags, /* inputs */ + + self->values_key, /* outputs to set the 'self' object */ + &(self->lats), + &(self->lats_count), + &(self->lons), + &(self->lons_count), + &(self->distances), + + outlats, outlons, /* outputs of the find function */ + values, distances, indexes, len); +} + +static int destroy(grib_nearest* nearest) +{ + grib_nearest_healpix* self = (grib_nearest_healpix*)nearest; + if (self->lats) grib_context_free(nearest->context, self->lats); + if (self->lons) grib_context_free(nearest->context, self->lons); + if (self->i) grib_context_free(nearest->context, self->i); + if (self->j) grib_context_free(nearest->context, self->j); + if (self->k) grib_context_free(nearest->context, self->k); + if (self->distances) grib_context_free(nearest->context, self->distances); + return GRIB_SUCCESS; +} diff --git a/src/grib_nearest_class_lambert_azimuthal_equal_area.cc b/src/grib_nearest_class_lambert_azimuthal_equal_area.cc index fb193d915..911827ffd 100644 --- a/src/grib_nearest_class_lambert_azimuthal_equal_area.cc +++ b/src/grib_nearest_class_lambert_azimuthal_equal_area.cc @@ -109,8 +109,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->Ni, - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_lambert_conformal.cc b/src/grib_nearest_class_lambert_conformal.cc index 7a538b8d1..883f3a868 100644 --- a/src/grib_nearest_class_lambert_conformal.cc +++ b/src/grib_nearest_class_lambert_conformal.cc @@ -109,8 +109,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->Ni, - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_latlon_reduced.cc b/src/grib_nearest_class_latlon_reduced.cc index 9262723c6..992b29f2e 100644 --- a/src/grib_nearest_class_latlon_reduced.cc +++ b/src/grib_nearest_class_latlon_reduced.cc @@ -142,8 +142,6 @@ static int find(grib_nearest* nearest, grib_handle* h, err = grib_nearest_find_generic( nearest, h, inlat, inlon, flags, self->values_key, - "Ni", - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_mercator.cc b/src/grib_nearest_class_mercator.cc index 62fdd60d6..c966012d4 100644 --- a/src/grib_nearest_class_mercator.cc +++ b/src/grib_nearest_class_mercator.cc @@ -111,8 +111,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->Ni, - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_polar_stereographic.cc b/src/grib_nearest_class_polar_stereographic.cc index f07e6a3e4..a160db445 100644 --- a/src/grib_nearest_class_polar_stereographic.cc +++ b/src/grib_nearest_class_polar_stereographic.cc @@ -109,8 +109,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->Ni, - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_reduced.cc b/src/grib_nearest_class_reduced.cc index 9556149c9..603c1a441 100644 --- a/src/grib_nearest_class_reduced.cc +++ b/src/grib_nearest_class_reduced.cc @@ -169,8 +169,6 @@ static int find(grib_nearest* nearest, grib_handle* h, err = grib_nearest_find_generic( nearest, h, inlat, inlon, flags, self->values_key, - "Ni", - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_class_space_view.cc b/src/grib_nearest_class_space_view.cc index e698498f5..8d471b8fa 100644 --- a/src/grib_nearest_class_space_view.cc +++ b/src/grib_nearest_class_space_view.cc @@ -109,8 +109,6 @@ static int find(grib_nearest* nearest, grib_handle* h, nearest, h, inlat, inlon, flags, /* inputs */ self->values_key, /* outputs to set the 'self' object */ - self->Ni, - self->Nj, &(self->lats), &(self->lats_count), &(self->lons), diff --git a/src/grib_nearest_factory.h b/src/grib_nearest_factory.h index bf9f01ec7..837524914 100644 --- a/src/grib_nearest_factory.h +++ b/src/grib_nearest_factory.h @@ -1,5 +1,6 @@ /* This file is automatically generated by ./make_class.pl, do not edit */ { "gen", &grib_nearest_class_gen, }, +{ "healpix", &grib_nearest_class_healpix, }, { "lambert_azimuthal_equal_area", &grib_nearest_class_lambert_azimuthal_equal_area, }, { "lambert_conformal", &grib_nearest_class_lambert_conformal, }, { "latlon_reduced", &grib_nearest_class_latlon_reduced, }, @@ -7,5 +8,4 @@ { "polar_stereographic", &grib_nearest_class_polar_stereographic, }, { "reduced", &grib_nearest_class_reduced, }, { "regular", &grib_nearest_class_regular, }, -{ "sh", &grib_nearest_class_sh, }, { "space_view", &grib_nearest_class_space_view, }, diff --git a/src/grib_oarray.cc b/src/grib_oarray.cc index 54a4ca2a5..91e7d9f33 100644 --- a/src/grib_oarray.cc +++ b/src/grib_oarray.cc @@ -8,12 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * - * Enrico Fucile - * - ***************************************************************************/ - #include "grib_api_internal.h" grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize) @@ -24,7 +18,7 @@ grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize) v = (grib_oarray*)grib_context_malloc_clear(c, sizeof(grib_oarray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_oarray_new unable to allocate %lu bytes\n", sizeof(grib_oarray)); + "grib_oarray_new unable to allocate %zu bytes", sizeof(grib_oarray)); return NULL; } v->size = size; @@ -34,7 +28,7 @@ grib_oarray* grib_oarray_new(grib_context* c, size_t size, size_t incsize) v->context = c; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_oarray_new unable to allocate %lu bytes\n", sizeof(char*) * size); + "grib_oarray_new unable to allocate %zu bytes", sizeof(char*) * size); return NULL; } return v; @@ -51,7 +45,7 @@ static grib_oarray* grib_oarray_resize(grib_oarray* v) v->size = newsize; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_oarray_resize unable to allocate %lu bytes\n", sizeof(char*) * newsize); + "grib_oarray_resize unable to allocate %zu bytes", sizeof(char*) * newsize); return NULL; } return v; @@ -98,17 +92,17 @@ void grib_oarray_delete(grib_context* c, grib_oarray* v) // v->n = 0; // } -void** grib_oarray_get_array(grib_context* c, grib_oarray* v) -{ - void** ret = NULL; - size_t i = 0; - if (!v) - return NULL; - ret = (void**)grib_context_malloc_clear(c, sizeof(char*) * v->n); - for (i = 0; i < v->n; i++) - ret[i] = v->v[i]; - return ret; -} +// void** grib_oarray_get_array(grib_context* c, grib_oarray* v) +// { +// void** ret = NULL; +// size_t i = 0; +// if (!v) +// return NULL; +// ret = (void**)grib_context_malloc_clear(c, sizeof(char*) * v->n); +// for (i = 0; i < v->n; i++) +// ret[i] = v->v[i]; +// return ret; +// } void* grib_oarray_get(grib_oarray* v, int i) { @@ -117,8 +111,3 @@ void* grib_oarray_get(grib_oarray* v, int i) return NULL; return v->v[i]; } - -size_t grib_oarray_used_size(grib_oarray* v) -{ - return v->n; -} diff --git a/src/grib_parse_utils.cc b/src/grib_parse_utils.cc index e7c752f09..db8897930 100644 --- a/src/grib_parse_utils.cc +++ b/src/grib_parse_utils.cc @@ -473,7 +473,8 @@ int grib_recompose_print(grib_handle* h, grib_accessor* observer, const char* un break; case '!': pp = (char*)uname; - if (string_to_long(uname + i + 1, &numcols) == GRIB_SUCCESS) { + // Turn off strict as the input string will have a final ']' suffix + if (string_to_long(uname + i + 1, &numcols, /*strict=*/0) == GRIB_SUCCESS) { maxcols = (int)numcols; } else { @@ -803,26 +804,22 @@ grib_hash_array_value* grib_parse_hash_array_file(grib_context* gc, const char* } } -grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename) -{ - if (!gc) - gc = grib_context_get_default(); - - GRIB_MUTEX_INIT_ONCE(&once, &init); - GRIB_MUTEX_LOCK(&mutex_rules); - - gc = gc ? gc : grib_context_get_default(); - grib_parser_context = gc; - - if (parse(gc, filename) == 0) { - GRIB_MUTEX_UNLOCK(&mutex_rules); - return grib_parser_rules; - } - else { - GRIB_MUTEX_UNLOCK(&mutex_rules); - return NULL; - } -} +// grib_rule* grib_parse_rules_file(grib_context* gc, const char* filename) +// { +// if (!gc) gc = grib_context_get_default(); +// GRIB_MUTEX_INIT_ONCE(&once, &init); +// GRIB_MUTEX_LOCK(&mutex_rules); +// gc = gc ? gc : grib_context_get_default(); +// grib_parser_context = gc; +// if (parse(gc, filename) == 0) { +// GRIB_MUTEX_UNLOCK(&mutex_rules); +// return grib_parser_rules; +// } +// else { +// GRIB_MUTEX_UNLOCK(&mutex_rules); +// return NULL; +// } +// } grib_action* grib_parse_file(grib_context* gc, const char* filename) { diff --git a/src/grib_scaling.cc b/src/grib_scaling.cc index 41e77e28e..e49a1e6dc 100644 --- a/src/grib_scaling.cc +++ b/src/grib_scaling.cc @@ -8,10 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/************************************** - * Enrico Fucile - **************************************/ - #include "grib_scaling.h" #include "grib_api_internal.h" @@ -21,7 +17,7 @@ double grib_power(long s, long n) { return codes_power(s, n); } -long grib_get_binary_scale_fact(double max, double min, long bpval, int* ret) +long grib_get_binary_scale_fact(double max, double min, long bpval, int* error) { double range = max - min; double zs = 1; @@ -35,20 +31,19 @@ long grib_get_binary_scale_fact(double max, double min, long bpval, int* ret) double dmaxint=(double)maxint; */ if (bpval >= ulong_size) { - *ret = GRIB_OUT_OF_RANGE; /*overflow*/ + *error = GRIB_OUT_OF_RANGE; /*overflow*/ return 0; } const double dmaxint = codes_power(bpval, 2) - 1; maxint = (unsigned long)dmaxint; /* Now it's safe to cast */ - *ret = 0; + *error = 0; if (bpval < 1) { - *ret = GRIB_ENCODING_ERROR; /* constant field */ + *error = GRIB_ENCODING_ERROR; /* constant field */ return 0; } Assert(bpval >= 1); - /* printf("---- Maxint %ld range=%g\n",maxint,range); */ if (range == 0) return 0; @@ -74,95 +69,77 @@ long grib_get_binary_scale_fact(double max, double min, long bpval, int* ret) } if (scale < -last) { - *ret = GRIB_UNDERFLOW; - /*printf("grib_get_binary_scale_fact: max=%g min=%g\n",max,min);*/ + *error = GRIB_UNDERFLOW; scale = -last; } Assert(scale <= last); return scale; } -long grib_get_bits_per_value(double max, double min, long binary_scale_factor) -{ - double range = max - min; - double zs = 1; - long scale = 0; - const long last = 127; /* Depends on edition, should be parameter */ - - unsigned long maxint = codes_power(binary_scale_factor, 2) - 1; - double dmaxint = (double)maxint; - - if (maxint == 0) - maxint = 1; - - /* printf("---- Maxint %ld range=%g\n",maxint,range); */ - if (range == 0) - return 0; - - /* range -= 1e-10; */ - while ((range * zs) <= dmaxint) { - scale--; - zs *= 2; - } - - while ((range * zs) > dmaxint) { - scale++; - zs /= 2; - } - - while ((unsigned long)(range * zs + 0.5) <= maxint) { - scale--; - zs *= 2; - } - - while ((unsigned long)(range * zs + 0.5) > maxint) { - scale++; - zs /= 2; - } - - Assert(scale >= -last && scale <= last); - /* printf("---- scale=%ld\n",scale);*/ - - return scale; -} - -long grib_get_decimal_scale_fact(double max, double min, long bpval, long binary_scale) -{ - double range = max - min; - double zs = 1; - long scale = 0; - const long last = 127; /* Depends on edition, should be parameter */ - - unsigned long maxint = codes_power(bpval, 2) - 1; - double dmaxint = (double)maxint; - - range *= codes_power(-binary_scale, 2); - - Assert(bpval >= 1); - if (range == 0) - return 0; - - while ((range * zs) > dmaxint) { - scale--; - zs /= 10; - } - while ((range * zs) <= dmaxint) { - scale++; - zs *= 10; - } - - while ((unsigned long)(range * zs + 0.5) > maxint) { - scale--; - zs /= 10; - } - while ((unsigned long)(range * zs + 0.5) <= maxint) { - scale++; - zs *= 10; - } - - /* printf("grib_api: decimal_scale_fact=%ld max=%g min=%g bits_per_value=%ld binary_scale=%ld\n",scale,max,min,bpval,binary_scale); */ - - Assert(scale >= -last && scale <= last); - - return scale; -} +// long grib_get_bits_per_value(double max, double min, long binary_scale_factor) +// { +// double range = max - min; +// double zs = 1; +// long scale = 0; +// const long last = 127; /* Depends on edition, should be parameter */ +// unsigned long maxint = codes_power(binary_scale_factor, 2) - 1; +// double dmaxint = (double)maxint; +// if (maxint == 0) +// maxint = 1; +// /* printf("---- Maxint %ld range=%g\n",maxint,range); */ +// if (range == 0) +// return 0; +// /* range -= 1e-10; */ +// while ((range * zs) <= dmaxint) { +// scale--; +// zs *= 2; +// } +// while ((range * zs) > dmaxint) { +// scale++; +// zs /= 2; +// } +// while ((unsigned long)(range * zs + 0.5) <= maxint) { +// scale--; +// zs *= 2; +// } +// while ((unsigned long)(range * zs + 0.5) > maxint) { +// scale++; +// zs /= 2; +// } +// Assert(scale >= -last && scale <= last); +// /* printf("---- scale=%ld\n",scale);*/ +// return scale; +// } + +// long grib_get_decimal_scale_fact(double max, double min, long bpval, long binary_scale) +// { +// double range = max - min; +// double zs = 1; +// long scale = 0; +// const long last = 127; /* Depends on edition, should be parameter */ +// unsigned long maxint = codes_power(bpval, 2) - 1; +// double dmaxint = (double)maxint; +// range *= codes_power(-binary_scale, 2); +// Assert(bpval >= 1); +// if (range == 0) +// return 0; +// while ((range * zs) > dmaxint) { +// scale--; +// zs /= 10; +// } +// while ((range * zs) <= dmaxint) { +// scale++; +// zs *= 10; +// } +// while ((unsigned long)(range * zs + 0.5) > maxint) { +// scale--; +// zs /= 10; +// } +// while ((unsigned long)(range * zs + 0.5) <= maxint) { +// scale++; +// zs *= 10; +// } +// /* printf("grib_api: decimal_scale_fact=%ld max=%g min=%g bits_per_value=%ld binary_scale=%ld\n",scale,max,min,bpval,binary_scale); */ +// Assert(scale >= -last && scale <= last); +// return scale; +// } diff --git a/src/grib_timer.cc b/src/grib_timer.cc index 4d41591de..c0b380c00 100644 --- a/src/grib_timer.cc +++ b/src/grib_timer.cc @@ -338,7 +338,7 @@ grib_timer* grib_get_timer(grib_context* c, const char* name, const char* statna { if (!c) c = grib_context_get_default(); - grib_context_log(c, GRIB_LOG_FATAL, "grib_get_timer function not available"); + grib_context_log(c, GRIB_LOG_ERROR, "%s function not available", __func__); return NULL; } @@ -359,24 +359,18 @@ double grib_timer_value(grib_timer* t) void grib_timer_print(grib_timer* t) { - return; } - void grib_timer_partial_rate(grib_timer* t, double start, long total) { - return; } void grib_print_all_timers() { - return; } void grib_reset_all_timers() { - return; } - #endif diff --git a/src/grib_trie_with_rank.cc b/src/grib_trie_with_rank.cc index 9fd326701..d999f9f1f 100644 --- a/src/grib_trie_with_rank.cc +++ b/src/grib_trie_with_rank.cc @@ -485,7 +485,7 @@ int grib_trie_with_rank_insert(grib_trie_with_rank* t, const char* key, void* da grib_oarray_push(t->context, t->objs, data); /* grib_trie_with_rank_insert_in_list(t,data); */ GRIB_MUTEX_UNLOCK(&mutex); - return t->objs->n; /* grib_oarray_used_size(t->objs) */ + return t->objs->n; } /* diff --git a/src/grib_util.cc b/src/grib_util.cc index 9e69d269d..5b8f5b9cc 100644 --- a/src/grib_util.cc +++ b/src/grib_util.cc @@ -114,7 +114,7 @@ static grib_handle* grib_sections_copy_internal(grib_handle* hfrom, grib_handle* h = grib_handle_new_from_message(hfrom->context, buffer, totalLength); /*to allow free of buffer*/ - h->buffer->property = GRIB_MY_BUFFER; + h->buffer->property = CODES_MY_BUFFER; switch (edition) { case 1: @@ -374,14 +374,16 @@ static const char* get_packing_spec_packing_type_name(long packing_spec_packing_ /* For debugging purposes */ static void print_values(grib_context* c, - const grib_util_grid_spec2* spec, + const grib_util_grid_spec* spec, const grib_util_packing_spec* packing_spec, + const char* input_packing_type, const double* data_values, const size_t data_values_count, /* the data pay load */ const grib_values* keyval_pairs, const size_t count) /* keys and their values */ { size_t i = 0; int isConstant = 1; double v = 0, minVal = DBL_MAX, maxVal = -DBL_MAX; + fprintf(stderr, "ECCODES DEBUG grib_util: input_packing_type = %s\n", input_packing_type); fprintf(stderr, "ECCODES DEBUG grib_util: grib_set_values, setting %zu key/value pairs\n", count); for (i = 0; i < count; i++) { @@ -612,7 +614,7 @@ static int check_values(const double* data_values, size_t data_values_count) return GRIB_SUCCESS; }*/ -static int check_geometry(grib_handle* handle, const grib_util_grid_spec2* spec, +static int check_geometry(grib_handle* handle, const grib_util_grid_spec* spec, size_t data_values_count, int specified_as_global) { int err = 0; @@ -625,8 +627,8 @@ static int check_geometry(grib_handle* handle, const grib_util_grid_spec2* spec, strcpy(msg, "Specified to be global (in spec)"); sum = sum_of_pl_array(spec->pl, spec->pl_size); if (sum != data_values_count) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Invalid reduced gaussian grid: %s but data_values_count != sum_of_pl_array (%zu!=%zu)\n", - msg, data_values_count, sum); + fprintf(stderr, "%s: Invalid reduced gaussian grid: %s but data_values_count != sum_of_pl_array (%zu!=%zu)\n", + __func__, msg, data_values_count, sum); return GRIB_WRONG_GRID; } } @@ -634,11 +636,12 @@ static int check_geometry(grib_handle* handle, const grib_util_grid_spec2* spec, return err; } + #if defined(CHECK_HANDLE_AGAINST_SPEC) /* Check what is coded in the handle is what is requested by the spec. */ /* Return GRIB_SUCCESS if the geometry matches, otherwise the error code */ static int check_handle_against_spec(grib_handle* handle, const long edition, - const grib_util_grid_spec2* spec, int global_grid) + const grib_util_grid_spec* spec, int global_grid) { int err = 0; int check_latitudes = 1; @@ -763,6 +766,19 @@ static int check_handle_against_spec(grib_handle* handle, const long edition, } #endif +static bool grid_type_is_supported_in_edition(const int spec_grid_type, const long edition) +{ + if (edition == 1) { + if (spec_grid_type == GRIB_UTIL_GRID_SPEC_UNSTRUCTURED || + spec_grid_type == GRIB_UTIL_GRID_SPEC_HEALPIX || + spec_grid_type == GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA) + { + return false; + } + } + return true; +} + static const char* get_grid_type_name(const int spec_grid_type) { if (spec_grid_type == GRIB_UTIL_GRID_SPEC_REGULAR_LL) @@ -798,6 +814,9 @@ static const char* get_grid_type_name(const int spec_grid_type) if (spec_grid_type == GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL) return "lambert"; + if (spec_grid_type == GRIB_UTIL_GRID_SPEC_HEALPIX) + return "healpix"; + if (spec_grid_type == GRIB_UTIL_GRID_SPEC_UNSTRUCTURED) return "unstructured_grid"; @@ -826,58 +845,66 @@ static int is_constant_field(const double missingValue, const double* data_value return constant; } -grib_handle* grib_util_set_spec(grib_handle* h, - const grib_util_grid_spec* spec, - const grib_util_packing_spec* packing_spec, - int flags, - const double* data_values, - size_t data_values_count, - int* err) +// Utility function for when we fail to set the GRIB data values. +// Write out a text file called error.data containing the count of values +// and the actual values as doubles +static int write_out_error_data_file(const double* data_values, size_t data_values_count) { - /* Create a spec v2 from spec v1 */ - grib_util_grid_spec2 spec2; - Assert(h); + FILE* ferror = fopen("error.data", "w"); + size_t lcount = 0; + fprintf(ferror, "# data_values_count=%zu\n", data_values_count); + fprintf(ferror, "set values={ "); + for (size_t ii = 0; ii < data_values_count - 1; ii++) { + fprintf(ferror, "%g, ", data_values[ii]); + if (lcount > 10) { + fprintf(ferror, "\n"); + lcount = 0; + } + lcount++; + } + fprintf(ferror, "%g }", data_values[data_values_count - 1]); + fclose(ferror); + return GRIB_SUCCESS; +} + +static int get_grib_sample_name(grib_handle* h, long editionNumber, + const grib_util_grid_spec* spec, const char* grid_type, char* sample_name) +{ + const size_t sample_name_len = 1024; + switch (spec->grid_type) { + case GRIB_UTIL_GRID_SPEC_REDUCED_GG: + case GRIB_UTIL_GRID_SPEC_REDUCED_ROTATED_GG: + /* Choose a sample with the right Gaussian number and edition */ + snprintf(sample_name, sample_name_len, "%s_pl_%ld_grib%ld", grid_type, spec->N, editionNumber); + if (spec->pl && spec->pl_size) { + /* GRIB-834: pl is given so can use any of the reduced_gg_pl samples */ + snprintf(sample_name, sample_name_len, "%s_pl_grib%ld", grid_type, editionNumber); + } + break; + case GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA: + case GRIB_UTIL_GRID_SPEC_UNSTRUCTURED: + case GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL: + case GRIB_UTIL_GRID_SPEC_HEALPIX: + snprintf(sample_name, sample_name_len, "GRIB%ld", editionNumber); + break; + default: + snprintf(sample_name, sample_name_len, "%s_pl_grib%ld", grid_type, editionNumber); + } - spec2.grid_type = spec->grid_type; - spec2.Ni = spec->Ni; - spec2.Nj = spec->Nj; - spec2.iDirectionIncrementInDegrees = spec->iDirectionIncrementInDegrees; - spec2.jDirectionIncrementInDegrees = spec->jDirectionIncrementInDegrees; - spec2.longitudeOfFirstGridPointInDegrees = spec->longitudeOfFirstGridPointInDegrees; - spec2.longitudeOfLastGridPointInDegrees = spec->longitudeOfLastGridPointInDegrees; - spec2.latitudeOfFirstGridPointInDegrees = spec->latitudeOfFirstGridPointInDegrees; - spec2.latitudeOfLastGridPointInDegrees = spec->latitudeOfLastGridPointInDegrees; - spec2.uvRelativeToGrid = spec->uvRelativeToGrid; - spec2.latitudeOfSouthernPoleInDegrees = spec->latitudeOfSouthernPoleInDegrees; - spec2.longitudeOfSouthernPoleInDegrees = spec->longitudeOfSouthernPoleInDegrees; - spec2.iScansNegatively = spec->iScansNegatively; - spec2.jScansPositively = spec->jScansPositively; - spec2.N = spec->N; - spec2.bitmapPresent = spec->bitmapPresent; - spec2.missingValue = spec->missingValue; - spec2.pl = spec->pl; - spec2.pl_size = spec->pl_size; - spec2.truncation = spec->truncation; - spec2.orientationOfTheGridInDegrees = spec->orientationOfTheGridInDegrees; - spec2.DyInMetres = spec->DyInMetres; - spec2.DxInMetres = spec->DxInMetres; - - /* New data members of spec2 take default values */ - spec2.angleOfRotationInDegrees = 0; - spec2.grid_name = NULL; - - return grib_util_set_spec2( - h, - &spec2, - packing_spec, - flags, - data_values, - data_values_count, - err); + if (spec->pl && spec->grid_name) { + /* Cannot have BOTH pl and grid name specified */ + fprintf(stderr, "%s: Cannot set BOTH spec.pl and spec.grid_name!\n", __func__); + return GRIB_INTERNAL_ERROR; + } + if (spec->grid_name) { + snprintf(sample_name, sample_name_len, "%s_grib%ld", spec->grid_name, editionNumber); + } + + return GRIB_SUCCESS; } -grib_handle* grib_util_set_spec2(grib_handle* h, - const grib_util_grid_spec2* spec, +grib_handle* grib_util_set_spec(grib_handle* h, + const grib_util_grid_spec* spec, const grib_util_packing_spec* packing_spec, int flags, const double* data_values, @@ -927,40 +954,26 @@ grib_handle* grib_util_set_spec2(grib_handle* h, } while (0) grib_values values[1024] = {{0,},}; - size_t count = 0; - int i; - long editionNumber; + grib_context* c = grib_context_get_default(); grib_handle* h_out = NULL; grib_handle* h_sample = NULL; const char* grid_type = NULL; - char sample_name[1024]; /* name of sample file */ + char sample_name[1024]; /* name of the GRIB sample file */ char input_grid_type[100]; char input_packing_type[100]; - long input_bits_per_value = 0; - long input_decimal_scale_factor = 0; - size_t len = 100; - size_t input_grid_type_len = 100; + long editionNumber = 0; + size_t count = 0, len = 100, slen = 20, input_grid_type_len = 100; double laplacianOperator; - int packingTypeIsSet = 0; - int setSecondOrder = 0; - int setJpegPacking = 0; - int setCcsdsPacking = 0; + int i = 0, packingTypeIsSet = 0, setSecondOrder = 0, setJpegPacking = 0, setCcsdsPacking = 0; int convertEditionEarlier = 0; /* For cases when we cannot set some keys without converting */ - size_t slen = 17; int grib1_high_resolution_fix = 0; /* boolean: See GRIB-863 */ int global_grid = 0; /* boolean */ int expandBoundingBox = 0; - static grib_util_packing_spec default_packing_spec = {0,}; Assert(h); - if (!packing_spec) { - packing_spec = &default_packing_spec; - } - /* Get edition number from input handle */ if ((*err = grib_get_long(h, "edition", &editionNumber)) != 0) { - grib_context* c = grib_context_get_default(); if (c->write_on_fail) grib_write_message(h, "error.grib", "w"); return NULL; } @@ -970,16 +983,8 @@ grib_handle* grib_util_set_spec2(grib_handle* h, } grib_get_string(h, "packingType", input_packing_type, &len); - grib_get_long(h, "bitsPerValue", &input_bits_per_value); - grib_get_long(h, "decimalScaleFactor", &input_decimal_scale_factor); - if (h->context->debug == -1) { - fprintf(stderr, "ECCODES DEBUG grib_util: input_packing_type = %s\n", input_packing_type); - fprintf(stderr, "ECCODES DEBUG grib_util: input_bits_per_value = %ld\n", input_bits_per_value); - fprintf(stderr, "ECCODES DEBUG grib_util: input_decimal_scale_factor = %ld\n", input_decimal_scale_factor); - } - /* ECC-1201, ECC-1529, ECC-1530 - Make sure input packing type is preserved */ + /* ECC-1201, ECC-1529, ECC-1530: Make sure input packing type is preserved */ if (packing_spec->packing == GRIB_UTIL_PACKING_SAME_AS_INPUT && packing_spec->packing_type == GRIB_UTIL_PACKING_TYPE_SAME_AS_INPUT) { @@ -1001,59 +1006,30 @@ grib_handle* grib_util_set_spec2(grib_handle* h, /* ECC-1269: * Code that was here was moved to "deprecated" directory - * See grib_util.GRIB_UTIL_SET_SPEC_FLAGS_ONLY_PACKING.c + * See grib_util.GRIB_UTIL_SET_SPEC_FLAGS_ONLY_PACKING. * Dealing with obsolete option GRIB_UTIL_SET_SPEC_FLAGS_ONLY_PACKING */ grid_type = get_grid_type_name(spec->grid_type); if (!grid_type) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Unknown spec.grid_type (%d)\n", spec->grid_type); + fprintf(stderr, "%s: Unknown spec.grid_type (%d)\n", __func__, spec->grid_type); *err = GRIB_NOT_IMPLEMENTED; return NULL; } SET_STRING_VALUE("gridType", grid_type); /* The "pl" is given from the template, but "section_copy" will take care of setting the right headers */ - { - switch (spec->grid_type) { - case GRIB_UTIL_GRID_SPEC_REDUCED_GG: - case GRIB_UTIL_GRID_SPEC_REDUCED_ROTATED_GG: - /* Choose a sample with the right Gaussian number and edition */ - snprintf(sample_name, sizeof(sample_name), "%s_pl_%ld_grib%ld", grid_type, spec->N, editionNumber); - if (spec->pl && spec->pl_size) { - /* GRIB-834: pl is given so can use any of the reduced_gg_pl samples */ - snprintf(sample_name, sizeof(sample_name), "%s_pl_grib%ld", grid_type, editionNumber); - } - break; - case GRIB_UTIL_GRID_SPEC_LAMBERT_AZIMUTHAL_EQUAL_AREA: - case GRIB_UTIL_GRID_SPEC_UNSTRUCTURED: - if (editionNumber == 1) { /* This grid type is not available in edition 1 */ - if (h->context->debug == -1) - fprintf(stderr, "ECCODES DEBUG grib_util: '%s' specified " - "but input is GRIB1. Output must be a higher edition!\n", - grid_type); - convertEditionEarlier = 1; - } - snprintf(sample_name, sizeof(sample_name), "GRIB%ld", editionNumber); - break; - case GRIB_UTIL_GRID_SPEC_LAMBERT_CONFORMAL: - snprintf(sample_name, sizeof(sample_name), "GRIB%ld", editionNumber); - break; - default: - snprintf(sample_name, sizeof(sample_name), "%s_pl_grib%ld", grid_type, editionNumber); - } + if (get_grib_sample_name(h, editionNumber, spec, grid_type, sample_name) != GRIB_SUCCESS) { + goto cleanup; + } - if (spec->pl && spec->grid_name) { - /* Cannot have BOTH pl and grid name specified */ - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot set BOTH spec.pl and spec.grid_name!\n"); - goto cleanup; - } - if (spec->grid_name) { - snprintf(sample_name,sizeof(sample_name), "%s_grib%ld", spec->grid_name, editionNumber); - } + if (!grid_type_is_supported_in_edition(spec->grid_type, editionNumber)) { + fprintf(stderr, "ECCODES WARNING %s: '%s' specified " + "but input is GRIB edition %ld. Output must be a higher edition!\n", + __func__, grid_type, editionNumber); + convertEditionEarlier = 1; } - /* TODO: recycle h_sample handle */ h_sample = grib_handle_new_from_samples(NULL, sample_name); if (!h_sample) { *err = GRIB_INVALID_FILE; @@ -1111,7 +1087,6 @@ grib_handle* grib_util_set_spec2(grib_handle* h, COPY_SPEC_LONG(Nj); COPY_SPEC_LONG(N); - /* TODO: Compute here ... */ COPY_SPEC_DOUBLE(longitudeOfFirstGridPointInDegrees); COPY_SPEC_DOUBLE(longitudeOfLastGridPointInDegrees); @@ -1191,7 +1166,12 @@ grib_handle* grib_util_set_spec2(grib_handle* h, // Note: DxInMetres and DyInMetres // should be 'double' and not integer. WMO GRIB2 uses millimetres! // TODO(masn): Add other keys like Latin1, LoV etc - + break; + case GRIB_UTIL_GRID_SPEC_HEALPIX: + COPY_SPEC_LONG(bitmapPresent); + if (spec->missingValue) COPY_SPEC_DOUBLE(missingValue); + COPY_SPEC_LONG(N); // Nside + COPY_SPEC_DOUBLE(longitudeOfFirstGridPointInDegrees); break; case GRIB_UTIL_GRID_SPEC_REDUCED_GG: @@ -1243,7 +1223,6 @@ grib_handle* grib_util_set_spec2(grib_handle* h, } } } - break; } @@ -1308,7 +1287,7 @@ grib_handle* grib_util_set_spec2(grib_handle* h, setSecondOrder = 1; break; default: - fprintf(stderr, "GRIB_UTIL_SET_SPEC: invalid packing_spec.packing_type (%ld)\n", packing_spec->packing_type); + fprintf(stderr, "%s: invalid packing_spec.packing_type (%ld)\n", __func__, packing_spec->packing_type); *err = GRIB_INTERNAL_ERROR; goto cleanup; break; @@ -1321,10 +1300,8 @@ grib_handle* grib_util_set_spec2(grib_handle* h, keep_matrix = 0; /* ECC-911 */ } if (keep_matrix) { - int ret; SET_STRING_VALUE("packingType", "grid_simple_matrix"); - ret = grib_get_long(h, "numberOfDirections", &numberOfDirections); - if (ret == GRIB_SUCCESS) { + if (GRIB_SUCCESS == grib_get_long(h, "numberOfDirections", &numberOfDirections)) { grib_get_long(h, "numberOfDirections", &numberOfDirections); SET_LONG_VALUE("NC1", numberOfDirections); grib_get_long(h, "numberOfFrequencies", &numberOfFrequencies); @@ -1371,7 +1348,7 @@ grib_handle* grib_util_set_spec2(grib_handle* h, break; default: - fprintf(stderr, "GRIB_UTIL_SET_SPEC: invalid packing_spec.accuracy (%ld)\n", packing_spec->accuracy); + fprintf(stderr, "%s: invalid packing_spec.accuracy (%ld)\n", __func__, packing_spec->accuracy); grib_handle_delete(h_sample); *err = GRIB_INTERNAL_ERROR; goto cleanup; @@ -1412,26 +1389,26 @@ grib_handle* grib_util_set_spec2(grib_handle* h, /* GRIB-857: Set "pl" array if provided (For reduced Gaussian grids) */ Assert(spec->pl_size >= 0); if (spec->pl && spec->pl_size == 0) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: pl array not NULL but pl_size == 0!\n"); + fprintf(stderr, "%s: pl array not NULL but pl_size == 0!\n", __func__); goto cleanup; } if (spec->pl_size > 0 && spec->pl == NULL) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: pl_size not zero but pl array == NULL!\n"); + fprintf(stderr, "%s: pl_size not zero but pl array == NULL!\n", __func__); goto cleanup; } if (spec->pl_size != 0 && (spec->grid_type == GRIB_UTIL_GRID_SPEC_REDUCED_GG || spec->grid_type == GRIB_UTIL_GRID_SPEC_REDUCED_ROTATED_GG)) { *err = grib_set_long_array(h_out, "pl", spec->pl, spec->pl_size); if (*err) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot set pl: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Cannot set pl: %s\n", __func__, grib_get_error_message(*err)); goto cleanup; } if (global_grid) { size_t sum = sum_of_pl_array(spec->pl, spec->pl_size); if (data_values_count != sum) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: invalid reduced gaussian grid: " + fprintf(stderr, "%s: invalid reduced gaussian grid: " "specified as global, data_values_count=%zu but sum of pl array=%zu\n", - data_values_count, sum); + __func__, data_values_count, sum); *err = GRIB_WRONG_GRID; goto cleanup; } @@ -1441,13 +1418,13 @@ grib_handle* grib_util_set_spec2(grib_handle* h, if (h->context->debug == -1) { fprintf(stderr, "ECCODES DEBUG grib_util: global_grid = %d\n", global_grid); fprintf(stderr, "ECCODES DEBUG grib_util: expandBoundingBox = %d\n", expandBoundingBox); - print_values(h->context, spec, packing_spec, data_values, data_values_count, values, count); + print_values(h->context, spec, packing_spec, input_packing_type, data_values, data_values_count, values, count); } /* Apply adjustments to bounding box if needed */ if (expandBoundingBox) { if ((*err = expand_bounding_box(h_out, values, count)) != 0) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot expand bounding box: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Cannot expand bounding box: %s\n", __func__, grib_get_error_message(*err)); if (h->context->write_on_fail) grib_write_message(h_out, "error.grib", "w"); goto cleanup; @@ -1457,37 +1434,20 @@ grib_handle* grib_util_set_spec2(grib_handle* h, if (convertEditionEarlier && packing_spec->editionNumber > 1) { *err = grib_set_long(h_out, "edition", packing_spec->editionNumber); if (*err) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot convert to edition %ld.\n", packing_spec->editionNumber); + fprintf(stderr, "%s: Cannot convert to edition %ld.\n", __func__, packing_spec->editionNumber); goto cleanup; } } if ((*err = grib_set_values(h_out, values, count)) != 0) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot set key values: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Cannot set key values: %s\n", __func__, grib_get_error_message(*err)); for (i = 0; i < count; i++) if (values[i].error) fprintf(stderr, " %s %s\n", values[i].name, grib_get_error_message(values[i].error)); goto cleanup; } - if ((*err = grib_set_double_array(h_out, "values", data_values, data_values_count)) != 0) { - FILE* ferror; - size_t ii, lcount; - grib_context* c = grib_context_get_default(); - - ferror = fopen("error.data", "w"); - lcount = 0; - fprintf(ferror, "# data_values_count=%zu\n", data_values_count); - fprintf(ferror, "set values={ "); - for (ii = 0; ii < data_values_count - 1; ii++) { - fprintf(ferror, "%g, ", data_values[ii]); - if (lcount > 10) { - fprintf(ferror, "\n"); - lcount = 0; - } - lcount++; - } - fprintf(ferror, "%g }", data_values[data_values_count - 1]); - fclose(ferror); + if ((*err = grib_set_double_array(h_out, "values", data_values, data_values_count)) != GRIB_SUCCESS) { + write_out_error_data_file(data_values, data_values_count); if (c->write_on_fail) grib_write_message(h_out, "error.grib", "w"); goto cleanup; } @@ -1507,11 +1467,11 @@ grib_handle* grib_util_set_spec2(grib_handle* h, /* GRIB-863: must set increments to MISSING */ /* increments are not coded in message but computed */ if ((*err = grib_set_missing(h_out, "iDirectionIncrement")) != 0) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot set Di to missing: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Cannot set Di to missing: %s\n", __func__, grib_get_error_message(*err)); goto cleanup; } if ((*err = grib_set_missing(h_out, "jDirectionIncrement")) != 0) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Cannot set Dj to missing: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Cannot set Dj to missing: %s\n", __func__, grib_get_error_message(*err)); goto cleanup; } } @@ -1548,7 +1508,7 @@ grib_handle* grib_util_set_spec2(grib_handle* h, grib_set_string(h_out, "packingType", "grid_second_order", &slen); *err = grib_set_double_array(h_out, "values", data_values, data_values_count); if (*err != GRIB_SUCCESS) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: setting data values failed: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: setting data values failed: %s\n", __func__, grib_get_error_message(*err)); goto cleanup; } } @@ -1565,8 +1525,8 @@ grib_handle* grib_util_set_spec2(grib_handle* h, if (packing_spec->editionNumber && packing_spec->editionNumber != editionNumber) { *err = grib_set_long(h_out, "edition", packing_spec->editionNumber); if (*err != GRIB_SUCCESS) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Failed to change edition to %ld: %s\n", - packing_spec->editionNumber, grib_get_error_message(*err)); + fprintf(stderr, "%s: Failed to change edition to %ld: %s\n", + __func__, packing_spec->editionNumber, grib_get_error_message(*err)); if (h->context->write_on_fail) grib_write_message(h_out, "error.grib", "w"); goto cleanup; @@ -1574,20 +1534,20 @@ grib_handle* grib_util_set_spec2(grib_handle* h, } if (editionNumber > 1 || packing_spec->editionNumber > 1) { /* ECC-353 */ - /* JPEG packing is not available in GRIB edition 1 and has to be done AFTER we set data values */ + /* Some packing types are not available in GRIB1 and have to be done AFTER we set data values */ if (setJpegPacking == 1) { *err = grib_set_string(h_out, "packingType", "grid_jpeg", &slen); if (*err != GRIB_SUCCESS) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Failed to change packingType to JPEG: %s\n", - grib_get_error_message(*err)); + fprintf(stderr, "%s: Failed to change packingType to JPEG: %s\n", + __func__, grib_get_error_message(*err)); goto cleanup; } } if (setCcsdsPacking == 1) { *err = grib_set_string(h_out, "packingType", "grid_ccsds", &slen); if (*err != GRIB_SUCCESS) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Failed to change packingType to CCSDS: %s\n", - grib_get_error_message(*err)); + fprintf(stderr, "%s: Failed to change packingType to CCSDS: %s\n", + __func__, grib_get_error_message(*err)); goto cleanup; } } @@ -1603,16 +1563,14 @@ grib_handle* grib_util_set_spec2(grib_handle* h, } if ((*err = check_geometry(h_out, spec, data_values_count, global_grid)) != GRIB_SUCCESS) { - fprintf(stderr, "GRIB_UTIL_SET_SPEC: Geometry check failed: %s\n", grib_get_error_message(*err)); + fprintf(stderr, "%s: Geometry check failed: %s\n", __func__, grib_get_error_message(*err)); if (h->context->write_on_fail) grib_write_message(h_out, "error.grib", "w"); goto cleanup; } /* Disable check: need to re-examine GRIB-864 */ - // if ( (*err = check_handle_against_spec(h_out, editionNumber, spec, global_grid)) != GRIB_SUCCESS) { -// grib_context* c=grib_context_get_default(); // fprintf(stderr,"GRIB_UTIL_SET_SPEC: Geometry check failed: %s\n", grib_get_error_message(*err)); // if (editionNumber == 1) { // fprintf(stderr,"Note: in GRIB edition 1 latitude and longitude values cannot be represented with sub-millidegree precision.\n"); @@ -1621,13 +1579,12 @@ grib_handle* grib_util_set_spec2(grib_handle* h, // goto cleanup; // } - if (h->context->debug == -1) fprintf(stderr, "ECCODES DEBUG grib_util: grib_util_set_spec end\n"); + if (h->context->debug == -1) fprintf(stderr, "ECCODES DEBUG grib_util: %s end\n",__func__); return h_out; cleanup: - if (h_out) - grib_handle_delete(h_out); + grib_handle_delete(h_out); return NULL; } @@ -1871,7 +1828,7 @@ int parse_keyval_string(const char* grib_tool, if (*p == ':') { values[i].type = grib_type_to_int(*(p + 1)); if (*(p + 1) == 'n') - values[i].type = GRIB_NAMESPACE; + values[i].type = CODES_NAMESPACE; *p = '\0'; p++; } diff --git a/src/grib_value.cc b/src/grib_value.cc index 38745c39f..e244d3c65 100644 --- a/src/grib_value.cc +++ b/src/grib_value.cc @@ -15,6 +15,7 @@ #include "grib_value.h" #include "grib_accessor.h" #include +#include /* Note: A fast cut-down version of strcmp which does NOT return -1 */ /* 0 means input strings are equal and 1 means not equal */ @@ -30,15 +31,22 @@ GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b) } /* Debug utility function to track GRIB packing/repacking issues */ -static void print_debug_info__set_double_array(grib_handle* h, const char* func, const char* name, const double* val, size_t length) +template +static void print_debug_info__set_array(grib_handle* h, const char* func, const char* name, const T* val, size_t length) { size_t N = 7, i = 0; - double minVal = DBL_MAX, maxVal = -DBL_MAX; + T minVal = std::numeric_limits::max(); + T maxVal = -std::numeric_limits::max(); + double missingValue = 0; Assert( h->context->debug ); + if (grib_get_double(h, "missingValue", &missingValue)!=GRIB_SUCCESS) { + missingValue = 9999.0; + } + if (length <= N) N = length; - fprintf(stderr, "ECCODES DEBUG %s key=%s %zu values (", func, name, length); + fprintf(stderr, "ECCODES DEBUG %s key=%s, %zu entries (", func, name, length); for (i = 0; i < N; ++i) { if (i != 0) fprintf(stderr,", "); fprintf(stderr, "%.10g", val[i]); @@ -46,6 +54,7 @@ static void print_debug_info__set_double_array(grib_handle* h, const char* func, if (N >= length) fprintf(stderr, ") "); else fprintf(stderr, "...) "); for (i = 0; i < length; ++i) { + if (val[i] == (T)missingValue) continue; if (val[i] < minVal) minVal = val[i]; if (val[i] > maxVal) maxVal = val[i]; } @@ -70,21 +79,6 @@ int grib_set_expression(grib_handle* h, const char* name, grib_expression* e) return GRIB_NOT_FOUND; } -int grib_set_expression_internal(grib_handle* h, const char* name, grib_expression* e) -{ - grib_accessor* a = grib_find_accessor(h, name); - - int ret = GRIB_SUCCESS; - if (a) { - ret = grib_pack_expression(a, e); - if (ret == GRIB_SUCCESS) { - return grib_dependency_notify_change(a); - } - return ret; - } - return GRIB_NOT_FOUND; -} - int grib_set_long_internal(grib_handle* h, const char* name, long val) { grib_context* c = h->context; @@ -549,50 +543,22 @@ int grib_set_bytes(grib_handle* h, const char* name, const unsigned char* val, s return GRIB_NOT_FOUND; } -int grib_clear(grib_handle* h, const char* name) -{ - int ret = 0; - grib_accessor* a = NULL; - - a = grib_find_accessor(h, name); - - if (a) { - if (a->length == 0) - return 0; - if ((ret = grib_pack_zero(a)) != GRIB_SUCCESS) - grib_context_log(h->context, GRIB_LOG_ERROR, "unable to clear %s (%s)", - name, grib_get_error_message(ret)); - return ret; - } - - /*grib_context_log(h->context,GRIB_LOG_ERROR,"unable to find accessor %s",name);*/ - return GRIB_NOT_FOUND; -} - -int grib_set_missing_internal(grib_handle* h, const char* name) -{ - int ret = 0; - grib_accessor* a = NULL; - - a = grib_find_accessor(h, name); - - if (a) { - if (a->flags & GRIB_ACCESSOR_FLAG_CAN_BE_MISSING) { - ret = grib_pack_missing(a); - if (ret == GRIB_SUCCESS) - return grib_dependency_notify_change(a); - } - else - ret = GRIB_VALUE_CANNOT_BE_MISSING; - - grib_context_log(h->context, GRIB_LOG_ERROR, "unable to set %s=missing (%s)", - name, grib_get_error_message(ret)); - return ret; - } - - grib_context_log(h->context, GRIB_LOG_ERROR, "unable to find accessor %s", name); - return GRIB_NOT_FOUND; -} +// int grib_clear(grib_handle* h, const char* name) +// { +// int ret = 0; +// grib_accessor* a = NULL; +// a = grib_find_accessor(h, name); +// if (a) { +// if (a->length == 0) +// return 0; +// if ((ret = grib_pack_zero(a)) != GRIB_SUCCESS) +// grib_context_log(h->context, GRIB_LOG_ERROR, "unable to clear %s (%s)", +// name, grib_get_error_message(ret)); +// return ret; +// } +// /*grib_context_log(h->context,GRIB_LOG_ERROR,"unable to find accessor %s",name);*/ +// return GRIB_NOT_FOUND; +// } int grib_set_missing(grib_handle* h, const char* name) { @@ -764,7 +730,7 @@ int grib_set_double_array_internal(grib_handle* h, const char* name, const doubl int ret = 0; if (h->context->debug) { - print_debug_info__set_double_array(h, "grib_set_double_array_internal", name, val, length); + print_debug_info__set_array(h, "grib_set_double_array_internal", name, val, length); } if (length == 0) { @@ -793,7 +759,7 @@ static int __grib_set_double_array(grib_handle* h, const char* name, const doubl size_t i = 0; if (h->context->debug) { - print_debug_info__set_double_array(h, "__grib_set_double_array", name, val, length); + print_debug_info__set_array(h, "__grib_set_double_array", name, val, length); } if (length == 0) { @@ -1052,6 +1018,29 @@ int grib_get_double(const grib_handle* h, const char* name, double* val) return ret; } +int grib_get_float(const grib_handle* h, const char* name, float* val) +{ + size_t length = 1; + grib_accessor* a = NULL; + grib_accessors_list* al = NULL; + int ret = 0; + + if (name[0] == '/') { + al = grib_find_accessors_list(h, name); + if (!al) + return GRIB_NOT_FOUND; + ret = grib_unpack_float(al->accessor, val, &length); + grib_context_free(h->context, al); + } + else { + a = grib_find_accessor(h, name); + if (!a) + return GRIB_NOT_FOUND; + ret = grib_unpack_float(a, val, &length); + } + return ret; +} + int grib_get_double_element_internal(grib_handle* h, const char* name, int i, double* val) { int ret = grib_get_double_element(h, name, i, val); @@ -1259,11 +1248,11 @@ int grib_get_native_type(const grib_handle* h, const char* name, int* type) return GRIB_SUCCESS; } -const char* grib_get_accessor_class_name(grib_handle* h, const char* name) -{ - grib_accessor* act = grib_find_accessor(h, name); - return act ? act->cclass->name : NULL; -} +// const char* grib_get_accessor_class_name(grib_handle* h, const char* name) +// { +// grib_accessor* act = grib_find_accessor(h, name); +// return act ? act->cclass->name : NULL; +// } template static int _grib_get_array_internal(const grib_handle* h, grib_accessor* a, T* val, size_t buffer_len, size_t* decoded_length) @@ -1448,19 +1437,18 @@ int grib_get_length(const grib_handle* h, const char* name, size_t* length) return grib_get_string_length(h, name, length); } -int grib_get_count(grib_handle* h, const char* name, size_t* size) -{ - grib_accessor* a = grib_find_accessor(h, name); - if (!a) - return GRIB_NOT_FOUND; - - *size = 0; - while (a) { - (*size)++; - a = a->same; - } - return GRIB_SUCCESS; -} +// int grib_get_count(grib_handle* h, const char* name, size_t* size) +// { +// grib_accessor* a = grib_find_accessor(h, name); +// if (!a) +// return GRIB_NOT_FOUND; +// *size = 0; +// while (a) { +// (*size)++; +// a = a->same; +// } +// return GRIB_SUCCESS; +// } int grib_get_offset(const grib_handle* ch, const char* key, size_t* val) { @@ -1638,7 +1626,7 @@ static int grib_get_key_value(grib_handle* h, grib_key_value_list* kv) err = grib_get_bytes(h, kv->name, (unsigned char*)kv->string_value, &size); kv->error = err; break; - case GRIB_NAMESPACE: + case CODES_NAMESPACE: iter = grib_keys_iterator_new(h, 0, kv->name); list = (grib_key_value_list*)grib_context_malloc_clear(h->context, sizeof(grib_key_value_list)); kv->namespace_value = list; @@ -1687,7 +1675,7 @@ void grib_key_value_list_delete(grib_context* c, grib_key_value_list* kvl) grib_key_value_list* p = NULL; while (next) { p = next->next; - if (next->type == GRIB_NAMESPACE) + if (next->type == CODES_NAMESPACE) grib_key_value_list_delete(c, next->namespace_value); grib_clean_key_value(c, next); @@ -2057,3 +2045,19 @@ int codes_copy_key(grib_handle* h1, grib_handle* h2, const char* key, int type) return GRIB_INVALID_TYPE; } } + +int codes_compare_key(grib_handle* h1, grib_handle* h2, const char* key, int compare_flags) +{ + grib_accessor* a1 = grib_find_accessor(h1, key); + if (!a1) { + grib_context_log(h1->context, GRIB_LOG_ERROR, "Key %s not found in first message", key); + return GRIB_NOT_FOUND; + } + grib_accessor* a2 = grib_find_accessor(h2, key); + if (!a2) { + grib_context_log(h1->context, GRIB_LOG_ERROR, "Key %s not found in second message", key); + return GRIB_NOT_FOUND; + } + + return grib_compare_accessors(a1, a2, GRIB_COMPARE_TYPES); +} diff --git a/src/grib_vdarray.cc b/src/grib_vdarray.cc index 3510bf77c..5ec7fc80b 100644 --- a/src/grib_vdarray.cc +++ b/src/grib_vdarray.cc @@ -8,15 +8,9 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * - * Enrico Fucile - * - ***************************************************************************/ - #include "grib_api_internal.h" -/* For debugging purposes */ +// For debugging purposes void grib_vdarray_print(const char* title, const grib_vdarray* vdarray) { size_t i = 0; @@ -38,7 +32,7 @@ grib_vdarray* grib_vdarray_new(grib_context* c, size_t size, size_t incsize) v = (grib_vdarray*)grib_context_malloc_clear(c, sizeof(grib_vdarray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vdarray_new unable to allocate %lu bytes\n", sizeof(grib_vdarray)); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_vdarray)); return NULL; } v->size = size; @@ -48,7 +42,7 @@ grib_vdarray* grib_vdarray_new(grib_context* c, size_t size, size_t incsize) v->v = (grib_darray**)grib_context_malloc_clear(c, sizeof(grib_darray*) * size); if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vdarray_new unable to allocate %lu bytes\n", sizeof(grib_darray*) * size); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_darray*) * size); return NULL; } return v; @@ -65,7 +59,7 @@ static grib_vdarray* grib_vdarray_resize(grib_vdarray* v) v->size = newsize; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vdarray_resize unable to allocate %lu bytes\n", sizeof(grib_darray*) * newsize); + "%s: Unable to allocate %lu bytes\n", __func__, sizeof(grib_darray*) * newsize); return NULL; } return v; @@ -111,17 +105,17 @@ void grib_vdarray_delete_content(grib_context* c, grib_vdarray* v) v->n = 0; } -grib_darray** grib_vdarray_get_array(grib_context* c, grib_vdarray* v) -{ - grib_darray** ret; - size_t i = 0; - if (!v) - return NULL; - ret = (grib_darray**)grib_context_malloc_clear(c, sizeof(grib_darray*) * v->n); - for (i = 0; i < v->n; i++) - ret[i] = v->v[i]; - return ret; -} +// grib_darray** grib_vdarray_get_array(grib_context* c, grib_vdarray* v) +// { +// grib_darray** ret; +// size_t i = 0; +// if (!v) +// return NULL; +// ret = (grib_darray**)grib_context_malloc_clear(c, sizeof(grib_darray*) * v->n); +// for (i = 0; i < v->n; i++) +// ret[i] = v->v[i]; +// return ret; +// } size_t grib_vdarray_used_size(grib_vdarray* v) { diff --git a/src/grib_viarray.cc b/src/grib_viarray.cc index 5a9aa4ddb..bc6e1bc18 100644 --- a/src/grib_viarray.cc +++ b/src/grib_viarray.cc @@ -10,7 +10,7 @@ #include "grib_api_internal.h" -/* For debugging purposes */ +// For debugging purposes void grib_viarray_print(const char* title, const grib_viarray* viarray) { size_t i; @@ -33,7 +33,7 @@ grib_viarray* grib_viarray_new(grib_context* c, size_t size, size_t incsize) v = (grib_viarray*)grib_context_malloc_clear(c, sizeof(grib_viarray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_viarray_new unable to allocate %lu bytes\n", sizeof(grib_viarray)); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_viarray)); return NULL; } v->size = size; @@ -43,7 +43,7 @@ grib_viarray* grib_viarray_new(grib_context* c, size_t size, size_t incsize) v->v = (grib_iarray**)grib_context_malloc_clear(c, sizeof(grib_iarray*) * size); if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_viarray_new unable to allocate %lu bytes\n", sizeof(grib_iarray*) * size); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_iarray*) * size); return NULL; } return v; @@ -60,7 +60,7 @@ static grib_viarray* grib_viarray_resize(grib_viarray* v) v->size = newsize; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_viarray_resize unable to allocate %lu bytes\n", sizeof(grib_iarray*) * newsize); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_iarray*) * newsize); return NULL; } return v; diff --git a/src/grib_vsarray.cc b/src/grib_vsarray.cc index 025e9c6de..9de0650f7 100644 --- a/src/grib_vsarray.cc +++ b/src/grib_vsarray.cc @@ -8,15 +8,9 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/*************************************************************************** - * - * Enrico Fucile - * - ***************************************************************************/ - #include "grib_api_internal.h" -/* For debugging purposes */ +// For debugging purposes void grib_vsarray_print(const char* title, const grib_vsarray* vsarray) { size_t i = 0; @@ -41,7 +35,7 @@ grib_vsarray* grib_vsarray_new(grib_context* c, size_t size, size_t incsize) v = (grib_vsarray*)grib_context_malloc_clear(c, sizeof(grib_vsarray)); if (!v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vsarray_new unable to allocate %lu bytes\n", sizeof(grib_vsarray)); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_vsarray)); return NULL; } v->size = size; @@ -51,7 +45,7 @@ grib_vsarray* grib_vsarray_new(grib_context* c, size_t size, size_t incsize) v->v = (grib_sarray**)grib_context_malloc_clear(c, sizeof(grib_sarray*) * size); if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vsarray_new unable to allocate %lu bytes\n", sizeof(grib_sarray*) * size); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_sarray*) * size); return NULL; } return v; @@ -68,7 +62,7 @@ static grib_vsarray* grib_vsarray_resize(grib_vsarray* v) v->size = newsize; if (!v->v) { grib_context_log(c, GRIB_LOG_ERROR, - "grib_vsarray_resize unable to allocate %lu bytes\n", sizeof(grib_sarray*) * newsize); + "%s: Unable to allocate %zu bytes", __func__, sizeof(grib_sarray*) * newsize); return NULL; } return v; @@ -114,17 +108,17 @@ void grib_vsarray_delete_content(grib_context* c, grib_vsarray* v) v->n = 0; } -grib_sarray** grib_vsarray_get_array(grib_context* c, grib_vsarray* v) -{ - grib_sarray** ret; - size_t i = 0; - if (!v) - return NULL; - ret = (grib_sarray**)grib_context_malloc_clear(c, sizeof(grib_sarray*) * v->n); - for (i = 0; i < v->n; i++) - ret[i] = v->v[i]; - return ret; -} +// grib_sarray** grib_vsarray_get_array(grib_context* c, grib_vsarray* v) +// { +// grib_sarray** ret; +// size_t i = 0; +// if (!v) +// return NULL; +// ret = (grib_sarray**)grib_context_malloc_clear(c, sizeof(grib_sarray*) * v->n); +// for (i = 0; i < v->n; i++) +// ret[i] = v->v[i]; +// return ret; +// } size_t grib_vsarray_used_size(grib_vsarray* v) { diff --git a/src/iterator_class_hierarchy.txt b/src/iterator_class_hierarchy.txt index e692fa5c7..ffd961e9d 100644 --- a/src/iterator_class_hierarchy.txt +++ b/src/iterator_class_hierarchy.txt @@ -2,6 +2,7 @@ Iterator Class Hierarchy |-grib_iterator_class_gen |---grib_iterator_class_gaussian_reduced + |---grib_iterator_class_healpix |---grib_iterator_class_lambert_azimuthal_equal_area |---grib_iterator_class_lambert_conformal |---grib_iterator_class_latlon_reduced diff --git a/src/latlon.req b/src/latlon.req deleted file mode 100644 index bf3968bfa..000000000 --- a/src/latlon.req +++ /dev/null @@ -1 +0,0 @@ -ret,padding=0,level=500,grid=2/2,area=2/0/0/2,target=latlon.grib diff --git a/src/make_accessor_class_hash.sh b/src/make_accessor_class_hash.sh index 749bee5e0..8a3f26f79 100755 --- a/src/make_accessor_class_hash.sh +++ b/src/make_accessor_class_hash.sh @@ -18,5 +18,6 @@ gperf --version echo gperf -C -W classes -t -G -H grib_accessor_classes_get_id -N grib_accessor_classes_hash -m 1 -j 1 accessor_class_list.gperf |\ - sed s/__inline//g | sed s/inline//g > grib_accessor_classes_hash.cc + sed s/__inline//g | sed s/inline//g | sed 's/register //g' > grib_accessor_classes_hash.cc +rm -f accessor_class_list.gperf diff --git a/src/spectral.req b/src/spectral.req deleted file mode 100644 index 982ce8868..000000000 --- a/src/spectral.req +++ /dev/null @@ -1 +0,0 @@ -ret,padding=0,level=500,resol=21,target=spectral.grib diff --git a/src/string_util.cc b/src/string_util.cc index 65583f93e..b2faa3674 100644 --- a/src/string_util.cc +++ b/src/string_util.cc @@ -10,10 +10,9 @@ #include "grib_api_internal.h" -/* Compare two strings ignoring case. - * strcasecmp is not in the C standard. However, it's defined by - * 4.4BSD, POSIX.1-2001. So we use our own - */ +// Compare two strings ignoring case. +// strcasecmp is not in the C standard. However, it's defined by +// 4.4BSD, POSIX.1-2001. So we use our own int strcmp_nocase(const char* s1, const char* s2) { const unsigned char *us1 = (const unsigned char*)s1, @@ -26,7 +25,7 @@ int strcmp_nocase(const char* s1, const char* s2) return (tolower(*us1) - tolower(*--us2)); } -/* Strip whitespace from the end of a string */ +// Strip whitespace from the end of a string void string_rtrim(char* s) { size_t len = 0; @@ -58,14 +57,13 @@ void string_lrtrim(char** x, int do_left, int do_right) } } -/* Return the component after final slash */ -/* "/tmp/x" -> "x" */ -/* "/tmp/" -> "" */ +// Return the component after final slash +// "/tmp/x" -> "x" +// "/tmp/" -> "" const char* extract_filename(const char* filepath) { - /* Note: Windows users could pass in fwd slashes! - * so have to check both separators - */ + // Note: Windows users could pass in fwd slashes! + // so have to check both separators const char* s = strrchr(filepath, '/'); if (!s) s = strrchr(filepath, '\\'); @@ -75,10 +73,9 @@ const char* extract_filename(const char* filepath) return s + 1; } -/* Returns an array of strings the last of which is NULL. - * Note: The delimiter here is a 'string' but must be ONE character! - * Splitting with several delimiters is not supported. - */ +// Returns an array of strings the last of which is NULL. +// Note: The delimiter here is a 'string' but must be ONE character! +// Splitting with several delimiters is not supported. char** string_split(char* inputString, const char* delimiter) { char** result = NULL; @@ -104,14 +101,14 @@ char** string_split(char* inputString, const char* delimiter) } strLength = strlen(inputString); if (lastDelimiter < (inputString + strLength - 1)) { - ++numTokens; /* there is a trailing token */ + ++numTokens; // there is a trailing token } - ++numTokens; /* terminating NULL string to mark the end */ + ++numTokens; // terminating NULL string to mark the end result = (char**)malloc(numTokens * sizeof(char*)); Assert(result); - /* Start tokenizing */ + // Start tokenizing aToken = strtok_r(inputString, delimiter, &lasts); while (aToken) { Assert(index < numTokens); @@ -124,8 +121,10 @@ char** string_split(char* inputString, const char* delimiter) return result; } -/* Return GRIB_SUCCESS if can convert input to an integer, GRIB_INVALID_ARGUMENT otherwise */ -int string_to_long(const char* input, long* output) +// Return GRIB_SUCCESS if we can convert 'input' to an integer, GRIB_INVALID_ARGUMENT otherwise. +// If 'strict' is 1 then disallow characters at the end which are not valid digits. +// E.g., in strict mode, "4i" will be rejected. Otherwise it will convert it to 4 +int string_to_long(const char* input, long* output, int strict) { const int base = 10; char* endptr; @@ -138,18 +137,22 @@ int string_to_long(const char* input, long* output) val = strtol(input, &endptr, base); if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN)) || (errno != 0 && val == 0)) { - /*perror("strtol");*/ + // perror("strtol"); return GRIB_INVALID_ARGUMENT; } if (endptr == input) { - /*fprintf(stderr, "No digits were found. EXIT_FAILURE\n");*/ + // fprintf(stderr, "No digits were found\n"); + return GRIB_INVALID_ARGUMENT; + } + if (strict && *endptr != 0) { + // fprintf(stderr, "Left over characters at the end; not a pure number\n"); return GRIB_INVALID_ARGUMENT; } *output = val; return GRIB_SUCCESS; } -/* Return 1 if 's' ends with 'suffix', 0 otherwise */ +// Return 1 if 's' ends with 'suffix', 0 otherwise int string_ends_with(const char* s, const char* suffix) { const size_t len1 = strlen(s); @@ -210,9 +213,8 @@ const char* grib_get_type_name(int type) return "unknown"; } -/* Replace all occurrences of character in string. -* Returns pointer to the NUL byte at the end of 's' -*/ +// Replace all occurrences of character in string. +// Returns pointer to the NUL byte at the end of 's' char* string_replace_char(char *s, char oldc, char newc) { for (; *s; ++s) @@ -221,7 +223,7 @@ char* string_replace_char(char *s, char oldc, char newc) return s; } -/* Remove all instances of character 'c' from 'str' */ +// Remove all instances of character 'c' from 'str' void string_remove_char(char* str, char c) { size_t i, j; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f8c25d935..ad9f7c408 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -21,6 +21,7 @@ list(APPEND test_c_bins unit_tests bufr_keys_iter grib_keys_iter + grib_keys_iter_skip grib_geo_iter gauss_sub grib_nearest_test @@ -31,6 +32,7 @@ list(APPEND test_c_bins grib_optimize_scaling grib_optimize_scaling_sh grib_set_force + grib_run_length_packing grib_partial_message grib_ecc-386 grib_ecc-1467 @@ -44,12 +46,16 @@ list(APPEND test_c_bins bufr_check_descriptors bufr_coordinate_descriptors codes_new_from_samples + codes_dump_action_tree codes_set_samples_path + codes_compare_keys + codes_dump_content grib_sh_ieee64 grib_ieee grib_set_bytes grib_copy_message grib_packing_order + grib_unpack_subarray grib_sh_imag grib_spectral grib_lam_bf @@ -73,6 +79,7 @@ if( HAVE_BUILD_TOOLS ) # and are generally quick list(APPEND tests_basic codes_info + codes_deprecated unit_tests julian grib_dump_samples @@ -80,9 +87,11 @@ if( HAVE_BUILD_TOOLS ) bufr_check_descriptors definitions grib2_version + grib_accessors grib_calendar grib_md5 grib_cfNames + grib_ifsParam grib_packing_order filter_substr grib_uerra @@ -94,6 +103,7 @@ if( HAVE_BUILD_TOOLS ) grib_suppressed grib_2nd_order_numValues grib_ecc-136 + grib_ecc-530 grib_ecc-922 grib_ecc-966 grib_ecc-967 @@ -115,6 +125,7 @@ if( HAVE_BUILD_TOOLS ) grib_ecc-1406 grib_ecc-1560 grib_ecc-1571 + grib_ecc-1654 bufr_ecc-1028 bufr_ecc-1195 bufr_ecc-1259 @@ -134,6 +145,7 @@ if( HAVE_BUILD_TOOLS ) grib_grid_unstructured grib_grid_lambert_conformal grib_grid_polar_stereographic + grib_grid_healpix grib_g1monthlydate grib_g1day_of_the_year_date grib_g1fcperiod) @@ -146,9 +158,11 @@ if( HAVE_BUILD_TOOLS ) grib_complex grib_double_cmp grib_change_packing + grib_run_length_packing grib_grid_space_view grib_partial_message grib_headers_only + grib_unpack_subarray grib_count bufr_templates bufr_dump_data @@ -163,6 +177,7 @@ if( HAVE_BUILD_TOOLS ) bufr_copy bufr_count bufr_get + bufr_operators bufr_filter_misc bufr_filter_extract_subsets bufr_filter_extract_datetime @@ -176,11 +191,14 @@ if( HAVE_BUILD_TOOLS ) bufr_change_edition bufr_keys_iter grib_keys_iter + grib_keys_iter_skip grib_geo_iter bufr_get_element bufr_wmo_tables bufr_extract_headers extract_offsets + bufr_ecc-147 + bufr_ecc-389 bufr_ecc-673 bufr_ecc-428 bufr_ecc-286 @@ -223,6 +241,7 @@ if( HAVE_BUILD_TOOLS ) gts_count gts_compare wrap + taf pseudo_diag metar_ls metar_get @@ -230,6 +249,7 @@ if( HAVE_BUILD_TOOLS ) metar_compare bufr_set grib_ieee + grib1_gds_not_present grib_sh_ieee64 grib_optimize_scaling grib_optimize_scaling_sh @@ -275,10 +295,13 @@ if( HAVE_BUILD_TOOLS ) grib_multi_from_message grib_change_scanning grib_statistics - grib_tigge_check read_any codes_new_from_samples + codes_dump_action_tree codes_set_samples_path + codes_compare_keys + codes_dump_content + codes_to_double grib_dump grib_dump_debug grib_dump_json @@ -286,7 +309,8 @@ if( HAVE_BUILD_TOOLS ) grib_local_NCEP grib_neg_fctime codes_split_file - grib_mars_keys) + grib_mars_keys1 + grib_mars_keys2) if( HAVE_AEC AND ENABLE_EXTRA_TESTS ) list(APPEND tests_extra grib_ecc-1431) @@ -303,6 +327,8 @@ if( HAVE_BUILD_TOOLS ) list(APPEND tests_extra grib_tigge_conversions2) list(APPEND tests_extra bufr_dump_encode_C) list(APPEND tests_extra bufr_dump_decode_C) + list(APPEND tests_extra bufr_dump_encode_python) + list(APPEND tests_extra bufr_dump_decode_python) list(APPEND tests_extra list_codetable_flagtable_keys) endif() @@ -439,7 +465,7 @@ if( HAVE_BUILD_TOOLS ) # Performance test. Must have -DENABLE_TIMER=ON ecbuild_add_test( TARGET eccodes_t_grib_ecc-386 TYPE SCRIPT - CONDITION ENABLE_EXTRA_TESTS AND ENABLE_TIMER + CONDITION ENABLE_EXTRA_TESTS COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/grib_ecc-386.sh TEST_DEPENDS eccodes_download_gribs ) else() diff --git a/tests/bufr_change_edition.sh b/tests/bufr_change_edition.sh index 98228556a..b21cfc482 100755 --- a/tests/bufr_change_edition.sh +++ b/tests/bufr_change_edition.sh @@ -15,7 +15,8 @@ cd ${data_dir}/bufr # Define a common label for all the tmp files label="bufr_change_edition_test" -fBufrTmp=${label}".bufr.tmp" +tempBufr=temp.${label}".bufr" +tempLog=temp.$label.log bufr_files=`cat ${data_dir}/bufr/bufr_data_files.txt` @@ -23,12 +24,24 @@ for f in ${bufr_files}; do if [ "$f" = "ias1_240.bufr" ]; then continue; fi # Convert to BUFR edition 4 - ${tools_dir}/bufr_set -s editionNumber=4 $f $fBufrTmp - ${tools_dir}/bufr_compare -b edition $f $fBufrTmp + ${tools_dir}/bufr_set -s editionNumber=4 $f $tempBufr + ${tools_dir}/bufr_compare -b edition $f $tempBufr - ed=`${tools_dir}/bufr_get -w count=1 -p editionNumber $fBufrTmp` + ed=`${tools_dir}/bufr_get -w count=1 -p editionNumber $tempBufr` [ "$ed" = "4" ] - done -rm -f $fBufrTmp +# Unsupported editions +# ----------------------- +f=$ECCODES_SAMPLES_PATH/BUFR3.tmpl +${tools_dir}/bufr_set -s edition=1 $f $tempBufr +set +e +${tools_dir}/bufr_dump -O $tempBufr > $tempLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "unreadable message" $tempLog + + +# Clean up +rm -f $tempBufr $tempLog diff --git a/tests/bufr_check_descriptors.cc b/tests/bufr_check_descriptors.cc index 76cec0f1f..eec3a14eb 100644 --- a/tests/bufr_check_descriptors.cc +++ b/tests/bufr_check_descriptors.cc @@ -68,7 +68,7 @@ int main(int argc, char** argv) return 1; } str_code = list[0]; - if (string_to_long(str_code, &lValue) != GRIB_SUCCESS) { + if (string_to_long(str_code, &lValue, 1) != GRIB_SUCCESS) { fprintf(stderr, "Error on line %zu: descriptor code '%s' (column 1) is not numeric.\n", line_number, str_code); return 1; @@ -103,17 +103,18 @@ int main(int argc, char** argv) str_scale = list[5]; str_ref = list[6]; str_width = list[7]; - if (string_to_long(str_scale, &lValue) != GRIB_SUCCESS) { + if (string_to_long(str_scale, &lValue, 1) != GRIB_SUCCESS) { fprintf(stderr, "Error on line %zu: descriptor scale '%s' (column 6) is not numeric.\n", line_number, str_scale); return 1; } - if (string_to_long(str_ref, &lValue) != GRIB_SUCCESS) { + if (string_to_long(str_ref, &lValue, 1) != GRIB_SUCCESS) { fprintf(stderr, "Error on line %zu: descriptor reference '%s' (column 7) is not numeric.\n", line_number, str_ref); return 1; } - if (string_to_long(str_width, &lValue) != GRIB_SUCCESS) { + // The final width column can have spaces etc at the end. So turn off strict mode + if (string_to_long(str_width, &lValue, /*strict=*/0) != GRIB_SUCCESS) { fprintf(stderr, "Error on line %zu: descriptor width '%s' (column 8) is not numeric.\n", line_number, str_width); return 1; diff --git a/tests/bufr_compare.sh b/tests/bufr_compare.sh index 8175cd30b..e4c41cce6 100755 --- a/tests/bufr_compare.sh +++ b/tests/bufr_compare.sh @@ -281,6 +281,24 @@ ${tools_dir}/bufr_compare -b stationOrSiteName $fBufrTmp1 $fBufrTmp2 unset ECCODES_BUFR_MULTI_ELEMENT_CONSTANT_ARRAYS rm -f $fBufrTmp1 $fBufrTmp2 +# Through index +# ------------- +tempIndex1=temp.$label.1.idx +tempIndex2=temp.$label.2.idx +f=$ECCODES_SAMPLES_PATH/BUFR3_local.tmpl +${tools_dir}/bufr_set -s ident:s=66611 $f $fBufrTmp +${tools_dir}/bufr_index_build -N -o $tempIndex1 $f +${tools_dir}/bufr_index_build -N -o $tempIndex2 $fBufrTmp + +set +e +${tools_dir}/bufr_compare $tempIndex1 $tempIndex2 +status=$? +set -e +[ $status -eq 1 ] + +${tools_dir}/bufr_compare -bident -v $tempIndex1 $tempIndex2 +rm -f $tempIndex1 $tempIndex2 + # Clean up # ------------- diff --git a/tests/bufr_coordinate_descriptors.cc b/tests/bufr_coordinate_descriptors.cc index d743024a2..f005ab5a5 100644 --- a/tests/bufr_coordinate_descriptors.cc +++ b/tests/bufr_coordinate_descriptors.cc @@ -34,6 +34,7 @@ int main(int argc, char* argv[]) char* filename = NULL; FILE* fin = NULL; int is_coord = 0; + int is_header = 0; assert (argc == 2); filename = argv[1]; @@ -78,6 +79,10 @@ int main(int argc, char* argv[]) is_coord = codes_bufr_key_is_coordinate(h, "nosuchkey", &err); assert(err == CODES_NOT_FOUND); + assert(is_coord == 0); + is_header = codes_bufr_key_is_header(h, "nosuchkey", &err); + assert(err == CODES_NOT_FOUND); + assert(is_header == 0); codes_bufr_keys_iterator_delete(kiter); codes_handle_delete(h); diff --git a/tests/bufr_copy.sh b/tests/bufr_copy.sh index e2dcffcbc..eb3b877fb 100755 --- a/tests/bufr_copy.sh +++ b/tests/bufr_copy.sh @@ -98,6 +98,18 @@ ${tools_dir}/bufr_copy -s unpack=1 -w stormIdentifier=none $fBufrInput $fBufrTmp [ ! -f "$fBufrTmp" ] +#------------------------------------------------------------------- +echo "Test: corner cases ..." +#------------------------------------------------------------------- +echo BUFR > $fBufrTmp +set +e +${tools_dir}/bufr_copy $fBufrTmp /dev/null > $fLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -w "unreadable message" $fLog + + # Clean up #----------- rm -f $fLog $fBufrTmp diff --git a/tests/bufr_dump_data.sh b/tests/bufr_dump_data.sh index 1eacbb1f8..4f8594755 100755 --- a/tests/bufr_dump_data.sh +++ b/tests/bufr_dump_data.sh @@ -13,8 +13,8 @@ # Define a common label for all the tmp files label="bufr_dump_data_test" -fLog=${label}".log" -fJsonTmp=${label}".json.tmp" +fLog=temp.$label.log +fJsonTmp=temp.$label.json if [ $HAVE_MEMFS -eq 1 ]; then unset ECCODES_DEFINITION_PATH @@ -58,6 +58,26 @@ grep -q "parsing include file" $fLog unset ECCODES_DEBUG unset ECCODES_LOG_STREAM +# This one should fail +file=${data_dir}/bufr/vos308014_v3_26.bufr +set +e +${tools_dir}/bufr_dump -ja $file +status=$? +set -e +[ $status -ne 0 ] + +set +e +${tools_dir}/bufr_dump $file +status=$? +set -e +[ $status -ne 0 ] + +set +e +${tools_dir}/bufr_dump -p $file +status=$? +set -e +[ $status -ne 0 ] + #============================================== # Testing a malformed bufr file (see ECC-110) #============================================== diff --git a/tests/bufr_dump_decode_python.sh b/tests/bufr_dump_decode_python.sh index c7258e641..40678ff47 100755 --- a/tests/bufr_dump_decode_python.sh +++ b/tests/bufr_dump_decode_python.sh @@ -21,8 +21,6 @@ tempDir=temp.${label}.dir mkdir -p $tempDir cd $tempDir -echo "PYTHONPATH set to $PYTHONPATH" - bufr_files=`cat ${data_dir}/bufr/bufr_data_files.txt` for file in ${bufr_files} @@ -38,9 +36,9 @@ do # Generate Python code from BUFR file ${tools_dir}/bufr_dump -Dpython $inputBufr > $tempSrc - if test "x$PYTHON" != "x"; then - $PYTHON $tempSrc $inputBufr - fi + # if test "x$PYTHON" != "x"; then + # $PYTHON $tempSrc $inputBufr + # fi rm -f $tempSrc done diff --git a/tests/bufr_dump_encode_python.sh b/tests/bufr_dump_encode_python.sh index da787606a..4a1ceed7a 100755 --- a/tests/bufr_dump_encode_python.sh +++ b/tests/bufr_dump_encode_python.sh @@ -39,21 +39,20 @@ do #pylint --disable=E0602,R,C,W $tempSrc - - if test "x$PYTHON" != "x"; then - # The python code always creates an output file called outfile.bufr - $PYTHON $tempSrc - - # Check original BUFR file against one we generated from sample - ${tools_dir}/bufr_compare $inputBufr $tempBufr - - TEMP_OUT1=${label}.$file.dump.out - TEMP_OUT2=${label}.$tempBufr.dump.out - ${tools_dir}/bufr_dump -p $inputBufr > $TEMP_OUT1 - ${tools_dir}/bufr_dump -p $tempBufr > $TEMP_OUT2 - diff $TEMP_OUT1 $TEMP_OUT2 - rm -f $TEMP_OUT1 $TEMP_OUT2 - fi + # if test "x$PYTHON" != "x"; then + # # The python code always creates an output file called outfile.bufr + # $PYTHON $tempSrc + + # # Check original BUFR file against one we generated from sample + # ${tools_dir}/bufr_compare $inputBufr $tempBufr + + # TEMP_OUT1=${label}.$file.dump.out + # TEMP_OUT2=${label}.$tempBufr.dump.out + # ${tools_dir}/bufr_dump -p $inputBufr > $TEMP_OUT1 + # ${tools_dir}/bufr_dump -p $tempBufr > $TEMP_OUT2 + # diff $TEMP_OUT1 $TEMP_OUT2 + # rm -f $TEMP_OUT1 $TEMP_OUT2 + # fi rm -f $tempSrc $tempBufr done diff --git a/tests/bufr_ecc-147.sh b/tests/bufr_ecc-147.sh new file mode 100755 index 000000000..06514f151 --- /dev/null +++ b/tests/bufr_ecc-147.sh @@ -0,0 +1,42 @@ +#!/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 + +# Define a common label for all the tmp files +label="bufr_ecc-147_test" + +tempBufr=temp.$label.bufr +tempFilt=temp.$label.filt + +cat > $tempFilt < $tempFilt < $tempFilt < $tempOut + +cat > $tempRef < $tempFilt <$tempText +status=$? +[ $status -ne 0 ] +set -e +fgrep -q "Value (-416) out of range" $tempText +# Clean up rm -f $tempBufr $tempFilt $tempText diff --git a/tests/bufr_filter_misc.sh b/tests/bufr_filter_misc.sh index 6e2171a4f..de6c6d527 100755 --- a/tests/bufr_filter_misc.sh +++ b/tests/bufr_filter_misc.sh @@ -715,35 +715,8 @@ EOF ${tools_dir}/codes_bufr_filter -o ${fout} $fRules $f 2>> $fLog 1>> $fLog ${tools_dir}/bufr_compare $fout ${fout}.ref #2>> $fLog 1>> $fLog +rm -f $fout -#----------------------------------------------------------- -# ECC-147 -#----------------------------------------------------------- -cat > $fRules < $fRules <> $fLog -echo "file: $f" >> $fLog - -${tools_dir}/codes_bufr_filter -o ${f}.out $fRules $f - -cat > $fRules < ${f}.log - -cat > ${f}.log.ref < $fRules < $fRules <width]"; - write; -EOF -${tools_dir}/codes_bufr_filter -o ${f}.out $fRules $f > ${f}.log - -cat > ${f}.log.ref < $fRules < $f.log -cat > $f.log.ref < $fRules < $fLog +fRef=temp.$label.ref +cat > $fRef < $fTmp grep -q "313" $fTmp +# ------------------------ +# Test corner cases +# ------------------------ +echo BUFR > $fTmp +set +e +${tools_dir}/bufr_ls $fTmp > $fLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -w "unreadable message" $fLog + + # Clean up rm -f $fLog $res_ls rm -f $fTmp diff --git a/tests/bufr_operators.sh b/tests/bufr_operators.sh new file mode 100755 index 000000000..b54f250b3 --- /dev/null +++ b/tests/bufr_operators.sh @@ -0,0 +1,106 @@ +#!/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 + +# Define a common label for all the tmp files +label="bufr_operators_test" + +tempBufr=temp.$label.bufr +tempFilt=temp.$label.filt +tempLog=temp.$label.log +tempRef=temp.$label.ref + +#----------------------------------------------------------- +# Test: change width using operator 201YYY +#----------------------------------------------------------- +HIGH_TEMPERATURE=10000 +cat > $tempFilt </dev/null +status=$? +set -e +[ $status -ne 0 ] + +# Now change the width of airTemperature to allow high value +cat > $tempFilt <width]"; + write; +EOF +${tools_dir}/codes_bufr_filter -o $tempBufr $tempFilt $input > $tempLog + +cat > $tempRef < $tempFilt < $tempLog + +cat > $tempRef < $tempFilt < 0) { + fprintf(stderr, "\nComparison failed: %zu differences\n", count); + return 1; + } + return 0; +} diff --git a/tests/codes_compare_keys.sh b/tests/codes_compare_keys.sh new file mode 100755 index 000000000..c5918f769 --- /dev/null +++ b/tests/codes_compare_keys.sh @@ -0,0 +1,67 @@ +#!/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="codes_compare_keys_test" +tempGrib=temp.${label}.grib +tempRef=temp.${label}.ref +tempLog=temp.$label.log + +file1=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl +file2=$ECCODES_SAMPLES_PATH/reduced_gg_pl_48_grib2.tmpl +set +e +$EXEC ${test_dir}/codes_compare_keys $file1 $file2 > $tempLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] + +cat > $tempRef < $tempLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +cat $tempLog +cat > $tempRef <$tempFilt < $tempOut 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "statement is deprecated" $tempOut + + +echo "Deprecated trigger statement" +# ----------------------------------------- +cat >$tempFilt < $tempOut 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "statement is deprecated" $tempOut + + +# Clean up +rm -f $tempGrib $tempFilt $tempOut $tempRef diff --git a/tests/codes_dump_action_tree.cc b/tests/codes_dump_action_tree.cc new file mode 100644 index 000000000..fa895ea97 --- /dev/null +++ b/tests/codes_dump_action_tree.cc @@ -0,0 +1,35 @@ +/* + * (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. + */ + +#undef NDEBUG +#include +#include "eccodes.h" + +int main(int argc, char** argv) +{ + int err = 0; + codes_context* c = codes_context_get_default(); + + assert(argc == 2); + + char* filename = argv[1]; + FILE* fp = fopen(filename, "rb"); + assert(fp); + codes_handle* h = codes_handle_new_from_file(c, fp, PRODUCT_ANY, &err); + assert(h); + assert(!err); + + codes_dump_action_tree(c, stdout); + + codes_handle_delete(h); + fclose(fp); + + return 0; +} diff --git a/tests/codes_dump_action_tree.sh b/tests/codes_dump_action_tree.sh new file mode 100755 index 000000000..ad562c9e5 --- /dev/null +++ b/tests/codes_dump_action_tree.sh @@ -0,0 +1,14 @@ +#!/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 + +input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +$EXEC ${test_dir}/codes_dump_action_tree "$input" diff --git a/tests/codes_dump_content.cc b/tests/codes_dump_content.cc new file mode 100644 index 000000000..f2ab36430 --- /dev/null +++ b/tests/codes_dump_content.cc @@ -0,0 +1,35 @@ +/* + * (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 +#undef NDEBUG +#include +#include "eccodes.h" + +int main(int argc, char* argv[]) +{ + int err = 0; + assert (argc == 3); + + char* mode = argv[1]; + char* filename = argv[2]; + + FILE* in = fopen(filename, "rb"); + assert(in); + + codes_handle* h = codes_handle_new_from_file(0, in, PRODUCT_ANY, &err); + assert(h); + + grib_dump_content(h, stdout, mode, 0, NULL); + + codes_handle_delete(h); + fclose(in); + + return 0; +} diff --git a/tests/codes_dump_content.sh b/tests/codes_dump_content.sh new file mode 100755 index 000000000..e5d72b343 --- /dev/null +++ b/tests/codes_dump_content.sh @@ -0,0 +1,27 @@ +#!/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="codes_dump_content_test" +temp=temp.$label.txt + +infile=$data_dir/sample.grib2 + +modes="default wmo json serialize debug grib_encode_C" +for mode in $modes; do + $EXEC ${test_dir}/codes_dump_content $mode $infile +done + +${test_dir}/codes_dump_content rubbish $infile > $temp 2>&1 +grep -q "ERROR.*Unknown type : 'rubbish' for dumper" $temp + +# Clean up +rm -f $temp diff --git a/tests/codes_export_resource.sh b/tests/codes_export_resource.sh index c9795e944..fddb45c45 100755 --- a/tests/codes_export_resource.sh +++ b/tests/codes_export_resource.sh @@ -43,6 +43,12 @@ cmp $ECCODES_DEFINITION_PATH/$f $temp # Failing cases # ---------------- +set +e +${tools_dir}/codes_export_resource +status=$? +set -e +[ $status -eq 1 ] + set +e ${tools_dir}/codes_export_resource -d nonexistent $temp status=$? @@ -55,6 +61,11 @@ status=$? set -e [ $status -eq 1 ] +set +e +${tools_dir}/codes_export_resource -z A B +status=$? +set -e +[ $status -eq 1 ] # Clean up diff --git a/tests/codes_info.sh b/tests/codes_info.sh index 2c89ae6bc..4d81e2061 100755 --- a/tests/codes_info.sh +++ b/tests/codes_info.sh @@ -29,6 +29,26 @@ status=$? set -e [ $status -eq 1 ] +# Verbose debug output +ECCODES_DEBUG=1 ${tools_dir}/codes_info + +# Test legacy environment variables +unset ECCODES_DEFINITION_PATH +unset ECCODES_SAMPLES_PATH +export GRIB_DEFINITION_PATH=/tmp/dtest +export GRIB_SAMPLES_PATH=/tmp/stest +${tools_dir}/codes_info > $tempLog +grep -q "This is for backward compatibility" $tempLog +unset GRIB_DEFINITION_PATH +unset GRIB_SAMPLES_PATH + +# Obscure environment variables +export _ECCODES_ECMWF_TEST_DEFINITION_PATH=abc +export _ECCODES_ECMWF_TEST_SAMPLES_PATH=def +ECCODES_DEBUG=1 ${tools_dir}/codes_info +unset _ECCODES_ECMWF_TEST_DEFINITION_PATH +unset _ECCODES_ECMWF_TEST_SAMPLES_PATH + # Clean up rm -f $tempLog diff --git a/tests/codes_split_file.sh b/tests/codes_split_file.sh index 88021b4c2..641739a55 100755 --- a/tests/codes_split_file.sh +++ b/tests/codes_split_file.sh @@ -16,6 +16,7 @@ temp=$label.temp.grib # Do all the work in a temporary directory temp_dir=tempdir.${label} +rm -rf $temp_dir mkdir -p $temp_dir cd $temp_dir @@ -23,7 +24,7 @@ cd $temp_dir # ----------------------------- cp ${data_dir}/mixed.grib ./ input=mixed.grib -${tools_dir}/codes_split_file 3 $input +${tools_dir}/codes_split_file -v 3 $input # There should now be 3 new files. Make sure they are valid ${tools_dir}/grib_ls mixed.grib_001 ${tools_dir}/grib_ls mixed.grib_002 @@ -59,6 +60,25 @@ total=`${tools_dir}/codes_count tigge_ecmwf.grib2_[0-9]*` cat tigge_ecmwf.grib2_[0-9][0-9][0-9] > $temp ${tools_dir}/grib_compare $input $temp +# Failing cases +# ---------------- +set +e +${tools_dir}/codes_split_file +status=$? +set -e +[ $status -eq 1 ] + +set +e +${tools_dir}/codes_split_file 4 $data_dir +status=$? +set -e +[ $status -eq 1 ] + +set +e +${tools_dir}/codes_split_file 0 $input +status=$? +set -e +[ $status -eq 1 ] # Clean up cd $test_dir diff --git a/tests/codes_to_double.sh b/tests/codes_to_double.sh new file mode 100755 index 000000000..ceb7c21c5 --- /dev/null +++ b/tests/codes_to_double.sh @@ -0,0 +1,44 @@ +#!/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="codes_to_double_test" +tempFilt=temp.$label.filt +tempLog=temp.$label.log +tempRef=temp.$label.ref + +sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl + +cat >$tempFilt< $tempLog + +cat >$tempRef<\$tempFilt<&2 diff --git a/tests/decode.cc b/tests/decode.cc deleted file mode 100644 index adbea9ba8..000000000 --- a/tests/decode.cc +++ /dev/null @@ -1,9 +0,0 @@ -/* - * (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. - */ diff --git a/tests/definitions.sh b/tests/definitions.sh index 63741ed2e..b841e2834 100755 --- a/tests/definitions.sh +++ b/tests/definitions.sh @@ -8,10 +8,11 @@ # virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. # - . ./include.ctest.sh +label="definitions_test" REDIRECT=/dev/null +tempOut=temp.$label.txt [ -z "$ECCODES_DEFINITION_PATH" ] || ECCODES_DEFINITION_PATH=`${tools_dir}/codes_info -d` @@ -19,3 +20,13 @@ for file in `find ${ECCODES_DEFINITION_PATH}/ -name '*.def' -print | grep -v gri do ${tools_dir}/codes_parser $file > $REDIRECT done + +# Try an invalid input +set +e +echo 'transient xx=1' | ${tools_dir}/codes_parser - 2>$tempOut +status=$? +set -e +[ $status -ne 0 ] +grep -q "Parser: syntax error" $tempOut + +rm -f $tempOut diff --git a/tests/filter_substr.sh b/tests/filter_substr.sh index bcf29ef44..37ffadbcc 100755 --- a/tests/filter_substr.sh +++ b/tests/filter_substr.sh @@ -34,5 +34,19 @@ EOF ${tools_dir}/grib_filter - $sample 2>$temp < 0" $temp + +${tools_dir}/grib_filter - $sample 2>$temp < $REDIRECT 2>&1 + +# Clean up +rm -f $tempGrib diff --git a/tests/grib1to2.sh b/tests/grib1to2.sh index d4b4bdbb3..d050c32ff 100755 --- a/tests/grib1to2.sh +++ b/tests/grib1to2.sh @@ -91,7 +91,7 @@ grib_check_key_equals $sample_g1 shapeOfTheEarth 0 grib_check_key_equals $output shapeOfTheEarth 0 -echo "ECC-1329: GRIB: Cannot convert runoff (paramId=205)" +echo "ECC-1329: Cannot convert runoff (paramId=205)" # -------------------------------------------------------- temp1="temp1.grib1to2.grib1" temp2="temp2.grib1to2.grib2" @@ -103,15 +103,20 @@ ${tools_dir}/grib_set -s edition=2,startStep=0 $temp1 $temp2 grib_check_key_equals $temp2 stepType,stepRange 'accum 0-240' rm -f $temp1 $temp2 -rm -f $output - -#sed "s:toolsdir:${tools_dir}/:" ${tools_dir}/grib1to2.txt > ${tools_dir}/grib1to2.test -#chmod +x ${tools_dir}/grib1to2.test -#${tools_dir}/grib1to2.test -f ${data_dir}/test.grib1 ${data_dir}/test.grib2 -#${tools_dir}/grib_get -p typeOfProcessedData:s,type:s ${data_dir}/test.grib2 > ${data_dir}/typeOfProcessedData.log +echo "ECC-1646: Cannot convert sro, uvb, lsp, e, and pev" +# -------------------------------------------------------- +for sn in e lsp pev sro uvb; do + ${tools_dir}/grib_set -s shortName=$sn,typeOfLevel=surface,level=0 $sample_g1 $temp1 + ${tools_dir}/grib_set -s edition=2 $temp1 $temp2 + ${tools_dir}/grib_compare -e -b param $temp1 $temp2 +done -#diff ${data_dir}/typeOfProcessedData.log ${data_dir}/typeOfProcessedData.ok +# Turn on (brief) DEBUGGING messages +sample_g1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl +output=temp.grib1to2.grib +ECCODES_DEBUG=-1 ${tools_dir}/grib_set -s edition=2 $sample_g1 $output -#${tools_dir}/grib_compare -Pe ${data_dir}/test.grib1 ${data_dir}/test.grib2 -#rm -f ${data_dir}/test.grib2 +# Clean up +rm -f $output +rm -f $temp1 $temp2 diff --git a/tests/grib2_templates.sh b/tests/grib2_templates.sh index 93daa7e5d..4b08f2619 100755 --- a/tests/grib2_templates.sh +++ b/tests/grib2_templates.sh @@ -35,8 +35,7 @@ done # Template 4.86 # ------------- -# TODO: Add tablesVersion later... -$tools_dir/grib_set -s productDefinitionTemplateNumber=86,totalNumberOfQuantiles=2 $sample2 $temp +$tools_dir/grib_set -s tablesVersion=31,productDefinitionTemplateNumber=86,totalNumberOfQuantiles=2 $sample2 $temp grib_check_key_equals $temp totalNumberOfQuantiles,quantileValue '2 0' @@ -148,6 +147,33 @@ grib_check_key_equals $temp perturbationNumber,typeOfStatisticalProcessing '2000 $tools_dir/grib_dump -O -p section_4 $temp > $tempText grep -q "Individual member for large ensemble forecast.*continuous or non-continuous interval" $tempText +# stepType & PDTNs +# -------------------- +test_PDTN_conversions() +{ + # Arguments + # $1 = product def template for instantaneous + # $2 = product def template for interval-based + pdtn_instant=$1 + pdtn_interval=$2 + $tools_dir/grib_set -s productDefinitionTemplateNumber=$pdtn_instant,stepType=accum $sample2 $temp + grib_check_key_equals $temp productDefinitionTemplateNumber $pdtn_interval + $tools_dir/grib_set -s stepType=instant $temp $temp1 + grib_check_key_equals $temp1 productDefinitionTemplateNumber $pdtn_instant +} + +test_PDTN_conversions 2 12 +test_PDTN_conversions 3 13 +test_PDTN_conversions 4 14 +test_PDTN_conversions 5 9 +test_PDTN_conversions 6 10 +test_PDTN_conversions 40 42 +test_PDTN_conversions 41 43 +# test_PDTN_conversions 45 85 # TODO +test_PDTN_conversions 57 67 +test_PDTN_conversions 58 68 +test_PDTN_conversions 71 73 + # Clean up rm -f $temp $temp1 $temp2 $tempFilt $tempText diff --git a/tests/grib_accessors.sh b/tests/grib_accessors.sh new file mode 100755 index 000000000..18011d3f8 --- /dev/null +++ b/tests/grib_accessors.sh @@ -0,0 +1,61 @@ +#!/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_accessors_test" +tempText=temp.$label.txt + +if [ $ECCODES_ON_WINDOWS -eq 1 ]; then + echo "$0: This test is currently disabled on Windows" + exit 0 +fi + +# Accessors like uint16, uint32 etc +# ---------------------------------- +tempDir=${label}.temp.dir +rm -rf $tempDir +mkdir -p $tempDir/definitions/grib2 +bootfile=$tempDir/definitions/grib2/boot.def +cat $def_dir/grib2/boot.def > $bootfile +echo "uint16 key_uint16: transient;" >> $bootfile +echo "uint32 key_uint32: transient;" >> $bootfile +echo "uint32_little_endian key_uint32_le: transient;" >> $bootfile + +echo "uint64 key_uint64: transient;" >> $bootfile +echo "uint64_little_endian key_uint64_le: transient;" >> $bootfile + +echo "key_tos1 = to_string(kindOfProduct,0,1);" >> $bootfile +echo "key_tos2 = to_string(dataDate,0,3);" >> $bootfile +echo >> $bootfile + +curr_defs=$ECCODES_DEFINITION_PATH +export ECCODES_DEFINITION_PATH=$PWD/$tempDir/definitions:$curr_defs + +input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +set +e +# Not yet fully implemented +${tools_dir}/grib_get -p key_uint16 $input > $tempText 2>&1 +${tools_dir}/grib_get -p key_uint32 $input >> $tempText 2>&1 +${tools_dir}/grib_get -p key_uint32_le $input >> $tempText 2>&1 +set -e + +# TODO +# grib_check_key_equals $input 'key_uint64,key_uint64_le' '0 0' + +# kindOfProduct = GRIB, dataDate = 20070323 +grib_check_key_equals $input 'key_tos1,key_tos2' 'G 200' +grib_check_key_equals $input 'key_tos2:d,key_tos2:i' '200 200' + +rm -rf $tempDir + + +# Clean up +rm -f $tempText diff --git a/tests/grib_change_packing.sh b/tests/grib_change_packing.sh index e28baa356..2b4d8ebf5 100755 --- a/tests/grib_change_packing.sh +++ b/tests/grib_change_packing.sh @@ -7,7 +7,8 @@ label="grib_change_packing_test" temp=temp.$label.grib -rm -f $temp +temp_err=temp.$label.err +rm -f $temp $temp_err grib1=${data_dir}/reduced_latlon_surface_constant.grib1 grib2=${data_dir}/reduced_latlon_surface_constant.grib2 @@ -54,6 +55,11 @@ test_packing() { result=`${tools_dir}/grib_get -p accuracy $temp` [ $result -eq 0 -o $result -eq 32 -o $result -eq 64 ] + temp1=$temp.1 + ${tools_dir}/grib_set -s setPackingType=$packing $grib $temp1 + ${tools_dir}/grib_compare $temp $temp1 + rm -f $temp1 + shift done @@ -124,7 +130,6 @@ stats=`${tools_dir}/grib_get -F%.1f -p average,standardDeviation $temp` # ECC-1352: Check CCSDS # ---------------------------- -temp_err=temp.$label.err if [ $HAVE_AEC -eq 0 ]; then # Check we get an error if we try to decode this packing [ -f "${data_dir}/ccsds.grib2" ] @@ -136,6 +141,13 @@ if [ $HAVE_AEC -eq 0 ]; then grep -q "CCSDS support not enabled. Please rebuild with -DENABLE_AEC=ON" $temp_err fi +# grid_simple_log_preprocessing +# ----------------------------- +input=${data_dir}/sample.grib2 +${tools_dir}/grib_set -r -s packingType=grid_simple_log_preprocessing $input $temp +grib_check_key_equals $temp packingType 'grid_simple_log_preprocessing' +${tools_dir}/grib_compare -c data:n -R packedValues=2e-6 $input $temp + # Large constant fields # ----------------------- input=${data_dir}/sample.grib2 @@ -158,5 +170,26 @@ grib_check_key_equals $temp const,bitsPerValue,section4Length '1 0 12' ECCODES_GRIBEX_MODE_ON=1 ${tools_dir}/grib_set -d1 $input $temp grib_check_key_equals $temp const,bitsPerValue,section4Length '1 12 8966' +# Error in packingType value +# --------------------------- +set +e +${tools_dir}/grib_set -s packingType="xxxxx" $ECCODES_SAMPLES_PATH/GRIB2.tmpl $temp > $temp_err 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "ECCODES ERROR.*no match for packingType=xxxxx" $temp_err +cat $temp_err + +# Set packingType when it is disabled +# ----------------------------------- +if [ $HAVE_PNG -eq 0 ]; then + set +e + ${tools_dir}/grib_set -s packingType=grid_png $ECCODES_SAMPLES_PATH/GRIB2.tmpl $temp > $temp_err 2>&1 + status=$? + set -e + [ $status -ne 0 ] + grep -q "ECCODES ERROR.*PNG support not enabled" $temp_err +fi +# Clean up rm -f $temp $temp_err diff --git a/tests/grib_change_scanning.sh b/tests/grib_change_scanning.sh index 2312c1ca3..25c5e005b 100755 --- a/tests/grib_change_scanning.sh +++ b/tests/grib_change_scanning.sh @@ -121,6 +121,14 @@ status=$? set -e [ $status -ne 0 ] +# Invalid Ni/Nj +${tools_dir}/grib_set -s Ni=9 $ECCODES_SAMPLES_PATH/GRIB2.tmpl $tempGribA +set +e +${tools_dir}/grib_set -s swapScanningAlternativeRows=1 $tempGribA $tempGribB +status=$? +set -e +[ $status -ne 0 ] + # ECC-1492 grib_check_key_equals "$ECCODES_SAMPLES_PATH/GRIB1.tmpl" iScansNegatively,iScansPositively '0 1' grib_check_key_equals "$ECCODES_SAMPLES_PATH/GRIB1.tmpl" jScansNegatively,jScansPositively '1 0' diff --git a/tests/grib_check_gaussian_grids.sh b/tests/grib_check_gaussian_grids.sh index 3d5dc7169..474eaf726 100755 --- a/tests/grib_check_gaussian_grids.sh +++ b/tests/grib_check_gaussian_grids.sh @@ -13,6 +13,7 @@ label="grib_check_gaussian_grids_test" tempGrib=temp.$label.grib tempText=temp.$label.txt +${tools_dir}/grib_check_gaussian_grid -V # Check all sample GRIBs with a Gaussian grid samples_dir=$ECCODES_SAMPLES_PATH @@ -27,7 +28,17 @@ for gg in ${samples_dir}/reduced_gg_*tmpl; do done -# Set wrong angle and re-test. Should fail +# Set wrong N. Should fail +input=$samples_dir/reduced_gg_pl_32_grib2.tmpl +${tools_dir}/grib_set -s N=0 $input $tempGrib +set +e +${tools_dir}/grib_check_gaussian_grid -v $tempGrib 2> $tempText +status=$? +set -e +[ $status -eq 1 ] +grep -q "Error: N should be > 0" $tempText + +# Set wrong angle. Should fail input=$samples_dir/reduced_gg_pl_1280_grib2.tmpl ${tools_dir}/grib_set -s longitudeOfLastGridPoint=359929680 $input $tempGrib set +e @@ -38,7 +49,7 @@ set -e grep -q "Error: longitudeOfLastGridPointInDegrees.*but should be" $tempText -# Set wrong numberOfDataPoints and re-test. Should fail +# Set wrong numberOfDataPoints. Should fail input=$samples_dir/reduced_gg_pl_96_grib2.tmpl ${tools_dir}/grib_set -s numberOfDataPoints=44 $input $tempGrib set +e @@ -49,11 +60,11 @@ set -e grep -q "Error: Sum of pl array 50662 does not match numberOfDataPoints 44" $tempText -# Set wrong numberOfValues and re-test. Should fail +# Set wrong numberOfValues. Should fail input=$samples_dir/reduced_gg_pl_96_grib2.tmpl ${tools_dir}/grib_set -s numberOfValues=44 $input $tempGrib set +e -${tools_dir}/grib_check_gaussian_grid -v $tempGrib 2> $tempText +${tools_dir}/grib_check_gaussian_grid -f -v $tempGrib 2> $tempText status=$? set -e [ $status -eq 1 ] @@ -61,4 +72,20 @@ cat $tempText grep -q "Error: Sum of pl array 50662 does not match numberOfValues 44" $tempText +# Other errors/warnings +# ---------------------- +set +e +${tools_dir}/grib_check_gaussian_grid +status=$? +set -e +[ $status -eq 1 ] + +${tools_dir}/grib_check_gaussian_grid -v $data_dir > $tempText +grep -q "not a regular file" $tempText + +${tools_dir}/grib_check_gaussian_grid -v $ECCODES_SAMPLES_PATH/GRIB2.tmpl > $tempText +grep -q "ignoring" $tempText + + +# Clean up rm -f $tempGrib $tempText diff --git a/tests/grib_check_param_concepts.sh b/tests/grib_check_param_concepts.sh index d16fe3135..940762ddc 100755 --- a/tests/grib_check_param_concepts.sh +++ b/tests/grib_check_param_concepts.sh @@ -24,6 +24,8 @@ $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/gri $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/tigge/paramId.def $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/s2s/paramId.def $EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/era6/paramId.def +$EXEC ${test_dir}/grib_check_param_concepts paramId $ECCODES_DEFINITION_PATH/grib2/localConcepts/destine/paramId.def + $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/shortName.def $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/ecmf/shortName.def @@ -32,6 +34,7 @@ $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/g $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/tigge/shortName.def $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/s2s/shortName.def $EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/era6/shortName.def +$EXEC ${test_dir}/grib_check_param_concepts shortName $ECCODES_DEFINITION_PATH/grib2/localConcepts/destine/shortName.def # Check the group: name.def paramId.def shortName.def units.def cfVarName.def # ---------------------------------------------------------------------------- diff --git a/tests/grib_compare.sh b/tests/grib_compare.sh index b6386ca08..d83228e2c 100755 --- a/tests/grib_compare.sh +++ b/tests/grib_compare.sh @@ -13,18 +13,45 @@ label="grib_compare_test" REDIRECT=/dev/null -infile="${data_dir}/regular_latlon_surface.grib1" -outfile=${infile}.compare.$$ - +outfile=temp.$label.grib rm -f $outfile +# Use of -a/-c +set +e +infile1=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl +infile2=$ECCODES_SAMPLES_PATH/reduced_gg_pl_48_grib2.tmpl +${tools_dir}/grib_compare -a -c longitudeOfLastGridPoint $infile1 $infile2 +status=$? +set -e +[ $status -eq 1 ] + + +# Use of -c namespace +infile1=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl +${tools_dir}/grib_set -s year=2019 $infile1 $outfile +${tools_dir}/grib_compare -c data:n $infile1 $outfile + + +# Header (meta-data) keys +infile=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl +${tools_dir}/grib_set -d4 $infile $outfile +set +e +${tools_dir}/grib_compare -v $infile $outfile +status=$? +set -e +[ $status -eq 1 ] +${tools_dir}/grib_compare -b referenceValue $infile $outfile +${tools_dir}/grib_compare -H $infile $outfile + + +infile="${data_dir}/regular_latlon_surface.grib1" ${tools_dir}/grib_set -s shortName=2d $infile $outfile ${tools_dir}/grib_compare -b indicatorOfParameter,paramId,shortName $infile $outfile > $REDIRECT # ---------------------------------------- # Test the -r switch # ---------------------------------------- -infile=${data_dir}/v.grib2 +infile=${data_dir}/tigge_cf_ecmwf.grib2 for i in 1 2 3; do ${tools_dir}/grib_copy -wcount=$i $infile temp.$label.$i done @@ -34,6 +61,20 @@ cat temp.$label.3 temp.$label.2 temp.$label.1 > temp.$label.321 # Compare files in which the messages are not in the same order ${tools_dir}/grib_compare -r temp.$label.213 temp.$label.321 +# Make a change in the data values of 2nd file +${tools_dir}/grib_set -s scaleValuesBy=1.1 temp.$label.2 temp.$label.2.changed +cat temp.$label.2 temp.$label.1 temp.$label.3 > temp.$label.213 +cat temp.$label.3 temp.$label.2.changed temp.$label.1 > temp.$label.321 +set +e +${tools_dir}/grib_compare -d -r temp.$label.213 temp.$label.321 +status=$? +set -e +[ $status -eq 1 ] + +cmp temp.$label.2.changed error2_1.grib +cmp temp.$label.2 error1_1.grib +rm -f error1_1.grib error2_1.grib +rm -f temp.$label.2.changed rm -f temp.$label.1 temp.$label.2 temp.$label.3 temp.$label.213 temp.$label.321 # ---------------------------------------------- @@ -90,6 +131,20 @@ status=$? set -e [ $status -eq 1 ] +# ---------------------------------------- +# Test -A switch +# ---------------------------------------- +infile=${data_dir}/sample.grib2 +${tools_dir}/grib_set -s scaleValuesBy=1.01 $infile $temp1 +# max absolute diff. = 3.11 +set +e +${tools_dir}/grib_compare -b referenceValue -A 3.1 $infile $temp1 +status=$? +set -e +[ $status -eq 1 ] +# Raise the tolerance +${tools_dir}/grib_compare -b referenceValue -A 3.2 $infile $temp1 + # ---------------------------------------- # ECC-355: -R with "all" option @@ -151,11 +206,32 @@ EOF diff $reffile $outfile rm -f $reffile +sample_g2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl + +# -------------------------------------------- +# Key='Missing' in one field and not the other +# -------------------------------------------- +${tools_dir}/grib_set -s scaleFactorOfFirstFixedSurface=1 $sample_g2 $temp1 +set +e +${tools_dir}/grib_compare $sample_g2 $temp1 > $outfile +status=$? +set -e +[ $status -eq 1 ] +grep -q "scaleFactorOfFirstFixedSurface is set to missing in 1st field but is not missing in 2nd field" $outfile + +set +e +${tools_dir}/grib_compare $temp1 $sample_g2 > $outfile +status=$? +set -e +[ $status -eq 1 ] +grep -q "scaleFactorOfFirstFixedSurface is set to missing in 2nd field but is not missing in 1st field" $outfile + +${tools_dir}/grib_compare -b scaleFactorOfFirstFixedSurface $sample_g2 $temp1 > $outfile + # ---------------------------------------- # Test -R overriding "referenceValueError" # ---------------------------------------- -sample_g2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl echo 'set values = { 9.99999957911723157871e-26 }; write;' | ${tools_dir}/grib_filter -o $temp1 - $sample_g2 echo 'set values = { 1.00000001954148137826e-25 }; write;' | ${tools_dir}/grib_filter -o $temp2 - $sample_g2 # Plain grib_compare uses the referenceValueError as tolerance and will see the files as identical @@ -176,6 +252,20 @@ set -e [ $status -eq 1 ] +# Failing cases +# ----------------- +set +e +${tools_dir}/grib_compare -H -c data:n $temp1 $temp2 +status=$? +set -e +[ $status -eq 1 ] + +set +e +${tools_dir}/grib_compare -a $temp1 $temp2 +status=$? +set -e +[ $status -eq 1 ] + # Clean up # --------- diff --git a/tests/grib_copy.sh b/tests/grib_copy.sh index c66fcef61..09b0c50f1 100755 --- a/tests/grib_copy.sh +++ b/tests/grib_copy.sh @@ -15,7 +15,8 @@ cd ${data_dir} # Define a common label for all the tmp files label="grib_copy_test" -temp=${label}".grib.tmp" +temp=temp.$label.grib +fLog=temp.$label.log echo "Test: The -g option..." # ----------------------------------- @@ -49,7 +50,7 @@ echo "Test: ECC-1086 invalid message ..." # This file is 179 bytes long. We chop the last byte to create # an invalid GRIB message (Final 7777 is 777) input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl -badGrib=${label}".bad.grib" +badGrib=temp.$label.bad.grib head -c 178 $input > $badGrib set +e ${tools_dir}/grib_copy $badGrib /dev/null # Only the bad GRIB @@ -89,6 +90,17 @@ status=$? set -e [ $status -ne 0 ] +#------------------------------------------------------------------- +echo "Test: corner cases ..." +#------------------------------------------------------------------- +echo GRIB > $badGrib +set +e +${tools_dir}/grib_copy $badGrib /dev/null > $fLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -w "unreadable message" $fLog + #${tools_dir}/grib_copy -w count=1 -X 57143 $input $temp #Last msg #r1=`${tools_dir}/grib_get -w count=37 -n ls $input` @@ -107,4 +119,4 @@ set -e # Clean up #----------- -rm -f $temp $badGrib $combinedGrib +rm -f $temp $badGrib $combinedGrib $fLog diff --git a/tests/grib_double_cmp.cc b/tests/grib_double_cmp.cc index 26a5e93d7..e1bd045d7 100644 --- a/tests/grib_double_cmp.cc +++ b/tests/grib_double_cmp.cc @@ -10,18 +10,14 @@ /* * Description: compare values retrieved with grib_get_double_array and - * grib_get_double_element + * grib_get_double_element * * Author: Cristian D. Codorean * */ -#include "grib_api.h" - -static void usage(const char* prog) -{ - printf("usage: %s filename\n", prog); - exit(1); -} +#include "grib_api_internal.h" +#undef NDEBUG +#include int main(int argc, char** argv) { @@ -34,14 +30,11 @@ int main(int argc, char** argv) char* filename = NULL; grib_handle* h = NULL; - if (argc < 2) usage(argv[0]); + assert(argc == 2); filename = argv[1]; in = fopen(filename, "rb"); - if (!in) { - printf("ERROR: unable to open file %s\n", filename); - return 1; - } + assert(in); /* create new handle from a message in a file*/ h = grib_handle_new_from_file(0, in, &err); diff --git a/tests/grib_dump.sh b/tests/grib_dump.sh index 7b45501db..7dabcfaf4 100755 --- a/tests/grib_dump.sh +++ b/tests/grib_dump.sh @@ -98,4 +98,14 @@ if [ $HAVE_JPEG -eq 0 ]; then set -e fi +# Use -s option +file=$data_dir/sample.grib2 +${tools_dir}/grib_dump -s year=1909 $file > $temp 2>&1 +grep -q "dataDate = 19090206" $temp + +# Skip handle +${tools_dir}/grib_dump -w count=4 $file > $temp 2>&1 + + +# Clean up rm -f $temp diff --git a/tests/grib_dump_samples.sh b/tests/grib_dump_samples.sh index db5baaaa4..ba4f7d870 100755 --- a/tests/grib_dump_samples.sh +++ b/tests/grib_dump_samples.sh @@ -30,7 +30,8 @@ samples=" for sfile in $samples; do sample="$ECCODES_SAMPLES_PATH/$sfile" - ${tools_dir}/grib_dump -O $sample >/dev/null + ${tools_dir}/grib_dump -Oa $sample >/dev/null + ${tools_dir}/grib_dump -atH $sample >/dev/null done # Test grib_dump with -t option diff --git a/tests/grib_ecc-1167.sh b/tests/grib_ecc-1167.sh index 3bd4cb37f..32db7af41 100755 --- a/tests/grib_ecc-1167.sh +++ b/tests/grib_ecc-1167.sh @@ -32,6 +32,7 @@ grib_check_key_equals $temp2 uuidOfHGrid '10991111111111111111115000110000' # Test errors +# -------------- set +e # Invalid HEX ${tools_dir}/grib_set -s uuidOfHGrid=DEZZBEef10203040b00b1e50001100FF $temp1 $temp2 2>$errlog @@ -40,6 +41,15 @@ set -e [ $status -ne 0 ] grep -q "Invalid hex byte specfication 'ZZ'" $errlog +# Packing as an integer +set +e +${tools_dir}/grib_set -s uuidOfHGrid=12345 $temp1 $temp2 2>$errlog +status=$? +set -e +[ $status -ne 0 ] +grep -q "Should not pack 'uuidOfHGrid' as an integer" $errlog +grep -q "Try packing as a string" $errlog + # Clean up rm -f $temp1 $temp2 $errlog diff --git a/tests/grib_ecc-1560.sh b/tests/grib_ecc-1560.sh index b83eda55c..55495daa9 100755 --- a/tests/grib_ecc-1560.sh +++ b/tests/grib_ecc-1560.sh @@ -11,12 +11,29 @@ . ./include.ctest.sh label="grib_ecc-1560_test" +temp_PDTN00_Grib=temp.$label.PDTN00.grib temp_PDTN08_Grib=temp.$label.PDTN08.grib temp_PDTN11_Grib=temp.$label.PDTN11.grib tempGrib=temp.$label.grib sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl -# We set PDTN=8 and level to 1.5 metres above ground +# ECC-1644 +# -------------- +${tools_dir}/grib_set -s scaleFactorOfFirstFixedSurface=0,scaledValueOfFirstFixedSurface=0 \ + $sample_grib2 $temp_PDTN00_Grib +${tools_dir}/grib_set -s productDefinitionTemplateNumber=11 $temp_PDTN00_Grib $temp_PDTN11_Grib +${tools_dir}/grib_compare -b totalLength,section4Length,productDefinitionTemplateNumber $temp_PDTN00_Grib $temp_PDTN11_Grib + + +${tools_dir}/grib_set -s typeOfFirstFixedSurface=100,scaleFactorOfFirstFixedSurface=-2,scaledValueOfFirstFixedSurface=10 \ + $sample_grib2 $temp_PDTN00_Grib +${tools_dir}/grib_set -s productDefinitionTemplateNumber=11 $temp_PDTN00_Grib $temp_PDTN11_Grib +${tools_dir}/grib_compare -b totalLength,section4Length,productDefinitionTemplateNumber $temp_PDTN00_Grib $temp_PDTN11_Grib + + + +# Set PDTN=8 and level to 1.5 metres above ground +# -------------------------------------------------- ${tools_dir}/grib_set -s \ productDefinitionTemplateNumber=8,typeOfFirstFixedSurface=103,scaledValueOfFirstFixedSurface=15,scaleFactorOfFirstFixedSurface=1 \ $sample_grib2 $temp_PDTN08_Grib @@ -46,3 +63,4 @@ grib_check_key_equals $tempGrib scaledValueOfFirstFixedSurface 3456 # Clean up rm -f $temp_PDTN08_Grib $temp_PDTN11_Grib $tempGrib +rm -f $temp_PDTN00_Grib diff --git a/tests/grib_ecc-1654.sh b/tests/grib_ecc-1654.sh new file mode 100755 index 000000000..650b50f9b --- /dev/null +++ b/tests/grib_ecc-1654.sh @@ -0,0 +1,35 @@ +#!/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 + +REDIRECT=/dev/null + +# ECC-1654: Error setting key of type 'codetable' as a string + +label="grib_ecc-1654_test" +tempGribA=temp.$label.A.grib +tempGribB=temp.$label.B.grib +tempFilt=temp.$label.filt +tempLog=temp.$label.log +tempRef=temp.$label.ref + +sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +${tools_dir}/grib_set -s typeOfFirstFixedSurface:s=15 $sample_grib2 $tempGribA +grib_check_key_equals $tempGribA 'typeOfFirstFixedSurface:i' '15' +${tools_dir}/grib_dump -O -p section_4 $tempGribA > $tempLog +grep -q 'typeOfFirstFixedSurface = 15 .*Unknown code table entry' $tempLog + +${tools_dir}/grib_set -s productDefinitionTemplateNumber=0,typeOfFirstFixedSurface=15 $sample_grib2 $tempGribA +${tools_dir}/grib_set -s productDefinitionTemplateNumber=1 $tempGribA $tempGribB +${tools_dir}/grib_compare -b totalLength,section4Length,productDefinitionTemplateNumber $tempGribA $tempGribB + +# Clean up +rm -f $tempGribA $tempGribB $tempFilt $tempLog $tempRef diff --git a/tests/grib_ecc-386.cc b/tests/grib_ecc-386.cc index 70c430f97..d4e238c4f 100644 --- a/tests/grib_ecc-386.cc +++ b/tests/grib_ecc-386.cc @@ -21,7 +21,6 @@ static void usage(const char* prog) exit(1); } -#ifdef ECCODES_TIMER int main(int argc, char** argv) { grib_timer* tes = grib_get_timer(0, "decoding", 0, 0); @@ -32,7 +31,7 @@ int main(int argc, char** argv) double* values = NULL; double duration_actual = 0; const double duration_max = 3.6; /* seconds */ - const int num_repetitions = 1000; + const int num_repetitions = 100; if (argc < 2) usage(argv[0]); @@ -73,9 +72,9 @@ int main(int argc, char** argv) fclose(in); return 0; } -#else -int main(int argc, char** argv) -{ - return 0; -} -#endif + +// int main(int argc, char** argv) +// { +// return 0; +// } +// #endif diff --git a/tests/grib_ecc-530.sh b/tests/grib_ecc-530.sh new file mode 100755 index 000000000..79c48321b --- /dev/null +++ b/tests/grib_ecc-530.sh @@ -0,0 +1,38 @@ +#!/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="grid_ecc-530_test" +tempGrib=temp.$label.grib +tempFilt=temp.${label}.filt + +sample_grib2=$ECCODES_SAMPLES_PATH/GRIB2.tmpl + +cat > $tempFilt <$tempFilt <$tempFilt < $tempOut +grep -q "Ni defined: true" $tempOut + + +cat >$tempFilt < $tempOut +grep -q "N defined: false" $tempOut + +cat >$tempFilt < $tempOut +grep -q "No args: false" $tempOut + + +# Use of dummy expression (=true) +cat >$tempFilt < $tempOut +grep -q "case 1" $tempOut +grep -q "case 2" $tempOut + +# Rules +cat >$tempFilt < $tempOut + + +cat >$tempFilt < $tempOut +status=$? +set -e +[ $status -ne 0 ] +grep "Assertion failure" $tempOut + +# Use of the "length" expression +cat >$tempFilt < $tempOut + # Clean up rm -f $tempGrib $tempFilt $tempOut $tempRef diff --git a/tests/grib_geo_iter.cc b/tests/grib_geo_iter.cc index 28b7603fe..b9d23830f 100644 --- a/tests/grib_geo_iter.cc +++ b/tests/grib_geo_iter.cc @@ -73,6 +73,22 @@ int main(int argc, char** argv) Assert(grib_iterator_has_next(iter) == 0); + { + // Test getting the previous value from a geoiterator. + // Note: Only implemented for regular grids + char gridType[128] = {0,}; + size_t len = sizeof(gridType); + GRIB_CHECK(grib_get_string(h, "gridType", gridType, &len), 0); + if (strstr(gridType, "regular_")) { + double last_lat = 0, last_lon = 0, last_value = 0; + int result = grib_iterator_previous(iter, &last_lat, &last_lon, &last_value); + Assert(result == 1); + Assert(lat == last_lat); + Assert(lon == last_lon); + Assert(value == last_value); + } + } + grib_iterator_delete(iter); grib_handle_delete(h); diff --git a/tests/grib_get_fail.sh b/tests/grib_get_fail.sh index 9f34e83b8..a94ad80f6 100755 --- a/tests/grib_get_fail.sh +++ b/tests/grib_get_fail.sh @@ -12,20 +12,19 @@ label="grib_get_fail_test" tempText=temp.$label.txt -REDIRECT=/dev/null # Check input file has been downloaded [ -f ${data_dir}/regular_latlon_surface.grib1 ] # Expect failure as the key does not exist set +e -${tools_dir}/grib_get -p boomerang ${data_dir}/regular_latlon_surface.grib1 2> $REDIRECT > $REDIRECT -if [ $? -eq 0 ] ; then - exit 1; # Should not have succeeded -fi +${tools_dir}/grib_get -p boomerang ${data_dir}/regular_latlon_surface.grib1 +status=$? set -e +[ $status -ne 0 ] # ECC-1551: Print which key does not exist +# ----------------------------------------- set +e ${tools_dir}/grib_get -p Ni,Nh,Nj $ECCODES_SAMPLES_PATH/GRIB2.tmpl > $tempText 2>&1 status=$? @@ -33,4 +32,5 @@ set -e [ $status -ne 0 ] grep -q "Nh (Key/value not found)" $tempText +# Clean up rm -f $tempText diff --git a/tests/grib_gridType.sh b/tests/grib_gridType.sh index 1adf1c6b2..491a1481c 100755 --- a/tests/grib_gridType.sh +++ b/tests/grib_gridType.sh @@ -11,37 +11,36 @@ . ./include.ctest.sh REDIRECT=/dev/null +label="grib_gridType_test" +tempGrib=temp.$label.grib +tempFilt=temp.$label.filt +tempText=temp.$label.txt +rm -f $tempGrib $tempFilt $tempText -tmpdata=grib_api.gridType.grib -rm -f $tmpdata +${tools_dir}/grib_set -s gridType=regular_gg ${data_dir}/reduced_latlon_surface.grib1 ${tempGrib} > $REDIRECT -${tools_dir}/grib_set -s gridType=regular_gg ${data_dir}/reduced_latlon_surface.grib1 ${tmpdata} > $REDIRECT - -gridType=`${tools_dir}/grib_get -p gridType $tmpdata` -if [ $gridType != "regular_gg" ] -then +gridType=`${tools_dir}/grib_get -p gridType $tempGrib` +if [ $gridType != "regular_gg" ]; then echo "Unable to change from reduced_latlon to regular_gg" echo $gridType exit 1 fi -rm -f $tmpdata +rm -f $tempGrib -${tools_dir}/grib_set -s gridType=reduced_gg ${data_dir}/regular_gaussian_pressure_level.grib1 ${tmpdata} > $REDIRECT +${tools_dir}/grib_set -s gridType=reduced_gg ${data_dir}/regular_gaussian_pressure_level.grib1 ${tempGrib} > $REDIRECT -gridType=`${tools_dir}/grib_get -p gridType $tmpdata` -if [ $gridType != "reduced_gg" ] -then +gridType=`${tools_dir}/grib_get -p gridType $tempGrib` +if [ $gridType != "reduced_gg" ]; then echo "Unable to change from regular_gg to reduced_gg" echo $gridType exit 1 fi -rm -f $tmpdata +rm -f $tempGrib -########### -# gridName -########### +# Key gridName +# --------------- for f in $ECCODES_SAMPLES_PATH/regular_gg_ml_grib*tmpl; do gname=`${tools_dir}/grib_get -p gridName $f` [ "$gname" = "F32" ] @@ -51,3 +50,127 @@ for f in $ECCODES_SAMPLES_PATH/reduced_gg_pl_512_grib*.tmpl; do [ "$gname" = "N512" ] done +# ECC-1638 +# --------------- +cat > $tempFilt < $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Nearest neighbour functionality is not supported for grid: Variable resolution latitude/longitude" $tempText + +# Check the keys isSpectral and isGridded +# ---------------------------------------- +grib1_gridded_types=" + regular_ll + reduced_ll + mercator + lambert + polar_stereographic + albers + rotated_ll + stretched_ll + stretched_rotated_ll + regular_gg + rotated_gg + stretched_gg + stretched_rotated_gg + reduced_gg + reduced_rotated_gg + reduced_stretched_gg + reduced_stretched_rotated_gg + regular_rotated_gg + regular_stretched_gg + regular_stretched_rotated_gg + space_view" +grib1_spectral_types=" + sh + rotated_sh + stretched_sh + stretched_rotated_sh" + +grib2_gridded_types=" + regular_ll + reduced_ll + rotated_ll + stretched_ll + stretched_rotated_ll + mercator + transverse_mercator + polar_stereographic + lambert + albers + regular_gg + reduced_gg + rotated_gg + reduced_rotated_gg + stretched_gg + reduced_stretched_gg + stretched_rotated_gg + reduced_stretched_rotated_gg + regular_rotated_gg + regular_stretched_gg + regular_stretched_rotated_gg + space_view + triangular_grid + unstructured_grid + equatorial_azimuthal_equidistant + azimuth_range + irregular_latlon + lambert_azimuthal_equal_area + lambert_lam + mercator_lam + polar_stereographic_lam + lambert_bf + mercator_bf + polar_stereographic_bf + healpix +" +grib2_spectral_types=" + sh + rotated_sh + stretched_sh + stretched_rotated_sh +" + +sample1_gridded=$ECCODES_SAMPLES_PATH/GRIB1.tmpl +sample1_spectral=$ECCODES_SAMPLES_PATH/sh_ml_grib1.tmpl +for gt in $grib1_gridded_types; do + ${tools_dir}/grib_set -s gridType=$gt $sample1_gridded $tempGrib + grib_check_key_equals $tempGrib 'isGridded,isSpectral' '1 0' +done +for gt in $grib1_spectral_types; do + ${tools_dir}/grib_set -s gridType=$gt $sample1_spectral $tempGrib + grib_check_key_equals $tempGrib 'isGridded,isSpectral' '0 1' + grib_check_key_equals $tempGrib gridType $gt +done + +sample2_gridded=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +sample2_spectral=$ECCODES_SAMPLES_PATH/sh_ml_grib2.tmpl +for gt in $grib2_gridded_types; do + ${tools_dir}/grib_set -s gridType=$gt $sample2_gridded $tempGrib + grib_check_key_equals $tempGrib 'isGridded,isSpectral' '1 0' +done +for gt in $grib2_spectral_types; do + ${tools_dir}/grib_set -s gridType=$gt $sample2_spectral $tempGrib + grib_check_key_equals $tempGrib 'isGridded,isSpectral' '0 1' + grib_check_key_equals $tempGrib gridType $gt +done + +grib_check_key_equals $data_dir/reduced_latlon_surface.grib1 'isGridded,isSpectral' '1 0' +grib_check_key_equals $data_dir/reduced_latlon_surface.grib2 'isGridded,isSpectral' '1 0' +grib_check_key_equals $data_dir/mercator.grib2 'isGridded,isSpectral' '1 0' + +# Clean up +rm -f $tempGrib $tempFilt $tempText diff --git a/tests/grib_grid_healpix.sh b/tests/grib_grid_healpix.sh new file mode 100755 index 000000000..82ee2b257 --- /dev/null +++ b/tests/grib_grid_healpix.sh @@ -0,0 +1,92 @@ +#!/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 + +# Define a common label for all the tmp files +label="grib_healpix_test" +tempFilter="temp.${label}.filt" +tempGrib="temp.${label}.grib" +tempLog="temp.${label}.log" + +input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl + +latest=`${tools_dir}/grib_get -p tablesVersionLatest $input` + +# Create a filter +cat > $tempFilter <&2 + exit 1 +fi +grib_check_key_equals $tempGrib gridType,orderingConvention,N,Nside 'healpix ring 32 32' +grib_check_key_equals $tempGrib gridDefinitionTemplateNumber,gridName '150 H32' +if [ $latest -gt 31 ]; then + grib_check_key_equals $tempGrib gridDefinitionDescription 'Hierarchical Equal Area isoLatitude Pixelization grid' +fi + +${tools_dir}/grib_dump -O -p section_3 $tempGrib +${tools_dir}/grib_ls -jn geography $tempGrib + +# Geoiterator +# ------------- +rm -f $tempGrib +cat > $tempFilter < $tempFilter < $tempLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Nside must be greater than zero" $tempLog + +set +e +${tools_dir}/grib_get_data -s orderingConvention=nested $tempGrib > $tempLog 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Only ring ordering is supported" $tempLog + + +# Clean up +rm -f $tempFilter $tempGrib $tempLog diff --git a/tests/grib_grid_lamb_az_eq_area.sh b/tests/grib_grid_lamb_az_eq_area.sh index b2675b597..abd4e1afb 100755 --- a/tests/grib_grid_lamb_az_eq_area.sh +++ b/tests/grib_grid_lamb_az_eq_area.sh @@ -61,6 +61,8 @@ grib_check_key_equals $GRIB_OUTFILE xDirectionGridLengthInMetres,yDirectionGridL # Nearest ${tools_dir}/grib_ls -l 67,-33,1 $GRIB_OUTFILE +# jPointsAreConsecutive +${tools_dir}/grib_get_data -s jPointsAreConsecutive=1 $GRIB_OUTFILE > $DATA_OUTFILE # Oblate spheroid # -------------------- @@ -89,7 +91,7 @@ EOF rm -f "$GRIB_OUTFILE" ${tools_dir}/grib_filter -o $GRIB_OUTFILE $FILTER_FILE $GRIB_INFILE -${tools_dir}/grib_get_data $GRIB_OUTFILE +${tools_dir}/grib_get_data $GRIB_OUTFILE > $DATA_OUTFILE # Clean up diff --git a/tests/grib_grid_space_view.sh b/tests/grib_grid_space_view.sh index 4c0e2b07f..5b987cd53 100755 --- a/tests/grib_grid_space_view.sh +++ b/tests/grib_grid_space_view.sh @@ -44,7 +44,23 @@ fi ${tools_dir}/grib_get_data $tempGrib2 > $tempOut ${tools_dir}/grib_ls -l 50,0 $tempGrib2 -rm -f $tempGrib2 + +# Invalid cases +set +e +${tools_dir}/grib_get_data -sNr=missing $tempGrib2 > $tempOut 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Orthographic view (Nr missing) not supported" $tempOut + +set +e +${tools_dir}/grib_get_data -sNr=0 $tempGrib2 > $tempOut 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "must be greater than zero" $tempOut + +rm -f $tempGrib2 $tempOut # ----------- # GRIB1 diff --git a/tests/grib_headers_only.sh b/tests/grib_headers_only.sh index 1c98adf9b..30010f37c 100755 --- a/tests/grib_headers_only.sh +++ b/tests/grib_headers_only.sh @@ -18,11 +18,10 @@ rm -f $tempText $tempLog sample_g1="$ECCODES_SAMPLES_PATH/GRIB1.tmpl" sample_g2="$ECCODES_SAMPLES_PATH/GRIB2.tmpl" -# files="$sample_g1 $sample_g2" #TODO: include GRIB2 as well -files="$sample_g1" #TODO: include GRIB2 as well -for file in $files; do +files="$sample_g1 $sample_g2" +for f in $files; do # Since we're not including the data section, the packingType key must not appear - ${tools_dir}/grib_ls -j -M -x $file > $tempLog + ${tools_dir}/grib_ls -j -M -x $f > $tempLog set +e grep -q "packingType" $tempLog status=$? diff --git a/tests/grib_ifsParam.sh b/tests/grib_ifsParam.sh new file mode 100755 index 000000000..f8c5d78a8 --- /dev/null +++ b/tests/grib_ifsParam.sh @@ -0,0 +1,35 @@ +#!/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_ifsParam_test" +tempLog=temp.$label.log +tempGrib=temp.$label.grib +tempText=temp.$label.txt + +sample_g1="$ECCODES_SAMPLES_PATH/GRIB1.tmpl" +sample_g2="$ECCODES_SAMPLES_PATH/GRIB2.tmpl" + +${tools_dir}/grib_set -s paramId=167 $sample_g1 $tempGrib +grib_check_key_equals $tempGrib ifsParam 167 + +${tools_dir}/grib_set -s paramId=129001 $sample_g1 $tempGrib +grib_check_key_equals $tempGrib ifsParam 1 + +${tools_dir}/grib_set -s paramId=200001 $sample_g1 $tempGrib +grib_check_key_equals $tempGrib ifsParam 1 + +${tools_dir}/grib_set -s paramId=211001 $sample_g1 $tempGrib +grib_check_key_equals $tempGrib ifsParam 210001 + + +# Clean up +rm -f $tempGrib $tempText $tempLog diff --git a/tests/grib_indexing.sh b/tests/grib_indexing.sh index 51f64842b..453208f62 100755 --- a/tests/grib_indexing.sh +++ b/tests/grib_indexing.sh @@ -106,7 +106,7 @@ cat ${data_dir}/sample.grib2 ${data_dir}/high_level_api.grib2 > $tempGr ${tools_dir}/grib_index_build -N -o $tempIndex1 $tempGribFile1 ${tools_dir}/grib_index_build -N -o $tempIndex2 $tempGribFile2 -${tools_dir}/grib_compare $tempIndex1 $tempIndex2 +${tools_dir}/grib_compare -v $tempIndex1 $tempIndex2 rm -f $tempIndex1 $tempIndex2 $tempGribFile1 $tempGribFile2 # ECC-1516 diff --git a/tests/grib_iterator.sh b/tests/grib_iterator.sh index c8e0ffe78..4b8eec5f7 100755 --- a/tests/grib_iterator.sh +++ b/tests/grib_iterator.sh @@ -11,7 +11,8 @@ . ./include.ctest.sh label="grib_iterator_test" -temp=temp.$label.txt +tempText=temp.$label.txt +tempGrib=temp.$label.grib files="reduced_latlon_surface.grib1 \ reduced_gaussian_pressure_level.grib1 \ @@ -32,15 +33,43 @@ for f in $files; do [ $numberOfPoints = ${iterator_count} ] done + # ECC-822: Increase lat/lon decimals using default grib_get_data -${tools_dir}/grib_get_data -L%12.6f%11.5f ${data_dir}/regular_latlon_surface.grib2 +${tools_dir}/grib_get_data -L%12.6f%11.5f ${data_dir}/regular_latlon_surface.grib2 > $tempText + +${tools_dir}/grib_get_data -p shortName,level ${data_dir}/regular_latlon_surface.grib2 > $tempText +grep -q "Latitude Longitude Value shortName level" $tempText -${tools_dir}/grib_get_data -p shortName,level ${data_dir}/regular_latlon_surface.grib2 > $temp -grep -q "Latitude Longitude Value shortName level" $temp # Run on a spectral field - should just print out its values -${tools_dir}/grib_get_data "$samp_dir/sh_ml_grib2.tmpl" +${tools_dir}/grib_get_data "$samp_dir/sh_ml_grib2.tmpl" > $tempText + + +# ECC-1642: badly encoded regular grids +# ------------------------------------- +${tools_dir}/grib_set -s Ni=33 $samp_dir/GRIB2.tmpl $tempGrib +set +e +${tools_dir}/grib_get_data $tempGrib > $tempText 2>&1 +status=$? +set +e +[ $status -ne 0 ] +grep -q "Grid description is wrong or inconsistent" $tempText + + +${tools_dir}/grib_set -s Ni=MISSING $samp_dir/GRIB2.tmpl $tempGrib +set +e +${tools_dir}/grib_get_data $tempGrib > $tempText 2>&1 +status=$? +set +e +[ $status -ne 0 ] +grep -q "Grid description is wrong or inconsistent" $tempText + + +${tools_dir}/grib_ls -s Ni=missing -j -p latLonValues $data_dir/sample.grib2 > $tempText 2>&1 +cat $tempText +grep -q "Key Ni cannot be 'missing' for a regular grid" $tempText +grep -q "latlonvalues: Unable to create iterator" $tempText # Clean up -rm -f $temp +rm -f $tempText $tempGrib diff --git a/tests/grib_jpeg.sh b/tests/grib_jpeg.sh index ddf5868f9..dfe8a8f61 100755 --- a/tests/grib_jpeg.sh +++ b/tests/grib_jpeg.sh @@ -124,4 +124,37 @@ stats=`${tools_dir}/grib_get -M -F%.2f -p min,max $tempGrib` [ "$stats" = "-0.01 98.99" ] +# Constant field +${tools_dir}/grib_set -d1 ${data_dir}/jpeg.grib2 $tempGrib +grib_check_key_equals $tempGrib isConstant 1 +${tools_dir}/grib_ls -n statistics $tempGrib + +ECCODES_DEBUG=-1 ${tools_dir}/grib_ls -n statistics $data_dir/jpeg.grib2 +${tools_dir}/grib_set -r -s unitsBias=2,unitsFactor=3 $data_dir/jpeg.grib2 $tempGrib + +# typeOfCompressionUsed and targetCompressionRatio +set +e +${tools_dir}/grib_set -r -s typeOfCompressionUsed=1,targetCompressionRatio=255 $data_dir/jpeg.grib2 $tempGrib +status=$? +set -e +[ $status -ne 0 ] + +set +e +${tools_dir}/grib_set -r -s typeOfCompressionUsed=1,targetCompressionRatio=0 $data_dir/jpeg.grib2 $tempGrib +status=$? +set -e +[ $status -ne 0 ] + +set +e +${tools_dir}/grib_set -r -s typeOfCompressionUsed=0,targetCompressionRatio=1 $data_dir/jpeg.grib2 $tempGrib +status=$? +set -e +[ $status -ne 0 ] + +tempDump=temp.$label.jpg +ECCODES_GRIB_DUMP_JPG_FILE=$tempDump ${tools_dir}/grib_copy -r $data_dir/jpeg.grib2 $tempGrib +[ -f $tempDump ] +rm -f $tempDump + +# Clean up rm -f $tempFilt $tempGrib diff --git a/tests/grib_keys_iter_skip.cc b/tests/grib_keys_iter_skip.cc new file mode 100644 index 000000000..54d5d1c79 --- /dev/null +++ b/tests/grib_keys_iter_skip.cc @@ -0,0 +1,59 @@ +/* + * (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 +#include +#include + +#include "grib_api_internal.h" + +int main(int argc, char* argv[]) +{ + grib_handle* h = NULL; + int err = 0; + + Assert(argc == 2); + const char* fname = argv[1]; + FILE* f = fopen(fname, "rb"); + Assert(f); + + unsigned long flags[] = { + GRIB_KEYS_ITERATOR_SKIP_READ_ONLY, + GRIB_KEYS_ITERATOR_SKIP_OPTIONAL, + GRIB_KEYS_ITERATOR_SKIP_EDITION_SPECIFIC, + GRIB_KEYS_ITERATOR_SKIP_CODED, + GRIB_KEYS_ITERATOR_SKIP_COMPUTED, + GRIB_KEYS_ITERATOR_SKIP_DUPLICATES, + GRIB_KEYS_ITERATOR_SKIP_FUNCTION + }; + const unsigned long N = sizeof(flags)/sizeof(unsigned long); + + while ((h = grib_handle_new_from_file(0, f, &err)) != NULL) { + + for (unsigned long i=0; i 0); + ++count; + } + grib_keys_iterator_delete(kiter); + printf("File=%s: Flag=%lu, count=%zu\n", fname, flags[i], count); + } + + grib_handle_delete(h); + } + + fclose(f); + return 0; +} diff --git a/tests/grib_keys_iter_skip.sh b/tests/grib_keys_iter_skip.sh new file mode 100755 index 000000000..4b5e6fb28 --- /dev/null +++ b/tests/grib_keys_iter_skip.sh @@ -0,0 +1,25 @@ +#!/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_keys_iter_skip_test" + +gribs=" + row.grib + grid_ieee.grib + reduced_gaussian_model_level.grib1 + sample.grib2 + gfs.c255.grib2 +" +for f in $gribs; do + g=$data_dir/$f + ${test_dir}/grib_keys_iter_skip $g +done diff --git a/tests/grib_ls.sh b/tests/grib_ls.sh index b9a3d7b4b..f702c0747 100755 --- a/tests/grib_ls.sh +++ b/tests/grib_ls.sh @@ -40,6 +40,7 @@ ${tools_dir}/grib_ls -l 0,0,1 $infile >> $tempLog ${tools_dir}/grib_get -l 0,0,1 $infile >> $tempLog ${tools_dir}/grib_get -p count,step $infile >> $tempLog ${tools_dir}/grib_get -P count $infile >> $tempLog +${tools_dir}/grib_get -i 0 $infile files=" reduced_gaussian_lsm.grib1 reduced_gaussian_model_level.grib1 @@ -114,6 +115,14 @@ echo "ECC-278: grib_ls -n namespace..." ${tools_dir}/grib_ls -n geography $ECCODES_SAMPLES_PATH/reduced_ll_sfc_grib2.tmpl ${tools_dir}/grib_ls -n data $sample_g1 +set +e +${tools_dir}/grib_ls -n nosuchnamespace $sample_g1 > $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "does not contain any key" $tempText + + # Angle subdivisions grib_check_key_equals $sample_g1 angleSubdivisions 1000 grib_check_key_equals $sample_g2 angleSubdivisions 1000000 @@ -191,5 +200,32 @@ set -e [ $status -ne 0 ] grep -q "Invalid type for key=shortName" $tempText +# Do list after an offset +file=tigge_pf_ecmwf.grib2 +${tools_dir}/grib_ls -X 62414 $file +set +e +${tools_dir}/grib_ls -X -1 $file > $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Invalid file offset" $tempText + +# Decode an ascii key as double +file=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl +grib_check_key_equals $file 'expver:d' 1 +grib_check_key_equals $file 'expver:s' '0001' + + +${tools_dir}/grib_ls -j -l0,0 -p referenceValue:d $data_dir/sample.grib2 +${tools_dir}/grib_ls -j -l0,0 -p referenceValue:i $data_dir/sample.grib2 + +set +e +${tools_dir}/grib_ls -l0,0,666 $data_dir/sample.grib2 > $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Wrong mode given" $tempText + + # Clean up rm -f $temp1 $temp2 $tempText $tempLog diff --git a/tests/grib_mars_keys.sh b/tests/grib_mars_keys1.sh similarity index 88% rename from tests/grib_mars_keys.sh rename to tests/grib_mars_keys1.sh index 5188d83b1..d13d880fd 100755 --- a/tests/grib_mars_keys.sh +++ b/tests/grib_mars_keys1.sh @@ -10,7 +10,7 @@ . ./include.ctest.sh -label="grib_mars_keys_test" +label="grib_mars_keys1_test" tempOut=temp.${label}.out tempGrib=temp.${label}.grib tempRef=temp.${label}.ref @@ -21,6 +21,16 @@ types_table=$ECCODES_DEFINITION_PATH/mars/type.table classes_table=$ECCODES_DEFINITION_PATH/mars/class.table streams_table=$ECCODES_DEFINITION_PATH/mars/stream.table +# Set as integers +${tools_dir}/grib_set -s mars.type=11 $grib2_sample $tempGrib +grib_check_key_equals $tempGrib type pf + +${tools_dir}/grib_set -s mars.class=11 $grib2_sample $tempGrib +grib_check_key_equals $tempGrib class en + +${tools_dir}/grib_set -s mars.stream=1033 $grib2_sample $tempGrib +grib_check_key_equals $tempGrib stream enfh + # Check basic mars namespace keys # -------------------------------- ${tools_dir}/grib_ls -jm $grib2_sample > $tempOut @@ -103,5 +113,5 @@ for t in $mars_types; do grib_check_key_equals $tempGrib "mars.type:i" $t done - +# Clean up rm -f $tempGrib $tempOut $tempRef diff --git a/tests/grib_mars_keys2.sh b/tests/grib_mars_keys2.sh new file mode 100755 index 000000000..4024a06d0 --- /dev/null +++ b/tests/grib_mars_keys2.sh @@ -0,0 +1,34 @@ +#!/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_keys2_test" +tempGrib=temp.${label}.grib + +grib2_sample=$ECCODES_SAMPLES_PATH/reduced_gg_pl_32_grib2.tmpl + +# Check all combinations +# ------------------------ +i=0 +for cfg in $ECCODES_DEFINITION_PATH/mars/grib.*.*.def; do + b=$(basename $cfg) + # Each file should be of the form grib.$stream.$type.def + stream=$(echo $b | awk -F. '{print $2}') + type=$(echo $b | awk -F. '{print $3}') + if [ $type = "fc" -o $type = "an" ]; then + ${tools_dir}/grib_set -s stream=$stream,type=$type $grib2_sample $tempGrib + ${tools_dir}/grib_ls -m $tempGrib > /dev/null + i=$((i + 1)) + fi +done +echo "Checked $i files" + +rm -f $tempGrib diff --git a/tests/grib_proj_string.sh b/tests/grib_proj_string.sh index 9dc1e8557..e1a60ca56 100755 --- a/tests/grib_proj_string.sh +++ b/tests/grib_proj_string.sh @@ -86,7 +86,7 @@ ${tools_dir}/grib_get -p projString:i $grib2_sample > $tempText 2>&1 status=$? set -e [ $status -ne 0 ] -grep -q "ERROR.*Cannot unpack projTargetString as long" $tempText +grep -q "ERROR.*Cannot unpack.*projTargetString.* as long" $tempText grep -q "Hint: Try unpacking as string" $tempText set +e @@ -94,7 +94,7 @@ ${tools_dir}/grib_get -p projString:d $grib2_sample > $tempText 2>&1 status=$? set -e [ $status -ne 0 ] -grep -q "ERROR.*Cannot unpack projTargetString as double" $tempText +grep -q "ERROR.*Cannot unpack.*projTargetString.* as double" $tempText grep -q "Hint: Try unpacking as string" $tempText diff --git a/tests/grib_run_length_packing.cc b/tests/grib_run_length_packing.cc new file mode 100644 index 000000000..ec6ef53a3 --- /dev/null +++ b/tests/grib_run_length_packing.cc @@ -0,0 +1,63 @@ +/* + * (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 +#include "eccodes.h" +#undef NDEBUG +#include + +// Provided by Tatsuya Noyori + +int main(int argc, char* argv[]) +{ + size_t str_len = 0; + long number_of_values = 4, bits_per_value = 8, max_level_value = 3, number_of_level_values = 5, decimal_scale_factor = 1; + size_t level_values_length = number_of_level_values; + long level_values[] = { 101L, 102L, 103L, 104L, 105L }; + double* values = NULL; + size_t values_length = number_of_values; + values = (double*)malloc(values_length * sizeof(double)); + values[0] = 9999.0; + + assert(argc == 2); + + for (size_t i = 1; i < values_length; i++) { + values[i] = (double)((100.0 + i) / 10.0); + } + codes_handle* h = codes_grib_handle_new_from_samples(0, "GRIB2"); + + CODES_CHECK(codes_set_long(h, "numberOfDataPoints", number_of_values), 0); + CODES_CHECK(codes_set_long(h, "Ni", sqrt(number_of_values)), 0); + CODES_CHECK(codes_set_long(h, "Nj", sqrt(number_of_values)), 0); + + CODES_CHECK(codes_set_double(h, "latitudeOfFirstGridPointInDegrees", 35.000000), 0); + CODES_CHECK(codes_set_double(h, "longitudeOfFirstGridPointInDegrees", 135.000000), 0); + CODES_CHECK(codes_set_double(h, "latitudeOfLastGridPointInDegrees", 35.000000 + (0.012500 * sqrt(number_of_values))), 0); + CODES_CHECK(codes_set_double(h, "longitudeOfLastGridPointInDegrees", 135.000000 + (0.008333 * sqrt(number_of_values))), 0); + CODES_CHECK(codes_set_double(h, "iDirectionIncrementInDegrees", 0.012500), 0); + CODES_CHECK(codes_set_double(h, "jDirectionIncrementInDegrees", 0.008333), 0); + CODES_CHECK(codes_set_long(h, "jScansPositively", 1), 0); + + CODES_CHECK(codes_set_string(h, "shortName", "t", &str_len), 0); + CODES_CHECK(codes_set_long(h, "numberOfValues", 1), 0); + CODES_CHECK(codes_set_string(h, "packingType", "grid_run_length", &str_len), 0); + CODES_CHECK(codes_set_long(h, "numberOfValues", number_of_values), 0); + CODES_CHECK(codes_set_long(h, "bitsPerValue", bits_per_value), 0); + CODES_CHECK(codes_set_long(h, "maxLevelValue", max_level_value), 0); + CODES_CHECK(codes_set_long(h, "numberOfLevelValues", number_of_level_values), 0); + CODES_CHECK(codes_set_long(h, "decimalScaleFactor", decimal_scale_factor), 0); + CODES_CHECK(codes_set_long_array(h, "levelValues", level_values, level_values_length), 0); + CODES_CHECK(codes_set_double_array(h, "values", values, values_length), 0); + + CODES_CHECK(codes_write_message(h, argv[1], "w"), 0); + codes_handle_delete(h); + + free(values); + return 0; +} diff --git a/tests/grib_run_length_packing.sh b/tests/grib_run_length_packing.sh new file mode 100755 index 000000000..ce44c7c95 --- /dev/null +++ b/tests/grib_run_length_packing.sh @@ -0,0 +1,47 @@ +#!/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 + +REDIRECT=/dev/null + +label="grib_run_length_packing_test" +tempGrib=temp.$label.grib +tempLog=temp.$label.log + +# Decoding +# ------------------ +input=$data_dir/run_length_packing.grib2 +if [ ! -f "$input" ]; then + echo " Input data file missing: $input" + exit 0 +fi + +${tools_dir}/grib_dump $input + +stats=$(${tools_dir}/grib_get -F%.5f -p packingType,min,max,avg $input) +[ "$stats" = "grid_run_length 1.00000 3.00000 1.00303" ] + +grib_check_key_equals $input numberOfMissing 71493 +grib_check_key_equals $input missingValuesPresent 1 + +# Encoding +# ----------------- +$EXEC ${test_dir}/grib_run_length_packing $tempGrib +${tools_dir}/grib_dump -O $tempGrib +${tools_dir}/grib_get_data -mXXX $tempGrib +grib_check_key_equals $tempGrib packingType grid_run_length + +stats=`${tools_dir}/grib_get -M -F%.1f -p min,max,avg $tempGrib` +[ "$stats" = "10.1 10.3 10.2" ] + + +# Clean up +rm -f $tempGrib $tempLog diff --git a/tests/grib_second_order.sh b/tests/grib_second_order.sh index dfe245e46..a50c8f681 100755 --- a/tests/grib_second_order.sh +++ b/tests/grib_second_order.sh @@ -177,6 +177,29 @@ infile=$ECCODES_SAMPLES_PATH/GRIB2.tmpl ${tools_dir}/grib_set -r -s packingType=grid_second_order $infile $temp1 grib_check_key_equals $temp1 packingType grid_simple +export ECCODES_GRIBEX_BOUSTROPHEDONIC=1 +${tools_dir}/grib_get -n statistics boustrophedonic.grib1 +${tools_dir}/grib_set -s scaleValuesBy=1.1 boustrophedonic.grib1 $temp1 +unset ECCODES_GRIBEX_BOUSTROPHEDONIC + + +# data_g1second_order_constant_width_packing +# ------------------------------------------ +input=second_ord_rbr.grib1 +${tools_dir}/grib_set -s Ni=2,Nj=74,secondOrderOfDifferentWidth=0,secondaryBitmapPresent=1 $input $temp1 +grib_check_key_equals $temp1 packingType grid_second_order_constant_width +${tools_dir}/grib_dump -O $temp1 > $REDIRECT +set +e +${tools_dir}/grib_set -s scaleValuesBy=2 $temp1 $temp2 > $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Not implemented" $tempText + +${tools_dir}/grib_get_data $temp1 > $REDIRECT +${tools_dir}/grib_ls -l46,1 $temp1 > $REDIRECT +${tools_dir}/grib_ls -j -l46,1,1 $temp1 > $REDIRECT + # Clean up rm -f $temp_stat1 $temp_stat2 diff --git a/tests/grib_set.sh b/tests/grib_set.sh index 9d35ad349..1b8be144b 100755 --- a/tests/grib_set.sh +++ b/tests/grib_set.sh @@ -18,6 +18,8 @@ temp=temp.grib_set.out rm -f $outfile +${tools_dir}/grib_set -V + ${tools_dir}/grib_set -v -p levtype,centre,levtype,centre:l -s levtype=pl,centre=80 $infile $outfile >$REDIRECT levtype=`${tools_dir}/grib_get -p levtype $outfile` @@ -50,10 +52,20 @@ centre=`${tools_dir}/grib_get -p centre:l $outfile` # Set without -s. Expected to fail # ---------------------------------------------------- set +e -${tools_dir}/grib_set -p levtype $infile $outfile 2> $REDIRECT > $REDIRECT +${tools_dir}/grib_set -p levtype $infile $outfile > $temp 2>&1 status=$? set -e [ $status -ne 0 ] +grep -q "provide some keys to set" $temp + +# Set with empty -s. Expected to fail +# ---------------------------------------------------- +set +e +${tools_dir}/grib_set -s '' $infile $outfile > $temp 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "provide some keys to set" $temp # Out-of-bounds value. Expected to fail # ---------------------------------------------------- @@ -75,6 +87,17 @@ set -e [ $status -ne 0 ] grep -q "Trying to encode a negative value of -1 for key of type unsigned" $temp +# Bad value for -d +# ---------------- +input=${data_dir}/reduced_gaussian_sub_area.grib2 +set +e +${tools_dir}/grib_set -d hello $input $outfile 2>$temp +status=$? +set -e +[ $status -ne 0 ] +grep -q "Invalid number" $temp + + # ECC-1605: Out-of-bounds value for signed keys # ---------------------------------------------------- if [ $ECCODES_ON_WINDOWS -eq 0 ]; then @@ -154,6 +177,23 @@ set -e grep -q "String cannot be converted to a double" $temp +# Set ascii key via double or long +# -------------------------------- +${tools_dir}/grib_set -s setLocalDefinition=1,localDefinitionNumber=21 $ECCODES_SAMPLES_PATH/GRIB2.tmpl $outfile +${tools_dir}/grib_set -s marsDomain=x $outfile $temp +grib_check_key_equals $temp 'marsDomain' 'x' +set +e +${tools_dir}/grib_set -s marsDomain=9 $outfile $temp +status=$? +set -e +[ $status -ne 0 ] + +set +e +${tools_dir}/grib_set -s marsDomain=1.2 $outfile $temp +status=$? +set -e +[ $status -ne 0 ] + # Strict option # --------------- # There is only one field in this file with shortName=2t @@ -168,6 +208,34 @@ count=`${tools_dir}/grib_count $outfile` [ $count -eq 1 ] grib_check_key_equals $outfile shortName '2t' +# Key with no_fail flag +# ------------------------ +input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +grib_check_key_equals $input 'typeOfProcessedData:i' '2' +${tools_dir}/grib_set -s typeOfProcessedData=rubbish $input $outfile +grib_check_key_equals $outfile 'typeOfProcessedData:i' '255' # set to default + +# Codetable mismatch +# ------------------------ +input=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +set +e +${tools_dir}/grib_set -s stepUnits=d $input $outfile > $temp 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "stepUnits: No such code table entry.*Did you mean" $temp + +# ------------------------ +# Unreadable message +# ------------------------ +echo GRIB > $outfile +set +e +${tools_dir}/grib_set -s edition=2 $outfile /dev/null > $temp 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "unreadable message" $temp + # Clean up rm -f $outfile $temp diff --git a/tests/grib_step.sh b/tests/grib_step.sh index 7a79a6e6b..2b1ca37b6 100755 --- a/tests/grib_step.sh +++ b/tests/grib_step.sh @@ -140,7 +140,29 @@ grib_check_key_equals $temp "stepRange,startStep,endStep" "24 24 24" ${tools_dir}/grib_set -s stepRange:d=14.56 $grib2_sample $temp grib_check_key_equals $temp "stepRange,startStep,endStep" "14 14 14" +# Key validityDateTime +# ----------------------------------------------- +input=${data_dir}/constant_field.grib2 +grib_check_key_equals $input "dataDate,dataTime,step" "20061205 1200 6" +grib_check_key_equals $input "validityDate,validityTime" "20061205 1800" +grib_check_key_equals $input "validityDateTime:s" "20061205 001800" + +# Key julianDay +# ----------------------------------------------- +input=${data_dir}/sample.grib2 +grib_check_key_equals $input 'julianDay:i' '2454503' +${tools_dir}/grib_set -s julianDay=2454504 $input $temp +grib_check_key_equals $input day 6 +grib_check_key_equals $temp day 7 + +# Seconds (ignored) +# ----------------------------------------------- +grib2_sample=$ECCODES_SAMPLES_PATH/GRIB2.tmpl +${tools_dir}/grib_ls -s second=9 -n time $grib2_sample 2>$templog +# Something should have been written to stderr +[ -s $templog ] +grep -q "Truncating time: non-zero seconds.* ignored" $templog # Clean up -rm -f $temp +rm -f $temp $templog rm -f $grib2File.p8tmp ${grib2File}.tmp x.grib diff --git a/tests/grib_to_netcdf.sh b/tests/grib_to_netcdf.sh index 5c1f13d35..9e2151b7c 100755 --- a/tests/grib_to_netcdf.sh +++ b/tests/grib_to_netcdf.sh @@ -135,5 +135,24 @@ ${tools_dir}/grib_to_netcdf -o $tempNetcdf $tempDir > $tempText grep -q "Processing input file .*/subdir/regular_latlon_surface.grib2" $tempText rm -rf $tempDir +echo "Enable/Disable Checks ..." +# --------------------------------- +rm -f $tempNetcdf +input=${data_dir}/regular_latlon_surface.grib2 +cat $input $input > $tempGrib +# By default checks are enabled. So this should fail +set +e +${tools_dir}/grib_to_netcdf -o $tempNetcdf $tempGrib > $tempText 2>&1 +status=$? +set -e +[ $status -ne 0 ] +grep -q "Wrong number of fields" $tempText + +export GRIB_TO_NETCDF_CHECKVALIDTIME=0 +${tools_dir}/grib_to_netcdf -o $tempNetcdf $tempGrib +[ -f "$tempNetcdf" ] +unset GRIB_TO_NETCDF_CHECKVALIDTIME + + # Clean up rm -f $tempNetcdf $tempGrib $tempText diff --git a/tests/grib_typeOfLevel.sh b/tests/grib_typeOfLevel.sh index 0db30515d..fa9a7634d 100755 --- a/tests/grib_typeOfLevel.sh +++ b/tests/grib_typeOfLevel.sh @@ -22,6 +22,8 @@ fi def_file="$ECCODES_DEFINITION_PATH/grib2/typeOfLevelConcept.def" rm -f $temp + +# uniq -d outputs a single copy of each line that is repeated in the input grep "^'" $def_file | awk -F= '{print $1}' | tr -d "' " | sort | uniq -d > $temp if [ -s "$temp" ]; then diff --git a/tests/grib_unpack_subarray.cc b/tests/grib_unpack_subarray.cc new file mode 100644 index 000000000..3321b4040 --- /dev/null +++ b/tests/grib_unpack_subarray.cc @@ -0,0 +1,54 @@ +/* + * (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 "grib_api_internal.h" + +int main(int argc, char** argv) +{ + Assert(argc == 2); + + int err = 0; + size_t nvalues = 0; + const char* filename = argv[1]; + grib_context* c = grib_context_get_default(); + + FILE* fin = fopen(filename, "r"); + Assert(fin); + grib_handle* h = grib_handle_new_from_file(0, fin, &err); + Assert(h); + Assert(!err); + + grib_accessor* a = grib_find_accessor(h, "codedValues"); + Assert(a); + GRIB_CHECK(grib_get_size(h, "codedValues", &nvalues), 0); + double* all_values = (double*)grib_context_malloc(c, sizeof(double) * nvalues); + double* sub_values = (double*)grib_context_malloc(c, sizeof(double) * nvalues); + Assert(all_values); + Assert(sub_values); + + size_t len = nvalues; + GRIB_CHECK(grib_unpack_double(a, all_values, &len), 0); + + size_t start = nvalues / 10; + len = nvalues / 5; + printf("nvalues=%zu, start=%zu, len=%zu\n", nvalues, start, len); + GRIB_CHECK(grib_unpack_double_subarray(a, sub_values, start, len), 0); + for (size_t i = 0; i < len; ++i) { + //printf("sub[%zu]=%.10e\n", start + i, sub_values[i]); + Assert(all_values[start+i] == sub_values[i]); + } + + grib_context_free(c, all_values); + grib_context_free(c, sub_values); + grib_handle_delete(h); + fclose(fin); + + return 0; +} diff --git a/tests/grib_unpack_subarray.sh b/tests/grib_unpack_subarray.sh new file mode 100755 index 000000000..43bc730d8 --- /dev/null +++ b/tests/grib_unpack_subarray.sh @@ -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_unpack_subarray_test" +temp=${label}".grib.tmp" + +infile=$data_dir/sample.grib2 +$EXEC ${test_dir}/grib_unpack_subarray $infile + +# Clean up +rm -f $temp diff --git a/tests/gts_compare.sh b/tests/gts_compare.sh index 77f0e2754..3fd648a1d 100755 --- a/tests/gts_compare.sh +++ b/tests/gts_compare.sh @@ -10,24 +10,18 @@ . ./include.ctest.sh -#set -x - -#Enter data dir +# Enter data dir cd ${data_dir}/gts -#Define a common label for all the tmp files +# Define a common label for all the tmp files label="gts_compare_test" -#Create log file fLog=${label}".log" rm -f $fLog touch $fLog -#Define tmp GTS file fGtsTmp=${label}".gts.tmp" fRules=${label}".filt" -fBufrInput1=${label}".bufr.input1" -fBufrInput2=${label}".bufr.input2" #---------------------------------------------------- # Test: comparing same files @@ -35,7 +29,7 @@ fBufrInput2=${label}".bufr.input2" gts_file="EGRR20150317121020_00493212.DAT" echo "Test: comparing the same files" >> $fLog echo "file: $gts_file" >> $fLog -${tools_dir}//gts_compare $gts_file $gts_file +${tools_dir}/gts_compare $gts_file $gts_file #---------------------------------------------------- # Test: comparing two different files @@ -46,18 +40,37 @@ cat > $fRules<&2 exit 1 fi +# The -d option should have created these two files +[ -f error1_1.gts ] +[ -f error2_1.gts ] +rm -f error1_1.gts error2_1.gts #---------------------------------------------------- # Test: comparing with and without the -b switch #---------------------------------------------------- -${tools_dir}//gts_compare -b GG $gts_file $fGtsTmp >> $fLog +# Add wrong blocklist. Should still fail +set +e +${tools_dir}/gts_compare -b CCCC $gts_file $fGtsTmp +status=$? +set -e +[ $status -eq 1 ] +# Add correct blocklist +${tools_dir}/gts_compare -b GG $gts_file $fGtsTmp + +# Test with file of the same name in a dir +tempDir=temp.$label.dir +rm -fr $tempDir +mkdir $tempDir +cp $gts_file $tempDir +${tools_dir}/gts_compare $gts_file $tempDir +rm -r $tempDir -#Clean up +# Clean up rm -f $fLog $fGtsTmp $fRules diff --git a/tests/gts_ls.sh b/tests/gts_ls.sh index 313f7b6df..3de662f3e 100755 --- a/tests/gts_ls.sh +++ b/tests/gts_ls.sh @@ -45,4 +45,12 @@ ${tools_dir}/gts_ls -p TT,AA,II,CCCC,YY,GG,gg,BBB $f 2> $REDIRECT > $res_ls diff $ref_ls $res_ls >$REDIRECT 2> $REDIRECT +#------------------------------------------- +# Decode the key 'theMessage' +#------------------------------------------- +echo 'print "[theMessage]";' | ${tools_dir}/gts_filter - $gts_file + +${tools_dir}/gts_ls -wcount=1 -p theMessage $f + +# Clean up rm -f $fLog $res_ls diff --git a/tests/keys b/tests/keys index 2177ad243..b31272383 100644 --- a/tests/keys +++ b/tests/keys @@ -1571,922 +1571,921 @@ oneMinuteMeanMinimumRVR1,1565 oneMinuteMeanMinimumRVR2,1566 oneMinuteMeanMinimumRVR3,1567 oneMinuteMeanMinimumRVR4,1568 -oneThousand,1569 -oper,1570 -operStream,1571 -operatingMode,1572 -operationalForecastCluster,1573 -optimisationTime,1574 -optimizeScaleFactor,1575 -optionalData,1576 -opttime,1577 -orderOfSPD,1578 -orderOfSpatialDifferencing,1579 -orientationOfTheGrid,1580 -orientationOfTheGridInDegrees,1581 -origin,1582 -originOfPostProcessing,1583 -originalParameterNumber,1584 -originalParameterTableNumber,1585 -originalSubCentreIdentifier,1586 -originatingCentre,1587 -originatingCentreOfAnalysis,1588 -originatingClass,1589 -originatorLocalTemplate,1590 -originatorLocalTemplateNumber,1591 -overlayTemplate,1592 -overlayTemplateNumber,1593 -pack,1594 -packedValues,1595 -packingError,1596 -packingType,1597 -padding,1598 -padding_grid1_1,1599 -padding_grid1_2,1600 -padding_grid3_1,1601 -padding_grid4_1,1602 -padding_grid50_1,1603 -padding_grid5_1,1604 -padding_grid90_1,1605 -padding_loc10_1,1606 -padding_loc12_1,1607 -padding_loc13_1,1608 -padding_loc13_2,1609 -padding_loc13_3,1610 -padding_loc13_4,1611 -padding_loc13_5,1612 -padding_loc14_1,1613 -padding_loc14_2,1614 -padding_loc15_1,1615 -padding_loc16_1,1616 -padding_loc17_2,1617 -padding_loc18_1,1618 -padding_loc18_2,1619 -padding_loc190_1,1620 -padding_loc191_1,1621 -padding_loc191_2,1622 -padding_loc191_3,1623 -padding_loc192_1,1624 -padding_loc19_2,1625 -padding_loc20_1,1626 -padding_loc21_1,1627 -padding_loc23_1,1628 -padding_loc244_1,1629 -padding_loc244_2,1630 -padding_loc244_3,1631 -padding_loc245_1,1632 -padding_loc245_2,1633 -padding_loc26_1,1634 -padding_loc27_1,1635 -padding_loc27_2,1636 -padding_loc28_1,1637 -padding_loc29_1,1638 -padding_loc29_2,1639 -padding_loc29_3,1640 -padding_loc2_1,1641 -padding_loc2_2,1642 -padding_loc30_1,1643 -padding_loc30_2,1644 -padding_loc37_1,1645 -padding_loc37_2,1646 -padding_loc38_1,1647 -padding_loc3_1,1648 -padding_loc4_2,1649 -padding_loc50_1,1650 -padding_loc5_1,1651 -padding_loc6_1,1652 -padding_loc7_1,1653 -padding_loc9_1,1654 -padding_loc9_2,1655 -padding_local11_1,1656 -padding_local1_1,1657 -padding_local1_31,1658 -padding_local40_1,1659 -padding_local_35,1660 -padding_local_7_1,1661 -padding_sec1_loc,1662 -padding_sec2_1,1663 -padding_sec2_2,1664 -padding_sec2_3,1665 -padding_sec3_1,1666 -padding_sec4_1,1667 -paleontologicalOffset,1668 -param,1669 -paramId,1670 -paramIdECMF,1671 -paramIdLegacyECMF,1672 -param_value_max,1673 -param_value_min,1674 -parameter,1675 -parameterCategory,1676 -parameterCode,1677 -parameterDiscipline,1678 -parameterIndicator,1679 -parameterName,1680 -parameterNumber,1681 -parameterUnits,1682 -parameters,1683 -parametersVersion,1684 -partitionItems,1685 -partitionNumber,1686 -partitionTable,1687 -partitions,1688 -pastTendencyRVR1,1689 -pastTendencyRVR2,1690 -pastTendencyRVR3,1691 -pastTendencyRVR4,1692 -patch_precip_fp,1693 -pentagonalResolutionParameterJ,1694 -pentagonalResolutionParameterK,1695 -pentagonalResolutionParameterM,1696 -percentileValue,1697 -periodOfTime,1698 -periodOfTimeIntervals,1699 -perturbationNumber,1700 -perturbedType,1701 -phase,1702 -physicalFlag1,1703 -physicalFlag2,1704 -physicalMeaningOfVerticalCoordinate,1705 -pl,1706 -platform,1707 -plusOneinOrdersOfSPD,1708 -points,1709 -postAuxiliary,1710 -postAuxiliaryArrayPresent,1711 -postProcessing,1712 -powerOfTenUsedToScaleClimateWeight,1713 -preBitmapValues,1714 -preProcessingParameter,1715 -precision,1716 -precisionOfTheUnpackedSubset,1717 -predefined_grid,1718 -predefined_grid_values,1719 -preferLocalConcepts,1720 -present,1721 -presentTrend1,1722 -presentTrend2,1723 -presentTrend3,1724 -presentTrend4,1725 -presentWeather1Present,1726 -presentWeather1PresentTrend1,1727 -presentWeather1PresentTrend2,1728 -presentWeather1PresentTrend3,1729 -presentWeather1PresentTrend4,1730 -presentWeather2Present,1731 -presentWeather2PresentTrend1,1732 -presentWeather2PresentTrend2,1733 -presentWeather2PresentTrend3,1734 -presentWeather2PresentTrend4,1735 -presentWeather3Present,1736 -presentWeather3PresentTrend1,1737 -presentWeather3PresentTrend2,1738 -presentWeather3PresentTrend3,1739 -presentWeather3PresentTrend4,1740 -pressureLevel,1741 -pressureUnits,1742 -primaryBitmap,1743 -primaryMissingValue,1744 -primaryMissingValueSubstitute,1745 -probContinous,1746 -probPoint,1747 -probProductDefinition,1748 -probabilityType,1749 -probabilityTypeName,1750 -process,1751 -produceLargeConstantFields,1752 -product,1753 -productDefinition,1754 -productDefinitionTemplateNumber,1755 -productDefinitionTemplateNumberInternal,1756 -productIdentifier,1757 -productType,1758 -productionStatusOfProcessedData,1759 -projSourceString,1760 -projString,1761 -projTargetString,1762 -projectLocalTemplate,1763 -projectLocalTemplateNumber,1764 -projectionCenterFlag,1765 -projectionCentreFlag,1766 -pv,1767 -pvlLocation,1768 -qfe,1769 -qfePresent,1770 -qfeUnits,1771 -qnh,1772 -qnhAPresent,1773 -qnhPresent,1774 -qnhUnits,1775 -qualityControl,1776 -qualityControlIndicator,1777 -qualityValueAssociatedWithParameter,1778 -quantile,1779 -quantileValue,1780 -radialAngularSpacing,1781 -radials,1782 -radius,1783 -radiusInMetres,1784 -radiusOfCentralCluster,1785 -radiusOfClusterDomain,1786 -radiusOfTheEarth,1787 -range,1788 -rangeBinSpacing,1789 -rdbDateTime,1790 -rdbSubtype,1791 -rdbType,1792 -rdb_key,1793 -rdbtime,1794 -rdbtimeDate,1795 -rdbtimeDay,1796 -rdbtimeHour,1797 -rdbtimeMinute,1798 -rdbtimeMonth,1799 -rdbtimeSecond,1800 -rdbtimeTime,1801 -rdbtimeYear,1802 -realPart,1803 -realPartOf00,1804 -recDateTime,1805 -recentWeather,1806 -recentWeatherTry,1807 -rectime,1808 -rectimeDay,1809 -rectimeHour,1810 -rectimeMinute,1811 -rectimeSecond,1812 -reducedGrid,1813 -refdate,1814 -reference,1815 -referenceDate,1816 -referenceForGroupLengths,1817 -referenceForGroupWidths,1818 -referenceOfLengths,1819 -referenceOfWidths,1820 -referencePeriodList,1821 -referenceReflectivityForEchoTop,1822 -referenceSampleInterval,1823 -referenceStep,1824 -referenceValue,1825 -referenceValueError,1826 -reflectivityCalibrationConstant,1827 -remarkPresent,1828 -reportType,1829 -representationMode,1830 -representationType,1831 -representativeMember,1832 -reserved,1833 -reserved1,1834 -reserved2,1835 -reserved3,1836 -reservedNeedNotBePresent,1837 -reservedOctet,1838 -reservedSection2,1839 -reservedSection3,1840 -reservedSection4,1841 -resolutionAndComponentFlags,1842 -resolutionAndComponentFlags1,1843 -resolutionAndComponentFlags2,1844 -resolutionAndComponentFlags3,1845 -resolutionAndComponentFlags4,1846 -resolutionAndComponentFlags6,1847 -resolutionAndComponentFlags7,1848 -resolutionAndComponentFlags8,1849 -restricted,1850 -rootGroupObjectHeaderAddress,1851 -rootGroupSymbolTableEntry,1852 -rootTablesDir,1853 -roundedMarsLatitude,1854 -roundedMarsLevelist,1855 -roundedMarsLongitude,1856 -runwayBrakingActionState1,1857 -runwayBrakingActionState2,1858 -runwayBrakingActionState3,1859 -runwayBrakingActionState4,1860 -runwayDepositCodeState1,1861 -runwayDepositCodeState2,1862 -runwayDepositCodeState3,1863 -runwayDepositCodeState4,1864 -runwayDepositState1,1865 -runwayDepositState2,1866 -runwayDepositState3,1867 -runwayDepositState4,1868 -runwayDepthOfDepositCodeState1,1869 -runwayDepthOfDepositCodeState2,1870 -runwayDepthOfDepositCodeState3,1871 -runwayDepthOfDepositCodeState4,1872 -runwayDepthOfDepositState1,1873 -runwayDepthOfDepositState2,1874 -runwayDepthOfDepositState3,1875 -runwayDepthOfDepositState4,1876 -runwayDesignatorRVR1,1877 -runwayDesignatorRVR2,1878 -runwayDesignatorRVR3,1879 -runwayDesignatorRVR4,1880 -runwayDesignatorState1,1881 -runwayDesignatorState2,1882 -runwayDesignatorState3,1883 -runwayDesignatorState4,1884 -runwayExtentOfContaminationCodeState1,1885 -runwayExtentOfContaminationCodeState2,1886 -runwayExtentOfContaminationCodeState3,1887 -runwayExtentOfContaminationCodeState4,1888 -runwayExtentOfContaminationState1,1889 -runwayExtentOfContaminationState2,1890 -runwayExtentOfContaminationState3,1891 -runwayExtentOfContaminationState4,1892 -runwayFrictionCodeValueState1,1893 -runwayFrictionCodeValueState2,1894 -runwayFrictionCodeValueState3,1895 -runwayFrictionCodeValueState4,1896 -runwayFrictionCoefficientCodeState1,1897 -runwayFrictionCoefficientCodeState2,1898 -runwayFrictionCoefficientCodeState3,1899 -runwayFrictionCoefficientCodeState4,1900 -runwayFrictionCoefficientState1,1901 -runwayFrictionCoefficientState2,1902 -runwayFrictionCoefficientState3,1903 -runwayFrictionCoefficientState4,1904 -runwaySideCodeState1,1905 -runwaySideCodeState2,1906 -runwaySideCodeState3,1907 -runwaySideCodeState4,1908 -runwayState,1909 -sampleSizeOfModelClimate,1910 -sampleSizeOfReferencePeriod,1911 -satelliteID,1912 -satelliteIdentifier,1913 -satelliteNumber,1914 -satelliteSeries,1915 -scaleFactorAtReferencePoint,1916 -scaleFactorOfAdditionalParameterForReferencePeriod,1917 -scaleFactorOfCentralWaveNumber,1918 -scaleFactorOfDistanceFromEnsembleMean,1919 -scaleFactorOfDistributionFunctionParameter,1920 -scaleFactorOfEarthMajorAxis,1921 -scaleFactorOfEarthMinorAxis,1922 -scaleFactorOfFirstFixedSurface,1923 -scaleFactorOfFirstSize,1924 -scaleFactorOfFirstWavelength,1925 -scaleFactorOfLengthOfSemiMajorAxis,1926 -scaleFactorOfLengthOfSemiMinorAxis,1927 -scaleFactorOfLowerLimit,1928 -scaleFactorOfLowerWavePeriodLimit,1929 -scaleFactorOfMajorAxisOfOblateSpheroidEarth,1930 -scaleFactorOfMinorAxisOfOblateSpheroidEarth,1931 -scaleFactorOfPrimeMeridianOffset,1932 -scaleFactorOfRadiusOfSphericalEarth,1933 -scaleFactorOfSecondFixedSurface,1934 -scaleFactorOfSecondSize,1935 -scaleFactorOfSecondWavelength,1936 -scaleFactorOfStandardDeviation,1937 -scaleFactorOfStandardDeviationInTheCluster,1938 -scaleFactorOfUpperLimit,1939 -scaleFactorOfUpperWavePeriodLimit,1940 -scaleFactorOfWaveDirectionSequenceParameter,1941 -scaleFactorOfWaveDirections,1942 -scaleFactorOfWaveFrequencies,1943 -scaleFactorOfWaveFrequencySequenceParameter,1944 -scaleValuesBy,1945 -scaledDirections,1946 -scaledFrequencies,1947 -scaledValueOfAdditionalParameterForReferencePeriod,1948 -scaledValueOfCentralWaveNumber,1949 -scaledValueOfDistanceFromEnsembleMean,1950 -scaledValueOfDistributionFunctionParameter,1951 -scaledValueOfEarthMajorAxis,1952 -scaledValueOfEarthMinorAxis,1953 -scaledValueOfFirstFixedSurface,1954 -scaledValueOfFirstSize,1955 -scaledValueOfFirstWavelength,1956 -scaledValueOfLengthOfSemiMajorAxis,1957 -scaledValueOfLengthOfSemiMinorAxis,1958 -scaledValueOfLowerLimit,1959 -scaledValueOfLowerWavePeriodLimit,1960 -scaledValueOfMajorAxisOfOblateSpheroidEarth,1961 -scaledValueOfMinorAxisOfOblateSpheroidEarth,1962 -scaledValueOfPrimeMeridianOffset,1963 -scaledValueOfRadiusOfSphericalEarth,1964 -scaledValueOfSecondFixedSurface,1965 -scaledValueOfSecondSize,1966 -scaledValueOfSecondWavelength,1967 -scaledValueOfStandardDeviation,1968 -scaledValueOfStandardDeviationInTheCluster,1969 -scaledValueOfUpperLimit,1970 -scaledValueOfUpperWavePeriodLimit,1971 -scaledValueOfWaveDirectionSequenceParameter,1972 -scaledValueOfWaveFrequencySequenceParameter,1973 -scaledValuesOfWaveDirections,1974 -scaledValuesOfWaveFrequencies,1975 -scalingFactorForFrequencies,1976 -scanPosition,1977 -scanningMode,1978 -scanningMode4,1979 -scanningMode5,1980 -scanningMode6,1981 -scanningMode7,1982 -scanningMode8,1983 -scanningModeForOneDiamond,1984 -sd,1985 -second,1986 -secondDimension,1987 -secondDimensionCoordinateValueDefinition,1988 -secondDimensionPhysicalSignificance,1989 -secondLatitude,1990 -secondLatitudeInDegrees,1991 -secondOfEndOfOverallTimeInterval,1992 -secondOfForecast,1993 -secondOfForecastUsedInLocalTime,1994 -secondOfModelVersion,1995 -secondOfStartOfReferencePeriod,1996 -secondOrderFlags,1997 -secondOrderOfDifferentWidth,1998 -secondOrderValuesDifferentWidths,1999 -secondSize,2000 -secondaryBitMap,2001 -secondaryBitmap,2002 -secondaryBitmapPresent,2003 -secondaryBitmaps,2004 -secondaryBitmapsCount,2005 -secondaryBitmapsSize,2006 -secondaryMissingValue,2007 -secondaryMissingValueSubstitute,2008 -secondsOfAnalysis,2009 -secondsOfReference,2010 -section,2011 -section0Length,2012 -section0Pointer,2013 -section1,2014 -section10Length,2015 -section10Pointer,2016 -section11Length,2017 -section11Pointer,2018 -section1Flags,2019 -section1Length,2020 -section1Padding,2021 -section1Pointer,2022 -section2Length,2023 -section2Padding,2024 -section2Pointer,2025 -section2Present,2026 -section2Used,2027 -section3Flags,2028 -section3Length,2029 -section3Padding,2030 -section3Pointer,2031 -section3UniqueIdentifier,2032 -section4,2033 -section4Length,2034 -section4Padding,2035 -section4Pointer,2036 -section4UniqueIdentifier,2037 -section5,2038 -section5Length,2039 -section5Pointer,2040 -section5UniqueIdentifier,2041 -section6,2042 -section6Length,2043 -section6Pointer,2044 -section6UniqueIdentifier,2045 -section7,2046 -section7Length,2047 -section7Pointer,2048 -section7UniqueIdentifier,2049 -section8,2050 -section8Length,2051 -section8Pointer,2052 -section8UniqueIdentifier,2053 -section9Length,2054 -section9Pointer,2055 -section9UniqueIdentifier,2056 -sectionLengthLimitForEnsembles,2057 -sectionLengthLimitForProbability,2058 -sectionNumber,2059 -sectionPosition,2060 -section_01,2061 -section_02,2062 -section_03,2063 -section_04,2064 -section_05,2065 -section_06,2066 -section_07,2067 -section_08,2068 -section_09,2069 -section_1,2070 -section_10,2071 -section_11,2072 -section_2,2073 -section_3,2074 -section_4,2075 -section_5,2076 -section_6,2077 -section_7,2078 -section_8,2079 -selectStepTemplateInstant,2080 -selectStepTemplateInterval,2081 -selectedDay,2082 -selectedFcIndex,2083 -selectedHour,2084 -selectedMinute,2085 -selectedMonth,2086 -selectedSecond,2087 -selectedYear,2088 -sensitiveAreaDomain,2089 -sequences,2090 -setBitsPerValue,2091 -setCalendarId,2092 -setDecimalPrecision,2093 -setLocalDefinition,2094 -setToMissingIfOutOfRange,2095 -sfc_levtype,2096 -shapeOfTheEarth,2097 -shapeOfVerificationArea,2098 -shortName,2099 -shortNameECMF,2100 -shortNameLegacyECMF,2101 -short_name,2102 -signature,2103 -significanceOfReferenceDateAndTime,2104 -significanceOfReferenceTime,2105 -simpleThinningMissingRadius,2106 -simpleThinningSkip,2107 -simpleThinningStart,2108 -siteElevation,2109 -siteId,2110 -siteLatitude,2111 -siteLongitude,2112 -sizeOfLength,2113 -sizeOfOffsets,2114 -sizeOfPostAuxiliaryArray,2115 -sizeOfPostAuxiliaryArrayPlusOne,2116 -skew,2117 -skewness,2118 -skipExtraKeyAttributes,2119 -sort,2120 -sourceOfGridDefinition,2121 -sourceSinkChemicalPhysicalProcess,2122 -southEastLatitudeOfLPOArea,2123 -southEastLatitudeOfVerficationArea,2124 -southEastLongitudeOfLPOArea,2125 -southEastLongitudeOfVerficationArea,2126 -southLatitudeOfCluster,2127 -southLatitudeOfDomainOfTubing,2128 -southPoleOnProjectionPlane,2129 -southernLatitudeOfClusterDomain,2130 -southernLatitudeOfDomain,2131 -sp1,2132 -sp2,2133 -sp3,2134 -spaceUnitFlag,2135 -spacingOfBinsAlongRadials,2136 -spare,2137 -spare1,2138 -spare2,2139 -spare3,2140 -spare4,2141 -spatialProcessing,2142 -spatialSmoothingOfProduct,2143 -spectralDataRepresentationMode,2144 -spectralDataRepresentationType,2145 -spectralMode,2146 -spectralType,2147 -sphericalHarmonics,2148 -standardDeviation,2149 -standardParallel,2150 -standardParallelInDegrees,2151 -standardParallelInMicrodegrees,2152 -startDateOfReferencePeriod,2153 -startOfHeaders,2154 -startOfMessage,2155 -startOfRange,2156 -startStep,2157 -startStepInHours,2158 -startTimeStep,2159 -startingAzimuth,2160 -statisticalProcess,2161 -statisticalProcessesList,2162 -statistics,2163 -status,2164 -step,2165 -stepForClustering,2166 -stepHumanReadable,2167 -stepInHours,2168 -stepRange,2169 -stepRangeInHours,2170 -stepType,2171 -stepTypeForConversion,2172 -stepTypeInternal,2173 -stepUnits,2174 -stepZero,2175 -stream,2176 -streamOfAnalysis,2177 -stretchingFactor,2178 -stretchingFactorScaled,2179 -stringValues,2180 -subCentre,2181 -subDefinitions1,2182 -subDefinitions2,2183 -subLocalDefinition1,2184 -subLocalDefinition2,2185 -subLocalDefinitionLength1,2186 -subLocalDefinitionLength2,2187 -subLocalDefinitionNumber1,2188 -subLocalDefinitionNumber2,2189 -subSetJ,2190 -subSetK,2191 -subSetM,2192 -subcentreOfAnalysis,2193 -subdivisionsOfBasicAngle,2194 -suiteName,2195 -superblockExtensionAddress,2196 -swapScanningAlternativeRows,2197 -swapScanningLat,2198 -swapScanningLon,2199 -swapScanningX,2200 -swapScanningY,2201 -system,2202 -systemNumber,2203 -t,2204 -table2Version,2205 -tableCode,2206 -tableNumber,2207 -tableReference,2208 -tablesLocalDir,2209 -tablesMasterDir,2210 -tablesVersion,2211 -tablesVersionLatest,2212 -tablesVersionLatestOfficial,2213 -targetCompressionRatio,2214 -td,2215 -tempPressureUnits,2216 -temperature,2217 -temperatureAndDewpointPresent,2218 -templatesLocalDir,2219 -templatesMasterDir,2220 -theHindcastMarsStream,2221 -theMessage,2222 -thisExperimentVersionNumber,2223 -thisMarsClass,2224 -thisMarsStream,2225 -thisMarsType,2226 -thousand,2227 -three,2228 -threshold,2229 -thresholdIndicator,2230 -tiggeCentre,2231 -tiggeLAMName,2232 -tiggeLocalVersion,2233 -tiggeModel,2234 -tiggeSection,2235 -tiggeSuiteID,2236 -tigge_name,2237 -tigge_short_name,2238 -tileClassification,2239 -tileIndex,2240 -time,2241 -timeCoordinateDefinition,2242 -timeDomainTemplate,2243 -timeDomainTemplateNumber,2244 -timeIncrement,2245 -timeIncrementBetweenSuccessiveFields,2246 -timeOfAnalysis,2247 -timeOfForecast,2248 -timeOfForecastUsedInLocalTime,2249 -timeOfModelVersion,2250 -timeOfReference,2251 -timeRangeIndicator,2252 -timeRangeIndicatorFromStepRange,2253 -timeUnitFlag,2254 -timerepres,2255 -topLevel,2256 -total,2257 -totalAerosolBinsNumbers,2258 -totalInitialConditions,2259 -totalLength,2260 -totalNumber,2261 -totalNumberOfClusters,2262 -totalNumberOfDataValuesMissingInStatisticalProcess,2263 -totalNumberOfDirections,2264 -totalNumberOfForecastProbabilities,2265 -totalNumberOfFrequencies,2266 -totalNumberOfGridPoints,2267 -totalNumberOfIterations,2268 -totalNumberOfQuantiles,2269 -totalNumberOfRepetitions,2270 -totalNumberOfTileAttributePairs,2271 -totalNumberOfTubes,2272 -totalNumberOfValuesInUnpackedSubset,2273 -totalNumberOfWaveDirections,2274 -totalNumberOfWaveFrequencies,2275 -totalNumberOfdimensions,2276 -treatmentOfMissingData,2277 -true,2278 -trueLengthOfLastGroup,2279 -truncateDegrees,2280 -truncateLaplacian,2281 -tsectionNumber3,2282 -tsectionNumber4,2283 -tsectionNumber5,2284 -tubeDomain,2285 -tubeNumber,2286 -two,2287 -twoOrdersOfSPD,2288 -type,2289 -typeOfAnalysis,2290 -typeOfAuxiliaryInformation,2291 -typeOfCalendar,2292 -typeOfCompressionUsed,2293 -typeOfDistributionFunction,2294 -typeOfEnsembleForecast,2295 -typeOfEnsembleMember,2296 -typeOfFirstFixedSurface,2297 -typeOfGeneratingProcess,2298 -typeOfGrid,2299 -typeOfHorizontalLine,2300 -typeOfIntervalForFirstAndSecondSize,2301 -typeOfIntervalForFirstAndSecondWavelength,2302 -typeOfLevel,2303 -typeOfLevelECMF,2304 -typeOfOriginalFieldValues,2305 -typeOfPacking,2306 -typeOfPostProcessing,2307 -typeOfPreProcessing,2308 -typeOfProcessedData,2309 -typeOfReferenceDataset,2310 -typeOfRelationToReferenceDataset,2311 -typeOfSSTFieldUsed,2312 -typeOfSecondFixedSurface,2313 -typeOfSizeInterval,2314 -typeOfStatisticalPostProcessingOfEnsembleMembers,2315 -typeOfStatisticalProcessing,2316 -typeOfStatisticalProcessingForTimeRangeForReferencePeriod,2317 -typeOfTimeIncrement,2318 -typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing,2319 -typeOfWaveDirectionSequence,2320 -typeOfWaveFrequencySequence,2321 -typeOfWavePeriodInterval,2322 -typeOfWavelengthInterval,2323 -typicalCentury,2324 -typicalDate,2325 -typicalDateTime,2326 -typicalDay,2327 -typicalHour,2328 -typicalMinute,2329 -typicalMonth,2330 -typicalSecond,2331 -typicalTime,2332 -typicalYear,2333 -typicalYear2,2334 -typicalYearOfCentury,2335 -uco,2336 -ucs,2337 -uerraLocalVersion,2338 -uerraSection,2339 -unexpandedDescriptors,2340 -unexpandedDescriptorsEncoded,2341 -unitOfOffsetFromReferenceTime,2342 -unitOfTime,2343 -unitOfTimeIncrement,2344 -unitOfTimeRange,2345 -units,2346 -unitsBias,2347 -unitsConversionOffset,2348 -unitsConversionScaleFactor,2349 -unitsDecimalScaleFactor,2350 -unitsECMF,2351 -unitsFactor,2352 -unitsLegacyECMF,2353 -unitsOfFirstFixedSurface,2354 -unitsOfSecondFixedSurface,2355 -unknown,2356 -unpack,2357 -unpackedError,2358 -unpackedSubsetPrecision,2359 -unpackedValues,2360 -unsignedIntegers,2361 -unstructuredGrid,2362 -unstructuredGridSubtype,2363 -unstructuredGridType,2364 -unstructuredGridUUID,2365 -unusedBitsInBitmap,2366 -updateSequenceNumber,2367 -upperLimit,2368 -upperRange,2369 -upperThreshold,2370 -upperThresholdValue,2371 -userDateEnd,2372 -userDateStart,2373 -userDateTimeEnd,2374 -userDateTimeStart,2375 -userTimeEnd,2376 -userTimeStart,2377 -uuidOfHGrid,2378 -uuidOfVGrid,2379 -uvRelativeToGrid,2380 -validityDate,2381 -validityTime,2382 -values,2383 -variationOfVisibility,2384 -variationOfVisibilityDirection,2385 -variationOfVisibilityDirectionAngle,2386 -variationOfVisibilityDirectionTrend1,2387 -variationOfVisibilityDirectionTrend2,2388 -variationOfVisibilityDirectionTrend3,2389 -variationOfVisibilityDirectionTrend4,2390 -variationOfVisibilityTrend1,2391 -variationOfVisibilityTrend2,2392 -variationOfVisibilityTrend3,2393 -variationOfVisibilityTrend4,2394 -varno,2395 -verificationDate,2396 -verificationMonth,2397 -verificationYear,2398 -verifyingMonth,2399 -version,2400 -versionNumOfFilesFreeSpaceStorage,2401 -versionNumOfRootGroupSymbolTableEntry,2402 -versionNumOfSharedHeaderMessageFormat,2403 -versionNumberOfExperimentalSuite,2404 -versionNumberOfGribLocalTables,2405 -versionNumberOfSuperblock,2406 -versionOfModelClimate,2407 -verticalCoordinate,2408 -verticalCoordinateDefinition,2409 -verticalDomainTemplate,2410 -verticalDomainTemplateNumber,2411 -verticalVisibility,2412 -verticalVisibilityCoded,2413 -visibility,2414 -visibilityInKilometresTrend1,2415 -visibilityInKilometresTrend2,2416 -visibilityInKilometresTrend3,2417 -visibilityInKilometresTrend4,2418 -visibilityTrend1,2419 -visibilityTrend2,2420 -visibilityTrend3,2421 -visibilityTrend4,2422 -waveDirectionNumber,2423 -waveDomain,2424 -waveFrequencyNumber,2425 -waveLevType,2426 -weightAppliedToClimateMonth1,2427 -westLongitudeOfCluster,2428 -westLongitudeOfDomainOfTubing,2429 -westernLongitudeOfClusterDomain,2430 -westernLongitudeOfDomain,2431 -widthOfFirstOrderValues,2432 -widthOfLengths,2433 -widthOfSPD,2434 -widthOfWidths,2435 -windDirection,2436 -windDirectionTrend1,2437 -windDirectionTrend2,2438 -windDirectionTrend3,2439 -windDirectionTrend4,2440 -windGust,2441 -windGustTrend1,2442 -windGustTrend2,2443 -windGustTrend3,2444 -windGustTrend4,2445 -windPresent,2446 -windSpeed,2447 -windSpeedTrend1,2448 -windSpeedTrend2,2449 -windSpeedTrend3,2450 -windSpeedTrend4,2451 -windUnits,2452 -windUnitsTrend1,2453 -windUnitsTrend2,2454 -windUnitsTrend3,2455 -windUnitsTrend4,2456 -windVariableDirection,2457 -windVariableDirectionTrend1,2458 -windVariableDirectionTrend2,2459 -windVariableDirectionTrend3,2460 -windVariableDirectionTrend4,2461 -wrongPadding,2462 -xCoordinateOfOriginOfSectorImage,2463 -xCoordinateOfSubSatellitePoint,2464 -xDirectionGridLength,2465 -xDirectionGridLengthInMetres,2466 -xDirectionGridLengthInMillimetres,2467 -xFirst,2468 -xLast,2469 -yCoordinateOfOriginOfSectorImage,2470 -yCoordinateOfSubSatellitePoint,2471 -yDirectionGridLength,2472 -yDirectionGridLengthInMetres,2473 -yDirectionGridLengthInMillimetres,2474 -yFirst,2475 -yLast,2476 -year,2477 -yearOfAnalysis,2478 -yearOfCentury,2479 -yearOfEndOfOverallTimeInterval,2480 -yearOfForecast,2481 -yearOfForecastUsedInLocalTime,2482 -yearOfModelVersion,2483 -yearOfReference,2484 -yearOfStartOfReferencePeriod,2485 -zero,2486 -zeros,2487 +oper,1569 +operStream,1570 +operatingMode,1571 +operationalForecastCluster,1572 +optimisationTime,1573 +optimizeScaleFactor,1574 +optionalData,1575 +opttime,1576 +orderOfSPD,1577 +orderOfSpatialDifferencing,1578 +orientationOfTheGrid,1579 +orientationOfTheGridInDegrees,1580 +origin,1581 +originOfPostProcessing,1582 +originalParameterNumber,1583 +originalParameterTableNumber,1584 +originalSubCentreIdentifier,1585 +originatingCentre,1586 +originatingCentreOfAnalysis,1587 +originatingClass,1588 +originatorLocalTemplate,1589 +originatorLocalTemplateNumber,1590 +overlayTemplate,1591 +overlayTemplateNumber,1592 +pack,1593 +packedValues,1594 +packingError,1595 +packingType,1596 +padding,1597 +padding_grid1_1,1598 +padding_grid1_2,1599 +padding_grid3_1,1600 +padding_grid4_1,1601 +padding_grid50_1,1602 +padding_grid5_1,1603 +padding_grid90_1,1604 +padding_loc10_1,1605 +padding_loc12_1,1606 +padding_loc13_1,1607 +padding_loc13_2,1608 +padding_loc13_3,1609 +padding_loc13_4,1610 +padding_loc13_5,1611 +padding_loc14_1,1612 +padding_loc14_2,1613 +padding_loc15_1,1614 +padding_loc16_1,1615 +padding_loc17_2,1616 +padding_loc18_1,1617 +padding_loc18_2,1618 +padding_loc190_1,1619 +padding_loc191_1,1620 +padding_loc191_2,1621 +padding_loc191_3,1622 +padding_loc192_1,1623 +padding_loc19_2,1624 +padding_loc20_1,1625 +padding_loc21_1,1626 +padding_loc23_1,1627 +padding_loc244_1,1628 +padding_loc244_2,1629 +padding_loc244_3,1630 +padding_loc245_1,1631 +padding_loc245_2,1632 +padding_loc26_1,1633 +padding_loc27_1,1634 +padding_loc27_2,1635 +padding_loc28_1,1636 +padding_loc29_1,1637 +padding_loc29_2,1638 +padding_loc29_3,1639 +padding_loc2_1,1640 +padding_loc2_2,1641 +padding_loc30_1,1642 +padding_loc30_2,1643 +padding_loc37_1,1644 +padding_loc37_2,1645 +padding_loc38_1,1646 +padding_loc3_1,1647 +padding_loc4_2,1648 +padding_loc50_1,1649 +padding_loc5_1,1650 +padding_loc6_1,1651 +padding_loc7_1,1652 +padding_loc9_1,1653 +padding_loc9_2,1654 +padding_local11_1,1655 +padding_local1_1,1656 +padding_local1_31,1657 +padding_local40_1,1658 +padding_local_35,1659 +padding_local_7_1,1660 +padding_sec1_loc,1661 +padding_sec2_1,1662 +padding_sec2_2,1663 +padding_sec2_3,1664 +padding_sec3_1,1665 +padding_sec4_1,1666 +paleontologicalOffset,1667 +param,1668 +paramId,1669 +paramIdECMF,1670 +paramIdLegacyECMF,1671 +param_value_max,1672 +param_value_min,1673 +parameter,1674 +parameterCategory,1675 +parameterCode,1676 +parameterDiscipline,1677 +parameterIndicator,1678 +parameterName,1679 +parameterNumber,1680 +parameterUnits,1681 +parameters,1682 +parametersVersion,1683 +partitionItems,1684 +partitionNumber,1685 +partitionTable,1686 +partitions,1687 +pastTendencyRVR1,1688 +pastTendencyRVR2,1689 +pastTendencyRVR3,1690 +pastTendencyRVR4,1691 +patch_precip_fp,1692 +pentagonalResolutionParameterJ,1693 +pentagonalResolutionParameterK,1694 +pentagonalResolutionParameterM,1695 +percentileValue,1696 +periodOfTime,1697 +periodOfTimeIntervals,1698 +perturbationNumber,1699 +perturbedType,1700 +phase,1701 +physicalFlag1,1702 +physicalFlag2,1703 +physicalMeaningOfVerticalCoordinate,1704 +pl,1705 +platform,1706 +plusOneinOrdersOfSPD,1707 +points,1708 +postAuxiliary,1709 +postAuxiliaryArrayPresent,1710 +postProcessing,1711 +powerOfTenUsedToScaleClimateWeight,1712 +preBitmapValues,1713 +preProcessingParameter,1714 +precision,1715 +precisionOfTheUnpackedSubset,1716 +predefined_grid,1717 +predefined_grid_values,1718 +preferLocalConcepts,1719 +present,1720 +presentTrend1,1721 +presentTrend2,1722 +presentTrend3,1723 +presentTrend4,1724 +presentWeather1Present,1725 +presentWeather1PresentTrend1,1726 +presentWeather1PresentTrend2,1727 +presentWeather1PresentTrend3,1728 +presentWeather1PresentTrend4,1729 +presentWeather2Present,1730 +presentWeather2PresentTrend1,1731 +presentWeather2PresentTrend2,1732 +presentWeather2PresentTrend3,1733 +presentWeather2PresentTrend4,1734 +presentWeather3Present,1735 +presentWeather3PresentTrend1,1736 +presentWeather3PresentTrend2,1737 +presentWeather3PresentTrend3,1738 +presentWeather3PresentTrend4,1739 +pressureLevel,1740 +pressureUnits,1741 +primaryBitmap,1742 +primaryMissingValue,1743 +primaryMissingValueSubstitute,1744 +probContinous,1745 +probPoint,1746 +probProductDefinition,1747 +probabilityType,1748 +probabilityTypeName,1749 +process,1750 +produceLargeConstantFields,1751 +product,1752 +productDefinition,1753 +productDefinitionTemplateNumber,1754 +productDefinitionTemplateNumberInternal,1755 +productIdentifier,1756 +productType,1757 +productionStatusOfProcessedData,1758 +projSourceString,1759 +projString,1760 +projTargetString,1761 +projectLocalTemplate,1762 +projectLocalTemplateNumber,1763 +projectionCenterFlag,1764 +projectionCentreFlag,1765 +pv,1766 +pvlLocation,1767 +qfe,1768 +qfePresent,1769 +qfeUnits,1770 +qnh,1771 +qnhAPresent,1772 +qnhPresent,1773 +qnhUnits,1774 +qualityControl,1775 +qualityControlIndicator,1776 +qualityValueAssociatedWithParameter,1777 +quantile,1778 +quantileValue,1779 +radialAngularSpacing,1780 +radials,1781 +radius,1782 +radiusInMetres,1783 +radiusOfCentralCluster,1784 +radiusOfClusterDomain,1785 +radiusOfTheEarth,1786 +range,1787 +rangeBinSpacing,1788 +rdbDateTime,1789 +rdbSubtype,1790 +rdbType,1791 +rdb_key,1792 +rdbtime,1793 +rdbtimeDate,1794 +rdbtimeDay,1795 +rdbtimeHour,1796 +rdbtimeMinute,1797 +rdbtimeMonth,1798 +rdbtimeSecond,1799 +rdbtimeTime,1800 +rdbtimeYear,1801 +realPart,1802 +realPartOf00,1803 +recDateTime,1804 +recentWeather,1805 +recentWeatherTry,1806 +rectime,1807 +rectimeDay,1808 +rectimeHour,1809 +rectimeMinute,1810 +rectimeSecond,1811 +reducedGrid,1812 +refdate,1813 +reference,1814 +referenceDate,1815 +referenceForGroupLengths,1816 +referenceForGroupWidths,1817 +referenceOfLengths,1818 +referenceOfWidths,1819 +referencePeriodList,1820 +referenceReflectivityForEchoTop,1821 +referenceSampleInterval,1822 +referenceStep,1823 +referenceValue,1824 +referenceValueError,1825 +reflectivityCalibrationConstant,1826 +remarkPresent,1827 +reportType,1828 +representationMode,1829 +representationType,1830 +representativeMember,1831 +reserved,1832 +reserved1,1833 +reserved2,1834 +reserved3,1835 +reservedNeedNotBePresent,1836 +reservedOctet,1837 +reservedSection2,1838 +reservedSection3,1839 +reservedSection4,1840 +resolutionAndComponentFlags,1841 +resolutionAndComponentFlags1,1842 +resolutionAndComponentFlags2,1843 +resolutionAndComponentFlags3,1844 +resolutionAndComponentFlags4,1845 +resolutionAndComponentFlags6,1846 +resolutionAndComponentFlags7,1847 +resolutionAndComponentFlags8,1848 +restricted,1849 +rootGroupObjectHeaderAddress,1850 +rootGroupSymbolTableEntry,1851 +rootTablesDir,1852 +roundedMarsLatitude,1853 +roundedMarsLevelist,1854 +roundedMarsLongitude,1855 +runwayBrakingActionState1,1856 +runwayBrakingActionState2,1857 +runwayBrakingActionState3,1858 +runwayBrakingActionState4,1859 +runwayDepositCodeState1,1860 +runwayDepositCodeState2,1861 +runwayDepositCodeState3,1862 +runwayDepositCodeState4,1863 +runwayDepositState1,1864 +runwayDepositState2,1865 +runwayDepositState3,1866 +runwayDepositState4,1867 +runwayDepthOfDepositCodeState1,1868 +runwayDepthOfDepositCodeState2,1869 +runwayDepthOfDepositCodeState3,1870 +runwayDepthOfDepositCodeState4,1871 +runwayDepthOfDepositState1,1872 +runwayDepthOfDepositState2,1873 +runwayDepthOfDepositState3,1874 +runwayDepthOfDepositState4,1875 +runwayDesignatorRVR1,1876 +runwayDesignatorRVR2,1877 +runwayDesignatorRVR3,1878 +runwayDesignatorRVR4,1879 +runwayDesignatorState1,1880 +runwayDesignatorState2,1881 +runwayDesignatorState3,1882 +runwayDesignatorState4,1883 +runwayExtentOfContaminationCodeState1,1884 +runwayExtentOfContaminationCodeState2,1885 +runwayExtentOfContaminationCodeState3,1886 +runwayExtentOfContaminationCodeState4,1887 +runwayExtentOfContaminationState1,1888 +runwayExtentOfContaminationState2,1889 +runwayExtentOfContaminationState3,1890 +runwayExtentOfContaminationState4,1891 +runwayFrictionCodeValueState1,1892 +runwayFrictionCodeValueState2,1893 +runwayFrictionCodeValueState3,1894 +runwayFrictionCodeValueState4,1895 +runwayFrictionCoefficientCodeState1,1896 +runwayFrictionCoefficientCodeState2,1897 +runwayFrictionCoefficientCodeState3,1898 +runwayFrictionCoefficientCodeState4,1899 +runwayFrictionCoefficientState1,1900 +runwayFrictionCoefficientState2,1901 +runwayFrictionCoefficientState3,1902 +runwayFrictionCoefficientState4,1903 +runwaySideCodeState1,1904 +runwaySideCodeState2,1905 +runwaySideCodeState3,1906 +runwaySideCodeState4,1907 +runwayState,1908 +sampleSizeOfModelClimate,1909 +sampleSizeOfReferencePeriod,1910 +satelliteID,1911 +satelliteIdentifier,1912 +satelliteNumber,1913 +satelliteSeries,1914 +scaleFactorAtReferencePoint,1915 +scaleFactorOfAdditionalParameterForReferencePeriod,1916 +scaleFactorOfCentralWaveNumber,1917 +scaleFactorOfDistanceFromEnsembleMean,1918 +scaleFactorOfDistributionFunctionParameter,1919 +scaleFactorOfEarthMajorAxis,1920 +scaleFactorOfEarthMinorAxis,1921 +scaleFactorOfFirstFixedSurface,1922 +scaleFactorOfFirstSize,1923 +scaleFactorOfFirstWavelength,1924 +scaleFactorOfLengthOfSemiMajorAxis,1925 +scaleFactorOfLengthOfSemiMinorAxis,1926 +scaleFactorOfLowerLimit,1927 +scaleFactorOfLowerWavePeriodLimit,1928 +scaleFactorOfMajorAxisOfOblateSpheroidEarth,1929 +scaleFactorOfMinorAxisOfOblateSpheroidEarth,1930 +scaleFactorOfPrimeMeridianOffset,1931 +scaleFactorOfRadiusOfSphericalEarth,1932 +scaleFactorOfSecondFixedSurface,1933 +scaleFactorOfSecondSize,1934 +scaleFactorOfSecondWavelength,1935 +scaleFactorOfStandardDeviation,1936 +scaleFactorOfStandardDeviationInTheCluster,1937 +scaleFactorOfUpperLimit,1938 +scaleFactorOfUpperWavePeriodLimit,1939 +scaleFactorOfWaveDirectionSequenceParameter,1940 +scaleFactorOfWaveDirections,1941 +scaleFactorOfWaveFrequencies,1942 +scaleFactorOfWaveFrequencySequenceParameter,1943 +scaleValuesBy,1944 +scaledDirections,1945 +scaledFrequencies,1946 +scaledValueOfAdditionalParameterForReferencePeriod,1947 +scaledValueOfCentralWaveNumber,1948 +scaledValueOfDistanceFromEnsembleMean,1949 +scaledValueOfDistributionFunctionParameter,1950 +scaledValueOfEarthMajorAxis,1951 +scaledValueOfEarthMinorAxis,1952 +scaledValueOfFirstFixedSurface,1953 +scaledValueOfFirstSize,1954 +scaledValueOfFirstWavelength,1955 +scaledValueOfLengthOfSemiMajorAxis,1956 +scaledValueOfLengthOfSemiMinorAxis,1957 +scaledValueOfLowerLimit,1958 +scaledValueOfLowerWavePeriodLimit,1959 +scaledValueOfMajorAxisOfOblateSpheroidEarth,1960 +scaledValueOfMinorAxisOfOblateSpheroidEarth,1961 +scaledValueOfPrimeMeridianOffset,1962 +scaledValueOfRadiusOfSphericalEarth,1963 +scaledValueOfSecondFixedSurface,1964 +scaledValueOfSecondSize,1965 +scaledValueOfSecondWavelength,1966 +scaledValueOfStandardDeviation,1967 +scaledValueOfStandardDeviationInTheCluster,1968 +scaledValueOfUpperLimit,1969 +scaledValueOfUpperWavePeriodLimit,1970 +scaledValueOfWaveDirectionSequenceParameter,1971 +scaledValueOfWaveFrequencySequenceParameter,1972 +scaledValuesOfWaveDirections,1973 +scaledValuesOfWaveFrequencies,1974 +scalingFactorForFrequencies,1975 +scanPosition,1976 +scanningMode,1977 +scanningMode4,1978 +scanningMode5,1979 +scanningMode6,1980 +scanningMode7,1981 +scanningMode8,1982 +scanningModeForOneDiamond,1983 +sd,1984 +second,1985 +secondDimension,1986 +secondDimensionCoordinateValueDefinition,1987 +secondDimensionPhysicalSignificance,1988 +secondLatitude,1989 +secondLatitudeInDegrees,1990 +secondOfEndOfOverallTimeInterval,1991 +secondOfForecast,1992 +secondOfForecastUsedInLocalTime,1993 +secondOfModelVersion,1994 +secondOfStartOfReferencePeriod,1995 +secondOrderFlags,1996 +secondOrderOfDifferentWidth,1997 +secondOrderValuesDifferentWidths,1998 +secondSize,1999 +secondaryBitMap,2000 +secondaryBitmap,2001 +secondaryBitmapPresent,2002 +secondaryBitmaps,2003 +secondaryBitmapsCount,2004 +secondaryBitmapsSize,2005 +secondaryMissingValue,2006 +secondaryMissingValueSubstitute,2007 +secondsOfAnalysis,2008 +secondsOfReference,2009 +section,2010 +section0Length,2011 +section0Pointer,2012 +section1,2013 +section10Length,2014 +section10Pointer,2015 +section11Length,2016 +section11Pointer,2017 +section1Flags,2018 +section1Length,2019 +section1Padding,2020 +section1Pointer,2021 +section2Length,2022 +section2Padding,2023 +section2Pointer,2024 +section2Present,2025 +section2Used,2026 +section3Flags,2027 +section3Length,2028 +section3Padding,2029 +section3Pointer,2030 +section3UniqueIdentifier,2031 +section4,2032 +section4Length,2033 +section4Padding,2034 +section4Pointer,2035 +section4UniqueIdentifier,2036 +section5,2037 +section5Length,2038 +section5Pointer,2039 +section5UniqueIdentifier,2040 +section6,2041 +section6Length,2042 +section6Pointer,2043 +section6UniqueIdentifier,2044 +section7,2045 +section7Length,2046 +section7Pointer,2047 +section7UniqueIdentifier,2048 +section8,2049 +section8Length,2050 +section8Pointer,2051 +section8UniqueIdentifier,2052 +section9Length,2053 +section9Pointer,2054 +section9UniqueIdentifier,2055 +sectionLengthLimitForEnsembles,2056 +sectionLengthLimitForProbability,2057 +sectionNumber,2058 +sectionPosition,2059 +section_01,2060 +section_02,2061 +section_03,2062 +section_04,2063 +section_05,2064 +section_06,2065 +section_07,2066 +section_08,2067 +section_09,2068 +section_1,2069 +section_10,2070 +section_11,2071 +section_2,2072 +section_3,2073 +section_4,2074 +section_5,2075 +section_6,2076 +section_7,2077 +section_8,2078 +selectStepTemplateInstant,2079 +selectStepTemplateInterval,2080 +selectedDay,2081 +selectedFcIndex,2082 +selectedHour,2083 +selectedMinute,2084 +selectedMonth,2085 +selectedSecond,2086 +selectedYear,2087 +sensitiveAreaDomain,2088 +sequences,2089 +setBitsPerValue,2090 +setCalendarId,2091 +setDecimalPrecision,2092 +setLocalDefinition,2093 +setToMissingIfOutOfRange,2094 +sfc_levtype,2095 +shapeOfTheEarth,2096 +shapeOfVerificationArea,2097 +shortName,2098 +shortNameECMF,2099 +shortNameLegacyECMF,2100 +short_name,2101 +signature,2102 +significanceOfReferenceDateAndTime,2103 +significanceOfReferenceTime,2104 +simpleThinningMissingRadius,2105 +simpleThinningSkip,2106 +simpleThinningStart,2107 +siteElevation,2108 +siteId,2109 +siteLatitude,2110 +siteLongitude,2111 +sizeOfLength,2112 +sizeOfOffsets,2113 +sizeOfPostAuxiliaryArray,2114 +sizeOfPostAuxiliaryArrayPlusOne,2115 +skew,2116 +skewness,2117 +skipExtraKeyAttributes,2118 +sort,2119 +sourceOfGridDefinition,2120 +sourceSinkChemicalPhysicalProcess,2121 +southEastLatitudeOfLPOArea,2122 +southEastLatitudeOfVerficationArea,2123 +southEastLongitudeOfLPOArea,2124 +southEastLongitudeOfVerficationArea,2125 +southLatitudeOfCluster,2126 +southLatitudeOfDomainOfTubing,2127 +southPoleOnProjectionPlane,2128 +southernLatitudeOfClusterDomain,2129 +southernLatitudeOfDomain,2130 +sp1,2131 +sp2,2132 +sp3,2133 +spaceUnitFlag,2134 +spacingOfBinsAlongRadials,2135 +spare,2136 +spare1,2137 +spare2,2138 +spare3,2139 +spare4,2140 +spatialProcessing,2141 +spatialSmoothingOfProduct,2142 +spectralDataRepresentationMode,2143 +spectralDataRepresentationType,2144 +spectralMode,2145 +spectralType,2146 +sphericalHarmonics,2147 +standardDeviation,2148 +standardParallel,2149 +standardParallelInDegrees,2150 +standardParallelInMicrodegrees,2151 +startDateOfReferencePeriod,2152 +startOfHeaders,2153 +startOfMessage,2154 +startOfRange,2155 +startStep,2156 +startStepInHours,2157 +startTimeStep,2158 +startingAzimuth,2159 +statisticalProcess,2160 +statisticalProcessesList,2161 +statistics,2162 +status,2163 +step,2164 +stepForClustering,2165 +stepHumanReadable,2166 +stepInHours,2167 +stepRange,2168 +stepRangeInHours,2169 +stepType,2170 +stepTypeForConversion,2171 +stepTypeInternal,2172 +stepUnits,2173 +stepZero,2174 +stream,2175 +streamOfAnalysis,2176 +stretchingFactor,2177 +stretchingFactorScaled,2178 +stringValues,2179 +subCentre,2180 +subDefinitions1,2181 +subDefinitions2,2182 +subLocalDefinition1,2183 +subLocalDefinition2,2184 +subLocalDefinitionLength1,2185 +subLocalDefinitionLength2,2186 +subLocalDefinitionNumber1,2187 +subLocalDefinitionNumber2,2188 +subSetJ,2189 +subSetK,2190 +subSetM,2191 +subcentreOfAnalysis,2192 +subdivisionsOfBasicAngle,2193 +suiteName,2194 +superblockExtensionAddress,2195 +swapScanningAlternativeRows,2196 +swapScanningLat,2197 +swapScanningLon,2198 +swapScanningX,2199 +swapScanningY,2200 +system,2201 +systemNumber,2202 +t,2203 +table2Version,2204 +tableCode,2205 +tableNumber,2206 +tableReference,2207 +tablesLocalDir,2208 +tablesMasterDir,2209 +tablesVersion,2210 +tablesVersionLatest,2211 +tablesVersionLatestOfficial,2212 +targetCompressionRatio,2213 +td,2214 +tempPressureUnits,2215 +temperature,2216 +temperatureAndDewpointPresent,2217 +templatesLocalDir,2218 +templatesMasterDir,2219 +theHindcastMarsStream,2220 +theMessage,2221 +thisExperimentVersionNumber,2222 +thisMarsClass,2223 +thisMarsStream,2224 +thisMarsType,2225 +thousand,2226 +three,2227 +threshold,2228 +thresholdIndicator,2229 +tiggeCentre,2230 +tiggeLAMName,2231 +tiggeLocalVersion,2232 +tiggeModel,2233 +tiggeSection,2234 +tiggeSuiteID,2235 +tigge_name,2236 +tigge_short_name,2237 +tileClassification,2238 +tileIndex,2239 +time,2240 +timeCoordinateDefinition,2241 +timeDomainTemplate,2242 +timeDomainTemplateNumber,2243 +timeIncrement,2244 +timeIncrementBetweenSuccessiveFields,2245 +timeOfAnalysis,2246 +timeOfForecast,2247 +timeOfForecastUsedInLocalTime,2248 +timeOfModelVersion,2249 +timeOfReference,2250 +timeRangeIndicator,2251 +timeRangeIndicatorFromStepRange,2252 +timeUnitFlag,2253 +timerepres,2254 +topLevel,2255 +total,2256 +totalAerosolBinsNumbers,2257 +totalInitialConditions,2258 +totalLength,2259 +totalNumber,2260 +totalNumberOfClusters,2261 +totalNumberOfDataValuesMissingInStatisticalProcess,2262 +totalNumberOfDirections,2263 +totalNumberOfForecastProbabilities,2264 +totalNumberOfFrequencies,2265 +totalNumberOfGridPoints,2266 +totalNumberOfIterations,2267 +totalNumberOfQuantiles,2268 +totalNumberOfRepetitions,2269 +totalNumberOfTileAttributePairs,2270 +totalNumberOfTubes,2271 +totalNumberOfValuesInUnpackedSubset,2272 +totalNumberOfWaveDirections,2273 +totalNumberOfWaveFrequencies,2274 +totalNumberOfdimensions,2275 +treatmentOfMissingData,2276 +true,2277 +trueLengthOfLastGroup,2278 +truncateDegrees,2279 +truncateLaplacian,2280 +tsectionNumber3,2281 +tsectionNumber4,2282 +tsectionNumber5,2283 +tubeDomain,2284 +tubeNumber,2285 +two,2286 +twoOrdersOfSPD,2287 +type,2288 +typeOfAnalysis,2289 +typeOfAuxiliaryInformation,2290 +typeOfCalendar,2291 +typeOfCompressionUsed,2292 +typeOfDistributionFunction,2293 +typeOfEnsembleForecast,2294 +typeOfEnsembleMember,2295 +typeOfFirstFixedSurface,2296 +typeOfGeneratingProcess,2297 +typeOfGrid,2298 +typeOfHorizontalLine,2299 +typeOfIntervalForFirstAndSecondSize,2300 +typeOfIntervalForFirstAndSecondWavelength,2301 +typeOfLevel,2302 +typeOfLevelECMF,2303 +typeOfOriginalFieldValues,2304 +typeOfPacking,2305 +typeOfPostProcessing,2306 +typeOfPreProcessing,2307 +typeOfProcessedData,2308 +typeOfReferenceDataset,2309 +typeOfRelationToReferenceDataset,2310 +typeOfSSTFieldUsed,2311 +typeOfSecondFixedSurface,2312 +typeOfSizeInterval,2313 +typeOfStatisticalPostProcessingOfEnsembleMembers,2314 +typeOfStatisticalProcessing,2315 +typeOfStatisticalProcessingForTimeRangeForReferencePeriod,2316 +typeOfTimeIncrement,2317 +typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing,2318 +typeOfWaveDirectionSequence,2319 +typeOfWaveFrequencySequence,2320 +typeOfWavePeriodInterval,2321 +typeOfWavelengthInterval,2322 +typicalCentury,2323 +typicalDate,2324 +typicalDateTime,2325 +typicalDay,2326 +typicalHour,2327 +typicalMinute,2328 +typicalMonth,2329 +typicalSecond,2330 +typicalTime,2331 +typicalYear,2332 +typicalYear2,2333 +typicalYearOfCentury,2334 +uco,2335 +ucs,2336 +uerraLocalVersion,2337 +uerraSection,2338 +unexpandedDescriptors,2339 +unexpandedDescriptorsEncoded,2340 +unitOfOffsetFromReferenceTime,2341 +unitOfTime,2342 +unitOfTimeIncrement,2343 +unitOfTimeRange,2344 +units,2345 +unitsBias,2346 +unitsConversionOffset,2347 +unitsConversionScaleFactor,2348 +unitsDecimalScaleFactor,2349 +unitsECMF,2350 +unitsFactor,2351 +unitsLegacyECMF,2352 +unitsOfFirstFixedSurface,2353 +unitsOfSecondFixedSurface,2354 +unknown,2355 +unpack,2356 +unpackedError,2357 +unpackedSubsetPrecision,2358 +unpackedValues,2359 +unsignedIntegers,2360 +unstructuredGrid,2361 +unstructuredGridSubtype,2362 +unstructuredGridType,2363 +unstructuredGridUUID,2364 +unusedBitsInBitmap,2365 +updateSequenceNumber,2366 +upperLimit,2367 +upperRange,2368 +upperThreshold,2369 +upperThresholdValue,2370 +userDateEnd,2371 +userDateStart,2372 +userDateTimeEnd,2373 +userDateTimeStart,2374 +userTimeEnd,2375 +userTimeStart,2376 +uuidOfHGrid,2377 +uuidOfVGrid,2378 +uvRelativeToGrid,2379 +validityDate,2380 +validityTime,2381 +values,2382 +variationOfVisibility,2383 +variationOfVisibilityDirection,2384 +variationOfVisibilityDirectionAngle,2385 +variationOfVisibilityDirectionTrend1,2386 +variationOfVisibilityDirectionTrend2,2387 +variationOfVisibilityDirectionTrend3,2388 +variationOfVisibilityDirectionTrend4,2389 +variationOfVisibilityTrend1,2390 +variationOfVisibilityTrend2,2391 +variationOfVisibilityTrend3,2392 +variationOfVisibilityTrend4,2393 +varno,2394 +verificationDate,2395 +verificationMonth,2396 +verificationYear,2397 +verifyingMonth,2398 +version,2399 +versionNumOfFilesFreeSpaceStorage,2400 +versionNumOfRootGroupSymbolTableEntry,2401 +versionNumOfSharedHeaderMessageFormat,2402 +versionNumberOfExperimentalSuite,2403 +versionNumberOfGribLocalTables,2404 +versionNumberOfSuperblock,2405 +versionOfModelClimate,2406 +verticalCoordinate,2407 +verticalCoordinateDefinition,2408 +verticalDomainTemplate,2409 +verticalDomainTemplateNumber,2410 +verticalVisibility,2411 +verticalVisibilityCoded,2412 +visibility,2413 +visibilityInKilometresTrend1,2414 +visibilityInKilometresTrend2,2415 +visibilityInKilometresTrend3,2416 +visibilityInKilometresTrend4,2417 +visibilityTrend1,2418 +visibilityTrend2,2419 +visibilityTrend3,2420 +visibilityTrend4,2421 +waveDirectionNumber,2422 +waveDomain,2423 +waveFrequencyNumber,2424 +waveLevType,2425 +weightAppliedToClimateMonth1,2426 +westLongitudeOfCluster,2427 +westLongitudeOfDomainOfTubing,2428 +westernLongitudeOfClusterDomain,2429 +westernLongitudeOfDomain,2430 +widthOfFirstOrderValues,2431 +widthOfLengths,2432 +widthOfSPD,2433 +widthOfWidths,2434 +windDirection,2435 +windDirectionTrend1,2436 +windDirectionTrend2,2437 +windDirectionTrend3,2438 +windDirectionTrend4,2439 +windGust,2440 +windGustTrend1,2441 +windGustTrend2,2442 +windGustTrend3,2443 +windGustTrend4,2444 +windPresent,2445 +windSpeed,2446 +windSpeedTrend1,2447 +windSpeedTrend2,2448 +windSpeedTrend3,2449 +windSpeedTrend4,2450 +windUnits,2451 +windUnitsTrend1,2452 +windUnitsTrend2,2453 +windUnitsTrend3,2454 +windUnitsTrend4,2455 +windVariableDirection,2456 +windVariableDirectionTrend1,2457 +windVariableDirectionTrend2,2458 +windVariableDirectionTrend3,2459 +windVariableDirectionTrend4,2460 +wrongPadding,2461 +xCoordinateOfOriginOfSectorImage,2462 +xCoordinateOfSubSatellitePoint,2463 +xDirectionGridLength,2464 +xDirectionGridLengthInMetres,2465 +xDirectionGridLengthInMillimetres,2466 +xFirst,2467 +xLast,2468 +yCoordinateOfOriginOfSectorImage,2469 +yCoordinateOfSubSatellitePoint,2470 +yDirectionGridLength,2471 +yDirectionGridLengthInMetres,2472 +yDirectionGridLengthInMillimetres,2473 +yFirst,2474 +yLast,2475 +year,2476 +yearOfAnalysis,2477 +yearOfCentury,2478 +yearOfEndOfOverallTimeInterval,2479 +yearOfForecast,2480 +yearOfForecastUsedInLocalTime,2481 +yearOfModelVersion,2482 +yearOfReference,2483 +yearOfStartOfReferencePeriod,2484 +zero,2485 +zeros,2486 diff --git a/tests/metar_compare.sh b/tests/metar_compare.sh index ee016bd9f..ea277df2c 100755 --- a/tests/metar_compare.sh +++ b/tests/metar_compare.sh @@ -10,20 +10,18 @@ . ./include.ctest.sh -#set -x - -#Enter data dir +# Enter data dir cd ${data_dir}/metar -#Define a common label for all the tmp files +# Define a common label for all the tmp files label="metar_compare_test" -#Create log file +# Create log file fLog=${label}".log" rm -f $fLog touch $fLog -#Define tmp METAR file +# Define tmp METAR file fMetarTmp=${label}".metar.tmp" #---------------------------------------------------- @@ -39,7 +37,7 @@ ${tools_dir}/metar_compare $metar_file $metar_file #---------------------------------------------------- sed -e 's:^METAR VECC 022350Z 00000KT 1600 BR NSC 15/13 Q1013 NOSIG:METAR VECC 022349Z 00000KT 1600 BR NSC 15/13 Q1013 NOSIG:' < metar.txt > $fMetarTmp set +e -${tools_dir}/metar_compare $metar_file $fMetarTmp +${tools_dir}/metar_compare -v -d -f $metar_file $fMetarTmp status=$? set -e if [ $status -eq 0 ]; then @@ -47,10 +45,22 @@ if [ $status -eq 0 ]; then exit 1 fi +# The -d option should have created these files +rm -f error1_1.metar error2_1.metar error1_2.metar error2_2.metar + #---------------------------------------------------- # Test: comparing with and without the -b switch #---------------------------------------------------- -# ${tools_dir}/metar_compare -b GG $metar_file $fMetarTmp >> $fLog +if [ $ECCODES_ON_WINDOWS -eq 0 ]; then + # Add wrong blocklist. Should still fail + set +e + ${tools_dir}/metar_compare -b CCCC $metar_file $fMetarTmp + status=$? + set -e + [ $status -eq 1 ] + # Add correct blocklist + ${tools_dir}/metar_compare -b minute,theMessage $metar_file $fMetarTmp +fi -#Clean up +# Clean up rm -f $fLog $fMetarTmp diff --git a/tests/taf.sh b/tests/taf.sh new file mode 100755 index 000000000..adc758361 --- /dev/null +++ b/tests/taf.sh @@ -0,0 +1,35 @@ +#!/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. +# + +# Tests for TAF (Terminal Aerodrome Forecast) + +. ./include.ctest.sh + +label="taf_test" +tempTaf=temp.$label.taf +tempOut=temp.$label.out +tempTxt=temp.$label.txt +tempRef=temp.$label.ref + +cat >$tempTaf<strict = 1; @@ -281,11 +279,11 @@ int grib_tool_init(grib_runtime_options* options) headerMode = 0; if (grib_options_on("H") && grib_options_on("c:")) { - fprintf(stderr, "Error: -H and -c options are incompatible. Choose one of the two please.\n"); + fprintf(stderr, "%s: -H and -c options are incompatible. Choose one of the two please.\n",tool_name); exit(1); } if (grib_options_on("a") && !grib_options_on("c:")) { - fprintf(stderr, "Error: -a option requires -c option. Please define a list of keys with the -c option.\n"); + fprintf(stderr, "%s: -a option requires -c option. Please define a list of keys with the -c option.\n",tool_name); exit(1); } @@ -306,27 +304,12 @@ int grib_tool_init(grib_runtime_options* options) /* Check 1st file is not a directory */ exit_if_input_is_directory(tool_name, options->infile_extra->name); - if (grib_options_on("r")) { - const char* filename[1]; - filename[0] = options->infile_extra->name; - options->random = 1; - options->orderby = strdup(orderby); - options->idx = grib_fieldset_new_from_files(context, filename, - nfiles, 0, 0, 0, orderby, &ret); - if (ret) { - fprintf(stderr, "unable to create index for input file %s (%s)", - options->infile_extra->name, grib_get_error_message(ret)); - exit(ret); - } - } - else { - options->random = 0; - options->infile_extra->file = fopen(options->infile_extra->name, "r"); + options->random = 0; + options->infile_extra->file = fopen(options->infile_extra->name, "r"); - if (!options->infile_extra->file) { - perror(options->infile_extra->name); - exit(1); - } + if (!options->infile_extra->file) { + perror(options->infile_extra->name); + exit(1); } global_tolerance = 0; @@ -475,6 +458,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) if (compare_handles(h, global_handle, options)) { error++; + write_messages(h, global_handle); if (!force) exit(1); } @@ -483,10 +467,9 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) return 0; } - else if (options->random) - global_handle = grib_fieldset_next_handle(options->idx, &err); - else + else { global_handle = bufr_handle_new_from_file_x(h->context, options->infile_extra->file, options->mode, 0, &err); + } if (!global_handle || err != GRIB_SUCCESS) { morein2++; @@ -497,6 +480,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) if (compare_handles(global_handle, h, options)) { error++; + write_messages(global_handle, h); if (!two_way) { /* If two_way mode: Don't exit yet. Show further differences */ if (!force) @@ -510,6 +494,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) printf(" Swapping handles (two-way mode)\n"); if (compare_handles(h, global_handle, options)) { error++; + write_messages(h, global_handle); if (!force) exit(1); } @@ -530,7 +515,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) int grib_tool_skip_handle(grib_runtime_options* options, grib_handle* h) { int err = 0; - if (!options->through_index && !options->random) { + if (!options->through_index) { global_handle = codes_bufr_handle_new_from_file(h->context, options->infile_extra->file, &err); if (!global_handle || err != GRIB_SUCCESS) @@ -1223,7 +1208,6 @@ static int compare_attributes(grib_handle* handle1, grib_handle* handle2, grib_r if (compare_attribute(handle1, handle2, options, aa, prefix, err)) { (*err)++; - write_messages(handle1, handle2); ret = 1; } @@ -1243,7 +1227,6 @@ static int compare_attribute(grib_handle* handle1, grib_handle* handle2, grib_ru snprintf(fullname, fullnameMaxLen, "%s->%s", prefix, a->name); if (compare_values(options, handle1, handle2, fullname, GRIB_TYPE_UNDEFINED)) { (*err)++; - write_messages(handle1, handle2); ret = 1; } /* Recurse if this key has children */ @@ -1321,13 +1304,11 @@ static int compare_all_dump_keys(grib_handle* handle1, grib_handle* handle2, gri /* Compare the key itself */ if (compare_values(options, handle1, handle2, prefix, GRIB_TYPE_UNDEFINED)) { (*pErr)++; - write_messages(handle1, handle2); ret = 1; } /* Now compare the key attributes (if any) */ if (compare_attributes(handle1, handle2, options, xa, prefix, pErr)) { (*pErr)++; - write_messages(handle1, handle2); ret = 1; } if (dofree) @@ -1346,23 +1327,11 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt grib_keys_iterator* iter = NULL; const char* name = NULL; - /* mask only if no -c option or headerMode (-H)*/ - if (blocklist && (!listFromCommandLine || headerMode)) { - /* See ECC-245, GRIB-573, GRIB-915: Do not change handles in memory */ - /* - grib_string_list* nextb=blocklist; - while (nextb) { - grib_clear(handle1,nextb->value); - grib_clear(handle2,nextb->value); - nextb=nextb->next; - }*/ - } - if (listFromCommandLine && onlyListed) { for (i = 0; i < options->compare_count; i++) { if (blocklisted(options->compare[i].name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(handle1, 0, options->compare[i].name); if (!iter) { grib_context_log(handle1->context, GRIB_LOG_ERROR, "unable to get iterator"); @@ -1376,7 +1345,6 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt continue; if (compare_values(options, handle1, handle2, name, GRIB_TYPE_UNDEFINED)) { err++; - write_messages(handle1, handle2); } } grib_keys_iterator_delete(iter); @@ -1384,7 +1352,6 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt else { if (compare_values(options, handle1, handle2, options->compare[i].name, options->compare[i].type)) err++; - write_messages(handle1, handle2); } } } @@ -1424,7 +1391,7 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt for (i = 0; i < options->compare_count; i++) { if (blocklisted(name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(handle1, 0, options->compare[i].name); if (!iter) { grib_context_log(handle1->context, GRIB_LOG_ERROR, @@ -1439,7 +1406,6 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt continue; if (compare_values(options, handle1, handle2, name, GRIB_TYPE_UNDEFINED)) { err++; - write_messages(handle1, handle2); if (compare_all_dump_keys(handle1, handle2, options, &err)) { err++; } @@ -1450,7 +1416,6 @@ static int compare_handles(grib_handle* handle1, grib_handle* handle2, grib_runt else { if (compare_values(options, handle1, handle2, options->compare[i].name, options->compare[i].type)) { err++; - write_messages(handle1, handle2); if (compare_all_dump_keys(handle1, handle2, options, &err)) { err++; } diff --git a/tools/bufr_dump.cc b/tools/bufr_dump.cc index e17873699..60265b085 100644 --- a/tools/bufr_dump.cc +++ b/tools/bufr_dump.cc @@ -307,7 +307,7 @@ static void bufr_dump_descriptors(grib_handle* h) GRIB_CHECK_NOLINE(grib_get_size(h, the_key, &size_desc), 0); array_descriptors = (long*)malloc(size_desc * sizeof(long)); if (!array_descriptors) { - fprintf(stderr, "%s: Memory allocation error", the_key); + fprintf(stderr, "%s: Memory allocation error. Key %s\n", tool_name, the_key); exit(GRIB_OUT_OF_MEMORY); } GRIB_CHECK_NOLINE(grib_get_long_array(h, the_key, array_descriptors, &size_desc), 0); @@ -325,7 +325,7 @@ static void bufr_dump_descriptors(grib_handle* h) GRIB_CHECK_NOLINE(grib_get_size(h, the_key, &size_abbrevs), 0); array_abbrevs = (char**)malloc(size_abbrevs * sizeof(char*)); if (!array_abbrevs) { - fprintf(stderr, "%s: Memory allocation error", the_key); + fprintf(stderr, "%s: Memory allocation error. Key %s\n", tool_name, the_key); exit(GRIB_OUT_OF_MEMORY); } GRIB_CHECK_NOLINE(grib_get_string_array(h, the_key, array_abbrevs, &size_abbrevs), 0); @@ -335,7 +335,7 @@ static void bufr_dump_descriptors(grib_handle* h) GRIB_CHECK_NOLINE(grib_get_size(h, the_key, &size_names), 0); array_names = (char**)malloc(size_names * sizeof(char*)); if (!array_names) { - fprintf(stderr, "%s: Memory allocation error", the_key); + fprintf(stderr, "%s: Memory allocation error. Key %s\n", tool_name, the_key); exit(GRIB_OUT_OF_MEMORY); } GRIB_CHECK_NOLINE(grib_get_string_array(h, the_key, array_names, &size_names), 0); @@ -345,7 +345,7 @@ static void bufr_dump_descriptors(grib_handle* h) GRIB_CHECK_NOLINE(grib_get_size(h, the_key, &size_units), 0); array_units = (char**)malloc(size_units * sizeof(char*)); if (!array_units) { - fprintf(stderr, "%s: Memory allocation error", the_key); + fprintf(stderr, "%s: Memory allocation error. Key %s\n", tool_name, the_key); exit(GRIB_OUT_OF_MEMORY); } GRIB_CHECK_NOLINE(grib_get_string_array(h, the_key, array_units, &size_units), 0); @@ -423,7 +423,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) char* str = grib_options_get_option("S:"); err = grib_get_long(h, "numberOfSubsets", &numberOfSubsets); if (err) { - fprintf(stderr, "ERROR: Failed to get numberOfSubsets.\n"); + fprintf(stderr, "%s: Failed to get numberOfSubsets.\n", tool_name); exit(1); } @@ -451,7 +451,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) } } else { - fprintf(stderr, "ERROR: -S option: Please specify a subset number > 0 and < %ld\n", numberOfSubsets + 1); + fprintf(stderr, "%s: -S option: Please specify a subset number > 0 and < %ld\n", tool_name, numberOfSubsets + 1); exit(1); } } @@ -470,8 +470,8 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) err = grib_set_long(h, "unpack", 2); if (err) { if (options->fail) { - fprintf(stderr, "ERROR: unable to unpack data section: %s (message=%d)\n", - grib_get_error_message(err), options->handle_count); + fprintf(stderr, "%s: Unable to unpack data section: %s (message=%d)\n", + tool_name, grib_get_error_message(err), options->handle_count); exit(err); } else { @@ -489,8 +489,8 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) err = grib_set_long(h, "unpack", 1); if (err) { if (options->fail) { - fprintf(stderr, "ERROR: unable to unpack data section: %s (message=%d)\n", - grib_get_error_message(err), options->handle_count); + fprintf(stderr, "%s: Unable to unpack data section: %s (message=%d)\n", + tool_name, grib_get_error_message(err), options->handle_count); exit(err); } else { @@ -505,8 +505,8 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) err = grib_set_long(h, "unpack", 1); if (err) { if (options->fail) { - fprintf(stderr, "ERROR: unable to unpack data section: %s (message=%d)\n", - grib_get_error_message(err), options->handle_count); + fprintf(stderr, "%s: Unable to unpack data section: %s (message=%d)\n", + tool_name, grib_get_error_message(err), options->handle_count); exit(err); } else { @@ -519,7 +519,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) grib_dump_content(h, stdout, options->dump_mode, options->dump_flags, 0); break; default: - printf("Unknown JSON option %s\n", json_option); + fprintf(stderr, "%s: Unknown JSON option %s\n", tool_name, json_option); exit(1); } if (!strcmp(options->dump_mode, "default")) { @@ -546,7 +546,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) err = grib_set_long(h, "unpack", 1); if (err) { if (options->fail) { - fprintf(stderr, "ERROR: unable to unpack data section: %s\n", grib_get_error_message(err)); + fprintf(stderr, "%s: unable to unpack data section: %s\n", tool_name, grib_get_error_message(err)); exit(err); } else { diff --git a/tools/bufr_split_by_rdbSubtype.cc b/tools/bufr_split_by_rdbSubtype.cc index 5f7beaf4c..2db7d7bbf 100644 --- a/tools/bufr_split_by_rdbSubtype.cc +++ b/tools/bufr_split_by_rdbSubtype.cc @@ -22,6 +22,7 @@ static int verbose = 0; static const char* OUTPUT_FILENAME_DEFAULT = "split_rdbSubtype.undef.bufr"; static const char* OUTPUT_FILENAME_SUBTYPE = "split_rdbSubtype.%ld.bufr"; +const char* tool_name = "bufr_split_by_rdbSubtype"; static void usage(const char* prog) { @@ -56,7 +57,7 @@ static int decode_rdbSubtype(const void* msg, long* rdbSubtype) edition = (long)grib_decode_unsigned_long(message, &pos_edition, nbits_edition); if (edition != 2 && edition != 3 && edition != 4) { - fprintf(stderr, "ERROR: Unsupported BUFR edition: %ld", edition); + fprintf(stderr, "%s: Unsupported BUFR edition: %ld", tool_name, edition); return GRIB_DECODING_ERROR; } section1Length = (long)grib_decode_unsigned_long(message, &pos_section1Length, nbits_section1Length); @@ -73,7 +74,7 @@ static int decode_rdbSubtype(const void* msg, long* rdbSubtype) section1Flags = (long)grib_decode_unsigned_long(message, &pos_section1Flags, nbits_section1Flags); if (section1Flags != 0 && section1Flags != 128) { - fprintf(stderr, "ERROR: Invalid BUFR section1 flags: %ld", section1Flags); + fprintf(stderr, "%s: Invalid BUFR section1 flags: %ld\n", tool_name, section1Flags); return GRIB_DECODING_ERROR; } ecmwfLocalSectionPresent = (bufrHeaderCentre == 98 && section1Flags != 0); @@ -121,7 +122,7 @@ static int split_file_by_subtype(FILE* in, const char* filename, unsigned long* long rdbSubtype = 0; int status = decode_rdbSubtype(mesg, &rdbSubtype); if (status != GRIB_SUCCESS) { - fprintf(stderr, "ERROR: Failed to decode rdbSubtype from message %lu\n", *count); + fprintf(stderr, "%s: Failed to decode rdbSubtype from message %lu\n", tool_name, *count); return status; } @@ -135,12 +136,12 @@ static int split_file_by_subtype(FILE* in, const char* filename, unsigned long* } out = fopen(ofilename, "ab"); if (!out) { - fprintf(stderr, "ERROR: Failed to open output file '%s'\n", ofilename); + fprintf(stderr, "%s: Failed to open output file '%s'\n", tool_name, ofilename); perror(ofilename); return GRIB_IO_PROBLEM; } if (fwrite(mesg, 1, size, out) != size) { - fprintf(stderr, "ERROR: Failed to append to file '%s'\n", ofilename); + fprintf(stderr, "%s: Failed to append to file '%s'\n", tool_name, ofilename); perror(ofilename); fclose(out); return GRIB_IO_PROBLEM; @@ -178,7 +179,7 @@ int main(int argc, char* argv[]) filename = argv[i]; if (path_is_directory(filename)) { - fprintf(stderr, "ERROR: %s: Is a directory\n", filename); + fprintf(stderr, "%s: %s: Is a directory\n", tool_name, filename); return 1; } infh = fopen(filename, "rb"); @@ -190,8 +191,7 @@ int main(int argc, char* argv[]) count = 0; err = split_file_by_subtype(infh, filename, &count); if (err) { - fprintf(stderr, "ERROR: Failed to split BUFR file %s", filename); - fprintf(stderr, "\n"); + fprintf(stderr, "%s: Failed to split BUFR file %s\n", tool_name, filename); status = 1; } else { diff --git a/tools/codes_parser.cc b/tools/codes_parser.cc index 465f8a271..92669c32b 100644 --- a/tools/codes_parser.cc +++ b/tools/codes_parser.cc @@ -21,6 +21,7 @@ int main(int argc, char* argv[]) for (i = 1; i < argc; i++) { printf("%s ... ", argv[i]); fflush(stdout); + // argv can be "-" to indicate stdin if (!(a = grib_parse_file(c, argv[i]))) { fail++; printf("FAILED\n"); diff --git a/tools/codes_split_file.cc b/tools/codes_split_file.cc index 8896053c1..384904602 100644 --- a/tools/codes_split_file.cc +++ b/tools/codes_split_file.cc @@ -32,21 +32,15 @@ static void usage(const char* prog) static int split_file(FILE* in, const char* filename, const int nchunks, unsigned long* count) { void* mesg = NULL; - FILE* out; size_t size = 0, read_size = 0, insize = 0, chunk_size, msg_size = 0, num_msg = 0; - size_t ofilenameMaxLen = 0; off_t offset = 0; - int err = GRIB_SUCCESS; - int i; - char* ofilename; + int err = GRIB_SUCCESS, i = 0; grib_context* c = grib_context_get_default(); - - if (!in) - return 1; + assert(in); /* name of output file */ - ofilenameMaxLen = strlen(filename) + 10; - ofilename = (char*)calloc(1, ofilenameMaxLen); + size_t ofilenameMaxLen = strlen(filename) + 10; + char* ofilename = (char*)calloc(1, ofilenameMaxLen); fseeko(in, 0, SEEK_END); insize = ftello(in); @@ -61,7 +55,7 @@ static int split_file(FILE* in, const char* filename, const int nchunks, unsigne i = 1; snprintf(ofilename, ofilenameMaxLen, OUTPUT_FILENAME_FORMAT, filename, i); - out = fopen(ofilename, "w"); + FILE* out = fopen(ofilename, "w"); if (!out) { perror(ofilename); free(ofilename); @@ -71,7 +65,6 @@ static int split_file(FILE* in, const char* filename, const int nchunks, unsigne while (err != GRIB_END_OF_FILE) { mesg = wmo_read_any_from_file_malloc(in, 0, &size, &offset, &err); num_msg++; - /*printf("=1=%d\t%d\t%d\n",*count,size,insize);*/ if (mesg != NULL && err == 0) { if (fwrite(mesg, 1, size, out) != size) { perror(ofilename); @@ -115,8 +108,6 @@ static int split_file(FILE* in, const char* filename, const int nchunks, unsigne int main(int argc, char* argv[]) { - FILE* infh = NULL; - char* filename; int i, status = 0; int err = 0, nchunks = 0; unsigned long count = 0; @@ -140,12 +131,12 @@ int main(int argc, char* argv[]) } i++; - filename = argv[i]; + const char* filename = argv[i]; if (path_is_directory(filename)) { fprintf(stderr, "ERROR: %s: Is a directory\n", filename); return 1; } - infh = fopen(filename, "rb"); + FILE* infh = fopen(filename, "rb"); if (!infh) { perror(filename); return 1; diff --git a/tools/grib1to2.in b/tools/grib1to2.in deleted file mode 100755 index 77dd45ef4..000000000 --- a/tools/grib1to2.in +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -set -e - -if [ $# -lt 2 ] -then - echo "usage: $0 [-f] in.grib1 out.grib2" - echo "-f convert to grib2 only typeOfLevel='hybrid' and copy other level types as grib1" - exit 1 -fi - -grib_filter=@CMAKE_INSTALL_PREFIX@/bin/grib_filter -rules_filter=rules.filter$$ - -force=0 -out=$2 -in=$1 -while getopts fd:D:t:b:w:e:r:s:n:p: options -do - case $options in - f) force=1 - out=$3 - in=$2 - ;; - esac -done - - -if [ $force = 1 ] -then - - cat >> $rules_filter <> $rules_filter < tolerance ? relativeError : 0; } +static void write_message(grib_handle* h, const char* str) +{ + const void* m; + size_t s; + char fname[1024] = {0,}; + FILE* fh; + + grib_get_message(h, &m, &s); + snprintf(fname, sizeof(fname), "%s_%d.grib", str, write_count); + + fh = fopen(fname, "w"); + if (!fh) { + grib_context_log(h->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR), + "Error opening %s", fname); + exit(GRIB_IO_PROBLEM); + } + + if (fwrite(m, 1, s, fh) != s) { + grib_context_log(h->context, (GRIB_LOG_ERROR) | (GRIB_LOG_PERROR), + "Error writing to %s", fname); + exit(GRIB_IO_PROBLEM); + } + + fclose(fh); +} + +static void write_messages(grib_handle* handle1, grib_handle* handle2) +{ + if (!write_error) + return; + write_count++; + + write_message(handle1, "error1"); + write_message(handle2, "error2"); +} + static int blocklisted(const char* name) { grib_string_list* b = blocklist; @@ -212,6 +250,11 @@ int grib_tool_init(grib_runtime_options* options) else two_way = 0; + if (grib_options_on("d")) + write_error = 1; + else + write_error = 0; + verbose = grib_options_on("v"); listFromCommandLine = 0; @@ -268,8 +311,8 @@ int grib_tool_init(grib_runtime_options* options) options->idx = grib_fieldset_new_from_files(context, filename, nfiles, 0, 0, 0, orderby, &ret); if (ret) { - fprintf(stderr, "Unable to create index for input file %s (%s)", - options->infile_extra->name, grib_get_error_message(ret)); + fprintf(stderr, "%s: Unable to create index for input file %s (%s)", + tool_name, options->infile_extra->name, grib_get_error_message(ret)); exit(ret); } } @@ -307,7 +350,7 @@ int grib_tool_init(grib_runtime_options* options) if (grib_options_on("R:")) { maxAbsoluteError = strtod(absTolStr, &endPtr); if (*endPtr) { - fprintf(stderr, "Invalid absolute error: '%s'\n", absTolStr); + fprintf(stderr, "%s: Invalid absolute error: '%s'\n", tool_name, absTolStr); exit(1); } } @@ -315,7 +358,7 @@ int grib_tool_init(grib_runtime_options* options) compare_double = &compare_double_absolute; global_tolerance = strtod(absTolStr, &endPtr); if (*endPtr) { - fprintf(stderr, "Invalid absolute error: '%s'\n", absTolStr); + fprintf(stderr, "%s: Invalid absolute error: '%s'\n",tool_name, absTolStr); exit(1); } } @@ -460,6 +503,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* hand if (compare_handles(handle2, handle1, options)) { error++; + write_messages(handle2, handle1); if (!force) exit(1); } @@ -481,6 +525,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* hand if (compare_handles(handle1, handle2, options)) { error++; + write_messages(handle1, handle2); if (!two_way) { /* If two_way mode: Don't exit yet. Show further differences */ if (!force) exit(1); @@ -491,6 +536,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* hand handles_swapped = 1; if (compare_handles(handle2, handle1, options)) { error++; + write_messages(handle2, handle1); if (!force) exit(1); } else { @@ -1143,18 +1189,30 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option grib_keys_iterator* iter = NULL; grib_context* context = handle1->context; - /* mask only if no -c option or headerMode (-H)*/ - if (blocklist && (!listFromCommandLine || headerMode)) { - /* See ECC-245, GRIB-573, GRIB-915: Do not change handles in memory */ - /* grib_string_list* nextb=blocklist; - while (nextb) { - grib_clear(h1,nextb->value); - grib_clear(h2,nextb->value); - nextb=nextb->next; - } */ - } + //if (blocklist && (!listFromCommandLine || headerMode)) { + // See ECC-245, GRIB-573, GRIB-915: Do not change handles in memory! + // grib_string_list* nextb=blocklist; + // while (nextb) { + // grib_clear(h1,nextb->value); + // grib_clear(h2,nextb->value); + // nextb=nextb->next; + // } + //} if (headerMode) { + // An alternative implementation: + // Instead of forming two partial handles (only meta-data) and comparing + // the keys in those, we can instead get all the keys in the original handles + // and check their offset and only process those which are before the "endOfHeadersMarker" + // i.e., only compare keys that come before the bitmap/data sections + // + // GRIB_CHECK_NOLINE(grib_get_offset(h1, "endOfHeadersMarker", &endOfHeadersOffset), 0); + // create iterator + // foreach key in iter + // GRIB_CHECK_NOLINE(grib_get_offset(h1, name, &keyOffset), 0); + // if (keyOffset < endOfHeadersOffset) { + // compare_values... + // const void *msg1 = NULL, *msg2 = NULL; size_t size1 = 0, size2 = 0; grib_handle *h11, *h22; @@ -1180,8 +1238,9 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option if (blocklisted(name)) continue; - if (compare_values(options, h11, h22, name, GRIB_TYPE_UNDEFINED)) + if (compare_values(options, h11, h22, name, GRIB_TYPE_UNDEFINED)) { err++; + } } grib_keys_iterator_delete(iter); @@ -1194,7 +1253,7 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option for (i = 0; i < options->compare_count; i++) { if (blocklisted(options->compare[i].name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { int num_keys_in_namespace = 0; iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { @@ -1207,8 +1266,9 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option if (blocklisted(name)) continue; - if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) + if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) { err++; + } } grib_keys_iterator_delete(iter); if (num_keys_in_namespace == 0 && !editionIndependent) { @@ -1216,8 +1276,9 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option } } else { - if (compare_values(options, h1, h2, options->compare[i].name, options->compare[i].type)) + if (compare_values(options, h1, h2, options->compare[i].name, options->compare[i].type)) { err++; + } } } } @@ -1242,8 +1303,9 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option if (blocklisted(name)) continue; - if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) + if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) { err++; + } } grib_keys_iterator_delete(iter); @@ -1252,7 +1314,7 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option for (i = 0; i < options->compare_count; i++) { if (blocklisted(options->compare[i].name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { printf("ERROR: unable to get iterator for %s\n", options->compare[i].name); @@ -1264,14 +1326,16 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option if (blocklisted(name)) continue; - if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) + if (compare_values(options, h1, h2, name, GRIB_TYPE_UNDEFINED)) { err++; + } } grib_keys_iterator_delete(iter); } else { - if (compare_values(options, h1, h2, options->compare[i].name, options->compare[i].type)) + if (compare_values(options, h1, h2, options->compare[i].name, options->compare[i].type)) { err++; + } } } } diff --git a/tools/grib_copy.cc b/tools/grib_copy.cc index 20823e2a5..ccc4c690a 100644 --- a/tools/grib_copy.cc +++ b/tools/grib_copy.cc @@ -104,7 +104,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) v = (double*)calloc(size, sizeof(double)); if (!v) { - fprintf(stderr, "failed to allocate %ld bytes\n", (long)(size * sizeof(double))); + fprintf(stderr, "%s: Failed to allocate %zu bytes\n", tool_name, size * sizeof(double)); exit(1); } diff --git a/tools/grib_get.cc b/tools/grib_get.cc index 4d5040bfa..12acb78da 100644 --- a/tools/grib_get.cc +++ b/tools/grib_get.cc @@ -76,7 +76,7 @@ int grib_tool_init(grib_runtime_options* options) if (options->latlon) { lat = strtod(options->latlon, &theEnd); if (*theEnd != ',') { - fprintf(stderr, "Error %s: wrong latitude value. Please use 'latitude,longitude'\n", tool_name); + fprintf(stderr, "%s: Wrong latitude value. Please use 'latitude,longitude'\n", tool_name); exit(1); } lon = strtod(++theEnd, &end1); @@ -96,7 +96,7 @@ int grib_tool_init(grib_runtime_options* options) options->latlon_mode = 1; } else { - fprintf(stderr, "Error %s: wrong mode given in option -l\n", tool_name); + fprintf(stderr, "%s: Wrong mode given for the '-l' option (Please use 1 or 4)\n", tool_name); exit(1); } } diff --git a/tools/grib_get_data.cc b/tools/grib_get_data.cc index 5682e3875..83b87421d 100644 --- a/tools/grib_get_data.cc +++ b/tools/grib_get_data.cc @@ -15,7 +15,6 @@ static grib_values* get_key_values(grib_runtime_options* options, grib_handle* h grib_option grib_options[] = { /* {id, args, help}, on, command_line, value */ - { "q", 0, 0, 1, 0, 0 }, { "S", 0, 0, 1, 0, 0 }, { "M", 0, 0, 0, 1, 0 }, { "m:", "missingValue", @@ -183,8 +182,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) exit(1); } if (size != (size_t)numberOfPoints) { - if (!grib_options_on("q")) - fprintf(stderr, "ERROR: Wrong number of points %ld\n", numberOfPoints); + fprintf(stderr, "ERROR: Wrong number of points %ld\n", numberOfPoints); if (grib_options_on("f")) exit(1); } diff --git a/tools/grib_ls.cc b/tools/grib_ls.cc index 44c8dec7f..0193b3e17 100644 --- a/tools/grib_ls.cc +++ b/tools/grib_ls.cc @@ -97,7 +97,7 @@ int grib_tool_init(grib_runtime_options* options) if (options->latlon) { lat = strtod(options->latlon, &theEnd); if (*theEnd != ',') { - fprintf(stderr, "Error %s: wrong latitude value. Please use 'latitude,longitude'\n", tool_name); + fprintf(stderr, "%s: Wrong latitude value. Please use 'latitude,longitude'\n", tool_name); exit(1); } lon = strtod(++theEnd, &end1); @@ -117,7 +117,7 @@ int grib_tool_init(grib_runtime_options* options) options->latlon_mode = 1; } else { - fprintf(stderr, "Error %s: wrong mode given in option -l\n", tool_name); + fprintf(stderr, "%s: Wrong mode given for the '-l' option (Please use 1 or 4)\n", tool_name); exit(1); } } @@ -281,17 +281,14 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) if (!nearest) nearest = grib_nearest_new(h, &err); if (err == GRIB_NOT_IMPLEMENTED) { - char grid_type[100], grid_desc[200]; - size_t g_len = sizeof(grid_type); - int err1 = 0, err2 = 0; - err1 = grib_get_string(h, "gridType", grid_type, &g_len); - g_len = sizeof(grid_desc); - err2 = grib_get_string(h, "gridDefinitionDescription", grid_desc, &g_len); - if (!err1 && !err2) { - fprintf(stderr, "Nearest neighbour functionality is not supported for grid type: %s (%s)\n", - grid_type, grid_desc); + char grid_desc[200]; + int err1 = 0; + size_t g_len = sizeof(grid_desc); + err1 = grib_get_string(h, "gridDefinitionDescription", grid_desc, &g_len); + if (!err1) { + fprintf(stderr, "%s: Nearest neighbour functionality is not supported for grid: %s\n", tool_name, grid_desc); } else { - fprintf(stderr, "Nearest neighbour functionality is not supported for this grid type\n"); + fprintf(stderr, "%s: Nearest neighbour functionality is not supported for this grid type\n", tool_name); } } GRIB_CHECK_NOLINE(err, 0); diff --git a/tools/grib_merge.cc b/tools/grib_merge.cc index 26853c332..8e18e54ea 100644 --- a/tools/grib_merge.cc +++ b/tools/grib_merge.cc @@ -9,7 +9,7 @@ */ /* - * Author: Enrico Fucile + * Author: Enrico Fucile * Description: * In Observations team we need a tool to merge the GRIB messages coming from GTS. * They come with compatible grid (lat/lon) but they are split in different quadrants. diff --git a/tools/grib_options.cc b/tools/grib_options.cc index 6f1af95fe..475f22fdf 100644 --- a/tools/grib_options.cc +++ b/tools/grib_options.cc @@ -265,7 +265,7 @@ int grib_process_runtime_options(grib_context* context, int argc, char** argv, g const char* optionStr = grib_options_get_option("d:"); options->constant = strtod(optionStr, &endPtr); if (*endPtr) { - fprintf(stderr, "Invalid number for -d option: '%s'\n", optionStr); + fprintf(stderr, "%s: Invalid number for -d option: '%s'\n", tool_name, optionStr); exit(1); } options->repack = 1; @@ -386,7 +386,7 @@ int grib_process_runtime_options(grib_context* context, int argc, char** argv, g if (grib_options_on("e")) { for (i = 0; i < names_count; i++) { options->compare[i + options->compare_count].name = names[i]; - options->compare[i + options->compare_count].type = GRIB_NAMESPACE; + options->compare[i + options->compare_count].type = CODES_NAMESPACE; } options->compare_count += names_count; } diff --git a/tools/grib_repair.cc b/tools/grib_repair.cc index 00737e3e8..484bfe69f 100644 --- a/tools/grib_repair.cc +++ b/tools/grib_repair.cc @@ -64,7 +64,7 @@ int main(int argc, char** argv) sMaxNumMessages = getenv(ENV_VAR); if (sMaxNumMessages) { long lmax = 0; - if (string_to_long(sMaxNumMessages, &lmax) == GRIB_SUCCESS) { + if (string_to_long(sMaxNumMessages, &lmax, 1) == GRIB_SUCCESS) { MAX_NUM_MESSAGES = lmax; } } diff --git a/tools/grib_set.cc b/tools/grib_set.cc index a8e562a21..13adcde65 100644 --- a/tools/grib_set.cc +++ b/tools/grib_set.cc @@ -65,28 +65,28 @@ int grib_tool_before_getopt(grib_runtime_options* options) int grib_tool_init(grib_runtime_options* options) { if (options->set_values_count == 0 && !options->repack && !options->constant) { - printf("ERROR: please provide some keys to set through the -s option or use the -r/-d options\n"); + fprintf(stderr, "%s: Please provide some keys to set through the -s option or use the -r/-d options\n", tool_name); exit(1); } if (options->verbose) options->print_header = 1; - /*if (grib_options_on("n:")) { - noise=atof(grib_options_get_option("n:")); - options->repack=1; - }*/ - - if (grib_options_on("n:") && grib_options_on("d:")) { - printf("Error: -n and -d options are incompatible. Choose one of the two please.\n"); - exit(1); - } - -// if (options->outfile && options->outfile->name) { -// options->outfile->file = fopen(options->outfile->name,"w"); -// if(!options->outfile->file) { -// perror(options->outfile->name); -// exit(1); -// } -// } + // if (grib_options_on("n:")) { + // noise=atof(grib_options_get_option("n:")); + // options->repack=1; + // } + + // if (grib_options_on("n:") && grib_options_on("d:")) { + // fprintf(stderr, "%s: -n and -d options are incompatible. Choose one of the two please.\n",tool_name); + // exit(1); + // } + + // if (options->outfile && options->outfile->name) { + // options->outfile->file = fopen(options->outfile->name,"w"); + // if(!options->outfile->file) { + // perror(options->outfile->name); + // exit(1); + // } + // } return 0; } @@ -114,7 +114,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) v = (double*)calloc(size, sizeof(double)); if (!v) { - fprintf(stderr, "failed to allocate %d bytes\n", (int)(size * sizeof(double))); + fprintf(stderr, "%s: Failed to allocate %zu bytes\n", tool_name, size * sizeof(double)); exit(1); } diff --git a/tools/grib_to_netcdf.cc b/tools/grib_to_netcdf.cc index e223a4c79..fec300970 100644 --- a/tools/grib_to_netcdf.cc +++ b/tools/grib_to_netcdf.cc @@ -2107,8 +2107,12 @@ static void get_nc_options(const request* user_r) setup.history = history ? grib_context_strdup(ctx, (history)) : NULL; setup.unlimited = unlimited ? grib_context_strdup(ctx, ((unlimited))) : NULL; + setup.checkvalidtime = true; checkvalidtime_env = getenv("GRIB_TO_NETCDF_CHECKVALIDTIME"); - setup.checkvalidtime = checkvalidtime_env ? atol(checkvalidtime_env) : 1; + if (checkvalidtime_env) { + const long v = atol(checkvalidtime_env); + if (v == 0) setup.checkvalidtime = false; + } setup.mars_description = empty_request("MARS"); } @@ -2332,7 +2336,10 @@ static int put_latlon(int ncid, fieldset* fs) grib_context_log(ctx, GRIB_LOG_ERROR, "ecCodes: put_latlon: cannot get distinctLongitudes: %s", grib_get_error_message(e)); return e; } - Assert(n == ni); + if (n != ni) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Number of distinctLongitudes is not the same as Ni (%zu!=%zu)",n,ni); + return GRIB_GEOCALCULUS_PROBLEM; + } for (i = 0; i < n; i++) { fvalues[i] = dvalues[i]; @@ -2349,8 +2356,10 @@ static int put_latlon(int ncid, fieldset* fs) grib_context_log(ctx, GRIB_LOG_ERROR, "ecCodes: put_latlon: cannot get distinctLatitudes: %s", grib_get_error_message(e)); return e; } - - Assert(n == nj); + if (n != nj) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Number of distinctLatitudes is not the same as Nj (%zu!=%zu)",n,nj); + return GRIB_GEOCALCULUS_PROBLEM; + } for (i = 0; i < n; i++) { fvalues[i] = dvalues[i]; @@ -2639,7 +2648,10 @@ static void scale(double* vals, long n, void* data, dataset_t* g) for (i = 0; i < n; ++i) { if (!g->bitmap || (vals[i] != global_missing_value)) { double d = rint((vals[i] - add_offset) / scale_factor); - Assert(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max); + if (!(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max)) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Scaling for type NC_BYTE failed"); + return; + } vscaled[i] = d; } } @@ -2653,7 +2665,10 @@ static void scale(double* vals, long n, void* data, dataset_t* g) double d = 0; Assert(scale_factor > 0); d = rint((vals[i] - add_offset) / scale_factor); - Assert(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max); + if (!(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max)) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Scaling for type NC_SHORT failed"); + return; + } vscaled[i] = d; } } @@ -2665,7 +2680,10 @@ static void scale(double* vals, long n, void* data, dataset_t* g) for (i = 0; i < n; ++i) { if (!g->bitmap || (vals[i] != global_missing_value)) { double d = rint((vals[i] - add_offset) / scale_factor); - Assert(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max); + if (!(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max)) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Scaling for type NC_INT failed"); + return; + } vscaled[i] = d; } } @@ -2677,7 +2695,10 @@ static void scale(double* vals, long n, void* data, dataset_t* g) for (i = 0; i < n; ++i) { if (!g->bitmap || (vals[i] != global_missing_value)) { double d = vals[i]; - Assert(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max); + if (!(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max)) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Scaling for type NC_FLOAT failed"); + return; + } vscaled[i] = d; } } @@ -2689,7 +2710,10 @@ static void scale(double* vals, long n, void* data, dataset_t* g) for (i = 0; i < n; ++i) { if (!g->bitmap || (vals[i] != global_missing_value)) { double d = vals[i]; - Assert(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max); + if(!(d >= nc_type_values[nctype].nc_type_min && d <= nc_type_values[nctype].nc_type_max)) { + grib_context_log(ctx, GRIB_LOG_ERROR, "Scaling for type NC_DOUBLE failed"); + return; + } vscaled[i] = d; } } @@ -3241,6 +3265,7 @@ static size_t string_to_unique_number(const char* axis, const char* str) } return result; } + static int fill_netcdf_dimensions(hypercube* h, fieldset* fs, int ncid) { const request* cube = h->cube; diff --git a/tools/grib_tools.cc b/tools/grib_tools.cc index 8b6becee7..ce038d07f 100644 --- a/tools/grib_tools.cc +++ b/tools/grib_tools.cc @@ -179,10 +179,11 @@ int grib_tool(int argc, char** argv) dump_file = stdout; } - /* ECC-926: Currently only GRIB indexing works. Disable the through_index if BUFR, GTS etc */ - if (global_options.mode == MODE_GRIB && + /* ECC-926: Currently only GRIB and BUFR indexing work. Disable the through_index if GTS etc */ + if ((global_options.mode == MODE_GRIB || global_options.mode == MODE_BUFR) && is_index_file(global_options.infile->name) && - (global_options.infile_extra && is_index_file(global_options.infile_extra->name))) { + (global_options.infile_extra && is_index_file(global_options.infile_extra->name))) + { global_options.through_index = 1; return grib_tool_index(&global_options); } @@ -296,7 +297,7 @@ static int grib_tool_with_orderby(grib_runtime_options* options) grib_handle_delete(h); } - if (set->size==0) fprintf(stderr, "No messages found in fieldset\n"); + if (set->size==0) fprintf(stderr, "%s: No messages found in fieldset\n", tool_name); grib_tool_finalise_action(options); grib_fieldset_delete(set); @@ -343,8 +344,7 @@ static int grib_tool_without_orderby(grib_runtime_options* options) #endif err = fseeko(infile->file, options->infile_offset, SEEK_SET); if (err) { - /*fprintf(stderr, "Invalid file offset: %ld\n", options->infile_offset);*/ - perror("Invalid file offset"); + fprintf(stderr, "%s: Invalid file offset: %ld\n", tool_name, (long)options->infile_offset); exit(1); } } @@ -418,7 +418,7 @@ static int grib_tool_without_orderby(grib_runtime_options* options) fclose(infile->file); if (infile->handle_count == 0) { - fprintf(stderr, "no messages found in %s\n", infile->name); + fprintf(stderr, "%s: No messages found in %s\n", tool_name, infile->name); if (options->fail) exit(1); } @@ -736,7 +736,7 @@ static void grib_tools_set_print_keys(grib_runtime_options* options, grib_handle if (ns) { kiter = grib_keys_iterator_new(h, 0, ns); if (!kiter) { - fprintf(stderr, "ERROR: Unable to create keys iterator\n"); + fprintf(stderr, "%s: Unable to create keys iterator\n", tool_name); exit(1); } @@ -744,8 +744,8 @@ static void grib_tools_set_print_keys(grib_runtime_options* options, grib_handle const char* name = grib_keys_iterator_get_name(kiter); if (options->print_keys_count >= MAX_KEYS) { - fprintf(stderr, "ERROR: keys list too long (more than %d keys)\n", - options->print_keys_count); + fprintf(stderr, "%s: Keys list too long (more than %d keys)\n", + tool_name, options->print_keys_count); exit(1); } if (options->print_keys[options->print_keys_count].name) { @@ -1274,8 +1274,8 @@ void grib_print_key_values(grib_runtime_options* options, grib_handle* h) the_index = options->index; if (the_index >= size) { fprintf(dump_file, "\n"); - fprintf(stderr, "ERROR: Invalid index value %d (should be between 0 and %d)\n", - options->index, (int)(size - 1)); + fprintf(stderr, "%s: Invalid index value %d (should be between 0 and %d)\n", + tool_name, options->index, (int)(size - 1)); exit(1); } v = values[options->index]; diff --git a/tools/gts_compare.cc b/tools/gts_compare.cc index 0ae081661..c17e25c3d 100644 --- a/tools/gts_compare.cc +++ b/tools/gts_compare.cc @@ -42,9 +42,7 @@ const char* tool_description = const char* tool_name = "gts_compare"; const char* tool_online_doc = NULL; -const char* tool_usage = - "[options] " - "file file"; +const char* tool_usage = "[options] file file"; GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b) @@ -81,7 +79,6 @@ int lastPrint = 0; int force = 0; double maxAbsoluteError = 1e-19; int onlyListed = 1; -int headerMode = 0; int morein1 = 0; int morein2 = 0; int listFromCommandLine = 0; @@ -157,9 +154,6 @@ int grib_tool_before_getopt(grib_runtime_options* options) int grib_tool_init(grib_runtime_options* options) { - int ret = 0; - int nfiles = 1; - char orderby[] = "md5Headers"; grib_context* context = grib_context_get_default(); options->strict = 1; @@ -190,11 +184,6 @@ int grib_tool_init(grib_runtime_options* options) else onlyListed = 1; - if (grib_options_on("H")) - headerMode = 1; - else - headerMode = 0; - if (grib_options_on("H") && grib_options_on("c:")) { printf("Error: -H and -c options are incompatible. Choose one of the two please.\n"); exit(1); @@ -218,27 +207,12 @@ int grib_tool_init(grib_runtime_options* options) context->blocklist = blocklist; } - if (grib_options_on("r")) { - const char* filename[1]; - filename[0] = options->infile_extra->name; - options->random = 1; - options->orderby = strdup(orderby); - options->idx = grib_fieldset_new_from_files(context, filename, - nfiles, 0, 0, 0, orderby, &ret); - if (ret) { - printf("unable to create index for input file %s (%s)", - options->infile_extra->name, grib_get_error_message(ret)); - exit(ret); - } - } - else { - options->random = 0; - options->infile_extra->file = fopen(options->infile_extra->name, "r"); + options->random = 0; + options->infile_extra->file = fopen(options->infile_extra->name, "r"); - if (!options->infile_extra->file) { - perror(options->infile_extra->name); - exit(1); - } + if (!options->infile_extra->file) { + perror(options->infile_extra->name); + exit(1); } if (grib_options_on("t:")) @@ -279,19 +253,6 @@ static void printInfo(grib_handle* h) lastPrint = count; } -static void print_index_key_values(grib_index* index, int cnt, const char* error_message) -{ - grib_index_key* keys = index->keys; - printf("== %d == ", cnt); - if (error_message) - printf("%s == ", error_message); - while (keys) { - printf("%s=%s ", keys->name, keys->value); - keys = keys->next; - } - printf("\n"); -} - static grib_handle* gts_handle_new_from_file_x( grib_context* c, FILE* f, int mode, int headers_only, int* err) { @@ -303,54 +264,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) int err = 0; count++; - if (options->through_index) { - grib_index* idx1 = options->index1; - verbose = 0; - counter++; - - if (start > 0 && counter < start) - return 0; - if (end > 0 && counter > end) { - options->stop = 1; - return 0; - } - - grib_index_search_same(idx1, h); - global_handle = codes_new_from_index(idx1, CODES_GTS, &err); - if (options->verbose) { - off_t offset = 0; - char* filename = grib_get_field_file(options->index2, &offset); - printf("file1=\"%s\" ", filename); - filename = grib_get_field_file(options->index1, &offset); - printf("file2=\"%s\" \n", filename); - print_index_key_values(options->index1, counter, NULL); - } - - if (!global_handle) { - if (!options->verbose) - print_index_key_values(idx1, counter, "NOT FOUND "); - } - - if (!global_handle || err != GRIB_SUCCESS) { - morein1++; - grib_handle_delete(global_handle); - return 0; - } - - if (compare_handles(h, global_handle, options)) { - error++; - if (!force) - exit(1); - } - - grib_handle_delete(global_handle); - - return 0; - } - else if (options->random) - global_handle = grib_fieldset_next_handle(options->idx, &err); - else - global_handle = gts_handle_new_from_file_x(h->context, options->infile_extra->file, options->mode, 0, &err); + global_handle = gts_handle_new_from_file_x(h->context, options->infile_extra->file, options->mode, 0, &err); if (!global_handle || err != GRIB_SUCCESS) { morein2++; @@ -373,7 +287,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) int grib_tool_skip_handle(grib_runtime_options* options, grib_handle* h) { int err = 0; - if (!options->through_index && !options->random) { + if (!options->through_index) { global_handle = gts_new_from_file(h->context, options->infile_extra->file, &err); if (!global_handle || err != GRIB_SUCCESS) @@ -430,10 +344,6 @@ int grib_tool_finalise_action(grib_runtime_options* options) printf("##\n## %d different messages out of %d\n\n", error, count); } - if (options->through_index) { - grib_index_delete(options->index1); - grib_index_delete(options->index2); - } if (error != 0) exit(1); @@ -811,60 +721,11 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option grib_keys_iterator* iter = NULL; const char* name = NULL; - /* mask only if no -c option or headerMode (-H)*/ - if (blocklist && (!listFromCommandLine || headerMode)) { - grib_string_list* nextb = blocklist; - while (nextb) { - grib_clear(h1, nextb->value); - grib_clear(h2, nextb->value); - nextb = nextb->next; - } - } - - if (headerMode) { - const void *msg1 = NULL, *msg2 = NULL; - size_t size1 = 0, size2 = 0; - grib_handle *h11, *h22; - GRIB_CHECK_NOLINE(grib_get_message_headers(h1, &msg1, &size1), 0); - GRIB_CHECK_NOLINE(grib_get_message_headers(h2, &msg2, &size2), 0); - if (size1 == size2 && !memcmp(msg1, msg2, size1)) - return 0; - - err = 0; - h11 = grib_handle_new_from_partial_message(h1->context, msg1, size1); - h22 = grib_handle_new_from_partial_message(h1->context, msg2, size2); - - iter = grib_keys_iterator_new(h11, - GRIB_KEYS_ITERATOR_SKIP_COMPUTED, NULL); - - if (!iter) { - printf("ERROR: unable to get iterator\n"); - exit(1); - } - - while (grib_keys_iterator_next(iter)) { - name = grib_keys_iterator_get_name(iter); - /*printf("----- comparing %s\n",name);*/ - - if (blocklisted(name)) - continue; - if (compare_values(options, h11, h22, name, GRIB_TYPE_UNDEFINED)) { - err++; - write_messages(h11, h22); - } - } - - grib_keys_iterator_delete(iter); - grib_handle_delete(h11); - grib_handle_delete(h22); - return err; - } - if (listFromCommandLine && onlyListed) { for (i = 0; i < options->compare_count; i++) { if (blocklisted((char*)options->compare[i].name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { printf("ERROR: unable to get iterator\n"); @@ -925,7 +786,7 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option for (i = 0; i < options->compare_count; i++) { if (blocklisted(name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { printf("ERROR: unable to get iterator for %s\n", options->compare[i].name); diff --git a/tools/gts_copy.cc b/tools/gts_copy.cc index 92dfe4530..9fdf7041a 100644 --- a/tools/gts_copy.cc +++ b/tools/gts_copy.cc @@ -67,6 +67,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/gts_get.cc b/tools/gts_get.cc index 39c1d2731..ccdf51d83 100644 --- a/tools/gts_get.cc +++ b/tools/gts_get.cc @@ -66,6 +66,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/gts_ls.cc b/tools/gts_ls.cc index b6a8a6666..50a8a70cf 100644 --- a/tools/gts_ls.cc +++ b/tools/gts_ls.cc @@ -78,6 +78,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/metar_compare.cc b/tools/metar_compare.cc index 097efd61c..4a9024483 100644 --- a/tools/metar_compare.cc +++ b/tools/metar_compare.cc @@ -12,7 +12,6 @@ grib_option grib_options[] = { /* {id, args, help}, on, command_line, value*/ - { "r", 0, "Compare files in which the messages are not in the same order. This option is time expensive.\n", 0, 1, 0 }, { "b:", 0, 0, 0, 1, 0 }, { "d", 0, "Write different messages on files\n", 0, 1, 0 }, { "T:", 0, 0, 1, 0, "M" }, /* METAR */ @@ -44,9 +43,7 @@ const char* tool_description = const char* tool_name = "metar_compare"; const char* tool_online_doc = NULL; -const char* tool_usage = - "[options] " - "file file"; +const char* tool_usage = "[options] file file"; GRIB_INLINE static int grib_inline_strcmp(const char* a, const char* b) @@ -91,7 +88,6 @@ static int verbose = 0; static double tolerance_factor = 1; static int write_error = 0; static grib_handle* global_handle = NULL; -static int global_counter = 0; static int start = -1; static int end = -1; static int write_count = 0; @@ -196,9 +192,6 @@ int grib_tool_before_getopt(grib_runtime_options* options) int grib_tool_init(grib_runtime_options* options) { - int ret = 0, i; - int nfiles = 1; - char orderby[] = "md5Headers"; grib_context* context = grib_context_get_default(); options->strict = 1; @@ -243,7 +236,7 @@ int grib_tool_init(grib_runtime_options* options) blocklist = (grib_string_list*)grib_context_malloc_clear(context, sizeof(grib_string_list)); blocklist->value = grib_context_strdup(context, options->set_values[0].name); next = blocklist; - for (i = 1; i < options->set_values_count; i++) { + for (int i = 1; i < options->set_values_count; i++) { next->next = (grib_string_list*)grib_context_malloc_clear(context, sizeof(grib_string_list)); next->next->value = grib_context_strdup(context, options->set_values[i].name); next = next->next; @@ -251,34 +244,19 @@ int grib_tool_init(grib_runtime_options* options) context->blocklist = blocklist; } - if (grib_options_on("r")) { - const char* filename[1]; - filename[0] = options->infile_extra->name; - options->random = 1; - options->orderby = strdup(orderby); - options->idx = grib_fieldset_new_from_files(context, filename, - nfiles, 0, 0, 0, orderby, &ret); - if (ret) { - printf("unable to create index for input file %s (%s)", - options->infile_extra->name, grib_get_error_message(ret)); - exit(ret); - } - } - else { - options->random = 0; - options->infile_extra->file = fopen(options->infile_extra->name, "r"); + options->random = 0; + options->infile_extra->file = fopen(options->infile_extra->name, "r"); - if (!options->infile_extra->file) { - perror(options->infile_extra->name); - exit(1); - } + if (!options->infile_extra->file) { + perror(options->infile_extra->name); + exit(1); } global_tolerance = 0; compare_double = &compare_double_absolute; if (grib_options_on("R:")) { global_tolerance = 0; - for (i = 0; i < options->tolerance_count; i++) { + for (int i = 0; i < options->tolerance_count; i++) { if (!strcmp((options->tolerance[i]).name, "all")) { global_tolerance = (options->tolerance[i]).double_value; break; @@ -344,21 +322,7 @@ static void printInfo(grib_handle* h) lastPrint = count; } -static void print_index_key_values(grib_index* index, int counter, const char* error_message) -{ - grib_index_key* keys = index->keys; - printf("== %d == ", counter); - if (error_message) - printf("%s == ", error_message); - while (keys) { - printf("%s=%s ", keys->name, keys->value); - keys = keys->next; - } - printf("\n"); -} - -static grib_handle* metar_handle_new_from_file_x( - grib_context* c, FILE* f, int mode, int headers_only, int* err) +static grib_handle* metar_handle_new_from_file_x(grib_context* c, FILE* f, int mode, int headers_only, int* err) { return codes_handle_new_from_file(c, f, PRODUCT_METAR, err); } @@ -368,55 +332,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) int err = 0; count++; - if (options->through_index) { - grib_index* idx1 = options->index1; - verbose = 0; - global_counter++; - - if (start > 0 && global_counter < start) - return 0; - if (end > 0 && global_counter > end) { - options->stop = 1; - return 0; - } - - grib_index_search_same(idx1, h); - global_handle = codes_new_from_index(idx1, CODES_METAR, &err); - if (options->verbose) { - off_t offset = 0; - char* filename = grib_get_field_file(options->index2, &offset); - printf("file1=\"%s\" ", filename); - filename = grib_get_field_file(options->index1, &offset); - printf("file2=\"%s\" \n", filename); - print_index_key_values(options->index1, global_counter, NULL); - } - - if (!global_handle) { - if (!options->verbose) - print_index_key_values(idx1, global_counter, "NOT FOUND "); - } - - if (!global_handle || err != GRIB_SUCCESS) { - morein1++; - if (global_handle) - grib_handle_delete(global_handle); - return 0; - } - - if (compare_handles(h, global_handle, options)) { - error++; - if (!force) - exit(1); - } - - grib_handle_delete(global_handle); - - return 0; - } - else if (options->random) - global_handle = grib_fieldset_next_handle(options->idx, &err); - else - global_handle = metar_handle_new_from_file_x(h->context, options->infile_extra->file, options->mode, 0, &err); + global_handle = metar_handle_new_from_file_x(h->context, options->infile_extra->file, options->mode, 0, &err); if (!global_handle || err != GRIB_SUCCESS) { morein2++; @@ -439,7 +355,7 @@ int grib_tool_new_handle_action(grib_runtime_options* options, grib_handle* h) int grib_tool_skip_handle(grib_runtime_options* options, grib_handle* h) { int err = 0; - if (!options->through_index && !options->random) { + if (!options->through_index) { global_handle = metar_new_from_file(h->context, options->infile_extra->file, &err); if (!global_handle || err != GRIB_SUCCESS) @@ -496,10 +412,6 @@ int grib_tool_finalise_action(grib_runtime_options* options) printf("##\n## %d different messages out of %d\n\n", error, count); } - if (options->through_index) { - grib_index_delete(options->index1); - grib_index_delete(options->index2); - } if (error != 0) exit(1); @@ -548,7 +460,6 @@ static int compare_values(grib_runtime_options* options, grib_handle* h1, grib_h int err2; int type1, type2; int countdiff; - int isangle = 0; int isMissing1 = 0, isMissing2 = 0; char *sval1 = NULL, *sval2 = NULL; @@ -585,16 +496,6 @@ static int compare_values(grib_runtime_options* options, grib_handle* h1, grib_h return err; } - /* - if(type1 != type2) - { - printInfo(h1); - printf("Warning, [%s] has different types: 1st field: [%s], 2nd field: [%s]\n", - name,grib_get_type_name(type1),grib_get_type_name(type2)); - return GRIB_TYPE_MISMATCH; - } - */ - if (type1 == GRIB_TYPE_LABEL) return err; @@ -623,16 +524,6 @@ static int compare_values(grib_runtime_options* options, grib_handle* h1, grib_h return err; } - /* - if(len1 != len2 && type1 != GRIB_TYPE_STRING) - { - printInfo(h1); - printf("[%s] has different size: 1st field: %ld, 2nd field: %ld\n",name,(long)len1,(long)len2); - save_error(c,name); - return GRIB_COUNT_MISMATCH; - } - */ - if (options->mode != MODE_METAR) { /* TODO: Ignore missing values for keys in METAR. Not yet implemented */ isMissing1 = ((grib_is_missing(h1, name, &err1) == 1) && (err1 == 0)) ? 1 : 0; @@ -770,7 +661,6 @@ static int compare_values(grib_runtime_options* options, grib_handle* h1, grib_h dval1 = (double*)grib_context_malloc(h1->context, len1 * sizeof(double)); dval2 = (double*)grib_context_malloc(h2->context, len2 * sizeof(double)); - isangle = 0; value_tolerance = global_tolerance; if (!grib_inline_strcmp(name, "packedValues") || !grib_inline_strcmp(name, "values") || !grib_inline_strcmp(name, "codedValues")) { packingError1 = 0; @@ -835,26 +725,12 @@ static int compare_values(grib_runtime_options* options, grib_handle* h1, grib_h if (err1 == GRIB_SUCCESS && err2 == GRIB_SUCCESS && len1 == len2) { int imaxdiff; double diff; - double *pv1, *pv2, dnew1, dnew2; + double *pv1, *pv2; maxdiff = 0; imaxdiff = 0; countdiff = 0; pv1 = dval1; pv2 = dval2; - if (isangle) { - dnew1 = *dval1; - dnew2 = *dval2; - pv1 = &dnew1; - pv2 = &dnew2; - if (*dval1 < 0) - dnew1 += 360.0; - if (*dval2 < 0) - dnew2 += 360.0; - if (*dval1 > 360) - dnew1 -= 360.0; - if (*dval2 > 360) - dnew2 -= 360.0; - } value_tolerance *= tolerance_factor; if (verbose) printf(" (%d values) tolerance=%g\n", (int)len1, value_tolerance); @@ -1026,21 +902,11 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option grib_keys_iterator* iter = NULL; const char* name = NULL; - /* mask only if no -c option (-H)*/ - if (blocklist && !listFromCommandLine) { - grib_string_list* nextb = blocklist; - while (nextb) { - grib_clear(h1, nextb->value); - grib_clear(h2, nextb->value); - nextb = nextb->next; - } - } - if (listFromCommandLine && onlyListed) { for (i = 0; i < options->compare_count; i++) { if (blocklisted((char*)options->compare[i].name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { printf("ERROR: unable to get iterator\n"); @@ -1081,7 +947,7 @@ static int compare_handles(grib_handle* h1, grib_handle* h2, grib_runtime_option for (i = 0; i < options->compare_count; i++) { if (blocklisted(name)) continue; - if (options->compare[i].type == GRIB_NAMESPACE) { + if (options->compare[i].type == CODES_NAMESPACE) { iter = grib_keys_iterator_new(h1, 0, options->compare[i].name); if (!iter) { printf("ERROR: unable to get iterator for %s\n", options->compare[i].name); diff --git a/tools/metar_copy.cc b/tools/metar_copy.cc index ce3ada95d..0ea7e14d4 100644 --- a/tools/metar_copy.cc +++ b/tools/metar_copy.cc @@ -67,6 +67,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/metar_dump.cc b/tools/metar_dump.cc index 4e0e2b8d4..66bf48959 100644 --- a/tools/metar_dump.cc +++ b/tools/metar_dump.cc @@ -8,14 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/* - * Implementation: grib_dump - * - * Author: Enrico Fucile - * - * - */ - #include "grib_tools.h" grib_option grib_options[] = { @@ -106,6 +98,8 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); + char tmp[1024]; if (!options->current_infile->name) return 0; diff --git a/tools/metar_filter.cc b/tools/metar_filter.cc index e0e0fe131..6cfd6514f 100644 --- a/tools/metar_filter.cc +++ b/tools/metar_filter.cc @@ -66,6 +66,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/metar_get.cc b/tools/metar_get.cc index 122dbf92a..79fd1342c 100644 --- a/tools/metar_get.cc +++ b/tools/metar_get.cc @@ -69,6 +69,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } diff --git a/tools/metar_ls.cc b/tools/metar_ls.cc index 794438715..98c748863 100644 --- a/tools/metar_ls.cc +++ b/tools/metar_ls.cc @@ -8,13 +8,6 @@ * virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction. */ -/* - * Implementation: grib_ls - * - * Author: Enrico Fucile - * - * - */ #include "grib_tools.h" grib_option grib_options[] = { @@ -24,7 +17,7 @@ grib_option grib_options[] = { { "F:", 0, 0, 1, 1, "%g" }, { "P:", 0, 0, 0, 1, 0 }, { "w:", 0, 0, 0, 1, 0 }, - { "j", 0, "json output\n", 0, 1, 0 }, + // { "j", 0, "json output\n", 0, 1, 0 }, { "B:", 0, 0, 0, 1, 0 }, /* {"l:",0,0,0,1,0}, */ { "s:", 0, 0, 0, 1, 0 }, @@ -55,7 +48,6 @@ int grib_options_count = sizeof(grib_options) / sizeof(grib_option); double lat = 0; double lon = 0; int mode = 0; -static int json = 0; int main(int argc, char* argv[]) { @@ -79,14 +71,6 @@ Initialization and startup can be done here */ int grib_tool_init(grib_runtime_options* options) { - if (grib_options_on("j")) { - options->verbose = 0; - json = 1; - } - - if (json) - printf("[\n"); - return 0; } @@ -101,6 +85,7 @@ int grib_tool_new_filename_action(grib_runtime_options* options, const char* fil int grib_tool_new_file_action(grib_runtime_options* options, grib_tools_file* file) { + exit_if_input_is_directory(tool_name, file->name); return 0; } @@ -140,9 +125,6 @@ void grib_tool_print_key_values(grib_runtime_options* options, grib_handle* h) /* this is executed after the last message in the last file is processed */ int grib_tool_finalise_action(grib_runtime_options* options) { - if (json) - printf("\n]\n"); - return 0; } diff --git a/tools/tigge_check.filter b/tools/tigge_check.filter deleted file mode 100644 index 0e7a53f09..000000000 --- a/tools/tigge_check.filter +++ /dev/null @@ -1,114 +0,0 @@ -# gaussian_grid - - long n = get(h,"numberOfParallelsBetweenAPoleAndTheEquator"); - static double* values = NULL; - static long last_n = 0; - double north = dget(h,"latitudeOfFirstGridPointInDegrees"); - double south = dget(h,"latitudeOfLastGridPointInDegrees"); - - double west = dget(h,"longitudeOfFirstGridPointInDegrees"); - double east = dget(h,"longitudeOfLastGridPointInDegrees"); - - int e; - - if(n != last_n) - { - - if(values) free(values); - - values = (double*)malloc(2*sizeof(double)*n); - if(!values) - { - printf("%s, field %d [%s]: failed to allocate %ld bytes\n",file,field,param,2*(long)sizeof(double)*(n)); - error++; - return; - } - - if((e = grib_get_gaussian_latitudes(n,values)) != GRIB_SUCCESS) - { - printf("%s, field %d [%s]: cannot get gaussian latitudes for N%ld: %s\n",file,field,param,n,grib_get_error_message(e)); - error++; - free(values); - last_n = 0; - return; - } - - last_n = n; - } - - values[0] = rint(values[0]*1e6)/1e6; - - if(north != values[0] || south != -values[0]) - printf("N=%ld n=%f s=%f v=%f n-v=%0.30f s-v=%0.30f\n",n,north,south,values[0],north-values[0],south+values[0]); - - CHECK(north == values[0]); - CHECK(south == -values[0]); - - CHECK(west == 0.0); - CHECK(east == 360.0 - 360.0/(4.0*n)); - - if(get(h,"PLPresent")) { - size_t count; - int e = grib_get_size(h,"pl",&count); - double *pl; - int i; - long total; - long numberOfValues = get(h,"numberOfValues"); - long numberOfDataPoints = get(h,"numberOfDataPoints"); - int nPl; - - if(e) { - printf("%s, field %d [%s]: cannot number of pl: %s\n",file,field,param,grib_get_error_message(e)); - error++; - return; - } - - pl = (double*)malloc(sizeof(double)*(count)); - CHECK(pl != NULL); - - nPl = count; - if((e = grib_get_double_array(h,"pl",pl,&count))) - { - printf("%s, field %d [%s]: cannot get pl: %s\n",file,field,param,grib_get_error_message(e)); - free(pl); - error++; - return; - - } - if(nPl != count) - printf("nPl=%ld count=%ld\n",(long)nPl,(long)count); - - CHECK(nPl == count); - - total = 0; - for(i = 0 ; i < count; i++) - total += pl[i]; - - free(pl); - - if(numberOfDataPoints != total) - printf("GAUSS numberOfValues=%ld numberOfDataPoints=%ld sum(pl)=%ld\n", - numberOfValues, - numberOfDataPoints, - total); - - CHECK(numberOfDataPoints == total); - - CHECK(missing(h,"iDirectionIncrement")); - CHECK(missing(h,"iDirectionIncrementInDegrees")); - - CHECK(eq(h,"iDirectionIncrementGiven",0)); - CHECK(eq(h,"jDirectionIncrementGiven",1)); - - } - - CHECK(eq(h,"resolutionAndComponentFlags1",0)); - CHECK(eq(h,"resolutionAndComponentFlags2",0)); - CHECK(eq(h,"resolutionAndComponentFlags6",0)); - CHECK(eq(h,"resolutionAndComponentFlags7",0)); - CHECK(eq(h,"resolutionAndComponentFlags8",0)); - - -} - -