The GRIB_GET_VALUES function gets an array of values. This function is the same as using GRIB_GET_ARRAY with the key set to "values".
Examples
The following function opens a GRIB file and returns the message data.
If the HEADER keyword is specified, the function returns the header information for each message in the file.
FUNCTION GRIB_READ_EX, filename, HEADER=header
ON_ERROR, 2
IF(filename eq !null) THEN MESSAGE, 'File is undefined.'
f = GRIB_OPEN(filename)
data = PTRARR(GRIB_COUNT(filename))
if(ARG_PRESENT(header)) THEN header = MAKE_ARRAY(GRIB_COUNT(filename), /OBJ)
h = GRIB_NEW_FROM_FILE(f)
i=0
WHILE(h NE !NULL) DO BEGIN
values = GRIB_GET_VALUES(h)
data[i] = PTR_NEW(values)
IF (ARG_PRESENT(header)) THEN BEGIN
kiter = GRIB_KEYS_ITERATOR_NEW(h, /COMPUTED)
header[i] = LIST()
res = GRIB_KEYS_ITERATOR_NEXT(kiter)
WHILE (res EQ 1) DO BEGIN
key = GRIB_KEYS_ITERATOR_GET_NAME(kiter)
IF (STRCMP(key, 'values', /FOLD_CASE) EQ 0) THEN BEGIN
IF (GRIB_GET_SIZE(h, key) GT 1) THEN $
val = GRIB_GET_ARRAY(h, key)ELSE val = GRIB_GET(h, key)
IF (STRCMP(key, '7777', /FOLD_CASE) EQ 1) THEN key = 'end_section'
key_value = CREATE_STRUCT(key, val)
header[i].add, key_value
ENDIF
res = GRIB_KEYS_ITERATOR_NEXT(kiter)
ENDWHILE
GRIB_KEYS_ITERATOR_DELETE, kiter
ENDIF
GRIB_RELEASE, h
h = GRIB_NEW_FROM_FILE(f)
i++
ENDWHILE
GRIB_CLOSE, f
RETURN, data
END
Syntax
Result = GRIB_GET_VALUES(Ghandle)
Return Value
Returns an array of values of type DOUBLE.
Arguments
Ghandle
A GRIB handle.
Version History
See Also
GRIB_GET_ARRAY, GRIB_GET_DOUBLE_ELEMENTS