Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt
hiddentrue

For the moment there is no simple way of knowing what To find out the type of a key value is. However, the library provides a function that can be used to find out what the native type of a key value is, use grib_dump or the API.

Step-by-step guide

You can either use the API or the grib_dump tool for this.

The For the moment there is no simple way of knowing what the type of a key value is. However, the library provides a function that can be used to find out what the native type of a key value is.
In the C API, there is a function called "codes_get_native_type" which returns an integer which can be checked against the following macros:

...

As of version 2.14.0, one can use the grib_dump tool with the "-p" option to dump a given key and query its type with the "-t" option.
E.g.Let's look at the types of various keys in a GRIB2 message:

Code Block
languagetext
% grib_dump -t -p identifier my.grib
  # type ascii (str)
  #-READ ONLY- identifier = GRIB;

% grib_dump -t -p typeOfProcessedData my.grib
  # type codetable (int)
  # Analysis and forecast products (grib2/tables/4/1.4.table)  
  typeOfProcessedData = 2;

% grib_dump -t -p numberOfDataPoints my.grib
  # type unsigned (int)
  numberOfDataPoints = 496;

% grib_dump -t -p scaleFactorOfFirstFixedSurface my.grib
  # type signed (int)
  scaleFactorOfFirstFixedSurface = MISSING;

% grib_dump -t -p referenceValue my.grib
  # type ieeefloat (double)
  #-READ ONLY- referenceValue = 45.67;

...

  • "ascii" means a string (character array)
  • "codetable" means an integer whose values come from entries in the given Code Table e.g. 1.4
  • "unsigned" is a non-negative integer
  • "signed" means an integer which can be negative
  • "ieeefloat" is a floating-point number (https://en.wikipedia.org/wiki/IEEE_754)

Note: The above command could be run passing in all the keys in one go:

Code Block
% grib_dump -t -p identifier,typeOfProcessedData,numberOfDataPoints,scaleFactorOfFirstFixedSurface,referenceValue my.grib


Content by Label
showLabelsfalse
max5
spaces~usa
showSpacefalse
sortmodified
reversetrue
typepage
cqllabel in ("kb-how-to-article","eccodes-faqs","grib","keys","type") and type = "page" and space = "UDOC"
labelskb-how-to-article

...