一、环境准备

(1)、python3环境

(3)、wgirb2工具(用于读取grib2文件),下载地址:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2

二、环境测试

工具下好了,windows下无需安装,怎么看是否能用呢?很简答,以wgrib为例,下载好了之后在我的文件夹下是这样的:

可以看到里面有一个应用程序,那么从命令行进入该文件夹下,运行命令:wgrib.exe就可以查看一些使用帮助了,如下图所示

可以看到很多提示信息,也就是教我们如何使用这个工具。wgrib2也是同样的查看。

接下来就可以使用python来读取grib1和grib2数据了(其实就是在python里面调用cmd命令而已)

三、读取数据

grib1和grib2数据我了解不多,说错的地方还请大家指正,它们是两种气象数据,在我看来,它相当于一个大仓库,里面是一个个“小房间”,每个房间都有编号,每个“小房间”存放的是一个气象变量,例如温度、湿度、压力等等,那么如何读取我们需要的气候变量呢?下面分别以grib1和grib2数据为例,来读取温度变量的值。二者读取方式相似,只是使用的工具不同。

刚刚说了,每一个“小房间”存放的是一个气象变量且“小房间”有编号,那么我们有2中方法进行读取,一种是根据“小房间”编号进行读取,另一种是根据变量名称进行匹配读取,一般来说后者使用的较多,毕竟使用名称是肯定错不了的。下面进行分别介绍。

1、按编号读取

既然要根据编号读取,那么首先要知道编号才行,还好wgrib工具中也提供了这和功能。查看“小房间”编号的代码如下:

import os

# 将当前目录转到wgrib工具目录

os.chdir("G:\mygrib\wgrib1")

# 执行cmd命令,查看各个“小房间”具体信息

os.system(r"wgrib G:\mete_data\W_NAFP_C_ECMF_20170713190330_P_C3E07131200071312001 -v")

运行得到的结果如下图所示:

如上图所示,我们可以得到很多有用的信息,例如:2m高的温度变量所在的“小房间”编号是82,接下来就可以根据这个编号82来进行读取2m温度变量,读取代码如下:

import os

# 将当前目录转到wgrib工具目录

os.chdir("G:\mygrib\wgrib1")

# 执行cmd命令,查看各个“小房间”具体信息

# os.system(r"wgrib G:\mete_data\W_NAFP_C_ECMF_20170713190330_P_C3E07131200071312001 -v")

# 知道了编号82,那么就可以根据这个编号把数据读到一个txt里面,注意:wgirb工具不支持读到csv文件,而wgrib2工具支持

os.system("wgrib G:\mete_data\W_NAFP_C_ECMF_20170713190330_P_C3E07131200071312001 -d 82 -h -text -o 2m_tmp.txt")

读取结果如下图所示:

除此之外,wgrib工具还支持“变量名称匹配读取”,在这里就不介绍了,可以看下一部分的利用wgrib2工具进行“变量名称匹配读取”二者是类似的。

2、按名称匹配读取

一般来说,用名称匹配读取这个方法的占多数,因为虽然grib文件可以看做“仓库”,一个个气象变量可以看做“小房间”,但是不同的grib文件内部的“小房间”分布可能是不一样的,这样的话同一气候变量的编号也就不确定,无法单靠一个编号批量读取很多文件。而利用名称匹配读取就不存在这个问题,因为气象变量的名称是不会变的。以读取grib2文件里的2m处的温度为例,这里使用wgrib2工具,wgrib2工具功能更强大,可以直接读出为csv文件,代码如下:

import os

# 将当前目录转到wgrib2工具目录

os.chdir("D:\mydownload\wgrib2")

# 进行气象变量名称匹配,读取2m处温度这个气象变量到2m_tmp.csv文件中

os.system("wgrib2 G:\mete_data\Z_NAFP_C_BABJ_20170709000000_P_CNPC-T639-GMFS-HNEHE-03900.grib2 -match ':TMP:2 m' -csv 2m_tmp.csv")

读取结果如下图所示:

csv格式的数据更便于我们处理,倒数第一列就是温度值。

同理,其他的气候变量同样可以使用匹配的方式读取出来,只是改变下代码-match后面的气象变量即可,大家可能会问这些气象变量的简写如何得知,这些都是固定的,目前为止我只用了温度和降水,其他的我也不知道

,有需要的话可以去查一查。

结束

这两个工具的功能还有很多,目前我用到的只是一丢丢,有其他需要的童鞋可以使用wgrib.exe和wgrib2.exe命令来进行查看帮助,发掘更多功能。在linux下同样可以使用这两个工具进行读取,只是在安装和命令上有一点小小的差异,大家感兴趣的可以一起讨论下

,水平有限,肯定有写的不对的地方,欢迎指正!

python批量读取grib_windows python读取grib2数据相关推荐

  1. python 数据导入mysql_用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同Current database: pyth ...

  2. python批量导入mysql_用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...

  3. Python批量采集亚马逊商品数据 (含完整源代码)

    前言 嗨喽 ! 大家好吖,这里是魔王~ 亚马逊公司,是美国最大的一家网络电子商务公司,位于华盛顿州的西雅图 是网络上最早开始经营电子商务的公司之一,亚马逊成立于1994年 今天教大家用Python批量 ...

  4. 用Python批量把EXCEL表格中的数据提交到网页上

    因为工作的需要,要在网页上添加很多学员的信息,但是公司审计不让直接导入数据库,而且开发也没有涉及批量上传的功能,只好自己动手用Python写了一个批量创建学生信息的程序. 实现思路: 我们首先看我们需 ...

  5. python批量提取汇总excel指定列数据(一列)

    系列文章目录 文章目录 系列文章目录 前言 一.问题描述 二.提取方法 总结 前言 一.问题描述 有多个excel数据,其中每个文件内容格式相同!! 我们需要提取每个文件里面指定的一列(黄色列)数据, ...

  6. python批量合并excel固定单元格数据

    目的:相同格式的excel表,需要合并数据,手动输入太费事费力 缺点:读取大批量数据运行较慢(>10 min),写入多个表格更新行列较麻烦 import openpyxl from win32c ...

  7. Python批量更改txt文本每行数据

    # with open('./5k.txt') as f: # lines = f.readlines() # 整行读取 f = open('./trainvalno5k.txt') lines = ...

  8. Python 批量采集 shopee 虾皮商品详情数据、多站点整站实时采集

    一.如何通过手动方式查看 shopee 商品详情页面的数据 1.Shopee 商品详情 API 接口(item_get - 获得 Shopee 商品详情接口),ShopeeAPI 接口代码对接可以获取 ...

  9. python批量生成,用python批量生成简单的xml文档

    最近生成训练数据时,给一批无效的背景图片生成对应的xml文档,我用python写了一个简单的批量生成xml文档的demo,遇见了意外的小问题,记录一下. 报错问题为:ImportError: No m ...

最新文章

  1. 你想要的生物信息知识全在这——生信宝典文章目录
  2. MVC 区域内默认控制器不能访问(Multiple types were found that match the controller named ‘Index')...
  3. Daily Scrum 10.26
  4. 为 raspberrypi 开发内核模块
  5. 第二阶段团队绩效评分
  6. Path does not chain with any of the trust anchors
  7. Follow My Logic 1048 PKU
  8. 钢琴家软件里曲谱的数据为什么更新不了_企业信息化为什么到现在还是做不好...
  9. java接口方法默认权限_java 接口内定义方法的权限是什么?
  10. mssql on linux 安装指导
  11. Java数据结构--HashTable(拉链法)
  12. 【转】掌握Azure订阅的关键概念和术语
  13. mybatis3 添加ehcache支持
  14. 59s计时器C语言程序步骤详解,51单片机00-59秒计时器 0-59s Timer
  15. SpringCloud学习之SpringCloudStream集成kafka
  16. Button switch..case 语句监听按钮点击的方法。。下面这方法好。
  17. NYOJ 822 画图
  18. c语言题库及详解答案 免费下载,C语言最新完整版本题库(带详解答案).pdf
  19. Idea插件开发-开发自己的第一款idea插件
  20. 中国象棋ai人工智能(网页版)

热门文章

  1. python简介怎么写-python怎么写函数
  2. python编程培训多少钱-python培训费用多少?
  3. 只会python好找工作吗-转行去培训班学Python好找工作吗?老男孩教育
  4. 零编程基础学python-零编程基础怎么自学python?
  5. python怎么读取文件-Python中怎么读写文件
  6. python入门练习题-python入门练习题2
  7. python爬虫教程视频-python爬虫(入门教程、视频教程)
  8. rest-framework:频率控制
  9. HDU2019 数列有序
  10. idea窗口下方滚动条不明显设置