title: 解码

weight: 4

codes_get

  1. value = codes_get (gid, key, ktype=None)

按原生格式返回 gid 指向的消息中 key 的值。可以使用参数 ktype 指定返回类型(int,str 或 float)

codes_get_array

  1. values = codes_get_array (gid, key, ktype=None)

以 NumPy ndarry 或 Python 数组的格式返回数组 key 的内容,ktype 只能是 int 或 float。

codes_get_values

  1. values = codes_get_values (gid)

返回以 1 维数组形式返回数据值。

异常

出错时,会抛出 CodesInternalError 异常,包含 C API 接口的错误信息。

示例:

  1. from __future__ import print_function
  2. import click
  3. import eccodes
  4. @click.command()
  5. @click.argument('file_path')
  6. def cli(file_path):
  7. with open(file_path, 'rb') as f:
  8. handle = eccodes.codes_grib_new_from_file(f, headers_only=False)
  9. while handle is not None:
  10. date = eccodes.codes_get(handle, "dataDate")
  11. type_of_level = eccodes.codes_get(handle, "typeOfLevel")
  12. level = eccodes.codes_get(handle, "level")
  13. values = eccodes.codes_get_array(handle, "values")
  14. value = values[-1]
  15. values_array = eccodes.codes_get_values(handle, "values")
  16. value_array = values[-1]
  17. print(date, type_of_level, level, value)
  18. eccodes.codes_release(handle)
  19. handle = eccodes.codes_grib_new_from_file(f, headers_only=False)
  20. if __name__ == "__main__":
  21. cli()

从上面代码看,我使用的版本 2.6.0 中,codes_get_arraycodes_get_values 返回数据值都是 ndarry 类型。

解码 - 图1