python读取grib格式数据

news/2024/12/4 19:54:30/

python 读取grib/grib2格式数据

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

grib/grib2 格式数据介绍

1 数据下载方法

数据可以通过NCAR/UCAR的官网FNL再分析资料进行下载
注册账号–找下下载的数据–下载相应的下载shell脚本–在服务器中运行该脚本进行下载

2 数据格式

fnl再分析资料的数据格式有netcdf 和grib grib2 这几种数据格式,用于WRF读取的为grib grib2格式的,所以一般下载grib格式的数据。其中,grib1 的数据从1999年7月30日-2007年12月6日;grib2格式的数据从2007年12月7日到现在

3 数据变量

可以利用Panoply load 相应的grib2格式的数据查看变量
可以利用wgrib读取变量
可以利用pygrib函数读取变量【下面进行讲述】
变量对应的TABLE不能在文件中查看,只能在官网上寻找相应的TABLE grib2格式数据变量TABLE

pygrib 函数介绍

所有的pygrib版本都在Pythonpygrib官网中有介绍,包括其版本,安装包和安装方法。

1 头文件读取

头文件相关信息读取

import pygrib as pg
grbs = pg.open('fnl_17030406.grib2')# 所有变量
for grb in grbs:  print grb #每一个变量的头文件print grb.keys()  #每一个变量的keysprint grb.values  # 每一个变量的值

头文件读取并写入txt脚本

import pygrib as pg
grbs = pg.open('fnl_17030406.grib2')
with open('fnl_17030406.txt','w') as f:for grb in grbs:f.write(str(grb) + '\n')
2 数据读取

读取数据并将数据写入txt文件中
但是写入txt文件中之后txt中的数据显示不完整,所以最好写入csv文件

import pygrib as pg
grbs = pg.open('fnl_17030406.grib2')
f = open('./txt/data_17090100.txt','w')
grbs.seek(0)
grb = grbs.select(name = 'U component of wind')[0]
f.write(str(grb) +'\n')
value = grb.values
f.write(str(value))
f.close()

读取数据并写入csv文件中
方法1:根据变量的名称和index 进行变量读取

import pygrib as pg
import pandas as pd
import csv
grbs = pg.open('fnl_17030406.grib2')
grbs.seek(0)
grb = grbs.select(name = '2 metre temperature')[0]
value = grb.values
data = pd.DataFrame(value)
data.to_csv('./txt/17090100.csv',index = False,header = False)
lats,lons = grb.latlons()
output_list = []
for i in range(lats.shape[0]):zip1 = zip(lats[i],lons[i])output_list.append(list(zip1))output = pd.DataFrame(output_list)

方法2: 遍历所有变量,根据已知的时间,变量名,level等信息读取变量的value(一般来说这种方法更常用,而且不易出错)
详细内容请参加github中给出的Jupiter实例pygrib 实例:

import pygrib as pg
import pandas as pd
import csv
import datetime as dt
grbs = pg.open('fnl_17030406.grib2')
tem = []
data_valid = dt.datetime(2017,3,4,6)
for grb in grbs:if grb.validDate == date_valid and grb.parameterName == 'Temperature' and grb.level == 2:tem.append(grb,values)

http://www.ppmy.cn/news/867423.html

相关文章

zlib库介绍三:gzip(.gz格式)文件读写

gzip格式文件是一个数据压缩文件,文件大体上分为头部、数据部和尾部。 头部和尾部主要是一些文档属性和校验信息(rfc1952),数据部主要是用deflate方法压缩得到的数据。 zlib开源库使用的是deflate算法,因此&#xff…

SGI图像文件格式

介绍 这是描述SGI图像文件格式的权威文档。这是一个低级规范,描述了 SGI 图像文件的实际字节级格式。在 SGI 机器上,读取和写入 SGI 图像文件的首选方法是使用图像库 -limage。此库提供了一组函数,使读取和写入 SGI 图像变得容易。如果您使用…

Windows上python读取grib2文件(不用Linux)

最近在网上下载的NCEP的fnl数据,发现只有grib2文件格式。因为现在处理数据使用的更多的是python,matlab一类的。网上一搜python读取grib文件需要依赖pygrib库,pygrib是欧洲中期天气预报中心(ECMWF)的GRIG API C库的Python接口,通过…

GLB模型压缩

模型压缩一般有两种路线,一个是减小网格体的顶点和面数,一个是减小纹理材质的贴图 本文将会使用https://github.com/CesiumGS/gltf-pipeline提供的工具进行GLTF模型的压缩。按照官网的步骤安装即可(一定要有Nodejs) 官网有常用命…

lightGBM文件保存

1.使用lightGBM原生的接口保存为txt文件 # 模型训练 gbm lgb.train(params, lgb_train, num_boost_round20, valid_setslgb_eval, early_stopping_rounds5) # 模型保存 gbm.save_model(model.txt) # 模型加载 gbm lgb.Booster(model_filemodel.txt) # 模型预测 y_pred gbm.…

grib1文件解析 python_grib文件解析

一、grib文件简介 WMO是世界气象组织,world meteorology organization。 GRIB是WMO开发的一种用于交换和存储规则分布数据的二进制文件格式。最初GRIB表示“二进制格点”(GRIdded Binary),后来扩展为“二进制的通用规则分布信息”(General Regularly-dis…

grib2文件格式说明

GRIB是一种二进制编码的名称,用于加工资料的传输和交换,GRIB编码的分析或预报产品是由一系列八位组构成的连续比特流组成。在GRIB2中编码资料主要分为9段。 0段——指示段八位组序号 内容 1—4 GRIB(按照国际电报字符5号…

Gerber文件解析

最近公司准备做pcb板缺陷检测,首先要用C解析GerBer文件,我尝试了使用pcb-tools库:https://github.com/curtacircuitos/pcb-tools。完美配置了环境,接下来就是学习一些Kicad制作GerBer文件的规则解析对应Gerber文件。有个问题不太清…