解析grib格式数据库eccodes的安装

  • 一、说明
  • 二、安装eccodes库
  • 三、测试代码

一、说明

1、环境:在rethat7.4下使用eccodes-2.8.0解析grib数据。
2、eccodes下载地址:https://confluence.ecmwf.int//display/ECC/Releases
3、需要cmake编译安装,cmake下载地址:https://cmake.org/download/

二、安装eccodes库

1、解压cmake
gunzip cmake-3.12.0.tar.gz
tar -xvf cmake-3.12.0.tar

2、安装cmake
cd cmake-3.12.0/
./bootstrap
make
make install
如果不安装cmake的话,会提示下面的错误:

3、解压eccodes库
gunzip eccodes-2.8.0-Source.tar.gz
tar -xvf eccodes-2.8.0-Source.tar

4、安装eccodes库
cd eccodes-2.8.0-Source/
mkdir build
cd build
cmake …/…/eccodes-2.8.0-Source -DCMAKE_INSTALL_PREFIX=/usr/local/lib
如果提示找不到libgfortran.so.3链接库,可以使用下面的命令:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lib …/…/eccodes-2.8.0-Source -DENABLE_FORTRAN=OFF

编译后正确的截图如下:

然后 make make install 即可

三、测试代码

测试eccodes库的使用,使用的是官方的例子

/** Copyright 2005-2018 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.*//** C Implementation: grib_get_data** Description: how to get lat/lon/values from a GRIB message**/
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include "eccodes.h"using namespace std;int main (int argc, char **argv)
{int err = 0;size_t i = 0;FILE *in = NULL;const char *filename = "/mnt/hgfs/winShareUbuntu/reduced_latlon_surface.grib1";codes_handle *h = NULL;long numberOfPoints = 0;const double missing = 9999.0;double *lats, *lons, *values;       /* arrays */in = fopen (filename, "r");if (!in) {printf ("ERROR: unable to open input file %s\n", filename);return 1;}/* create new handle from a message in a file */h = codes_handle_new_from_file (0, in, PRODUCT_GRIB, &err);if (h == NULL) {printf ("Error: unable to create handle from file %s\n", filename);return 1;}CODES_CHECK (codes_get_long (h, "numberOfPoints", &numberOfPoints), 0);CODES_CHECK (codes_set_double (h, "missingValue", missing), 0);lats = (double *) malloc (numberOfPoints * sizeof (double));if (!lats) {printf ("unable to allocate %ld bytes\n", (long) (numberOfPoints * sizeof (double)));return 1;}lons = (double *) malloc (numberOfPoints * sizeof (double));if (!lons) {printf ("unable to allocate %ld bytes\n", (long) (numberOfPoints * sizeof (double)));free (lats);return 1;}values = (double *) malloc (numberOfPoints * sizeof (double));if (!values) {printf ("unable to allocate %ld bytes\n", (long) (numberOfPoints * sizeof (double)));free (lats);free (lons);return 1;}CODES_CHECK (codes_grib_get_data (h, lats, lons, values), 0);for (i = 0; i < numberOfPoints; ++i) {if (values[i] != missing) {printf ("%f %f %f\n", lats[i], lons[i], values[i]);}}free (lats);free (lons);free (values);codes_handle_delete (h);fclose (in);return 0;
}

运行的结果截图:

说明:最近才开始学习ecodes库,也在继续学习中,待出成果再继续分享。。。

解析grib格式数据库eccodes的安装相关推荐

  1. 读取grib格式的小工具,在linux中的安装

    @1.介绍: grib文件包括二种格式分别为: grib1格式和grib2格式 请看链接: http://en.wikipedia.org/wiki/GRIB 中文版,请看"grib格式转换 ...

  2. grib1文件解析 python_python读取grib格式数据

    python 读取grib/grib2格式数据 一般利用NCL(NCAR Command Language)读取.利用Python语言的pygrib库也可以读取grib/grib2格式数据 grib/ ...

  3. Hadoop学习笔记(16)Hive的基本概念、Hive的下载与安装、MySQL数据库下载与安装

    一.Hive基本概念 1.Hive简介 Hive是一个基于hadoop的开源数据仓库工具,用于存储和处理海量结构化数据.它把海量数据存储于hadoop文件系统,而不是数据库,但提供了一套类数据库的数据 ...

  4. Android解析xml的方法,Android中解析XML格式数据的方法

    XML介绍:Extensible Markup Language,即可扩展标记语言 一.概述 Android中解析XML格式数据大致有三种方法: SAX DOM PULL 二.详解 2.1 SAX S ...

  5. 卸载oracle10g服务端,oracle10g数据库服务器的安装与卸载.ppt

    <oracle10g数据库服务器的安装与卸载.ppt>由会员分享,可在线阅读,更多相关<oracle10g数据库服务器的安装与卸载.ppt(40页珍藏版)>请在装配图网上搜索. ...

  6. python读取grib2数据_python2 解析 Grib/Grib2数据

    python2 解析 Grib/Grib2数据 sudoapt-get installgfortran cmake zlib1g-dev libpng-dev jasper libjpeg-dev l ...

  7. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

  8. java解析sql查询字段_sql解析json格式字段 如何获取json中某个字段的值?

    java将json数据解析为sql语句?小编给你倒一杯热水.可你惦记着其他饮料,所以你将它放置一旁.等你想起那杯水时,可惜它已经变得冰冷刺骨. 图片中是json数据,每个数据的开头都有表名称,操作类型 ...

  9. cjson 对象是json数组型结构体_C语言 - cJSON解析特定格式 含有数组array类型的数据...

    在ESP32中使用了cJSON库,发现很好用.最近服务器端的JSON格式越来越多样,还是有些注意点,需要做下笔记记录下来. cJSON *MAC_arry = cJSON_GetObjectItem( ...

最新文章

  1. python下载图片
  2. LeetCode——树:递归
  3. 三个变量中怎么找出中间值_scratch图形化编程基础练习-变量交换
  4. Extjs formpanel加载数据的两种方式
  5. Java学习(01-10天, 基本语法)
  6. 从本科到研究生,看大疆工程师给你定制的机器人学习计划
  7. 训练集,验证集,测试集
  8. 机器学习教程 二.在股票上的回归预测
  9. MFC ScreenToClient坐标转换错误
  10. Iframe中,弹出层屏幕垂直居中
  11. Matlab 并行代码
  12. 轻轻松松背单词软件测试,完美单词王app
  13. 揭密Oracle之七种武器之三:破译古老的谜题---共享CBC Latch的秘密
  14. 2012文件服务器 读写日志,管理用户访问日志记录记录
  15. 2022年海外有哪些直播带货平台?直播带货要怎么做?
  16. python numpy 多条件筛选
  17. 消费者和生产者问题,管程法和信号灯法
  18. 关闭LINUX报警声
  19. 可以直接在QQ上直接提取图片的文字啦
  20. BZOJ 3039 玉蟾宫 最大子矩阵 算♂法②

热门文章

  1. 红米K50配置出炉,红米旗舰对小米有何影响?
  2. mysql磁盘阵列部署_部署磁盘阵列
  3. pxe高效批量网络装机--手把手教学
  4. ShaderJoy —— 烟花爆炸特效【GLSL】
  5. @Select注解动态sql语句
  6. python中seaborn是什么_Python数据分析之seaborn常用方法
  7. houdini环境变量服务器文件读不了,Windows下在普通命令行窗口里初始化Houdini环境...
  8. 分析1300万起案件:洛杉矶警局如何用大数据预测犯罪?
  9. App测试分类总结及方法
  10. 【python】opencv教程CV2模块——图片处理,HSV、色调、亮度调节