python在windows系统和linux系统读取grib或者grib2数据所用的库不一样,下面分别细说。

1.python在linux系统下批量读取grib或grib2数据

linux系统对python读取grib数据很友好,有很多库可以读取,这里我们采用eccodes读取

首先,需要清楚要提取的变量名或者编号

##以变量名提取数据

#以变量编号提取数据

from reki.format.grib.eccodes import load_message_from_file
import eccodes
cr = load_message_from_file(file_path + '/' + file, parameter={"discipline": 0,"parameterCategory": 16,"parameterNumber": 224
},level_type="surface",level=0,)values = eccodes.codes_get_double_array(cr, "values")
values = values.reshape([501,751])
values = values[::-1]

2. python在windows系统下批量读取grib或grib2数据

试验了很多方法,最终发现还是得借助于wgrib.exe程序,需要的可以私信我

首先,我们用wgrib程序查看下grib数据

os.chdir(r"\wgrib2")
os.system(r"wgrib2 mef.gra.000.2022041100001.grb2 -v")

如图,我们提取行号为14的变量,将其输出到文件里

os.system(r"wgrib2 mef.gra.000.2022041100001.grb2 -d 14 -text 2022041100001.txt")

但是,这样的数据是一行一个数值的输出,我们需要把它转换为数组输出到文件里,且需要批量运行。采取方式如下

aa = wgrib_name + ' ' + file_in_name + ' -d 14 -text ' + file_out_temp_name
os.system(aa)

将原temp文件中的数值读入,转换为数组再输出到新文件里

with open(file_out_temp_name,'r') as file1:lines = file1.readlines()for line in lines[1:]:    #首行为经纬度范围,去掉首行data_new.append(line.strip("\n"))    #去掉换行符data_arr = np.array(data_new).reshape(ynum,xnum)with open(file_out_name,'w') as file2:for j in range(0,ynum):for i in range(0,xnum):file2.write(("%8.2f")%(float(data_arr[j,i])))file2.write('\n')

完结!

python在windows和linux系统下批量读取grib2数据相关推荐

  1. linux音频自动转码,使用SoundConverter在Linux系统下批量音频转码的方法

    以下教你在 Linux 操作系统下批量音频转码,只需要下载并安装 SoundConverter 即可,它的使用方法非常的简单,下面会做一说明. 背景 时下最流行的音频压缩格式当然是 MP3 了,目前主 ...

  2. Windows和Linux系统下的共享文件夹配置

    说明 Linux和Windows系统下共享文件夹的方法,我所掌握实现的有samba与xftp两种.虽说有办法可以实现文件夹或文件的直接拖动传输.但是对于内存较大的文件可能不太方便;同样,直接拖动传输文 ...

  3. windows和linux系统下测试端口连通性的命令

    文章目录 1. ping 2. telnet 3. ssh 4. curl 5. wget 6. tcping 总结 1. ping ping命令只能测试某个IP通不通,不能测试某端口的连通性.因为p ...

  4. Windows 和 Linux 系统下,如何查看 Redis 的版本号?

    一.Windows 下查看 Redis 版本号 1.1 打开 Redis 所在目录,启动 redis-server 服务器端   进入 Redis 所在目录 C:\Program Files\redi ...

  5. linux获取网卡的ip,Windows和Linux系统下获取多网卡的ip地址

    在Windows或者Linux操作系统中,获取多网卡信息,可通过执行命令方式获取,具体如下: public Vector getServerIps() { Vector address = new V ...

  6. linux+批量更改文件名后缀,关于linux系统下批量修改文件名和后缀

    总会遇到遇到处理文件的问题,比如文件后缀修改,以前都是写shell,后来发现有个更简单的方法 rename 1,在centos 下是用c 写的 rename 用法: a.txt  修改为 a.cc r ...

  7. Linux系统下MySQL的导出数据语句SELECT … INTO OUTFILE的用法

    文章目录 关于参数 secure_file_priv 按默认参数设定导出表数据到文本文件中 自定义分隔符,将表数据导出到 txt 文件中 自定义分隔符,将表数据导出到 csv 文件中 导出数据时,提示 ...

  8. Windows和Linux系统下,虚拟环境安装的全面说明和详细步骤

    虚拟环境的创建和使用 用途: ​ 1.在同一台电脑安装同一个包的不同版本 2.记录项目所用的所有的包的版本,方便部署. 如何使用: 1.创建虚拟环境 mkvirtualenv 虚拟环境名 -p pyt ...

  9. linux系统下批量解压方法汇总

    目前在获取大量的tar压缩包中的图片的方法是,选中所有要解压的文件,然后右击鼠标选择提取文件,按照一般的方法友好地解压,不知道这样效率会不会低很多,要是在代码中直接加入自动获取的语句,那么即将节省很多 ...

最新文章

  1. Python 类的特殊成员方法详解
  2. 在字符串中使用引号()等字符 需要用转义字符\ 例如
  3. 金叉成功率_一个非常强烈的买卖信号:三金叉见顶,三死叉见底,短短10字,但是成功率却远超“金叉买,死叉卖”...
  4. Log4j的应用实例
  5. java动态编译无法导包_java动态编译整个项目,解决jar包找不到问题.doc
  6. XRHT电钢琴电子琴实训室教学管理系统配置方案
  7. 电流(或电压)的平均值与有效值
  8. 计算机打印机图标删除吗,故障之:打印图标消失及打印任务无法取消
  9. NPOI编辑WORD文档
  10. 半导体激光芯片商长光华芯完成B轮1.5亿融资,推进三类主营业务战略建设
  11. [读书笔记]-《高能要事》-一次做好一件事
  12. java哪个软件编程好学吗_java编程好学吗
  13. e盘不见了怎么恢复?可以这样找回!
  14. JDK、JRE、JVM、SDK
  15. 自学玩编程需要具备哪些能力
  16. 欧洲央行行长:与“主流”货币政策理论商榷
  17. 人工智能浪潮下,岗位及就业,技术分析 _证券交易员
  18. 红青3D立体图像的原理
  19. 军犬舆情:从“马蜂窝事件”看企业品牌舆情监测的重要性
  20. 2022中国AloT产业全景图谱报告 附下载

热门文章

  1. linux安装Node.js 详细安装教程
  2. linux c语言 cmos,c语言编写程序读写CMOS内容
  3. 第一讲:云计算的概念
  4. Opencv环境的配置与基本使用
  5. 中国科学院院士徐宗本:人工智能的基石是数学
  6. 使用ajax传递数组
  7. python爬虫20 | 小帅b教你如何使用python识别图片验证码
  8. 智能暖风机——6.利用TM1650实现显示功能
  9. 嵌入式系统词汇表(收藏)
  10. 【学习笔记】汇编:关于CMP的使用实例