mirror of https://github.com/ecmwf/eccodes.git
ECC-200: Python docs updates
This commit is contained in:
parent
d8b0c75f01
commit
e12a686edf
|
@ -171,18 +171,9 @@ def gts_new_from_file(fileobj, headers_only=False):
|
|||
"""
|
||||
@brief Load in memory a GTS message from a file.
|
||||
|
||||
The message can be accessed through its id and it will be available\n
|
||||
The message can be accessed through its id and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
The message can be loaded headers only by using the headers_only argument.
|
||||
Default is to have the headers only option grib_set to off (False). If set to on (True),
|
||||
data values will be skipped. This will result in a significant performance gain
|
||||
if one is only interested in browsing through messages to retrieve metadata.
|
||||
Any attempt to retrieve data values keys when in the headers only mode will
|
||||
result in a key not found error.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py"
|
||||
|
||||
@param fileobj python file object
|
||||
@param headers_only whether or not to load the message with the headers only
|
||||
@return id of the GTS loaded in memory
|
||||
|
@ -202,18 +193,9 @@ def metar_new_from_file(fileobj, headers_only = False):
|
|||
"""
|
||||
@brief Load in memory a METAR message from a file.
|
||||
|
||||
The message can be accessed through its id and it will be available\n
|
||||
The message can be accessed through its id and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
The message can be loaded headers only by using the headers_only argument.
|
||||
Default is to have the headers only option grib_set to off (False). If set to on (True),
|
||||
data values will be skipped. This will result in a significant performance gain
|
||||
if one is only interested in browsing through messages to retrieve metadata.
|
||||
Any attempt to retrieve data values keys when in the headers only mode will
|
||||
result in a key not found error.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py"
|
||||
|
||||
@param fileobj python file object
|
||||
@param headers_only whether or not to load the message with the headers only
|
||||
@return id of the METAR loaded in memory
|
||||
|
@ -230,6 +212,20 @@ def metar_new_from_file(fileobj, headers_only = False):
|
|||
|
||||
@require(fileobj=file,product_kind=int)
|
||||
def codes_new_from_file(fileobj, product_kind, headers_only = False):
|
||||
"""
|
||||
@brief Load in memory a message from a file for a given product.
|
||||
|
||||
The message can be accessed through its id and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
\b Examples: \ref get_product_kind.py "get_product_kind.py"
|
||||
|
||||
@param fileobj python file object
|
||||
@param product_kind one of CODES_PRODUCT_GRIB, CODES_PRODUCT_BUFR, CODES_PRODUCT_METAR or CODES_PRODUCT_GTS
|
||||
@param headers_only whether or not to load the message with the headers only
|
||||
@return id of the message loaded in memory
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if product_kind == CODES_PRODUCT_GRIB:
|
||||
return grib_new_from_file(fileobj, headers_only)
|
||||
if product_kind == CODES_PRODUCT_BUFR:
|
||||
|
@ -247,7 +243,7 @@ def any_new_from_file(fileobj, headers_only = False):
|
|||
"""
|
||||
@brief Load in memory a message from a file.
|
||||
|
||||
The message can be accessed through its id and it will be available\n
|
||||
The message can be accessed through its id and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py"
|
||||
|
@ -271,17 +267,10 @@ def bufr_new_from_file(fileobj, headers_only=False):
|
|||
"""
|
||||
@brief Load in memory a BUFR message from a file.
|
||||
|
||||
The message can be accessed through its id and it will be available\n
|
||||
The message can be accessed through its id and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
The message can be loaded headers only by using the headers_only argument.
|
||||
Default is to have the headers only option grib_set to off (False). If set to on (True),
|
||||
data values will be skipped. This will result in a significant performance gain
|
||||
if one is only interested in browsing through messages to retrieve metadata.
|
||||
Any attempt to retrieve data values keys when in the headers only mode will
|
||||
result in a key not found error.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py"
|
||||
\b Examples: \ref bufr_get_keys.py "bufr_get_keys.py"
|
||||
|
||||
@param fileobj python file object
|
||||
@param headers_only whether or not to load the message with the headers only
|
||||
|
@ -303,7 +292,7 @@ def grib_new_from_file(fileobj, headers_only=False):
|
|||
"""
|
||||
@brief Load in memory a grib message from a file.
|
||||
|
||||
The message can be accessed through its gribid and it will be available\n
|
||||
The message can be accessed through its gribid and will be available\n
|
||||
until @ref grib_release is called.\n
|
||||
|
||||
The message can be loaded headers only by using the headers_only argument.
|
||||
|
@ -364,31 +353,31 @@ def grib_multi_support_off():
|
|||
_internal.grib_c_multi_support_off()
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
def grib_release(gribid):
|
||||
@require(msgid=int)
|
||||
def grib_release(msgid):
|
||||
"""
|
||||
@brief Free the memory for the message referred as gribid.
|
||||
@brief Free the memory for the message referred as msgid.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py"
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_release(gribid))
|
||||
GRIB_CHECK(_internal.grib_c_release(msgid))
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_string(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_string(msgid, key):
|
||||
"""
|
||||
@brief Get the string value of a key from a grib message.
|
||||
@brief Get the string value of a key from a message.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return string value of key
|
||||
@exception GribInternalError
|
||||
"""
|
||||
length = grib_get_string_length(gribid, key)
|
||||
err, value = _internal.grib_c_get_string(gribid, key, length)
|
||||
length = grib_get_string_length(msgid, key)
|
||||
err, value = _internal.grib_c_get_string(msgid, key, length)
|
||||
GRIB_CHECK(err)
|
||||
|
||||
stpos = value.find('\0')
|
||||
|
@ -398,17 +387,17 @@ def grib_get_string(gribid, key):
|
|||
return value
|
||||
|
||||
|
||||
@require(gribid=int, key=str, value=str)
|
||||
def grib_set_string(gribid, key, value):
|
||||
@require(msgid=int, key=str, value=str)
|
||||
def grib_set_string(msgid, key, value):
|
||||
"""
|
||||
@brief Set the value for a string key in a grib message.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@param value string value
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_set_string(gribid, key, value, len(value)))
|
||||
GRIB_CHECK(_internal.grib_c_set_string(msgid, key, value, len(value)))
|
||||
|
||||
|
||||
def grib_gribex_mode_on():
|
||||
|
@ -429,18 +418,18 @@ def grib_gribex_mode_off():
|
|||
_internal.grib_c_gribex_mode_off()
|
||||
|
||||
|
||||
@require(gribid=int, fileobj=file)
|
||||
def grib_write(gribid, fileobj):
|
||||
@require(msgid=int, fileobj=file)
|
||||
def grib_write(msgid, fileobj):
|
||||
"""
|
||||
@brief Write a message to a file.
|
||||
|
||||
\b Examples: \ref grib_set_keys.py "grib_set_keys.py"
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param fileobj python file object
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_write(gribid, fileobj))
|
||||
GRIB_CHECK(_internal.grib_c_write(msgid, fileobj))
|
||||
|
||||
|
||||
@require(multigribid=int, fileobj=file)
|
||||
|
@ -476,32 +465,32 @@ def grib_multi_append(ingribid, startsection, multigribid):
|
|||
GRIB_CHECK(_internal.grib_c_multi_append(ingribid, startsection, multigribid))
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_size(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_size(msgid, key):
|
||||
"""
|
||||
@brief Get the size of an array key.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py",\ref count_messages.py "count_messages.py"
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key name of the key
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, result = _internal.grib_c_get_size_long(gribid, key)
|
||||
err, result = _internal.grib_c_get_size_long(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return result
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_string_length(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_string_length(msgid, key):
|
||||
"""
|
||||
@brief Get the length of the string version of a key.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key name of the key
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, result = _internal.grib_c_get_string_length(gribid, key)
|
||||
err, result = _internal.grib_c_get_string_length(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return result
|
||||
|
||||
|
@ -643,8 +632,8 @@ def grib_iterator_next(iterid):
|
|||
return (lat, lon, value)
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
def grib_keys_iterator_new(gribid, namespace=None):
|
||||
@require(msgid=int)
|
||||
def grib_keys_iterator_new(msgid, namespace=None):
|
||||
"""
|
||||
@brief Create a new iterator on the keys.
|
||||
|
||||
|
@ -661,12 +650,12 @@ def grib_keys_iterator_new(gribid, namespace=None):
|
|||
|
||||
\b Examples: \ref grib_iterator.py "grib_iterator.py"
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param namespace the namespace of the keys to search for (all the keys if None)
|
||||
@return keys iterator id to be used in the keys iterator functions
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, iterid = _internal.grib_c_keys_iterator_new(gribid, namespace)
|
||||
err, iterid = _internal.grib_c_keys_iterator_new(msgid, namespace)
|
||||
GRIB_CHECK(err)
|
||||
return iterid
|
||||
|
||||
|
@ -727,45 +716,45 @@ def grib_keys_iterator_rewind(iterid):
|
|||
GRIB_CHECK(_internal.grib_c_keys_iterator_rewind(iterid))
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_long(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_long(msgid, key):
|
||||
"""
|
||||
@brief Get the value of a key in a grib message as an int.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return value of key as int
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_get_long(gribid, key)
|
||||
err, value = _internal.grib_c_get_long(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_double(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_double(msgid, key):
|
||||
"""
|
||||
@brief Get the value of a key in a grib message as a float.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return value of key as float
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_get_double(gribid, key)
|
||||
err, value = _internal.grib_c_get_double(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
||||
@require(gribid=int, key=str, value=(int, long, float, str))
|
||||
def grib_set_long(gribid, key, value):
|
||||
@require(msgid=int, key=str, value=(int, long, float, str))
|
||||
def grib_set_long(msgid, key, value):
|
||||
"""
|
||||
@brief Set the integer value for a key in a grib message.
|
||||
|
||||
A TypeError exception will be thrown if value cannot be represented
|
||||
as an integer.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@param value value to set
|
||||
@exception GribInternalError,TypeError
|
||||
|
@ -778,18 +767,18 @@ def grib_set_long(gribid, key, value):
|
|||
if value > sys.maxint:
|
||||
raise TypeError("Invalid type")
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_set_long(gribid, key, value))
|
||||
GRIB_CHECK(_internal.grib_c_set_long(msgid, key, value))
|
||||
|
||||
|
||||
@require(gribid=int, key=str, value=(int, long, float, str))
|
||||
def grib_set_double(gribid, key, value):
|
||||
@require(msgid=int, key=str, value=(int, long, float, str))
|
||||
def grib_set_double(msgid, key, value):
|
||||
"""
|
||||
@brief Set the double value for a key in a grib message.
|
||||
|
||||
A TypeError exception will be thrown if value cannot be represented
|
||||
as a float.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@param value float value to set
|
||||
@exception GribInternalError,TypeError
|
||||
|
@ -799,13 +788,13 @@ def grib_set_double(gribid, key, value):
|
|||
except (ValueError, TypeError):
|
||||
raise TypeError("Invalid type")
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_set_double(gribid, key, value))
|
||||
GRIB_CHECK(_internal.grib_c_set_double(msgid, key, value))
|
||||
|
||||
|
||||
@require(samplename=str)
|
||||
def grib_new_from_samples(samplename):
|
||||
"""
|
||||
@brief Create a new valid gribid from a sample.
|
||||
@brief Create a new valid message from a sample.
|
||||
|
||||
The available samples are picked up from the directory pointed to
|
||||
by the environment variable ECCODES_SAMPLES_PATH.
|
||||
|
@ -814,35 +803,35 @@ def grib_new_from_samples(samplename):
|
|||
\b Examples: \ref samples.py "samples.py"
|
||||
|
||||
@param samplename name of the sample to be used
|
||||
@return id of the grib loaded in memory
|
||||
@return id of the message loaded in memory
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, gribid = _internal.grib_c_new_from_samples(0, samplename)
|
||||
err, msgid = _internal.grib_c_new_from_samples(0, samplename)
|
||||
GRIB_CHECK(err)
|
||||
return gribid
|
||||
return msgid
|
||||
|
||||
|
||||
@require(gribid_src=int)
|
||||
def grib_clone(gribid_src):
|
||||
@require(msgid_src=int)
|
||||
def grib_clone(msgid_src):
|
||||
"""
|
||||
@brief Create a copy of a message.
|
||||
|
||||
Create a copy of a given message (\em gribid_src) resulting in a new
|
||||
message in memory (\em gribid_dest) identical to the original one.
|
||||
Create a copy of a given message (\em msgid_src) resulting in a new
|
||||
message in memory (\em msgid_dest) identical to the original one.
|
||||
|
||||
\b Examples: \ref grib_clone.py "grib_clone.py"
|
||||
|
||||
@param gribid_src id of grib to be cloned
|
||||
@param msgid_src id of message to be cloned
|
||||
@return id of clone
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, newgribid_src = _internal.grib_c_clone(gribid_src, 0)
|
||||
err, newmsgid_src = _internal.grib_c_clone(msgid_src, 0)
|
||||
GRIB_CHECK(err)
|
||||
return newgribid_src
|
||||
return newmsgid_src
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_set_double_array(gribid, key, inarray):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_set_double_array(msgid, key, inarray):
|
||||
"""
|
||||
@brief Set the value of the key to a double array.
|
||||
|
||||
|
@ -854,13 +843,13 @@ def grib_set_double_array(gribid, key, inarray):
|
|||
|
||||
The elements of the input sequence need to be convertible to a double.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@param inarray tuple,list,array,numpy.ndarray
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if with_numpy():
|
||||
GRIB_CHECK(_internal.grib_set_double_ndarray(gribid, key, inarray))
|
||||
GRIB_CHECK(_internal.grib_set_double_ndarray(msgid, key, inarray))
|
||||
else:
|
||||
nval = len(inarray)
|
||||
a = _internal.new_doubleArray(nval)
|
||||
|
@ -870,36 +859,36 @@ def grib_set_double_array(gribid, key, inarray):
|
|||
for i in range(nval):
|
||||
_internal.doubleArray_setitem(a, i, inarray[i])
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_set_real8_array(gribid, key, a, s))
|
||||
GRIB_CHECK(_internal.grib_c_set_real8_array(msgid, key, a, s))
|
||||
|
||||
_internal.delete_doubleArray(a)
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_double_array(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_double_array(msgid, key):
|
||||
"""
|
||||
@brief Get the value of the key as a double array.
|
||||
|
||||
If NumPy is enabled, the double array will be stored in a NumPy ndarray.
|
||||
Otherwise, Python's native array type will be used.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return numpy.ndarray or array
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if with_numpy():
|
||||
nval = grib_get_size(gribid, key)
|
||||
err, result = _internal.grib_get_double_ndarray(gribid, key, nval)
|
||||
nval = grib_get_size(msgid, key)
|
||||
err, result = _internal.grib_get_double_ndarray(msgid, key, nval)
|
||||
GRIB_CHECK(err)
|
||||
return result
|
||||
else:
|
||||
nval = grib_get_size(gribid, key)
|
||||
nval = grib_get_size(msgid, key)
|
||||
a = _internal.new_doubleArray(nval)
|
||||
s = _internal.intp()
|
||||
s.assign(nval)
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_get_real8_array(gribid, key, a, s))
|
||||
GRIB_CHECK(_internal.grib_c_get_real8_array(msgid, key, a, s))
|
||||
|
||||
result = array("d")
|
||||
for i in range(nval):
|
||||
|
@ -909,22 +898,22 @@ def grib_get_double_array(gribid, key):
|
|||
|
||||
return result
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_string_array(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_string_array(msgid, key):
|
||||
"""
|
||||
@brief Get the value of the key as an array of strings.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return numpy.ndarray or array
|
||||
@exception GribInternalError
|
||||
"""
|
||||
nval = grib_get_size(gribid,key)
|
||||
nval = grib_get_size(msgid,key)
|
||||
a = _internal.new_stringArray(nval)
|
||||
s = _internal.sizetp()
|
||||
s.assign(nval)
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_get_string_array(gribid,key,a,s))
|
||||
GRIB_CHECK(_internal.grib_c_get_string_array(msgid,key,a,s))
|
||||
|
||||
result = list()
|
||||
for i in range(nval):
|
||||
|
@ -934,8 +923,8 @@ def grib_get_string_array(gribid, key):
|
|||
|
||||
return result
|
||||
|
||||
@require(gribid=int,key=str)
|
||||
def grib_set_long_array(gribid, key, inarray):
|
||||
@require(msgid=int,key=str)
|
||||
def grib_set_long_array(msgid, key, inarray):
|
||||
"""
|
||||
@brief Set the value of the key to an integer array.
|
||||
|
||||
|
@ -945,13 +934,13 @@ def grib_set_long_array(gribid, key, inarray):
|
|||
|
||||
The elements of the input sequence need to be convertible to an int.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@param inarray tuple,list,python array,numpy array
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if with_numpy():
|
||||
GRIB_CHECK(_internal.grib_set_long_ndarray(gribid, key, inarray))
|
||||
GRIB_CHECK(_internal.grib_set_long_ndarray(msgid, key, inarray))
|
||||
else:
|
||||
nval = len(inarray)
|
||||
a = _internal.new_longArray(nval)
|
||||
|
@ -961,36 +950,36 @@ def grib_set_long_array(gribid, key, inarray):
|
|||
for i in range(nval):
|
||||
_internal.longArray_setitem(a, i, inarray[i])
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_set_long_array(gribid, key, a, s))
|
||||
GRIB_CHECK(_internal.grib_c_set_long_array(msgid, key, a, s))
|
||||
|
||||
_internal.delete_longArray(a)
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_long_array(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_long_array(msgid, key):
|
||||
"""
|
||||
@brief Get the integer array of values for a key from a grib message.
|
||||
|
||||
If NumPy is enabled, the integer array will be stored in a NumPy ndarray.
|
||||
Otherwise, Python's native array type will be used.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return numpy.ndarray or array
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if with_numpy():
|
||||
nval = grib_get_size(gribid, key)
|
||||
err, result = _internal.grib_get_long_ndarray(gribid, key, nval)
|
||||
nval = grib_get_size(msgid, key)
|
||||
err, result = _internal.grib_get_long_ndarray(msgid, key, nval)
|
||||
GRIB_CHECK(err)
|
||||
return result
|
||||
else:
|
||||
nval = grib_get_size(gribid, key)
|
||||
nval = grib_get_size(msgid, key)
|
||||
a = _internal.new_longArray(nval)
|
||||
s = _internal.intp()
|
||||
s.assign(nval)
|
||||
|
||||
GRIB_CHECK(_internal.grib_c_get_long_array(gribid, key, a, s))
|
||||
GRIB_CHECK(_internal.grib_c_get_long_array(msgid, key, a, s))
|
||||
|
||||
result = array("l")
|
||||
for i in range(nval):
|
||||
|
@ -1091,7 +1080,8 @@ def grib_index_release(indexid):
|
|||
@require(indexid=int, key=str)
|
||||
def grib_index_get_size(indexid, key):
|
||||
"""
|
||||
@brief Get the number of distinct values for the index key. The key must belong to the index.
|
||||
@brief Get the number of distinct values for the index key.
|
||||
The key must belong to the index.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
|
@ -1108,7 +1098,8 @@ def grib_index_get_size(indexid, key):
|
|||
@require(indexid=int, key=str)
|
||||
def grib_index_get_long(indexid, key):
|
||||
"""
|
||||
@brief Get the distinct values of the key in argument contained in the index. The key must belong to the index.
|
||||
@brief Get the distinct values of the key in argument contained in the index.
|
||||
The key must belong to the index.
|
||||
|
||||
This function is used when the type of the key was explicitly defined as long or when the native type of the key is long.
|
||||
|
||||
|
@ -1138,7 +1129,8 @@ def grib_index_get_long(indexid, key):
|
|||
|
||||
def grib_index_get_string(indexid, key):
|
||||
"""
|
||||
@brief Get the distinct values of the key in argument contained in the index. The key must belong to the index.
|
||||
@brief Get the distinct values of the key in argument contained in the index.
|
||||
The key must belong to the index.
|
||||
|
||||
This function is used when the type of the key was explicitly defined as string or when the native type of the key is string.
|
||||
|
||||
|
@ -1146,7 +1138,7 @@ def grib_index_get_string(indexid, key):
|
|||
|
||||
@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 return tuple with values of key in index
|
||||
@return tuple with values of key in index
|
||||
@exception GribInternalError
|
||||
"""
|
||||
nval = grib_index_get_size(indexid, key)
|
||||
|
@ -1170,13 +1162,14 @@ def grib_index_get_string(indexid, key):
|
|||
@require(iid=int, key=str)
|
||||
def grib_index_get_double(iid, key):
|
||||
"""
|
||||
@brief Get the distinct values of the key in argument contained in the index. The key must belong to the index.
|
||||
@brief Get the distinct values of the key in argument contained in the index.
|
||||
The key must belong to the index.
|
||||
|
||||
This function is used when the type of the key was explicitly defined as double or when the native type of the key is double.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
@param indexid id of an index created from a file. The index must have been created with the key in argument.
|
||||
@param iid 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
|
||||
@return tuple with values of key in index
|
||||
@exception GribInternalError
|
||||
|
@ -1198,10 +1191,11 @@ def grib_index_get_double(iid, key):
|
|||
return tuple(result)
|
||||
|
||||
|
||||
@require(indexid=int, key=str, val=int)
|
||||
def grib_index_select_long(indexid, key, val):
|
||||
@require(indexid=int, key=str, value=int)
|
||||
def grib_index_select_long(indexid, key, value):
|
||||
"""
|
||||
@brief Select the message subset with key==value. The value is an integer.
|
||||
@brief Select the message subset with key==value.
|
||||
The value is an integer.
|
||||
|
||||
The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.
|
||||
|
||||
|
@ -1212,37 +1206,35 @@ def grib_index_select_long(indexid, key, val):
|
|||
@param value value of the key to select
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_index_select_long(indexid, key, val))
|
||||
GRIB_CHECK(_internal.grib_c_index_select_long(indexid, key, value))
|
||||
|
||||
|
||||
@require(iid=int, key=str, val=float)
|
||||
def grib_index_select_double(iid, key, val):
|
||||
@require(iid=int, key=str, value=float)
|
||||
def grib_index_select_double(iid, key, value):
|
||||
"""
|
||||
@brief Select the message subset with key==value. The value is a double.
|
||||
@brief Select the message subset with key==value.
|
||||
The value is a double.
|
||||
|
||||
The key must have been created with integer type or have integer as native type if the type was not explicitly defined in the index creation.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
@param indexid id of an index created from a file. The index must have been created with the key in argument.
|
||||
@param iid id of an index created from a file. The index must have been created with the key in argument.
|
||||
@param key key to be selected
|
||||
@param value value of the key to select
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_index_select_real8(iid, key, val))
|
||||
GRIB_CHECK(_internal.grib_c_index_select_real8(iid, key, value))
|
||||
|
||||
|
||||
@require(indexid=int, key=str, val=str)
|
||||
def grib_index_select_string(indexid, key, val):
|
||||
@require(indexid=int, key=str, value=str)
|
||||
def grib_index_select_string(indexid, key, value):
|
||||
"""
|
||||
@brief Select the message subset with key==value. The value is a integer.
|
||||
@brief Select the message subset with key==value.
|
||||
The value is an integer.
|
||||
|
||||
The key must have been created with string type or have string as native type if the type was not explicitly defined in the index creation.
|
||||
|
||||
In case of error, if the status parameter (optional) is not given, the program will
|
||||
exit with an error message.\n Otherwise the error message can be
|
||||
gathered with @ref grib_get_error_string.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
@param indexid id of an index created from a file. The index must have been created with the key in argument.
|
||||
|
@ -1250,7 +1242,7 @@ def grib_index_select_string(indexid, key, val):
|
|||
@param value value of the key to select
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_index_select_string(indexid, key, val))
|
||||
GRIB_CHECK(_internal.grib_c_index_select_string(indexid, key, value))
|
||||
|
||||
|
||||
def grib_new_from_index(indexid):
|
||||
|
@ -1260,12 +1252,12 @@ def grib_new_from_index(indexid):
|
|||
All the keys belonging to the index must be selected before calling this function.
|
||||
Successive calls to this function will return all the handles compatible with the constraints defined selecting the values of the index keys.
|
||||
|
||||
The message can be accessed through its gribid and it will be available until @ref grib_release is called.
|
||||
The message can be accessed through its gribid and will be available until @ref grib_release is called.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
@param indexid id of an index created from a file.
|
||||
@return id of the grib loaded in memory or None if end of index
|
||||
@return id of the message loaded in memory or None if end of index
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, gribid = _internal.grib_c_new_from_index(indexid, 0)
|
||||
|
@ -1279,30 +1271,30 @@ def grib_new_from_index(indexid):
|
|||
return gribid
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
def grib_get_message_size(gribid):
|
||||
@require(msgid=int)
|
||||
def grib_get_message_size(msgid):
|
||||
"""
|
||||
@brief Get the size of a coded message.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@return size in bytes of the message
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_get_message_size(gribid)
|
||||
err, value = _internal.grib_c_get_message_size(msgid)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
def grib_get_message_offset(gribid):
|
||||
@require(msgid=int)
|
||||
def grib_get_message_offset(msgid):
|
||||
"""
|
||||
@brief Get the offset of a coded message.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@return offset in bytes of the message
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_get_message_offset(gribid)
|
||||
err, value = _internal.grib_c_get_message_offset(msgid)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
@ -1386,8 +1378,8 @@ def grib_get_elements(gribid, key, indexes):
|
|||
return result
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_set_missing(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_set_missing(msgid, key):
|
||||
"""
|
||||
@brief Set as missing the value for a key in a grib message.
|
||||
|
||||
|
@ -1396,11 +1388,11 @@ def grib_set_missing(gribid, key):
|
|||
|
||||
\b Examples: \ref set_missing.py "set_missing.py"
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@exception GribInternalError
|
||||
"""
|
||||
GRIB_CHECK(_internal.grib_c_set_missing(gribid, key))
|
||||
GRIB_CHECK(_internal.grib_c_set_missing(msgid, key))
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
|
@ -1442,8 +1434,8 @@ def grib_set_key_vals(gribid, key_vals):
|
|||
GRIB_CHECK(_internal.grib_c_set_key_vals(gribid, key_vals_str))
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_is_missing(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_is_missing(msgid, key):
|
||||
"""
|
||||
@brief Check if the value of a key is MISSING.
|
||||
|
||||
|
@ -1452,26 +1444,26 @@ def grib_is_missing(gribid, key):
|
|||
The value of a key MISSING has a special significance and that can be read about
|
||||
in the WMO documentation.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return 0->not missing, 1->missing
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_is_missing(gribid, key)
|
||||
err, value = _internal.grib_c_is_missing(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_is_defined(gribid, key):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_is_defined(msgid, key):
|
||||
"""
|
||||
@brief Check if a key is defined (exists)
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key key name
|
||||
@return 0->not defined, 1->defined
|
||||
@exception GribInternalError
|
||||
"""
|
||||
err, value = _internal.grib_c_is_defined(gribid, key)
|
||||
err, value = _internal.grib_c_is_defined(msgid, key)
|
||||
GRIB_CHECK(err)
|
||||
return value
|
||||
|
||||
|
@ -1545,8 +1537,8 @@ def grib_get_native_type(gribid, key):
|
|||
return None
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get(gribid, key, ktype=None):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get(msgid, key, ktype=None):
|
||||
"""
|
||||
@brief Get the value of a key in a grib message.
|
||||
|
||||
|
@ -1554,34 +1546,34 @@ def grib_get(gribid, key, ktype=None):
|
|||
The type of value returned can be forced by using the type argument of the
|
||||
function. The type argument can be int, float or str.
|
||||
|
||||
The \em gribid references a grib message loaded in memory.
|
||||
The \em msgid references a grib message loaded in memory.
|
||||
|
||||
\b Examples: \ref grib_get_keys.py "grib_get_keys.py", \ref print_data.py "print_data.py"
|
||||
|
||||
@see grib_new_from_file, grib_release, grib_set
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the grib loaded in memory
|
||||
@param key key name
|
||||
@param ktype the type we want the output in (int, float or str), native type if not specified
|
||||
@return scalar value of key as int, float or str
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if ktype is None:
|
||||
ktype = grib_get_native_type(gribid, key)
|
||||
ktype = grib_get_native_type(msgid, key)
|
||||
|
||||
result = None
|
||||
if ktype is int:
|
||||
result = grib_get_long(gribid, key)
|
||||
result = grib_get_long(msgid, key)
|
||||
elif ktype is float:
|
||||
result = grib_get_double(gribid, key)
|
||||
result = grib_get_double(msgid, key)
|
||||
elif ktype is str:
|
||||
result = grib_get_string(gribid, key)
|
||||
result = grib_get_string(msgid, key)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_get_array(gribid, key, ktype=None):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_get_array(msgid, key, ktype=None):
|
||||
"""
|
||||
@brief Get the contents of an array key.
|
||||
|
||||
|
@ -1590,22 +1582,22 @@ def grib_get_array(gribid, key, ktype=None):
|
|||
The type of value returned can be forced by using the type argument of the function.
|
||||
The type argument can be int or float.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the message loaded in memory
|
||||
@param key the key to get the value for
|
||||
@param ktype the type we want the output in (can be int or float), native type if not specified
|
||||
@return numpy.ndarray or array
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if ktype is None:
|
||||
ktype = grib_get_native_type(gribid, key)
|
||||
ktype = grib_get_native_type(msgid, key)
|
||||
|
||||
result = None
|
||||
if ktype is int:
|
||||
result = grib_get_long_array(gribid, key)
|
||||
result = grib_get_long_array(msgid, key)
|
||||
elif ktype is float:
|
||||
result = grib_get_double_array(gribid, key)
|
||||
result = grib_get_double_array(msgid, key)
|
||||
elif ktype is str:
|
||||
result = grib_get_string_array(gribid, key)
|
||||
result = grib_get_string_array(msgid, key)
|
||||
|
||||
return result
|
||||
|
||||
|
@ -1647,8 +1639,8 @@ def grib_set_values(gribid, values):
|
|||
grib_set_double_array(gribid, "values", values)
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_set(gribid, key, value):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_set(msgid, key, value):
|
||||
"""
|
||||
@brief Set the value for a scalar key in a grib message.
|
||||
|
||||
|
@ -1658,23 +1650,23 @@ def grib_set(gribid, key, value):
|
|||
|
||||
@see grib_new_from_file, grib_release, grib_get
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the grib loaded in memory
|
||||
@param key key name
|
||||
@param value scalar value to set for key
|
||||
@exception GribInternalError
|
||||
"""
|
||||
if isinstance(value, int):
|
||||
grib_set_long(gribid, key, value)
|
||||
grib_set_long(msgid, key, value)
|
||||
elif isinstance(value, float):
|
||||
grib_set_double(gribid, key, value)
|
||||
grib_set_double(msgid, key, value)
|
||||
elif isinstance(value, str):
|
||||
grib_set_string(gribid, key, value)
|
||||
grib_set_string(msgid, key, value)
|
||||
else:
|
||||
raise GribInternalError("Invalid type of value when setting key '%s'." % key)
|
||||
|
||||
|
||||
@require(gribid=int, key=str)
|
||||
def grib_set_array(gribid, key, value):
|
||||
@require(msgid=int, key=str)
|
||||
def grib_set_array(msgid, key, value):
|
||||
"""
|
||||
@brief Set the value for an array key in a grib message.
|
||||
|
||||
|
@ -1688,7 +1680,7 @@ def grib_set_array(gribid, key, value):
|
|||
before extracting its data and length. This is possible as NumPy
|
||||
allows the construction of arrays from arbitrary python sequences.
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@param msgid id of the grib loaded in memory
|
||||
@param key key name
|
||||
@param value array value to set for key
|
||||
@exception GribInternalError
|
||||
|
@ -1701,9 +1693,9 @@ def grib_set_array(gribid, key, value):
|
|||
pass
|
||||
|
||||
if isinstance(val0, float):
|
||||
grib_set_double_array(gribid, key, value)
|
||||
grib_set_double_array(msgid, key, value)
|
||||
elif isinstance(val0, int):
|
||||
grib_set_long_array(gribid, key, value)
|
||||
grib_set_long_array(msgid, key, value)
|
||||
else:
|
||||
raise GribInternalError("Invalid type of value when setting key '%s'." % key)
|
||||
|
||||
|
@ -1711,12 +1703,14 @@ def grib_set_array(gribid, key, value):
|
|||
@require(indexid=int, key=str)
|
||||
def grib_index_get(indexid, key, ktype=str):
|
||||
"""
|
||||
@brief Get the distinct values of an index key. The key must belong to the index.
|
||||
@brief Get the distinct values of an index key.
|
||||
The key must belong to the index.
|
||||
|
||||
\b Examples: \ref grib_index.py "grib_index.py"
|
||||
|
||||
@param indexid id of an index created from a file. The index must have been created on the given key.
|
||||
@param key key for which the values are returned
|
||||
@param ktype the type we want the output in (int, float or str), str if not specified
|
||||
@return array of values
|
||||
@exception GribInternalError
|
||||
"""
|
||||
|
@ -1835,20 +1829,20 @@ def grib_get_api_version():
|
|||
__version__ = grib_get_api_version()
|
||||
|
||||
|
||||
@require(gribid=int)
|
||||
def grib_get_message(gribid):
|
||||
@require(msgid=int)
|
||||
def grib_get_message(msgid):
|
||||
"""
|
||||
@brief Get the binary message.
|
||||
|
||||
Returns the binary string message associated with the grib identified by gribid.
|
||||
Returns the binary string message associated with the grib identified by msgid.
|
||||
|
||||
@see grib_new_from_message
|
||||
|
||||
@param gribid id of the grib loaded in memory
|
||||
@return binary string message associated with gribid
|
||||
@param msgid id of the grib loaded in memory
|
||||
@return binary string message associated with msgid
|
||||
@exception GribInternalError
|
||||
"""
|
||||
error, message = _internal.grib_c_get_message(gribid)
|
||||
error, message = _internal.grib_c_get_message(msgid)
|
||||
GRIB_CHECK(error)
|
||||
return message
|
||||
|
||||
|
@ -1863,12 +1857,12 @@ def grib_new_from_message(message):
|
|||
@see grib_get_message
|
||||
|
||||
@param message binary string message
|
||||
@return gribid of the newly created grib message
|
||||
@return msgid of the newly created grib message
|
||||
@exception GribInternalError
|
||||
"""
|
||||
error, gribid = _internal.grib_c_new_from_message(0, message, len(message))
|
||||
error, msgid = _internal.grib_c_new_from_message(0, message, len(message))
|
||||
GRIB_CHECK(error)
|
||||
return gribid
|
||||
return msgid
|
||||
|
||||
|
||||
@require(defs_path=str)
|
||||
|
|
Loading…
Reference in New Issue