交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • python安装读取grib库总结(推荐)

    无论安装以下哪种库,强烈建议在新环境下安装,之前在base环境下安装各种报错!!!如何在新环境下安装可参见我之前的总结或网上其他文章。

    不推荐方法

    1.pygrib
    pygrib库基于python2.4+、numpy、pyproj、Jasper和GRIB_API,依赖库基于Linux或MacOS,GRIB_API将于2020年6月30日正式被ecCodes取代。因此,不推荐使用pygrib库。
    2.GDAL
    可于window下安装,安装简单,但是需借助wgrib2查看grib变量所在通道,因此不推荐。

    推荐方法

    xarray搭配cfgrib
    优点:Linux windows MacOS均可用,安装较简单,强烈建议在新环境下安装各所需库
    安装步骤:

    1,新建新环境
    conda creat -n cfgrib_env python=3.7.0

    2.启动虚拟环境
    source activate cfgrib_env

    3.安装spyder xarray eccodes cfgrib及其他所需依赖库
    ps:可用pip或conda安装,eccodes无需配置(有些地方写需要配置路径)

    4.在新环境下启动spyder(base或其他环境下启动的spyder无效)
    切换到安装路径并执行:~/anaconda3/envs/cfgrib_env/bin$ ./spyder

    5.写入代码

    import xarray as xr
    import cfgrib
    
    ds = xr.open_dataset('/1.grib2',engine='cfgrib')

    提示错误:

    DatasetBuildError: multiple values for unique key, try re-open the file with one of:
      filter_by_keys={'typeOfLevel': 'unknown'}
      filter_by_keys={'typeOfLevel': 'surface'}
      filter_by_keys={'typeOfLevel': 'isobaricInhPa'}
      filter_by_keys={'typeOfLevel': 'meanSea'}
      filter_by_keys={'typeOfLevel': 'depthBelowLandLayer'}
      filter_by_keys={'typeOfLevel': 'heightAboveGround'}
      filter_by_keys={'typeOfLevel': 'heightAboveGroundLayer'}
      filter_by_keys={'typeOfLevel': 'tropopause'}
      filter_by_keys={'typeOfLevel': 'maxWind'}
      filter_by_keys={'typeOfLevel': 'heightAboveSea'}
      filter_by_keys={'typeOfLevel': 'isothermZero'}
      filter_by_keys={'typeOfLevel': 'pressureFromGroundLayer'}
      filter_by_keys={'typeOfLevel': 'sigmaLayer'}
      filter_by_keys={'typeOfLevel': 'sigma'}
      filter_by_keys={'typeOfLevel': 'potentialVorticity'}

    莫慌!!!
    这是因为目前cfgrib库无法同时读取多个typeOfLevel,因此我们只需要根据提示筛选我们需要的数据就行了。原程序添加所需数据为:

    ds = xr.open_dataset('/1.grib2',engine='cfgrib',backend_kwargs=
    {'filter_by_keys':
    {
    'typeOfLevel': 'surface'
    }
    }
    )

    所需变量为:ds.变量名

    折腾了好几天,做其他事情都心不在焉,搞出来一身轻~~~

    总结

    到此这篇关于python安装读取grib库总结的文章就介绍到这了,更多相关python安装读取grib库内容请搜索北冥有鱼以前的文章或继续浏览下面的相关文章希望大家以后多多支持北冥有鱼!


    广而告之:
    热门推荐:
    Laravel5.1 框架数据库操作DB运行原生SQL的方法分析

    本文实例讲述了Laravel5.1 框架数据库操作DB运行原生SQL的方法。分享给大家供大家参考,具体如下: Laravel操作数据库有三种:DB原生SQL、构建器、Model。这三种依情况而决定使用哪种更合适。 那么今儿咱就从DB原生SQL说起: 1 用DB门面原生SQL语句操作 用DB门面操作的话呢 无···

    angular过滤器实现排序功能

    本文实例为大家分享了angular过滤器排序的具体代码,供大家参考,具体内容如下 首先定义一个json文件:   然后写HTML文件: <div id="box"> <!--第一个下拉框--> <select ng-model="a"> <option value="age">按照年龄排序&···

    详解nodeJS之路径PATH模块

    前面的话 path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块。本文将详细介绍path模块 路径组成 【path.dirname(p)】 返回路径p所在的目录 var path = require('path'); console.log(path.dirname('/foo/bar/baz/asdf/a.txt')); // /f···

    JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)

    本文实例讲述了JS实现iframe编辑器光标位置插入内容的方法。分享给大家供大家参考,具体如下: <html> <iframe id="x" name="x"></iframe> <input type="button" onclick="t()" value="test"> <input type="button" onclick="frames['x'].location···

    jQuery如何防止Ajax重复提交

    首先说说防止重复点击提交是什么意思。   我们在访问有的网站,输入表单完成以后,单击提交按钮进行提交以后,提交按钮就会变为灰色,用户不能再单击第二次,直到重新加载页面或者跳转。这样,可以一定程度上防止用户重复提交导致应用程序上逻辑错误。   不妨引深来看,它···

    基于jquery的9行js轻松实现tab控件示例

    复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="../js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> /** * 考虑到tab和pane有可能被动···

    在页面中引入js的两种方法(推荐)

    在页面中引入js有两种基本方式:在页面中嵌入js、引用外部js文件。 一、在页面中嵌入js 这是在页面使用js最简单的方式了,一般我在写个小测试的情况下会用这种方式。 把script元素写在</body>前面,script元素的内容就是js代码。像这样: <script> // 在这里写js ···

    深入浅析php中sprintf与printf函数的用法及区别

    PHP sprintf() 函数 把百分号(%)符号替换成一个作为参数进行传递的变量: <?php $number = 2; $str = "Shanghai"; $txt = sprintf("There are %u million cars in %s.",$number,$str); echo $txt; ?> 定义和用法 sprintf() 函数把格式化的字符串写入变量中···

    jQuery实现自动滚动到页面顶端的方法

    本文实例讲述了jQuery实现自动滚动到页面顶端的方法。分享给大家供大家参考。具体实现方法如下: $(".scroll").click(function(event) { //prevent the default action for the click event event.preventDefault(); //get the full url - like mysitecom/index.htm#hom···

    javascript事件捕获机制【深入分析IE和DOM中的事件模型】

    本文实例分析了javascript事件捕获机制。分享给大家供大家参考,具体如下: 1.什么是事件冒泡? 在排序算法中,我们学过冒泡排序法,所谓冒泡就是让底层的东西浮出水面,对于事件冒泡也同样是如此, 下面我们来看一个例子来说明什么是事件冒泡。 <div> <button>···