前期准备

1、python(我用的3.7.1,其他版本是一样的),需要的python的包:os;

需要的其他东西:wgrib2,下载地址(推荐IE浏览器):可以自行去选择对应的版本

我用的是windows,因此我下载的windows 64下面的。点进去里面东西很多,具体要下哪几个呢?

当然,还有个很简单的方法,你可以先下载这个wgrib2的exe应用程序,然后双击,他会提示你还差什么东西,根据他的提示你一个一个一个安装就可以了。按照他的提示我安装了5个dll文件。你们也可以直接安装这五个就够了。只要你下载了然后点进去不报错就说明成功了。

wgrib2应该怎么用?

进入python编译器里面,导入os包,然后第一步将工作目录调至wgrib2的文件夹里面。因为等会我们会用到他(wgrib2)。

下面的代码是使用这个的一个例子,我们可以看到通过这个程序指向我们的一个文件,执行的操作是-v,这个是将fnl文件里面的东西列条列出来。我把它复制到了文本框里面,就是下面这样:

os.system(r"wgrib2 H:\\fnl_chengdu\\test\\fnl_20170320_06_00.grib2 -v")1

wgrib2还有哪些功能比较好用(可能只是对于我)

通过上面的一个例子应该大家都能知道他的一个大概用法,对于我来说,因为我对于这个的话可能更需要的就是单个数据,因此我推荐的几个功能:

-d 可以定位到上面对应的序号,这里不能活成是层,但是可以当成层来理解。比如上面的1代表的是第一层是风速的一个分量,以此类推。

-csv 这个一看大家应该都知道是干嘛了,可以用它把数据提取到csv文件中。但是每个fnl数据里面包含的数据都是多种的,而我们往往只需要用到里面的一种或者几种数据,因此我们可以告诉他我们需要那一层,因此我们可以加上前面的-d,告诉他是那一层。如下:(后边的对应的是输出路径)

os.system(r"wgrib2 H:\\fnl_chengdu\\test\\fnl_20170320_06_00.grib2 -d 1 -csv H:1.csv")1

-text 输出成文本,其实与上面的csv类似的,但是也需要你指定层。不然数据量会超级大

-match 这个其实比较好用,比如我们要指定层,可以直接告诉他是多少层,用-d,但是也可以通过名字来匹配,比如:(但是注意,这里这里面TMP有很多层的,不同高度对应的都不一样,所以需要更详细点,加上:比如近地层的啊,2m的啊…)

os.system("wgrib2 H:\\fnl_chengdu\\test\\fnl_20170320_06_00.grib2 -match 'TMP' -csv H:1.csv")1

-netcdf 将他转为.nc文件,这时候他就是妥妥的层数据了。这个时候可以再使用python的netcdf包进行进一步的操作。

nc_obj=Dataset('H:\\biyelunwen\\TEM2.nc')

for i in nc_obj.variables.keys(): print(i)1

2

3

就能够得到如下结果,证明他的数据集有四个,一个经度数据,一个纬度数据,一个时间,一个大气顶层的温度数据。(经过尝试,你用wgrib2处理出来的nc文件都自带经纬度)

如何提取我们需要的气象因子出来(提取成nc文件)

import os

os.chdir("E:\\wgrib2")

dir_fnl="H:\\fnl_chengdu\\test\\"

all_file=os.listdir(dir_fnl)

list_name=["TMP","RH","U_wind","V_wind"]

list_floor=["238","239","241","242"]

out_filedir="E:\\气候因子_成都\\"

for file_i in all_file: file_split=os.path.splitext(file_i) if file_split[1] == '.grib2': for i in range(4): out_name1=file_split[0] out_name2=out_name1[4:12] postfix=list_name[i] out_name=postfix+out_name2+".nc" filefold_dir=out_filedir+postfix+"\\" print(filefold_dir) op_dir=dir_fnl+file_i+" -d "+str(int(list_floor[i]))+" -netcdf "\ +filefold_dir+out_name os.system(r"wgrib2 "+op_dir) print(filefold_dir+out_name+" has been done!")

print("All the process has been finished!")1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

此处我要提取四种气象因为,分别位list_name里面的几种。前面的操作是针对名字什么的,然后给他整合到一个语句,最后再使用os模块结合wgrib2进行处理即可。

文章来源: blog.csdn.net,作者:Lf zhang,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zhanglingfeng1/article/details/113789121

linux下下载fnl数据,使用python直接提取fnl再分析资料的气象因子数据相关推荐

  1. 在Linux下下载RPM包

    在Linux下下载RPM包,但是不安装 在工作中经常会遇到离线安装RPM包的情况,下面是下载RPM包的方法 # 使用yum下载RPM包 yum -y install --downloadonly &l ...

  2. linux下下载优酷等的视频

    linux下下载优酷等的视频 2009年04月26日 星期日 14:31 火狐安装downthemall插件. 然后像平常一样寻找土豆或优酷的视频. 复制地址 打开 www.kisstudou.com ...

  3. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  4. linux下下载fnl数据,python处理FNL数据的grib文件和nc文件(纬度存储的问题)

    python处理FNL数据的grib文件和nc文件(纬度存储的问题) python处理FNL数据的grib文件和nc文件(纬度存储的问题) 在使用python处理FNL数据时,2007年及之前的数据存 ...

  5. 【Python 笔记】Linux 下源码编译安装 python

    本文记录在 Linux 上源码编译安装 python 的过程. 文章目录 1. 源码编译安装说明 2. 安装 python2.7 3. 安装 python3.6 1. 源码编译安装说明 安装过程比我想 ...

  6. Linux下使用crontab命令以及Python脚本实现自动签到

    转载:http://www.cnblogs.com/spxcds/p/5375192.html 关于这一部分, 我首先介绍下如何实现使用Python脚本实现签到功能其实,linux下有个命令叫做cur ...

  7. linux编译redis打包,linux下下载redis,并且编译

    1:下载.解压.编译 $ wget http://download.redis.io/releases/redis-3.0.6.tar.gz $ tar xzf redis-3.0.6.tar.gz ...

  8. python pdfminer linux 版本下载_Python利器 PDFMiner python实现PDF转换TXT(附代码)

    PDFMiner其特征有: 1.完全使用python编写.(适用于2.4或更新版本) 2.解析,分析,并转换成PDF文档. 3.PDF-1.7规范的支持.(几乎) 4.中日韩CJK语言和垂直书写脚本支 ...

  9. linux 访问共享内存,Linux下的共享内存(03)---通过指针访问共享内存中的数据...

    环境:Vmware Workstation:CentOS-6.4-x86_64 说明: 1.将共享内存挂载至进程:void  *shmat(int  shmid, const void *shmadd ...

最新文章

  1. ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用...
  2. IOS开发基础知识--碎片32
  3. ExtJs Ext.TaskMgr定时刷新数据源
  4. eclipse对maven项目进行打war包
  5. 【转】Thunderbird中配置签名
  6. AngularJS之watch
  7. 个人对响应式布局的理解
  8. 如何判断字符串已经被url编码_如何判断回文数?不要再将整数转为字符串来解决这个问题了...
  9. java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序
  10. 【guava】大数据量下的集合过滤—Bloom Filter
  11. 特征做得好,模型没烦恼
  12. tornado SQLAlchemy
  13. 如何在Mac电脑上更改地区或国家位置设定?
  14. 基于STM32的DMX512开发
  15. 基于RTMP的视频采集上报播放预警方案设计与实现
  16. 在线制作安卓手机主题
  17. 睡觉计算机主机在身旁好么,笔记本电脑的睡眠和休眠之间有什么区别
  18. Hot and cold pages
  19. 华哥倒酒(二分答案)
  20. php中的m方法的区别吗,php中的M方法

热门文章

  1. 抖音直播带货后如何复盘?抖音直播间高效复盘法
  2. K8S给节点打标签和打污点
  3. 一款好用的基于vue的录屏插件recordrtc,拿走不谢
  4. 蓝桥杯JAVA-32.二维数组(矩阵)实现旋转模板(JAVA实现)
  5. 微信小程序:全新动态视频壁纸下载支持多种分类短视频另外也有静态壁纸
  6. 数学--计算几何--三角定位原理和升级
  7. 怎样共享苹果Mac上的 Wi-Fi 密码?
  8. Keil 编译器AC6中的LLVM编译原理
  9. Androidstudio ADB调试
  10. 7z001怎么解压在安卓手机上面_安卓手机怎么可以远程阿里云服务器桌面